diff --git a/containers/libreportal/frontend/components/admin/config/js/config-manager.js b/containers/libreportal/frontend/components/admin/config/js/config-manager.js index 22cd309..24c87b3 100755 --- a/containers/libreportal/frontend/components/admin/config/js/config-manager.js +++ b/containers/libreportal/frontend/components/admin/config/js/config-manager.js @@ -162,8 +162,13 @@ if (typeof window.ConfigManager === 'undefined') { // Load configuration data const configData = await this.core.loadConfig(category); - // Populate sidebar with categories - this.sidebar.populateSidebar(); + // Populate sidebar with categories — but only when rendering into the + // admin shell. A `target` means an EMBEDDED render (the backup center's + // Configuration tab reuses this renderer inside its own pane), where + // config-categories-list legitimately does not exist; populating there + // logged "element not found" as an error on every repaint, and the + // refresh coordinator repaints on every task event. + if (!target) this.sidebar.populateSidebar(); if (Object.keys(configData).length === 0) { configSection.innerHTML = '
No configuration items found for this category.