summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit886425410c20585a6cbf2003b98b406812f2478f (patch)
treeea5cd3cf4072aee6e7492b45352619fb605230f1
parent1a62ced48bb09998c86140419bb3cb30fa7d72d4 (diff)
downloadIshtar-886425410c20585a6cbf2003b98b406812f2478f.tar.bz2
Ishtar-886425410c20585a6cbf2003b98b406812f2478f.zip
✨ JS - manage reload on modal close with tab activation
-rw-r--r--archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html2
-rw-r--r--archaeological_finds/templates/ishtar/forms/qa_statement_condition_form.html15
-rw-r--r--archaeological_finds/views.py7
-rw-r--r--ishtar_common/static/js/ishtar.js19
-rw-r--r--ishtar_common/templates/ishtar/blocks/window_nav.html11
-rw-r--r--ishtar_common/templates/ishtar/forms/modify_relations.html1
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 %}