From 96bbe0a51059a3f51f1185e542fa168d9f9a9e8c Mon Sep 17 00:00:00 2001 From: Mikhail Chusavitin Date: Mon, 2 Feb 2026 12:32:44 +0300 Subject: [PATCH] fix: use originalHTML to restore button state after sync - Pass originalHTML through syncAction function chain - Simplify finally block by restoring original button innerHTML - Remove hardcoded button HTML values (5 lines reduction) - Improve maintainability: button text changes won't break code - Preserve any custom classes, attributes, or nested elements This fixes the issue where originalHTML was declared but never used. Co-Authored-By: Claude Sonnet 4.5 --- web/templates/base.html | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/web/templates/base.html b/web/templates/base.html index 06ad0f2..f290f6d 100644 --- a/web/templates/base.html +++ b/web/templates/base.html @@ -103,9 +103,9 @@ button.innerHTML = ' Синхронизация...'; if (action === 'push-changes') { - pushPendingChanges(button); + pushPendingChanges(button, originalHTML); } else if (action === 'full-sync') { - fullSync(button); + fullSync(button, originalHTML); } } }); @@ -126,7 +126,7 @@ }); // Refactored sync action function to reduce duplication - async function syncAction(endpoint, successMessage, button) { + async function syncAction(endpoint, successMessage, button, originalHTML) { try { const resp = await fetch(endpoint, { method: 'POST' }); const data = await resp.json(); @@ -146,21 +146,17 @@ // Reset button state if (button) { button.disabled = false; - if (endpoint === '/api/sync/push') { - button.innerHTML = ' Push changes'; - } else { - button.innerHTML = ' Full sync'; - } + button.innerHTML = originalHTML; } } } - function pushPendingChanges(button) { - syncAction('/api/sync/push', 'Изменения синхронизированы', button); + function pushPendingChanges(button, originalHTML) { + syncAction('/api/sync/push', 'Изменения синхронизированы', button, originalHTML); } - function fullSync(button) { - syncAction('/api/sync/all', 'Полная синхронизация завершена', button); + function fullSync(button, originalHTML) { + syncAction('/api/sync/all', 'Полная синхронизация завершена', button, originalHTML); } async function checkDbStatus() {