From faae29d5f43bf06bfa152ff9775d4ed1c77b6019 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Fri, 17 Feb 2023 23:55:40 -0800
Subject: [PATCH] Kopia next run / last run
---
public/locales/en/common.json | 3 +-
src/widgets/kopia/component.jsx | 65 +++++++++++++++++++--------------
src/widgets/kopia/widget.js | 3 --
3 files changed, 40 insertions(+), 31 deletions(-)
diff --git a/public/locales/en/common.json b/public/locales/en/common.json
index 8e5d8e57..0bf28285 100755
--- a/public/locales/en/common.json
+++ b/public/locales/en/common.json
@@ -500,6 +500,7 @@
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
- "nextrun": "Next Run"
+ "nextrun": "Next Run",
+ "failed": "Failed"
}
}
\ No newline at end of file
diff --git a/src/widgets/kopia/component.jsx b/src/widgets/kopia/component.jsx
index 04b9eda7..dcc763e6 100755
--- a/src/widgets/kopia/component.jsx
+++ b/src/widgets/kopia/component.jsx
@@ -4,18 +4,46 @@ import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
+function relativeDate(date) {
+ const seconds = Math.abs(Math.floor((new Date() - date) / 1000));
+
+ let interval = Math.abs(seconds / 31536000);
+
+ if (interval > 1) {
+ return `${Math.floor(interval)} y`;
+ }
+ interval = seconds / 2592000;
+ if (interval > 1) {
+ return `${Math.floor(interval)} mo`;
+ }
+ interval = seconds / 86400;
+ if (interval > 1) {
+ return `${Math.floor(interval)} d`;
+ }
+ interval = seconds / 3600;
+ if (interval > 1) {
+ return `${Math.floor(interval)} h`;
+ }
+ interval = seconds / 60;
+ if (interval > 1) {
+ return `${Math.floor(interval)} m`;
+ }
+ return `${Math.floor(seconds)} s`;
+}
+
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: statusData, error: statusError } = useWidgetAPI(widget, "status");
- const { data: tasksData, error: tasksError } = useWidgetAPI(widget, "tasks");
- if (statusError || tasksError) {
- return ;
+ if (statusError) {
+ return ;
}
- if (!statusData || !tasksData) {
+ const source = statusData?.sources[0];
+
+ if (!statusData || !source) {
return (
@@ -26,32 +54,15 @@ export default function Component({ service }) {
);
}
- function fromTasks(task) {
- for (let i=0; i
-
-
-
-
+
+
+
+ {nextTime && }
);
}
\ No newline at end of file
diff --git a/src/widgets/kopia/widget.js b/src/widgets/kopia/widget.js
index ecee3b8a..58ed46c4 100755
--- a/src/widgets/kopia/widget.js
+++ b/src/widgets/kopia/widget.js
@@ -8,9 +8,6 @@ const widget = {
status: {
endpoint: "api/v1/sources",
},
- tasks: {
- endpoint: "api/v1/tasks",
- },
},
};