From 4a78006b2d911cd75b98a9bcd642046083d3d27f Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 13 May 2023 13:18:38 -0700 Subject: [PATCH] simplify pfsense widget, rename, limit blocks --- public/locales/en/common.json | 6 +- src/utils/config/service-helpers.js | 6 +- src/widgets/components.js | 2 +- src/widgets/pfsense/component.jsx | 51 ++++++++++++ src/widgets/{pfsenseapi => pfsense}/widget.js | 0 src/widgets/pfsenseapi/component.jsx | 83 ------------------- src/widgets/widgets.js | 4 +- 7 files changed, 60 insertions(+), 92 deletions(-) create mode 100644 src/widgets/pfsense/component.jsx rename src/widgets/{pfsenseapi => pfsense}/widget.js (100%) delete mode 100644 src/widgets/pfsenseapi/component.jsx diff --git a/public/locales/en/common.json b/public/locales/en/common.json index f0333438..79138cad 100755 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -514,9 +514,9 @@ "origin_ip": "Origin IP", "status": "Status" }, - "pfsenseapi": { - "load": "LOAD AVG", - "memory": "MEM USAGE", + "pfsense": { + "load": "Load Avg", + "memory": "Mem Usage", "wanStatus": "WAN Status", "up": "Up", "down": "Down", diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js index 80c13544..4942aeae 100644 --- a/src/utils/config/service-helpers.js +++ b/src/utils/config/service-helpers.js @@ -267,7 +267,7 @@ export function cleanServiceGroups(groups) { namespace, // kubernetes widget app, podSelector, - wan, // opnsense widget, pfsenseapi widget + wan, // opnsense widget, pfsense widget enableBlocks, // emby/jellyfin enableNowPlaying, volume, // diskstation widget @@ -299,10 +299,10 @@ export function cleanServiceGroups(groups) { if (app) cleanedService.widget.app = app; if (podSelector) cleanedService.widget.podSelector = podSelector; } - if (type === "opnsense" || type === "pfsenseapi") { + if (["opnsense", "pfsense"].includes(type)) { if (wan) cleanedService.widget.wan = wan; } - if (type === "emby" || type === "jellyfin") { + if (["emby", "jellyfin"].includes(type)) { if (enableBlocks !== undefined) cleanedService.widget.enableBlocks = JSON.parse(enableBlocks); if (enableNowPlaying !== undefined) cleanedService.widget.enableNowPlaying = JSON.parse(enableNowPlaying); } diff --git a/src/widgets/components.js b/src/widgets/components.js index 48e09284..754898bf 100644 --- a/src/widgets/components.js +++ b/src/widgets/components.js @@ -52,7 +52,7 @@ const components = { opnsense: dynamic(() => import("./opnsense/component")), overseerr: dynamic(() => import("./overseerr/component")), paperlessngx: dynamic(() => import("./paperlessngx/component")), - pfsenseapi: dynamic(() => import("./pfsenseapi/component")), + pfsense: dynamic(() => import("./pfsense/component")), photoprism: dynamic(() => import("./photoprism/component")), proxmoxbackupserver: dynamic(() => import("./proxmoxbackupserver/component")), pihole: dynamic(() => import("./pihole/component")), diff --git a/src/widgets/pfsense/component.jsx b/src/widgets/pfsense/component.jsx new file mode 100644 index 00000000..803f0307 --- /dev/null +++ b/src/widgets/pfsense/component.jsx @@ -0,0 +1,51 @@ +import { useTranslation } from "next-i18next"; + +import Container from "components/services/widget/container"; +import Block from "components/services/widget/block"; +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { t } = useTranslation(); + + const { widget } = service; + + const { data: systemData, error: systemError } = useWidgetAPI(widget, "system"); + const { data: interfaceData, error: interfaceError } = useWidgetAPI(widget, "interface"); + + const showWanIP = widget.fields?.filter(f => f !== 'wanIP').length <= 4 && widget.fields?.includes('wanIP'); + const showDiskUsage = widget.fields?.filter(f => f !== 'disk').length <= 4 && widget.fields?.includes('disk'); + + if (systemError || interfaceError) { + const finalError = systemError ?? interfaceError; + return ; + } + + if (!systemData || !interfaceData) { + return ( + + + + + + {showWanIP && } + {showDiskUsage && } + + ); + } + + const wan = interfaceData.data.filter(l => l.hwif === widget.wan)[0]; + + return ( + + + + + {t("pfsense.up")}: + {t("pfsense.down")}} + /> + {showWanIP && } + {showDiskUsage && } + + ); +} diff --git a/src/widgets/pfsenseapi/widget.js b/src/widgets/pfsense/widget.js similarity index 100% rename from src/widgets/pfsenseapi/widget.js rename to src/widgets/pfsense/widget.js diff --git a/src/widgets/pfsenseapi/component.jsx b/src/widgets/pfsenseapi/component.jsx deleted file mode 100644 index 4c8b3d67..00000000 --- a/src/widgets/pfsenseapi/component.jsx +++ /dev/null @@ -1,83 +0,0 @@ -import { useTranslation } from "next-i18next"; - -import Container from "components/services/widget/container"; -import Block from "components/services/widget/block"; -import useWidgetAPI from "utils/proxy/use-widget-api"; - -export default function Component({ service }) { - const { t } = useTranslation(); - - const { widget } = service; - - const { data: systemData, error: systemError } = useWidgetAPI(widget, "system"); - const { data: interfaceData, error: interfaceError } = useWidgetAPI(widget, "interface"); - - const showDiskUsage = widget.fields?.includes('disk'); - const showWanIP = widget.fields?.includes('wanIP'); - - if (systemError || interfaceError) { - const finalError = systemError ?? interfaceError; - return ; - } - - if (!systemData || !interfaceData) { - return ( - - - - - - {showWanIP && } - {showDiskUsage && } - - ); - } - - const loadAvg = systemData.data.load_avg[0]; - const memory = systemData.data.mem_usage; - const tempC = systemData.data.temp_c - const disk = systemData.data.disk_usage - - const wanState = interfaceData.data.filter(l => l.hwif === widget.wan)[0].status - const wanStatus = (wanState === "up") ? - {t("pfsenseapi.up")}: - {t("pfsenseapi.down")}; - const wanIP = interfaceData.data.filter(l => l.hwif === widget.wan)[0].ipaddr - - return ( - - - - - - { - showWanIP - && - - } - { - showDiskUsage - && - - } - - ); -} diff --git a/src/widgets/widgets.js b/src/widgets/widgets.js index 9cafc8c5..f7b07a96 100644 --- a/src/widgets/widgets.js +++ b/src/widgets/widgets.js @@ -46,7 +46,7 @@ import ombi from "./ombi/widget"; import opnsense from "./opnsense/widget"; import overseerr from "./overseerr/widget"; import paperlessngx from "./paperlessngx/widget"; -import pfsenseapi from "./pfsenseapi/widget"; +import pfsense from "./pfsense/widget"; import photoprism from "./photoprism/widget"; import proxmoxbackupserver from "./proxmoxbackupserver/widget"; import pihole from "./pihole/widget"; @@ -131,7 +131,7 @@ const widgets = { opnsense, overseerr, paperlessngx, - pfsenseapi, + pfsense, photoprism, proxmoxbackupserver, pihole,