Compare commits

...

19 Commits

Author SHA1 Message Date
shamoon
6046f7911e Merge pull request #1519 from theshaun/main
QNAP plugin, fix key expiry issue
2023-05-19 13:28:23 -07:00
shamoon
a9d3873579 QNAP widget make sure re-auth status = 200 2023-05-19 12:45:32 -07:00
theshaun
d402be2b78 clean up 2023-05-19 12:45:32 -07:00
theshaun
2ca46b595b Fix issue with key expiring and not updating correctly 2023-05-19 12:45:32 -07:00
theshaun
db2481cf0e Re-order container blocks to ensure defaults show 2023-05-19 12:45:32 -07:00
theshaun
865206802c rename cpu to load in default block 2023-05-19 12:45:32 -07:00
theshaun
668779ede1 remove a line 2023-05-19 12:45:32 -07:00
theshaun
1ca2407256 Fix linting issues 2023-05-19 12:45:32 -07:00
theshaun
3240b7a169 Add support for pfSense API 2023-05-19 12:45:32 -07:00
shamoon
4aeb3882af Merge pull request #1522 from benphelps/fix/issue-1521
Fix: Include backdrop classes in css build
2023-05-19 12:32:52 -07:00
shamoon
54ccd7ffb0 Include backdrop classes in css build 2023-05-19 12:32:18 -07:00
Andrej Kralj
411e24ef94 Translated using Weblate (Slovenian)
Currently translated at 100.0% (451 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-19 08:48:25 +02:00
Antonis Triantafyllopoulos
5fecf9baa7 Translated using Weblate (Greek)
Currently translated at 31.4% (142 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-19 08:48:24 +02:00
Dan
bdcd7835ac Translated using Weblate (Ukrainian)
Currently translated at 100.0% (451 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-19 08:48:24 +02:00
Smexhy
c023b414c1 Translated using Weblate (Czech)
Currently translated at 98.8% (446 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-19 08:48:23 +02:00
Nonoss117
d3f85bf628 Translated using Weblate (French)
Currently translated at 100.0% (451 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-19 08:48:23 +02:00
shamoon
ba21ae60d7 url error log 2023-05-18 00:26:32 -07:00
shamoon
328875d0f5 Merge pull request #1513 from davidosomething/fix-error-url
error hostname:port/path was missing colon
2023-05-17 18:05:03 -07:00
David O'Trakoun
4f3396cf32 error hostname:port/path was missing colon 2023-05-17 20:03:08 -04:00
9 changed files with 93 additions and 42 deletions

View File

@@ -30,12 +30,12 @@
"placeholder": "Hledat…"
},
"resources": {
"cpu": "PROC",
"cpu": "CPU",
"total": "Celkem",
"free": "Volné",
"used": "Využité",
"load": "Zatížení",
"mem": "PAM",
"mem": "RAM",
"max": "Max.",
"uptime": "BĚŽÍ",
"months": "měs.",
@@ -64,8 +64,8 @@
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "PAM",
"cpu": "PROC",
"mem": "RAM",
"cpu": "CPU",
"offline": "Offline",
"error": "Chyba",
"unknown": "Neznámý",
@@ -175,7 +175,7 @@
"queries": "Dotazy",
"blocked": "Blokováno",
"gravity": "Gravity",
"blocked_percent": "Blokováno %"
"blocked_percent": "Blokováno"
},
"adguard": {
"queries": "Dotazy",
@@ -301,14 +301,14 @@
"failedLoginsLast24H": "Neúspěšná přihlášení (24h)"
},
"proxmox": {
"mem": "PAM",
"cpu": "PROC",
"mem": "RAM",
"cpu": "CPU",
"lxc": "LXC",
"vms": "Virtuální Stroje"
},
"glances": {
"cpu": "PROC",
"mem": "PAM",
"cpu": "CPU",
"mem": "RAM",
"wait": "Prosím počkejte",
"temp": "TEPLOTA",
"uptime": "BĚŽÍ",
@@ -324,8 +324,8 @@
"url": "URL"
},
"homebridge": {
"update_available": "Dostupná aktualizace",
"up_to_date": "Aktuální",
"update_available": "Dostupná",
"up_to_date": "Všechno aktuální",
"available_update": "Systém",
"updates": "Aktualizace",
"child_bridges": "Podřízené můstky",
@@ -369,7 +369,7 @@
"ping": "Odezva"
},
"scrutiny": {
"passed": "Přijato",
"passed": "Úspěšné",
"failed": "Neúspěšné",
"unknown": "Neznámé"
},
@@ -461,7 +461,7 @@
"proxmoxbackupserver": {
"datastore_usage": "Datové úložiště",
"failed_tasks_24h": "Neúspěšné úlohy 24h",
"cpu_usage": "PROC",
"cpu_usage": "CPU",
"memory_usage": "Paměť"
},
"immich": {
@@ -494,7 +494,7 @@
"people": "Lidé"
},
"diskstation": {
"days": "Dni",
"days": "dní",
"uptime": "Doba provozu",
"volumeAvailable": "K dispozici"
},
@@ -623,7 +623,7 @@
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"pv_power": "Produkce",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",

View File

@@ -623,10 +623,10 @@
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"pv_power": "Παραγωγή",
"battery_soc": "Μπαταρία",
"grid_power": "Πλέγμα",
"home_power": "Κατανάλωση",
"charge_power": "Charger"
}
}

View File

@@ -623,10 +623,10 @@
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"battery_soc": "Batterie",
"grid_power": "Grille",
"home_power": "Consommation",
"charge_power": "Chargeur",
"watt_hour": "Wh"
}
}

