From 532ad3044cb3e0b7e7771863c2d871f45b1e22b5 Mon Sep 17 00:00:00 2001 From: Domenic Horner Date: Thu, 2 Sep 2021 21:55:25 +0800 Subject: [PATCH 01/29] 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 472012af..9417e733 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/29] 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 9417e733..fb132ced 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/29] 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 fb132ced..274f99cb 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/29] 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 274f99cb..fecc639c 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/29] 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 fecc639c..b9eba5a0 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/29] 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 19f21d92..126d59b1 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 b9eba5a0..42c4627d 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 39191de7..8f4516dc 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/29] 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 42c4627d..520d78dd 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/29] 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 520d78dd..beb1ff9d 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/29] 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 126d59b1..19f21d92 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 beb1ff9d..f78401d9 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 8f4516dc..39191de7 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 5837c353b7689c573f03fe843ccc007f872e1335 Mon Sep 17 00:00:00 2001 From: LouisLam Date: Sun, 5 Sep 2021 02:47:31 +0800 Subject: [PATCH 10/29] 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 44e37532..b149e111 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 11/29] 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 00000000..9e16011b --- /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 8f5e0a91..7ad9db08 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 70564213..83384ca8 100644 --- a/src/pages/Settings.vue +++ b/src/pages/Settings.vue @@ -213,6 +213,11 @@

이 기능은 Cloudflare Access와 같은 서드파티 인증을 Uptime Kuma 앞에 둔 사용자를 위한 기능이에요.

신중하게 사용하세요.

