From 59205b990c5d0a915f6b96f0f057f05d84596173 Mon Sep 17 00:00:00 2001 From: Evgenii Alekseev Date: Wed, 18 Feb 2026 22:56:50 +0200 Subject: [PATCH] fix: speedup table reload by updating only changed statuses it has been found that on big (>100) repos it starts lagging on reload. This commit adds guard to avoid updating rows whose package statuses were not changed --- .../ahriman/templates/utils/bootstrap-scripts.jinja2 | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/package/share/ahriman/templates/utils/bootstrap-scripts.jinja2 b/package/share/ahriman/templates/utils/bootstrap-scripts.jinja2 index 4d8bf0c3..d769d1ce 100644 --- a/package/share/ahriman/templates/utils/bootstrap-scripts.jinja2 +++ b/package/share/ahriman/templates/utils/bootstrap-scripts.jinja2 @@ -198,13 +198,16 @@ function updateTable(table, rows) { // instead of using load method here, we just update rows manually to avoid table reinitialization const currentData = table.bootstrapTable("getData").reduce((accumulator, row) => { - accumulator[row.id] = row["0"]; + accumulator[row.id] = {state: row["0"], status: row.status}; return accumulator; }, {}); - // insert or update rows + // insert or update rows, skipping ones whose status hasn't changed rows.forEach(row => { if (Object.hasOwn(currentData, row.id)) { - row["0"] = currentData[row.id]; // copy checkbox state + if (row.status === currentData[row.id].status) { + return; + } + row["0"] = currentData[row.id].state; // copy checkbox state table.bootstrapTable("updateByUniqueId", { id: row.id, row: row,