diff options
author | Étienne Loks <etienne@peacefrogs.net> | 2019-02-11 12:01:29 +0100 |
---|---|---|
committer | Étienne Loks <etienne@peacefrogs.net> | 2019-02-11 12:01:29 +0100 |
commit | 1c229a19f35e525f596c6d7aea126526f1e059c2 (patch) | |
tree | 68d203a158b5dccfeb6500d4e351dff51e6fcf60 /ishtar_common/static/js | |
parent | 4dc674ea9fa7516878a7b128da10ca9f09a6a1c7 (diff) | |
download | Ishtar-1c229a19f35e525f596c6d7aea126526f1e059c2.tar.bz2 Ishtar-1c229a19f35e525f596c6d7aea126526f1e059c2.zip |
UI: auto filter search fields
Diffstat (limited to 'ishtar_common/static/js')
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index 891234915..6ab1fe732 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -753,6 +753,7 @@ function _clear_search_criteria_fields(query){ $('.dataTables_length select option[value="' + datatables_length + '"]' ).prop('selected', true); if(query) $("#id_search_vector").val(query); + filter_search_fields(); } function update_search_field(){ @@ -843,6 +844,41 @@ var register_qa_on_sheet = function(){ }; +var search_field_list; + +var register_search_field_list = function(){ + search_field_list = new Object(); + $(".search-fields .form-group").each(function(){ + var key_val = $(this).attr('data-alt-name'); + if (key_val) { + search_field_list[key_val] = $(this).children('label').html(); + } + }); +}; + +var filter_search_fields = function(){ + var current_filter = $("#search-input-filter").val(); + if (!current_filter){ + $(".search-fields .form-group").show(); + $("#clear-filter-button").addClass('disabled'); + return + } + $("#clear-filter-button").removeClass('disabled'); + $.each(search_field_list, function(key, value) { + if ( + !key.match( new RegExp(current_filter) ) && + !value.match( new RegExp(current_filter) ) + ) { + $("[data-alt-name=" + key + "]").hide(); + } else { + $("[data-alt-name=" + key + "]").show(); + } + } + + ); +}; + + function register_advanced_search(){ $(".advanced-search-reset").click( function(){ @@ -857,6 +893,13 @@ function register_advanced_search(){ return false; } }); + register_search_field_list(); + $("#search-input-filter").on('input', filter_search_fields); + $("#clear-filter-button").click(function(){ + $("#search-input-filter").val(""); + filter_search_fields(); + }); + $(".advanced-search-valid").click(update_search_field); $(".advanced-search-clear").click(clear_search_field); $('#modal-advanced-search').on('hidden.bs.modal', function (e) { |