fix(webui): flatten redundant components/admin/config/icons/config/ + repair engine logos
The config-category icons sat at admin/config/icons/CONFIG/ — the inner config/
duplicates the subsystem name; they belong in the icons root. Moved all 6
(backup, features, general, network, security, webui) up to
components/admin/config/icons/ and updated the two consumers (config-manager.js
header icon, config-sidebar.js category icons).
Also fixed the backup-engine logos: scripts/backup/engines/{restic,kopia,borg}
.json pointed 'logo' at /icons/config/backup.svg — a path that 404'd on two
counts (missing the components/admin/config prefix AND the now-removed config/
nesting), so the engine-details modal logo silently hid. Repointed to the real
served path /components/admin/config/icons/backup.svg.
(Left the meaningful icon groupings alone — admin/system/icons/{cpu,os} and
apps/core/icons/vpn are vendor/OS/provider logo sets, not redundant nesting.
The backup engines borrowing an admin-config icon is a minor smell; a dedicated
backup-engine icon could replace it later if wanted.)
Signed-off-by: librelad <librelad@digitalangels.vip>
|
Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 336 B |
|
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 331 B |
|
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 302 B |
|
Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 316 B |
|
Before Width: | Height: | Size: 356 B After Width: | Height: | Size: 356 B |
|
Before Width: | Height: | Size: 443 B After Width: | Height: | Size: 443 B |
@ -216,7 +216,7 @@ if (typeof window.ConfigManager === 'undefined') {
|
||||
var catIcon = catMeta.icon || category;
|
||||
var headerHTML =
|
||||
'<div class="page-header config-page-header">' +
|
||||
'<img class="page-header-icon" src="/components/admin/config/icons/config/' + catIcon + '.svg" alt="" onerror="this.style.display=\'none\'">' +
|
||||
'<img class="page-header-icon" src="/components/admin/config/icons/' + catIcon + '.svg" alt="" onerror="this.style.display=\'none\'">' +
|
||||
'<div class="page-header-title">' +
|
||||
'<div class="admin-breadcrumb">Config</div>' +
|
||||
'<h1>' + catTitle + '</h1>' +
|
||||
|
||||
@ -88,7 +88,7 @@ class ConfigSidebar {
|
||||
|
||||
// Use correct icon from our new structure
|
||||
const iconName = category.icon || category.id;
|
||||
const iconPath = '/components/admin/config/icons/config/' + iconName + '.svg';
|
||||
const iconPath = '/components/admin/config/icons/' + iconName + '.svg';
|
||||
|
||||
categoryItem.innerHTML = '<img src="' + iconPath + '" alt="' + category.title + '" style="width: 20px; height: 20px; margin-right: 8px;"/> ' + category.title;
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"id": "borg",
|
||||
"name": "BorgBackup",
|
||||
"tagline": "Encrypted, deduplicated, compressed — the original.",
|
||||
"logo": "/icons/config/backup.svg",
|
||||
"logo": "/components/admin/config/icons/backup.svg",
|
||||
"supported_types": ["local", "sftp"],
|
||||
"properties": [
|
||||
{"label": "Encryption", "value": "AES-256-CTR + HMAC-SHA-256"},
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"id": "kopia",
|
||||
"name": "Kopia",
|
||||
"tagline": "Modern fast backup with policies-as-data and built-in maintenance.",
|
||||
"logo": "/icons/config/backup.svg",
|
||||
"logo": "/components/admin/config/icons/backup.svg",
|
||||
"supported_types": ["local", "sftp"],
|
||||
"properties": [
|
||||
{"label": "Encryption", "value": "AES-256-GCM or ChaCha20-Poly1305"},
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"id": "restic",
|
||||
"name": "Restic",
|
||||
"tagline": "Modern encrypted backup with native deduplication.",
|
||||
"logo": "/icons/config/backup.svg",
|
||||
"logo": "/components/admin/config/icons/backup.svg",
|
||||
"supported_types": ["local", "sftp", "rest", "s3", "b2", "gs", "azure", "rclone"],
|
||||
"properties": [
|
||||
{"label": "Encryption", "value": "AES-256-CTR + Poly1305-AES authentication"},
|
||||
|
||||