From: Alexander Moisseev Date: Fri, 12 Dec 2025 17:08:11 +0000 (+0300) Subject: [Minor] Return promise from destroyTable X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74af1539229dd29a9152d8562c50b09af979bedc;p=thirdparty%2Frspamd.git [Minor] Return promise from destroyTable Make destroyTable return FooTable's destruction promise and use promise chaining instead of arbitrary timeout --- diff --git a/interface/js/app/history.js b/interface/js/app/history.js index 966d6f3e46..579bab9dba 100644 --- a/interface/js/app/history.js +++ b/interface/js/app/history.js @@ -195,15 +195,13 @@ define(["jquery", "app/common", "app/libft", "footable"], version === prevVersion) { common.tables.history.rows.load(items); } else { - libft.destroyTable("history"); - // Is there a way to get an event when the table is destroyed? - setTimeout(() => { + libft.destroyTable("history").then(() => { libft.initHistoryTable(data, items, "history", get_history_columns(data), false, () => { $("#history .ft-columns-dropdown .btn-dropdown-apply").removeAttr("disabled"); ui.updateHistoryControlsState(); }); - }, 200); + }); } prevVersion = version; } else { diff --git a/interface/js/app/libft.js b/interface/js/app/libft.js index 0d5ddb3c5c..0d2024b422 100644 --- a/interface/js/app/libft.js +++ b/interface/js/app/libft.js @@ -235,9 +235,11 @@ define(["jquery", "app/common", "footable"], $("#" + table + " .ft-columns-btn.show").trigger("click.bs.dropdown"); // Hide dropdown $("#" + table + " .ft-columns-btn").attr("disabled", true); if (common.tables[table]) { - common.tables[table].destroy(); + const promise = common.tables[table].destroy(); delete common.tables[table]; + return promise; } + return new $.Deferred().resolve().promise(); }; ui.initHistoryTable = function (data, items, table, columnsDefault, expandFirst, postdrawCallback) {