diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-06-26 13:23:51 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-06-26 13:26:22 +0200 |
| commit | 886425410c20585a6cbf2003b98b406812f2478f (patch) | |
| tree | ea5cd3cf4072aee6e7492b45352619fb605230f1 | |
| parent | 1a62ced48bb09998c86140419bb3cb30fa7d72d4 (diff) | |
| download | Ishtar-886425410c20585a6cbf2003b98b406812f2478f.tar.bz2 Ishtar-886425410c20585a6cbf2003b98b406812f2478f.zip | |
✨ JS - manage reload on modal close with tab activation
6 files changed, 37 insertions, 18 deletions
diff --git a/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html b/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html index 18dff602e..c546cf725 100644 --- a/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html +++ b/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html @@ -12,7 +12,7 @@ <div class="col-md-2 text-right"> <div class="btn-group btn-group-sm" role="group" aria-label="Actions"> {% if statement_condition.applied == "D" %} - <a class="btn-qa btn btn-success" href="#" data-target="{% url 'find-statement-condition-modify' item.pk statement_condition.pk %}" title="{% trans 'Modify' %}"> + <a class="btn-qa btn btn-success" href="#" data-target="{% url 'find-statement-condition-modify' item.pk statement_condition.pk %}" title="{% trans 'Modify' %}" data-window="{{window_id}}"> <i class="fa fa-pencil"></i> </a> {% endif %} diff --git a/archaeological_finds/templates/ishtar/forms/qa_statement_condition_form.html b/archaeological_finds/templates/ishtar/forms/qa_statement_condition_form.html index 5307d1db8..6f4c7c4aa 100644 --- a/archaeological_finds/templates/ishtar/forms/qa_statement_condition_form.html +++ b/archaeological_finds/templates/ishtar/forms/qa_statement_condition_form.html @@ -2,13 +2,10 @@ {% load i18n inline_formset table_form %} {% block js_ready %} -$("#collapse-parent-traitement").hide(); -$("#id_applied").on("change", function(){ - if ($(this).val() == 'T'){ - $("#collapse-parent-traitement").show(); - $("#collapse-traitement").collapse('show'); - } else { - $("#collapse-parent-traitement").hide(); - } -}); +{% if reload %} +register_modal_on_close(); +modal_on_close["modal-dynamic-form"] = {{reload}}; +modal_on_close["modal-dynamic-form-window-id"] = "{{window_id}}"; +modal_on_close["modal-dynamic-form-window-tab"] = "{{window_tab}}"; +{% endif %} {% endblock %} diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index a805fb64b..b6ee6f37d 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -1621,6 +1621,10 @@ def statement_condition_form(request, find_pk, statement_condition_pk=None, url += "modify" else: url += "add" + window_id = request.GET.get("window_id", "") + window_tab = "warehouse-tab" + reload = "reload_window_" + window_id.replace("-", "_") + window_id_root = "-".join(window_id.split("-")[:-1]) return render( request, "ishtar/forms/qa_statement_condition_form.html", { @@ -1629,6 +1633,9 @@ def statement_condition_form(request, find_pk, statement_condition_pk=None, "action_name": button_name, "form": form, "modal_size": "large", + "reload": reload, + "window_id": window_id_root, + "window_tab": window_tab, "url": reverse(url, args=url_args) }) diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index 624d1902b..3835d8677 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -528,7 +528,6 @@ $(document).ready(function(){ register_wait_button(); $(".help-text-parent").click(function(){ if ($(this).is(":visible")) { - console.log($(this).attr("id")); $("[aria-controls='" + $(this).attr("id") + "']").click(); } }); @@ -545,9 +544,14 @@ var register_modal_on_close = function(){ modal_on_close[this.id] = undefined; $("#" + this.id).on('hide.bs.modal', function() { if (modal_on_close[this.id] !== undefined){ - modal_on_close[this.id](); + parameters = {} + if (modal_on_close[this.id + "-window-id"]) parameters["window-id"] = modal_on_close[this.id + "-window-id"]; + if (modal_on_close[this.id + "-window-tab"]) parameters["window-tab"] = modal_on_close[this.id + "-window-tab"]; + modal_on_close[this.id](parameters); // reinitialize after call modal_on_close[this.id] = undefined; + modal_on_close[this.id + "-window-id"] = undefined; + modal_on_close[this.id + "-window-tab"] = undefined; } }); } @@ -1044,7 +1048,8 @@ function toggle_window_menu(){ var register_qa = function(){ $(".btn-qa").click(function(){ let target = $(this).attr('data-target'); - dt_qa_open(target); + let window_id = $(this).attr('data-window'); + dt_qa_open(target, null, window_id); }); }; @@ -1053,7 +1058,8 @@ var register_qa_confirm = function(){ let confirm_message = $(this).attr('data-confirm'); let target = $(this).attr('data-target'); if (!confirm(confirm_message)) return; - dt_qa_open(target); + let window_id = $(this).attr('data-window'); + dt_qa_open(target, null, window_id); }); }; @@ -1258,7 +1264,7 @@ var dt_generate_qa_url = function (table, url){ return url; }; -var dt_qa_open = function (url, modal_id){ +var dt_qa_open = function (url, modal_id, window_id){ if (!modal_id) modal_id = "modal-dynamic-form"; if (!$('#' + modal_id).length){ let src = '<div class="modal" id="' + modal_id + '" tabindex="-1" role="dialog"'; @@ -1266,6 +1272,8 @@ var dt_qa_open = function (url, modal_id){ $("#message").after(src); } short_wait(); + let data = {}; + if (window_id) data["window_id"] = window_id; $.ajax({ url: url, cache: false, @@ -1283,6 +1291,7 @@ var dt_qa_open = function (url, modal_id){ let table_scroll_height = $(window).height() - 180; $(".table-scroll table").height(table_scroll_height + "px"); }, + data: data, error: function() { close_wait(); } diff --git a/ishtar_common/templates/ishtar/blocks/window_nav.html b/ishtar_common/templates/ishtar/blocks/window_nav.html index b30fc683b..c389147e4 100644 --- a/ishtar_common/templates/ishtar/blocks/window_nav.html +++ b/ishtar_common/templates/ishtar/blocks/window_nav.html @@ -1,11 +1,18 @@ {% load l10n i18n ishtar_helpers %} <script type="text/javascript">{% localize off %} var current_url_{{window_id_underscore}}; - var reload_window_{{window_id_underscore}} = function() { + var reload_window_{{window_id_underscore}} = function(parameters) { /* reload put the sheet at the end of list - force other to be close in order to not loose the current sheet */ $(".sheet > .collapse").removeClass("show"); load_window(current_url_{{window_id_underscore}}, - '', function(){hide_window("{{window_id}}");}, + '', function(){ + hide_window("{{window_id}}"); + if (parameters && parameters["window-id"]){ + let window_id = parameters["window-id"]; + let window_tab = parameters["window-tab"]; + $("a[id^=" + window_id + "][id$=" + window_tab + "]").tab("show"); + } + }, true); }; {% endlocalize %}</script> diff --git a/ishtar_common/templates/ishtar/forms/modify_relations.html b/ishtar_common/templates/ishtar/forms/modify_relations.html index 419d94c9a..98daf68e4 100644 --- a/ishtar_common/templates/ishtar/forms/modify_relations.html +++ b/ishtar_common/templates/ishtar/forms/modify_relations.html @@ -57,7 +57,6 @@ $(document).on("click", '.check-all-relations', function(){ $('input[id$="-DELETE"]:checkbox').prop('checked', $(this).is(':checked')); });{% if window_id %} - console.log("{{window_id}}"); modal_on_close["modal-dynamic-form"] = reload_window_{{window_id}}; {% endif %} {% block js_ready %} |