View File

@@ -622,11 +622,11 @@
"requests_failed": "Neuspešnih zahtev"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Proizvodnja",
"battery_soc": "Baterija",
"grid_power": "Omrežje",
"home_power": "Poraba",
"charge_power": "Polnilec",
"watt_hour": "Wh"
}
}

View File

@@ -617,16 +617,16 @@
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"upstreams": "Потоки",
"requests": "Поточні запити",
"requests_failed": "Невдалі запити"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
"pv_power": "Виробництво",
"battery_soc": "Батарея",
"grid_power": "Сітка",
"home_power": "Споживання",
"charge_power": "Зарядний пристрій",
"watt_hour": "Вт/год"
}
}

View File

@@ -57,7 +57,14 @@ export default async function genericProxyHandler(req, res, map) {
}
if (status >= 400) {
logger.debug("HTTP Error %d calling %s//%s%s%s...", status, url.protocol, url.hostname, url.port, url.pathname);
logger.debug(
"HTTP Error %d calling %s//%s:%s%s...",
status,
url.protocol,
url.hostname,
url.port,
url.pathname
);
return res.status(status).json({error: {message: "HTTP Error", url: sanitizeErrorURL(url), resultData}});
}

View File

@@ -81,7 +81,13 @@ export async function httpProxy(url, params = {}) {
return [status, contentType, data, responseHeaders];
}
catch (err) {
logger.error("Error calling %s//%s%s%s...", constructedUrl.protocol, constructedUrl.hostname, constructedUrl.port, constructedUrl.pathname);
logger.error(
"Error calling %s//%s:%s%s...",
constructedUrl.protocol,
constructedUrl.hostname,
constructedUrl.port,
constructedUrl.pathname
);
logger.error(err);
return [500, "application/json", { error: {message: err?.message ?? "Unknown error", url, rawError: err} }, null];
}

View File

@@ -57,8 +57,23 @@ async function apiCall(widget, endpoint, service) {
return { status, contentType, data: null, responseHeaders };
}
const dataDecoded = xml2json(data.toString(), { compact: true });
return { status, contentType, data: JSON.parse(dataDecoded.toString()), responseHeaders };
let dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
if (dataDecoded.QDocRoot.authPassed._cdata === '0') {
logger.error("QNAP API rejected the request, attempting to obtain new session token");
key = await login(widget, service);
apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
[status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
if (status !== 200) {
logger.error("Error getting data from QNAP: %s status %d. Data: %s", apiUrl, status, data);
return { status, contentType, data: null, responseHeaders };
}
dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
}
return { status, contentType, data: dataDecoded, responseHeaders };
}
export default async function qnapProxyHandler(req, res) {

View File

@@ -32,4 +32,27 @@ module.exports = {
},
},
plugins: [tailwindForms, tailwindScrollbars],
};
// always include these in build as classes are dynamically constructed
safelist: [
'backdrop-blur',
'backdrop-blur-sm',
'backdrop-blur-md',
'backdrop-blur-xl',
'backdrop-saturate-0',
'backdrop-saturate-50',
'backdrop-saturate-100',
'backdrop-saturate-150',
'backdrop-saturate-200',
'backdrop-brightness-0',
'backdrop-brightness-50',
'backdrop-brightness-75',
'backdrop-brightness-90',
'backdrop-brightness-95',
'backdrop-brightness-100',
'backdrop-brightness-105',
'backdrop-brightness-110',
'backdrop-brightness-125',
'backdrop-brightness-150',
'backdrop-brightness-200',
],
}