diff --git a/src/widgets/truenas/component.jsx b/src/widgets/truenas/component.jsx index 12ceef564..712a5115b 100644 --- a/src/widgets/truenas/component.jsx +++ b/src/widgets/truenas/component.jsx @@ -12,8 +12,8 @@ export default function Component({ service }) { const { data: alertData, error: alertError } = useWidgetAPI(widget, "alerts"); const { data: statusData, error: statusError } = useWidgetAPI(widget, "status"); - const { data: poolsData, error: poolsError } = useWidgetAPI(widget, widget?.enablePools ? "pools" : null); - const { data: datasetData, error: datasetError } = useWidgetAPI(widget, widget?.enablePools ? "dataset" : null); + const { data: poolsData, error: poolsError } = useWidgetAPI(widget, widget?.enablePools ? "pools" : ""); + const { data: datasetData, error: datasetError } = useWidgetAPI(widget, widget?.enablePools ? "dataset" : ""); if (alertError || statusError || poolsError) { const finalError = alertError ?? statusError ?? poolsError ?? datasetError; diff --git a/src/widgets/truenas/widget.js b/src/widgets/truenas/widget.js index 528114edb..02993c6b4 100644 --- a/src/widgets/truenas/widget.js +++ b/src/widgets/truenas/widget.js @@ -1,23 +1,26 @@ import { asJson, jsonArrayFilter } from "utils/proxy/api-helpers"; -import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; +import truenasProxyHandler from "./proxy"; const widget = { api: "{url}/api/v2.0/{endpoint}", - proxyHandler: credentialedProxyHandler, + proxyHandler: truenasProxyHandler, mappings: { alerts: { endpoint: "alert/list", + wsMethod: "alert.list", map: (data) => ({ pending: jsonArrayFilter(data, (item) => item?.dismissed === false).length, }), }, status: { endpoint: "system/info", + wsMethod: "system.info", validate: ["loadavg", "uptime_seconds"], }, pools: { endpoint: "pool", + wsMethod: "pool.query", map: (data) => asJson(data).map((entry) => ({ id: entry.name, @@ -27,6 +30,7 @@ const widget = { }, dataset: { endpoint: "pool/dataset", + wsMethod: "pool.dataset.query", }, }, };