diff --git a/public/locales/en/common.json b/public/locales/en/common.json
index 9dd10d04..2076b671 100755
--- a/public/locales/en/common.json
+++ b/public/locales/en/common.json
@@ -315,10 +315,14 @@
},
"glances": {
"cpu": "CPU",
- "mem": "MEM",
+ "load": "Load",
"wait": "Please wait",
"temp": "TEMP",
+ "warn": "Warn",
"uptime": "UP",
+ "total": "Total",
+ "free": "Free",
+ "used": "Used",
"days": "d",
"hours": "h"
},
diff --git a/src/components/widgets/glances/glances.jsx b/src/components/widgets/glances/glances.jsx
index fc0d21ed..d3da7200 100644
--- a/src/components/widgets/glances/glances.jsx
+++ b/src/components/widgets/glances/glances.jsx
@@ -1,7 +1,7 @@
import useSWR from "swr";
import { BiError } from "react-icons/bi";
import { FaMemory, FaRegClock, FaThermometerHalf } from "react-icons/fa";
-import { FiCpu } from "react-icons/fi";
+import { FiCpu, FiHardDrive } from "react-icons/fi";
import { useTranslation } from "next-i18next";
import UsageBar from "../resources/usage-bar";
@@ -88,8 +88,12 @@ export default function Widget({ options }) {
}
const tempPercent = Math.round((mainTemp / maxTemp) * 100);
+ const disks = Array.isArray(options.disk)
+ ? options.disk.map((disk) => data.fs.find((d) => d.mnt_point === disk)).filter((d) => d)
+ : [data.fs.find((d) => d.mnt_point === options.disk)].filter((d) => d);
+
return (
-
+
@@ -97,7 +101,7 @@ export default function Widget({ options }) {
{t("common.number", {
- value: data.quicklook.cpu,
+ value: data.cpu.total,
style: "unit",
unit: "percent",
maximumFractionDigits: 0,
@@ -105,7 +109,20 @@ export default function Widget({ options }) {
{t("glances.cpu")}
-
+ {options.expanded && (
+
+
+ {t("common.number", {
+ value: data.load.min15,
+ style: "unit",
+ unit: "percent",
+ maximumFractionDigits: 0,
+ })}
+
+ {t("glances.load")}
+
+ )}
+
@@ -113,18 +130,46 @@ export default function Widget({ options }) {
- {t("common.number", {
- value: data.quicklook.mem,
- style: "unit",
- unit: "percent",
- maximumFractionDigits: 0,
+ {t("common.bytes", {
+ value: data.mem.free,
+ maximumFractionDigits: 1,
+ binary: true,
})}
-
{t("glances.mem")}
+
{t("glances.free")}
-
+ {options.expanded && (
+
+
+ {t("common.bytes", {
+ value: data.mem.total,
+ maximumFractionDigits: 1,
+ binary: true,
+ })}
+
+ {t("glances.total")}
+
+ )}
+
+ {options.disk && disks.map((disk) => (
+
+
+
+
+ {t("common.bytes", { value: disk.free })}
+ {t("glances.free")}
+
+ {options.expanded && (
+
+ {t("common.bytes", { value: disk.size })}
+ {t("glances.total")}
+
+ )}
+
+
+
))}
{options.cputemp && mainTemp > 0 &&
(
@@ -140,6 +185,19 @@ export default function Widget({ options }) {
{t("glances.temp")}
+ {options.expanded && (
+
+
+ {t("common.number", {
+ value: maxTemp,
+ maximumFractionDigits: 1,
+ style: "unit",
+ unit
+ })}
+
+ {t("glances.warn")}
+
+ )}
)}
diff --git a/src/pages/api/widgets/glances.js b/src/pages/api/widgets/glances.js
index 46be14a0..9e1fed48 100644
--- a/src/pages/api/widgets/glances.js
+++ b/src/pages/api/widgets/glances.js
@@ -45,15 +45,21 @@ export default async function handler(req, res) {
const privateWidgetOptions = await getPrivateWidgetOptions("glances", index);
try {
- const quicklookData = await retrieveFromGlancesAPI(privateWidgetOptions, "quicklook");
+ const cpuData = await retrieveFromGlancesAPI(privateWidgetOptions, "cpu");
+ const loadData = await retrieveFromGlancesAPI(privateWidgetOptions, "load");
+ const uptimeData = await retrieveFromGlancesAPI(privateWidgetOptions, "uptime");
+ const sensorData = await retrieveFromGlancesAPI(privateWidgetOptions, "sensors");
+ const memoryData = await retrieveFromGlancesAPI(privateWidgetOptions, "mem");
+ const filesystemData = await retrieveFromGlancesAPI(privateWidgetOptions, "fs");
const data = {
- quicklook: quicklookData
+ cpu: cpuData,
+ load: loadData,
+ uptime: uptimeData,
+ sensors: sensorData,
+ mem: memoryData,
+ fs: filesystemData,
}
-
- data.uptime = await retrieveFromGlancesAPI(privateWidgetOptions, "uptime");
-
- data.sensors = await retrieveFromGlancesAPI(privateWidgetOptions, "sensors");
return res.status(200).send(data);
} catch (e) {