diff --git a/extra/reset-password.js b/extra/reset-password.js index b849848b8..be0395897 100644 --- a/extra/reset-password.js +++ b/extra/reset-password.js @@ -6,12 +6,14 @@ const Database = require("../server/database"); const { R } = require("redbean-node"); const readline = require("readline"); const { initJWTSecret } = require("../server/util-server"); +const args = require("args-parser")(process.argv); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); (async () => { + Database.init(args); await Database.connect(); try { diff --git a/server/database.js b/server/database.js index 39118bb8b..7f3f461a1 100644 --- a/server/database.js +++ b/server/database.js @@ -44,6 +44,16 @@ class Database { static noReject = true; + static init(args) { + // Data Directory (must be end with "/") + Database.dataDir = process.env.DATA_DIR || args["data-dir"] || "./data/"; + Database.path = Database.dataDir + "kuma.db"; + if (! fs.existsSync(Database.dataDir)) { + fs.mkdirSync(Database.dataDir, { recursive: true }); + } + console.log(`Data Dir: ${Database.dataDir}`); + } + static async connect() { const acquireConnectionTimeout = 120 * 1000; diff --git a/server/server.js b/server/server.js index f6eec4bdc..4f2fa5a01 100644 --- a/server/server.js +++ b/server/server.js @@ -128,6 +128,7 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString(); exports.entryPage = "dashboard"; (async () => { + Database.init(args); await initDatabase(); exports.entryPage = await setting("entryPage"); diff --git a/src/languages/da-DK.js b/src/languages/da-DK.js index 86e1c0c9d..eaba6e2cb 100644 --- a/src/languages/da-DK.js +++ b/src/languages/da-DK.js @@ -36,7 +36,6 @@ export default { hour: "Timer", "-hour": "-Timer", checkEverySecond: "Tjek hvert {0} sekund", - "Avg.": "Gns.", Response: "Respons", Ping: "Ping", "Monitor Type": "Overvåger Type", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Show URI", "Clear all statistics": "Clear all Statistics", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/de-DE.js b/src/languages/de-DE.js index b5b0bc3bd..8f8792853 100644 --- a/src/languages/de-DE.js +++ b/src/languages/de-DE.js @@ -36,7 +36,6 @@ export default { hour: "Stunde", "-hour": "-Stunden", checkEverySecond: "Überprüfe alle {0} Sekunden", - "Avg.": "Durchschn.", Response: "Antwortzeit", Ping: "Ping", "Monitor Type": "Monitor Typ", @@ -167,4 +166,6 @@ export default { retryCheckEverySecond: "Versuche alle {0} Sekunden", "Import Backup": "Import Backup", "Export Backup": "Export Backup", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/en.js b/src/languages/en.js index 1971f6f6d..6a7456f28 100644 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -2,7 +2,6 @@ export default { languageName: "English", checkEverySecond: "Check every {0} seconds.", retryCheckEverySecond: "Retry every {0} seconds.", - "Avg.": "Avg.", retriesDescription: "Maximum retries before the service is marked as down and a notification is sent", ignoreTLSError: "Ignore TLS/SSL error for HTTPS websites", upsideDownModeDescription: "Flip the status upside down. If the service is reachable, it is DOWN.", @@ -167,4 +166,6 @@ export default { Purple: "Purple", Pink: "Pink", "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/es-ES.js b/src/languages/es-ES.js index c34dbaf1c..cb8733792 100644 --- a/src/languages/es-ES.js +++ b/src/languages/es-ES.js @@ -1,7 +1,6 @@ export default { languageName: "Español", checkEverySecond: "Comprobar cada {0} segundos.", - "Avg.": "Media.", retriesDescription: "Número máximo de intentos antes de que el servicio se marque como CAÍDO y una notificación sea enviada.", ignoreTLSError: "Ignorar error TLS/SSL para sitios web HTTPS", upsideDownModeDescription: "Invertir el estado. Si el servicio es alcanzable, está CAÍDO.", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Show URI", "Clear all statistics": "Clear all Statistics", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/et-EE.js b/src/languages/et-EE.js index 14bedd178..991a6a35e 100644 --- a/src/languages/et-EE.js +++ b/src/languages/et-EE.js @@ -1,7 +1,6 @@ export default { languageName: "eesti", checkEverySecond: "Kontrolli {0} sekundilise vahega.", - "Avg.": "≈", retriesDescription: "Mitu korda tuleb kontrollida, mille järel märkida 'maas' ja saata välja teavitus.", ignoreTLSError: "Eira TLS/SSL viga HTTPS veebisaitidel.", upsideDownModeDescription: "Käitle teenuse saadavust rikkena, teenuse kättesaamatust töötavaks.", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Show URI", "Clear all statistics": "Clear all Statistics", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/fr-FR.js b/src/languages/fr-FR.js index ab03f68c7..0050c5c02 100644 --- a/src/languages/fr-FR.js +++ b/src/languages/fr-FR.js @@ -36,7 +36,6 @@ export default { hour: "Heure", "-hour": "Heures", checkEverySecond: "Vérifier toutes les {0} secondes", - "Avg.": "Moyen", Response: "Temps de réponse", Ping: "Ping", "Monitor Type": "Type de Sonde", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Show URI", "Clear all statistics": "Clear all Statistics", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/it-IT.js b/src/languages/it-IT.js index bbd2d3ad1..09d0bece6 100644 --- a/src/languages/it-IT.js +++ b/src/languages/it-IT.js @@ -1,7 +1,7 @@ export default { languageName: "Italiano (Italian)", checkEverySecond: "controlla ogni {0} secondi", - "Avg.": "Media", + retryCheckEverySecond: "Riprova ogni {0} secondi.", retriesDescription: "Tentativi da fare prima che il servizio venga marcato come \"giù\" e che una notifica venga inviata.", ignoreTLSError: "Ignora gli errori TLS/SSL per i siti in HTTPS.", upsideDownModeDescription: "Capovolgi lo stato. Se il servizio è raggiungibile viene marcato come \"GIÙ\".", @@ -20,6 +20,8 @@ export default { clearEventsMsg: "Si è certi di voler eliminare tutti gli eventi per questo servizio?", clearHeartbeatsMsg: "Si è certi di voler eliminare tutti gli intervalli di controllo per questo servizio?", confirmClearStatisticsMsg: "Si è certi di voler eliminare TUTTE le statistiche?", + importHandleDescription: "Selezionare 'Ignora gli esistenti' si vuole ignorare l'importazione dei monitoraggi o delle notifiche con lo stesso nome. 'Sovrascrivi' eliminerà ogni monitoraggio e notifica esistente.", + confirmImportMsg: "Si è certi di voler importare il backup? Essere certi di aver selezionato l'opzione corretta di importazione.", twoFAVerifyLabel: "Scrivi il token per verificare che l'autenticazione a due fattori funzioni", tokenValidSettingsMsg: "Il token è valido! È ora possibile salvare le impostazioni.", confirmEnableTwoFAMsg: "Si è certi di voler abilitare l'autenticazione a due fattori?", @@ -68,6 +70,7 @@ export default { Port: "Porta", "Heartbeat Interval": "Intervallo di controllo", Retries: "Tentativi", + "Heartbeat Retry Interval": "Intervallo tra un tentativo di controllo e l'altro", Advanced: "Avanzate", "Upside Down Mode": "Modalità capovolta", "Max. Redirects": "Redirezionamenti massimi", @@ -115,6 +118,8 @@ export default { "Last Result": "Ultimo risultato", "Create your admin account": "Crea l'account amministratore", "Repeat Password": "Ripeti Password", + "Import Backup": "Importa Backup", + "Export Backup": "Esporta Backup", Export: "Esporta", Import: "Importa", respTime: "Tempo di Risposta (ms)", @@ -126,12 +131,16 @@ export default { Events: "Eventi", Heartbeats: "Controlli", "Auto Get": "Auto Get", - "Also apply to existing monitors": "Also apply to existing monitors", backupDescription: "È possibile fare il backup di tutti i monitoraggi e di tutte le notifiche in un file JSON.", backupDescription2: "P.S.: lo storico e i dati relativi agli eventi non saranno inclusi.", backupDescription3: "Dati sensibili come i token di autenticazione saranno inclusi nel backup, tenere quindi in un luogo sicuro.", alertNoFile: "Selezionare il file da importare.", alertWrongFileType: "Selezionare un file JSON.", + "Clear all statistics": "Pulisci tutte le statistiche", + "Skip existing": "Ignora gli esistenti", + Overwrite: "Sovrascrivi", + Options: "Opzioni", + "Keep both": "Mantieni entrambi", "Verify Token": "Verifica Token", "Setup 2FA": "Imposta l'autenticazione a due fattori", "Enable 2FA": "Abilita l'autenticazione a due fattori", @@ -142,7 +151,6 @@ export default { Inactive: "Disattivata", Token: "Token", "Show URI": "Mostra URI", - "Clear all statistics": "Pulisci tutte le statistiche", Tags: "Etichette", "Add New below or Select...": "Aggiungine una oppure scegli...", "Tag with this name already exist.": "Un'etichetta con questo nome già esiste.", @@ -158,4 +166,6 @@ export default { Purple: "Viola", Pink: "Rosa", "Search...": "Cerca...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/ja.js b/src/languages/ja.js index 358df33c5..44f96ee44 100644 --- a/src/languages/ja.js +++ b/src/languages/ja.js @@ -1,7 +1,6 @@ export default { languageName: "日本語", checkEverySecond: "{0}秒ごとにチェックします。", - "Avg.": "平均", retriesDescription: "サービスがダウンとしてマークされ、通知が送信されるまでの最大リトライ数", ignoreTLSError: "HTTPS ウェブサイトの TLS/SSL エラーを無視する", upsideDownModeDescription: "ステータスの扱いを逆にします。サービスに到達可能な場合は、DOWNとなる。", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Show URI", "Clear all statistics": "Clear all Statistics", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/ko-KR.js b/src/languages/ko-KR.js index 349c3ae77..70948a31d 100644 --- a/src/languages/ko-KR.js +++ b/src/languages/ko-KR.js @@ -1,7 +1,6 @@ export default { languageName: "한국어", checkEverySecond: "{0} 초마다 체크해요.", - "Avg.": "평균", retriesDescription: "서비스가 중단된 후 알림을 보내기 전 최대 재시도 횟수", ignoreTLSError: "HTTPS 웹사이트에서 TLS/SSL 에러 무시하기", upsideDownModeDescription: "서버 상태를 반대로 표시해요. 서버가 작동하면 오프라인으로 표시할 거에요.", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Show URI", "Clear all statistics": "Clear all Statistics", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/nl-NL.js b/src/languages/nl-NL.js index 546e6dbd4..7ec386d01 100644 --- a/src/languages/nl-NL.js +++ b/src/languages/nl-NL.js @@ -1,7 +1,6 @@ export default { languageName: "Nederlands", checkEverySecond: "Controleer elke {0} seconden.", - "Avg.": "Gem.", retriesDescription: "Maximum aantal nieuwe pogingen voordat de service wordt gemarkeerd als niet beschikbaar en er een melding wordt verzonden", ignoreTLSError: "Negeer TLS/SSL-fout voor HTTPS-websites", upsideDownModeDescription: "Draai de status om. Als de service bereikbaar is, is deze OFFLINE.", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Toon URI", "Clear all statistics": "Wis alle statistieken", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/pl.js b/src/languages/pl.js index a07a70637..2b34492e6 100644 --- a/src/languages/pl.js +++ b/src/languages/pl.js @@ -1,7 +1,6 @@ export default { languageName: "Polski", 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 oznaczona jako niedostępna.", @@ -168,4 +167,6 @@ export default { Purple: "Fioletowy", Pink: "Różowy", "Search...": "Szukaj...", + "Avg. Ping": "Średni ping", + "Avg. Response": "Średnia odpowiedź", } diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js index fe12982ec..956235de4 100644 --- a/src/languages/ru-RU.js +++ b/src/languages/ru-RU.js @@ -1,7 +1,6 @@ export default { languageName: "Русский", checkEverySecond: "Проверять каждые {0} секунд.", - "Avg.": "Средн.", retriesDescription: "Максимальное количество попыток перед пометкой сервиса как недоступного и отправкой уведомления", ignoreTLSError: "Игнорировать ошибку TLS/SSL для HTTPS сайтов", upsideDownModeDescription: "Реверс статуса сервиса. Если сервис доступен, то он помечается как НЕДОСТУПНЫЙ.", @@ -168,4 +167,6 @@ export default { Purple: "Пурпурный", Pink: "Розовый", "Search...": "Поиск...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/sr-latn.js b/src/languages/sr-latn.js index 38a6fe736..2ebeb32fd 100644 --- a/src/languages/sr-latn.js +++ b/src/languages/sr-latn.js @@ -1,7 +1,6 @@ export default { languageName: "Srpski", checkEverySecond: "Proveri svakih {0} sekundi.", - "Avg.": "Prosečni", retriesDescription: "Maksimum pokušaja pre nego što se servis obeleži kao neaktivan i pošalje se obaveštenje.", ignoreTLSError: "Ignoriši TLS/SSL greške za HTTPS veb stranice.", upsideDownModeDescription: "Obrnite status. Ako je servis dostupan, onda je obeležen kao neaktivan.", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Show URI", "Clear all statistics": "Clear all Statistics", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/sr.js b/src/languages/sr.js index c163dcb64..b5cf1cb87 100644 --- a/src/languages/sr.js +++ b/src/languages/sr.js @@ -1,7 +1,6 @@ export default { languageName: "Српски", checkEverySecond: "Провери сваких {0} секунди.", - "Avg.": "Просечни", retriesDescription: "Максимум покушаја пре него што се сервис обележи као неактиван и пошаље се обавештење.", ignoreTLSError: "Игнориши TLS/SSL грешке за HTTPS веб странице.", upsideDownModeDescription: "Обрните статус. Ако је сервис доступан, онда је обележен као неактиван.", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Show URI", "Clear all statistics": "Clear all Statistics", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/sv-SE.js b/src/languages/sv-SE.js index 559dbb824..f4c42627e 100644 --- a/src/languages/sv-SE.js +++ b/src/languages/sv-SE.js @@ -1,7 +1,6 @@ export default { languageName: "Svenska", checkEverySecond: "Uppdatera var {0} sekund.", - "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.", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Show URI", "Clear all statistics": "Clear all Statistics", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/tr-TR.js b/src/languages/tr-TR.js index b62e289fc..c521680c9 100644 --- a/src/languages/tr-TR.js +++ b/src/languages/tr-TR.js @@ -1,7 +1,6 @@ export default { languageName: "Türkçe", checkEverySecond: "{0} Saniyede bir kontrol et.", - "Avg.": "Ortalama", retriesDescription: "Servisin kapalı olarak işaretlenmeden ve bir bildirim gönderilmeden önce maksimum yeniden deneme sayısı", ignoreTLSError: "HTTPS web siteleri için TLS/SSL hatasını yoksay", upsideDownModeDescription: "Servisin durumunu tersine çevirir. Servis çalışıyorsa kapalı olarak işaretler.", @@ -117,4 +116,56 @@ export default { Events: "Olaylar", Heartbeats: "Sağlık Durumları", "Auto Get": "Otomatik Al", + retryCheckEverySecond: "Retry every {0} seconds.", + enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + twoFAVerifyLabel: "Please type in your token to verify that 2FA is working", + tokenValidSettingsMsg: "Token is valid! You can now save the 2FA settings.", + confirmEnableTwoFAMsg: "Are you sure you want to enable 2FA?", + confirmDisableTwoFAMsg: "Are you sure you want to disable 2FA?", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + Export: "Export", + Import: "Import", + "Default enabled": "Default enabled", + "Apply on all existing monitors": "Apply on all existing monitors", + backupDescription: "You can backup all monitors and all notifications into a JSON file.", + backupDescription2: "PS: History and event data is not included.", + backupDescription3: "Sensitive data such as notification tokens is included in the export file, please keep it carefully.", + alertNoFile: "Please select a file to import.", + alertWrongFileType: "Please select a JSON file.", + "Clear all statistics": "Clear all Statistics", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + "Verify Token": "Verify Token", + "Setup 2FA": "Setup 2FA", + "Enable 2FA": "Enable 2FA", + "Disable 2FA": "Disable 2FA", + "2FA Settings": "2FA Settings", + "Two Factor Authentication": "Two Factor Authentication", + Active: "Active", + Inactive: "Inactive", + Token: "Token", + "Show URI": "Show URI", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/zh-CN.js b/src/languages/zh-CN.js index c09a824da..c2b3dcc59 100644 --- a/src/languages/zh-CN.js +++ b/src/languages/zh-CN.js @@ -1,7 +1,6 @@ export default { languageName: "简体中文", checkEverySecond: "检测频率 {0} 秒", - "Avg.": "平均", retriesDescription: "最大重试失败次数", ignoreTLSError: "忽略HTTPS站点的证书错误", upsideDownModeDescription: "反向状态监控(状态码范围外为有效状态,反之为无效)", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "Show URI", "Clear all statistics": "Clear all Statistics", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/languages/zh-HK.js b/src/languages/zh-HK.js index 1a4ae5a6c..1e1e0c7dc 100644 --- a/src/languages/zh-HK.js +++ b/src/languages/zh-HK.js @@ -36,7 +36,6 @@ export default { hour: "小時", "-hour": "小時", checkEverySecond: "每 {0} 秒檢查一次", - "Avg.": "平均", Response: "反應時間", Ping: "反應時間", "Monitor Type": "監測器類型", @@ -143,4 +142,31 @@ export default { Token: "Token", "Show URI": "顯示 URI", "Clear all statistics": "清除所有歷史記錄", + retryCheckEverySecond: "Retry every {0} seconds.", + importHandleDescription: "Choose 'Skip existing' if you want to skip every monitor or notification with the same name. 'Overwrite' will delete every existing monitor and notification.", + confirmImportMsg: "Are you sure to import the backup? Please make sure you've selected the right import option.", + "Heartbeat Retry Interval": "Heartbeat Retry Interval", + "Import Backup": "Import Backup", + "Export Backup": "Export Backup", + "Skip existing": "Skip existing", + Overwrite: "Overwrite", + Options: "Options", + "Keep both": "Keep both", + Tags: "Tags", + "Add New below or Select...": "Add New below or Select...", + "Tag with this name already exist.": "Tag with this name already exist.", + "Tag with this value already exist.": "Tag with this value already exist.", + color: "color", + "value (optional)": "value (optional)", + Gray: "Gray", + Red: "Red", + Orange: "Orange", + Green: "Green", + Blue: "Blue", + Indigo: "Indigo", + Purple: "Purple", + Pink: "Pink", + "Search...": "Search...", + "Avg. Ping": "Avg. Ping", + "Avg. Response": "Avg. Response", } diff --git a/src/pages/Details.vue b/src/pages/Details.vue index c992d240b..c93e47d0b 100644 --- a/src/pages/Details.vue +++ b/src/pages/Details.vue @@ -49,7 +49,7 @@
-

{{ pingTitle }}

+

{{ pingTitle() }}

({{ $t("Current") }})

@@ -58,7 +58,7 @@
-

{{ $t("Avg.") }} {{ pingTitle }}

+

{{ pingTitle(true) }}

(24{{ $t("-hour") }})

@@ -240,14 +240,6 @@ export default { } }, computed: { - - pingTitle() { - if (this.monitor.type === "http") { - return this.$t("Response"); - } - return this.$t("Ping"); - }, - monitor() { let id = this.$route.params.id return this.$root.monitorList[id]; @@ -378,6 +370,19 @@ export default { } }) }, + + pingTitle(average = false) { + let translationPrefix = "" + if (average) { + translationPrefix = "Avg. " + } + + if (this.monitor.type === "http") { + return this.$t(translationPrefix + "Response"); + } + + return this.$t(translationPrefix + "Ping"); + }, }, } diff --git a/src/pages/EditMonitor.vue b/src/pages/EditMonitor.vue index 6d8e58200..06f98c13b 100644 --- a/src/pages/EditMonitor.vue +++ b/src/pages/EditMonitor.vue @@ -333,6 +333,11 @@ export default { this.$root.getSocket().emit("getMonitor", this.$route.params.id, (res) => { if (res.ok) { this.monitor = res.monitor; + + // Handling for monitors that are created before 1.7.0 + if (this.monitor.retryInterval === 0) { + this.monitor.retryInterval = this.monitor.interval; + } } else { toast.error(res.msg) }