From 6ff1da2496e3448b3ba1644d3edc71251b3d3e6b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 2 Mar 2026 18:10:41 +0000 Subject: [PATCH] feat(ui): redesign settings page with modern UX improvements - Add real-time search/filter bar for finding settings by name, key, or description - Add sidebar navigation with category icons and setting counts - Make category sections collapsible with smooth animations - Add mobile-friendly category dropdown selector - Show setting key as code badge for quick reference - Compact header with inline precedence/legend info - Add intersection observer for active category tracking in sidebar - Add no-results state with clear search action - Maintain all existing functionality (save, revert, bulk save, alerts) - Full dark mode compatibility via existing CSS overrides Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com> --- frontend/static/styles.css | 3 + frontend/templates/settings.html | 722 +++++++++++++++++++------------ 2 files changed, 460 insertions(+), 265 deletions(-) diff --git a/frontend/static/styles.css b/frontend/static/styles.css index f5e991ea..b7d9bacc 100644 --- a/frontend/static/styles.css +++ b/frontend/static/styles.css @@ -235,3 +235,6 @@ html.dark ::-webkit-scrollbar { width: 8px; height: 8px; } html.dark ::-webkit-scrollbar-track { background: #1f2937; } html.dark ::-webkit-scrollbar-thumb { background: #4b5563; border-radius: 4px; } html.dark ::-webkit-scrollbar-thumb:hover { background: #6b7280; } + +/* ---- Settings page: sidebar active state (dark) ---- */ +html.dark .bg-blue-50 { background-color: #1e3a5f; } diff --git a/frontend/templates/settings.html b/frontend/templates/settings.html index 971f3016..e73f605d 100644 --- a/frontend/templates/settings.html +++ b/frontend/templates/settings.html @@ -1,38 +1,73 @@ {% extends "base.html" %} {% block title %}Settings - DocuElevate{% endblock %} +{# Category icon mapping #} +{% set category_icons = { + 'Core': 'fas fa-server', + 'Authentication': 'fas fa-shield-alt', + 'AI Services': 'fas fa-robot', + 'OCR Engines': 'fas fa-file-alt', + 'Storage Providers': 'fas fa-cloud-upload-alt', + 'Email': 'fas fa-envelope', + 'IMAP': 'fas fa-inbox', + 'Monitoring': 'fas fa-chart-line', + 'Processing': 'fas fa-cogs', + 'Notifications': 'fas fa-bell', + 'Feature Flags': 'fas fa-toggle-on', + 'UI': 'fas fa-palette', + 'PDF/A Archival': 'fas fa-archive', + 'Deduplication': 'fas fa-clone', + 'Security': 'fas fa-lock', + 'Other': 'fas fa-ellipsis-h' +} %} + {% block head_extra %} {% endblock %} {% block content %} -
+
-
-
+
+
-

Application Settings

-

- This is a convenience feature to view and edit application settings through the web interface. +

Application Settings

+

+ Manage configuration. Priority: DB > + ENV > + DEFAULT +  ·  * = restart required  ·  = encrypted at rest

- - -
- -
- {% for category, settings_list in settings_data.items() %} -
- -
-

{{ category }}

+ +
+ + + + +
+ +
+ +
- -
- {% for setting in settings_list %} -
-
-
-
- - - - {{ setting.source_label }} - -
+ +
+ +

No settings found

+

Try a different search term or

+
-

- {{ setting.metadata.description }} -

+ + {% for category, settings_list in settings_data.items() %} +
+ +
+
+ +

{{ category }}

+ + {{ settings_list|length }} settings + +
+ +
- {% if setting.metadata.type == 'boolean' %} - -
- - -
- {% elif setting.metadata.type == 'slider' %} - -
- - -
- {% elif setting.metadata.type == 'multiselect' and setting.metadata.options %} - -
- {% for opt in setting.metadata.options %} - - {% endfor %} -
-

Effective value:

- {% elif setting.metadata.type == 'model_picker' %} - -
- - - {% for m in setting.metadata.suggested_models %} - - {% endfor %} - -

- - Pick from the list or type any model name supported by your provider. -

-
- {% elif setting.metadata.options %} - - - {% else %} - -
- {% if setting.metadata.sensitive %} - -
- -
- - - - - +
+
+
+ + + + {{ setting.source_label }} + + +
+ +

{{ setting.metadata.description }}

+ + {% if setting.metadata.type == 'boolean' %} + +
+ + +
+ {% elif setting.metadata.type == 'slider' %} + +
+ + +
+ {% elif setting.metadata.type == 'multiselect' and setting.metadata.options %} + +
+ {% for opt in setting.metadata.options %} + + {% endfor %} +
+

Effective value:

+ {% elif setting.metadata.type == 'model_picker' %} + +
+ + + {% for m in setting.metadata.suggested_models %} + + {% endfor %} + +

+ + Pick from the list or type any model name supported by your provider. +

+
+ {% elif setting.metadata.options %} + + + {% else %} + +
+ {% if setting.metadata.sensitive %} +
+ +
+ + + + +
+
+ {% else %} + + {% endif %} +
+ {% endif %} +
+ + +
+
- {% else %} - - - {% endif %}
- {% endif %} -
- - -
- - + {% endfor %}
-
+ {% endfor %} -
-
- {% endfor %} - -
- - + +
+ + +
+
- +