Omada widget : spliting widget between WLAN and LAN/WAN fields to have no more than 5 fields per widget.

This commit is contained in:
Benoit 2022-12-13 09:33:50 +01:00
parent e12cc65c77
commit a1babd860c
7 changed files with 64 additions and 14 deletions

View file

@ -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")),

View file

@ -24,11 +24,6 @@ export default function Component({ service }) {
<Block label="omada.activeUser" />
<Block label="omada.alerts" />
<Block label="omada.isolatedAp" />
<Block label="omada.connectedGateway" />
<Block label="omada.powerConsumption" />
<Block label="omada.availablePorts" />
<Block label="omada.connectedSwitches" />
</Container>
);
}
@ -39,11 +34,6 @@ export default function Component({ service }) {
<Block label="omada.activeUser" value={t( "common.number", { value: omadaData.activeUser })} />
<Block label="omada.alerts" value={t( "common.number", { value: omadaData.alerts })} />
<Block label="omada.isolatedAp" value={t("common.number", { value: omadaData.isolatedAp})} />
<Block label="omada.connectedGateway" value={t("common.number", { value: omadaData.connectedGateways})}/>
<Block label="omada.powerConsumption" value={t("common.power", { value: omadaData.powerConsumption})}/>
<Block label="omada.availablePorts" value={t("common.number", { value: omadaData.availablePorts})}/>
<Block label="omada.connectedSwitches" value={t("common.number", { value: omadaData.connectedSwitches})} />
</Container>
);
}

View file

@ -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,
}));
}
}

View file

@ -8,7 +8,6 @@ const widget = {
mappings: {
stats: {
endpoint: "controller",
}
}
};

View file

@ -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 <Container error={omadaAPIError} />;
}
if (!omadaData) {
return (
<Container service={service}>
<Block label="omada.alerts" />
<Block label="omada.connectedGateway" />
<Block label="omada.powerConsumption" />
<Block label="omada.availablePorts" />
<Block label="omada.connectedSwitches" />
</Container>
);
}
return (
<Container service={service}>
<Block label="omada.alerts" value={t( "common.number", { value: omadaData.alerts })} />
<Block label="omada.connectedGateway" value={t("common.number", { value: omadaData.connectedGateways})}/>
<Block label="omada.powerConsumption" value={t("common.power", { value: omadaData.powerConsumption})}/>
<Block label="omada.availablePorts" value={t("common.number", { value: omadaData.availablePorts})}/>
<Block label="omada.connectedSwitches" value={t("common.number", { value: omadaData.connectedSwitches})} />
</Container>
);
}

View file

@ -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;

View file

@ -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,