mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-12-02 19:24:04 +00:00
Merge branch 'louislam:master' into import-export
This commit is contained in:
commit
4786514e9f
25 changed files with 425 additions and 53 deletions
|
@ -82,12 +82,10 @@ npm install --legacy-peer-deps --dev
|
||||||
|
|
||||||
# Backend Dev
|
# Backend Dev
|
||||||
|
|
||||||
|
(2021-09-23 Update)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm run start-server
|
npm run start-server-dev
|
||||||
|
|
||||||
# Or
|
|
||||||
|
|
||||||
node server/server.js
|
|
||||||
```
|
```
|
||||||
|
|
||||||
It binds to `0.0.0.0:3001` by default.
|
It binds to `0.0.0.0:3001` by default.
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
"dev": "vite --host",
|
"dev": "vite --host",
|
||||||
"start": "npm run start-server",
|
"start": "npm run start-server",
|
||||||
"start-server": "node server/server.js",
|
"start-server": "node server/server.js",
|
||||||
|
"start-server-dev": "cross-env NODE_ENV=development node server/server.js",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"tsc": "tsc",
|
"tsc": "tsc",
|
||||||
"vite-preview-dist": "vite preview --host",
|
"vite-preview-dist": "vite preview --host",
|
||||||
|
@ -94,6 +95,7 @@
|
||||||
"@vitejs/plugin-vue": "^1.6.2",
|
"@vitejs/plugin-vue": "^1.6.2",
|
||||||
"@vue/compiler-sfc": "^3.2.11",
|
"@vue/compiler-sfc": "^3.2.11",
|
||||||
"core-js": "^3.17.3",
|
"core-js": "^3.17.3",
|
||||||
|
"cross-env": "^7.0.3",
|
||||||
"dns2": "^2.0.1",
|
"dns2": "^2.0.1",
|
||||||
"eslint": "^7.32.0",
|
"eslint": "^7.32.0",
|
||||||
"eslint-plugin-vue": "^7.17.0",
|
"eslint-plugin-vue": "^7.17.0",
|
||||||
|
|
|
@ -83,6 +83,7 @@ router.get("/api/status-page/monitor-list", cache("5 minutes"), async (_request,
|
||||||
// Can fetch only if published
|
// Can fetch only if published
|
||||||
router.get("/api/status-page/heartbeat", cache("5 minutes"), async (_request, response) => {
|
router.get("/api/status-page/heartbeat", cache("5 minutes"), async (_request, response) => {
|
||||||
allowDevAllOrigin(response);
|
allowDevAllOrigin(response);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await checkPublished();
|
await checkPublished();
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ import daDK from "./languages/da-DK";
|
||||||
import deDE from "./languages/de-DE";
|
import deDE from "./languages/de-DE";
|
||||||
import en from "./languages/en";
|
import en from "./languages/en";
|
||||||
import esEs from "./languages/es-ES";
|
import esEs from "./languages/es-ES";
|
||||||
|
import ptBR from "./languages/pt-BR";
|
||||||
import etEE from "./languages/et-EE";
|
import etEE from "./languages/et-EE";
|
||||||
import frFR from "./languages/fr-FR";
|
import frFR from "./languages/fr-FR";
|
||||||
import itIT from "./languages/it-IT";
|
import itIT from "./languages/it-IT";
|
||||||
|
@ -24,6 +25,7 @@ const languageList = {
|
||||||
"de-DE": deDE,
|
"de-DE": deDE,
|
||||||
"nl-NL": nlNL,
|
"nl-NL": nlNL,
|
||||||
"es-ES": esEs,
|
"es-ES": esEs,
|
||||||
|
"pt-BR": ptBR,
|
||||||
"fr-FR": frFR,
|
"fr-FR": frFR,
|
||||||
"it-IT": itIT,
|
"it-IT": itIT,
|
||||||
"ja": ja,
|
"ja": ja,
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -168,4 +168,14 @@ export default {
|
||||||
"Export Backup": "Export Backup",
|
"Export Backup": "Export Backup",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -168,4 +168,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -168,4 +168,14 @@ export default {
|
||||||
"Search...": "Cerca...",
|
"Search...": "Cerca...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Szukaj...",
|
"Search...": "Szukaj...",
|
||||||
"Avg. Ping": "Średni ping",
|
"Avg. Ping": "Średni ping",
|
||||||
"Avg. Response": "Średnia odpowiedź",
|
"Avg. Response": "Średnia odpowiedź",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
182
src/languages/pt-BR.js
Normal file
182
src/languages/pt-BR.js
Normal file
|
@ -0,0 +1,182 @@
|
||||||
|
export default {
|
||||||
|
languageName: "Português (Brasileiro)",
|
||||||
|
checkEverySecond: "Verificar cada {0} segundos.",
|
||||||
|
retryCheckEverySecond: "Tentar novamente a cada {0} segundos.",
|
||||||
|
retriesDescription: "Máximo de tentativas antes que o serviço seja marcado como inativo e uma notificação seja enviada",
|
||||||
|
ignoreTLSError: "Ignorar erros TLS/SSL para sites HTTPS",
|
||||||
|
upsideDownModeDescription: "Inverta o status de cabeça para baixo. Se o serviço estiver acessível, ele está OFFLINE.",
|
||||||
|
maxRedirectDescription: "Número máximo de redirecionamentos a seguir. Defina como 0 para desativar redirecionamentos.",
|
||||||
|
acceptedStatusCodesDescription: "Selecione os códigos de status que são considerados uma resposta bem-sucedida.",
|
||||||
|
passwordNotMatchMsg: "A senha repetida não corresponde.",
|
||||||
|
notificationDescription: "Atribua uma notificação ao (s) monitor (es) para que funcione.",
|
||||||
|
keywordDescription: "Pesquise a palavra-chave em html simples ou resposta JSON e diferencia maiúsculas de minúsculas",
|
||||||
|
pauseDashboardHome: "Pausar",
|
||||||
|
deleteMonitorMsg: "Tem certeza de que deseja excluir este monitor?",
|
||||||
|
deleteNotificationMsg: "Tem certeza de que deseja excluir esta notificação para todos os monitores?",
|
||||||
|
resoverserverDescription: "Cloudflare é o servidor padrão, você pode alterar o servidor resolvedor a qualquer momento.",
|
||||||
|
rrtypeDescription: "Selecione o RR-Type que você deseja monitorar",
|
||||||
|
pauseMonitorMsg: "Tem certeza que deseja fazer uma pausa?",
|
||||||
|
enableDefaultNotificationDescription: "Para cada novo monitor, esta notificação será habilitada por padrão. Você ainda pode desativar a notificação separadamente para cada monitor.",
|
||||||
|
clearEventsMsg: "Tem certeza de que deseja excluir todos os eventos deste monitor?",
|
||||||
|
clearHeartbeatsMsg: "Tem certeza de que deseja excluir todos os heartbeats deste monitor?",
|
||||||
|
confirmClearStatisticsMsg: "Tem certeza que deseja excluir TODAS as estatísticas?",
|
||||||
|
importHandleDescription: "Escolha 'Ignorar existente' se quiser ignorar todos os monitores ou notificações com o mesmo nome. 'Substituir' excluirá todos os monitores e notificações existentes.",
|
||||||
|
confirmImportMsg: "Tem certeza que deseja importar o backup? Certifique-se de que selecionou a opção de importação correta.",
|
||||||
|
twoFAVerifyLabel: "Digite seu token para verificar se 2FA está funcionando",
|
||||||
|
tokenValidSettingsMsg: "O token é válido! Agora você pode salvar as configurações 2FA.",
|
||||||
|
confirmEnableTwoFAMsg: "Tem certeza de que deseja habilitar 2FA?",
|
||||||
|
confirmDisableTwoFAMsg: "Tem certeza de que deseja desativar 2FA?",
|
||||||
|
Settings: "Configurações",
|
||||||
|
Dashboard: "Dashboard",
|
||||||
|
"New Update": "Nova Atualização",
|
||||||
|
Language: "Linguagem",
|
||||||
|
Appearance: "Aparência",
|
||||||
|
Theme: "Tema",
|
||||||
|
General: "Geral",
|
||||||
|
Version: "Versão",
|
||||||
|
"Check Update On GitHub": "Verificar atualização no Github",
|
||||||
|
List: "Lista",
|
||||||
|
Add: "Adicionar",
|
||||||
|
"Add New Monitor": "Adicionar novo monitor",
|
||||||
|
"Quick Stats": "Estatísticas rápidas",
|
||||||
|
Up: "On",
|
||||||
|
Down: "Off",
|
||||||
|
Pending: "Pendente",
|
||||||
|
Unknown: "Desconhecido",
|
||||||
|
Pause: "Pausar",
|
||||||
|
Name: "Nome",
|
||||||
|
Status: "Status",
|
||||||
|
DateTime: "Data hora",
|
||||||
|
Message: "Mensagem",
|
||||||
|
"No important events": "Nenhum evento importante",
|
||||||
|
Resume: "Resumo",
|
||||||
|
Edit: "Editar",
|
||||||
|
Delete: "Deletar",
|
||||||
|
Current: "Atual",
|
||||||
|
Uptime: "Tempo de atividade",
|
||||||
|
"Cert Exp.": "Cert Exp.",
|
||||||
|
days: "dias",
|
||||||
|
day: "dia",
|
||||||
|
"-day": "-dia",
|
||||||
|
hour: "hora",
|
||||||
|
"-hour": "-hora",
|
||||||
|
Response: "Resposta",
|
||||||
|
Ping: "Ping",
|
||||||
|
"Monitor Type": "Tipo de Monitor",
|
||||||
|
Keyword: "Palavra-Chave",
|
||||||
|
"Friendly Name": "Nome Amigável",
|
||||||
|
URL: "URL",
|
||||||
|
Hostname: "Hostname",
|
||||||
|
Port: "Porta",
|
||||||
|
"Heartbeat Interval": "Intervalo de Heartbeat",
|
||||||
|
Retries: "Novas tentativas",
|
||||||
|
"Heartbeat Retry Interval": "Intervalo de repetição de Heartbeat",
|
||||||
|
Advanced: "Avançado",
|
||||||
|
"Upside Down Mode": "Modo de cabeça para baixo",
|
||||||
|
"Max. Redirects": "Redirecionamento Máx.",
|
||||||
|
"Accepted Status Codes": "Status Code Aceitáveis",
|
||||||
|
Save: "Salvar",
|
||||||
|
Notifications: "Notificações",
|
||||||
|
"Not available, please setup.": "Não disponível, por favor configure.",
|
||||||
|
"Setup Notification": "Configurar Notificação",
|
||||||
|
Light: "Claro",
|
||||||
|
Dark: "Escuro",
|
||||||
|
Auto: "Auto",
|
||||||
|
"Theme - Heartbeat Bar": "Tema - Barra de Heartbeat",
|
||||||
|
Normal: "Normal",
|
||||||
|
Bottom: "Inferior",
|
||||||
|
None: "Nenhum",
|
||||||
|
Timezone: "Fuso horário",
|
||||||
|
"Search Engine Visibility": "Visibilidade do mecanismo de pesquisa",
|
||||||
|
"Allow indexing": "Permitir Indexação",
|
||||||
|
"Discourage search engines from indexing site": "Desencoraje os motores de busca de indexar o site",
|
||||||
|
"Change Password": "Mudar senha",
|
||||||
|
"Current Password": "Senha atual",
|
||||||
|
"New Password": "Nova Senha",
|
||||||
|
"Repeat New Password": "Repetir Nova Senha",
|
||||||
|
"Update Password": "Atualizar Senha",
|
||||||
|
"Disable Auth": "Desativar Autenticação",
|
||||||
|
"Enable Auth": "Ativar Autenticação",
|
||||||
|
Logout: "Deslogar",
|
||||||
|
Leave: "Sair",
|
||||||
|
"I understand, please disable": "Eu entendo, por favor desative.",
|
||||||
|
Confirm: "Confirmar",
|
||||||
|
Yes: "Sim",
|
||||||
|
No: "Não",
|
||||||
|
Username: "Usuário",
|
||||||
|
Password: "Senha",
|
||||||
|
"Remember me": "Lembre-me",
|
||||||
|
Login: "Autenticar",
|
||||||
|
"No Monitors, please": "Nenhum monitor, por favor",
|
||||||
|
"add one": "adicionar um",
|
||||||
|
"Notification Type": "Tipo de Notificação",
|
||||||
|
Email: "Email",
|
||||||
|
Test: "Testar",
|
||||||
|
"Certificate Info": "Info. do Certificado ",
|
||||||
|
"Resolver Server": "Resolver Servidor",
|
||||||
|
"Resource Record Type": "Tipo de registro de aplicação",
|
||||||
|
"Last Result": "Último resultado",
|
||||||
|
"Create your admin account": "Crie sua conta de admin",
|
||||||
|
"Repeat Password": "Repita a senha",
|
||||||
|
"Import Backup": "Importar Backup",
|
||||||
|
"Export Backup": "Exportar Backup",
|
||||||
|
Export: "Exportar",
|
||||||
|
Import: "Importar",
|
||||||
|
respTime: "Tempo de Resp. (ms)",
|
||||||
|
notAvailableShort: "N/A",
|
||||||
|
"Default enabled": "Padrão habilitado",
|
||||||
|
"Apply on all existing monitors": "Aplicar em todos os monitores existentes",
|
||||||
|
Create: "Criar",
|
||||||
|
"Clear Data": "Limpar Dados",
|
||||||
|
Events: "Eventos",
|
||||||
|
Heartbeats: "Heartbeats",
|
||||||
|
"Auto Get": "Obter Automático",
|
||||||
|
backupDescription: "Você pode fazer backup de todos os monitores e todas as notificações em um arquivo JSON.",
|
||||||
|
backupDescription2: "OBS: Os dados do histórico e do evento não estão incluídos.",
|
||||||
|
backupDescription3: "Dados confidenciais, como tokens de notificação, estão incluídos no arquivo de exportação, mantenha-o com cuidado.",
|
||||||
|
alertNoFile: "Selecione um arquivo para importar.",
|
||||||
|
alertWrongFileType: "Selecione um arquivo JSON.",
|
||||||
|
"Clear all statistics": "Limpar todas as estatísticas",
|
||||||
|
"Skip existing": "Pular existente",
|
||||||
|
Overwrite: "Sobrescrever",
|
||||||
|
Options: "Opções",
|
||||||
|
"Keep both": "Manter os dois",
|
||||||
|
"Verify Token": "Verificar Token",
|
||||||
|
"Setup 2FA": "Configurar 2FA",
|
||||||
|
"Enable 2FA": "Ativar 2FA",
|
||||||
|
"Disable 2FA": "Desativar 2FA",
|
||||||
|
"2FA Settings": "Configurações do 2FA ",
|
||||||
|
"Two Factor Authentication": "Autenticação e Dois Fatores",
|
||||||
|
Active: "Ativo",
|
||||||
|
Inactive: "Inativo",
|
||||||
|
Token: "Token",
|
||||||
|
"Show URI": "Mostrar URI",
|
||||||
|
Tags: "Tag",
|
||||||
|
"Add New below or Select...": "Adicionar Novo abaixo ou Selecionar ...",
|
||||||
|
"Tag with this name already exist.": "Já existe uma etiqueta com este nome.",
|
||||||
|
"Tag with this value already exist.": "Já existe uma etiqueta com este valor.",
|
||||||
|
color: "cor",
|
||||||
|
"value (optional)": "valor (opcional)",
|
||||||
|
Gray: "Cinza",
|
||||||
|
Red: "Vermelho",
|
||||||
|
Orange: "Laranja",
|
||||||
|
Green: "Verde",
|
||||||
|
Blue: "Azul",
|
||||||
|
Indigo: "Índigo",
|
||||||
|
Purple: "Roxo",
|
||||||
|
Pink: "Rosa",
|
||||||
|
"Search...": "Buscar...",
|
||||||
|
"Avg. Ping": "Ping Médio.",
|
||||||
|
"Avg. Response": "Resposta Média. ",
|
||||||
|
"Status Page": "Página de Status",
|
||||||
|
"Entry Page": "Página de entrada",
|
||||||
|
"Status Page Nothing": "Nada aqui, por favor, adicione um grupo ou monitor.",
|
||||||
|
"No Services": "Nenhum Serviço",
|
||||||
|
"All Systems Operational": "Todos os Serviços Operacionais",
|
||||||
|
"Partially Degraded Service": "Serviço parcialmente degradado",
|
||||||
|
"Degraded Service": "Serviço Degradado",
|
||||||
|
"Add Group": "Adicionar Grupo",
|
||||||
|
"Add a monitor": "Adicionar um monitor",
|
||||||
|
"Edit Status Page": "Editar Página de Status",
|
||||||
|
"Go to Dashboard": "Ir para a dashboard",
|
||||||
|
};
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Поиск...",
|
"Search...": "Поиск...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -168,4 +168,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -169,4 +169,14 @@ export default {
|
||||||
"Search...": "Search...",
|
"Search...": "Search...",
|
||||||
"Avg. Ping": "Avg. Ping",
|
"Avg. Ping": "Avg. Ping",
|
||||||
"Avg. Response": "Avg. Response",
|
"Avg. Response": "Avg. Response",
|
||||||
}
|
"Entry Page": "Entry Page",
|
||||||
|
"Status Page Nothing": "Nothing here, please add a group or a monitor.",
|
||||||
|
"No Services": "No Services",
|
||||||
|
"All Systems Operational": "All Systems Operational",
|
||||||
|
"Partially Degraded Service": "Partially Degraded Service",
|
||||||
|
"Degraded Service": "Degraded Service",
|
||||||
|
"Add Group": "Add Group",
|
||||||
|
"Add a monitor": "Add a monitor",
|
||||||
|
"Edit Status Page": "Edit Status Page",
|
||||||
|
"Go to Dashboard": "Go to Dashboard",
|
||||||
|
};
|
||||||
|
|
|
@ -244,6 +244,12 @@
|
||||||
<p>Por favor usar con cuidado.</p>
|
<p>Por favor usar con cuidado.</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template v-else-if="$i18n.locale === 'pt-BR' ">
|
||||||
|
<p>Você tem certeza que deseja <strong>desativar a autenticação</strong>?</p>
|
||||||
|
<p>Isso é para <strong>alguém que tem autenticação de terceiros</strong> na frente do 'UpTime Kuma' como o Cloudflare Access.</p>
|
||||||
|
<p>Por favor, utilize isso com cautela.</p>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template v-else-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>
|
||||||
|
@ -331,16 +337,16 @@
|
||||||
<script>
|
<script>
|
||||||
import Confirm from "../components/Confirm.vue";
|
import Confirm from "../components/Confirm.vue";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import utc from "dayjs/plugin/utc"
|
import utc from "dayjs/plugin/utc";
|
||||||
import timezone from "dayjs/plugin/timezone"
|
import timezone from "dayjs/plugin/timezone";
|
||||||
import NotificationDialog from "../components/NotificationDialog.vue";
|
import NotificationDialog from "../components/NotificationDialog.vue";
|
||||||
import TwoFADialog from "../components/TwoFADialog.vue";
|
import TwoFADialog from "../components/TwoFADialog.vue";
|
||||||
dayjs.extend(utc)
|
dayjs.extend(utc);
|
||||||
dayjs.extend(timezone)
|
dayjs.extend(timezone);
|
||||||
|
|
||||||
import { timezoneList } from "../util-frontend";
|
import { timezoneList } from "../util-frontend";
|
||||||
import { useToast } from "vue-toastification"
|
import { useToast } from "vue-toastification";
|
||||||
const toast = useToast()
|
const toast = useToast();
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -366,7 +372,7 @@ export default {
|
||||||
importAlert: null,
|
importAlert: null,
|
||||||
importHandle: "skip",
|
importHandle: "skip",
|
||||||
processing: false,
|
processing: false,
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
"password.repeatNewPassword"() {
|
"password.repeatNewPassword"() {
|
||||||
|
@ -394,13 +400,13 @@ export default {
|
||||||
this.invalidPassword = true;
|
this.invalidPassword = true;
|
||||||
} else {
|
} else {
|
||||||
this.$root.getSocket().emit("changePassword", this.password, (res) => {
|
this.$root.getSocket().emit("changePassword", this.password, (res) => {
|
||||||
this.$root.toastRes(res)
|
this.$root.toastRes(res);
|
||||||
if (res.ok) {
|
if (res.ok) {
|
||||||
this.password.currentPassword = ""
|
this.password.currentPassword = "";
|
||||||
this.password.newPassword = ""
|
this.password.newPassword = "";
|
||||||
this.password.repeatNewPassword = ""
|
this.password.repeatNewPassword = "";
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -417,14 +423,14 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loaded = true;
|
this.loaded = true;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
saveSettings() {
|
saveSettings() {
|
||||||
this.$root.getSocket().emit("setSettings", this.settings, (res) => {
|
this.$root.getSocket().emit("setSettings", this.settings, (res) => {
|
||||||
this.$root.toastRes(res);
|
this.$root.toastRes(res);
|
||||||
this.loadSettings();
|
this.loadSettings();
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
confirmDisableAuth() {
|
confirmDisableAuth() {
|
||||||
|
@ -458,7 +464,7 @@ export default {
|
||||||
version: this.$root.info.version,
|
version: this.$root.info.version,
|
||||||
notificationList: this.$root.notificationList,
|
notificationList: this.$root.notificationList,
|
||||||
monitorList: monitorList,
|
monitorList: monitorList,
|
||||||
}
|
};
|
||||||
exportData = JSON.stringify(exportData, null, 4);
|
exportData = JSON.stringify(exportData, null, 4);
|
||||||
let downloadItem = document.createElement("a");
|
let downloadItem = document.createElement("a");
|
||||||
downloadItem.setAttribute("href", "data:application/json;charset=utf-8," + encodeURIComponent(exportData));
|
downloadItem.setAttribute("href", "data:application/json;charset=utf-8," + encodeURIComponent(exportData));
|
||||||
|
@ -472,12 +478,12 @@ export default {
|
||||||
|
|
||||||
if (uploadItem.length <= 0) {
|
if (uploadItem.length <= 0) {
|
||||||
this.processing = false;
|
this.processing = false;
|
||||||
return this.importAlert = this.$t("alertNoFile")
|
return this.importAlert = this.$t("alertNoFile");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uploadItem.item(0).type !== "application/json") {
|
if (uploadItem.item(0).type !== "application/json") {
|
||||||
this.processing = false;
|
this.processing = false;
|
||||||
return this.importAlert = this.$t("alertWrongFileType")
|
return this.importAlert = this.$t("alertWrongFileType");
|
||||||
}
|
}
|
||||||
|
|
||||||
let fileReader = new FileReader();
|
let fileReader = new FileReader();
|
||||||
|
@ -492,8 +498,8 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
toast.error(res.msg);
|
toast.error(res.msg);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
clearStatistics() {
|
clearStatistics() {
|
||||||
|
@ -503,10 +509,10 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
toast.error(res.msg);
|
toast.error(res.msg);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
@ -30,12 +30,12 @@
|
||||||
<div v-if="!enableEditMode">
|
<div v-if="!enableEditMode">
|
||||||
<button class="btn btn-info me-2" @click="edit">
|
<button class="btn btn-info me-2" @click="edit">
|
||||||
<font-awesome-icon icon="edit" />
|
<font-awesome-icon icon="edit" />
|
||||||
Edit Status Page
|
{{ $t("Edit Status Page") }}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<a href="/dashboard" class="btn btn-info">
|
<a href="/dashboard" class="btn btn-info">
|
||||||
<font-awesome-icon icon="tachometer-alt" />
|
<font-awesome-icon icon="tachometer-alt" />
|
||||||
Go to Dashboard
|
{{ $t("Go to Dashboard") }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -137,23 +137,23 @@
|
||||||
<div class="shadow-box list p-4 overall-status mb-4">
|
<div class="shadow-box list p-4 overall-status mb-4">
|
||||||
<div v-if="Object.keys($root.publicMonitorList).length === 0 && loadedData">
|
<div v-if="Object.keys($root.publicMonitorList).length === 0 && loadedData">
|
||||||
<font-awesome-icon icon="question-circle" class="ok" />
|
<font-awesome-icon icon="question-circle" class="ok" />
|
||||||
No Services
|
{{ $t("No Services") }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div v-if="allUp">
|
<div v-if="allUp">
|
||||||
<font-awesome-icon icon="check-circle" class="ok" />
|
<font-awesome-icon icon="check-circle" class="ok" />
|
||||||
All Systems Operational
|
{{ $t("All Systems Operational") }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else-if="partialDown">
|
<div v-else-if="partialDown">
|
||||||
<font-awesome-icon icon="exclamation-circle" class="warning" />
|
<font-awesome-icon icon="exclamation-circle" class="warning" />
|
||||||
Partially Degraded Service
|
{{ $t("Partially Degraded Service") }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else-if="allDown">
|
<div v-else-if="allDown">
|
||||||
<font-awesome-icon icon="times-circle" class="danger" />
|
<font-awesome-icon icon="times-circle" class="danger" />
|
||||||
Degraded Service
|
{{ $t("Degraded Service") }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
@ -170,12 +170,12 @@
|
||||||
<div>
|
<div>
|
||||||
<button class="btn btn-primary btn-add-group me-2" @click="addGroup">
|
<button class="btn btn-primary btn-add-group me-2" @click="addGroup">
|
||||||
<font-awesome-icon icon="plus" />
|
<font-awesome-icon icon="plus" />
|
||||||
Add Group
|
{{ $t("Add Group") }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-3">
|
<div class="mt-3">
|
||||||
<label>Add a monitor:</label>
|
<label>{{ $t("Add a monitor") }}:</label>
|
||||||
<select v-model="selectedMonitor" class="form-control">
|
<select v-model="selectedMonitor" class="form-control">
|
||||||
<option v-for="monitor in allMonitorList" :key="monitor.id" :value="monitor">{{ monitor.name }}</option>
|
<option v-for="monitor in allMonitorList" :key="monitor.id" :value="monitor">{{ monitor.name }}</option>
|
||||||
</select>
|
</select>
|
||||||
|
@ -184,7 +184,8 @@
|
||||||
|
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<div v-if="$root.publicGroupList.length === 0 && loadedData" class="text-center">
|
<div v-if="$root.publicGroupList.length === 0 && loadedData" class="text-center">
|
||||||
👀 Nothing here, please add a group or a monitor.
|
<!-- 👀 Nothing here, please add a group or a monitor. -->
|
||||||
|
👀 {{ $t("Status Page Nothing") }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<PublicGroupList :edit-mode="enableEditMode" />
|
<PublicGroupList :edit-mode="enableEditMode" />
|
||||||
|
|
Loading…
Reference in a new issue