From 2465ef7ca85330ee393d253c41435cfb57689d6c Mon Sep 17 00:00:00 2001 From: Pulse Monitor Date: Fri, 22 Aug 2025 10:56:50 +0000 Subject: [PATCH] feat: move discovery toggle to node tabs for better UX - Added discovery toggle directly on PVE and PBS node tabs - Toggle works instantly without needing to save - Discovered nodes only show when discovery is enabled - Removed discovery settings from System Settings tab - More intuitive placement right where discovery results appear --- .../src/components/Settings/Settings.tsx | 246 ++++++++++-------- 1 file changed, 133 insertions(+), 113 deletions(-) diff --git a/frontend-modern/src/components/Settings/Settings.tsx b/frontend-modern/src/components/Settings/Settings.tsx index 1bbf8da7f..165aeb9b4 100644 --- a/frontend-modern/src/components/Settings/Settings.tsx +++ b/frontend-modern/src/components/Settings/Settings.tsx @@ -357,7 +357,8 @@ const Settings: Component = () => { setAllowedOrigins(systemSettings.allowedOrigins || '*'); // Connection timeout is backend-only // Load discovery settings - setDiscoveryEnabled(systemSettings.discoveryEnabled !== false); // Default to true + // Backend defaults to true, so we should respect that + setDiscoveryEnabled(systemSettings.discoveryEnabled ?? true); // Default to true if undefined setDiscoverySubnet(systemSettings.discoverySubnet || 'auto'); // Load auto-update settings setAutoUpdateEnabled(systemSettings.autoUpdateEnabled || false); @@ -401,8 +402,7 @@ const Settings: Component = () => { // PBS polling interval is now fixed at 10 seconds allowedOrigins: allowedOrigins(), // Connection timeout is backend-only - discoveryEnabled: discoveryEnabled(), - discoverySubnet: discoverySubnet(), + // Discovery settings are saved immediately on toggle updateChannel: updateChannel(), autoUpdateEnabled: autoUpdateEnabled(), autoUpdateCheckInterval: autoUpdateCheckInterval(), @@ -750,22 +750,66 @@ const Settings: Component = () => {

Proxmox VE Nodes

-
- +
+ {/* Discovery toggle */} + + + + + +
)} - {/* Discovered PVE nodes */} - n.type === 'pve')}> - {(server) => ( + {/* Discovered PVE nodes - only show when discovery is enabled */} + + n.type === 'pve')}> + {(server) => (
{ @@ -957,6 +1002,7 @@ const Settings: Component = () => {
)}
+
@@ -966,22 +1012,66 @@ const Settings: Component = () => {

Proxmox Backup Server Nodes

-
- +
+ {/* Discovery toggle */} + + + + + +
)} - {/* Discovered PBS nodes */} - n.type === 'pbs')}> - {(server) => ( + {/* Discovered PBS nodes - only show when discovery is enabled */} + + n.type === 'pbs')}> + {(server) => (
{ @@ -1135,6 +1226,7 @@ const Settings: Component = () => {
)}
+
@@ -1209,78 +1301,6 @@ const Settings: Component = () => {
- {/* Discovery Settings */} -
- -

Automatically scan for Proxmox/PBS servers on your network

- - {/* Discovery Toggle */} -
- Enable Discovery - -
- - {/* Discovery Subnet */} - -
- -

Use "auto" for automatic detection or specify CIDR (e.g., 192.168.1.0/24)

- { - if (!envOverrides().discoverySubnet) { - setDiscoverySubnet(e.currentTarget.value); - setHasUnsavedChanges(true); - } - }} - disabled={envOverrides().discoverySubnet} - placeholder="auto" - class={`w-full px-3 py-1.5 text-sm border rounded-lg ${ - envOverrides().discoverySubnet - ? 'border-amber-300 dark:border-amber-600 bg-amber-50 dark:bg-amber-900/20 cursor-not-allowed opacity-75' - : 'border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800' - }`} - /> - {envOverrides().discoverySubnet && ( -
-
- - - - Overridden by DISCOVERY_SUBNET environment variable -
-
- )} -
-
- - {envOverrides().discoveryEnabled && ( -
-
- - - - Overridden by DISCOVERY_ENABLED environment variable -
-
- )} -
-

Port Configuration: Use systemctl edit pulse