From 6bb80ea11a7cec8478d81310cd7cc45d1927f42d Mon Sep 17 00:00:00 2001 From: Xinos Date: Thu, 17 Aug 2023 15:27:53 +0700 Subject: [PATCH] enumerateUpgraded method --- public/locales/en/common.json | 5 ++- src/widgets/openmediavault/component.jsx | 3 ++ .../methods/apt_enumerateUpgraded.jsx | 37 +++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 src/widgets/openmediavault/methods/apt_enumerateUpgraded.jsx diff --git a/public/locales/en/common.json b/public/locales/en/common.json index dc4fcd00..e6cce3ad 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -708,6 +708,9 @@ "running": "Running", "stopped": "Stopped", "passed": "Passed", - "failed": "Failed" + "failed": "Failed", + "yes": "Yes", + "no": "No", + "updatesAvailable": "updates available" } } diff --git a/src/widgets/openmediavault/component.jsx b/src/widgets/openmediavault/component.jsx index bd34a750..ebf1bbb2 100644 --- a/src/widgets/openmediavault/component.jsx +++ b/src/widgets/openmediavault/component.jsx @@ -1,6 +1,7 @@ import ServicesGetStatus from "./methods/services_get_status"; import SmartGetList from "./methods/smart_get_list"; import DownloaderGetDownloadList from "./methods/downloader_get_downloadlist"; +import AptEnumerateUpgraded from "./methods/apt_enumerateUpgraded"; export default function Component({ service }) { switch (service.widget.method) { @@ -10,6 +11,8 @@ export default function Component({ service }) { return ; case "downloader.getDownloadList": return ; + case "apt.enumerateUpgraded": + return ; default: return null; } diff --git a/src/widgets/openmediavault/methods/apt_enumerateUpgraded.jsx b/src/widgets/openmediavault/methods/apt_enumerateUpgraded.jsx new file mode 100644 index 00000000..d75503bf --- /dev/null +++ b/src/widgets/openmediavault/methods/apt_enumerateUpgraded.jsx @@ -0,0 +1,37 @@ +// noinspection JSUnresolvedVariable + +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"; + +const items = [ + { + label: "openmediavault.updatesAvailable", + getValue: (data, t) => (data.length > 0 ? t("openmediavault.yes") : t("openmediavault.no")), + }, +]; + +// noinspection DuplicatedCode +export default function Component({ service }) { + const { t } = useTranslation(); + const { data, error } = useWidgetAPI(service.widget); + + if (error) { + return ; + } + + const itemsWithData = items.map((item) => ({ + ...item, + number: data?.response ? item.getValue(data.response, t) : null, + })); + + return ( + + {itemsWithData.map((e) => ( + + ))} + + ); +}