mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-05 21:47:48 +01:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
63a56225bb | ||
|
|
952c72a3a5 | ||
|
|
552f2c4a98 | ||
|
|
ec165b8c74 | ||
|
|
cf05a85ad6 | ||
|
|
69d828ec8e | ||
|
|
b6072200a2 | ||
|
|
fab975062d | ||
|
|
5f01196b21 |
@@ -250,11 +250,11 @@
|
||||
"free": "Libre",
|
||||
"used": "Utilizado",
|
||||
"crit": "Crit",
|
||||
"read": "Read",
|
||||
"write": "Write",
|
||||
"read": "Leer",
|
||||
"write": "Escribir",
|
||||
"gpu": "GPU",
|
||||
"mem": "Mem",
|
||||
"swap": "Swap"
|
||||
"mem": "Memoria",
|
||||
"swap": "Intercambiar"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observados",
|
||||
|
||||
@@ -249,11 +249,11 @@
|
||||
"total": "Total",
|
||||
"free": "Libre",
|
||||
"used": "Utilisé",
|
||||
"crit": "Crit",
|
||||
"read": "Read",
|
||||
"write": "Write",
|
||||
"crit": "Crit.",
|
||||
"read": "Lect.",
|
||||
"write": "Écrit.",
|
||||
"gpu": "GPU",
|
||||
"mem": "Mem",
|
||||
"mem": "Mém.",
|
||||
"swap": "Swap"
|
||||
},
|
||||
"changedetectionio": {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useContext } from "react";
|
||||
import classNames from "classnames";
|
||||
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
import ResolvedIcon from "components/resolvedicon";
|
||||
@@ -16,7 +17,10 @@ export default function Item({ bookmark }) {
|
||||
className="block w-full text-left cursor-pointer transition-all h-15 mb-3 rounded-md font-medium text-theme-700 dark:text-theme-200 dark:hover:text-theme-300 shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 hover:bg-theme-300/20 dark:bg-white/5 dark:hover:bg-white/10"
|
||||
>
|
||||
<div className="flex">
|
||||
<div className="flex-shrink-0 flex items-center justify-center w-11 bg-theme-500/10 dark:bg-theme-900/50 text-theme-700 hover:text-theme-700 dark:text-theme-200 text-sm font-medium rounded-l-md">
|
||||
<div className={classNames(
|
||||
settings.cardBlur !== undefined && `backdrop-blur${settings.cardBlur.length ? '-' : ""}${settings.cardBlur}`,
|
||||
"flex-shrink-0 flex items-center justify-center w-11 bg-theme-500/10 dark:bg-theme-900/50 text-theme-700 hover:text-theme-700 dark:text-theme-200 text-sm font-medium rounded-l-md"
|
||||
)}>
|
||||
{bookmark.icon &&
|
||||
<div className="flex-shrink-0 w-5 h-5">
|
||||
<ResolvedIcon icon={bookmark.icon} alt={bookmark.abbr} />
|
||||
@@ -24,7 +28,10 @@ export default function Item({ bookmark }) {
|
||||
}
|
||||
{!bookmark.icon && bookmark.abbr}
|
||||
</div>
|
||||
<div className="flex-1 flex items-center justify-between rounded-r-md ">
|
||||
<div className={classNames(
|
||||
settings.cardBlur !== undefined && `backdrop-blur${settings.cardBlur.length ? '-' : ""}${settings.cardBlur}`,
|
||||
"flex-1 flex items-center justify-between rounded-r-md"
|
||||
)}>
|
||||
<div className="flex-1 grow pl-3 py-2 text-xs">{bookmark.name}</div>
|
||||
<div className="px-2 py-2 truncate text-theme-500 dark:text-theme-300 text-xs">{hostname}</div>
|
||||
</div>
|
||||
|
||||
@@ -32,9 +32,11 @@ export default function Item({ service, group }) {
|
||||
return (
|
||||
<li key={service.name}>
|
||||
<div
|
||||
className={`${
|
||||
hasLink ? "cursor-pointer " : " "
|
||||
}transition-all h-15 mb-2 p-1 rounded-md font-medium text-theme-700 dark:text-theme-200 dark:hover:text-theme-300 shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 hover:bg-theme-300/20 dark:bg-white/5 dark:hover:bg-white/10 relative overflow-clip`}
|
||||
className={classNames(
|
||||
settings.cardBlur !== undefined && `backdrop-blur${settings.cardBlur.length ? '-' : ""}${settings.cardBlur}`,
|
||||
hasLink && "cursor-pointer",
|
||||
'transition-all h-15 mb-2 p-1 rounded-md font-medium text-theme-700 dark:text-theme-200 dark:hover:text-theme-300 shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 hover:bg-theme-300/20 dark:bg-white/5 dark:hover:bg-white/10 relative overflow-clip'
|
||||
)}
|
||||
>
|
||||
<div className="flex select-none z-0">
|
||||
{service.icon &&
|
||||
|
||||
@@ -37,7 +37,7 @@ export default function Widget({ options }) {
|
||||
<Resource icon={FaMemory} label={t("glances.wait")} percentage="0" />
|
||||
{ options.cputemp && <Resource icon={FaThermometerHalf} label={t("glances.wait")} percentage="0" /> }
|
||||
{ options.disk && !Array.isArray(options.disk) && <Resource key={options.disk} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> }
|
||||
{ options.disk && Array.isArray(options.disk) && options.disk.map((disk) => <Resource key={`disk_${disk.mnt_point}`} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> ) }
|
||||
{ options.disk && Array.isArray(options.disk) && options.disk.map((disk) => <Resource key={`disk_${disk}`} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> ) }
|
||||
{ options.uptime && <Resource icon={FaRegClock} label={t("glances.wait")} percentage="0" /> }
|
||||
{ options.label && <WidgetLabel label={options.label} /> }
|
||||
</Resources>;
|
||||
@@ -108,7 +108,7 @@ export default function Widget({ options }) {
|
||||
expanded={options.expanded}
|
||||
/>
|
||||
{disks.map((disk) => (
|
||||
<Resource key={`disk_${disk.mnt_point}`}
|
||||
<Resource key={`disk_${disk.mnt_point ?? disk.device_name}`}
|
||||
icon={FiHardDrive}
|
||||
value={t("common.bytes", { value: disk.free })}
|
||||
label={t("glances.free")}
|
||||
|
||||
@@ -50,6 +50,7 @@ export default function Component({ service }) {
|
||||
formatter={(value) => t("common.bytes", {
|
||||
value,
|
||||
maximumFractionDigits: 0,
|
||||
binary: true,
|
||||
})}
|
||||
/>
|
||||
|
||||
@@ -60,6 +61,7 @@ export default function Component({ service }) {
|
||||
{t("common.bytes", {
|
||||
value: data.free,
|
||||
maximumFractionDigits: 0,
|
||||
binary: true,
|
||||
})} {t("resources.free")}
|
||||
</div>
|
||||
)}
|
||||
@@ -69,6 +71,7 @@ export default function Component({ service }) {
|
||||
{t("common.bytes", {
|
||||
value: data.total,
|
||||
maximumFractionDigits: 0,
|
||||
binary: true,
|
||||
})} {t("resources.total")}
|
||||
</div>
|
||||
)}
|
||||
@@ -80,6 +83,7 @@ export default function Component({ service }) {
|
||||
{t("common.bytes", {
|
||||
value: data.used,
|
||||
maximumFractionDigits: 0,
|
||||
binary: true,
|
||||
})} {t("resources.used")}
|
||||
</div>
|
||||
</Block>
|
||||
|
||||
@@ -14,7 +14,7 @@ function hasRecentBackups(client, maxDays){
|
||||
const days = maxDays || 3;
|
||||
const diffTime = days*24*60*60 // 7 days
|
||||
const recentFile = (client.lastbackup > (Date.now() / 1000 - diffTime));
|
||||
const recentImage = ((client.lastbackup_image > (Date.now() / 1000 - diffTime)||client.image_not_supported));
|
||||
const recentImage = client.image_not_supported || client.image_disabled || (client.lastbackup_image > (Date.now() / 1000 - diffTime));
|
||||
return (recentFile && recentImage);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ function determineStatuses(urbackupData) {
|
||||
urbackupData.clientStatuses.forEach((client) => {
|
||||
status = Status.noRecent;
|
||||
if (hasRecentBackups(client, urbackupData.maxDays)) {
|
||||
status = (client.file_ok && (client.image_ok || client.image_not_supported)) ? Status.ok : Status.errored;
|
||||
status = (client.file_ok && (client.image_ok || client.image_not_supported || client.image_disabled)) ? Status.ok : Status.errored;
|
||||
}
|
||||
switch (status) {
|
||||
case Status.ok:
|
||||
|
||||
@@ -25,7 +25,7 @@ await (async () => {
|
||||
maxDays: serviceWidget.maxDays
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: "Something Broke" })
|
||||
res.status(500).json({ error: "Error communicating with UrBackup server" })
|
||||
}
|
||||
})();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user