diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-06-26 14:14:12 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-06-26 14:14:12 +0200 |
| commit | 18d95208a6cfe3cfe03edcc333deff3af14ee6fd (patch) | |
| tree | 8d461bf2227807da8be2bb45bbaddfb94e5f084d | |
| parent | 886425410c20585a6cbf2003b98b406812f2478f (diff) | |
| download | Ishtar-18d95208a6cfe3cfe03edcc333deff3af14ee6fd.tar.bz2 Ishtar-18d95208a6cfe3cfe03edcc333deff3af14ee6fd.zip | |
✨ JS - manage reload on modal close with tab activation for direct action url
| -rw-r--r-- | archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html | 2 | ||||
| -rw-r--r-- | archaeological_finds/views.py | 9 | ||||
| -rw-r--r-- | ishtar_common/static/js/ishtar.js | 16 |
3 files changed, 21 insertions, 6 deletions
diff --git a/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html b/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html index c546cf725..09cee8cd7 100644 --- a/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html +++ b/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html @@ -20,7 +20,7 @@ <i class="fa fa-plus"></i> doc./image </a> {% if not statement_condition.initial or statement_condition.no_associated_statement_condition %} - <a class="btn-qa-confirm btn btn-danger" href="#" data-confirm="{% trans 'Are you sure to delete this statement condition?' %}" data-target="{% url 'find-statement-condition-delete' statement_condition.pk %}" title="{% trans 'Delete' %}"> + <a class="btn-qa-confirm btn btn-danger" href="#" data-confirm="{% trans 'Are you sure to delete this statement condition?' %}" data-target="{% url 'find-statement-condition-delete' statement_condition.pk %}" title="{% trans 'Delete' %}" data-window="{{sheet_id}}" data-window-tab="warehouse-tab"> <i class="fa fa-trash" aria-hidden="true"></i> </a> {% endif %} diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index b6ee6f37d..63301f778 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -1608,7 +1608,10 @@ def statement_condition_form(request, find_pk, statement_condition_pk=None, request.POST, current_item=item, user=request.user.ishtaruser) if form.is_valid(): form.save() - return HttpResponseRedirect(reverse("success")) + url = reverse("success") + message = str(_("Changes made successfully.")) + url += "?message=" + urllib.parse.quote(message) + return HttpResponseRedirect(url) else: form = forms_treatments.QAStatementCondition( current_item=item, user=request.user.ishtaruser, initial=initial) @@ -1623,7 +1626,9 @@ def statement_condition_form(request, find_pk, statement_condition_pk=None, url += "add" window_id = request.GET.get("window_id", "") window_tab = "warehouse-tab" - reload = "reload_window_" + window_id.replace("-", "_") + reload = "" + if window_id: + reload = "reload_window_" + window_id.replace("-", "_") window_id_root = "-".join(window_id.split("-")[:-1]) return render( request, diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index 3835d8677..cb3638e1c 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -1049,7 +1049,8 @@ var register_qa = function(){ $(".btn-qa").click(function(){ let target = $(this).attr('data-target'); let window_id = $(this).attr('data-window'); - dt_qa_open(target, null, window_id); + let window_tab = $(this).attr('data-window-tab'); + dt_qa_open(target, null, window_id, window_tab); }); }; @@ -1059,7 +1060,8 @@ var register_qa_confirm = function(){ let target = $(this).attr('data-target'); if (!confirm(confirm_message)) return; let window_id = $(this).attr('data-window'); - dt_qa_open(target, null, window_id); + let window_tab = $(this).attr('data-window-tab'); + dt_qa_open(target, null, window_id, window_tab); }); }; @@ -1264,7 +1266,7 @@ var dt_generate_qa_url = function (table, url){ return url; }; -var dt_qa_open = function (url, modal_id, window_id){ +var dt_qa_open = function (url, modal_id, window_id, window_tab){ if (!modal_id) modal_id = "modal-dynamic-form"; if (!$('#' + modal_id).length){ let src = '<div class="modal" id="' + modal_id + '" tabindex="-1" role="dialog"'; @@ -1290,6 +1292,14 @@ var dt_qa_open = function (url, modal_id, window_id){ $('#' + modal_id).modal("show"); let table_scroll_height = $(window).height() - 180; $(".table-scroll table").height(table_scroll_height + "px"); + if (window_id && window_tab){ + // reload the content and activate the tab + let current_window_id = $("div.card.sheet[id^=" + window_id + "]").attr('id').replaceAll('-', "_"); + let parameters = {}; + parameters["window-id"] = window_id; + parameters["window-tab"] = window_tab; + window["reload_window_" + current_window_id](parameters); + } }, data: data, error: function() { |
