Merge pull request #52 from stephb9959/main

Version 2.2.5
This commit is contained in:
Charles
2021-10-12 12:02:18 -04:00
committed by GitHub
14 changed files with 163 additions and 50 deletions

18
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "ucentral-client",
"version": "2.2.2",
"version": "2.2.5",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "ucentral-client",
"version": "2.2.2",
"version": "2.2.5",
"dependencies": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",
@@ -32,7 +32,7 @@
"react-tooltip": "^4.2.21",
"react-widgets": "^5.1.1",
"sass": "^1.35.1",
"ucentral-libs": "^0.9.41",
"ucentral-libs": "^0.9.58",
"uuid": "^8.3.2"
},
"devDependencies": {
@@ -14812,9 +14812,9 @@
}
},
"node_modules/ucentral-libs": {
"version": "0.9.41",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.9.41.tgz",
"integrity": "sha512-TXcxnZk9ornuaIN+vtRVJ/U3d5Dh76l6r3suEd/aLGlXvgW9iUwSqgBkA5kj/uV0wJXrZqxIr+hVsFndYvmtQQ==",
"version": "0.9.58",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.9.58.tgz",
"integrity": "sha512-K0bacVDGzjK//pddaMNVh2WDOep0/22tV1EhEfMKBAzaXgYEx2Ir3fg/GQzswCkfwg9i0kDWKiAXqRQ8pWLblg==",
"dependencies": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",
@@ -27653,9 +27653,9 @@
}
},
"ucentral-libs": {
"version": "0.9.41",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.9.41.tgz",
"integrity": "sha512-TXcxnZk9ornuaIN+vtRVJ/U3d5Dh76l6r3suEd/aLGlXvgW9iUwSqgBkA5kj/uV0wJXrZqxIr+hVsFndYvmtQQ==",
"version": "0.9.58",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.9.58.tgz",
"integrity": "sha512-K0bacVDGzjK//pddaMNVh2WDOep0/22tV1EhEfMKBAzaXgYEx2Ir3fg/GQzswCkfwg9i0kDWKiAXqRQ8pWLblg==",
"requires": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",

View File

@@ -1,6 +1,6 @@
{
"name": "ucentral-client",
"version": "2.2.2",
"version": "2.2.5",
"dependencies": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",
@@ -26,7 +26,7 @@
"react-tooltip": "^4.2.21",
"react-widgets": "^5.1.1",
"sass": "^1.35.1",
"ucentral-libs": "^0.9.41",
"ucentral-libs": "^0.9.58",
"uuid": "^8.3.2"
},
"main": "index.js",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View File

@@ -5,7 +5,7 @@
<link rel="icon" href="favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<title>uCentralGW</title>
<title>Gateway</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>

View File

@@ -22,6 +22,7 @@
"when_blink_leds": "Wann möchten Sie die LEDs blinken lassen?"
},
"commands": {
"command_success": "Befehl erfolgreich übermittelt",
"error": "Fehler beim Senden des Befehls!",
"error_delete_log": "Fehler beim Versuch zu löschen: {{error}}",
"event_queue": "Ereigniswarteschlange",
@@ -32,6 +33,7 @@
"common": {
"access_policy": "Zugangsrichtlinien",
"add": "Hinzufügen",
"add_items": "Füge Artikel hinzu",
"adding_ellipsis": "Hinzufügen ...",
"are_you_sure": "Bist du sicher?",
"back_to_login": "Zurück zur Anmeldung",
@@ -100,7 +102,12 @@
"hour": "stunde",
"hours": "std",
"id": "ID",
"invalid_file": "Die ausgewählte Datei war ungültig, bitte lesen Sie die Anweisungen und passen Sie Ihre Datei entsprechend an",
"invalid_pem": "Ihre PEM-Datei ist ungültig. Es sollte mit '-----BEGIN CERTIFICATE-----' ODER '-----BEGIN PRIVATE KEY-----' beginnen und mit '-----END CERTIFICATE--- enden. --' ODER '-----END PRIVATSCHLÜSSEL-----'",
"ip_address": "IP Adresse",
"ips": "IPs",
"item": "Artikel",
"items": "Artikel",
"items_per_page": "Objekte pro Seite:",
"last_dashboard_refresh": "Letzte Dashboard-Aktualisierung",
"later_tonight": "Später am Abend",
@@ -129,6 +136,7 @@
"overall_health": "Allgemeine Gesundheit",
"password_policy": "Kennwortrichtlinie",
"preview": "Vorschau",
"program": "Programm",
"recorded": "Verzeichnet",
"refresh": "Aktualisierung",
"refresh_device": "Gerät aktualisieren",
@@ -162,6 +170,7 @@
"unknown": "unbekannte",
"up_to_date": "Aktuelle Geräte",
"uptimes": "Betriebszeiten",
"use_file": "Datei verwenden",
"uuid": "UUID",
"vendors": "Anbieter",
"view_more": "Mehr anzeigen",
@@ -171,7 +180,10 @@
"add_configuration": "Konfiguration hinzufügen",
"add_new_block": "Neuen Konfigurationsblock hinzufügen",
"add_or_link": "Verlinken oder hinzufügen",
"add_radio": "Radio hinzufügen",
"ca_cert_explanation": "Bitte verwenden Sie eine .pem-Datei, die mit \"-----BEGIN CERTIFICATE-----\" beginnt und mit \"-----END CERTIFICATE-----\" endet. Das Ergebnis wird im Feld darunter angezeigt. Sie können das Zertifikat, das Sie verwenden möchten, auch direkt kopieren und einfügen.",
"cannot_delete": "Diese Konfiguration kann nicht gelöscht werden, da sie von mindestens einer Entität, einem Veranstaltungsort oder einem Gerät verwendet wird",
"choose_radio_band": "Welche Radioband möchten Sie gründen?",
"choose_section": "Welchen Abschnitt soll dieser Block enthalten?",
"configuration_browser": "Konfigurationsbrowser",
"configurations": "Konfigurationen",
@@ -193,6 +205,7 @@
"error_trying_delete": "Fehler beim Versuch zu löschen: {{error}}",
"error_update": "Fehler: {{error}}",
"explanation": "Erläuterung",
"key_pem_explanation": "Bitte .pem-Datei auswählen",
"last_configuration_change": "Konfigurationsänderung",
"last_configuration_download": "Letzter Konfigurations-Download",
"location": "Ort",
@@ -248,6 +261,7 @@
"entity": {
"add_child": "Untergeordnete Entität zu {{entityName}}hinzufügen",
"add_failure": "Fehler, der Server hat zurückgegeben: {{error}}",
"add_ips": "IPs verwalten",
"add_root": "Root-Entität hinzufügen",
"add_success": "Entität erfolgreich erstellt!",
"assigned_inventory": "Zugewiesenes Inventar",
@@ -257,13 +271,18 @@
"delete_success": "Entität erfolgreich gelöscht",
"delete_warning": "Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden",
"edit_failure": "Aktualisierung fehlgeschlagen : {{error}}",
"enter_here": "Geben Sie hier die IP(s) ein, die Sie hinzufügen möchten",
"entities": "Entitäten",
"entity": "Entität",
"error_fetch_entity": "Fehler beim Abrufen von Entitätsinformationen",
"error_fetching": "Fehler beim Abrufen von Entitäten",
"error_saving": "Fehler beim Speichern der Entität",
"ip_detection": "IP-Erkennung",
"ip_formats": "Sie können IPv4- oder IPv6-Adressen in den folgenden Formaten hinzufügen:",
"no_ips": "Keine IPs ausgewählt",
"not_assigned": "Nicht zugeordnet",
"only_unassigned": "Nur nicht zugewiesen",
"update_failure_error": "Fehler beim Versuch, die Entität zu aktualisieren: {{error}}",
"valid_serial": "Muss eine gültige Seriennummer sein (12 HEX-Zeichen)",
"venues": "Veranstaltungsorte"
},
@@ -318,6 +337,7 @@
"add_tag": "Tag erstellen",
"add_tag_to": "Neues Gerät zu {{name}}hinzufügen",
"add_venue": "Veranstaltungsort hinzufügen",
"assign_ent_ven": "Zu Entität oder Veranstaltungsort zuweisen",
"assign_entity_instructions": "Sie können die Entität, der dieses Tag zugewiesen werden soll, entweder über das Menü unten finden oder die UUID der Entität manuell in das Feld oben einfügen.",
"assign_error": "Fehler beim Versuch, Tag zuzuweisen",
"assign_to_entity": "Zu Entität zuweisen",
@@ -507,6 +527,7 @@
"waiting_for_device": "Warten, bis das Gerät wieder verbunden ist"
},
"user": {
"add_phone_number": "Telefonnummer hinzufügen",
"avatar": "Dein Avatar",
"avatar_file": "Dein Avatar (max. 2 MB)",
"create": "Benutzer erstellen",
@@ -534,6 +555,7 @@
"not_validated": "Nicht validiert",
"note": "Hinweis",
"password": "Passwort",
"phone_number": "Telefonnummer",
"provide_email": "Bitte geben Sie eine gültige E-Mail Adresse an",
"provide_password": "Bitte geben Sie ein gültiges Passwort ein",
"save_avatar": "Avatar speichern",

View File

@@ -22,6 +22,7 @@
"when_blink_leds": "When would you like to make the device LEDs blink?"
},
"commands": {
"command_success": "Command Submitted Successfully",
"error": "Error while submitting command!",
"error_delete_log": "Error while trying to delete: {{error}}",
"event_queue": "Event Queue",
@@ -32,6 +33,7 @@
"common": {
"access_policy": "Access Policy",
"add": "Add",
"add_items": "Add Items",
"adding_ellipsis": "Adding...",
"are_you_sure": "Are you sure?",
"back_to_login": "Back to Login",
@@ -100,7 +102,12 @@
"hour": "hour",
"hours": "hours",
"id": "Id",
"invalid_file": "The chosen file was invalid, please read the instructions and adjust your file accordingly",
"invalid_pem": "Your .pem file is invalid. It should start with '-----BEGIN CERTIFICATE-----' OR '-----BEGIN PRIVATE KEY-----' and it should end with '-----END CERTIFICATE-----' OR '-----END PRIVATE KEY-----'",
"ip_address": "IP Address",
"ips": "IPs",
"item": "Item",
"items": "Items",
"items_per_page": "Items per page: ",
"last_dashboard_refresh": "Last Dashboard Refresh",
"later_tonight": "Later tonight",
@@ -129,6 +136,7 @@
"overall_health": "Overall Health",
"password_policy": "Password Policy",
"preview": "Preview",
"program": "Program",
"recorded": "Recorded",
"refresh": "Refresh",
"refresh_device": "Refresh Device",
@@ -162,6 +170,7 @@
"unknown": "Unknown",
"up_to_date": "Up to Date Devices",
"uptimes": "Uptimes",
"use_file": "Use File",
"uuid": "UUID",
"vendors": "Vendors",
"view_more": "View more",
@@ -171,7 +180,10 @@
"add_configuration": "Add Configuration",
"add_new_block": "Add new Configuration Block",
"add_or_link": "Link or Add",
"add_radio": "Add Radio",
"ca_cert_explanation": "Please use a .pem file that starts with \"-----BEGIN CERTIFICATE-----\" and ends with \"-----END CERTIFICATE-----\". The result will be shown in the field below. You can also copy and paste the certificate you would like to use directly.",
"cannot_delete": "This configuration cannot be deleted because it is being used by at least one entity, venue or device",
"choose_radio_band": "What radio band you would like to create?",
"choose_section": "Which section you would like this block to contain?",
"configuration_browser": "Configuration Browser",
"configurations": "Configurations",
@@ -193,6 +205,7 @@
"error_trying_delete": "Error while trying to delete: {{error}}",
"error_update": "Error: {{error}}",
"explanation": "Explanation",
"key_pem_explanation": "Please select .pem file",
"last_configuration_change": "Config Change",
"last_configuration_download": "Last Configuration Download",
"location": "Location",
@@ -248,6 +261,7 @@
"entity": {
"add_child": "Add Child Entity to {{entityName}}",
"add_failure": "Error, the server returned : {{error}}",
"add_ips": "Manage IPs",
"add_root": "Add Root Entity",
"add_success": "Entity Successfully Created!",
"assigned_inventory": "Assigned Inventory",
@@ -257,13 +271,18 @@
"delete_success": "Entity Successfully Deleted",
"delete_warning": "Warning: this operation cannot be reverted",
"edit_failure": "Update unsuccessful : {{error}}",
"enter_here": "Enter the IP(s) you'd like to add here",
"entities": "Entities",
"entity": "Entity",
"error_fetch_entity": "Error while fetching entity information",
"error_fetching": "Error while fetching entities",
"error_saving": "Error while saving entity",
"ip_detection": "IP Detection",
"ip_formats": "You can add IPv4 or IPv6 addresses in the following formats:",
"no_ips": "No IPs selected",
"not_assigned": "Not Assigned",
"only_unassigned": "Only Unassigned",
"update_failure_error": "Error while trying to update entity: {{error}}",
"valid_serial": "Needs to be a valid serial number (12 HEX characters)",
"venues": "Venues"
},
@@ -318,6 +337,7 @@
"add_tag": "Create Tag",
"add_tag_to": "Add New Device to {{name}}",
"add_venue": "Add Venue",
"assign_ent_ven": "Assign to Entity or Venue",
"assign_entity_instructions": "You can either find the entity you want this tag to be assigned to by using the menu below, or you can manually paste the entity's UUID in the field above.",
"assign_error": "Error while trying to assign tag",
"assign_to_entity": "Assign to Entity",
@@ -507,6 +527,7 @@
"waiting_for_device": "Waiting for device to reconnect"
},
"user": {
"add_phone_number": "Add Phone Number",
"avatar": "Your Avatar",
"avatar_file": "Your Avatar (max. of 2 MB)",
"create": "Create User",
@@ -534,6 +555,7 @@
"not_validated": "Not Validated",
"note": "Note",
"password": "Password",
"phone_number": "Phone Number",
"provide_email": "Please provide a valid email address",
"provide_password": "Please provide a valid password",
"save_avatar": "Save Avatar",

View File

@@ -22,6 +22,7 @@
"when_blink_leds": "¿Cuándo desea que los LED del dispositivo parpadeen?"
},
"commands": {
"command_success": "Comando enviado con éxito",
"error": "¡Error al enviar el comando!",
"error_delete_log": "Error al intentar eliminar: {{error}}",
"event_queue": "Cola de eventos",
@@ -32,6 +33,7 @@
"common": {
"access_policy": "Política de acceso",
"add": "Añadir",
"add_items": "Agregar articulos",
"adding_ellipsis": "Añadiendo ...",
"are_you_sure": "¿Estás seguro?",
"back_to_login": "Atrás para iniciar sesión",
@@ -100,7 +102,12 @@
"hour": "hora",
"hours": "horas",
"id": "Carné de identidad",
"invalid_file": "El archivo elegido no es válido, lea las instrucciones y ajuste su archivo en consecuencia",
"invalid_pem": "Su archivo .pem no es válido. Debe comenzar con '----- BEGIN CERTIFICATE -----' O '----- BEGIN PRIVATE KEY -----' y debe terminar con '----- END CERTIFICATE --- - 'O' ----- FIN DE CLAVE PRIVADA ----- '",
"ip_address": "Dirección IP",
"ips": "IPs",
"item": "ít",
"items": "artículos",
"items_per_page": "Artículos por página:",
"last_dashboard_refresh": "Última actualización del panel",
"later_tonight": "Más tarde esta noche",
@@ -129,6 +136,7 @@
"overall_health": "Salud en general",
"password_policy": "Política de contraseñas",
"preview": "Avance",
"program": "Programa",
"recorded": "Grabado",
"refresh": "Refrescar",
"refresh_device": "Actualizar dispositivo",
@@ -162,6 +170,7 @@
"unknown": "Desconocido",
"up_to_date": "Dispositivos actualizados",
"uptimes": "Tiempos de actividad",
"use_file": "Usar archivo",
"uuid": "UUID",
"vendors": "Vendedores",
"view_more": "Ver más",
@@ -171,7 +180,10 @@
"add_configuration": "Agregar configuración",
"add_new_block": "Agregar nuevo bloque de configuración",
"add_or_link": "Vincular o agregar",
"add_radio": "Agregar radio",
"ca_cert_explanation": "Utilice un archivo .pem que comience con \"----- BEGIN CERTIFICATE -----\" y termine con \"----- END CERTIFICATE -----\". El resultado se mostrará en el campo siguiente. También puede copiar y pegar el certificado que le gustaría usar directamente.",
"cannot_delete": "Esta configuración no se puede eliminar porque está siendo utilizada por al menos una entidad, lugar o dispositivo",
"choose_radio_band": "¿Qué banda de radio te gustaría crear?",
"choose_section": "Qué sección le gustaría que contenga este bloque?",
"configuration_browser": "Navegador de configuración",
"configurations": "Configuraciones",
@@ -193,6 +205,7 @@
"error_trying_delete": "Error al intentar eliminar: {{error}}",
"error_update": "Error: {{error}}",
"explanation": "Explicación",
"key_pem_explanation": "Seleccione el archivo .pem",
"last_configuration_change": "CAMBIO DE CONFIGURACIÓN",
"last_configuration_download": "Descarga de la última configuración",
"location": "Ubicación",
@@ -248,6 +261,7 @@
"entity": {
"add_child": "Agregar entidad secundaria a {{entityName}}",
"add_failure": "Error, el servidor devolvió: {{error}}",
"add_ips": "Administrar direcciones IP",
"add_root": "Agregar entidad raíz",
"add_success": "¡Entidad creada con éxito!",
"assigned_inventory": "Inventario asignado",
@@ -257,13 +271,18 @@
"delete_success": "Entidad eliminada correctamente",
"delete_warning": "Advertencia: esta operación no se puede revertir",
"edit_failure": "Actualización fallida: {{error}}",
"enter_here": "Ingrese las IP que desea agregar aquí",
"entities": "entidades",
"entity": "Entidad",
"error_fetch_entity": "Error al obtener la información de la entidad",
"error_fetching": "Error al recuperar entidades",
"error_saving": "Error al guardar la entidad",
"ip_detection": "Detección de IP",
"ip_formats": "Puede agregar direcciones IPv4 o IPv6 en los siguientes formatos:",
"no_ips": "No se seleccionaron direcciones IP",
"not_assigned": "No asignado",
"only_unassigned": "Solo sin asignar",
"update_failure_error": "Error al intentar actualizar la entidad: {{error}}",
"valid_serial": "Debe ser un número de serie válido (12 caracteres HEX)",
"venues": "Sedes"
},
@@ -318,6 +337,7 @@
"add_tag": "Crear etiqueta",
"add_tag_to": "Agregar nuevo dispositivo a {{name}}",
"add_venue": "Agregar lugar",
"assign_ent_ven": "Asignar a entidad o lugar",
"assign_entity_instructions": "Puede encontrar la entidad a la que desea que se asigne esta etiqueta utilizando el menú a continuación, o puede pegar manualmente el UUID de la entidad en el campo de arriba.",
"assign_error": "Error al intentar asignar la etiqueta",
"assign_to_entity": "Asignar a entidad",
@@ -507,6 +527,7 @@
"waiting_for_device": "Esperando que el dispositivo se vuelva a conectar"
},
"user": {
"add_phone_number": "Agregar el número de teléfono",
"avatar": "Tu avatar",
"avatar_file": "Tu avatar (máx. De 2 MB)",
"create": "Crear usuario",
@@ -534,6 +555,7 @@
"not_validated": "No validado",
"note": "Nota",
"password": "Contraseña",
"phone_number": "Número de teléfono",
"provide_email": "Por favor ingrese su dirección de correo electrónico válida",
"provide_password": "Proporcione una contraseña válida",
"save_avatar": "Guardar avatar",

View File

@@ -22,6 +22,7 @@
"when_blink_leds": "Quand souhaitez-vous faire clignoter les LED de l'appareil ?"
},
"commands": {
"command_success": "Commande soumise avec succès",
"error": "Erreur lors de la soumission de la commande !",
"error_delete_log": "Erreur lors de la tentative de suppression : {{error}}",
"event_queue": "File d'attente d'événements",
@@ -32,6 +33,7 @@
"common": {
"access_policy": "Politique d'accès",
"add": "Ajouter",
"add_items": "Ajouter des articles",
"adding_ellipsis": "Ajouter...",
"are_you_sure": "Êtes-vous sûr?",
"back_to_login": "Retour connexion",
@@ -100,7 +102,12 @@
"hour": "heure",
"hours": "heures",
"id": "Id",
"invalid_file": "Le fichier choisi n'était pas valide, veuillez lire les instructions et ajuster votre fichier en conséquence",
"invalid_pem": "Votre fichier .pem n'est pas valide. Il doit commencer par '-----BEGIN CERTIFICATE-----' OU '-----BEGIN PRIVATE KEY-----' et il doit se terminer par '-----END CERTIFICATE--- --' OU '-----FIN CLÉ PRIVÉE-----'",
"ip_address": "Adresse IP",
"ips": "IPS",
"item": "article",
"items": "Articles",
"items_per_page": "Objets par page:",
"last_dashboard_refresh": "Dernière actualisation du tableau de bord",
"later_tonight": "Plus tard ce soir",
@@ -129,6 +136,7 @@
"overall_health": "Santé globale",
"password_policy": "Politique de mot de passe",
"preview": "Aperçu",
"program": "Programme",
"recorded": "Enregistré",
"refresh": "Rafraîchir",
"refresh_device": "Actualiser l'appareil",
@@ -162,6 +170,7 @@
"unknown": "Inconnu",
"up_to_date": "Appareils à jour",
"uptimes": "Disponibilités",
"use_file": "Utiliser le fichier",
"uuid": "UUID",
"vendors": "Vendeurs",
"view_more": "Afficher plus",
@@ -171,7 +180,10 @@
"add_configuration": "Ajouter une configuration",
"add_new_block": "Ajouter un nouveau bloc de configuration",
"add_or_link": "Lier ou ajouter",
"add_radio": "Ajouter une radio",
"ca_cert_explanation": "Veuillez utiliser un fichier .pem qui commence par \"-----BEGIN CERTIFICATE-----\" et se termine par \"-----END CERTIFICATE-----\". Le résultat sera affiché dans le champ ci-dessous. Vous pouvez également copier et coller le certificat que vous souhaitez utiliser directement.",
"cannot_delete": "Cette configuration ne peut pas être supprimée car elle est utilisée par au moins une entité, un lieu ou un appareil",
"choose_radio_band": "Quelle bande de radio voudriez-vous créer ?",
"choose_section": "Quelle section souhaitez-vous que ce bloc contienne?",
"configuration_browser": "Navigateur de configuration",
"configurations": "Les configurations",
@@ -193,6 +205,7 @@
"error_trying_delete": "Erreur lors de la tentative de suppression : {{error}}",
"error_update": "Erreur: {{error}}",
"explanation": "Explication",
"key_pem_explanation": "Veuillez sélectionner le fichier .pem",
"last_configuration_change": "Changement de configuration",
"last_configuration_download": "Téléchargement de la dernière configuration",
"location": "Emplacement",
@@ -248,6 +261,7 @@
"entity": {
"add_child": "Ajouter une entité enfant à {{entityName}}",
"add_failure": "Erreur, le serveur a renvoyé : {{error}}",
"add_ips": "Gérer les IP",
"add_root": "Ajouter une entité racine",
"add_success": "Entité créée avec succès !",
"assigned_inventory": "Inventaire assigné",
@@ -257,13 +271,18 @@
"delete_success": "Entité supprimée avec succès",
"delete_warning": "Attention : cette opération ne peut pas être annulée",
"edit_failure": "Échec de la mise à jour : {{error}}",
"enter_here": "Entrez les IP que vous souhaitez ajouter ici",
"entities": "Entités",
"entity": "Entité",
"error_fetch_entity": "Erreur lors de la récupération des informations sur l'entité",
"error_fetching": "Erreur lors de la récupération des entités",
"error_saving": "Erreur lors de l'enregistrement de l'entité",
"ip_detection": "Détection IP",
"ip_formats": "Vous pouvez ajouter des adresses IPv4 ou IPv6 aux formats suivants :",
"no_ips": "Aucune adresse IP sélectionnée",
"not_assigned": "Non attribué",
"only_unassigned": "Uniquement non attribué",
"update_failure_error": "Erreur lors de la tentative de mise à jour de l'entité : {{error}}",
"valid_serial": "Doit être un numéro de série valide (12 caractères HEX)",
"venues": "Les lieux"
},
@@ -318,6 +337,7 @@
"add_tag": "Créer un tag",
"add_tag_to": "Ajouter un nouvel appareil à {{name}}",
"add_venue": "Ajouter un lieu",
"assign_ent_ven": "Attribuer à une entité ou à un lieu",
"assign_entity_instructions": "Vous pouvez soit trouver l'entité à laquelle vous souhaitez que cette balise soit attribuée en utilisant le menu ci-dessous, soit coller manuellement l'UUID de l'entité dans le champ ci-dessus.",
"assign_error": "Erreur lors de la tentative d'attribution de balise",
"assign_to_entity": "Affecter à l'entité",
@@ -507,6 +527,7 @@
"waiting_for_device": "En attente de la reconnexion de l'appareil"
},
"user": {
"add_phone_number": "Ajouter un numéro de téléphone",
"avatar": "Votre avatar",
"avatar_file": "Votre Avatar (max. de 2 Mo)",
"create": "Créer un utilisateur",
@@ -534,6 +555,7 @@
"not_validated": "Pas valide",
"note": "Remarque",
"password": "Mot de passe",
"phone_number": "Numéro de téléphone",
"provide_email": "Veuillez fournir une adresse email valide",
"provide_password": "Veuillez fournir un mot de passe valide",
"save_avatar": "Enregistrer l'avatar",

View File

@@ -22,6 +22,7 @@
"when_blink_leds": "Quando você gostaria de fazer os LEDs do dispositivo piscarem?"
},
"commands": {
"command_success": "Comando enviado com sucesso",
"error": "Erro ao enviar comando!",
"error_delete_log": "Erro ao tentar excluir: {{error}}",
"event_queue": "Fila de Eventos",
@@ -32,6 +33,7 @@
"common": {
"access_policy": "Política de Acesso",
"add": "Adicionar",
"add_items": "Adicionar itens",
"adding_ellipsis": "Adicionando ...",
"are_you_sure": "Você tem certeza?",
"back_to_login": "Volte ao login",
@@ -100,7 +102,12 @@
"hour": "hora",
"hours": "horas",
"id": "identidade",
"invalid_file": "O arquivo escolhido era inválido, por favor, leia as instruções e ajuste seu arquivo de acordo",
"invalid_pem": "Seu arquivo .pem é inválido. Deve começar com '----- BEGIN CERTIFICATE -----' OU '----- BEGIN PRIVATE KEY -----' e deve terminar com '----- END CERTIFICATE --- - 'OU' ----- END PRIVATE KEY ----- '",
"ip_address": "Endereço de IP",
"ips": "IPs",
"item": "Item",
"items": "Unid",
"items_per_page": "Itens por página:",
"last_dashboard_refresh": "Última atualização do painel",
"later_tonight": "Logo à noite",
@@ -129,6 +136,7 @@
"overall_health": "Saúde geral",
"password_policy": "Política de Senha",
"preview": "Visualizar",
"program": "Programa",
"recorded": "Gravado",
"refresh": "REFRESH",
"refresh_device": "Atualizar dispositivo",
@@ -162,6 +170,7 @@
"unknown": "Desconhecido",
"up_to_date": "Dispositivos atualizados",
"uptimes": "Uptimes",
"use_file": "Usar arquivo",
"uuid": "UUID",
"vendors": "Vendedores",
"view_more": "Veja mais",
@@ -171,7 +180,10 @@
"add_configuration": "Adicionar configuração",
"add_new_block": "Adicionar novo bloco de configuração",
"add_or_link": "Link ou adicionar",
"add_radio": "Adicionar rádio",
"ca_cert_explanation": "Use um arquivo .pem que comece com \"----- BEGIN CERTIFICATE -----\" e termine com \"----- END CERTIFICATE -----\". O resultado será mostrado no campo abaixo. Você também pode copiar e colar o certificado que deseja usar diretamente.",
"cannot_delete": "Esta configuração não pode ser excluída porque está sendo usada por pelo menos uma entidade, local ou dispositivo",
"choose_radio_band": "Que banda de rádio você gostaria de criar?",
"choose_section": "Qual seção você gostaria que este bloco contivesse?",
"configuration_browser": "Navegador de configuração",
"configurations": "configurações",
@@ -193,6 +205,7 @@
"error_trying_delete": "Erro ao tentar excluir: {{error}}",
"error_update": "Erro: {{error}}",
"explanation": "Explicação",
"key_pem_explanation": "Selecione o arquivo .pem",
"last_configuration_change": "Mudança de configuração",
"last_configuration_download": "Último download da configuração",
"location": "Localização",
@@ -248,6 +261,7 @@
"entity": {
"add_child": "Adicionar Entidade Filha a {{entityName}}",
"add_failure": "Erro, o servidor retornou: {{error}}",
"add_ips": "Gerenciar IPs",
"add_root": "Adicionar Entidade Raiz",
"add_success": "Entidade criada com sucesso!",
"assigned_inventory": "Estoque Atribuído",
@@ -257,13 +271,18 @@
"delete_success": "Entidade excluída com sucesso",
"delete_warning": "Aviso: esta operação não pode ser revertida",
"edit_failure": "Atualização malsucedida: {{error}}",
"enter_here": "Digite o (s) IP (s) que deseja adicionar aqui",
"entities": "Entidades",
"entity": "Entidade",
"error_fetch_entity": "Erro ao buscar informações da entidade",
"error_fetching": "Erro ao buscar entidades",
"error_saving": "Erro ao salvar entidade",
"ip_detection": "Detecção de IP",
"ip_formats": "Você pode adicionar endereços IPv4 ou IPv6 nos seguintes formatos:",
"no_ips": "Nenhum IP selecionado",
"not_assigned": "Não atribuído",
"only_unassigned": "Apenas não atribuídos",
"update_failure_error": "Erro ao tentar atualizar a entidade: {{error}}",
"valid_serial": "Precisa ser um número de série válido (12 caracteres HEX)",
"venues": "Locais"
},
@@ -318,6 +337,7 @@
"add_tag": "Criar tag",
"add_tag_to": "Adicionar novo dispositivo a {{name}}",
"add_venue": "Adicionar Local",
"assign_ent_ven": "Atribuir à Entidade ou Local",
"assign_entity_instructions": "Você pode encontrar a entidade à qual deseja que esta tag seja atribuída usando o menu abaixo ou pode colar manualmente o UUID da entidade no campo acima.",
"assign_error": "Erro ao tentar atribuir tag",
"assign_to_entity": "Atribuir à Entidade",
@@ -507,6 +527,7 @@
"waiting_for_device": "Esperando que o dispositivo se reconecte"
},
"user": {
"add_phone_number": "ADICIONAR NÚMERO DE TELEFONE",
"avatar": "Seu avatar",
"avatar_file": "Seu avatar (máx. De 2 MB)",
"create": "Criar usuário",
@@ -534,6 +555,7 @@
"not_validated": "Não validado",
"note": "Nota",
"password": "Senha",
"phone_number": "Número de telefone",
"provide_email": "Por favor, forneça um endereço de e-mail válido",
"provide_password": "Forneça uma senha válida",
"save_avatar": "Salvar Avatar",

View File

@@ -24,12 +24,13 @@ import 'react-widgets/styles.css';
import axiosInstance from 'utils/axiosInstance';
import eventBus from 'utils/eventBus';
import SuccessfulActionModalBody from 'components/SuccessfulActionModalBody';
import { LoadingButton, useAuth, useDevice } from 'ucentral-libs';
import { LoadingButton, useAuth, useDevice, useToast } from 'ucentral-libs';
const BlinkModal = ({ show, toggleModal }) => {
const { t } = useTranslation();
const { currentToken, endpoints } = useAuth();
const { deviceSerialNumber } = useDevice();
const { addToast } = useToast();
const [isNow, setIsNow] = useState(false);
const [waiting, setWaiting] = useState(false);
const [chosenDate, setChosenDate] = useState(new Date().toString());
@@ -78,7 +79,13 @@ const BlinkModal = ({ show, toggleModal }) => {
{ headers },
)
.then(() => {
setResult('success');
addToast({
title: t('common.success'),
body: t('commands.command_success'),
color: 'success',
autohide: true,
});
toggleModal();
})
.catch(() => {
setResult('error');

View File

@@ -20,13 +20,14 @@ import { dateToUnix } from 'utils/helper';
import 'react-widgets/styles.css';
import axiosInstance from 'utils/axiosInstance';
import eventBus from 'utils/eventBus';
import { LoadingButton, useAuth, useDevice } from 'ucentral-libs';
import { LoadingButton, useAuth, useDevice, useToast } from 'ucentral-libs';
import SuccessfulActionModalBody from 'components/SuccessfulActionModalBody';
const ActionModal = ({ show, toggleModal }) => {
const { t } = useTranslation();
const { currentToken, endpoints } = useAuth();
const { deviceSerialNumber } = useDevice();
const { addToast } = useToast();
const [waiting, setWaiting] = useState(false);
const [result, setResult] = useState(null);
const [chosenDate, setChosenDate] = useState(new Date().toString());
@@ -72,7 +73,13 @@ const ActionModal = ({ show, toggleModal }) => {
{ headers },
)
.then(() => {
setResult('success');
addToast({
title: t('common.success'),
body: t('commands.command_success'),
color: 'success',
autohide: true,
});
toggleModal();
})
.catch(() => {
setResult('error');

View File

@@ -150,10 +150,15 @@ const FirmwareDashboard = () => {
? parsedData.unknownFirmwares.reduce((acc, firmware) => acc + firmware.value, 0)
: 0;
const devicesForAverage = parsedData.numberOfDevices - usingUnknownFirmwareFromArray;
parsedData.averageFirmwareAge =
parsedData.totalSecondsOld[0].value /
(devicesForAverage > 0 ? devicesForAverage : 1) /
(24 * 60 * 60);
if (parsedData.totalSecondsOld.length > 0) {
parsedData.averageFirmwareAge =
parsedData.totalSecondsOld[0].value /
(devicesForAverage > 0 ? devicesForAverage : 1) /
(24 * 60 * 60);
} else {
parsedData.averageFirmwareAge = 0;
}
// Latest firmware distribution
const latestDs = [];

View File

@@ -4,7 +4,7 @@ import { ApiStatusCard, useAuth, useToast } from 'ucentral-libs';
import { v4 as createUuid } from 'uuid';
import axiosInstance from 'utils/axiosInstance';
import { CRow, CCol } from '@coreui/react';
import { prettyDate, secondsToDetailed } from 'utils/helper';
import { secondsToDetailed } from 'utils/helper';
const SystemPage = () => {
const { t } = useTranslation();
@@ -55,7 +55,7 @@ const SystemPage = () => {
t('common.second'),
t('common.seconds'),
);
newSystem.start = prettyDate(newInfo.data.start);
newSystem.start = newInfo.data.start;
newSystem.subsystems = newSubs.data.list.sort((a, b) => {
if (a < b) return -1;
if (a > b) return 1;
@@ -120,37 +120,17 @@ const SystemPage = () => {
}
};
const getColumn = (index) => {
const rows = [];
for (let i = index; i < endpointsInfo.length; i += 3) {
rows.push(endpointsInfo[i]);
}
return rows;
};
useEffect(() => {
getAllInfo();
}, []);
return (
<CRow>
<CCol md="12" lg="6" xxl="4">
{getColumn(0).map((info) => (
<ApiStatusCard key={createUuid()} t={t} info={info} reload={reload} />
))}
</CCol>
<CCol md="12" lg="6" xxl="4">
{getColumn(1).map((info) => (
<ApiStatusCard key={createUuid()} t={t} info={info} reload={reload} />
))}
</CCol>
<CCol md="12" lg="6" xxl="4">
{getColumn(2).map((info) => (
<ApiStatusCard key={createUuid()} t={t} info={info} reload={reload} />
))}
</CCol>
{endpointsInfo.map((info) => (
<CCol sm="12" lg="6" xxl="4" key={createUuid()}>
<ApiStatusCard t={t} info={info} reload={reload} />
</CCol>
))}
</CRow>
);
};

View File

@@ -21,6 +21,11 @@ import {
import CIcon from '@coreui/icons-react';
import { cilX } from '@coreui/icons';
const parseDbm = (value) => {
if (value > -150 && value < 100) return value;
return (4294967295 - value) * -1;
};
const WifiAnalysisPage = () => {
const { t } = useTranslation();
const { deviceId } = useParams();
@@ -60,7 +65,6 @@ const WifiAnalysisPage = () => {
};
const parseAssociationStats = (json) => {
const dbmNumber = 4294967295;
const newParsedAssociationStats = [];
const newParsedRadioStats = [];
@@ -77,7 +81,7 @@ const WifiAnalysisPage = () => {
radio: i,
channel: radio.channel,
channelWidth: radio.channel_width,
noise: radio.noise ? (dbmNumber - radio.noise) * -1 : '-',
noise: radio.noise ? parseDbm(radio.noise) : '-',
txPower: radio.tx_power,
activeMs: secondsToLabel(radio?.active_ms ? Math.floor(radio.active_ms / 1000) : 0),
busyMs: secondsToLabel(radio?.busy_ms ? Math.floor(radio.busy_ms / 1000) : 0),
@@ -121,7 +125,7 @@ const WifiAnalysisPage = () => {
...extractIp(stat.data, association.bssid),
bssid: association.bssid,
ssid: ssid.ssid,
rssi: association.rssi ? (dbmNumber - association.rssi) * -1 : '-',
rssi: association.rssi ? parseDbm(association.rssi) : '-',
mode: ssid.mode,
rxBytes: cleanBytesString(association.rx_bytes, 0),
rxRate: association.rx_rate.bitrate,