added swizzin and glances service widgets
swizzin is a seedbox and made a service widget version for glances
This commit is contained in:
parent
40bd4d5dfe
commit
71b1faef12
50
src/widgets/glances/component.jsx
Normal file
50
src/widgets/glances/component.jsx
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import Block from "components/services/widget/block";
|
||||||
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
function convertToFahrenheit(t) {
|
||||||
|
return t * 9/5 + 32;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function GlancesStats({ service }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
const { widget } = service;
|
||||||
|
|
||||||
|
const { data: memData, error: memError } = useWidgetAPI(widget, "mem");
|
||||||
|
const { data: tempData, error: tempError } = useWidgetAPI(widget, "temp");
|
||||||
|
|
||||||
|
if (memError || tempError) {
|
||||||
|
return <Container error={memError || tempError} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!memData || !tempData) {
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="Memory Usage" value="N/A" />
|
||||||
|
<Block label="Temperature" value="N/A" />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const unit = "celsius";
|
||||||
|
const memPercent = Math.round((memData.used / memData.total) * 100);
|
||||||
|
const tempValue = tempData[0].value;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="Memory" value={`${memPercent}%`} />
|
||||||
|
<Block
|
||||||
|
label="Temp"
|
||||||
|
value={`${t("common.number", {
|
||||||
|
value: unit === "celsius" ? tempValue : convertToFahrenheit(tempValue),
|
||||||
|
style: "unit",
|
||||||
|
unit,
|
||||||
|
maximumFractionDigits: 1,
|
||||||
|
})}`}
|
||||||
|
/>
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
24
src/widgets/glances/widget.js
Normal file
24
src/widgets/glances/widget.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||||
|
|
||||||
|
const widget = {
|
||||||
|
api: "{url}/api/3/{endpoint}",
|
||||||
|
proxyHandler: genericProxyHandler,
|
||||||
|
|
||||||
|
mappings: {
|
||||||
|
mem: {
|
||||||
|
endpoint: "mem",
|
||||||
|
},
|
||||||
|
temp: {
|
||||||
|
endpoint: "sensors",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default widget;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
36
src/widgets/swizzin/component.jsx
Normal file
36
src/widgets/swizzin/component.jsx
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import Block from "components/services/widget/block";
|
||||||
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
export default function SwizzinStats({ service }) {
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
const { widget } = service;
|
||||||
|
|
||||||
|
const { data: ramData, error: ramError } = useWidgetAPI(widget, "ram");
|
||||||
|
const { data: diskData, error: diskError } = useWidgetAPI(widget, "disk");
|
||||||
|
|
||||||
|
if (ramError || diskError) {
|
||||||
|
return <Container error={ramError || diskError} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ramData || !diskData) {
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="RAM Free" />
|
||||||
|
<Block label="Disk Free" />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="RAM Free" value={ramData.ramfree} />
|
||||||
|
<Block label="Disk Free" value={diskData["/mnt/media"].diskfree} />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
24
src/widgets/swizzin/widget.js
Normal file
24
src/widgets/swizzin/widget.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||||
|
|
||||||
|
const widget = {
|
||||||
|
api: "{url}/stats/{endpoint}",
|
||||||
|
proxyHandler: genericProxyHandler,
|
||||||
|
|
||||||
|
mappings: {
|
||||||
|
ram: {
|
||||||
|
endpoint: "ram",
|
||||||
|
},
|
||||||
|
disk: {
|
||||||
|
endpoint: "disk",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default widget;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user