summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/static/js/ishtar.js43
-rw-r--r--ishtar_common/templates/blocks/bs_form_snippet.html22
2 files changed, 64 insertions, 1 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) {
diff --git a/ishtar_common/templates/blocks/bs_form_snippet.html b/ishtar_common/templates/blocks/bs_form_snippet.html
index 0f5f9d83d..caa20b016 100644
--- a/ishtar_common/templates/blocks/bs_form_snippet.html
+++ b/ishtar_common/templates/blocks/bs_form_snippet.html
@@ -51,8 +51,28 @@
</button>
<div class="form-group col-12" id="advanced-search-info"></div>
</div>
- <div class="modal-body body-scroll">
+ <div class="modal-body body-scroll search-fields">
+ <div class="form-row justify-content-md-center">
+ <div class="form-row col-md-6">
+ <div class="input-group search-widget">
+ <span class="input-group-prepend">
+ <span class="input-group-text" title="{% trans 'Filter...' %}">
+ <i class="fa fa-filter" aria-hidden="true"></i>
+ </span>
+ </span>
+ <input type="text" id="search-input-filter"
+ class="form-control"
+ placeholder="{% trans 'Begin to type to filter search fields' %}" />
+ <span class="input-group-append">
+ <span class="input-group-text input-link disabled" id="clear-filter-button" title="Clear">
+ <i class="fa fa-times" aria-hidden="true"></i>
+ </span>
+ </span>
+ </div>
+ </div>
+ </div>
<hr>
+
{% endif %}
{% if field.name in form.HEADERS %}
{% if forloop.counter0 %}