From eda0e7cb4756a4ff700b16cc303fec87e7bcf319 Mon Sep 17 00:00:00 2001 From: Mikhail Chusavitin Date: Mon, 2 Feb 2026 14:51:38 +0300 Subject: [PATCH] debug: add logging to diagnose admin pricing page issue - Added immediate calls to checkDbStatus() and checkWritePermission() in base.html - Calls happen right after function definitions, before DOMContentLoaded - Added console.log statements to track function execution and API responses - Removed duplicate calls from admin_pricing.html to avoid conflicts - This will help diagnose why username and admin link disappear on admin pricing page Co-Authored-By: Claude Sonnet 4.5 --- web/templates/admin_pricing.html | 3 --- web/templates/base.html | 20 ++++++++++++++++++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/web/templates/admin_pricing.html b/web/templates/admin_pricing.html index c39020b..0618a30 100644 --- a/web/templates/admin_pricing.html +++ b/web/templates/admin_pricing.html @@ -891,9 +891,6 @@ document.addEventListener('DOMContentLoaded', () => { const initialTab = urlParams.get('tab') || 'alerts'; loadTab(initialTab); - // Check write permission for admin pricing link - checkWritePermission(); - // Add event listeners for preview updates document.getElementById('modal-period').addEventListener('change', fetchPreview); document.getElementById('modal-coefficient').addEventListener('input', debounceFetchPreview); diff --git a/web/templates/base.html b/web/templates/base.html index 6e04784..0756118 100644 --- a/web/templates/base.html +++ b/web/templates/base.html @@ -159,17 +159,21 @@ } async function checkDbStatus() { + console.log('[DEBUG] checkDbStatus called'); try { const resp = await fetch('/api/db-status'); const data = await resp.json(); + console.log('[DEBUG] checkDbStatus response:', data); const statusEl = document.getElementById('db-status'); const countsEl = document.getElementById('db-counts'); const userEl = document.getElementById('db-user'); + console.log('[DEBUG] userEl:', userEl); if (data.connected) { statusEl.innerHTML = 'БД: подключено'; if (data.db_user) { userEl.innerHTML = '@' + data.db_user; + console.log('[DEBUG] username set to:', data.db_user); } } else { statusEl.innerHTML = 'БД: ошибка - ' + data.error + ''; @@ -177,20 +181,27 @@ countsEl.textContent = 'lot: ' + data.lot_count + ' | lot_log: ' + data.lot_log_count + ' | metadata: ' + data.metadata_count; } catch(e) { + console.error('[DEBUG] checkDbStatus error:', e); document.getElementById('db-status').innerHTML = 'БД: нет связи'; } } async function checkWritePermission() { + console.log('[DEBUG] checkWritePermission called'); try { const resp = await fetch('/api/pricelists/can-write'); const data = await resp.json(); + console.log('[DEBUG] checkWritePermission response:', data); if (data.can_write) { const link = document.getElementById('admin-pricing-link'); - if (link) link.classList.remove('hidden'); + console.log('[DEBUG] admin-pricing-link element:', link); + if (link) { + link.classList.remove('hidden'); + console.log('[DEBUG] admin-pricing-link shown'); + } } } catch(e) { - console.error('Failed to check write permission:', e); + console.error('[DEBUG] checkWritePermission error:', e); } } @@ -210,6 +221,11 @@ } } + // Call functions immediately to ensure they run even before DOMContentLoaded + // This ensures username and admin link are visible ASAP + checkDbStatus(); + checkWritePermission(); + // Load last sync time when page loads document.addEventListener('DOMContentLoaded', loadLastSyncTime);