diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-07-03 18:26:38 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-13 18:26:03 +0200 |
commit | 6e443ef21bfa9eea67e7f983727c41d00405a816 (patch) | |
tree | e81d672360a437db08de785b35d831c8b8759833 /ishtar_common | |
parent | 71432db3cbf135225fdb432c380db402a3eeffe7 (diff) | |
download | Ishtar-6e443ef21bfa9eea67e7f983727c41d00405a816.tar.bz2 Ishtar-6e443ef21bfa9eea67e7f983727c41d00405a816.zip |
Change criteria search UI to put criteria in the search text (refs #4180)
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/forms.py | 2 | ||||
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 29 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/bs_field_snippet.html | 3 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/bs_form_snippet.html | 25 | ||||
-rw-r--r-- | ishtar_common/templates/widgets/search_input.html | 8 |
5 files changed, 33 insertions, 34 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index bb468eff1..c1e699ab5 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -471,7 +471,7 @@ class TableSelect(IshtarForm): cls += " search-vector" self.fields[k].widget.attrs['class'] = cls if k in ALT_NAMES: - self.fields[k].alt_name = ALT_NAMES[k] + self.fields[k].alt_name = ALT_NAMES[k][0] else: self.fields[k].alt_name = k key = self.fields.keys()[0] diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index b5d701528..2f04775c5 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -529,12 +529,12 @@ function get_label_from_input(input){ if (input.parent().filter('.input-group').length){ input = input.parent(); } - return "<strong>" + input.prev().html() + "</strong>"; + return input.parent().attr('data-alt-name'); } -function update_search_resume(){ - var summary = ""; +function update_search_field(){ + var query = ""; var inputs = $('#wizard-form input').map( function(){ var v = ""; @@ -555,8 +555,8 @@ function update_search_resume(){ v = $(this).val(); } if (v == "") return; - if (summary) summary += " ; "; - summary += get_label_from_input(item_for_label) + " " + v; + if (query) query += " "; + query += get_label_from_input(item_for_label) + '="' + v + '"'; } ).get(); var selects = $('#wizard-form select').each( @@ -567,18 +567,20 @@ function update_search_resume(){ if(item_for_label.filter('optgroup').length){ item_for_label = item_for_label.parent(); } - if (summary) summary += " ; "; - summary += get_label_from_input(item_for_label) + " " + $(this).text(); + if (query) query += " "; + query += get_label_from_input(item_for_label) + '="' + + $(this).text() + '"'; }); } ); - if (summary != ""){ - $('#advanced-search-resume-content').html(summary); - $('#advanced-search-resume').show(); - } else { - $('#advanced-search-resume').hide(); + var value = $("#id_search_vector").val(); + if (value){ + value += " "; } + value += query; + document.getElementById('wizard-form').reset(); + value = $("#id_search_vector").val(value); } var sheet_list = new Array(); @@ -610,10 +612,9 @@ function register_advanced_search(){ $(".advanced-search-reset").click( function(){ document.getElementById('wizard-form').reset(); - $('#advanced-search-resume').hide(); } ); - $(".advanced-search-valid").click(update_search_resume); + $(".advanced-search-valid").click(update_search_field); } diff --git a/ishtar_common/templates/blocks/bs_field_snippet.html b/ishtar_common/templates/blocks/bs_field_snippet.html index 4c4e17bf1..a164c81d8 100644 --- a/ishtar_common/templates/blocks/bs_field_snippet.html +++ b/ishtar_common/templates/blocks/bs_field_snippet.html @@ -1,5 +1,6 @@ {% load i18n %} - <div class="form-group {% if field.field.widget.attrs.cols %}col-lg-12{% else %}col-lg-6{% endif %}{% if field.errors %} is-invalid{% endif %}{% if field.field.required %} required{% endif %}"> + <div class="form-group {% if field.field.widget.attrs.cols %}col-lg-12{% else %}col-lg-6{% endif %}{% if field.errors %} is-invalid{% endif %}{% if field.field.required %} required{% endif %}" + data-alt-name="{{field.field.alt_name}}"> {{ field.label_tag }} {% if field.help_text %} <div class="input-group"> diff --git a/ishtar_common/templates/blocks/bs_form_snippet.html b/ishtar_common/templates/blocks/bs_form_snippet.html index 74dbadf5c..820ef8c99 100644 --- a/ishtar_common/templates/blocks/bs_form_snippet.html +++ b/ishtar_common/templates/blocks/bs_form_snippet.html @@ -17,7 +17,7 @@ {{field}} {% elif field.name == 'search_vector' and forloop.counter0 == 0 %} <div class="form-row"> - <div class="form-group col-lg-10"> + <div class="form-group col-lg-12"> {{field|safe}} {% if field.help_text %} <small><a data-toggle="collapse" href="#{{field.auto_id}}_help" @@ -28,14 +28,6 @@ {{ field.errors }} </div>{% endif %} </div> - <div class="form-group col-lg"> - <p class="text-right"> - <button type="button" class="btn btn-secondary" data-toggle="modal" - data-target="#modal-advanced-search"> - {% trans "Advanced search" %} <i class="fa fa-cogs" aria-hidden="true"></i> - </button> - </p> - </div> {% if field.help_text %} <div class="collapse" id="{{field.auto_id}}_help"> @@ -45,10 +37,6 @@ </div> {% endif %} </div> -<div class="alert alert-info" role="alert" id="advanced-search-resume"> - <strong><i class="fa fa-cogs" aria-hidden="true"></i>{% trans ":" %} </strong> - <span id="advanced-search-resume-content"></span> -</div> {% else %} {% if search and forloop.counter0 == 1 %} <div class="modal" id="modal-advanced-search" tabindex="-1" role="dialog" @@ -56,7 +44,10 @@ <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header"> - <h5>{% trans "Advanced search" %}</h5> + <h5>{% trans "Criteria search" %}</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> </div> <div class="modal-body form-row"> {% endif %} @@ -86,10 +77,10 @@ {% if search and forloop.counter0 >= 1 %} </div> <div class="modal-footer"> - <button type="button" class="btn btn-secondary advanced-search-reset" - data-dismiss="modal">{% trans 'Reset' %}</button> + <button type="button" class="btn btn-secondary" + data-dismiss="modal">{% trans 'Close' %}</button> <button type="button" class="btn btn-primary advanced-search-valid" - data-dismiss="modal">{% trans "Validate" %}</button> + data-dismiss="modal">{% trans "Add" %}</button> </div> </div> </div> diff --git a/ishtar_common/templates/widgets/search_input.html b/ishtar_common/templates/widgets/search_input.html index c68d2347d..1d7521a2a 100644 --- a/ishtar_common/templates/widgets/search_input.html +++ b/ishtar_common/templates/widgets/search_input.html @@ -1,4 +1,4 @@ -<div class="input-group search-widget"> +{% load i18n %}<div class="input-group search-widget"> <span class="input-group-prepend"> <span class="input-group-text"> <i class="fa fa-search" aria-hidden="true"></i> @@ -6,6 +6,12 @@ </span> <input type="{{ widget.type }}" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value|stringformat:'s' }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} /> <span class="input-group-append"> + <button type="button" class="btn btn-secondary" data-toggle="modal" + data-target="#modal-advanced-search"> + <i class="fa fa-cogs" aria-hidden="true"></i> + </button> + </span> + <span class="input-group-append"> <span class="input-group-text clear-search"> <i class="fa fa-times" aria-hidden="true"></i> </span> |