From 747efcd9371118c2db9c265c13ce399fc4b6c96b Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Tue, 3 Jun 2014 01:00:39 -0400 Subject: [PATCH] 2872: Add free text search in chooser. --- .../javascripts/{folders.js => filterable.js} | 20 +++++++++---------- .../assets/stylesheets/select_modal.css.scss | 4 ++-- .../app/views/application/_choose.html.erb | 17 +++++++++++----- .../views/collections/_choose_rows.html.erb | 6 +++--- .../app/views/folders/_show_contents.html.erb | 4 ++-- .../pipeline_templates/_choose_rows.html.erb | 2 +- 6 files changed, 30 insertions(+), 23 deletions(-) rename apps/workbench/app/assets/javascripts/{folders.js => filterable.js} (65%) diff --git a/apps/workbench/app/assets/javascripts/folders.js b/apps/workbench/app/assets/javascripts/filterable.js similarity index 65% rename from apps/workbench/app/assets/javascripts/folders.js rename to apps/workbench/app/assets/javascripts/filterable.js index 73dcfbb1a1..8bb8085db5 100644 --- a/apps/workbench/app/assets/javascripts/folders.js +++ b/apps/workbench/app/assets/javascripts/filterable.js @@ -1,14 +1,14 @@ $(document). - on('paste keyup change', 'input.search-folder-contents', function() { + on('paste keyup change', 'input[type=text].filterable-control', function() { var q = new RegExp($(this).val(), 'i'); - $($(this).attr('data-search-target')).find('tbody'). + $($(this).attr('data-filterable-target')). + addClass('filterable-container'). data('q', q). trigger('refresh'); - }).on('refresh', 'tbody', function() { + }).on('refresh', '.filterable-container', function() { var q = $(this).data('q'); var filters = $(this).data('filters'); - $('tr', this).hide(); - $('tr', this).filter(function() { + $('.filterable', this).hide().filter(function() { var $row = $(this); var pass = true; if (q && !$row.text().match(q)) @@ -27,16 +27,16 @@ $(document). return pass; }).show(); $('.infinite-scroller').trigger('scroll'); - }).on('change', 'select[data-filter-rows-by]', function() { + }).on('change', 'select.filterable-control', function() { var val = $(this).val(); - var filterby = $(this).attr('data-filter-rows-by'); - var $target = $($(this).attr('data-filter-target')); + var filterby = $(this).attr('data-filterable-attribute'); + var $target = $($(this).attr('data-filterable-target')). + addClass('filterable-container'); var filters = $target.data('filters') || {}; filters[filterby] = val; $target. data('filters', filters). trigger('refresh'); }).on('ajax:complete', function() { - $('input.search-folder-contents').trigger('change'); - $('select[data-filter-rows-by]').trigger('change'); + $('.filterable-control').trigger('change'); }); diff --git a/apps/workbench/app/assets/stylesheets/select_modal.css.scss b/apps/workbench/app/assets/stylesheets/select_modal.css.scss index f97110a2b7..5aab669825 100644 --- a/apps/workbench/app/assets/stylesheets/select_modal.css.scss +++ b/apps/workbench/app/assets/stylesheets/select_modal.css.scss @@ -7,9 +7,9 @@ background: #d9edf7; } .selectable.active, -.selectable.active a, +.selectable.active *, .selectable.active:hover, -.selectable.active:hover a { +.selectable.active:hover * { background: #428bca; color: #fff; } diff --git a/apps/workbench/app/views/application/_choose.html.erb b/apps/workbench/app/views/application/_choose.html.erb index 94ed8e6f39..4708ac51e5 100644 --- a/apps/workbench/app/views/application/_choose.html.erb +++ b/apps/workbench/app/views/application/_choose.html.erb @@ -1,14 +1,21 @@ -