diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 9345777..bc5f3f0 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -24,7 +24,8 @@ ready = function() { $.each($(".select2-selector"), function(index, val) { $(val).select2({ width: 'resolve', - placeholder: $(".select2-selector") + placeholder: $(".select2-selector"), + allowClear: true }); } ) diff --git a/app/assets/javascripts/transactions.js b/app/assets/javascripts/transactions.js index e586b47..da4ab98 100644 --- a/app/assets/javascripts/transactions.js +++ b/app/assets/javascripts/transactions.js @@ -44,21 +44,22 @@ ready = function() { var filter = $(element); var type = filter.attr('data-input-type'); var column = table.column(filter.attr('data-filter-name') + ':name'); - console.log(column); - filter.find('input').on('keyup change', function() { - var value = null - if(filter.hasClass('bound')) { - var lower = filter.find('.lower-bound'); - var upper = filter.find('.upper-bound'); - value = lower.val() + '~' + upper.val(); - } else { - value = $(this).val(); - } - value = filter.attr('data-input-type') + ':' + value; - if(column.search() !== value) { - column.search(value).draw(); - } - }); + var refreshTable = function() { + var value = null + if(filter.hasClass('bound')) { + var lower = filter.find('.lower-bound'); + var upper = filter.find('.upper-bound'); + value = lower.val() + '~' + upper.val(); + } else { + value = $(this).val(); + } + value = filter.attr('data-input-type') + ':' + value; + if(column.search() !== value) { + column.search(value).draw(); + } + }; + filter.find('.value-thing').on('change', refreshTable); + filter.find('.value-thing.live-updating').on('keyup', refreshTable); }); // filters diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml index 2c69085..3b3d73d 100644 --- a/app/views/users/show.html.haml +++ b/app/views/users/show.html.haml @@ -15,14 +15,13 @@ .input-group %span.input-group-addon %span.glyphicon.glyphicon-calendar - %input.lower-bound.form-control.filter-align{type: 'date', - placeholder: 'After', class: 'pure-group-addon'} + %input.lower-bound.form-control.filter-align.value-thing.pure-group-addon{type: 'date', + placeholder: 'After'} .col-md-6 .input-group %span.input-group-addon %span.glyphicon.glyphicon-calendar - %input.upper-bound.form-control.filter-align{type: 'date', - placeholder: 'Before', class: 'pure-group-addon'} + %input.upper-bound.form-control.filter-align.value-thing.pure-group-addon{type: 'date', placeholder: 'Before' } .bound.input-listen.pure-u-1{ 'data-input-type': 'number-range', 'data-filter-name': 'Amount' } .row @@ -30,28 +29,28 @@ .input-group %span.input-group-addon %span.glyphicon.glyphicon-euro - %input.lower-bound.form-control.filter-align{type: 'number', + %input.lower-bound.form-control.filter-align.value-thing{type: 'number', placeholder: 'Minimum'} .col-md-6 .input-group %span.input-group-addon %span.glyphicon.glyphicon-euro - %input.upper-bound.form-control.filter-align{type: 'number', + %input.upper-bound.form-control.filter-align.value-thing{type: 'number', placeholder: 'Maximum'} .row .col-md-4 .input-listen{ 'data-input-type': 'text', 'data-filter-name': 'Issuer' } = grouped_collection_select nil, nil, [User, Client], :all, :name, :name, :name, { include_blank: true }, - { data: { placeholder: "Filter on Issuer" }, class: "select2-selector form-control" } + { data: { placeholder: "Filter on Issuer" }, class: "select2-selector form-control value-thing" } .col-md-4 .input-listen{ 'data-input-type': 'text', 'data-filter-name': 'Peer' } = select_tag nil, options_from_collection_for_select(User.all.order(:name), :name, :name), - include_blank: true, class: "select2-selector form-control", data: { placeholder: "Filter on Peer" } + include_blank: true, class: "select2-selector form-control value-thing", data: { placeholder: "Filter on Peer" } .col-md-4 .input-listen{ 'data-input-type': 'text', 'data-filter-name': 'Message' } - %input{type: 'text', placeholder: 'Filter on Message', + %input.live-updating.value-thing{type: 'text', placeholder: 'Filter on Message', class: "form-control" } %table#transactions.pure-table.pure-table-striped{data: { source: user_path(@user) }}