diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 3d9890f39..bb89cdaa0 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -51,7 +51,8 @@ "wlan_users": "WLAN Users", "up": "UP", "down": "DOWN", - "wait": "Please wait" + "wait": "Please wait", + "empty_data": "Subsystem status unknown" }, "docker": { "rx": "RX", diff --git a/src/components/widgets/unifi_console/unifi_console.jsx b/src/components/widgets/unifi_console/unifi_console.jsx index af8fd4586..13c90bd42 100644 --- a/src/components/widgets/unifi_console/unifi_console.jsx +++ b/src/components/widgets/unifi_console/unifi_console.jsx @@ -20,7 +20,6 @@ export default function Widget({ options }) {
{t("widget.api_error")} - -
@@ -28,7 +27,7 @@ export default function Widget({ options }) { ); } - const defaultSite = statsData?.data?.find(s => s.name === "default"); + const defaultSite = options.site ? statsData?.data.find(s => s.desc === options.site) : statsData?.data?.find(s => s.name === "default"); if (!defaultSite) { return ( @@ -55,6 +54,8 @@ export default function Widget({ options }) { const name = wan.gw_name ?? defaultSite.desc; const uptime = wan["gw_system-stats"] ? wan["gw_system-stats"].uptime : null; + const dataEmpty = !(wan.show || lan.show || wlan.show || uptime); + return (
@@ -64,6 +65,14 @@ export default function Widget({ options }) { {name}
+ {dataEmpty &&
+
+
+ + {t("unifi.empty_data")} +
+
+
}
{uptime &&
diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js index 352367d2e..e2e3055e0 100644 --- a/src/utils/config/service-helpers.js +++ b/src/utils/config/service-helpers.js @@ -233,6 +233,7 @@ export function cleanServiceGroups(groups) { currency, // coinmarketcap widget symbols, defaultinterval, + site, // unifi widget namespace, // kubernetes widget app, podSelector, @@ -256,6 +257,9 @@ export function cleanServiceGroups(groups) { if (server) cleanedService.widget.server = server; if (container) cleanedService.widget.container = container; } + if (type === "unifi") { + if (site) cleanedService.widget.site = site; + } if (type === "kubernetes") { if (namespace) cleanedService.widget.namespace = namespace; if (app) cleanedService.widget.app = app; diff --git a/src/widgets/unifi/component.jsx b/src/widgets/unifi/component.jsx index 6df43dfdb..ff3185169 100644 --- a/src/widgets/unifi/component.jsx +++ b/src/widgets/unifi/component.jsx @@ -15,7 +15,7 @@ export default function Component({ service }) { return ; } - const defaultSite = statsData?.data?.find(s => s.name === "default"); + const defaultSite = widget.site ? statsData?.data.find(s => s.desc === widget.site) : statsData?.data?.find(s => s.name === "default"); if (!defaultSite) { return ( @@ -38,6 +38,14 @@ export default function Component({ service }) { const uptime = wan["gw_system-stats"] ? `${t("common.number", { value: wan["gw_system-stats"].uptime / 86400, maximumFractionDigits: 1 })} ${t("unifi.days")}` : null; + if (!(wan.show || lan.show || wlan.show || uptime)) { + return ( + + + + ) + } + return ( {uptime && }