mirror of
https://github.com/seriousm4x/UpSnap.git
synced 2026-07-30 17:26:19 -04:00
Added shutdown group (#1732)
This commit is contained in:
@@ -202,6 +202,40 @@ func HandlerWakeGroup(e *core.RequestEvent) error {
|
||||
return e.JSON(http.StatusOK, records)
|
||||
}
|
||||
|
||||
func HandlerShutdownGroup(e *core.RequestEvent) error {
|
||||
records, err := e.App.FindRecordsByFilter("devices", "groups.id = {:grpId} && status = 'online'", "", 0, 0,
|
||||
dbx.Params{"grpId": e.Request.PathValue("id")},
|
||||
)
|
||||
if err != nil {
|
||||
return apis.NewNotFoundError("No devices in group", err)
|
||||
}
|
||||
|
||||
for _, record := range records {
|
||||
go func() {
|
||||
record.Set("status", "pending")
|
||||
if err := e.App.Save(record); err != nil {
|
||||
logger.Error.Println("Failed to save record:", err)
|
||||
}
|
||||
|
||||
if err := networking.ShutdownDevice(record); err != nil {
|
||||
logger.Error.Println(err)
|
||||
record.Set("status", "online")
|
||||
if err := e.App.Save(record); err != nil {
|
||||
logger.Error.Println("Failed to save record:", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
record.Set("status", "offline")
|
||||
if err := e.App.Save(record); err != nil {
|
||||
logger.Error.Println("Failed to save record:", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
return e.JSON(http.StatusOK, records)
|
||||
}
|
||||
|
||||
type Nmaprun struct {
|
||||
Host []struct {
|
||||
Address []struct {
|
||||
|
||||
@@ -74,6 +74,7 @@ func StartPocketBase(distDirFS fs.FS) {
|
||||
se.Router.GET("/api/upsnap/sleep/{id}", HandlerSleep).Bind(RequireUpSnapPermission())
|
||||
se.Router.GET("/api/upsnap/reboot/{id}", HandlerReboot).Bind(RequireUpSnapPermission())
|
||||
se.Router.GET("/api/upsnap/shutdown/{id}", HandlerShutdown).Bind(RequireUpSnapPermission())
|
||||
se.Router.GET("/api/upsnap/shutdowngroup/{id}", HandlerShutdownGroup).Bind(RequireUpSnapPermission())
|
||||
se.Router.GET("/api/upsnap/scan", HandlerScan).Bind(RequireScanDevicesPermission())
|
||||
se.Router.POST("/api/upsnap/init-superuser", HandlerInitSuperuser) // https://github.com/pocketbase/pocketbase/discussions/6198
|
||||
se.Router.POST("/api/upsnap/validate-cron", HandlerValidateCron)
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
let orderByGroups = $state(true);
|
||||
let searchQuery = $state('');
|
||||
let searchInput: HTMLInputElement | undefined = $state();
|
||||
let modalShutdownGroup: HTMLDialogElement | undefined = $state();
|
||||
let pendingShutdownGroup: Group | null = $state(null);
|
||||
let filteredDevices: Device[] = $derived([]);
|
||||
let devicesWithoutGroups: Device[] = $derived([]);
|
||||
let devicesWithGroup: {
|
||||
@@ -111,6 +113,23 @@
|
||||
});
|
||||
}
|
||||
|
||||
function askShutdownGroupConfirmation(group: Group) {
|
||||
pendingShutdownGroup = group;
|
||||
modalShutdownGroup?.showModal();
|
||||
}
|
||||
|
||||
function executeShutdownGroup() {
|
||||
if (pendingShutdownGroup) {
|
||||
fetch(`${backendUrl}api/upsnap/shutdowngroup/${pendingShutdownGroup.id}`, {
|
||||
headers: {
|
||||
Authorization: $pocketbase.authStore.token
|
||||
}
|
||||
}).catch((err) => {
|
||||
toast.error(err.message);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
orderBy = (localStorage.getItem('orderBy') as 'name' | 'ip') || 'name';
|
||||
orderByGroups = localStorage.getItem('orderByGroups') !== 'false';
|
||||
@@ -191,13 +210,18 @@
|
||||
{/if}
|
||||
{#each devicesWithGroup.sort( (a, b) => (a.group?.name ?? '').localeCompare( b.group?.name ?? '', $localeStore, { numeric: true } ) ) as { group, devices } (group?.id)}
|
||||
<div>
|
||||
<h1 class="mb-3 text-2xl font-bold">
|
||||
{group?.name ?? 'Unknown group name'}
|
||||
<h1 class="mb-3 flex flex-wrap items-center gap-3 text-2xl font-bold">
|
||||
<span>{group?.name ?? 'Unknown group name'}</span>
|
||||
<button
|
||||
class="btn btn-sm btn-success btn-soft"
|
||||
onclick={() => wakeGroup(group?.id ?? '')}
|
||||
><Fa icon={faPowerOff} /> {m.home_wake_group()}</button
|
||||
>
|
||||
<button
|
||||
class="btn btn-sm btn-error btn-soft"
|
||||
onclick={() => group && askShutdownGroupConfirmation(group)}
|
||||
><Fa icon={faPowerOff} /> {m.home_shutdown_group()}</button
|
||||
>
|
||||
</h1>
|
||||
<div class={gridClass}>
|
||||
{#each devices as device, i (device.id)}
|
||||
@@ -237,3 +261,20 @@
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<dialog class="modal" bind:this={modalShutdownGroup}>
|
||||
<div class="modal-box">
|
||||
<h3 class="text-lg font-bold">
|
||||
{m.home_modal_confirm_shutdown_group_title({ group: pendingShutdownGroup?.name ?? '' })}
|
||||
</h3>
|
||||
<p class="py-4">
|
||||
{m.home_modal_confirm_shutdown_group_desc({ group: pendingShutdownGroup?.name ?? '' })}
|
||||
</p>
|
||||
<div class="modal-action">
|
||||
<form method="dialog">
|
||||
<button class="btn">{m.buttons_cancel()}</button>
|
||||
<button class="btn btn-error" onclick={executeShutdownGroup}>{m.buttons_confirm()}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "الرابط",
|
||||
"device_modal_confirm_shutdown_desc": "يرجى التأكيد لإيقاف {device}.",
|
||||
"device_modal_confirm_shutdown_title": "إيقاف {device}؟",
|
||||
"home_modal_confirm_shutdown_group_desc": "يرجى التأكيد لإيقاف جميع الأجهزة في {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "إيقاف {group}؟",
|
||||
"device_modal_confirm_wake_desc": "يرجى التأكيد لتشغيل {device}.",
|
||||
"device_modal_confirm_wake_title": "تشغيل {device}؟",
|
||||
"device_network_scan_add_all": "إضافة جميع الأجهزة",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "الرئيسية",
|
||||
"home_search_placeholder": "البحث عن الأجهزة",
|
||||
"home_wake_group": "تشغيل المجموعة",
|
||||
"home_shutdown_group": "إيقاف المجموعة",
|
||||
"login_btn_login": "تسجيل الدخول",
|
||||
"login_btn_more": "المزيد",
|
||||
"login_email_label": "البريد الإلكتروني أو اسم المستخدم:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Връзка",
|
||||
"device_modal_confirm_shutdown_desc": "Моля, потвърдете изключването на {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Изключване на {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Моля, потвърдете изключването на всички устройства в {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Изключване на {group}?",
|
||||
"device_modal_confirm_wake_desc": "Моля, потвърдете събуждането на {device}.",
|
||||
"device_modal_confirm_wake_title": "Събуждане на {device}?",
|
||||
"device_network_scan_add_all": "Добавяне на всички устройства",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Начало",
|
||||
"home_search_placeholder": "Търсене на устройства",
|
||||
"home_wake_group": "Събуждане на група",
|
||||
"home_shutdown_group": "Изключване на група",
|
||||
"login_btn_login": "Влизане",
|
||||
"login_btn_more": "...",
|
||||
"login_email_label": "Имейл или потребителско име:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Odkaz",
|
||||
"device_modal_confirm_shutdown_desc": "Prosím potvrďte vypnutí zařízení {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Vypnout {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Potvrďte vypnutí všech zařízení ve skupině {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Vypnout {group}?",
|
||||
"device_modal_confirm_wake_desc": "Prosím potvrďte probuzení zařízení {device}.",
|
||||
"device_modal_confirm_wake_title": "Probudit {device}?",
|
||||
"device_network_scan_add_all": "Přidat všechna zařízení",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Domů",
|
||||
"home_search_placeholder": "Vyhledat zařízení",
|
||||
"home_wake_group": "Skupiny pro probuzení",
|
||||
"home_shutdown_group": "Skupiny vypnutí",
|
||||
"login_btn_login": "Přihlásit se",
|
||||
"login_btn_more": "Více",
|
||||
"login_email_label": "E-mailová adresa nebo uživatelské jméno:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Link",
|
||||
"device_modal_confirm_shutdown_desc": "Bitte bestätigen, um {device} herunterzufahren.",
|
||||
"device_modal_confirm_shutdown_title": "{device} herunterfahren?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Bitte bestätigen, um alle Geräte in {group} herunterzufahren.",
|
||||
"home_modal_confirm_shutdown_group_title": "{group} herunterfahren?",
|
||||
"device_modal_confirm_wake_desc": "Bitte bestätigen, um {device} einzuschalten.",
|
||||
"device_modal_confirm_wake_title": "{device} einschalten?",
|
||||
"device_network_scan_add_all": "Alle Geräte hinzufügen",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Home",
|
||||
"home_search_placeholder": "Suche nach Geräten",
|
||||
"home_wake_group": "Gruppe wecken",
|
||||
"home_shutdown_group": "Gruppe herunterfahren",
|
||||
"login_btn_login": "Login",
|
||||
"login_btn_more": "Mehr",
|
||||
"login_email_label": "Email oder Nutzername:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Link",
|
||||
"device_modal_confirm_shutdown_desc": "Please confirm to shutdown {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Shutdown {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Please confirm to shutdown all devices in {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Shutdown {group}?",
|
||||
"device_modal_confirm_wake_desc": "Please confirm to wake {device}.",
|
||||
"device_modal_confirm_wake_title": "Wake {device}?",
|
||||
"device_network_scan_add_all": "Add all devices",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Home",
|
||||
"home_search_placeholder": "Search for devices",
|
||||
"home_wake_group": "Wake group",
|
||||
"home_shutdown_group": "Shutdown group",
|
||||
"login_btn_login": "Login",
|
||||
"login_btn_more": "More",
|
||||
"login_email_label": "Email or Username:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Link",
|
||||
"device_modal_confirm_shutdown_desc": "Por favor confirme para apagar {device}.",
|
||||
"device_modal_confirm_shutdown_title": "{device} apagar?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Por favor confirme para apagar todos los dispositivos en {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Apagar {group}?",
|
||||
"device_modal_confirm_wake_desc": "Confirme para activar {device}.",
|
||||
"device_modal_confirm_wake_title": "{device} activar?",
|
||||
"device_network_scan_add_all": "Añadir todos los dispositivos",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Inicio",
|
||||
"home_search_placeholder": "Buscar dispositivos",
|
||||
"home_wake_group": "Grupo Wake",
|
||||
"home_shutdown_group": "Grupo apagar",
|
||||
"login_btn_login": "Entrar",
|
||||
"login_btn_more": "Más",
|
||||
"login_email_label": "Email o Nombre de usuario:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Lien",
|
||||
"device_modal_confirm_shutdown_desc": "Veuillez confirmer l'arrêt de {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Arrêter {device} ?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Veuillez confirmer l'arrêt de tous les appareils dans {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Arrêter {group} ?",
|
||||
"device_modal_confirm_wake_desc": "Veuillez confirmer le réveil de {device}.",
|
||||
"device_modal_confirm_wake_title": "Réveiller {device} ?",
|
||||
"device_network_scan_add_all": "Ajouter tous les appareils",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Accueil",
|
||||
"home_search_placeholder": "Recherche de dispositifs",
|
||||
"home_wake_group": "Groupe de réveil",
|
||||
"home_shutdown_group": "Groupe éteindre",
|
||||
"login_btn_login": "Connexion",
|
||||
"login_btn_more": "Plus",
|
||||
"login_email_label": "Courriel ou nom d'utilisateur :",
|
||||
|
||||
@@ -51,6 +51,10 @@
|
||||
"device_link": "लिंक",
|
||||
"device_modal_confirm_shutdown_desc": "कृपया {device} को बंद करने की पुष्टि करें।",
|
||||
"device_modal_confirm_shutdown_title": "{device} को बंद करें?",
|
||||
"home_modal_confirm_shutdown_group_desc": "कृपया {group} में सभी उपकरणों को बंद करने की पुष्टि करें।",
|
||||
"home_modal_confirm_shutdown_group_title": "{group} को बंद करें?",
|
||||
"home_modal_confirm_shutdown_group_desc": "कृपया {group} में सभी उपकरणों को बंद करने की पुष्टि करें।",
|
||||
"home_modal_confirm_shutdown_group_title": "{group} को बंद करें?",
|
||||
"device_modal_confirm_wake_desc": "कृपया {device} को जगाने की पुष्टि करें।",
|
||||
"device_modal_confirm_wake_title": "{device} को जगाएँ?",
|
||||
"device_network_scan_add_all": "सभी डिवाइस जोड़ें",
|
||||
@@ -117,6 +121,7 @@
|
||||
"home_page_title": "होम",
|
||||
"home_search_placeholder": "डिवाइस खोजें",
|
||||
"home_wake_group": "समूह जगाएँ",
|
||||
"home_shutdown_group": "समूह बंद करें",
|
||||
"login_btn_login": "लॉगिन",
|
||||
"login_btn_more": "अधिक",
|
||||
"login_email_label": "ईमेल या उपयोगकर्ता नाम:",
|
||||
|
||||
@@ -51,6 +51,10 @@
|
||||
"device_link": "Tautan",
|
||||
"device_modal_confirm_shutdown_desc": "Harap konfirmasi untuk mematikan {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Matikan {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Harap konfirmasi untuk mematikan semua perangkat di {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Matikan {group}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Harap konfirmasi untuk mematikan semua perangkat di {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Matikan {group}?",
|
||||
"device_modal_confirm_wake_desc": "Harap konfirmasi untuk membangunkan {device}.",
|
||||
"device_modal_confirm_wake_title": "Bangunkan {device}?",
|
||||
"device_network_scan_add_all": "Tambahkan semua perangkat",
|
||||
@@ -117,6 +121,7 @@
|
||||
"home_page_title": "Beranda",
|
||||
"home_search_placeholder": "Mencari perangkat",
|
||||
"home_wake_group": "Kelompok bangun",
|
||||
"home_shutdown_group": "Kelompok matikan",
|
||||
"login_btn_login": "Masuk",
|
||||
"login_btn_more": "Lainnya",
|
||||
"login_email_label": "Email atau Nama Pengguna:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Collegamento",
|
||||
"device_modal_confirm_shutdown_desc": "Sicuro di voler spegnere {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Spegnere {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Sicuro di voler spegnere tutti i dispositivi in {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Spegnere {group}?",
|
||||
"device_modal_confirm_wake_desc": "Sicuro di voler accendere {device}.",
|
||||
"device_modal_confirm_wake_title": "Accendere {device}?",
|
||||
"device_network_scan_add_all": "Aggiungi tutti i dispositivi",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Home",
|
||||
"home_search_placeholder": "Ricerca di dispositivi",
|
||||
"home_wake_group": "Gruppo Wake",
|
||||
"home_shutdown_group": "Gruppo spegni",
|
||||
"login_btn_login": "Login",
|
||||
"login_btn_more": "Di più...",
|
||||
"login_email_label": "Email o nome utente:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "リンク",
|
||||
"device_modal_confirm_shutdown_desc": "{device} をシャットダウンすることを確認してください。",
|
||||
"device_modal_confirm_shutdown_title": "{device} をシャットダウンしますか?",
|
||||
"home_modal_confirm_shutdown_group_desc": "{group} のすべてのデバイスをシャットダウンすることを確認してください。",
|
||||
"home_modal_confirm_shutdown_group_title": "{group} をシャットダウンしますか?",
|
||||
"device_modal_confirm_wake_desc": "{device} を起動することを確認してください。",
|
||||
"device_modal_confirm_wake_title": "{device} を起動しますか?",
|
||||
"device_network_scan_add_all": "すべてのデバイスを追加",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "ホーム",
|
||||
"home_search_placeholder": "デバイスの検索",
|
||||
"home_wake_group": "ウェークグループ",
|
||||
"home_shutdown_group": "グループ終了",
|
||||
"login_btn_login": "ログイン",
|
||||
"login_btn_more": "詳細",
|
||||
"login_email_label": "メールアドレスまたはユーザー名:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "링크",
|
||||
"device_modal_confirm_shutdown_desc": "정말 {device}를 종료할까요?",
|
||||
"device_modal_confirm_shutdown_title": "{device}를 종료할까요?",
|
||||
"home_modal_confirm_shutdown_group_desc": "{group}의 모든 장치 종료를 확인하세요.",
|
||||
"home_modal_confirm_shutdown_group_title": "{group} 종료?",
|
||||
"device_modal_confirm_wake_desc": "{device}를 시작하시려면 예를 눌러주세요.",
|
||||
"device_modal_confirm_wake_title": "{device}를 시작할까요?",
|
||||
"device_network_scan_add_all": "모든 기기 추가하기",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "홈",
|
||||
"home_search_placeholder": "기기 검색",
|
||||
"home_wake_group": "깨우기 그룹",
|
||||
"home_shutdown_group": "그룹 종료",
|
||||
"login_btn_login": "로그인",
|
||||
"login_btn_more": "더보기",
|
||||
"login_email_label": "이메일 또는 사용자명",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Link",
|
||||
"device_modal_confirm_shutdown_desc": "Bekreft å slå av {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Slå av {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Bekreft å slå av alle enheter i {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Slå av {group}?",
|
||||
"device_modal_confirm_wake_desc": "Vennligst bekreft for å vekke {device}.",
|
||||
"device_modal_confirm_wake_title": "Vekk {device}?",
|
||||
"device_network_scan_add_all": "Legg til alle enheter",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Hjem",
|
||||
"home_search_placeholder": "Søk etter enheter",
|
||||
"home_wake_group": "Vekkegruppe",
|
||||
"home_shutdown_group": "Slå av gruppe",
|
||||
"login_btn_login": "Logg inn",
|
||||
"login_btn_more": "Mer",
|
||||
"login_email_label": "E-post eller brukernavn:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Link",
|
||||
"device_modal_confirm_shutdown_desc": "Bevestig om {device} af te sluiten.",
|
||||
"device_modal_confirm_shutdown_title": "Afsluiten {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Bevestig om alle apparaten in {group} af te sluiten.",
|
||||
"home_modal_confirm_shutdown_group_title": "Afsluiten {group}?",
|
||||
"device_modal_confirm_wake_desc": "Bevestig om {device} te wekken.",
|
||||
"device_modal_confirm_wake_title": "Wek {device}?",
|
||||
"device_network_scan_add_all": "Alle apparaten toevoegen",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Home",
|
||||
"home_search_placeholder": "Apparaten zoeken",
|
||||
"home_wake_group": "Wake groep",
|
||||
"home_shutdown_group": "Groep afsluiten",
|
||||
"login_btn_login": "Inloggen",
|
||||
"login_btn_more": "Meer",
|
||||
"login_email_label": "E-mail of gebruikersnaam:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Link",
|
||||
"device_modal_confirm_shutdown_desc": "Potwierdź wyłączenie {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Wyłączyć {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Potwierdź wyłączenie wszystkich urządzeń w {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Wyłączyć {group}?",
|
||||
"device_modal_confirm_wake_desc": "Potwierdź włączenie {device}.",
|
||||
"device_modal_confirm_wake_title": "Włączyć {device}?",
|
||||
"device_network_scan_add_all": "Dodaj wszystkie urządzenia",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Strona Główna",
|
||||
"home_search_placeholder": "Wyszukiwanie urządzeń",
|
||||
"home_wake_group": "Grupa Wake",
|
||||
"home_shutdown_group": "Grupa zamknięcia",
|
||||
"login_btn_login": "Zaloguj",
|
||||
"login_btn_more": "Więcej",
|
||||
"login_email_label": "Email lub nazwa użytkownika:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Link",
|
||||
"device_modal_confirm_shutdown_desc": "Confirme o encerramento do {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Desligar {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Confirme o encerramento de todos os dispositivos em {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Desligar {group}?",
|
||||
"device_modal_confirm_wake_desc": "Confirme para ativar {device}.",
|
||||
"device_modal_confirm_wake_title": "Despertar {device}?",
|
||||
"device_network_scan_add_all": "Adicionar todos os dispositivos",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Início",
|
||||
"home_search_placeholder": "Procurar dispositivos",
|
||||
"home_wake_group": "Grupo de despertar",
|
||||
"home_shutdown_group": "Grupo desligar",
|
||||
"login_btn_login": "Entrar",
|
||||
"login_btn_more": "Mais",
|
||||
"login_email_label": "Email ou Utilizador:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Ссылка",
|
||||
"device_modal_confirm_shutdown_desc": "Пожалуйста подтвердите для выключения {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Выключить {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Пожалуйста, подтвердите выключение всех устройств в {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Выключить {group}?",
|
||||
"device_modal_confirm_wake_desc": "Пожалуйста подтвердите для пробуждения {device}.",
|
||||
"device_modal_confirm_wake_title": "Пробудить {device}?",
|
||||
"device_network_scan_add_all": "Добавить все устройства",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Home",
|
||||
"home_search_placeholder": "Поиск устройств",
|
||||
"home_wake_group": "Группа пробуждения",
|
||||
"home_shutdown_group": "Группа выключения",
|
||||
"login_btn_login": "Войти",
|
||||
"login_btn_more": "Больше",
|
||||
"login_email_label": "Email или имя пользователя:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Посилання",
|
||||
"device_modal_confirm_shutdown_desc": "Підтвердьте, щоб вимкнути {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Вимкнути {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Будь ласка, підтвердіть вимкнення всіх пристроїв у {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Вимкнути {group}?",
|
||||
"device_modal_confirm_wake_desc": "Будь ласка, підтвердьте, щоб розбудити {device}.",
|
||||
"device_modal_confirm_wake_title": "Розбудити {device}?",
|
||||
"device_network_scan_add_all": "Додайте всі пристрої",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Головна",
|
||||
"home_search_placeholder": "Пошук пристроїв",
|
||||
"home_wake_group": "Пробудження групи",
|
||||
"home_shutdown_group": "Вимкнення групи",
|
||||
"login_btn_login": "Увійти",
|
||||
"login_btn_more": "Додатково",
|
||||
"login_email_label": "Електронна пошта або ім'я користувача:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "Liên kết",
|
||||
"device_modal_confirm_shutdown_desc": "Vui lòng xác nhận tắt {device}.",
|
||||
"device_modal_confirm_shutdown_title": "Tắt {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "Vui lòng xác nhận tắt tất cả thiết bị trong {group}.",
|
||||
"home_modal_confirm_shutdown_group_title": "Tắt {group}?",
|
||||
"device_modal_confirm_wake_desc": "Vui lòng xác nhận bật {device}.",
|
||||
"device_modal_confirm_wake_title": "Bật {device}?",
|
||||
"device_network_scan_add_all": "Thêm tất cả thiết bị",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "Trang chủ",
|
||||
"home_search_placeholder": "Tìm kiếm thiết bị",
|
||||
"home_wake_group": "Bật nhóm",
|
||||
"home_shutdown_group": "Tắt nhóm",
|
||||
"login_btn_login": "Đăng nhập",
|
||||
"login_btn_more": "Thêm",
|
||||
"login_email_label": "Email hoặc Tên đăng nhập:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "链接",
|
||||
"device_modal_confirm_shutdown_desc": "您确定要关闭 {device} 吗?",
|
||||
"device_modal_confirm_shutdown_title": "关闭 {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "请确认关闭 {group} 中的所有设备。",
|
||||
"home_modal_confirm_shutdown_group_title": "关闭 {group}?",
|
||||
"device_modal_confirm_wake_desc": "您确定要唤醒 {device} 吗?",
|
||||
"device_modal_confirm_wake_title": "唤醒 {device}?",
|
||||
"device_network_scan_add_all": "添加全部设备",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "首页",
|
||||
"home_search_placeholder": "搜索设备",
|
||||
"home_wake_group": "唤醒小组",
|
||||
"home_shutdown_group": "关闭小组",
|
||||
"login_btn_login": "登录",
|
||||
"login_btn_more": "更多",
|
||||
"login_email_label": "邮箱/用户名:",
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
"device_link": "連結",
|
||||
"device_modal_confirm_shutdown_desc": "您確定要關閉 {device} 嗎?",
|
||||
"device_modal_confirm_shutdown_title": "關閉 {device}?",
|
||||
"home_modal_confirm_shutdown_group_desc": "請確認關閉 {group} 中的所有裝置。",
|
||||
"home_modal_confirm_shutdown_group_title": "關閉 {group}?",
|
||||
"device_modal_confirm_wake_desc": "您確定要喚醒 {device} 嗎?",
|
||||
"device_modal_confirm_wake_title": "喚醒 {device}?",
|
||||
"device_network_scan_add_all": "新增全部裝置",
|
||||
@@ -117,6 +119,7 @@
|
||||
"home_page_title": "首頁",
|
||||
"home_search_placeholder": "搜尋裝置",
|
||||
"home_wake_group": "群組喚醒",
|
||||
"home_shutdown_group": "關閉群組",
|
||||
"login_btn_login": "登入",
|
||||
"login_btn_more": "更多",
|
||||
"login_email_label": "電子郵件/使用者名稱:",
|
||||
|
||||
Reference in New Issue
Block a user