From 1c229a19f35e525f596c6d7aea126526f1e059c2 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 11 Feb 2019 12:01:29 +0100 Subject: UI: auto filter search fields --- ishtar_common/static/js/ishtar.js | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'ishtar_common/static/js') 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) { -- cgit v1.2.3