From 532ad3044cb3e0b7e7771863c2d871f45b1e22b5 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Thu, 2 Sep 2021 21:55:25 +0800
Subject: [PATCH 01/18] Add space to pushbullet and lunasea notifications
Start changes regarding standardization of notification messages
---
server/notification.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/server/notification.js b/server/notification.js
index 472012af7..9417e733e 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -491,7 +491,7 @@ class Notification {
if (heartbeatJSON["status"] == 0) {
let downdata = {
- "title": "UptimeKuma Alert:" + monitorJSON["name"],
+ "title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[🔴 Down]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
}
await axios.post(lunaseadevice, downdata)
@@ -500,7 +500,7 @@ class Notification {
if (heartbeatJSON["status"] == 1) {
let updata = {
- "title": "UptimeKuma Alert:" + monitorJSON["name"],
+ "title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[✅ Up]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
}
await axios.post(lunaseadevice, updata)
@@ -530,14 +530,14 @@ class Notification {
} else if (heartbeatJSON["status"] == 0) {
let downdata = {
"type": "note",
- "title": "UptimeKuma Alert:" + monitorJSON["name"],
+ "title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[🔴 Down]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
}
await axios.post(pushbulletUrl, downdata, config)
} else if (heartbeatJSON["status"] == 1) {
let updata = {
"type": "note",
- "title": "UptimeKuma Alert:" + monitorJSON["name"],
+ "title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[✅ Up]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
}
await axios.post(pushbulletUrl, updata, config)
From dca5c59982f35a2dc29b1e61f25da198f28cfb30 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 18:24:43 +0800
Subject: [PATCH 02/18] Update lunasea body content
Co-authored-by: Adam Stachowicz
---
server/notification.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/notification.js b/server/notification.js
index 9417e733e..fb132cedb 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -492,7 +492,7 @@ class Notification {
if (heartbeatJSON["status"] == 0) {
let downdata = {
"title": "UptimeKuma Alert: " + monitorJSON["name"],
- "body": "[🔴 Down]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
+ "body": "[🔴 Down] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
}
await axios.post(lunaseadevice, downdata)
return okMsg;
From 3bf380c684a902b8c5f5d1f6a76536fa0ca5c98d Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 18:26:10 +0800
Subject: [PATCH 03/18] Update lunasea "up" body content
Co-authored-by: Adam Stachowicz
---
server/notification.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/notification.js b/server/notification.js
index fb132cedb..274f99cb1 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -501,7 +501,7 @@ class Notification {
if (heartbeatJSON["status"] == 1) {
let updata = {
"title": "UptimeKuma Alert: " + monitorJSON["name"],
- "body": "[✅ Up]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
+ "body": "[✅ Up] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
}
await axios.post(lunaseadevice, updata)
return okMsg;
From d346afd33bb2e349c4f8f08fb3b6d201bab208e2 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 18:26:38 +0800
Subject: [PATCH 04/18] Update pushbullet up body
Co-authored-by: Adam Stachowicz
---
server/notification.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/notification.js b/server/notification.js
index 274f99cb1..fecc639c1 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -538,7 +538,7 @@ class Notification {
let updata = {
"type": "note",
"title": "UptimeKuma Alert: " + monitorJSON["name"],
- "body": "[✅ Up]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
+ "body": "[✅ Up] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
}
await axios.post(pushbulletUrl, updata, config)
}
From 9c32adfb55bb629bf32b665afb1bece1c9e36da1 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 18:26:44 +0800
Subject: [PATCH 05/18] Update pushbullet down body
Co-authored-by: Adam Stachowicz
---
server/notification.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/notification.js b/server/notification.js
index fecc639c1..b9eba5a01 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -531,7 +531,7 @@ class Notification {
let downdata = {
"type": "note",
"title": "UptimeKuma Alert: " + monitorJSON["name"],
- "body": "[🔴 Down]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
+ "body": "[🔴 Down] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
}
await axios.post(pushbulletUrl, downdata, config)
} else if (heartbeatJSON["status"] == 1) {
From 6ae279c7f387ffe79a9341eaa9c11e9257d2989f Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 11:06:06 +0800
Subject: [PATCH 06/18] Move title generation to notification class
---
server/model/monitor.js | 11 +----------
server/notification.js | 14 +++++++++++++-
server/server.js | 2 +-
3 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/server/model/monitor.js b/server/model/monitor.js
index 19f21d924..126d59b1e 100644
--- a/server/model/monitor.js
+++ b/server/model/monitor.js
@@ -270,18 +270,9 @@ class Monitor extends BeanModel {
this.id,
])
- let text;
- if (bean.status === UP) {
- text = "✅ Up"
- } else {
- text = "🔴 Down"
- }
-
- let msg = `[${this.name}] [${text}] ${bean.msg}`;
-
for (let notification of notificationList) {
try {
- await Notification.send(JSON.parse(notification.config), msg, await this.toJSON(), bean.toJSON())
+ await Notification.send(JSON.parse(notification.config), this.name, await this.toJSON(), bean.toJSON())
} catch (e) {
console.error("Cannot send notification to " + notification.name);
console.log(e);
diff --git a/server/notification.js b/server/notification.js
index b9eba5a01..42c4627d8 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -15,9 +15,21 @@ class Notification {
* @returns {Promise} Successful msg
* Throw Error with fail msg
*/
- static async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
+ static async send(notification, monitorName = null, monitorJSON = null, heartbeatJSON = null) {
let okMsg = "Sent Successfully. ";
+ let msg = `[${notification.name}] Testing`;
+ // heartbeatJSON is only defined if we're not testing
+ if(heartbeatJSON) {
+ let text;
+ if (heartbeatJSON["status"] === 1) {
+ text = "✅ Up"
+ } else {
+ text = "🔴 Down"
+ }
+ msg = `[${monitorName}] [${text}] ${heartbeatJSON["msg"]}`;
+ }
+
if (notification.type === "telegram") {
try {
await axios.get(`https://api.telegram.org/bot${notification.telegramBotToken}/sendMessage`, {
diff --git a/server/server.js b/server/server.js
index 39191de79..8f4516dc0 100644
--- a/server/server.js
+++ b/server/server.js
@@ -552,7 +552,7 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString();
try {
checkLogin(socket)
- let msg = await Notification.send(notification, notification.name + " Testing")
+ let msg = await Notification.send(notification)
callback({
ok: true,
From e9cd9be03abc36f0d6b03df38fcc726a7acfa057 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 11:09:34 +0800
Subject: [PATCH 07/18] Use constants for UP/DOWN through notifications class
---
server/notification.js | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/server/notification.js b/server/notification.js
index 42c4627d8..520d78dd9 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -4,6 +4,8 @@ const FormData = require("form-data");
const nodemailer = require("nodemailer");
const child_process = require("child_process");
+const { UP, DOWN } = require("../src/util");
+
class Notification {
/**
@@ -22,7 +24,7 @@ class Notification {
// heartbeatJSON is only defined if we're not testing
if(heartbeatJSON) {
let text;
- if (heartbeatJSON["status"] === 1) {
+ if (heartbeatJSON["status"] === UP) {
text = "✅ Up"
} else {
text = "🔴 Down"
@@ -121,7 +123,7 @@ class Notification {
}
// If heartbeatJSON is not null, we go into the normal alerting loop.
- if (heartbeatJSON["status"] == 0) {
+ if (heartbeatJSON["status"] == DOWN) {
let discorddowndata = {
username: discordDisplayName,
embeds: [{
@@ -151,7 +153,7 @@ class Notification {
await axios.post(notification.discordWebhookUrl, discorddowndata)
return okMsg;
- } else if (heartbeatJSON["status"] == 1) {
+ } else if (heartbeatJSON["status"] == UP) {
let discordupdata = {
username: discordDisplayName,
embeds: [{
@@ -355,7 +357,7 @@ class Notification {
const mattermostIconEmoji = notification.mattermosticonemo;
const mattermostIconUrl = notification.mattermosticonurl;
- if (heartbeatJSON["status"] == 0) {
+ if (heartbeatJSON["status"] == DOWN) {
let mattermostdowndata = {
username: mattermostUserName,
text: "Uptime Kuma Alert",
@@ -399,7 +401,7 @@ class Notification {
mattermostdowndata
);
return okMsg;
- } else if (heartbeatJSON["status"] == 1) {
+ } else if (heartbeatJSON["status"] == UP) {
let mattermostupdata = {
username: mattermostUserName,
text: "Uptime Kuma Alert",
@@ -501,7 +503,7 @@ class Notification {
return okMsg;
}
- if (heartbeatJSON["status"] == 0) {
+ if (heartbeatJSON["status"] == DOWN) {
let downdata = {
"title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[🔴 Down] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
@@ -510,7 +512,7 @@ class Notification {
return okMsg;
}
- if (heartbeatJSON["status"] == 1) {
+ if (heartbeatJSON["status"] == UP) {
let updata = {
"title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[✅ Up] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
@@ -539,14 +541,14 @@ class Notification {
"body": "Testing Successful.",
}
await axios.post(pushbulletUrl, testdata, config)
- } else if (heartbeatJSON["status"] == 0) {
+ } else if (heartbeatJSON["status"] == DOWN) {
let downdata = {
"type": "note",
"title": "UptimeKuma Alert: " + monitorJSON["name"],
"body": "[🔴 Down] " + heartbeatJSON["msg"] + "\nTime (UTC): " + heartbeatJSON["time"],
}
await axios.post(pushbulletUrl, downdata, config)
- } else if (heartbeatJSON["status"] == 1) {
+ } else if (heartbeatJSON["status"] == UP) {
let updata = {
"type": "note",
"title": "UptimeKuma Alert: " + monitorJSON["name"],
@@ -578,7 +580,7 @@ class Notification {
]
}
await axios.post(lineAPIUrl, testMessage, config)
- } else if (heartbeatJSON["status"] == 0) {
+ } else if (heartbeatJSON["status"] == DOWN) {
let downMessage = {
"to": notification.lineUserID,
"messages": [
@@ -589,7 +591,7 @@ class Notification {
]
}
await axios.post(lineAPIUrl, downMessage, config)
- } else if (heartbeatJSON["status"] == 1) {
+ } else if (heartbeatJSON["status"] == UP) {
let upMessage = {
"to": notification.lineUserID,
"messages": [
From b0acda52f9b6b47aedb3ce1b05ea78d73c6b7be0 Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 11:27:18 +0800
Subject: [PATCH 08/18] Add time to smtp body content
---
server/notification.js | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/server/notification.js b/server/notification.js
index 520d78dd9..beb1ff9d0 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -94,7 +94,7 @@ class Notification {
}
} else if (notification.type === "smtp") {
- return await Notification.smtp(notification, msg)
+ return await Notification.smtp(notification, msg, heartbeatJSON)
} else if (notification.type === "discord") {
try {
@@ -648,7 +648,7 @@ class Notification {
await R.trash(bean)
}
- static async smtp(notification, msg) {
+ static async smtp(notification, msg, heartbeatJSON = null) {
const config = {
host: notification.smtpHost,
@@ -666,12 +666,17 @@ class Notification {
let transporter = nodemailer.createTransport(config);
+ let bodyTextContent = msg;
+ if(heartbeatJSON) {
+ bodyTextContent = `${msg}\nTime (UTC): ${heartbeatJSON["time"]}`;
+ }
+
// send mail with defined transport object
await transporter.sendMail({
from: `"Uptime Kuma" <${notification.smtpFrom}>`,
to: notification.smtpTo,
subject: msg,
- text: msg,
+ text: bodyTextContent,
});
return "Sent Successfully.";
From 41d32bb9dde554794613df002696841d6dceab1f Mon Sep 17 00:00:00 2001
From: Domenic Horner
Date: Sat, 4 Sep 2021 20:08:18 +0800
Subject: [PATCH 09/18] Undo parm changes
---
server/model/monitor.js | 11 ++++++++++-
server/notification.js | 14 +-------------
server/server.js | 2 +-
3 files changed, 12 insertions(+), 15 deletions(-)
diff --git a/server/model/monitor.js b/server/model/monitor.js
index 126d59b1e..19f21d924 100644
--- a/server/model/monitor.js
+++ b/server/model/monitor.js
@@ -270,9 +270,18 @@ class Monitor extends BeanModel {
this.id,
])
+ let text;
+ if (bean.status === UP) {
+ text = "✅ Up"
+ } else {
+ text = "🔴 Down"
+ }
+
+ let msg = `[${this.name}] [${text}] ${bean.msg}`;
+
for (let notification of notificationList) {
try {
- await Notification.send(JSON.parse(notification.config), this.name, await this.toJSON(), bean.toJSON())
+ await Notification.send(JSON.parse(notification.config), msg, await this.toJSON(), bean.toJSON())
} catch (e) {
console.error("Cannot send notification to " + notification.name);
console.log(e);
diff --git a/server/notification.js b/server/notification.js
index beb1ff9d0..f78401d9b 100644
--- a/server/notification.js
+++ b/server/notification.js
@@ -17,21 +17,9 @@ class Notification {
* @returns {Promise} Successful msg
* Throw Error with fail msg
*/
- static async send(notification, monitorName = null, monitorJSON = null, heartbeatJSON = null) {
+ static async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
let okMsg = "Sent Successfully. ";
- let msg = `[${notification.name}] Testing`;
- // heartbeatJSON is only defined if we're not testing
- if(heartbeatJSON) {
- let text;
- if (heartbeatJSON["status"] === UP) {
- text = "✅ Up"
- } else {
- text = "🔴 Down"
- }
- msg = `[${monitorName}] [${text}] ${heartbeatJSON["msg"]}`;
- }
-
if (notification.type === "telegram") {
try {
await axios.get(`https://api.telegram.org/bot${notification.telegramBotToken}/sendMessage`, {
diff --git a/server/server.js b/server/server.js
index 8f4516dc0..39191de79 100644
--- a/server/server.js
+++ b/server/server.js
@@ -552,7 +552,7 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString();
try {
checkLogin(socket)
- let msg = await Notification.send(notification)
+ let msg = await Notification.send(notification, notification.name + " Testing")
callback({
ok: true,
From 2a34e41d8c47ec2739cae0590ee891747a102b22 Mon Sep 17 00:00:00 2001
From: Levi
Date: Sat, 4 Sep 2021 15:59:49 +0200
Subject: [PATCH 10/18] Improved Swedish translation
---
src/languages/sv-SE.js | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js
index 502968891..751a4063e 100644
--- a/src/languages/sv-SE.js
+++ b/src/languages/sv-SE.js
@@ -1,14 +1,14 @@
export default {
- languageName: "Swedish",
+ languageName: "Svenska",
checkEverySecond: "Uppdatera var {0} sekund.",
- "Avg.": "Genomsnitt ",
+ "Avg.": "Genomsnittligt ",
retriesDescription: "Max antal försök innan tjänsten markeras som nere och en notis skickas",
ignoreTLSError: "Ignorera TLS/SSL-fel för webbsidor med HTTPS",
upsideDownModeDescription: "Vänd upp och ner på statusen. Om tjänsten är nåbar visas den som NERE.",
maxRedirectDescription: "Max antal omdirigeringar att följa. Välj 0 för att avaktivera omdirigeringar.",
acceptedStatusCodesDescription: "Välj statuskoder som räknas som lyckade.",
passwordNotMatchMsg: "Det bekräftade lösenordet stämmer ej överens.",
- notificationDescription: "Vänligen lägg till en notistjänst till övervakaren.",
+ notificationDescription: "Vänligen lägg till en notistjänst till dina övervakare.",
keywordDescription: "Sök efter nyckelord i ren HTML eller JSON-svar. Sökningen är skiftkänslig.",
pauseDashboardHome: "Pausa",
deleteMonitorMsg: "Är du säker på att du vill ta bort den här övervakningen?",
@@ -36,7 +36,7 @@ export default {
Pause: "Paus",
Name: "Namn",
Status: "Status",
- DateTime: "DatumTid",
+ DateTime: "Datum & Tid",
Message: "Meddelande",
"No important events": "Inga viktiga händelser",
Resume: "Återuppta",
@@ -44,17 +44,17 @@ export default {
Delete: "Ta bort",
Current: "Nuvarande",
Uptime: "Drifttid",
- "Cert Exp.": "Certifikatsutgång",
+ "Cert Exp.": "Certifikat utgår",
days: "dagar",
day: "dag",
- "-day": "-dag",
+ "-day": " dagar",
hour: "timme",
- "-hour": "-timme",
+ "-hour": " timmar",
Response: "Svar",
Ping: "Ping",
"Monitor Type": "Övervakningstyp",
Keyword: "Nyckelord",
- "Friendly Name": "Vänligt Namn",
+ "Friendly Name": "Namn",
URL: "URL",
Hostname: "Värdnamn",
Port: "Port",
@@ -67,14 +67,14 @@ export default {
Save: "Spara",
Notifications: "Notiser",
"Not available, please setup.": "Ej tillgänglig, vänligen konfigurera.",
- "Setup Notification": "Konfigurera Notis",
+ "Setup Notification": "Ny Notistjänst",
Light: "Ljust",
Dark: "Mörkt",
- Auto: "Automatisk",
+ Auto: "Automatiskt",
"Theme - Heartbeat Bar": "Tema - Heartbeat Bar",
Normal: "Normal",
Bottom: "Botten",
- None: "Ingen",
+ None: "Tomt",
Timezone: "Tidszon",
"Search Engine Visibility": "Synlighet på Sökmotorer",
"Allow indexing": "Tillåt indexering",
From d35b205fcc41be66a654085c01698656c9ce5443 Mon Sep 17 00:00:00 2001
From: Levi
Date: Sat, 4 Sep 2021 16:01:41 +0200
Subject: [PATCH 11/18] Update & Improve Swedish Translation
---
src/languages/sv-SE.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js
index 751a4063e..276a3a36a 100644
--- a/src/languages/sv-SE.js
+++ b/src/languages/sv-SE.js
@@ -107,6 +107,6 @@ export default {
"Last Result": "Senaste resultat",
"Create your admin account": "Skapa ditt administratörskonto",
"Repeat Password": "Upprepa Lösenord",
- respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ respTime: "Svarstid (ms)",
+ notAvailableShort: "Ej Tillg."
}
From f1a151b4a1e1b3aaadb7b035eda938833117bd06 Mon Sep 17 00:00:00 2001
From: Levi
Date: Sat, 4 Sep 2021 16:03:34 +0200
Subject: [PATCH 12/18] Update & Improve Swedish Translation
---
src/languages/sv-SE.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js
index 276a3a36a..8aa4e155b 100644
--- a/src/languages/sv-SE.js
+++ b/src/languages/sv-SE.js
@@ -33,7 +33,7 @@ export default {
Down: "Nere",
Pending: "Pågående",
Unknown: "Okänt",
- Pause: "Paus",
+ Pause: "Pausa",
Name: "Namn",
Status: "Status",
DateTime: "Datum & Tid",
From cc25787878c37655ea6ce0cfe4d4fb1e3f224252 Mon Sep 17 00:00:00 2001
From: LouisLam
Date: Sat, 4 Sep 2021 23:32:46 +0800
Subject: [PATCH 13/18] improve heartbeat bar rendering in different dpi
---
src/components/HeartbeatBar.vue | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/src/components/HeartbeatBar.vue b/src/components/HeartbeatBar.vue
index 33b003db3..f49b8756d 100644
--- a/src/components/HeartbeatBar.vue
+++ b/src/components/HeartbeatBar.vue
@@ -124,9 +124,27 @@ export default {
},
mounted() {
if (this.size === "small") {
- this.beatWidth = 5.6;
- this.beatMargin = 2.4;
- this.beatHeight = 16
+ this.beatHeight = 16;
+
+ // Handle strange render problem in different DPI.
+ if (window.devicePixelRatio === 1.25) {
+ this.beatWidth = 5.6;
+ this.beatMargin = 2.4;
+
+ } else if (window.devicePixelRatio === 1.75) {
+ this.beatWidth = 5.7;
+ this.beatMargin = 2.4;
+
+ } else if (window.devicePixelRatio === 2.25) {
+ this.beatWidth = 5.8;
+ this.beatMargin = 2.4;
+
+ } else {
+ // 100%, 150%, 200% ...
+ this.beatWidth = 6;
+ this.beatMargin = 2;
+ }
+
}
window.addEventListener("resize", this.resize);
From ffbdf97478d72496b9ae235b8de35a9ac751cf93 Mon Sep 17 00:00:00 2001
From: LouisLam
Date: Sun, 5 Sep 2021 00:08:24 +0800
Subject: [PATCH 14/18] improve heartbeat bar rendering in different dpi
---
src/components/HeartbeatBar.vue | 33 +++++++++++++++------------------
1 file changed, 15 insertions(+), 18 deletions(-)
diff --git a/src/components/HeartbeatBar.vue b/src/components/HeartbeatBar.vue
index f49b8756d..04d046bd5 100644
--- a/src/components/HeartbeatBar.vue
+++ b/src/components/HeartbeatBar.vue
@@ -31,7 +31,7 @@ export default {
beatWidth: 10,
beatHeight: 30,
hoverScale: 1.5,
- beatMargin: 3, // Odd number only, even = blurry
+ beatMargin: 4,
move: false,
maxBeat: -1,
}
@@ -122,29 +122,26 @@ export default {
this.$root.heartbeatList[this.monitorId] = [];
}
},
+
mounted() {
if (this.size === "small") {
+ this.beatWidth = 5;
this.beatHeight = 16;
+ this.beatMargin = 2;
+ }
- // Handle strange render problem in different DPI.
- if (window.devicePixelRatio === 1.25) {
- this.beatWidth = 5.6;
- this.beatMargin = 2.4;
+ // Suddenly, have an idea how to handle it universally.
+ // If the pixel * ratio != Integer, then it causes render issue, round it to solve it!!
+ const actualWidth = this.beatWidth * window.devicePixelRatio;
+ const actualMargin = this.beatMargin * window.devicePixelRatio;
- } else if (window.devicePixelRatio === 1.75) {
- this.beatWidth = 5.7;
- this.beatMargin = 2.4;
-
- } else if (window.devicePixelRatio === 2.25) {
- this.beatWidth = 5.8;
- this.beatMargin = 2.4;
-
- } else {
- // 100%, 150%, 200% ...
- this.beatWidth = 6;
- this.beatMargin = 2;
- }
+ if (! Number.isInteger(actualWidth)) {
+ this.beatWidth = Math.round(actualWidth) / window.devicePixelRatio;
+ console.log(this.beatWidth);
+ }
+ if (! Number.isInteger(actualMargin)) {
+ this.beatMargin = Math.round(actualMargin) / window.devicePixelRatio;
}
window.addEventListener("resize", this.resize);
From 5837c353b7689c573f03fe843ccc007f872e1335 Mon Sep 17 00:00:00 2001
From: LouisLam
Date: Sun, 5 Sep 2021 02:47:31 +0800
Subject: [PATCH 15/18] change the default theme to auto from light
---
src/mixins/theme.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mixins/theme.js b/src/mixins/theme.js
index 44e375327..b149e1113 100644
--- a/src/mixins/theme.js
+++ b/src/mixins/theme.js
@@ -11,7 +11,7 @@ export default {
mounted() {
// Default Light
if (! this.userTheme) {
- this.userTheme = "light";
+ this.userTheme = "auto";
}
// Default Heartbeat Bar
From 9952463350907aaf03ab9d944876145b4c96bc47 Mon Sep 17 00:00:00 2001
From: Misly <60405462+Misly16@users.noreply.github.com>
Date: Sat, 4 Sep 2021 20:38:53 +0000
Subject: [PATCH 16/18] Add Polish Locale
---
src/languages/pl.js | 112 +++++++++++++++++++++++++++++++++++++++++
src/main.js | 2 +
src/pages/Settings.vue | 5 ++
3 files changed, 119 insertions(+)
create mode 100644 src/languages/pl.js
diff --git a/src/languages/pl.js b/src/languages/pl.js
new file mode 100644
index 000000000..9e16011bc
--- /dev/null
+++ b/src/languages/pl.js
@@ -0,0 +1,112 @@
+export default {
+ languageName: "Polski",
+ checkEverySecond: "sprawdzaj co {0} sekund.",
+ "Avg.": "Średnia. ",
+ retriesDescription: "Maksymalna liczba ponownych prób, zanim usługa zostanie oznaczona jako offline i zostanie wysłane powiadomienie.",
+ ignoreTLSError: "Ignoruj błąd TLS/SSL dla stron HTTPS.",
+ upsideDownModeDescription: "Odwróć status do góry nogami. Jeśli usługa jest osiągalna, to jest niedostępna.",
+ maxRedirectDescription: "Maksymalna liczba przekierowań do naśladowania. Ustaw na 0, aby wyłączyć przekierowania.",
+ acceptedStatusCodesDescription: "Wybierz kody stanu, które są uważane za udaną odpowiedź.",
+ passwordNotMatchMsg: "Powtórzone hasło nie jest takie samo.",
+ notificationDescription: "Dodaj powiadomienie do monitorów, aby one działały.",
+ keywordDescription: "Wyszukaj słowo kluczowe w html lub JSON i wielkość liter ma znaczenie.",
+ pauseDashboardHome: "pauza",
+ deleteMonitorMsg: "Czy na pewno chcesz usunąć ten monitor?",
+ deleteNotificationMsg: "Czy na pewno chcesz usunąć to powiadomienie ze wszystkich monitorów?",
+ resoverserverDescription: "Cloudflare jest domyślnym serwerem, możesz zmienić serwer resolver w dowolnym momencie.",
+ rrtypeDescription: "Wybierz typ RR-Type który chcesz monitorować.",
+ pauseMonitorMsg: "Czy na pewno chcesz wstrzymać?",
+ Settings: "Ustawienia",
+ Dashboard: "Panel",
+ "New Update": "Nowa aktualizacja",
+ Language: "Język",
+ Appearance: "Wygląd",
+ Theme: "Motyw",
+ General: "Ogólne",
+ Version: "Versja",
+ "Check Update On GitHub": "Sprawdź aktualizację na GitHub.",
+ List: "Lista",
+ Add: "Dodaj",
+ "Add New Monitor": "Dodaj Nowy Monitor",
+ "Quick Stats": "Szybkie statystyki",
+ Up: "Online",
+ Down: "Offline",
+ Pending: "Oczekujący",
+ Unknown: "Nieznane",
+ Pause: "Pauza",
+ Name: "Nazwa",
+ Status: "Status",
+ DateTime: "Data i godzina",
+ Message: "Wiadomość",
+ "No important events": "Brak ważnych wydarzeń.",
+ Resume: "Wznów",
+ Edit: "Edytuj",
+ Delete: "Usuń",
+ Current: "aktualny",
+ Uptime: "czas pracy",
+ "Cert Exp.": "Wygaśnięcie certyfikatu.",
+ days: "dni",
+ day: "dzień",
+ "-day": "-dzień",
+ hour: "godzina",
+ "-hour": "-godzina",
+ Response: "odpowiedź",
+ Ping: "Ping",
+ "Monitor Type": "Typ monitora",
+ Keyword: "słowo kluczowe",
+ "Friendly Name": "Przyjazne imię",
+ URL: "URL",
+ Hostname: "Hostname",
+ Port: "Port",
+ "Heartbeat Interval": "Interwał bicia serca",
+ Retries: "Prób",
+ Advanced: "Zaawansowane",
+ "Upside Down Mode": "Tryb do góry nogami",
+ "Max. Redirects": "Maks. Przekierowania",
+ "Accepted Status Codes": "Akceptowane kody statusu",
+ Save: "Zapisz",
+ Notifications: "Powiadomienia",
+ "Not available, please setup.": "Niedostępne, proszę skonfigurować.",
+ "Setup Notification": "Powiadomienie konfiguracji",
+ Light: "Jasny",
+ Dark: "Ciemny",
+ Auto: "Automatyczny",
+ "Theme - Heartbeat Bar": "Motyw - pasek bicia serca",
+ Normal: "Normalne",
+ Bottom: "Na dole",
+ None: "Nic",
+ Timezone: "Strefa czasowa",
+ "Search Engine Visibility": "Widoczność w wyszukiwarce",
+ "Allow indexing": "Zezwól na indeksowanie",
+ "Discourage search engines from indexing site": "Zniechęcaj wyszukiwarki do indeksowania strony",
+ "Change Password": "Zmień hasło",
+ "Current Password": "Aktualne hasło",
+ "New Password": "Nowe hasło",
+ "Repeat New Password": "Powtórz nowe hasło",
+ "Update Password": "Zaktualizuj hasło",
+ "Disable Auth": "Wyłącz autoryzację",
+ "Enable Auth": "Włącz autoryzację ",
+ Logout: "Wyloguj się",
+ Leave: "Opuść",
+ "I understand, please disable": "Rozumiem, proszę wyłączyć",
+ Confirm: "Potwierdź",
+ Yes: "Tak",
+ No: "Nie",
+ Username: "Nazwa użytkownika",
+ Password: "Hasło",
+ "Remember me": "Zapamiętaj mnie",
+ Login: "Zaloguj sie",
+ "No Monitors, please": "Proszę bez monitorów",
+ "add one": "dodaj jeden",
+ "Notification Type": "Typ powiadomienia",
+ Email: "Email",
+ Test: "Test",
+ "Certificate Info": "Informacje o certyfikacie",
+ "Resolver Server": "Server resolver",
+ "Resource Record Type": "Typ rekordu zasobów",
+ "Last Result": "Ostatni rekord",
+ "Create your admin account": "Utwórz swoje konto administratora",
+ "Repeat Password": "Powtórz hasło",
+ respTime: "Odp. Czas (ms)",
+ notAvailableShort: "N/A"
+}
diff --git a/src/main.js b/src/main.js
index 8f5e0a916..7ad9db089 100644
--- a/src/main.js
+++ b/src/main.js
@@ -37,6 +37,7 @@ import svSE from "./languages/sv-SE";
import koKR from "./languages/ko-KR";
import ruRU from "./languages/ru-RU";
import zhCN from "./languages/zh-CN";
+import pl from "./languages/pl"
const routes = [
{
@@ -114,6 +115,7 @@ const languageList = {
"ko-KR": koKR,
"ru-RU": ruRU,
"zh-CN": zhCN,
+ "pl": pl,
};
const i18n = createI18n({
diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue
index 705642137..83384ca80 100644
--- a/src/pages/Settings.vue
+++ b/src/pages/Settings.vue
@@ -213,6 +213,11 @@
이 기능은 Cloudflare Access와 같은 서드파티 인증을 Uptime Kuma 앞에 둔 사용자를 위한 기능이에요.
신중하게 사용하세요.
+
+ Czy na pewno chcesz wyłączyć autoryzację?
+ Jest przeznaczony dla kogoś, kto ma autoryzację zewnętrzną przed Uptime Kuma, taką jak Cloudflare Access.
+ Proszę używać ostrożnie.
+
From 1b8b33c4c3e585b002570bf903d883f6ca42cb1e Mon Sep 17 00:00:00 2001
From: Ponkhy
Date: Sun, 5 Sep 2021 15:40:35 +0200
Subject: [PATCH 17/18] Added set language to the Setup.vue
---
src/languages/de-DE.js | 3 ++-
src/languages/en.js | 3 ++-
src/pages/Setup.vue | 16 +++++++++++++++-
3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js
index 76c355a3b..1f8eb055b 100644
--- a/src/languages/de-DE.js
+++ b/src/languages/de-DE.js
@@ -108,5 +108,6 @@ export default {
"Repeat Password": "Wiederhole das Passwort",
"Resource Record Type": "Resource Record Type",
respTime: "Antw. Zeit (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Erstellen",
}
diff --git a/src/languages/en.js b/src/languages/en.js
index f0e4ae969..6a4f5e2f3 100644
--- a/src/languages/en.js
+++ b/src/languages/en.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Create your admin account",
"Repeat Password": "Repeat Password",
respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create",
}
diff --git a/src/pages/Setup.vue b/src/pages/Setup.vue
index 756aff365..dbff86837 100644
--- a/src/pages/Setup.vue
+++ b/src/pages/Setup.vue
@@ -14,6 +14,15 @@
+
+
+
+
+
@@ -29,7 +38,7 @@
@@ -49,6 +58,11 @@ export default {
repeatPassword: "",
}
},
+ watch: {
+ "$i18n.locale"() {
+ localStorage.locale = this.$i18n.locale;
+ },
+ },
mounted() {
this.$root.getSocket().emit("needSetup", (needSetup) => {
if (! needSetup) {
From 899b33b3a966017a17cd5e3c45c5044fa4554015 Mon Sep 17 00:00:00 2001
From: LouisLam
Date: Mon, 6 Sep 2021 01:31:05 +0800
Subject: [PATCH 18/18] add language missing keys
---
src/languages/da-DK.js | 3 ++-
src/languages/es-ES.js | 3 ++-
src/languages/fr.js | 3 ++-
src/languages/ja.js | 3 ++-
src/languages/ko-KR.js | 3 ++-
src/languages/nl-NL.js | 3 ++-
src/languages/pl.js | 3 ++-
src/languages/ru-RU.js | 3 ++-
src/languages/sr-latn.js | 3 ++-
src/languages/sr.js | 3 ++-
src/languages/sv-SE.js | 3 ++-
src/languages/zh-CN.js | 3 ++-
src/languages/zh-HK.js | 3 ++-
13 files changed, 26 insertions(+), 13 deletions(-)
diff --git a/src/languages/da-DK.js b/src/languages/da-DK.js
index 713eecfe2..050f31e40 100644
--- a/src/languages/da-DK.js
+++ b/src/languages/da-DK.js
@@ -108,5 +108,6 @@ export default {
"Repeat Password": "Gentag adgangskoden",
"Resource Record Type": "Resource Record Type",
respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/es-ES.js b/src/languages/es-ES.js
index 96ce923ec..4079991ee 100644
--- a/src/languages/es-ES.js
+++ b/src/languages/es-ES.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Crea tu cuenta de administrador",
"Repeat Password": "Repetir contraseña",
respTime: "Tiempo de resp. (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/fr.js b/src/languages/fr.js
index e4f999dce..4019b74d3 100644
--- a/src/languages/fr.js
+++ b/src/languages/fr.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Créez votre compte administrateur",
"Repeat Password": "Répéter le mot de passe",
respTime: "Temps de réponse (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/ja.js b/src/languages/ja.js
index 23de640cf..51181cdf4 100644
--- a/src/languages/ja.js
+++ b/src/languages/ja.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Create your admin account",
"Repeat Password": "Repeat Password",
respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js
index 8493193cb..49a510f69 100644
--- a/src/languages/ko-KR.js
+++ b/src/languages/ko-KR.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "관리자 계정 만들기",
"Repeat Password": "비밀번호 재입력",
respTime: "응답 시간 (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/nl-NL.js b/src/languages/nl-NL.js
index 60c5089c9..0ab73bb9f 100644
--- a/src/languages/nl-NL.js
+++ b/src/languages/nl-NL.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Maak uw beheerdersaccount aan",
"Repeat Password": "Herhaal wachtwoord",
respTime: "resp. tijd (ms)",
- notAvailableShort: "N.v.t."
+ notAvailableShort: "N.v.t.",
+ Create: "Create"
}
diff --git a/src/languages/pl.js b/src/languages/pl.js
index 9e16011bc..25f76430d 100644
--- a/src/languages/pl.js
+++ b/src/languages/pl.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Utwórz swoje konto administratora",
"Repeat Password": "Powtórz hasło",
respTime: "Odp. Czas (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js
index f42f9c256..96f6efab8 100644
--- a/src/languages/ru-RU.js
+++ b/src/languages/ru-RU.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Создайте аккаунт администратора",
"Repeat Password": "Повторите пароль",
respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/sr-latn.js b/src/languages/sr-latn.js
index aa7d95cf9..defc78211 100644
--- a/src/languages/sr-latn.js
+++ b/src/languages/sr-latn.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Naprivi administratorski nalog",
"Repeat Password": "Ponovite lozinku",
respTime: "Vreme odg. (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/sr.js b/src/languages/sr.js
index 0bd084036..d333210f9 100644
--- a/src/languages/sr.js
+++ b/src/languages/sr.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Наприви администраторски налог",
"Repeat Password": "Поновите лозинку",
respTime: "Време одг. (мс)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js
index 8aa4e155b..d0015432d 100644
--- a/src/languages/sv-SE.js
+++ b/src/languages/sv-SE.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "Skapa ditt administratörskonto",
"Repeat Password": "Upprepa Lösenord",
respTime: "Svarstid (ms)",
- notAvailableShort: "Ej Tillg."
+ notAvailableShort: "Ej Tillg.",
+ Create: "Create"
}
diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js
index d179a91af..e47bd70a7 100644
--- a/src/languages/zh-CN.js
+++ b/src/languages/zh-CN.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "创建管理员账号",
"Repeat Password": "重复密码",
respTime: "Resp. Time (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "Create"
}
diff --git a/src/languages/zh-HK.js b/src/languages/zh-HK.js
index 4bcc5029e..6dfc726ea 100644
--- a/src/languages/zh-HK.js
+++ b/src/languages/zh-HK.js
@@ -108,5 +108,6 @@ export default {
"Create your admin account": "製作你的管理員帳號",
"Repeat Password": "重複密碼",
respTime: "反應時間 (ms)",
- notAvailableShort: "N/A"
+ notAvailableShort: "N/A",
+ Create: "建立"
}