From 8cbda24660d1dbf50980e1f77c5c12a27e0279f5 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 10 Aug 2023 18:13:55 +0200 Subject: 🚸 imports: auto-refresh import state and progress MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ishtar_common/static/js/ishtar.js | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'ishtar_common/static') diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index 1c7474c57..1656cb427 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -2107,3 +2107,59 @@ var bs_hide_table = function(name){ $("#grid_" + name).DataTable().clear().draw(); current_modal = null; } + +var import_table_import_state = new Array(); + +var import_table_update_import_list = function(import_ids){ + $.post('/import-get-status/', + {items: import_ids}, + import_table_refresh_import_list + ); +} + +var import_table_refresh_import_item = function(item){ + $("#status-" + item["full_id"]).html(item["status"]); + let display = "display:none"; + if (item["state"] == "IP" || item["state"] == "PP"){ + display = ""; + } + $("#progress-display-" + item["full_id"]).attr("style", display); + let actions = ""; + for (action_id in item["actions"]){ + let action = item["actions"][action_id]; + actions += ""; + } + if (!import_table_import_state[item["full_id"]]){ + import_table_import_state[item["full_id"]] = actions; + } + if (import_table_import_state[item["full_id"]] != actions){ + $("#import-action-" + item["full_id"]).html(actions); + import_table_import_state[item["full_id"]] = actions; + } +}; + +var import_table_refresh_import_list = function(data){ + for (item_id in data["group"]){ + let item = data["group"][item_id]; + import_table_refresh_import_item(item); + } + for (item_id in data["import"]){ + let item = data["import"][item_id]; + import_table_refresh_import_item(item); + if (item["current_line"]){ + $("#progress-" + item["full_id"]).attr("aria-valuenow", item["current_line"]); + $("#progress-" + item["full_id"]).attr("aria-valuemax", item["status"]); + $("#progress-" + item["full_id"]).attr("style", "width: " + item["progress_percent"] + "%"); + let cls = "progress-bar progress-bar-striped "; + if (item["state"] == "IP"){ + $("#progress-" + item["full_id"]).removeClass("bg-info").addClass("bg-success"); + } else { + $("#progress-" + item["full_id"]).removeClass("bg-success").addClass("bg-info"); + } + cls += " progress-bar-animated"; + $("#progress-" + item["full_id"]).html( + item["current_line"] + "/" + item["number_of_line"] + ); + } + } +} -- cgit v1.2.3