From 5c5b677075f9e2b06554c6e3093d86dd6e1c358c Mon Sep 17 00:00:00 2001 From: Fernando Neira Date: Mon, 24 Oct 2022 18:09:48 -0300 Subject: [PATCH] improvements --- public/locales/en/common.json | 6 +++--- src/widgets/homebridge/component.jsx | 23 +++++++++++++++-------- src/widgets/homebridge/proxy.js | 22 ++++++++++++++++------ 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/public/locales/en/common.json b/public/locales/en/common.json index d41e30ed3..aa1d6601a 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -287,10 +287,10 @@ }, "homebridge": { "available_update": "System", + "updates": "Updates", "update_available": "Update Available", "up_to_date": "Up to Date", - "available_homebridge_update": "Plugins", - "plugins_updates_available": "{{quantity}} Available", - "plugins_up_to_date": "Up to Date" + "child_bridges": "Child Bridges", + "child_bridges_status": "{{ok}}/{{total}}" } } diff --git a/src/widgets/homebridge/component.jsx b/src/widgets/homebridge/component.jsx index bc6dd87d7..f8477cfcd 100644 --- a/src/widgets/homebridge/component.jsx +++ b/src/widgets/homebridge/component.jsx @@ -19,8 +19,8 @@ export default function Component({ service }) { return ( - - + + ); } @@ -32,13 +32,20 @@ export default function Component({ service }) { value={homebridge.data.status} /> - + {homebridge?.data?.childBridges.quantity > 0 && + } ); } diff --git a/src/widgets/homebridge/proxy.js b/src/widgets/homebridge/proxy.js index 7e666b53c..ea4c16543 100644 --- a/src/widgets/homebridge/proxy.js +++ b/src/widgets/homebridge/proxy.js @@ -70,6 +70,14 @@ function formatPluginsResponse(plugins) { } } +function formatChildBridgesResponse(childBridges) { + const quantity = childBridges?.data?.length + return { + quantity, + quantityWithOkStatus: childBridges?.data?.filter(cb => cb.status === "ok").length, + } +} + export default async function homebridgeProxyHandler(req, res) { const { group, service } = req.query; @@ -87,15 +95,17 @@ export default async function homebridgeProxyHandler(req, res) { await login(widget); - const statusRS = await apiCall(widget, "status/homebridge"); - const versionRS = await apiCall(widget, "status/homebridge-version"); - const pluginsRS = await apiCall(widget, "plugins"); + const statusRs = await apiCall(widget, "status/homebridge"); + const versionRs = await apiCall(widget, "status/homebridge-version"); + const childBrigdeRs = await apiCall(widget, "status/homebridge/child-bridges"); + const pluginsRs = await apiCall(widget, "plugins"); return res.status(200).send({ data: { - status: statusRS?.data?.status, - updateAvailable: versionRS?.data?.updateAvailable, - plugins: formatPluginsResponse(pluginsRS) + status: statusRs?.data?.status, + updateAvailable: versionRs?.data?.updateAvailable, + plugins: formatPluginsResponse(pluginsRs), + childBridges: formatChildBridgesResponse(childBrigdeRs), } }); }