mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui.git
synced 2025-10-30 02:12:33 +00:00
Merge pull request #6 from stephb9959/bugfix/21-general-ui-fixes
Bugfix/21 general UI fixes
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
"factory_reset": "Werkseinstellungen zurückgesetzt",
|
||||
"firmware_upgrade": "Firmware-Aktualisierung",
|
||||
"reboot": "Starten Sie neu",
|
||||
"title": "Geräteaktionen",
|
||||
"title": "Befehle",
|
||||
"trace": "Spur",
|
||||
"wifi_scan": "WLAN-Scan"
|
||||
},
|
||||
@@ -20,7 +20,7 @@
|
||||
"commands": {
|
||||
"error": "Fehler beim Senden des Befehls!",
|
||||
"success": "Der Befehl wurde erfolgreich gesendet. Sie können das Ergebnis im Befehlsprotokoll anzeigen",
|
||||
"title": "Gerätebefehle"
|
||||
"title": "Befehlsverlauf"
|
||||
},
|
||||
"common": {
|
||||
"are_you_sure": "Bist du sicher?",
|
||||
@@ -70,6 +70,8 @@
|
||||
"refresh": "Aktualisierung",
|
||||
"refresh_device": "Gerät aktualisieren",
|
||||
"result": "Ergebnis",
|
||||
"save": "Sparen",
|
||||
"saving": "Speichern ...",
|
||||
"schedule": "Zeitplan",
|
||||
"seconds_elapsed": "Sekunden verstrichen",
|
||||
"serial_number": "Ordnungsnummer",
|
||||
@@ -85,14 +87,14 @@
|
||||
},
|
||||
"configuration": {
|
||||
"created": "Erstellt",
|
||||
"details": "Gerätedetails",
|
||||
"details": "Einzelheiten",
|
||||
"device_password": "Passwort",
|
||||
"last_configuration_change": "Letzte Konfigurationsänderung",
|
||||
"last_configuration_download": "Letzter Konfigurations-Download",
|
||||
"location": "Ort",
|
||||
"notes": "Anmerkungen",
|
||||
"owner": "Inhaber",
|
||||
"title": "Gerätekonfiguration",
|
||||
"title": "Aufbau",
|
||||
"type": "Gerätetyp",
|
||||
"view_json": "Rohes JSON anzeigen"
|
||||
},
|
||||
@@ -100,7 +102,7 @@
|
||||
"choose_file": "Sie müssen eine gültige .json-Datei auswählen:",
|
||||
"enter_new": "Geben Sie die JSON für die neue Gerätekonfiguration ein:",
|
||||
"placeholder": "JSON konfigurieren",
|
||||
"title": "Gerät konfigurieren",
|
||||
"title": "Konfigurieren",
|
||||
"valid_json": "Sie müssen gültiges JSON eingeben"
|
||||
},
|
||||
"delete_command": {
|
||||
@@ -120,7 +122,9 @@
|
||||
},
|
||||
"factory_reset": {
|
||||
"redirector": "Weiterleitung beibehalten:",
|
||||
"title": "Gerät auf Werkseinstellungen zurücksetzen",
|
||||
"reset": "Zurücksetzen",
|
||||
"resetting": "Zurücksetzen...",
|
||||
"title": "Werkseinstellungen zurückgesetzt",
|
||||
"warning": "Achtung: Nach dem Absenden kann dies nicht rückgängig gemacht werden"
|
||||
},
|
||||
"footer": {
|
||||
@@ -130,7 +134,7 @@
|
||||
},
|
||||
"health": {
|
||||
"sanity": "Gesundheit",
|
||||
"title": "Gerätezustand"
|
||||
"title": "Gesundheit"
|
||||
},
|
||||
"login": {
|
||||
"login": "Anmeldung",
|
||||
@@ -144,7 +148,7 @@
|
||||
},
|
||||
"reboot": {
|
||||
"directions": "Wann möchten Sie dieses Gerät neu starten?",
|
||||
"title": "Gerät neustarten"
|
||||
"title": "Starten Sie neu"
|
||||
},
|
||||
"scan": {
|
||||
"active": "Aktiven Scan aktivieren",
|
||||
@@ -168,7 +172,8 @@
|
||||
"directions": "Starten Sie eine Fernverfolgung dieses Geräts für eine bestimmte Dauer oder eine Anzahl von Paketen",
|
||||
"download_trace": "Klicke hier zum herunterladen",
|
||||
"packets": "Pakete",
|
||||
"title": "Trace-Gerät",
|
||||
"title": "Spur",
|
||||
"trace": "Spur",
|
||||
"wait_for_file": "Möchten Sie warten, bis die Trace-Datei fertig ist?",
|
||||
"waiting_directions": "Bitte warten Sie auf die Trace-Datendatei. Dies könnte eine Weile dauern. Sie können das Warten beenden und die Ablaufverfolgungsdatei später aus der Befehlstabelle abrufen.",
|
||||
"waiting_seconds": "Verstrichene Zeit: {{seconds}} Sekunden"
|
||||
@@ -185,6 +190,7 @@
|
||||
"offline_device": "Diese Option ist gesperrt, da dieses Gerät nicht verbunden ist",
|
||||
"time": "Zeitpunkt der Aktualisierung:",
|
||||
"title": "Firmware-Aktualisierung",
|
||||
"upgrade": "Aktualisierung",
|
||||
"wait_for_upgrade": "Möchten Sie warten, bis das Upgrade abgeschlossen ist?",
|
||||
"waiting_for_device": "Warten, bis das Gerät wieder verbunden ist"
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"factory_reset": "Factory Reset",
|
||||
"firmware_upgrade": "Firmware Upgrade",
|
||||
"reboot": "Reboot",
|
||||
"title": "Device Actions",
|
||||
"title": "Commands",
|
||||
"trace": "Trace",
|
||||
"wifi_scan": "Wifi Scan"
|
||||
},
|
||||
@@ -20,7 +20,7 @@
|
||||
"commands": {
|
||||
"error": "Error while submitting command!",
|
||||
"success": "Command submitted successfully, you can look at the Commands log for the result",
|
||||
"title": "Device Commands"
|
||||
"title": "Command History"
|
||||
},
|
||||
"common": {
|
||||
"are_you_sure": "Are you sure?",
|
||||
@@ -70,6 +70,8 @@
|
||||
"refresh": "Refresh",
|
||||
"refresh_device": "Refresh Device",
|
||||
"result": "Result",
|
||||
"save": "Save",
|
||||
"saving": "Saving... ",
|
||||
"schedule": "Schedule",
|
||||
"seconds_elapsed": "Seconds elapsed",
|
||||
"serial_number": "Serial Number",
|
||||
@@ -85,14 +87,14 @@
|
||||
},
|
||||
"configuration": {
|
||||
"created": "Created",
|
||||
"details": "Device Details",
|
||||
"details": "Details",
|
||||
"device_password": "Password",
|
||||
"last_configuration_change": "Last Configuration Change",
|
||||
"last_configuration_download": "Last Configuration Download",
|
||||
"location": "Location",
|
||||
"notes": "Notes",
|
||||
"owner": "Owner",
|
||||
"title": "Device Configuration",
|
||||
"title": "Configuration",
|
||||
"type": "Device Type",
|
||||
"view_json": "View raw JSON"
|
||||
},
|
||||
@@ -100,7 +102,7 @@
|
||||
"choose_file": "You need to choose a valid .json file: ",
|
||||
"enter_new": "Enter new device configuration JSON: ",
|
||||
"placeholder": "Config JSON",
|
||||
"title": "Configure Device",
|
||||
"title": "Configure",
|
||||
"valid_json": "You need to enter valid JSON"
|
||||
},
|
||||
"delete_command": {
|
||||
@@ -116,11 +118,13 @@
|
||||
"device_logs": {
|
||||
"log": "Log",
|
||||
"severity": "Severity",
|
||||
"title": "Device Logs"
|
||||
"title": "Logs"
|
||||
},
|
||||
"factory_reset": {
|
||||
"redirector": "Keep redirector: ",
|
||||
"title": "Factory Reset Device",
|
||||
"reset": "Reset",
|
||||
"resetting": "Resetting... ",
|
||||
"title": "Factory Reset",
|
||||
"warning": "Warning: Once you submit this cannot be reverted"
|
||||
},
|
||||
"footer": {
|
||||
@@ -130,7 +134,7 @@
|
||||
},
|
||||
"health": {
|
||||
"sanity": "Sanity",
|
||||
"title": "Device Health"
|
||||
"title": "Health"
|
||||
},
|
||||
"login": {
|
||||
"login": "Login",
|
||||
@@ -144,7 +148,7 @@
|
||||
},
|
||||
"reboot": {
|
||||
"directions": "When would you like to reboot this device?",
|
||||
"title": "Reboot Device"
|
||||
"title": "Reboot"
|
||||
},
|
||||
"scan": {
|
||||
"active": "Enable active scan",
|
||||
@@ -168,7 +172,8 @@
|
||||
"directions": "Launch a remote trace of this device for either a specific duration or a number of packets",
|
||||
"download_trace": "Click here to download",
|
||||
"packets": "Packets",
|
||||
"title": "Trace Device",
|
||||
"title": "Trace",
|
||||
"trace": "Trace",
|
||||
"wait_for_file": "Would you like to wait until the trace file is ready?",
|
||||
"waiting_directions": "Please wait for the trace data file. This may take some time. You can exit the wait and retrieve the trace file from the commands table later.",
|
||||
"waiting_seconds": "Time Elapsed: {{seconds}} seconds"
|
||||
@@ -185,6 +190,7 @@
|
||||
"offline_device": "This option is blocked because this device is not connected",
|
||||
"time": "Time of upgrade:",
|
||||
"title": "Firmware Upgrade",
|
||||
"upgrade": "Upgrade",
|
||||
"wait_for_upgrade": "Would you like to wait for the upgrade to finish?",
|
||||
"waiting_for_device": "Waiting for device to reconnect"
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"factory_reset": "Restablecimiento De Fábrica",
|
||||
"firmware_upgrade": "Actualización de firmware",
|
||||
"reboot": "Reiniciar",
|
||||
"title": "Acciones del dispositivo",
|
||||
"title": "Comandos",
|
||||
"trace": "Rastro",
|
||||
"wifi_scan": "Escaneo Wifi"
|
||||
},
|
||||
@@ -20,7 +20,7 @@
|
||||
"commands": {
|
||||
"error": "¡Error al enviar el comando!",
|
||||
"success": "Comando enviado con éxito, puede consultar el registro de Comandos para ver el resultado",
|
||||
"title": "Comandos del dispositivo"
|
||||
"title": "Historial de Comandos"
|
||||
},
|
||||
"common": {
|
||||
"are_you_sure": "¿Estás seguro?",
|
||||
@@ -70,6 +70,8 @@
|
||||
"refresh": "Refrescar",
|
||||
"refresh_device": "Actualizar dispositivo",
|
||||
"result": "Resultado",
|
||||
"save": "Salvar",
|
||||
"saving": "Ahorro...",
|
||||
"schedule": "Programar",
|
||||
"seconds_elapsed": "Segundos transcurridos",
|
||||
"serial_number": "Número de serie",
|
||||
@@ -85,14 +87,14 @@
|
||||
},
|
||||
"configuration": {
|
||||
"created": "creado",
|
||||
"details": "Detalles del dispositivo",
|
||||
"details": "Detalles",
|
||||
"device_password": "Contraseña",
|
||||
"last_configuration_change": "Último cambio de configuración",
|
||||
"last_configuration_download": "Descarga de la última configuración",
|
||||
"location": "Ubicación",
|
||||
"notes": "Notas",
|
||||
"owner": "Propietario",
|
||||
"title": "Configuración del dispositivo",
|
||||
"title": "Configuración",
|
||||
"type": "Tipo de dispositivo",
|
||||
"view_json": "Ver JSON sin procesar"
|
||||
},
|
||||
@@ -100,7 +102,7 @@
|
||||
"choose_file": "Debe elegir un archivo .json válido:",
|
||||
"enter_new": "Ingrese la nueva configuración del dispositivo JSON:",
|
||||
"placeholder": "Configurar JSON",
|
||||
"title": "Configurar dispositivo",
|
||||
"title": "Configurar",
|
||||
"valid_json": "Debes ingresar un JSON válido"
|
||||
},
|
||||
"delete_command": {
|
||||
@@ -116,11 +118,13 @@
|
||||
"device_logs": {
|
||||
"log": "Iniciar sesión",
|
||||
"severity": "Gravedad",
|
||||
"title": "Registros de dispositivos"
|
||||
"title": "Registros"
|
||||
},
|
||||
"factory_reset": {
|
||||
"redirector": "Mantener el redirector:",
|
||||
"title": "Dispositivo de restablecimiento de fábrica",
|
||||
"reset": "Reiniciar",
|
||||
"resetting": "Restableciendo…",
|
||||
"title": "Restablecimiento De Fábrica",
|
||||
"warning": "Advertencia: una vez que envíe, esto no se podrá revertir"
|
||||
},
|
||||
"footer": {
|
||||
@@ -130,7 +134,7 @@
|
||||
},
|
||||
"health": {
|
||||
"sanity": "Cordura",
|
||||
"title": "Salud del dispositivo"
|
||||
"title": "Salud"
|
||||
},
|
||||
"login": {
|
||||
"login": "Iniciar sesión",
|
||||
@@ -144,7 +148,7 @@
|
||||
},
|
||||
"reboot": {
|
||||
"directions": "¿Cuándo le gustaría reiniciar este dispositivo?",
|
||||
"title": "Reiniciar dispositivo"
|
||||
"title": "Reiniciar"
|
||||
},
|
||||
"scan": {
|
||||
"active": "Habilitar escaneo activo",
|
||||
@@ -168,7 +172,8 @@
|
||||
"directions": "Lanzar un rastreo remoto de este dispositivo por una duración específica o por una cantidad de paquetes",
|
||||
"download_trace": "Haga click aquí para descargar",
|
||||
"packets": "Paquetes",
|
||||
"title": "Dispositivo de seguimiento",
|
||||
"title": "Rastro",
|
||||
"trace": "Rastro",
|
||||
"wait_for_file": "¿Le gustaría esperar hasta que el archivo de seguimiento esté listo?",
|
||||
"waiting_directions": "Espere el archivo de datos de seguimiento. Esto puede tomar algo de tiempo. Puede salir de la espera y recuperar el archivo de seguimiento de la tabla de comandos más tarde.",
|
||||
"waiting_seconds": "Tiempo transcurrido: {{seconds}} segundos"
|
||||
@@ -185,6 +190,7 @@
|
||||
"offline_device": "Esta opción está bloqueada porque este dispositivo no está conectado",
|
||||
"time": "Hora de actualización:",
|
||||
"title": "Actualización de firmware",
|
||||
"upgrade": "Mejorar",
|
||||
"wait_for_upgrade": "¿Le gustaría esperar a que finalice la actualización?",
|
||||
"waiting_for_device": "Esperando que el dispositivo se vuelva a conectar"
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"factory_reset": "Retour aux paramètres d'usine",
|
||||
"firmware_upgrade": "Mise à jour du firmware",
|
||||
"reboot": "Redémarrer",
|
||||
"title": "Actions de l'appareil",
|
||||
"title": "Les commandes",
|
||||
"trace": "Trace",
|
||||
"wifi_scan": "Balayage Wi-Fi"
|
||||
},
|
||||
@@ -20,7 +20,7 @@
|
||||
"commands": {
|
||||
"error": "Erreur lors de la soumission de la commande !",
|
||||
"success": "Commande soumise avec succès, vous pouvez consulter le journal des commandes pour le résultat",
|
||||
"title": "Commandes de l'appareil"
|
||||
"title": "Historique des commandes"
|
||||
},
|
||||
"common": {
|
||||
"are_you_sure": "Êtes-vous sûr?",
|
||||
@@ -70,6 +70,8 @@
|
||||
"refresh": "Rafraîchir",
|
||||
"refresh_device": "Actualiser l'appareil",
|
||||
"result": "Résultat",
|
||||
"save": "Sauvegarder",
|
||||
"saving": "Économie...",
|
||||
"schedule": "Programme",
|
||||
"seconds_elapsed": "Secondes écoulées",
|
||||
"serial_number": "Numéro de série",
|
||||
@@ -85,14 +87,14 @@
|
||||
},
|
||||
"configuration": {
|
||||
"created": "Créé",
|
||||
"details": "Détails de l'appareil",
|
||||
"details": "Détails",
|
||||
"device_password": "Mot de passe",
|
||||
"last_configuration_change": "Dernière modification de configuration",
|
||||
"last_configuration_download": "Téléchargement de la dernière configuration",
|
||||
"location": "Emplacement",
|
||||
"notes": "Remarques",
|
||||
"owner": "Propriétaire",
|
||||
"title": "Configuration de l'appareil",
|
||||
"title": "Configuration",
|
||||
"type": "Type d'appareil",
|
||||
"view_json": "Afficher le JSON brut"
|
||||
},
|
||||
@@ -100,7 +102,7 @@
|
||||
"choose_file": "Vous devez choisir un fichier .json valide :",
|
||||
"enter_new": "Entrez la nouvelle configuration de l'appareil JSON :",
|
||||
"placeholder": "Configurer JSON",
|
||||
"title": "Configurer l'appareil",
|
||||
"title": "Configurer",
|
||||
"valid_json": "Vous devez entrer un JSON valide"
|
||||
},
|
||||
"delete_command": {
|
||||
@@ -116,11 +118,13 @@
|
||||
"device_logs": {
|
||||
"log": "Bûche",
|
||||
"severity": "Gravité",
|
||||
"title": "Journaux de l'appareil"
|
||||
"title": "Journaux"
|
||||
},
|
||||
"factory_reset": {
|
||||
"redirector": "Conserver le redirecteur :",
|
||||
"title": "Dispositif de réinitialisation d'usine",
|
||||
"reset": "Réinitialiser",
|
||||
"resetting": "Réinitialisation…",
|
||||
"title": "Retour aux paramètres d'usine",
|
||||
"warning": "Avertissement : Une fois que vous avez soumis, cela ne peut pas être annulé"
|
||||
},
|
||||
"footer": {
|
||||
@@ -130,7 +134,7 @@
|
||||
},
|
||||
"health": {
|
||||
"sanity": "Santé mentale",
|
||||
"title": "Santé de l'appareil"
|
||||
"title": "Santé"
|
||||
},
|
||||
"login": {
|
||||
"login": "S'identifier",
|
||||
@@ -144,7 +148,7 @@
|
||||
},
|
||||
"reboot": {
|
||||
"directions": "Quand souhaitez-vous redémarrer cet appareil ?",
|
||||
"title": "Redémarrez l'appareil"
|
||||
"title": "Redémarrer"
|
||||
},
|
||||
"scan": {
|
||||
"active": "Activer l'analyse active",
|
||||
@@ -168,7 +172,8 @@
|
||||
"directions": "Lancer une trace à distance de cet appareil pour une durée spécifique ou un nombre de paquets",
|
||||
"download_trace": "Cliquez ici pour télécharger",
|
||||
"packets": "Paquets",
|
||||
"title": "Dispositif de traçage",
|
||||
"title": "Trace",
|
||||
"trace": "Trace",
|
||||
"wait_for_file": "Souhaitez-vous attendre que le fichier de trace soit prêt ?",
|
||||
"waiting_directions": "Veuillez attendre le fichier de données de trace. Cela peut prendre un certain temps. Vous pouvez quitter l'attente et récupérer le fichier de trace de la table des commandes plus tard.",
|
||||
"waiting_seconds": "Temps écoulé : {{seconds}} secondes"
|
||||
@@ -185,6 +190,7 @@
|
||||
"offline_device": "Cette option est bloquée car cet appareil n'est pas connecté",
|
||||
"time": "Heure de la mise à niveau :",
|
||||
"title": "Mise à jour du firmware",
|
||||
"upgrade": "Améliorer",
|
||||
"wait_for_upgrade": "Souhaitez-vous attendre la fin de la mise à niveau ?",
|
||||
"waiting_for_device": "En attente de la reconnexion de l'appareil"
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"factory_reset": "Restauração de fábrica",
|
||||
"firmware_upgrade": "Atualização de firmware",
|
||||
"reboot": "Reiniciar",
|
||||
"title": "Ações do dispositivo",
|
||||
"title": "Comandos",
|
||||
"trace": "Vestígio",
|
||||
"wifi_scan": "Wifi Scan"
|
||||
},
|
||||
@@ -20,7 +20,7 @@
|
||||
"commands": {
|
||||
"error": "Erro ao enviar comando!",
|
||||
"success": "Comando enviado com sucesso, você pode consultar o log de Comandos para ver o resultado",
|
||||
"title": "Comandos de dispositivo"
|
||||
"title": "Histórico de Comandos"
|
||||
},
|
||||
"common": {
|
||||
"are_you_sure": "Você tem certeza?",
|
||||
@@ -70,6 +70,8 @@
|
||||
"refresh": "REFRESH",
|
||||
"refresh_device": "Atualizar dispositivo",
|
||||
"result": "Resultado",
|
||||
"save": "Salve",
|
||||
"saving": "Salvando ...",
|
||||
"schedule": "Cronograma",
|
||||
"seconds_elapsed": "Segundos decorridos",
|
||||
"serial_number": "Número de série",
|
||||
@@ -85,14 +87,14 @@
|
||||
},
|
||||
"configuration": {
|
||||
"created": "Criado",
|
||||
"details": "Detalhes do dispositivo",
|
||||
"details": "Detalhes",
|
||||
"device_password": "Senha",
|
||||
"last_configuration_change": "Última Mudança de Configuração",
|
||||
"last_configuration_download": "Último download da configuração",
|
||||
"location": "Localização",
|
||||
"notes": "notas",
|
||||
"owner": "Proprietário",
|
||||
"title": "Configuração do dispositivo",
|
||||
"title": "Configuração",
|
||||
"type": "Tipo de dispositivo",
|
||||
"view_json": "Exibir JSON bruto"
|
||||
},
|
||||
@@ -100,7 +102,7 @@
|
||||
"choose_file": "Você precisa escolher um arquivo .json válido:",
|
||||
"enter_new": "Insira a nova configuração do dispositivo JSON:",
|
||||
"placeholder": "Config JSON",
|
||||
"title": "Configurar dispositivo",
|
||||
"title": "Configurar",
|
||||
"valid_json": "Você precisa inserir um JSON válido"
|
||||
},
|
||||
"delete_command": {
|
||||
@@ -116,11 +118,13 @@
|
||||
"device_logs": {
|
||||
"log": "Registro",
|
||||
"severity": "Gravidade",
|
||||
"title": "Registros de dispositivos"
|
||||
"title": "Toras"
|
||||
},
|
||||
"factory_reset": {
|
||||
"redirector": "Manter redirecionador:",
|
||||
"title": "Dispositivo de redefinição de fábrica",
|
||||
"reset": "Restabelecer",
|
||||
"resetting": "Reiniciando ...",
|
||||
"title": "Restauração de fábrica",
|
||||
"warning": "Aviso: depois de enviar, isso não pode ser revertido"
|
||||
},
|
||||
"footer": {
|
||||
@@ -130,7 +134,7 @@
|
||||
},
|
||||
"health": {
|
||||
"sanity": "Sanidade",
|
||||
"title": "Saúde do Dispositivo"
|
||||
"title": "Saúde"
|
||||
},
|
||||
"login": {
|
||||
"login": "Entrar",
|
||||
@@ -144,7 +148,7 @@
|
||||
},
|
||||
"reboot": {
|
||||
"directions": "Quando você gostaria de reinicializar este dispositivo?",
|
||||
"title": "Reiniciar dispositivo"
|
||||
"title": "Reiniciar"
|
||||
},
|
||||
"scan": {
|
||||
"active": "Habilitar varredura ativa",
|
||||
@@ -168,7 +172,8 @@
|
||||
"directions": "Lançar um rastreamento remoto deste dispositivo para uma duração específica ou um número de pacotes",
|
||||
"download_trace": "Clique aqui para baixar",
|
||||
"packets": "Pacotes",
|
||||
"title": "Dispositivo de rastreamento",
|
||||
"title": "Vestígio",
|
||||
"trace": "Vestígio",
|
||||
"wait_for_file": "Você gostaria de esperar até que o arquivo de rastreamento esteja pronto?",
|
||||
"waiting_directions": "Aguarde o arquivo de dados de rastreamento. Isto pode tomar algum tempo. Você pode sair da espera e recuperar o arquivo de rastreamento da tabela de comandos mais tarde.",
|
||||
"waiting_seconds": "Tempo decorrido: {{seconds}} segundos"
|
||||
@@ -185,6 +190,7 @@
|
||||
"offline_device": "Esta opção está bloqueada porque este dispositivo não está conectado",
|
||||
"time": "Tempo de atualização:",
|
||||
"title": "Atualização de firmware",
|
||||
"upgrade": "Melhorar",
|
||||
"wait_for_upgrade": "Você gostaria de esperar a conclusão da atualização?",
|
||||
"waiting_for_device": "Esperando que o dispositivo se reconecte"
|
||||
}
|
||||
|
||||
@@ -173,11 +173,10 @@ const BlinkModal = ({ show, toggleModal }) => {
|
||||
</CModalBody>
|
||||
<CModalFooter>
|
||||
<LoadingButton
|
||||
label={t('common.schedule')}
|
||||
label={isNow ? t('blink.blink') : t('common.schedule')}
|
||||
isLoadingLabel={t('common.loading_ellipsis')}
|
||||
isLoading={waiting}
|
||||
action={doAction}
|
||||
variant="outline"
|
||||
block={false}
|
||||
disabled={waiting}
|
||||
/>
|
||||
|
||||
@@ -449,7 +449,6 @@ const DeviceCommands = ({ selectedDeviceId }) => {
|
||||
date={chosenWifiScanDate}
|
||||
/>
|
||||
<ConfirmModal show={showConfirmModal} toggle={toggleConfirmModal} action={deleteCommand} />
|
||||
<CIcon name="cilNotes" className={styles.whiteIcon} size="lg" />
|
||||
</CWidgetDropdown>
|
||||
);
|
||||
};
|
||||
@@ -191,7 +191,7 @@ const ConfigureModal = ({ show, toggleModal }) => {
|
||||
color="primary"
|
||||
onClick={confirmingIfSure}
|
||||
>
|
||||
{t('common.submit')}
|
||||
{t('common.save')}
|
||||
</CButton>
|
||||
<CButton
|
||||
hidden={!checkingIfSure}
|
||||
@@ -199,7 +199,7 @@ const ConfigureModal = ({ show, toggleModal }) => {
|
||||
color="primary"
|
||||
onClick={() => doAction(false)}
|
||||
>
|
||||
{waiting && !doingNow ? 'Loading...' : 'Yes'} {' '}
|
||||
{waiting && !doingNow ? t('common.saving') : t('common.yes')} {' '}
|
||||
<CSpinner color="light" hidden={!waiting || doingNow} component="span" size="sm" />
|
||||
</CButton>
|
||||
<CButton color="secondary" onClick={toggleModal}>
|
||||
|
||||
36
src/components/CopyToClipboardButton/index.js
Normal file
36
src/components/CopyToClipboardButton/index.js
Normal file
@@ -0,0 +1,36 @@
|
||||
import React, { useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import CIcon from '@coreui/icons-react';
|
||||
import { cilClone } from '@coreui/icons';
|
||||
import PropTypes from 'prop-types';
|
||||
import { CButton, CPopover } from '@coreui/react';
|
||||
|
||||
const CopyToClipboardButton = ({content, size}) => {
|
||||
const { t } = useTranslation();
|
||||
const [result, setResult] = useState('');
|
||||
|
||||
const copyToClipboard = () => {
|
||||
navigator.clipboard.writeText(content);
|
||||
setResult(t('common.copied'));
|
||||
}
|
||||
|
||||
return (
|
||||
<CPopover content={t('common.copy_to_clipboard')}>
|
||||
<CButton onClick={copyToClipboard} size={size}>
|
||||
<CIcon content={cilClone} />
|
||||
{' '}{result || ''}
|
||||
</CButton>
|
||||
</CPopover>
|
||||
);
|
||||
}
|
||||
|
||||
CopyToClipboardButton.propTypes = {
|
||||
content: PropTypes.string.isRequired,
|
||||
size: PropTypes.string
|
||||
};
|
||||
|
||||
CopyToClipboardButton.defaultProps = {
|
||||
size: 'sm',
|
||||
};
|
||||
|
||||
export default CopyToClipboardButton;
|
||||
@@ -12,6 +12,7 @@ import TraceModal from 'components/TraceModal';
|
||||
import WifiScanModal from 'components/WifiScanModal';
|
||||
import BlinkModal from 'components/BlinkModal';
|
||||
import FactoryResetModal from 'components/FactoryResetModal';
|
||||
|
||||
import styles from './index.module.scss';
|
||||
|
||||
const DeviceActions = ({ selectedDeviceId }) => {
|
||||
3
src/components/DeviceActionCard/index.module.scss
Normal file
3
src/components/DeviceActionCard/index.module.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
.spacedRow {
|
||||
margin-top: 10px;
|
||||
}
|
||||
@@ -17,10 +17,11 @@ import {
|
||||
} from '@coreui/react';
|
||||
import CIcon from '@coreui/icons-react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { cilWindowMaximize, cilClone } from '@coreui/icons';
|
||||
import { cilWindowMaximize } from '@coreui/icons';
|
||||
import { prettyDate } from 'utils/helper';
|
||||
import axiosInstance from 'utils/axiosInstance';
|
||||
import { getToken } from 'utils/authHelper';
|
||||
import CopyToClipboardButton from 'components/CopyToClipboardButton';
|
||||
import DeviceConfigurationModal from './DeviceConfigurationModal';
|
||||
import styles from './index.module.scss';
|
||||
|
||||
@@ -29,7 +30,6 @@ const DeviceConfiguration = ({ selectedDeviceId }) => {
|
||||
const [collapse, setCollapse] = useState(false);
|
||||
const [showModal, setShowModal] = useState(false);
|
||||
const [device, setDevice] = useState(null);
|
||||
const [copyPasswordSuccess, setCopyPasswordSuccess] = useState('');
|
||||
|
||||
const toggle = (e) => {
|
||||
setCollapse(!collapse);
|
||||
@@ -40,12 +40,6 @@ const DeviceConfiguration = ({ selectedDeviceId }) => {
|
||||
setShowModal(!showModal);
|
||||
};
|
||||
|
||||
const copyPasswordToClipboard = () => {
|
||||
const password = device.devicePassword === '' ? 'openwifi' : device.devicePassword;
|
||||
navigator.clipboard.writeText(password);
|
||||
setCopyPasswordSuccess(t('common.copied'));
|
||||
};
|
||||
|
||||
const getDevice = () => {
|
||||
const options = {
|
||||
headers: {
|
||||
@@ -64,7 +58,6 @@ const DeviceConfiguration = ({ selectedDeviceId }) => {
|
||||
|
||||
useEffect(() => {
|
||||
if (selectedDeviceId) getDevice();
|
||||
setCopyPasswordSuccess(null);
|
||||
}, [selectedDeviceId]);
|
||||
|
||||
if (device) {
|
||||
@@ -73,7 +66,7 @@ const DeviceConfiguration = ({ selectedDeviceId }) => {
|
||||
<CCard>
|
||||
<CCardHeader>
|
||||
<CRow>
|
||||
<CCol><div className="text-value-lg">{t('configuration.details')}</div></CCol>
|
||||
<CCol><div className="text-value-lg">{t('configuration.title')}</div></CCol>
|
||||
<CCol>
|
||||
<div className={styles.alignRight}>
|
||||
<CPopover content={t('configuration.view_json')}>
|
||||
@@ -106,6 +99,7 @@ const DeviceConfiguration = ({ selectedDeviceId }) => {
|
||||
</CCol>
|
||||
<CCol xs="12" md="9">
|
||||
{device.serialNumber}
|
||||
<CopyToClipboardButton size="sm" content={device.serialNumber}/>
|
||||
</CCol>
|
||||
</CFormGroup>
|
||||
<CFormGroup row>
|
||||
@@ -149,17 +143,12 @@ const DeviceConfiguration = ({ selectedDeviceId }) => {
|
||||
</CCol>
|
||||
</CFormGroup>
|
||||
<CFormGroup row>
|
||||
<CCol md="3">
|
||||
<CCol md="3" className={styles.topPadding}>
|
||||
<CLabel>{t('configuration.device_password')} : </CLabel>
|
||||
</CCol>
|
||||
<CCol xs="12" md="9">
|
||||
{device.devicePassword === '' ? 'openwifi' : device.devicePassword}
|
||||
<CPopover content={t('common.copy_to_clipboard')}>
|
||||
<CButton onClick={copyPasswordToClipboard} size="sm">
|
||||
<CIcon content={cilClone} />
|
||||
</CButton>
|
||||
</CPopover>
|
||||
{copyPasswordSuccess}
|
||||
<CopyToClipboardButton size="sm" content={device?.devicePassword === '' ? 'openwifi' : device.devicePassword}/>
|
||||
</CCol>
|
||||
</CFormGroup>
|
||||
<CCollapse show={collapse}>
|
||||
|
||||
@@ -9,3 +9,7 @@
|
||||
.modalTitle {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.topPadding {
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
@@ -256,9 +256,7 @@ const DeviceLogs = ({ selectedDeviceId }) => {
|
||||
</CButton>
|
||||
</div>
|
||||
}
|
||||
>
|
||||
<CIcon name="cilList" className={styles.whiteIcon} size="lg" />
|
||||
</CWidgetDropdown>
|
||||
/>
|
||||
<DeleteLogModal
|
||||
serialNumber={selectedDeviceId}
|
||||
object="logs"
|
||||
|
||||
@@ -116,7 +116,7 @@ const ConfigureModal = ({ show, toggleModal }) => {
|
||||
color="primary"
|
||||
onClick={() => confirmingIfSure()}
|
||||
>
|
||||
{t('common.submit')}
|
||||
{t('factory_reset.reset')}
|
||||
</CButton>
|
||||
<CButton
|
||||
hidden={!checkingIfSure}
|
||||
@@ -124,7 +124,7 @@ const ConfigureModal = ({ show, toggleModal }) => {
|
||||
color="primary"
|
||||
onClick={() => doAction(false)}
|
||||
>
|
||||
{waiting && !doingNow ? 'Loading...' : 'Yes'} {' '}
|
||||
{waiting && !doingNow ? t('factory_reset.resetting') : t('common.yes')} {' '}
|
||||
<CSpinner color="light" hidden={!waiting || doingNow} component="span" size="sm" />
|
||||
</CButton>
|
||||
<CButton color="secondary" onClick={toggleModal}>
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next';
|
||||
import PropTypes from 'prop-types';
|
||||
import { CButton, CSpinner, CModalFooter } from '@coreui/react';
|
||||
|
||||
const UpgradeFooter = ({ isShown, isLoading, action, color, variant, block, toggleParent }) => {
|
||||
const UpgradeFooter = ({ isNow, isShown, isLoading, action, color, variant, block, toggleParent }) => {
|
||||
const { t } = useTranslation();
|
||||
const [askingIfSure, setAskingIfSure] = useState(false);
|
||||
|
||||
@@ -26,7 +26,7 @@ const UpgradeFooter = ({ isShown, isLoading, action, color, variant, block, togg
|
||||
onClick={() => confirmingIfSure()}
|
||||
block={block}
|
||||
>
|
||||
{t('common.submit')}
|
||||
{isNow ? t('upgrade.upgrade') : t('common.schedule')}
|
||||
</CButton>
|
||||
<CButton
|
||||
disabled={isLoading}
|
||||
@@ -46,6 +46,7 @@ const UpgradeFooter = ({ isShown, isLoading, action, color, variant, block, togg
|
||||
};
|
||||
|
||||
UpgradeFooter.propTypes = {
|
||||
isNow: PropTypes.bool.isRequired,
|
||||
isLoading: PropTypes.bool.isRequired,
|
||||
block: PropTypes.bool,
|
||||
action: PropTypes.func.isRequired,
|
||||
|
||||
@@ -218,6 +218,7 @@ const FirmwareUpgradeModal = ({ show, toggleModal }) => {
|
||||
</CRow>
|
||||
</CModalBody>
|
||||
<ButtonFooter
|
||||
isNow={isNow}
|
||||
isShown={show}
|
||||
isLoading={waitingForUpgrade}
|
||||
action={postUpgrade}
|
||||
|
||||
@@ -37,9 +37,9 @@ const DeviceStatisticsCard = ({ selectedDeviceId }) => {
|
||||
<CCardHeader>
|
||||
<CRow>
|
||||
<CCol>
|
||||
<div className="text-value-lg">{t('statistics.title')}</div>
|
||||
<div className={["text-value-lg", styles.cardTitle].join(" ")}>{t('statistics.title')}</div>
|
||||
</CCol>
|
||||
<CCol className={styles.alignRight}>
|
||||
<CCol className={styles.cardOptions}>
|
||||
<CDropdown className="m-1 btn-group">
|
||||
<CDropdownToggle>
|
||||
<CIcon name="cil-options" content={cilOptions} size="lg" color="primary" />
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
.alignRight {
|
||||
.cardOptions {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.cardTitle {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.statsBody {
|
||||
padding: 5%;
|
||||
}
|
||||
|
||||
@@ -124,11 +124,10 @@ const ActionModal = ({ show, toggleModal }) => {
|
||||
</CModalBody>
|
||||
<CModalFooter>
|
||||
<LoadingButton
|
||||
label={t('common.schedule')}
|
||||
label={isNow ? t('reboot.title') : t('common.schedule')}
|
||||
isLoadingLabel={t('common.loading_ellipsis')}
|
||||
isLoading={waiting}
|
||||
action={doAction}
|
||||
variant="outline"
|
||||
block={false}
|
||||
disabled={waiting}
|
||||
/>
|
||||
|
||||
@@ -5,3 +5,7 @@
|
||||
.spacedColumn {
|
||||
margin-top: 7px;
|
||||
}
|
||||
|
||||
.spacedDate {
|
||||
margin-top: 7px;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import {
|
||||
CModalFooter,
|
||||
CCol,
|
||||
CRow,
|
||||
CInvalidFeedback,
|
||||
CSelect,
|
||||
CSwitch,
|
||||
CForm,
|
||||
@@ -17,10 +16,8 @@ import {
|
||||
} from '@coreui/react';
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import DatePicker from 'react-widgets/DatePicker';
|
||||
import PropTypes from 'prop-types';
|
||||
import { useSelector } from 'react-redux';
|
||||
import { dateToUnix } from 'utils/helper';
|
||||
import 'react-widgets/styles.css';
|
||||
import { getToken } from 'utils/authHelper';
|
||||
import axiosInstance from 'utils/axiosInstance';
|
||||
@@ -39,11 +36,9 @@ const TraceModal = ({ show, toggleModal }) => {
|
||||
const [usingDuration, setUsingDuration] = useState(true);
|
||||
const [duration, setDuration] = useState(20);
|
||||
const [packets, setPackets] = useState(100);
|
||||
const [chosenDate, setChosenDate] = useState(new Date().toString());
|
||||
const [responseBody, setResponseBody] = useState('');
|
||||
const [chosenInterface, setChosenInterface] = useState('up');
|
||||
const [isDeviceConnected, setIsDeviceConnected] = useState(false);
|
||||
const [isNow, setIsNow] = useState(true);
|
||||
const [waitForTrace, setWaitForTrace] = useState(false);
|
||||
const [waitingForTrace, setWaitingForTrace] = useState(false);
|
||||
const [commandUuid, setCommandUuid] = useState(null);
|
||||
@@ -54,21 +49,10 @@ const TraceModal = ({ show, toggleModal }) => {
|
||||
setWaitForTrace(!waitForTrace);
|
||||
}
|
||||
|
||||
const toggleNow = () => {
|
||||
setIsNow(!isNow);
|
||||
}
|
||||
|
||||
const setDate = (date) => {
|
||||
if (date) {
|
||||
setChosenDate(date.toString());
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
setWaitForTrace(false);
|
||||
setHadSuccess(false);
|
||||
setHadFailure(false);
|
||||
setChosenDate(new Date().toString());
|
||||
setResponseBody('');
|
||||
setDuration(20);
|
||||
setPackets(100);
|
||||
@@ -85,7 +69,7 @@ const TraceModal = ({ show, toggleModal }) => {
|
||||
|
||||
const parameters = {
|
||||
serialNumber: selectedDeviceId,
|
||||
when: isNow ? 0 : dateToUnix(new Date(chosenDate)),
|
||||
when: 0,
|
||||
network: chosenInterface,
|
||||
};
|
||||
|
||||
@@ -235,39 +219,7 @@ const TraceModal = ({ show, toggleModal }) => {
|
||||
</CForm>
|
||||
</CCol>
|
||||
</CRow>
|
||||
<CRow className={styles.spacedRow}>
|
||||
<CCol md="8">
|
||||
<p className={styles.spacedText}>{t('common.execute_now')}</p>
|
||||
</CCol>
|
||||
<CCol>
|
||||
<CSwitch
|
||||
disabled={blockFields}
|
||||
color="primary"
|
||||
defaultChecked={isNow}
|
||||
onClick={toggleNow}
|
||||
labelOn={t('common.yes')}
|
||||
labelOff={t('common.no')}
|
||||
/>
|
||||
</CCol>
|
||||
</CRow>
|
||||
<CRow className={styles.spacedRow} hidden={isNow}>
|
||||
<CCol md="4" className={styles.spacedColumn}>
|
||||
<p>{t('common.date')}:</p>
|
||||
</CCol>
|
||||
<CCol xs="12" md="8">
|
||||
<DatePicker
|
||||
selected={new Date(chosenDate)}
|
||||
includeTime
|
||||
value={new Date(chosenDate)}
|
||||
placeholder="Select custom date"
|
||||
disabled={blockFields}
|
||||
onChange={(date) => setDate(date)}
|
||||
min={new Date()}
|
||||
/>
|
||||
</CCol>
|
||||
</CRow>
|
||||
<CInvalidFeedback>{t('common.need_date')}</CInvalidFeedback>
|
||||
<CRow className={styles.spacedRow} hidden={!isNow || !isDeviceConnected}>
|
||||
<CRow className={styles.spacedRow} hidden={!isDeviceConnected}>
|
||||
<CCol md="8">
|
||||
<p className={styles.spacedText}>
|
||||
{t('trace.wait_for_file')}
|
||||
@@ -292,11 +244,10 @@ const TraceModal = ({ show, toggleModal }) => {
|
||||
</CModalBody>
|
||||
<CModalFooter>
|
||||
<LoadingButton
|
||||
label="Schedule"
|
||||
isLoadingLabel="Loading..."
|
||||
label={t('trace.trace')}
|
||||
isLoadingLabel={t('common.loading_ellipsis')}
|
||||
isLoading={blockFields}
|
||||
action={doAction}
|
||||
variant="outline"
|
||||
block={false}
|
||||
disabled={blockFields}
|
||||
/>
|
||||
|
||||
@@ -195,7 +195,7 @@ const WifiScanModal = ({ show, toggleModal }) => {
|
||||
disabled={waiting}
|
||||
/>
|
||||
<CButton color="secondary" onClick={toggleModal}>
|
||||
{(!hadSuccess && !hadFailure && waiting) ? t('common.cancel') : t('common.close')}
|
||||
{(!hadSuccess && !hadFailure) ? t('common.cancel') : t('common.exit')}
|
||||
</CButton>
|
||||
</CModalFooter>
|
||||
</CModal>
|
||||
|
||||
@@ -4,10 +4,10 @@ import { useParams } from 'react-router-dom';
|
||||
import { CRow, CCol } from '@coreui/react';
|
||||
import DeviceHealth from 'components/DeviceHealth';
|
||||
import DeviceConfiguration from 'components/DeviceConfiguration';
|
||||
import DeviceCommandsLog from 'components/DeviceCommandsLog';
|
||||
import CommandHistory from 'components/CommandHistory';
|
||||
import DeviceLogs from 'components/DeviceLogs';
|
||||
import DeviceStatisticsCard from 'components/InterfaceStatistics';
|
||||
import DeviceActionCard from './DeviceActionCard';
|
||||
import DeviceActionCard from '../../components/DeviceActionCard';
|
||||
|
||||
const DevicePage = () => {
|
||||
const dispatch = useDispatch();
|
||||
@@ -36,7 +36,7 @@ const DevicePage = () => {
|
||||
<CRow>
|
||||
<CCol>
|
||||
<DeviceStatisticsCard selectedDeviceId={deviceId} />
|
||||
<DeviceCommandsLog selectedDeviceId={deviceId} />
|
||||
<CommandHistory selectedDeviceId={deviceId} />
|
||||
</CCol>
|
||||
</CRow>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user