mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-12-18 12:14:41 -05:00
Merge branch 'louislam:master' into italian-language
This commit is contained in:
commit
dea9b05d49
7
db/patch9.sql
Normal file
7
db/patch9.sql
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
|
||||||
|
BEGIN TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE notification
|
||||||
|
ADD is_default BOOLEAN default 0 NOT NULL;
|
||||||
|
|
||||||
|
COMMIT;
|
@ -7,7 +7,7 @@ class Database {
|
|||||||
static templatePath = "./db/kuma.db"
|
static templatePath = "./db/kuma.db"
|
||||||
static dataDir;
|
static dataDir;
|
||||||
static path;
|
static path;
|
||||||
static latestVersion = 8;
|
static latestVersion = 9;
|
||||||
static noReject = true;
|
static noReject = true;
|
||||||
static sqliteInstance = null;
|
static sqliteInstance = null;
|
||||||
|
|
||||||
|
@ -92,8 +92,13 @@ class Notification {
|
|||||||
|
|
||||||
bean.name = notification.name;
|
bean.name = notification.name;
|
||||||
bean.user_id = userID;
|
bean.user_id = userID;
|
||||||
bean.config = JSON.stringify(notification)
|
bean.config = JSON.stringify(notification);
|
||||||
|
bean.is_default = notification.isDefault;
|
||||||
await R.store(bean)
|
await R.store(bean)
|
||||||
|
|
||||||
|
if (notification.applyExisting) {
|
||||||
|
await applyNotificationEveryMonitor(bean.id, userID);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static async delete(notificationID, userID) {
|
static async delete(notificationID, userID) {
|
||||||
@ -117,6 +122,26 @@ class Notification {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function applyNotificationEveryMonitor(notificationID, userID) {
|
||||||
|
let monitors = await R.getAll("SELECT id FROM monitor WHERE user_id = ?", [
|
||||||
|
userID
|
||||||
|
]);
|
||||||
|
|
||||||
|
for (let i = 0; i < monitors.length; i++) {
|
||||||
|
let checkNotification = await R.findOne("monitor_notification", " monitor_id = ? AND notification_id = ? ", [
|
||||||
|
monitors[i].id,
|
||||||
|
notificationID,
|
||||||
|
])
|
||||||
|
|
||||||
|
if (! checkNotification) {
|
||||||
|
let relation = R.dispense("monitor_notification");
|
||||||
|
relation.monitor_id = monitors[i].id;
|
||||||
|
relation.notification_id = notificationID;
|
||||||
|
await R.store(relation)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
Notification,
|
Notification,
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
<input id="name" v-model="notification.name" type="text" class="form-control" required>
|
<input id="name" v-model="notification.name" type="text" class="form-control" required>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Telegram></Telegram>
|
<Telegram v-if="notification.type === 'telegram'"></Telegram>
|
||||||
|
|
||||||
<!-- TODO: Convert all into vue components, but not an easy task. -->
|
<!-- TODO: Convert all into vue components, but not an easy task. -->
|
||||||
|
|
||||||
@ -436,6 +436,25 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- DEPRECATED! Please create vue component in "./src/components/notifications/{notification name}.vue" -->
|
<!-- DEPRECATED! Please create vue component in "./src/components/notifications/{notification name}.vue" -->
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<hr class="dropdown-divider">
|
||||||
|
|
||||||
|
<div class="form-check form-switch">
|
||||||
|
<input v-model="notification.isDefault" class="form-check-input" type="checkbox">
|
||||||
|
<label class="form-check-label">{{ $t("Default enabled") }}</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-text">
|
||||||
|
{{ $t("enableDefaultNotificationDescription") }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="form-check form-switch">
|
||||||
|
<input v-model="notification.applyExisting" class="form-check-input" type="checkbox">
|
||||||
|
<label class="form-check-label">{{ $t("Also apply to existing monitors") }}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button v-if="id" type="button" class="btn btn-danger" :disabled="processing" @click="deleteConfirm">
|
<button v-if="id" type="button" class="btn btn-danger" :disabled="processing" @click="deleteConfirm">
|
||||||
@ -445,6 +464,7 @@
|
|||||||
{{ $t("Test") }}
|
{{ $t("Test") }}
|
||||||
</button>
|
</button>
|
||||||
<button type="submit" class="btn btn-primary" :disabled="processing">
|
<button type="submit" class="btn btn-primary" :disabled="processing">
|
||||||
|
<div v-if="processing" class="spinner-border spinner-border-sm me-1"></div>
|
||||||
{{ $t("Save") }}
|
{{ $t("Save") }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@ -485,6 +505,7 @@ export default {
|
|||||||
name: "",
|
name: "",
|
||||||
type: null,
|
type: null,
|
||||||
gotifyPriority: 8,
|
gotifyPriority: 8,
|
||||||
|
isDefault: false,
|
||||||
},
|
},
|
||||||
appriseInstalled: false,
|
appriseInstalled: false,
|
||||||
}
|
}
|
||||||
@ -534,6 +555,7 @@ export default {
|
|||||||
this.notification = {
|
this.notification = {
|
||||||
name: "",
|
name: "",
|
||||||
type: null,
|
type: null,
|
||||||
|
isDefault: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default set to Telegram
|
// Default set to Telegram
|
||||||
|
@ -1,42 +1,40 @@
|
|||||||
<template>
|
<template>
|
||||||
<template v-if="$parent.notification.type === name">
|
<div class="mb-3">
|
||||||
<div class="mb-3">
|
<label for="telegram-bot-token" class="form-label">Bot Token</label>
|
||||||
<label for="telegram-bot-token" class="form-label">Bot Token</label>
|
<HiddenInput id="telegram-bot-token" v-model="$parent.notification.telegramBotToken" :required="true" autocomplete="one-time-code"></HiddenInput>
|
||||||
<HiddenInput id="telegram-bot-token" v-model="$parent.notification.telegramBotToken" :required="true" autocomplete="one-time-code"></HiddenInput>
|
<div class="form-text">
|
||||||
<div class="form-text">
|
You can get a token from <a href="https://t.me/BotFather" target="_blank">https://t.me/BotFather</a>.
|
||||||
You can get a token from <a href="https://t.me/BotFather" target="_blank">https://t.me/BotFather</a>.
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="telegram-chat-id" class="form-label">Chat ID</label>
|
||||||
|
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<input id="telegram-chat-id" v-model="$parent.notification.telegramChatID" type="text" class="form-control" required>
|
||||||
|
<button v-if="$parent.notification.telegramBotToken" class="btn btn-outline-secondary" type="button" @click="autoGetTelegramChatID">
|
||||||
|
{{ $t("Auto Get") }}
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="form-text">
|
||||||
<label for="telegram-chat-id" class="form-label">Chat ID</label>
|
Support Direct Chat / Group / Channel's Chat ID
|
||||||
|
|
||||||
<div class="input-group mb-3">
|
<p style="margin-top: 8px;">
|
||||||
<input id="telegram-chat-id" v-model="$parent.notification.telegramChatID" type="text" class="form-control" required>
|
You can get your chat id by sending message to the bot and go to this url to view the chat_id:
|
||||||
<button v-if="$parent.notification.telegramBotToken" class="btn btn-outline-secondary" type="button" @click="autoGetTelegramChatID">
|
</p>
|
||||||
{{ $t("Auto Get") }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-text">
|
<p style="margin-top: 8px;">
|
||||||
Support Direct Chat / Group / Channel's Chat ID
|
<template v-if="$parent.notification.telegramBotToken">
|
||||||
|
<a :href="telegramGetUpdatesURL" target="_blank" style="word-break: break-word;">{{ telegramGetUpdatesURL }}</a>
|
||||||
|
</template>
|
||||||
|
|
||||||
<p style="margin-top: 8px;">
|
<template v-else>
|
||||||
You can get your chat id by sending message to the bot and go to this url to view the chat_id:
|
{{ telegramGetUpdatesURL }}
|
||||||
</p>
|
</template>
|
||||||
|
</p>
|
||||||
<p style="margin-top: 8px;">
|
|
||||||
<template v-if="$parent.notification.telegramBotToken">
|
|
||||||
<a :href="telegramGetUpdatesURL" target="_blank" style="word-break: break-word;">{{ telegramGetUpdatesURL }}</a>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<template v-else>
|
|
||||||
{{ telegramGetUpdatesURL }}
|
|
||||||
</template>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -115,6 +115,9 @@ export default {
|
|||||||
"Resource Record Type": "Resource Record Type",
|
"Resource Record Type": "Resource Record Type",
|
||||||
respTime: "Antw. Zeit (ms)",
|
respTime: "Antw. Zeit (ms)",
|
||||||
notAvailableShort: "N/A",
|
notAvailableShort: "N/A",
|
||||||
|
"Default enabled": "Standardmäßig aktiviert",
|
||||||
|
"Also apply to existing monitors": "Auch für alle existierenden Monitore aktivieren",
|
||||||
|
enableDefaultNotificationDescription: "Für jeden neuen Monitor wird diese Benachrichtigung standardmäßig aktiviert. Die Benachrichtigung kann weiterhin für jeden Monitor separat deaktiviert werden.",
|
||||||
Create: "Erstellen",
|
Create: "Erstellen",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get"
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ export default {
|
|||||||
resoverserverDescription: "Cloudflare is the default server, you can change the resolver server anytime.",
|
resoverserverDescription: "Cloudflare is the default server, you can change the resolver server anytime.",
|
||||||
rrtypeDescription: "Select the RR-Type you want to monitor",
|
rrtypeDescription: "Select the RR-Type you want to monitor",
|
||||||
pauseMonitorMsg: "Are you sure want to pause?",
|
pauseMonitorMsg: "Are you sure want to pause?",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
clearEventsMsg: "Are you sure want to delete all events for this monitor?",
|
clearEventsMsg: "Are you sure want to delete all events for this monitor?",
|
||||||
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?",
|
clearHeartbeatsMsg: "Are you sure want to delete all heartbeats for this monitor?",
|
||||||
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?",
|
confirmClearStatisticsMsg: "Are you sure want to delete ALL statistics?",
|
||||||
@ -112,6 +113,8 @@ export default {
|
|||||||
"Repeat Password": "Repeat Password",
|
"Repeat Password": "Repeat Password",
|
||||||
respTime: "Resp. Time (ms)",
|
respTime: "Resp. Time (ms)",
|
||||||
notAvailableShort: "N/A",
|
notAvailableShort: "N/A",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors",
|
||||||
Create: "Create",
|
Create: "Create",
|
||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
112
src/languages/et-EE.js
Normal file
112
src/languages/et-EE.js
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
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.",
|
||||||
|
maxRedirectDescription: "Suurim arv ümbersuunamisi, millele järgida. 0 ei luba ühtegi ",
|
||||||
|
acceptedStatusCodesDescription: "Vali välja HTTP koodid, mida arvestada kõlblikuks.",
|
||||||
|
passwordNotMatchMsg: "Salasõnad ei kattu.",
|
||||||
|
notificationDescription: "Teavitusmeetodi kasutamiseks seo see seirega.",
|
||||||
|
keywordDescription: "Jälgi võtmesõna HTML või JSON vastustes. (tõstutundlik)",
|
||||||
|
pauseDashboardHome: "Seiskamine",
|
||||||
|
deleteMonitorMsg: "Kas soovid eemaldada seire?",
|
||||||
|
deleteNotificationMsg: "Kas soovid eemaldada selle teavitusmeetodi kõikidelt seiretelt?",
|
||||||
|
resoverserverDescription: "Cloudflare on vaikimisi pöördserver.",
|
||||||
|
rrtypeDescription: "Vali kirje tüüp, mida soovid jälgida.",
|
||||||
|
pauseMonitorMsg: "Kas soovid peatada seire?",
|
||||||
|
Settings: "Seaded",
|
||||||
|
Dashboard: "Töölaud",
|
||||||
|
"New Update": "Uuem tarkvara versioon on saadaval.",
|
||||||
|
Language: "Keel",
|
||||||
|
Appearance: "Välimus",
|
||||||
|
Theme: "Teema",
|
||||||
|
General: "Üldine",
|
||||||
|
Version: "Versioon",
|
||||||
|
"Check Update On GitHub": "Otsi uuendusi GitHub'ist",
|
||||||
|
List: "Nimekiri",
|
||||||
|
Add: "Lisa",
|
||||||
|
"Add New Monitor": "Seire lisamine",
|
||||||
|
"Quick Stats": "Ülevaade",
|
||||||
|
Up: "Töökorras",
|
||||||
|
Down: "Rikkis",
|
||||||
|
Pending: "Määramisel",
|
||||||
|
Unknown: "Teadmata",
|
||||||
|
Pause: "Seiskamine",
|
||||||
|
Name: "Nimi",
|
||||||
|
Status: "Olek",
|
||||||
|
DateTime: "Kuupäev",
|
||||||
|
Message: "Tulemus",
|
||||||
|
"No important events": "Märkimisväärsed juhtumid puuduvad.",
|
||||||
|
Resume: "Taasta",
|
||||||
|
Edit: "Muutmine",
|
||||||
|
Delete: "Eemalda",
|
||||||
|
Current: "Hetkeseisund",
|
||||||
|
Uptime: "Eluiga",
|
||||||
|
"Cert Exp.": "Sert. aegumine",
|
||||||
|
days: "päeva",
|
||||||
|
day: "päev",
|
||||||
|
"-day": "-päev",
|
||||||
|
hour: "tund",
|
||||||
|
"-hour": "-tund",
|
||||||
|
Response: "Vastus",
|
||||||
|
Ping: "Ping",
|
||||||
|
"Monitor Type": "Seire tüüp",
|
||||||
|
Keyword: "Võtmesõna",
|
||||||
|
"Friendly Name": "Sõbralik nimi",
|
||||||
|
URL: "URL",
|
||||||
|
Hostname: "Hostname",
|
||||||
|
Port: "Port",
|
||||||
|
"Heartbeat Interval": "Tukse sagedus",
|
||||||
|
Retries: "Korduskatsed",
|
||||||
|
Advanced: "Rohkem",
|
||||||
|
"Upside Down Mode": "Tagurpidi seire",
|
||||||
|
"Max. Redirects": "Max. ümbersuunamine",
|
||||||
|
"Accepted Status Codes": "Kõlblikud HTTP koodid",
|
||||||
|
Save: "Salvesta",
|
||||||
|
Notifications: "Teavitused",
|
||||||
|
"Not available, please setup.": "Ühtegi teavitusteenust pole saadaval.",
|
||||||
|
"Setup Notification": "Lisa teavitusteenus",
|
||||||
|
Light: "hele",
|
||||||
|
Dark: "tume",
|
||||||
|
Auto: "automaatne",
|
||||||
|
"Theme - Heartbeat Bar": "Teemasäte — tuksete riba",
|
||||||
|
Normal: "tavaline",
|
||||||
|
Bottom: "all",
|
||||||
|
None: "puudub",
|
||||||
|
Timezone: "Ajatsoon",
|
||||||
|
"Search Engine Visibility": "Otsimootorite ligipääs",
|
||||||
|
"Allow indexing": "Luba indekseerimine",
|
||||||
|
"Discourage search engines from indexing site": "Keela selle saidi indekseerimine otsimootorite poolt",
|
||||||
|
"Change Password": "Muuda parooli",
|
||||||
|
"Current Password": "praegune parool",
|
||||||
|
"New Password": "uus parool",
|
||||||
|
"Repeat New Password": "korda salasõna",
|
||||||
|
"Update Password": "Uuenda salasõna",
|
||||||
|
"Disable Auth": "Lülita autentimine välja",
|
||||||
|
"Enable Auth": "Lülita autentimine sisse",
|
||||||
|
Logout: "Logi välja",
|
||||||
|
Leave: "Lahku",
|
||||||
|
"I understand, please disable": "Olen tutvunud riskidega, lülita välja",
|
||||||
|
Confirm: "Kinnita",
|
||||||
|
Yes: "Jah",
|
||||||
|
No: "Ei",
|
||||||
|
Username: "kasutajanimi",
|
||||||
|
Password: "parool",
|
||||||
|
"Remember me": "Mäleta mind",
|
||||||
|
Login: "Logi sisse",
|
||||||
|
"No Monitors, please": "Seired puuduvad.",
|
||||||
|
"add one": "Lisa esimene",
|
||||||
|
"Notification Type": "Teavituse tüüp",
|
||||||
|
Email: "e-posti aadress",
|
||||||
|
Test: "Saada prooviteavitus",
|
||||||
|
"Certificate Info": "Sertifikaadi teave",
|
||||||
|
"Resolver Server": "Server, mis vastab DNS päringutele.",
|
||||||
|
"Resource Record Type": "DNS kirje tüüp",
|
||||||
|
"Last Result": "Viimane",
|
||||||
|
"Create your admin account": "Admininstraatori konto loomine",
|
||||||
|
"Repeat Password": "korda salasõna",
|
||||||
|
respTime: "Reageerimisaeg (ms)",
|
||||||
|
notAvailableShort: "N/A"
|
||||||
|
}
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "Clear Data",
|
"Clear Data": "Clear Data",
|
||||||
Events: "Events",
|
Events: "Events",
|
||||||
Heartbeats: "Heartbeats",
|
Heartbeats: "Heartbeats",
|
||||||
"Auto Get": "Auto Get"
|
"Auto Get": "Auto Get",
|
||||||
|
enableDefaultNotificationDescription: "For every new monitor this notification will be enabled by default. You can still disable the notification separately for each monitor.",
|
||||||
|
"Default enabled": "Default enabled",
|
||||||
|
"Also apply to existing monitors": "Also apply to existing monitors"
|
||||||
}
|
}
|
||||||
|
@ -116,5 +116,8 @@ export default {
|
|||||||
"Clear Data": "清除資料",
|
"Clear Data": "清除資料",
|
||||||
Events: "事件",
|
Events: "事件",
|
||||||
Heartbeats: "脈搏",
|
Heartbeats: "脈搏",
|
||||||
"Auto Get": "自動獲取"
|
"Auto Get": "自動獲取",
|
||||||
|
enableDefaultNotificationDescription: "新增監測器時這個通知會預設啟用,當然每個監測器亦可分別控制開關。",
|
||||||
|
"Default enabled": "預設通知",
|
||||||
|
"Also apply to existing monitors": "同時取用至目前所有監測器"
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,7 @@ import koKR from "./languages/ko-KR";
|
|||||||
import ruRU from "./languages/ru-RU";
|
import ruRU from "./languages/ru-RU";
|
||||||
import zhCN from "./languages/zh-CN";
|
import zhCN from "./languages/zh-CN";
|
||||||
import pl from "./languages/pl"
|
import pl from "./languages/pl"
|
||||||
|
import etEE from "./languages/et-EE"
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{
|
{
|
||||||
@ -116,6 +117,7 @@ const languageList = {
|
|||||||
"ru-RU": ruRU,
|
"ru-RU": ruRU,
|
||||||
"zh-CN": zhCN,
|
"zh-CN": zhCN,
|
||||||
"pl": pl,
|
"pl": pl,
|
||||||
|
"et-EE": etEE,
|
||||||
};
|
};
|
||||||
|
|
||||||
const i18n = createI18n({
|
const i18n = createI18n({
|
||||||
|
@ -178,6 +178,8 @@
|
|||||||
{{ notification.name }}
|
{{ notification.name }}
|
||||||
<a href="#" @click="$refs.notificationDialog.show(notification.id)">{{ $t("Edit") }}</a>
|
<a href="#" @click="$refs.notificationDialog.show(notification.id)">{{ $t("Edit") }}</a>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
|
<span v-if="notification.isDefault == true" class="badge bg-primary ms-2">Default</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="btn btn-primary me-2" type="button" @click="$refs.notificationDialog.show()">
|
<button class="btn btn-primary me-2" type="button" @click="$refs.notificationDialog.show()">
|
||||||
@ -296,6 +298,12 @@ export default {
|
|||||||
dns_resolve_type: "A",
|
dns_resolve_type: "A",
|
||||||
dns_resolve_server: "1.1.1.1",
|
dns_resolve_server: "1.1.1.1",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < this.$root.notificationList.length; i++) {
|
||||||
|
if (this.$root.notificationList[i].isDefault == true) {
|
||||||
|
this.monitor.notificationIDList[this.$root.notificationList[i].id] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (this.isEdit) {
|
} else if (this.isEdit) {
|
||||||
this.$root.getSocket().emit("getMonitor", this.$route.params.id, (res) => {
|
this.$root.getSocket().emit("getMonitor", this.$route.params.id, (res) => {
|
||||||
if (res.ok) {
|
if (res.ok) {
|
||||||
|
@ -167,58 +167,66 @@
|
|||||||
<NotificationDialog ref="notificationDialog" />
|
<NotificationDialog ref="notificationDialog" />
|
||||||
|
|
||||||
<Confirm ref="confirmDisableAuth" btn-style="btn-danger" :yes-text="$t('I understand, please disable')" :no-text="$t('Leave')" @yes="disableAuth">
|
<Confirm ref="confirmDisableAuth" btn-style="btn-danger" :yes-text="$t('I understand, please disable')" :no-text="$t('Leave')" @yes="disableAuth">
|
||||||
<template v-if="$i18n.locale === 'en' ">
|
|
||||||
<p>Are you sure want to <strong>disable auth</strong>?</p>
|
|
||||||
<p>It is for <strong>someone who have 3rd-party auth</strong> in front of Uptime Kuma such as Cloudflare Access.</p>
|
|
||||||
<p>Please use it carefully.</p>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<template v-if="$i18n.locale === 'es-ES' ">
|
<template v-if="$i18n.locale === 'es-ES' ">
|
||||||
<p>Seguro que deseas <strong>deshabilitar la autenticación</strong>?</p>
|
<p>Seguro que deseas <strong>deshabilitar la autenticación</strong>?</p>
|
||||||
<p>Es para <strong>quien implementa autenticación de terceros</strong> ante Uptime Kuma como por ejemplo Cloudflare Access.</p>
|
<p>Es para <strong>quien implementa autenticación de terceros</strong> ante Uptime Kuma como por ejemplo Cloudflare Access.</p>
|
||||||
<p>Por favor usar con cuidado.</p>
|
<p>Por favor usar con cuidado.</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="$i18n.locale === 'zh-HK' ">
|
<template v-else-if="$i18n.locale === 'zh-HK' ">
|
||||||
<p>你是否確認<strong>取消登入認証</strong>?</p>
|
<p>你是否確認<strong>取消登入認証</strong>?</p>
|
||||||
<p>這個功能是設計給已有<strong>第三方認証</strong>的用家,例如 Cloudflare Access。</p>
|
<p>這個功能是設計給已有<strong>第三方認証</strong>的用家,例如 Cloudflare Access。</p>
|
||||||
<p>請小心使用。</p>
|
<p>請小心使用。</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="$i18n.locale === 'zh-CN' ">
|
<template v-else-if="$i18n.locale === 'zh-CN' ">
|
||||||
<p>是否确定 <strong>取消登录验证</strong>?</p>
|
<p>是否确定 <strong>取消登录验证</strong>?</p>
|
||||||
<p>这是为 <strong>有第三方认证</strong> 的用户提供的功能,如 Cloudflare Access</p>
|
<p>这是为 <strong>有第三方认证</strong> 的用户提供的功能,如 Cloudflare Access</p>
|
||||||
<p>请谨慎使用!</p>
|
<p>请谨慎使用!</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="$i18n.locale === 'de-DE' ">
|
<template v-else-if="$i18n.locale === 'de-DE' ">
|
||||||
<p>Bist du sicher das du die <strong>Authentifizierung deaktivieren</strong> möchtest?</p>
|
<p>Bist du sicher das du die <strong>Authentifizierung deaktivieren</strong> möchtest?</p>
|
||||||
<p>Es ist für <strong>jemanden der eine externe Authentifizierung</strong> vor Uptime Kuma geschaltet hat, wie z.B. Cloudflare Access.</p>
|
<p>Es ist für <strong>jemanden der eine externe Authentifizierung</strong> vor Uptime Kuma geschaltet hat, wie z.B. Cloudflare Access.</p>
|
||||||
<p>Bitte mit Vorsicht nutzen.</p>
|
<p>Bitte mit Vorsicht nutzen.</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="$i18n.locale === 'sr' ">
|
<template v-else-if="$i18n.locale === 'sr' ">
|
||||||
<p>Да ли сте сигурни да желите да <strong>искључите аутентификацију</strong>?</p>
|
<p>Да ли сте сигурни да желите да <strong>искључите аутентификацију</strong>?</p>
|
||||||
<p>То је за <strong>оне који имају додату аутентификацију</strong> испред Uptime Kuma као на пример Cloudflare Access.</p>
|
<p>То је за <strong>оне који имају додату аутентификацију</strong> испред Uptime Kuma као на пример Cloudflare Access.</p>
|
||||||
<p>Молим Вас користите ово са пажњом.</p>
|
<p>Молим Вас користите ово са пажњом.</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="$i18n.locale === 'sr-latn' ">
|
<template v-else-if="$i18n.locale === 'sr-latn' ">
|
||||||
<p>Da li ste sigurni da želite da <strong>isključite autentifikaciju</strong>?</p>
|
<p>Da li ste sigurni da želite da <strong>isključite autentifikaciju</strong>?</p>
|
||||||
<p>To je za <strong>one koji imaju dodatu autentifikaciju</strong> ispred Uptime Kuma kao na primer Cloudflare Access.</p>
|
<p>To je za <strong>one koji imaju dodatu autentifikaciju</strong> ispred Uptime Kuma kao na primer Cloudflare Access.</p>
|
||||||
<p>Molim Vas koristite ovo sa pažnjom.</p>
|
<p>Molim Vas koristite ovo sa pažnjom.</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="$i18n.locale === 'ko-KR' ">
|
<template v-else-if="$i18n.locale === 'ko-KR' ">
|
||||||
<p>정말로 <strong>인증 기능을 끌까요</strong>?</p>
|
<p>정말로 <strong>인증 기능을 끌까요</strong>?</p>
|
||||||
<p>이 기능은 <strong>Cloudflare Access와 같은 서드파티 인증</strong>을 Uptime Kuma 앞에 둔 사용자를 위한 기능이에요.</p>
|
<p>이 기능은 <strong>Cloudflare Access와 같은 서드파티 인증</strong>을 Uptime Kuma 앞에 둔 사용자를 위한 기능이에요.</p>
|
||||||
<p>신중하게 사용하세요.</p>
|
<p>신중하게 사용하세요.</p>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="$i18n.locale === 'pl' ">
|
|
||||||
|
<template v-else-if="$i18n.locale === 'pl' ">
|
||||||
<p>Czy na pewno chcesz <strong>wyłączyć autoryzację</strong>?</p>
|
<p>Czy na pewno chcesz <strong>wyłączyć autoryzację</strong>?</p>
|
||||||
<p>Jest przeznaczony dla <strong>kogoś, kto ma autoryzację zewnętrzną</strong> przed Uptime Kuma, taką jak Cloudflare Access.</p>
|
<p>Jest przeznaczony dla <strong>kogoś, kto ma autoryzację zewnętrzną</strong> przed Uptime Kuma, taką jak Cloudflare Access.</p>
|
||||||
<p>Proszę używać ostrożnie.</p>
|
<p>Proszę używać ostrożnie.</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template v-else-if="$i18n.locale === 'et-EE' ">
|
||||||
|
<p>Kas soovid <strong>lülitada autentimise välja</strong>?</p>
|
||||||
|
<p>Kastuamiseks <strong>välise autentimispakkujaga</strong>, näiteks Cloudflare Access.</p>
|
||||||
|
<p>Palun kasuta vastutustundlikult.</p>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- English (en) -->
|
||||||
|
<template v-else>
|
||||||
|
<p>Are you sure want to <strong>disable auth</strong>?</p>
|
||||||
|
<p>It is for <strong>someone who have 3rd-party auth</strong> in front of Uptime Kuma such as Cloudflare Access.</p>
|
||||||
|
<p>Please use it carefully.</p>
|
||||||
|
</template>
|
||||||
</Confirm>
|
</Confirm>
|
||||||
|
|
||||||
<Confirm ref="confirmClearStatistics" btn-style="btn-danger" :yes-text="$t('Yes')" :no-text="$t('No')" @yes="clearStatistics">
|
<Confirm ref="confirmClearStatistics" btn-style="btn-danger" :yes-text="$t('Yes')" :no-text="$t('No')" @yes="clearStatistics">
|
||||||
|
Loading…
Reference in New Issue
Block a user