diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-07-09 20:59:24 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-13 18:26:03 +0200 |
commit | 5848f96f633d63248eefbabd325b17f6e36bd0e8 (patch) | |
tree | 59990ede30849daf44a9323d7e9a18e17d707285 /ishtar_common/templates | |
parent | 721229d393b6820619c5a006fa4b97889315932a (diff) | |
download | Ishtar-5848f96f633d63248eefbabd325b17f6e36bd0e8.tar.bz2 Ishtar-5848f96f633d63248eefbabd325b17f6e36bd0e8.zip |
Save search queries
Diffstat (limited to 'ishtar_common/templates')
-rw-r--r-- | ishtar_common/templates/base.html | 3 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/DataTables.html | 3 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/bs_form_snippet.html | 5 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/forms/search_query.html | 122 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/forms/success.html | 20 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/wizard/search.html | 2 | ||||
-rw-r--r-- | ishtar_common/templates/widgets/search_input.html | 32 |
7 files changed, 173 insertions, 14 deletions
diff --git a/ishtar_common/templates/base.html b/ishtar_common/templates/base.html index bbf030409..40e30706c 100644 --- a/ishtar_common/templates/base.html +++ b/ishtar_common/templates/base.html @@ -148,6 +148,9 @@ </div> </div> </div> + <div class="modal" id="modal-dynamic-form" tabindex="-1" role="dialog" + data-backdrop="static" data-keyboard="true" aria-hidden="true"> + </div> <div id='message'> <div class='information'><i class="fa fa-info-circle" aria-hidden="true"></i> <span class='content'></span></div> </div> diff --git a/ishtar_common/templates/blocks/DataTables.html b/ishtar_common/templates/blocks/DataTables.html index fdd358363..4beabe82a 100644 --- a/ishtar_common/templates/blocks/DataTables.html +++ b/ishtar_common/templates/blocks/DataTables.html @@ -2,7 +2,8 @@ <p class="text-center"> -<button id='search_{{name}}' class='btn btn-primary' type="button"> +<button id='search_{{name}}' class='btn btn-primary search_button' + type="button"> {% trans "Search" %}</button> {% if url_new %} diff --git a/ishtar_common/templates/blocks/bs_form_snippet.html b/ishtar_common/templates/blocks/bs_form_snippet.html index 7bdac3bf3..95b8ac086 100644 --- a/ishtar_common/templates/blocks/bs_form_snippet.html +++ b/ishtar_common/templates/blocks/bs_form_snippet.html @@ -40,7 +40,7 @@ {% else %} {% if search and forloop.counter0 == 1 %} <div class="modal" id="modal-advanced-search" tabindex="-1" role="dialog" - data-backdrop="static" data-keyboard="false" aria-hidden="true"> + data-backdrop="static" data-keyboard="true" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header"> @@ -114,5 +114,6 @@ {% if search %} <script type="text/javascript"> -$(register_advanced_search);</script> +$(register_advanced_search); +</script> {% endif %} diff --git a/ishtar_common/templates/ishtar/forms/search_query.html b/ishtar_common/templates/ishtar/forms/search_query.html new file mode 100644 index 000000000..e842fd591 --- /dev/null +++ b/ishtar_common/templates/ishtar/forms/search_query.html @@ -0,0 +1,122 @@ +{% load i18n inline_formset table_form %} +<div class="modal-dialog modal-sm" id="save-search-div"> + <div class="modal-content"> + <div class="modal-header"> + <h5>{% trans "Save search" %}</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <form enctype="multipart/form-data" + action="{% url 'save-search-query' app_label model %}" + method="post" + id="save-search-form"> + <div class="modal-body form-row"> + {% csrf_token %} + + <div class='form'> + + {% if form.non_field_errors %} + <div class="alert alert-danger" role="alert"> + {{form.non_field_errors}} + </div> + {% endif %} + + {% for hidden in form.hidden_fields %} + {{hidden}} + {% if hidden.errors %}<div class="invalid-feedback"> + {{ hidden.errors }} + </div>{% endif %} + {% endfor %} + + <div class="form-row"> + <div class="form-group col-lg-12"> + {{form.query}} + </div> + </div> + {% if form.search_query %} + <div class="form-row"> + <input type="radio" name="create_or_update" value="create" + id="create-choice" checked > + <label for="create-choice">{% trans "New" %}</label> + </div> + {% else %} + <input type="hidden" name="create_or_update" value="create"> + {% endif %} + <div id="new-search-query"> + <div class="form-row"> + {% with form.label as field %} + {% include "blocks/bs_field_snippet.html" %} + {% endwith %} + </div> + <div class="form-row"> + {% with form.is_alert as field %} + {% include "blocks/bs_field_snippet.html" %} + {% endwith %} + </div> + </div> + {% if form.search_query %} + <div class="form-row"> + <input type="radio" name="create_or_update" value="update" + id="update-choice"> + <label for="update-choice">{% trans "Update" %}</label> + </div> + <div id="update-search-query"> + <div class="form-row"> + {% with form.search_query as field %} + {% include "blocks/bs_field_snippet.html" %} + {% endwith %} + </div> + </div> + {% endif %} + </div> + </div> + <div class="modal-footer"> + <div class="col-sm"> + <button type="button" id="search-save-submit" + name='validate' + value="validate" class="btn btn-success"> + {% trans "Validate" %} + </button> + </div> + </div> + </form> + </div> +</div> + +<script type='text/javascript'> + +var update_form_display = function(){ + if ($("#create-choice:checked").length){ + $("#update-search-query").hide(); + $("#new-search-query").show(); + } else { + $("#new-search-query").hide(); + $("#update-search-query").show(); + } +} + +$(document).ready(function(){ + $("#id_query").val($(".search-vector").val()); + $("#search-save-submit").click( + function(){ + $.ajax({ + type: "POST", + url: "{% url 'save-search-query' app_label model %}", + data: $("#save-search-form").serialize(), + success: function(data){ + $("#save-search-div").parent().html(data); + }, + dataType: 'html' + }); + return false; + } + ); + $("#create-choice").click(update_form_display); + $("#update-choice").click(update_form_display); + update_form_display(); +}); + +</script> + + diff --git a/ishtar_common/templates/ishtar/forms/success.html b/ishtar_common/templates/ishtar/forms/success.html new file mode 100644 index 000000000..125ba62e7 --- /dev/null +++ b/ishtar_common/templates/ishtar/forms/success.html @@ -0,0 +1,20 @@ +{% load i18n inline_formset table_form %} +<script type='text/javascript'> + +$(document).ready(function(){ + $("#form-result-div").parent().modal("hide"); +}); + +</script> +<div class="modal-dialog modal-sm" id="form-result-div"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body form-row"> + {% trans "Form successfully submited" %} + </div> + </div> +</div> diff --git a/ishtar_common/templates/ishtar/wizard/search.html b/ishtar_common/templates/ishtar/wizard/search.html index e1f2433ea..eebd58d89 100644 --- a/ishtar_common/templates/ishtar/wizard/search.html +++ b/ishtar_common/templates/ishtar/wizard/search.html @@ -18,7 +18,7 @@ <form action="." class='wizard-form' id="wizard-form" method="post" name='wizard'>{% csrf_token %} {% if wizard.form.forms %} <div class='form'> -<div class='top_button'><input type="submit" id="submit_form" value="{% trans "Validate" %}"/></div> +<div class='top_button'><input type="submit" id="submit_form" value="{% trans 'Validate' %}"/></div> <table class='formset'> {%if wizard.form.non_form_errors%}<tr class='error'><th colspan='2'>{{wizard.form.non_form_errors}}</th></tr>{%endif%} {{ wizard.form.management_form }} diff --git a/ishtar_common/templates/widgets/search_input.html b/ishtar_common/templates/widgets/search_input.html index a1e5aa2e4..ddb62969f 100644 --- a/ishtar_common/templates/widgets/search_input.html +++ b/ishtar_common/templates/widgets/search_input.html @@ -4,28 +4,40 @@ <i class="fa fa-search" aria-hidden="true"></i> </span> </span> - <input type="{{ widget.type }}" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value|stringformat:'s' }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} /> + <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"> + data-target="#modal-advanced-search" + title="{% trans 'Criteria' %}"> <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> + <a type="button" class="async-link btn btn-secondary disabled" + id="save-search-button" + data-target="#modal-dynamic-form" + data-modal-open="#modal-dynamic-form" + title="{% trans 'Save search' %}" + href="{% url 'save-search-query' 'archaeological-operations' 'operation'%}"> + <i class="fa fa-floppy-o" aria-hidden="true"></i> + </a> + <span class="input-group-text clear-search"> + <i class="fa fa-times" aria-hidden="true"></i> + </span> </span> </div> <script type="text/javascript"> + $(document).ready(function(){ $(".search-widget input").keypress(function(e) { - if(e.which == 13) { - $(".search-widget").parents( - '.search').find("p > .btn-primary").click(); + if (e.which == 13) { + $(".search_button").click(); $(this).focus(); } }); + $(".search-widget input").keyup(function(e) { + enable_save(); + }); + enable_save(); }); </script> |