+ From 1b8b33c4c3e585b002570bf903d883f6ca42cb1e Mon Sep 17 00:00:00 2001 From: Ponkhy Date: Sun, 5 Sep 2021 15:40:35 +0200 Subject: [PATCH 12/29] 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 76c355a3..1f8eb055 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 f0e4ae96..6a4f5e2f 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 756aff36..dbff8683 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 13/29] 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 713eecfe..050f31e4 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 96ce923e..4079991e 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 e4f999dc..4019b74d 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 23de640c..51181cdf 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 8493193c..49a510f6 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 60c5089c..0ab73bb9 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 9e16011b..25f76430 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 f42f9c25..96f6efab 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 aa7d95cf..defc7821 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 0bd08403..d333210f 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 8aa4e155..d0015432 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 d179a91a..e47bd70a 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 4bcc5029..6dfc726e 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: "建立" } From d4ff5d8b325571ebf4fe518bc09b9ac30cd51a95 Mon Sep 17 00:00:00 2001 From: Adam Stachowicz Date: Sun, 5 Sep 2021 20:55:25 +0200 Subject: [PATCH 14/29] [LANG] `pl` fixes --- src/languages/pl.js | 66 ++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/languages/pl.js b/src/languages/pl.js index 25f76430..c95a1d6b 100644 --- a/src/languages/pl.js +++ b/src/languages/pl.js @@ -1,20 +1,20 @@ 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.", + checkEverySecond: "Sprawdzaj co {0} sekund.", + "Avg.": "Średnia ", + retriesDescription: "Maksymalna liczba powtórzeń, zanim usługa zostanie oznaczona jako wyłączona 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.", + maxRedirectDescription: "Maksymalna liczba przekierowań do wykonania. 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", + passwordNotMatchMsg: "Powtórzone hasło nie pasuje.", + notificationDescription: "Proszę przypisać powiadomienie do monitora(ów), aby zadziałał.", + keywordDescription: "Wyszukiwanie słów kluczowych w zwykłym html lub odpowiedzi JSON. 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ć.", + deleteNotificationMsg: "Czy na pewno chcesz usunąć to powiadomienie dla wszystkich monitorów?", + resoverserverDescription: "Cloudflare jest domyślnym serwerem, możesz zmienić serwer resolver w każdej chwili.", + rrtypeDescription: "Wybierz RR-Type który chcesz monitorować", pauseMonitorMsg: "Czy na pewno chcesz wstrzymać?", Settings: "Ustawienia", Dashboard: "Panel", @@ -23,11 +23,11 @@ export default { Appearance: "Wygląd", Theme: "Motyw", General: "Ogólne", - Version: "Versja", + Version: "Wersja", "Check Update On GitHub": "Sprawdź aktualizację na GitHub.", List: "Lista", Add: "Dodaj", - "Add New Monitor": "Dodaj Nowy Monitor", + "Add New Monitor": "Dodaj nowy monitor", "Quick Stats": "Szybkie statystyki", Up: "Online", Down: "Offline", @@ -38,46 +38,46 @@ export default { Status: "Status", DateTime: "Data i godzina", Message: "Wiadomość", - "No important events": "Brak ważnych wydarzeń.", + "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.", + Uptime: "Czas pracy", + "Cert Exp.": "Wygaśnięcie certyfikatu", days: "dni", day: "dzień", - "-day": "-dzień", + "-day": " dni", hour: "godzina", - "-hour": "-godzina", - Response: "odpowiedź", + "-hour": " godziny", + Response: "Odpowiedź", Ping: "Ping", "Monitor Type": "Typ monitora", - Keyword: "słowo kluczowe", - "Friendly Name": "Przyjazne imię", + Keyword: "Słowo kluczowe", + "Friendly Name": "Przyjazna nazwa", URL: "URL", - Hostname: "Hostname", + Hostname: "Nazwa hosta", Port: "Port", "Heartbeat Interval": "Interwał bicia serca", Retries: "Prób", Advanced: "Zaawansowane", "Upside Down Mode": "Tryb do góry nogami", - "Max. Redirects": "Maks. Przekierowania", + "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", + "Setup Notification": "Konfiguracja powiadomień", Light: "Jasny", Dark: "Ciemny", Auto: "Automatyczny", "Theme - Heartbeat Bar": "Motyw - pasek bicia serca", Normal: "Normalne", Bottom: "Na dole", - None: "Nic", + None: "Brak", Timezone: "Strefa czasowa", "Search Engine Visibility": "Widoczność w wyszukiwarce", - "Allow indexing": "Zezwól na indeksowanie", + "Allow indexing": "Pozwó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", @@ -87,7 +87,7 @@ export default { "Disable Auth": "Wyłącz autoryzację", "Enable Auth": "Włącz autoryzację ", Logout: "Wyloguj się", - Leave: "Opuść", + Leave: "Zostaw", "I understand, please disable": "Rozumiem, proszę wyłączyć", Confirm: "Potwierdź", Yes: "Tak", @@ -95,8 +95,8 @@ export default { Username: "Nazwa użytkownika", Password: "Hasło", "Remember me": "Zapamiętaj mnie", - Login: "Zaloguj sie", - "No Monitors, please": "Proszę bez monitorów", + Login: "Zaloguj się", + "No Monitors, please": "Brak monitorów, proszę", "add one": "dodaj jeden", "Notification Type": "Typ powiadomienia", Email: "Email", @@ -104,10 +104,10 @@ export default { "Certificate Info": "Informacje o certyfikacie", "Resolver Server": "Server resolver", "Resource Record Type": "Typ rekordu zasobów", - "Last Result": "Ostatni rekord", + "Last Result": "Ostatni wynik", "Create your admin account": "Utwórz swoje konto administratora", "Repeat Password": "Powtórz hasło", - respTime: "Odp. Czas (ms)", + respTime: "Czas odp. (ms)", notAvailableShort: "N/A", - Create: "Create" + Create: "Stwórz" } From 424f20f8e125dd3cdfdfba2da5eff6fb5e523958 Mon Sep 17 00:00:00 2001 From: Adam Stachowicz Date: Sun, 5 Sep 2021 20:59:04 +0200 Subject: [PATCH 15/29] Better `upsideDownModeDescription` --- src/languages/pl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/pl.js b/src/languages/pl.js index c95a1d6b..f416d508 100644 --- a/src/languages/pl.js +++ b/src/languages/pl.js @@ -4,7 +4,7 @@ export default { "Avg.": "Średnia ", retriesDescription: "Maksymalna liczba powtórzeń, zanim usługa zostanie oznaczona jako wyłączona 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.", + upsideDownModeDescription: "Odwróć status do góry nogami. Jeśli usługa jest osiągalna, to jest oznaczona jako niedostępna.", maxRedirectDescription: "Maksymalna liczba przekierowań do wykonania. 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 pasuje.", From dcc77991083da699be4e5f8e7ea8d1a2f7c5f0ac Mon Sep 17 00:00:00 2001 From: Minvinea Date: Sun, 5 Sep 2021 21:34:32 +0200 Subject: [PATCH 16/29] Update few words and name of file https://prnt.sc/1rbosiy --- src/languages/{fr.js => fr-FR.js} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename src/languages/{fr.js => fr-FR.js} (99%) diff --git a/src/languages/fr.js b/src/languages/fr-FR.js similarity index 99% rename from src/languages/fr.js rename to src/languages/fr-FR.js index 4019b74d..d49d0191 100644 --- a/src/languages/fr.js +++ b/src/languages/fr-FR.js @@ -66,7 +66,7 @@ export default { "Theme - Heartbeat Bar": "Voir les services surveillés", Normal: "Général", Bottom: "En dessous", - None: "Non", + None: "Rien", Timezone: "Fuseau Horaire", "Search Engine Visibility": "Visibilité par les moteurs de recherche", "Allow indexing": "Autoriser l'indexation par des moteurs de recherche", @@ -109,5 +109,5 @@ export default { "Repeat Password": "Répéter le mot de passe", respTime: "Temps de réponse (ms)", notAvailableShort: "N/A", - Create: "Create" + Create: "Créer" } From e8b814733d4ec8a9e7dea1bf688d487d9ab16643 Mon Sep 17 00:00:00 2001 From: Adam Stachowicz Date: Sun, 5 Sep 2021 23:14:56 +0200 Subject: [PATCH 17/29] Fix typo --- src/languages/pl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/pl.js b/src/languages/pl.js index f416d508..cc625d6d 100644 --- a/src/languages/pl.js +++ b/src/languages/pl.js @@ -8,7 +8,7 @@ export default { maxRedirectDescription: "Maksymalna liczba przekierowań do wykonania. 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 pasuje.", - notificationDescription: "Proszę przypisać powiadomienie do monitora(ów), aby zadziałał.", + notificationDescription: "Proszę przypisać powiadomienie do monitora(ów), aby zadziałało.", keywordDescription: "Wyszukiwanie słów kluczowych w zwykłym html lub odpowiedzi JSON. Wielkość liter ma znaczenie.", pauseDashboardHome: "Pauza", deleteMonitorMsg: "Czy na pewno chcesz usunąć ten monitor?", From 1197cfa11e923c658902ddd0281fce2725bb3456 Mon Sep 17 00:00:00 2001 From: Minvinea Date: Sun, 5 Sep 2021 23:37:26 +0200 Subject: [PATCH 18/29] Update file name --- src/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.js b/src/main.js index 7ad9db08..e8bc92bf 100644 --- a/src/main.js +++ b/src/main.js @@ -28,7 +28,7 @@ import zhHK from "./languages/zh-HK"; import deDE from "./languages/de-DE"; import nlNL from "./languages/nl-NL"; import esEs from "./languages/es-ES"; -import fr from "./languages/fr"; +import frFR from "./languages/fr-FR"; import ja from "./languages/ja"; import daDK from "./languages/da-DK"; import sr from "./languages/sr"; From 31648dc5e8cf322f76b18841652f0042787e0b73 Mon Sep 17 00:00:00 2001 From: Minvinea Date: Sun, 5 Sep 2021 23:41:57 +0200 Subject: [PATCH 19/29] Update #2 --- src/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.js b/src/main.js index e8bc92bf..f34e9c43 100644 --- a/src/main.js +++ b/src/main.js @@ -106,7 +106,7 @@ const languageList = { "de-DE": deDE, "nl-NL": nlNL, "es-ES": esEs, - "fr": fr, + "fr-FR": frFR, "ja": ja, "da-DK": daDK, "sr": sr, From edfaacbb5f07232eca182136e13d08838d12feba Mon Sep 17 00:00:00 2001 From: Ponkhy Date: Tue, 7 Sep 2021 02:24:02 +0200 Subject: [PATCH 20/29] Added component HiddenInput.vue --- src/components/HiddenInput.vue | 59 ++++++++++++++++++++++++++++++++++ src/icon.js | 4 +-- 2 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 src/components/HiddenInput.vue diff --git a/src/components/HiddenInput.vue b/src/components/HiddenInput.vue new file mode 100644 index 00000000..5b2b77ae --- /dev/null +++ b/src/components/HiddenInput.vue @@ -0,0 +1,59 @@ + + + diff --git a/src/icon.js b/src/icon.js index 960fa8c1..58583f0f 100644 --- a/src/icon.js +++ b/src/icon.js @@ -1,10 +1,10 @@ import { library } from "@fortawesome/fontawesome-svg-core" -import { faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp } from "@fortawesome/free-solid-svg-icons" +import { faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp, faEye, faEyeSlash } from "@fortawesome/free-solid-svg-icons" //import { fa } from '@fortawesome/free-regular-svg-icons' import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome" // Add Free Font Awesome Icons here // https://fontawesome.com/v5.15/icons?d=gallery&p=2&s=solid&m=free -library.add(faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp); +library.add(faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp, faEye, faEyeSlash); export { FontAwesomeIcon } From 848296b77a0877dd71c2b06f1e5fa07dd5f1f6d1 Mon Sep 17 00:00:00 2001 From: Ponkhy Date: Tue, 7 Sep 2021 02:30:53 +0200 Subject: [PATCH 21/29] Changed input for sensitive data to HiddenInput --- src/components/NotificationDialog.vue | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/components/NotificationDialog.vue b/src/components/NotificationDialog.vue index 2fdb8fe1..8a79dba5 100644 --- a/src/components/NotificationDialog.vue +++ b/src/components/NotificationDialog.vue @@ -40,7 +40,7 @@