diff --git a/docs/widgets/info/resources.md b/docs/widgets/info/resources.md index 7d1ea48d..72787af4 100644 --- a/docs/widgets/info/resources.md +++ b/docs/widgets/info/resources.md @@ -20,7 +20,6 @@ _Note: unfortunately, the package used for getting CPU temp ([systeminformation] cpu: true memory: true disk: /disk/mount/path - network: default # options: 'default' or active network interface name cputemp: true tempmin: 0 # optional, minimum cpu temp tempmax: 100 # optional, maximum cpu temp @@ -28,6 +27,7 @@ _Note: unfortunately, the package used for getting CPU temp ([systeminformation] units: imperial # only used by cpu temp, options: 'imperial' or 'metric' refresh: 3000 # optional, in ms diskUnits: bytes # optional, bytes (default) or bbytes. Only applies to disk + network: true # uses 'default' or specify a network interface name ``` You can also pass a `label` option, which allows you to group resources under named sections, diff --git a/src/components/widgets/resources/network.jsx b/src/components/widgets/resources/network.jsx index 8d6b5ec7..181ae063 100644 --- a/src/components/widgets/resources/network.jsx +++ b/src/components/widgets/resources/network.jsx @@ -7,17 +7,11 @@ import Error from "../widget/error"; export default function Network({ options, refresh = 1500 }) { const { t } = useTranslation(); + if (options.network === true) options.network = "default"; - const { data, error } = useSWR( - `/api/widgets/resources?type=network${ - options.network || (options.network !== "default" && options.network === `false`) - ? `&interfaceName=${options.network}` - : "" - }`, - { - refreshInterval: refresh, - }, - ); + const { data, error } = useSWR(`/api/widgets/resources?type=network&interfaceName=${options.network}`, { + refreshInterval: refresh, + }); if (error || data?.error) { return ; diff --git a/src/pages/api/widgets/resources.js b/src/pages/api/widgets/resources.js index fcdb0969..c3c41685 100644 --- a/src/pages/api/widgets/resources.js +++ b/src/pages/api/widgets/resources.js @@ -7,8 +7,7 @@ const logger = createLogger("resources"); const si = require("systeminformation"); export default async function handler(req, res) { - const { type, target } = req.query; - let { interfaceName } = req.query; + const { type, target, interfaceName = "default" } = req.query; if (type === "cpu") { const load = await si.currentLoad(); @@ -60,7 +59,9 @@ export default async function handler(req, res) { if (type === "network") { let networkData = await si.networkStats(); - if (interfaceName !== "default" && interfaceName !== undefined && interfaceName !== "false") { + let interfaceDefault; + logger.debug("networkData:", JSON.stringify(networkData)); + if (interfaceName && interfaceName !== "default") { networkData = networkData.filter((network) => network.iface === interfaceName)["0"]; if (!networkData) { return res.status(404).json({ @@ -68,8 +69,7 @@ export default async function handler(req, res) { }); } } else { - const interfaceDefault = await si.networkInterfaceDefault(); - interfaceName = interfaceDefault; + interfaceDefault = await si.networkInterfaceDefault(); networkData = networkData.filter((network) => network.iface === interfaceDefault)["0"]; if (!networkData) { return res.status(404).json({ @@ -79,7 +79,7 @@ export default async function handler(req, res) { } return res.status(200).json({ network: networkData, - interface: interfaceName, + interface: interfaceName !== "default" ? interfaceName : interfaceDefault, }); }