+ Enable SAML SSO for enterprise authentication. Users can sign in using your organization's
+ identity provider (Azure AD, Okta, etc.). Local login can remain enabled as a fallback.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Keep enabled for admin fallback access
+
+
+
+
+ Automatically create user accounts on first SAML login
+
+
+
+
+ {{ samlMessage }}
+
+
+
+
+
+
User Management
+
+ Manage local user accounts and roles. Local accounts work alongside SAML when both are enabled.
+
+ Replace the shipped GE logos with your own site branding. Each logo can
+ be uploaded, or set to a path/URL directly. Leave blank to use the
+ bundled default.
+
+ Look up Dell coverage by service tag via the Dell TechDirect Warranty API.
+ When enabled, the Refresh button on a Dell warranty pulls the current service
+ level and end date. Requires a Dell TechDirect API client id and secret.
+
+ Configure SMTP settings to enable email notifications for alerts, toner reports,
+ and other system notifications.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ smtpMessage }}
+
+
+
+
+
+
+
+
{{ error }}
+
{{ success }}
+
+
+
+
diff --git a/frontend/src/views/settings/EmployeeDirectory.vue b/frontend/src/views/settings/EmployeeDirectory.vue
index 612442e..0d9642b 100644
--- a/frontend/src/views/settings/EmployeeDirectory.vue
+++ b/frontend/src/views/settings/EmployeeDirectory.vue
@@ -13,7 +13,7 @@
The directory is in external mode - people come from a
separate HR database, so there is nothing to manage here. To manage
people in-app, set employee_directory_mode to
- selfhosted under System Settings, then reload.
+ selfhosted under Site & Facility settings, then reload.
diff --git a/frontend/src/views/settings/FloorMapSettings.vue b/frontend/src/views/settings/FloorMapSettings.vue
new file mode 100644
index 0000000..624918f
--- /dev/null
+++ b/frontend/src/views/settings/FloorMapSettings.vue
@@ -0,0 +1,100 @@
+
+
+
+
Floor Map
+
+
+
+
+
Facility Blueprint
+
+ The floor-plan image and its pixel dimensions for this facility. Map
+ markers are positioned against these dimensions, so the width and
+ height must match the native size of the blueprint image. Leave the
+ image paths at their defaults to use the bundled sitemap.
+
+ When the collector ingests a PC, its imaging pc-type (from
+ C:\Enrollment\pc-type.txt) is mapped to one of your Computer Types.
+ Adjust the mapping per site.
+
+ Where printed QR codes point. Leave a target blank to link to the
+ asset's own page on this instance, or enter a custom URL template
+ with {placeholder} substitution.
+
+ Wire global search and ticket links to your ServiceNow instance. When
+ enabled, matching ticket numbers become clickable links and can trigger
+ a smart-redirect from global search. Defaults ship for GE; change them
+ for your site.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ error }}
+
{{ success }}
+
+
+
+
diff --git a/frontend/src/views/settings/SettingsLayout.vue b/frontend/src/views/settings/SettingsLayout.vue
index 02e4056..ee2fc20 100644
--- a/frontend/src/views/settings/SettingsLayout.vue
+++ b/frontend/src/views/settings/SettingsLayout.vue
@@ -59,20 +59,11 @@ const visibleGroups = computed(() => {
.filter(g => g.cards.length)
})
-// A rail link is active when the current path matches its base path
-// (ignoring query, so /settings/system?tab=map and /settings/system stay distinct
-// only by their own comparison below).
+// A rail link is active when the current path matches its base path.
+// Every settings section is now its own page, so a plain path compare suffices.
function isActive(to) {
const base = to.split('?')[0]
- const query = to.includes('?') ? to.split('?')[1] : ''
- if (route.path !== base) return false
- // Floor Map shares /settings/system with System Settings; disambiguate by tab.
- if (base === '/settings/system') {
- const wantMap = query.includes('tab=map')
- const onMap = route.query.tab === 'map'
- return wantMap === onMap
- }
- return true
+ return route.path === base
}
diff --git a/frontend/src/views/settings/SystemSettings.vue b/frontend/src/views/settings/SystemSettings.vue
deleted file mode 100644
index ec52a5f..0000000
--- a/frontend/src/views/settings/SystemSettings.vue
+++ /dev/null
@@ -1,1695 +0,0 @@
-
-
-
System Settings
-
-
-
-
-
-
-
-
-
-
-
-
-
Integrations
-
-
-
Zabbix Integration
-
- Connect to Zabbix for real-time printer supply monitoring. When enabled, supply levels
- are fetched from Zabbix API and displayed on printer detail pages.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ zabbixMessage }}
-
-
-
-
-
Dell Warranty Lookup
-
- Look up Dell coverage by service tag via the Dell TechDirect Warranty API.
- When enabled, the Refresh button on a Dell warranty pulls the current service
- level and end date. Requires a Dell TechDirect API client id and secret.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ dellMessage }}
-
-
-
-
-
ServiceNow
-
- Wire global search and ticket links to your ServiceNow instance. When
- enabled, matching ticket numbers become clickable links and can trigger
- a smart-redirect from global search. Defaults ship for GE; change them
- for your site.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Branding
-
-
-
- Replace the shipped GE logos with your own site branding. Each logo can
- be uploaded, or set to a path/URL directly. Leave blank to use the
- bundled default.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Printing & Labels
-
-
-
- Where printed QR codes point. Leave a target blank to link to the
- asset's own page on this instance, or enter a custom URL template
- with {placeholder} substitution.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Email / SMTP
-
-
-
Email Notifications
-
- Configure SMTP settings to enable email notifications for alerts, toner reports,
- and other system notifications.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ smtpMessage }}
-
-
-
-
-
-
-
-
-
-
Audit & Logging
-
-
-
Audit Log Retention
-
- Configure how long audit logs are retained. Older logs will be automatically purged.
- Set to 0 to keep logs indefinitely.
-
-
-
-
-
-
-
- View Audit Logs →
-
-
-
-
-
-
-
Floor Map
-
-
-
Facility Blueprint
-
- The floor-plan image and its pixel dimensions for this facility. Map
- markers are positioned against these dimensions, so the width and
- height must match the native size of the blueprint image. Leave the
- image paths at their defaults to use the bundled sitemap.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Authentication
-
-
-
SAML Single Sign-On
-
- Enable SAML SSO for enterprise authentication. Users can sign in using your organization's
- identity provider (Azure AD, Okta, etc.). Local login can remain enabled as a fallback.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Keep enabled for admin fallback access
-
-
-
-
- Automatically create user accounts on first SAML login
-
-
-
-
- {{ samlMessage }}
-
-
-
-
-
-
User Management
-
- Manage local user accounts and roles. Local accounts work alongside SAML when both are enabled.
-
-
-
- Manage Users →
-
-
-
-
-
-
-
Asset Identifiers
-
-
-
- Enable or disable optional asset identifiers per asset type. When disabled
- for a type, the identifier is hidden from that type's forms and detail
- pages across the system.
-
-
-
-
-
-
-
Identifier
-
{{ col.label }}
-
-
-
-
-
{{ row.label }}
-
-
-
-
-
-
-
-
-
-
-
-
-
Global Search
-
-
-
- Choose which content types appear in global search results. Disabling a
- type here hides it from search without disabling the plugin elsewhere.
-
-
-
-
-
-
-
-
-
-
-
Collector PC Type Mapping
-
-
-
- When the collector ingests a PC, its imaging pc-type (from
- C:\Enrollment\pc-type.txt) is mapped to one of your Computer Types.
- Adjust the mapping per site.
-
+ Connect to Zabbix for real-time printer supply monitoring. When enabled, supply levels
+ are fetched from Zabbix API and displayed on printer detail pages.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ zabbixMessage }}
+
+
+
+
+
{{ error }}
+
{{ success }}
+
+
+
+
diff --git a/frontend/src/views/settings/settingsNav.js b/frontend/src/views/settings/settingsNav.js
index 5939cd7..7fd4a4c 100644
--- a/frontend/src/views/settings/settingsNav.js
+++ b/frontend/src/views/settings/settingsNav.js
@@ -1,15 +1,18 @@
// Shared settings navigation catalog.
// Used by SettingsLayout (left rail) and SettingsIndex (landing overview) so the
// grouping lives in one place.
-import { Factory, MapPin, Tag, Package, Droplets, Monitor, MonitorSmartphone, Laptop, Cog, Building, Globe, Link, Settings, FileText, Users, Puzzle, Bell, Network, Home, Wrench, Printer, Router, Palette, SlidersHorizontal, Contact } from 'lucide-vue-next'
+// Order: site identity + the reference-data catalogs users touch daily come
+// first, then the platform/system groups (integrations, communication, search,
+// plugins, access) cluster together at the end.
+import { Factory, MapPin, Tag, Package, Droplets, Monitor, MonitorSmartphone, Laptop, Cog, Building, Globe, Link, History, FileText, Users, Puzzle, Bell, Network, Home, Wrench, Printer, Router, Palette, SlidersHorizontal, Contact, Mail, ShieldCheck, KeyRound, Fingerprint, Search } from 'lucide-vue-next'
export const settingsGroups = [
{
title: 'Site & Facility',
cards: [
{ to: '/settings/site', icon: Home, title: 'Site & Facility', description: 'Site URL/FQDN, facility name, PC access domain, employee-ID pattern, printer hostname template' },
- { to: '/settings/system?tab=map', icon: MapPin, title: 'Floor Map', description: 'Facility floor-plan blueprint and dimensions' },
- { to: '/settings/system?tab=branding', icon: Palette, title: 'Branding', description: 'Site, QR, and badge logos, favicon, and primary brand color' },
+ { to: '/settings/floormap', icon: MapPin, title: 'Floor Map', description: 'Facility floor-plan blueprint image and pixel dimensions (width, height) for the site map' },
+ { to: '/settings/branding', icon: Palette, title: 'Branding', description: 'Site, QR, and badge logos, favicon, and brand primary, accent, sidebar, and theme colors' },
],
},
{
@@ -74,17 +77,41 @@ export const settingsGroups = [
{ to: '/settings/notificationtypes', icon: Bell, title: 'Notification Types', description: 'Manage notification types, display styles, colors, and auto-expiry' },
],
},
+ {
+ title: 'Integrations',
+ cards: [
+ { to: '/settings/servicenow', icon: Link, title: 'ServiceNow', description: 'ServiceNow ticket links (incident, change) prefixes and global-search redirect' },
+ { to: '/settings/zabbix', icon: Droplets, title: 'Zabbix Supplies', description: 'Zabbix API for real-time printer toner and supply monitoring' },
+ { to: '/settings/dellwarranty', icon: ShieldCheck, title: 'Dell Warranty', description: 'Dell TechDirect warranty API lookup by service tag' },
+ { to: '/settings/pctypemapping', icon: Laptop, title: 'Collector PC Types', description: 'Map collector enrollment imaging pc-type (shopfloor) to a Computer Type' },
+ ],
+ },
+ {
+ title: 'Communication',
+ cards: [
+ { to: '/settings/email', icon: Mail, title: 'Email / SMTP', description: 'SMTP mail host for email notifications, alerts, TLS, from address, and recipients' },
+ ],
+ },
+ {
+ title: 'Search & Identity',
+ cards: [
+ { to: '/settings/globalsearch', icon: Search, title: 'Global Search', description: 'Choose which content types (domains) appear in global search results' },
+ { to: '/settings/assetidentifiers', icon: Fingerprint, title: 'Asset Identifiers', description: 'Enable optional asset identifiers per type: gauge lab, maintenance, FQDN hostname' },
+ { to: '/settings/printing', icon: Printer, title: 'Printing & Labels', description: 'Printed QR code and USB label targets, barcode style, and URL templates' },
+ ],
+ },
{
title: 'System',
cards: [
- { to: '/settings/system', icon: Settings, title: 'System Settings', description: 'Integrations (ServiceNow, Zabbix), branding, identifiers, search, and PC-type mapping' },
{ to: '/settings/plugins', icon: Puzzle, title: 'Plugins', description: 'Enable or disable installed plugins' },
],
},
{
- title: 'Access & Audit',
+ title: 'Access & Security',
cards: [
+ { to: '/settings/authentication', icon: KeyRound, title: 'Authentication', description: 'SAML single sign-on (SSO) with your IdP, local login, and auto-create users' },
{ to: '/settings/users', icon: Users, title: 'Users & Roles', description: 'Manage user accounts and permissions' },
+ { to: '/settings/audit', icon: History, title: 'Audit & Logging', description: 'Audit log retention period and history purge policy' },
{ to: '/settings/auditlogs', icon: FileText, title: 'Audit Logs', description: 'View system activity and change history' },
],
},