Compare commits

..

9 Commits

Author SHA1 Message Date
shamoon
63a56225bb Merge pull request #1777 from benphelps/fix/issue-1774
Fix glances metrics widget memory units
2023-08-03 21:28:26 -07:00
shamoon
952c72a3a5 Fix glances metrics widget memory units 2023-08-03 21:27:30 -07:00
Nick Remijn
552f2c4a98 Feature: card blur background option (#1772)
* Add cardBlur option to settings

* add blur option to bookmarks

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-08-03 21:09:35 -07:00
shamoon
ec165b8c74 Merge pull request #1771 from benphelps/fix/issue-1766
Fix: Handle urbackup clients with images disabled
2023-08-03 08:51:44 -07:00
shamoon
cf05a85ad6 Handle urbackup clients with images disabled 2023-08-03 08:50:45 -07:00
shamoon
69d828ec8e Merge pull request #1770 from benphelps/fix/issue-1768
Fix: glances widget disk loading blocks remain after load
2023-08-03 08:37:16 -07:00
shamoon
b6072200a2 Fix incorrect disk key on loading block 2023-08-03 08:34:21 -07:00
Nonoss117
fab975062d Translated using Weblate (French)
Currently translated at 100.0% (500 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-08-03 06:53:52 +02:00
gallegonovato
5f01196b21 Translated using Weblate (Spanish)
Currently translated at 99.8% (499 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-08-03 06:53:52 +02:00
8 changed files with 31 additions and 18 deletions

View File

@@ -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",

View File

@@ -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": {

View File

@@ -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>

View File

@@ -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 &&

View File

@@ -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")}

View File

@@ -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>

View File

@@ -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:

View File

@@ -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" })
}
})();