summaryrefslogtreecommitdiff
path: root/ishtar_common/static/js/ishtar.js
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-08-10 18:13:55 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-16 16:38:32 +0200
commit8cbda24660d1dbf50980e1f77c5c12a27e0279f5 (patch)
tree0d8c082db7e937e62d3b3ae0fbbfb137c587db2e /ishtar_common/static/js/ishtar.js
parent78f4c43b6e2ce3d9cd22256ee5f8039cf5915ecd (diff)
downloadIshtar-8cbda24660d1dbf50980e1f77c5c12a27e0279f5.tar.bz2
Ishtar-8cbda24660d1dbf50980e1f77c5c12a27e0279f5.zip
🚸 imports: auto-refresh import state and progress
Diffstat (limited to 'ishtar_common/static/js/ishtar.js')
-rw-r--r--ishtar_common/static/js/ishtar.js56
1 files changed, 56 insertions, 0 deletions
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 = "<option value=''>--------</option>";
+ for (action_id in item["actions"]){
+ let action = item["actions"][action_id];
+ actions += "<option value='" + action[0] + "'>" + action[1] + "</option>";
+ }
+ 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"]
+ );
+ }
+ }
+}