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) => (
+
+ ))}
+
+ );
+}