From a1babd860ce8a2dd6981b7fef6e055e249cbccb2 Mon Sep 17 00:00:00 2001 From: Benoit Date: Tue, 13 Dec 2022 09:33:50 +0100 Subject: [PATCH] Omada widget : spliting widget between WLAN and LAN/WAN fields to have no more than 5 fields per widget. --- src/widgets/components.js | 1 + src/widgets/omada/component.jsx | 10 -------- src/widgets/omada/proxy.js | 6 +++-- src/widgets/omada/widget.js | 1 - src/widgets/omadalan/component.jsx | 41 ++++++++++++++++++++++++++++++ src/widgets/omadalan/widget.js | 15 +++++++++++ src/widgets/widgets.js | 4 ++- 7 files changed, 64 insertions(+), 14 deletions(-) create mode 100644 src/widgets/omadalan/component.jsx create mode 100644 src/widgets/omadalan/widget.js diff --git a/src/widgets/components.js b/src/widgets/components.js index 681b877cb..7f3477e2b 100644 --- a/src/widgets/components.js +++ b/src/widgets/components.js @@ -25,6 +25,7 @@ const components = { npm: dynamic(() => import("./npm/component")), nzbget: dynamic(() => import("./nzbget/component")), omada: dynamic(() => import("./omada/component")), + omadalan: dynamic(() => import("./omadalan/component")), ombi: dynamic(() => import("./ombi/component")), overseerr: dynamic(() => import("./overseerr/component")), paperlessngx: dynamic(() => import("./paperlessngx/component")), diff --git a/src/widgets/omada/component.jsx b/src/widgets/omada/component.jsx index e234d1d57..c2bce9337 100644 --- a/src/widgets/omada/component.jsx +++ b/src/widgets/omada/component.jsx @@ -24,11 +24,6 @@ export default function Component({ service }) { - - - - - ); } @@ -39,11 +34,6 @@ export default function Component({ service }) { - - - - - ); } diff --git a/src/widgets/omada/proxy.js b/src/widgets/omada/proxy.js index cba05d73c..ed1fd30fa 100644 --- a/src/widgets/omada/proxy.js +++ b/src/widgets/omada/proxy.js @@ -5,7 +5,7 @@ import createLogger from "utils/logger"; import widgets from "widgets/widgets"; const proxyName = "omadaProxyHandler"; -// const tokenCacheKey = `${proxyName}__token`; + const logger = createLogger(proxyName); @@ -61,6 +61,7 @@ export default async function omadaProxyHandler(req, res) { let cversion; let connectedAp; let isolatedAp; + let disconnectedAp; let activeuser; let connectedSwitches; let connectedGateways; @@ -210,6 +211,7 @@ export default async function omadaProxyHandler(req, res) { connectedAp = data.result.connectedAp; activeuser = data.result.activeUser; isolatedAp = data.result.isolatedAp; + disconnectedAp = data.result.disconnectedAp; alerts = data.result.alerts; } else { @@ -274,7 +276,7 @@ export default async function omadaProxyHandler(req, res) { "connectedSwitches": connectedSwitches, "availablePorts": availablePorts, "powerConsumption": powerConsumption, - + "disconnectedAp": disconnectedAp, })); } } diff --git a/src/widgets/omada/widget.js b/src/widgets/omada/widget.js index 959487af4..0ef4177e0 100644 --- a/src/widgets/omada/widget.js +++ b/src/widgets/omada/widget.js @@ -8,7 +8,6 @@ const widget = { mappings: { stats: { endpoint: "controller", - } } }; diff --git a/src/widgets/omadalan/component.jsx b/src/widgets/omadalan/component.jsx new file mode 100644 index 000000000..953ab0369 --- /dev/null +++ b/src/widgets/omadalan/component.jsx @@ -0,0 +1,41 @@ +import { useTranslation } from "next-i18next"; + +import useWidgetAPI from "../../utils/proxy/use-widget-api"; +import Container from "../../components/services/widget/container"; +import Block from "../../components/services/widget/block"; + +export default function Component({ service }) { + const { t } = useTranslation(); + + const { widget } = service; + + const { data: omadaData, error: omadaAPIError } = useWidgetAPI(widget, "stats", { + refreshInterval: 5000, + }); + + if (omadaAPIError) { + return ; + } + + if (!omadaData) { + return ( + + + + + + + + ); + } + + return ( + + + + + + + + ); +} diff --git a/src/widgets/omadalan/widget.js b/src/widgets/omadalan/widget.js new file mode 100644 index 000000000..e7775bdd1 --- /dev/null +++ b/src/widgets/omadalan/widget.js @@ -0,0 +1,15 @@ +import omadaProxyHandler from "../omada/proxy"; +// import genericProxyHandler from "../../utils/proxy/handlers/generic"; + +const widget = { + api: "{url}/web/v1/{endpoint}", + proxyHandler: omadaProxyHandler, + + mappings: { + stats: { + endpoint: "controller", + } + } +}; + +export default widget; diff --git a/src/widgets/widgets.js b/src/widgets/widgets.js index 6b2379507..f458eaed7 100644 --- a/src/widgets/widgets.js +++ b/src/widgets/widgets.js @@ -19,6 +19,8 @@ import mastodon from "./mastodon/widget"; import navidrome from "./navidrome/widget"; import npm from "./npm/widget"; import nzbget from "./nzbget/widget"; +import omada from "./omada/widget"; +import omadalan from './omadalan/widget'; import ombi from "./ombi/widget"; import overseerr from "./overseerr/widget"; import paperlessngx from "./paperlessngx/widget"; @@ -43,7 +45,6 @@ import transmission from "./transmission/widget"; import tubearchivist from "./tubearchivist/widget"; import truenas from "./truenas/widget"; import unifi from "./unifi/widget"; -import omada from "./omada/widget"; import watchtower from './watchtower/widget' const widgets = { @@ -70,6 +71,7 @@ const widgets = { npm, nzbget, omada, + omadalan, ombi, overseerr, paperlessngx,