mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui.git
synced 2025-11-01 11:17:51 +00:00
Compare commits
37 Commits
v2.3.0-RC1
...
v2.4.0-RC1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4cfc76b2d | ||
|
|
e02f939cb8 | ||
|
|
2deebea6c8 | ||
|
|
fc2b1bb23c | ||
|
|
848d94bad1 | ||
|
|
4bde6e2d1f | ||
|
|
e7694b644f | ||
|
|
07b3ac967a | ||
|
|
c955bd9126 | ||
|
|
ee69783a66 | ||
|
|
b43c86520f | ||
|
|
0952f62bf0 | ||
|
|
44be7ec634 | ||
|
|
cddb0e94fa | ||
|
|
1a9fb77361 | ||
|
|
f7392461ad | ||
|
|
b567dc26f8 | ||
|
|
a08f84f5b3 | ||
|
|
b1277ff2ac | ||
|
|
aea1550a77 | ||
|
|
262c1fe1e2 | ||
|
|
2d1e684c69 | ||
|
|
5c6fb8b9ec | ||
|
|
a6be8b08c3 | ||
|
|
6503c1b84d | ||
|
|
1fc1588303 | ||
|
|
ae03c5c33e | ||
|
|
2d2603ff27 | ||
|
|
55881b0c5e | ||
|
|
adf752db85 | ||
|
|
d211669244 | ||
|
|
99af39db69 | ||
|
|
e707239d12 | ||
|
|
d349e43523 | ||
|
|
d52df89ab3 | ||
|
|
ae48518271 | ||
|
|
d7238881dc |
@@ -26,6 +26,12 @@ spec:
|
|||||||
{{- with .Values.services.owgwui.labels }}
|
{{- with .Values.services.owgwui.labels }}
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.podAnnotations }}
|
||||||
|
annotations:
|
||||||
|
{{- with .Values.podAnnotations }}
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
|
|
||||||
containers:
|
containers:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ fullnameOverride: ""
|
|||||||
images:
|
images:
|
||||||
owgwui:
|
owgwui:
|
||||||
repository: tip-tip-wlan-cloud-ucentral.jfrog.io/owgw-ui
|
repository: tip-tip-wlan-cloud-ucentral.jfrog.io/owgw-ui
|
||||||
tag: main
|
tag: v2.4.0-RC1
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -69,6 +69,8 @@ tolerations: []
|
|||||||
|
|
||||||
affinity: {}
|
affinity: {}
|
||||||
|
|
||||||
|
podAnnotations: {}
|
||||||
|
|
||||||
# Application
|
# Application
|
||||||
public_env_variables:
|
public_env_variables:
|
||||||
DEFAULT_UCENTRALSEC_URL: https://ucentral.dpaas.arilia.com:16001
|
DEFAULT_UCENTRALSEC_URL: https://ucentral.dpaas.arilia.com:16001
|
||||||
|
|||||||
18
package-lock.json
generated
18
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "ucentral-client",
|
"name": "ucentral-client",
|
||||||
"version": "2.3.9",
|
"version": "2.4.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ucentral-client",
|
"name": "ucentral-client",
|
||||||
"version": "2.3.9",
|
"version": "2.4.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@coreui/coreui": "^3.4.0",
|
"@coreui/coreui": "^3.4.0",
|
||||||
"@coreui/icons": "^2.0.1",
|
"@coreui/icons": "^2.0.1",
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
"react-tooltip": "^4.2.21",
|
"react-tooltip": "^4.2.21",
|
||||||
"react-widgets": "^5.1.1",
|
"react-widgets": "^5.1.1",
|
||||||
"sass": "^1.35.1",
|
"sass": "^1.35.1",
|
||||||
"ucentral-libs": "^0.9.98",
|
"ucentral-libs": "^1.0.31",
|
||||||
"uuid": "^8.3.2"
|
"uuid": "^8.3.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -14842,9 +14842,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ucentral-libs": {
|
"node_modules/ucentral-libs": {
|
||||||
"version": "0.9.98",
|
"version": "1.0.31",
|
||||||
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.9.98.tgz",
|
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-1.0.31.tgz",
|
||||||
"integrity": "sha512-Fwn0sqFS2u5bIN5gtbslgAZnki2J4iz6ucGVJmKdvghm+E45+KYFC2yGWGNlBfBkKIsSDlSIIhQHFEo0JTTCZg==",
|
"integrity": "sha512-lTMPHkzXpWJrPJPUG1L9KsNPMiJGgZLJmblhh22OFQBSbjnrT28ub0Xt8LjAdRaSEAId+MfnGwA6coGMvpg6pA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@coreui/coreui": "^3.4.0",
|
"@coreui/coreui": "^3.4.0",
|
||||||
"@coreui/icons": "^2.0.1",
|
"@coreui/icons": "^2.0.1",
|
||||||
@@ -27716,9 +27716,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ucentral-libs": {
|
"ucentral-libs": {
|
||||||
"version": "0.9.98",
|
"version": "1.0.31",
|
||||||
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.9.98.tgz",
|
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-1.0.31.tgz",
|
||||||
"integrity": "sha512-Fwn0sqFS2u5bIN5gtbslgAZnki2J4iz6ucGVJmKdvghm+E45+KYFC2yGWGNlBfBkKIsSDlSIIhQHFEo0JTTCZg==",
|
"integrity": "sha512-lTMPHkzXpWJrPJPUG1L9KsNPMiJGgZLJmblhh22OFQBSbjnrT28ub0Xt8LjAdRaSEAId+MfnGwA6coGMvpg6pA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@coreui/coreui": "^3.4.0",
|
"@coreui/coreui": "^3.4.0",
|
||||||
"@coreui/icons": "^2.0.1",
|
"@coreui/icons": "^2.0.1",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ucentral-client",
|
"name": "ucentral-client",
|
||||||
"version": "2.3.9",
|
"version": "2.4.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@coreui/coreui": "^3.4.0",
|
"@coreui/coreui": "^3.4.0",
|
||||||
"@coreui/icons": "^2.0.1",
|
"@coreui/icons": "^2.0.1",
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
"react-tooltip": "^4.2.21",
|
"react-tooltip": "^4.2.21",
|
||||||
"react-widgets": "^5.1.1",
|
"react-widgets": "^5.1.1",
|
||||||
"sass": "^1.35.1",
|
"sass": "^1.35.1",
|
||||||
"ucentral-libs": "^0.9.98",
|
"ucentral-libs": "^1.0.31",
|
||||||
"uuid": "^8.3.2"
|
"uuid": "^8.3.2"
|
||||||
},
|
},
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
|
|||||||
@@ -52,8 +52,10 @@
|
|||||||
"commands_executed": "Ausgeführte Befehle",
|
"commands_executed": "Ausgeführte Befehle",
|
||||||
"compatible": "kompatibel",
|
"compatible": "kompatibel",
|
||||||
"completed": "Abgeschlossen",
|
"completed": "Abgeschlossen",
|
||||||
|
"concurrent_devices": "Gleichzeitige Geräte",
|
||||||
"config_id": "Konfigurations ID",
|
"config_id": "Konfigurations ID",
|
||||||
"confirm": "Bestätigen",
|
"confirm": "Bestätigen",
|
||||||
|
"confirm_stop_editing": "Möchten Sie die Bearbeitung wirklich beenden? Dadurch werden alle nicht gespeicherten Änderungen, die Sie vorgenommen haben, verworfen.",
|
||||||
"connected": "Verbindung wurde hergestellt",
|
"connected": "Verbindung wurde hergestellt",
|
||||||
"copied": "kopiert!",
|
"copied": "kopiert!",
|
||||||
"copy_to_clipboard": "In die Zwischenablage kopieren",
|
"copy_to_clipboard": "In die Zwischenablage kopieren",
|
||||||
@@ -71,7 +73,7 @@
|
|||||||
"details": "Einzelheiten",
|
"details": "Einzelheiten",
|
||||||
"device": "Gerät #{{serialNumber}}",
|
"device": "Gerät #{{serialNumber}}",
|
||||||
"device_dashboard": "Geräte-Dashboard",
|
"device_dashboard": "Geräte-Dashboard",
|
||||||
"device_delete": "Gerät Nr.{{serialNumber}}löschen",
|
"device_delete": "#{{serialNumber}}löschen",
|
||||||
"device_deleted": "Gerät erfolgreich gelöscht",
|
"device_deleted": "Gerät erfolgreich gelöscht",
|
||||||
"device_health": "Gerätezustand",
|
"device_health": "Gerätezustand",
|
||||||
"device_list": "Liste der Geräte",
|
"device_list": "Liste der Geräte",
|
||||||
@@ -102,17 +104,21 @@
|
|||||||
"forgot_password_title": "Passwort vergessen",
|
"forgot_password_title": "Passwort vergessen",
|
||||||
"from": "Von",
|
"from": "Von",
|
||||||
"general_error": "API-Fehler, wenden Sie sich bitte an Ihren Administrator",
|
"general_error": "API-Fehler, wenden Sie sich bitte an Ihren Administrator",
|
||||||
|
"go_back": "Geh zurück",
|
||||||
"hide": "verbergen",
|
"hide": "verbergen",
|
||||||
"hour": "stunde",
|
"hour": "stunde",
|
||||||
"hours": "std",
|
"hours": "std",
|
||||||
"id": "ID",
|
"id": "ID",
|
||||||
|
"invalid_credentials": "Ungültiger Benutzername und / oder Passwort",
|
||||||
"invalid_file": "Die ausgewählte Datei war ungültig, bitte lesen Sie die Anweisungen und passen Sie Ihre Datei entsprechend an",
|
"invalid_file": "Die ausgewählte Datei war ungültig, bitte lesen Sie die Anweisungen und passen Sie Ihre Datei entsprechend an",
|
||||||
|
"invalid_password": "Dieses Passwort entspricht nicht den grundlegenden Passwortregeln. Bitte besuchen Sie unsere Seite Passwortrichtlinien, um mehr zu erfahren",
|
||||||
"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-----'",
|
"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",
|
"ip_address": "IP Adresse",
|
||||||
"ips": "IPs",
|
"ips": "IPs",
|
||||||
"item": "Artikel",
|
"item": "Artikel",
|
||||||
"items": "Artikel",
|
"items": "Artikel",
|
||||||
"items_per_page": "Objekte pro Seite:",
|
"items_per_page": "Objekte pro Seite:",
|
||||||
|
"key": "Schlüssel",
|
||||||
"last_dashboard_refresh": "Letzte Dashboard-Aktualisierung",
|
"last_dashboard_refresh": "Letzte Dashboard-Aktualisierung",
|
||||||
"later_tonight": "Später am Abend",
|
"later_tonight": "Später am Abend",
|
||||||
"latest": "Neueste",
|
"latest": "Neueste",
|
||||||
@@ -121,8 +127,10 @@
|
|||||||
"loading_more_ellipsis": "Mehr laden ...",
|
"loading_more_ellipsis": "Mehr laden ...",
|
||||||
"logout": "Ausloggen",
|
"logout": "Ausloggen",
|
||||||
"mac": "MAC-Adresse",
|
"mac": "MAC-Adresse",
|
||||||
|
"main": "Main",
|
||||||
"manufacturer": "Hersteller",
|
"manufacturer": "Hersteller",
|
||||||
"memory_used": "Verwendeter Speicher",
|
"memory_used": "Verwendeter Speicher",
|
||||||
|
"min_max": "Min: {{min}}, Max: {{max}}",
|
||||||
"minute": "Minute",
|
"minute": "Minute",
|
||||||
"minutes": "protokoll",
|
"minutes": "protokoll",
|
||||||
"modified": "Geändert",
|
"modified": "Geändert",
|
||||||
@@ -155,7 +163,9 @@
|
|||||||
"second": "zweite",
|
"second": "zweite",
|
||||||
"seconds": "sekunden",
|
"seconds": "sekunden",
|
||||||
"seconds_elapsed": "Sekunden verstrichen",
|
"seconds_elapsed": "Sekunden verstrichen",
|
||||||
|
"see_details": "Siehe Einzelheiten",
|
||||||
"select": "wählen",
|
"select": "wählen",
|
||||||
|
"serial_num": "Seriennummer",
|
||||||
"serial_number": "Seriennummer",
|
"serial_number": "Seriennummer",
|
||||||
"show_all": "Zeige alles",
|
"show_all": "Zeige alles",
|
||||||
"socket_connection_closed": "Verbindung geschlossen!",
|
"socket_connection_closed": "Verbindung geschlossen!",
|
||||||
@@ -205,6 +215,7 @@
|
|||||||
"device_password": "Passwort",
|
"device_password": "Passwort",
|
||||||
"device_type": "Gerätetyp",
|
"device_type": "Gerätetyp",
|
||||||
"device_types": "Gerätetypen",
|
"device_types": "Gerätetypen",
|
||||||
|
"devices_affected": "Von dieser Konfiguration betroffene Geräte:",
|
||||||
"edit_configuration": "Konfiguration bearbeiten",
|
"edit_configuration": "Konfiguration bearbeiten",
|
||||||
"error_delete": "Fehler beim Versuch zu löschen: {{error}}",
|
"error_delete": "Fehler beim Versuch zu löschen: {{error}}",
|
||||||
"error_fetching_config": "Fehler beim Abrufen der Konfiguration",
|
"error_fetching_config": "Fehler beim Abrufen der Konfiguration",
|
||||||
@@ -232,6 +243,7 @@
|
|||||||
"used_by": "Benutzt von",
|
"used_by": "Benutzt von",
|
||||||
"used_by_details": "{{entities}} Entitäten, {{venues}} Veranstaltungsorte und {{devices}} Geräte",
|
"used_by_details": "{{entities}} Entitäten, {{venues}} Veranstaltungsorte und {{devices}} Geräte",
|
||||||
"uuid": "Konfigurations-ID",
|
"uuid": "Konfigurations-ID",
|
||||||
|
"view_affected_devices": "Betroffene Geräte anzeigen",
|
||||||
"view_config": "Konfiguration anzeigen",
|
"view_config": "Konfiguration anzeigen",
|
||||||
"view_in_use": "In Verwendung anzeigen",
|
"view_in_use": "In Verwendung anzeigen",
|
||||||
"view_json": "Rohe Konfiguration anzeigen"
|
"view_json": "Rohe Konfiguration anzeigen"
|
||||||
@@ -250,6 +262,7 @@
|
|||||||
"access_pin": "Zugangs-PIN",
|
"access_pin": "Zugangs-PIN",
|
||||||
"add_contact": "Kontakt hinzufügen",
|
"add_contact": "Kontakt hinzufügen",
|
||||||
"create_contact": "Kontakt erstellen",
|
"create_contact": "Kontakt erstellen",
|
||||||
|
"currently_selected_contact": "Aktuell ausgewählter Kontakt: {{contact}}",
|
||||||
"delete": "Kontakt löschen?",
|
"delete": "Kontakt löschen?",
|
||||||
"error_assign": "Fehler beim Versuch, Kontakt zuzuweisen: {{error}}",
|
"error_assign": "Fehler beim Versuch, Kontakt zuzuweisen: {{error}}",
|
||||||
"error_creation": "Fehler beim Versuch, einen Kontakt zu erstellen: {{error}}",
|
"error_creation": "Fehler beim Versuch, einen Kontakt zu erstellen: {{error}}",
|
||||||
@@ -287,8 +300,12 @@
|
|||||||
"healthchecks_title": "Healthchecks löschen"
|
"healthchecks_title": "Healthchecks löschen"
|
||||||
},
|
},
|
||||||
"device": {
|
"device": {
|
||||||
|
"certificate_explanation": "Zertifikate der angeschlossenen Geräte",
|
||||||
"error_fetching_device": "Fehler beim Abrufen der Geräteinformationen: {{error}}",
|
"error_fetching_device": "Fehler beim Abrufen der Geräteinformationen: {{error}}",
|
||||||
"error_fetching_devices": "Fehler beim Abrufen von Geräten: {{error}}"
|
"error_fetching_devices": "Fehler beim Abrufen von Geräten: {{error}}",
|
||||||
|
"health_explanation": "Zustand der angeschlossenen Geräte",
|
||||||
|
"memory_explanation": "Von angeschlossenen Geräten belegter Speicher",
|
||||||
|
"uptimes_explanation": "Zeit, zu der verbundene Geräte aktiv und verbunden waren"
|
||||||
},
|
},
|
||||||
"device_logs": {
|
"device_logs": {
|
||||||
"log": "Protokoll",
|
"log": "Protokoll",
|
||||||
@@ -309,10 +326,12 @@
|
|||||||
"delete_warning": "Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden",
|
"delete_warning": "Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden",
|
||||||
"edit_failure": "Aktualisierung fehlgeschlagen : {{error}}",
|
"edit_failure": "Aktualisierung fehlgeschlagen : {{error}}",
|
||||||
"enter_here": "Geben Sie hier die IP(s) ein, die Sie hinzufügen möchten",
|
"enter_here": "Geben Sie hier die IP(s) ein, die Sie hinzufügen möchten",
|
||||||
|
"entire_tree": "Seitenverzeichnis",
|
||||||
"entities": "Entitäten",
|
"entities": "Entitäten",
|
||||||
"entity": "Entität",
|
"entity": "Entität",
|
||||||
"error_fetch_entity": "Fehler beim Abrufen von Entitätsinformationen",
|
"error_fetch_entity": "Fehler beim Abrufen von Entitätsinformationen",
|
||||||
"error_fetching": "Fehler beim Abrufen von Entitäten",
|
"error_fetching": "Fehler beim Abrufen von Entitäten",
|
||||||
|
"error_fetching_map": "Fehler beim Abrufen der Karte: {{error}}",
|
||||||
"error_saving": "Fehler beim Speichern der Entität",
|
"error_saving": "Fehler beim Speichern der Entität",
|
||||||
"higher_priority": "Stellen Sie eine höhere Priorität ein",
|
"higher_priority": "Stellen Sie eine höhere Priorität ein",
|
||||||
"ip_detection": "IP-Erkennung",
|
"ip_detection": "IP-Erkennung",
|
||||||
@@ -324,6 +343,7 @@
|
|||||||
"only_unassigned": "Nur nicht zugewiesen",
|
"only_unassigned": "Nur nicht zugewiesen",
|
||||||
"select_entity": "Wählen Sie diese Entität aus",
|
"select_entity": "Wählen Sie diese Entität aus",
|
||||||
"selected_entity": "Ausgewählte Einheit",
|
"selected_entity": "Ausgewählte Einheit",
|
||||||
|
"selected_map": "Ausgewählte Karte",
|
||||||
"update_failure_error": "Fehler beim Versuch, die Entität zu aktualisieren: {{error}}",
|
"update_failure_error": "Fehler beim Versuch, die Entität zu aktualisieren: {{error}}",
|
||||||
"valid_serial": "Muss eine gültige Seriennummer sein (12 HEX-Zeichen)",
|
"valid_serial": "Muss eine gültige Seriennummer sein (12 HEX-Zeichen)",
|
||||||
"venues": "Veranstaltungsorte"
|
"venues": "Veranstaltungsorte"
|
||||||
@@ -336,6 +356,7 @@
|
|||||||
"warning": "Achtung: Nach dem Absenden kann dies nicht rückgängig gemacht werden"
|
"warning": "Achtung: Nach dem Absenden kann dies nicht rückgängig gemacht werden"
|
||||||
},
|
},
|
||||||
"firmware": {
|
"firmware": {
|
||||||
|
"age_explanation": "Durchschnittliche Anzahl der Tage für alle Geräte, von denen wir diesen Wert erhalten können",
|
||||||
"average_age": "Durchschnittliches Firmware-Alter",
|
"average_age": "Durchschnittliches Firmware-Alter",
|
||||||
"choose_custom": "Wählen",
|
"choose_custom": "Wählen",
|
||||||
"details_title": "Bild #{{image}} Details",
|
"details_title": "Bild #{{image}} Details",
|
||||||
@@ -348,9 +369,11 @@
|
|||||||
"image": "Bild",
|
"image": "Bild",
|
||||||
"image_date": "Bilddatum",
|
"image_date": "Bilddatum",
|
||||||
"installed_firmware": "Installierte Firmware",
|
"installed_firmware": "Installierte Firmware",
|
||||||
|
"latest_explanation": "Geräte, auf denen erkannte Firmware in der neuesten Version ausgeführt wird",
|
||||||
"latest_version_installed": "Neueste Version installiert Version",
|
"latest_version_installed": "Neueste Version installiert Version",
|
||||||
"newer_firmware_available": "Neuere Versionen verfügbar",
|
"newer_firmware_available": "Neuere Versionen verfügbar",
|
||||||
"reinstall_latest": "Neu installieren",
|
"reinstall_latest": "Neu installieren",
|
||||||
|
"release": "Veröffentlichung",
|
||||||
"revision": "Revision",
|
"revision": "Revision",
|
||||||
"show_dev": "Dev-Releases anzeigen",
|
"show_dev": "Dev-Releases anzeigen",
|
||||||
"size": "Größe",
|
"size": "Größe",
|
||||||
@@ -457,7 +480,8 @@
|
|||||||
"unassigned_deleted_devices": "{{number}} Geräte gelöscht und nicht zugewiesen",
|
"unassigned_deleted_devices": "{{number}} Geräte gelöscht und nicht zugewiesen",
|
||||||
"unassigned_tags": "Nicht zugewiesene Tags",
|
"unassigned_tags": "Nicht zugewiesene Tags",
|
||||||
"validating_import_file": "Importdatei und -daten werden validiert...",
|
"validating_import_file": "Importdatei und -daten werden validiert...",
|
||||||
"venue": "Tagungsort"
|
"venue": "Tagungsort",
|
||||||
|
"view_in_gateway": "Im Gateway anzeigen"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"add": "Ort hinzufügen",
|
"add": "Ort hinzufügen",
|
||||||
@@ -465,13 +489,16 @@
|
|||||||
"city": "Stadt",
|
"city": "Stadt",
|
||||||
"country": "Land",
|
"country": "Land",
|
||||||
"create": "Standort erstellen",
|
"create": "Standort erstellen",
|
||||||
|
"currently_selected": "Aktuell ausgewählter Standort: {{location}}",
|
||||||
"delete": "Ort löschen?",
|
"delete": "Ort löschen?",
|
||||||
"error_assign": "Fehler beim Versuch, den Standort zuzuweisen: {{error}}",
|
"error_assign": "Fehler beim Versuch, den Standort zuzuweisen: {{error}}",
|
||||||
"error_creation": "Fehler beim Versuch, Standorte zu erstellen: {{error}}",
|
"error_creation": "Fehler beim Versuch, Standorte zu erstellen: {{error}}",
|
||||||
"error_delete": "Fehler beim Löschen des Standorts: {{error}}",
|
"error_delete": "Fehler beim Löschen des Standorts: {{error}}",
|
||||||
"error_fetching_single": "Fehler beim Versuch, den Standort abzurufen: {{error}}",
|
"error_fetching_single": "Fehler beim Versuch, den Standort abzurufen: {{error}}",
|
||||||
"geocode": "GeoCode",
|
"geocode": "GeoCode",
|
||||||
|
"mobiles": "MOBILES",
|
||||||
"no_associated": "Kein zugeordneter Standort",
|
"no_associated": "Kein zugeordneter Standort",
|
||||||
|
"phones": "Telefone",
|
||||||
"postal": "Postleitzahl",
|
"postal": "Postleitzahl",
|
||||||
"search": "Suchen Sie nach Standorten, um die Felder unten automatisch auszufüllen",
|
"search": "Suchen Sie nach Standorten, um die Felder unten automatisch auszufüllen",
|
||||||
"state": "Zustand",
|
"state": "Zustand",
|
||||||
@@ -533,6 +560,59 @@
|
|||||||
"settings": {
|
"settings": {
|
||||||
"title": "die Einstellungen"
|
"title": "die Einstellungen"
|
||||||
},
|
},
|
||||||
|
"simulation": {
|
||||||
|
"add": "Simulation hinzufügen",
|
||||||
|
"cancel": "Stornieren",
|
||||||
|
"cancel_success": "Simulationslauf erfolgreich abgebrochen!",
|
||||||
|
"check_ongoing_sims": "Folge laufender Sim",
|
||||||
|
"client_interval": "Kundenintervall",
|
||||||
|
"delete_simulation": "Sim löschen. {{name}}",
|
||||||
|
"end": "Endete",
|
||||||
|
"error_creating": "Fehler beim Erstellen der Simulation: {{error}}",
|
||||||
|
"error_delete": "Fehler beim Löschen der Simulation: {{error}}",
|
||||||
|
"error_devices": "Fehler Geräte",
|
||||||
|
"error_edit": "Fehler beim Versuch, die Simulation zu speichern: {{error}}",
|
||||||
|
"error_edit_run": "Fehler beim Versuch, den Ausführungsstatus zu ändern: {{error}}",
|
||||||
|
"error_fetching_simulations": "Fehler beim Abrufen der Simulationen: {{error}}",
|
||||||
|
"error_start_run": "Fehler beim Versuch, einen Simulationslauf zu starten: {{error}}",
|
||||||
|
"gateway": "Tor",
|
||||||
|
"healtcheck_interval": "Healthcheck-Intervall",
|
||||||
|
"keep_alive": "Bleib am Leben",
|
||||||
|
"last_refresh": "Letzte Aktualisierung",
|
||||||
|
"length": "Länge",
|
||||||
|
"live_devices": "Live-Geräte",
|
||||||
|
"mac_prefix": "MAC-Präfix",
|
||||||
|
"max_associations": "max. Verbände",
|
||||||
|
"max_clients": "Max. Kunden",
|
||||||
|
"messages_transmitted": "Gesendete Nachrichten",
|
||||||
|
"min_associations": "Mindest. Verbände",
|
||||||
|
"min_clients": "Mindest. Kunden",
|
||||||
|
"pause": "Pause",
|
||||||
|
"pause_success": "Lauf pausiert!",
|
||||||
|
"prefix_length": "Erforderlich, muss eine Länge von 6 Zeichen haben",
|
||||||
|
"previous_runs": "Vorherige Läufe",
|
||||||
|
"received": "empfangen",
|
||||||
|
"received_messages": "Erhaltene Nachrichten",
|
||||||
|
"reconnect_interval": "Wiederverbindungsintervall",
|
||||||
|
"resume": "Fortsetzen",
|
||||||
|
"resume_success": "Lauf wieder aufgenommen!",
|
||||||
|
"run": "Simulationslauf",
|
||||||
|
"run_simulation": "Simulation ausführen",
|
||||||
|
"started": "gestartet",
|
||||||
|
"state_interval": "Zustandsintervall",
|
||||||
|
"stop": "Halt",
|
||||||
|
"stop_success": "Lauf gestoppt!",
|
||||||
|
"success_creating": "Simulation erfolgreich erstellt!",
|
||||||
|
"success_run_start": "Erfolgreich gestarteter Lauf!",
|
||||||
|
"successful_delete": "Simulation erfolgreich gelöscht!",
|
||||||
|
"successful_edit": "Erfolgreich bearbeitete Simulation!",
|
||||||
|
"threads": "Themen",
|
||||||
|
"time_full_devices": "Zeit für volle Geräte",
|
||||||
|
"title": "Simulationen",
|
||||||
|
"transmitted": "Übertragen",
|
||||||
|
"valid_cert": "Gültiges Zertifikat",
|
||||||
|
"valid_key": "Gültiger Schlüssel"
|
||||||
|
},
|
||||||
"statistics": {
|
"statistics": {
|
||||||
"data": "Daten (KB)",
|
"data": "Daten (KB)",
|
||||||
"latest_statistics": "Neueste Statistiken",
|
"latest_statistics": "Neueste Statistiken",
|
||||||
@@ -606,7 +686,7 @@
|
|||||||
"check_phone": "Bitte überprüfen Sie Ihr Telefon auf Ihren Validierungscode",
|
"check_phone": "Bitte überprüfen Sie Ihr Telefon auf Ihren Validierungscode",
|
||||||
"confirm_new_password": "Bestätige neues Passwort",
|
"confirm_new_password": "Bestätige neues Passwort",
|
||||||
"create": "Benutzer erstellen",
|
"create": "Benutzer erstellen",
|
||||||
"create_failure": "Fehler beim Erstellen des Benutzers. Bitte stellen Sie sicher, dass diese E-Mail-Adresse nicht bereits mit einem Konto verknüpft ist.",
|
"create_failure": "Fehler beim Erstellen des Benutzers: {{error}}",
|
||||||
"create_success": "Benutzer erfolgreich erstellt",
|
"create_success": "Benutzer erfolgreich erstellt",
|
||||||
"creating": "Benutzer erstellen ...",
|
"creating": "Benutzer erstellen ...",
|
||||||
"delete_avatar": "Avatar löschen",
|
"delete_avatar": "Avatar löschen",
|
||||||
@@ -620,6 +700,7 @@
|
|||||||
"email_address": "E-Mail-Addresse",
|
"email_address": "E-Mail-Addresse",
|
||||||
"enter_new_phone": "Geben Sie Ihre neue Telefonnummer ein:",
|
"enter_new_phone": "Geben Sie Ihre neue Telefonnummer ein:",
|
||||||
"error_fetching_users": "Fehler beim Abrufen der Nutzer: {{error}}",
|
"error_fetching_users": "Fehler beim Abrufen der Nutzer: {{error}}",
|
||||||
|
"error_retrieving": "Fehler beim Abrufen des Benutzers",
|
||||||
"error_sending_code": "Fehler beim Versuch, den Validierungscode zu senden. Bitte bestätigen Sie, dass Ihre Telefonnummer gültig ist.",
|
"error_sending_code": "Fehler beim Versuch, den Validierungscode zu senden. Bitte bestätigen Sie, dass Ihre Telefonnummer gültig ist.",
|
||||||
"force_password_change": "Passwortänderung bei der Anmeldung erzwingen",
|
"force_password_change": "Passwortänderung bei der Anmeldung erzwingen",
|
||||||
"id": "Benutzeridentifikation.",
|
"id": "Benutzeridentifikation.",
|
||||||
|
|||||||
@@ -52,8 +52,10 @@
|
|||||||
"commands_executed": "Commands Executed",
|
"commands_executed": "Commands Executed",
|
||||||
"compatible": "Compatible",
|
"compatible": "Compatible",
|
||||||
"completed": "Completed",
|
"completed": "Completed",
|
||||||
|
"concurrent_devices": "Concurrent Devices",
|
||||||
"config_id": "Config. Id",
|
"config_id": "Config. Id",
|
||||||
"confirm": "Confirm",
|
"confirm": "Confirm",
|
||||||
|
"confirm_stop_editing": "Are you sure you want to stop editing? This will cancel any unsaved changes you have made.",
|
||||||
"connected": "Connected",
|
"connected": "Connected",
|
||||||
"copied": "Copied!",
|
"copied": "Copied!",
|
||||||
"copy_to_clipboard": "Copy to clipboard",
|
"copy_to_clipboard": "Copy to clipboard",
|
||||||
@@ -71,7 +73,7 @@
|
|||||||
"details": "Details",
|
"details": "Details",
|
||||||
"device": "Device #{{serialNumber}}",
|
"device": "Device #{{serialNumber}}",
|
||||||
"device_dashboard": "Device Dashboard",
|
"device_dashboard": "Device Dashboard",
|
||||||
"device_delete": "Delete Device #{{serialNumber}}",
|
"device_delete": "Delete #{{serialNumber}}",
|
||||||
"device_deleted": "Device Successfully Deleted",
|
"device_deleted": "Device Successfully Deleted",
|
||||||
"device_health": "Device Health",
|
"device_health": "Device Health",
|
||||||
"device_list": "List of Devices",
|
"device_list": "List of Devices",
|
||||||
@@ -102,17 +104,21 @@
|
|||||||
"forgot_password_title": "Forgot Password",
|
"forgot_password_title": "Forgot Password",
|
||||||
"from": "From",
|
"from": "From",
|
||||||
"general_error": "API Error, please consult your administrator",
|
"general_error": "API Error, please consult your administrator",
|
||||||
|
"go_back": "Go Back",
|
||||||
"hide": "Hide",
|
"hide": "Hide",
|
||||||
"hour": "hour",
|
"hour": "hour",
|
||||||
"hours": "hours",
|
"hours": "hours",
|
||||||
"id": "Id",
|
"id": "Id",
|
||||||
|
"invalid_credentials": "Invalid username and/or password",
|
||||||
"invalid_file": "The chosen file was invalid, please read the instructions and adjust your file accordingly",
|
"invalid_file": "The chosen file was invalid, please read the instructions and adjust your file accordingly",
|
||||||
|
"invalid_password": "This password does not confirm to basic password rules. Please visit our Password Policy page to learn more",
|
||||||
"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-----'",
|
"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",
|
"ip_address": "IP Address",
|
||||||
"ips": "IPs",
|
"ips": "IPs",
|
||||||
"item": "Item",
|
"item": "Item",
|
||||||
"items": "Items",
|
"items": "Items",
|
||||||
"items_per_page": "Items per page: ",
|
"items_per_page": "Items per page: ",
|
||||||
|
"key": "Key",
|
||||||
"last_dashboard_refresh": "Last Dashboard Refresh",
|
"last_dashboard_refresh": "Last Dashboard Refresh",
|
||||||
"later_tonight": "Later tonight",
|
"later_tonight": "Later tonight",
|
||||||
"latest": "Latest",
|
"latest": "Latest",
|
||||||
@@ -121,8 +127,10 @@
|
|||||||
"loading_more_ellipsis": "Loading more...",
|
"loading_more_ellipsis": "Loading more...",
|
||||||
"logout": "Logout",
|
"logout": "Logout",
|
||||||
"mac": "MAC Address",
|
"mac": "MAC Address",
|
||||||
|
"main": "Main",
|
||||||
"manufacturer": "Manufacturer",
|
"manufacturer": "Manufacturer",
|
||||||
"memory_used": "Memory Used",
|
"memory_used": "Memory Used",
|
||||||
|
"min_max": "Min: {{min}}, Max: {{max}}",
|
||||||
"minute": "minute",
|
"minute": "minute",
|
||||||
"minutes": "minutes",
|
"minutes": "minutes",
|
||||||
"modified": "Modified",
|
"modified": "Modified",
|
||||||
@@ -155,7 +163,9 @@
|
|||||||
"second": "second",
|
"second": "second",
|
||||||
"seconds": "seconds",
|
"seconds": "seconds",
|
||||||
"seconds_elapsed": "Seconds elapsed",
|
"seconds_elapsed": "Seconds elapsed",
|
||||||
|
"see_details": "See Details",
|
||||||
"select": "Select",
|
"select": "Select",
|
||||||
|
"serial_num": "Serial #",
|
||||||
"serial_number": "Serial Number",
|
"serial_number": "Serial Number",
|
||||||
"show_all": "Show All",
|
"show_all": "Show All",
|
||||||
"socket_connection_closed": "Connection closed!",
|
"socket_connection_closed": "Connection closed!",
|
||||||
@@ -205,6 +215,7 @@
|
|||||||
"device_password": "Password",
|
"device_password": "Password",
|
||||||
"device_type": "Device Type",
|
"device_type": "Device Type",
|
||||||
"device_types": "Device Types",
|
"device_types": "Device Types",
|
||||||
|
"devices_affected": "Devices affected by this configuration: ",
|
||||||
"edit_configuration": "Edit Configuration",
|
"edit_configuration": "Edit Configuration",
|
||||||
"error_delete": "Error while trying to delete: {{error}}",
|
"error_delete": "Error while trying to delete: {{error}}",
|
||||||
"error_fetching_config": "Error while fetching configuration",
|
"error_fetching_config": "Error while fetching configuration",
|
||||||
@@ -232,6 +243,7 @@
|
|||||||
"used_by": "Used By",
|
"used_by": "Used By",
|
||||||
"used_by_details": "{{entities}} Entities, {{venues}} Venues and {{devices}} Devices",
|
"used_by_details": "{{entities}} Entities, {{venues}} Venues and {{devices}} Devices",
|
||||||
"uuid": "Config ID",
|
"uuid": "Config ID",
|
||||||
|
"view_affected_devices": "View Affected Devices",
|
||||||
"view_config": "View Configuration",
|
"view_config": "View Configuration",
|
||||||
"view_in_use": "View In Use",
|
"view_in_use": "View In Use",
|
||||||
"view_json": "View raw JSON"
|
"view_json": "View raw JSON"
|
||||||
@@ -250,6 +262,7 @@
|
|||||||
"access_pin": "Access PIN",
|
"access_pin": "Access PIN",
|
||||||
"add_contact": "Add Contact",
|
"add_contact": "Add Contact",
|
||||||
"create_contact": "Create Contact",
|
"create_contact": "Create Contact",
|
||||||
|
"currently_selected_contact": "Currently Selected Contact: {{contact}}",
|
||||||
"delete": "Delete Contact?",
|
"delete": "Delete Contact?",
|
||||||
"error_assign": "Error while trying to assign contact: {{error}}",
|
"error_assign": "Error while trying to assign contact: {{error}}",
|
||||||
"error_creation": "Error while trying to create contact: {{error}}",
|
"error_creation": "Error while trying to create contact: {{error}}",
|
||||||
@@ -287,8 +300,12 @@
|
|||||||
"healthchecks_title": "Delete Healthchecks"
|
"healthchecks_title": "Delete Healthchecks"
|
||||||
},
|
},
|
||||||
"device": {
|
"device": {
|
||||||
|
"certificate_explanation": "Certificates of connected devices",
|
||||||
"error_fetching_device": "Error fetching device information: {{error}}",
|
"error_fetching_device": "Error fetching device information: {{error}}",
|
||||||
"error_fetching_devices": "Error while fetching devices: {{error}}"
|
"error_fetching_devices": "Error while fetching devices: {{error}}",
|
||||||
|
"health_explanation": "Health of connected devices",
|
||||||
|
"memory_explanation": "Memory used by connected devices",
|
||||||
|
"uptimes_explanation": "Time connected devices have been up and connected"
|
||||||
},
|
},
|
||||||
"device_logs": {
|
"device_logs": {
|
||||||
"log": "Log",
|
"log": "Log",
|
||||||
@@ -309,10 +326,12 @@
|
|||||||
"delete_warning": "Warning: this operation cannot be reverted",
|
"delete_warning": "Warning: this operation cannot be reverted",
|
||||||
"edit_failure": "Update unsuccessful : {{error}}",
|
"edit_failure": "Update unsuccessful : {{error}}",
|
||||||
"enter_here": "Enter the IP(s) you'd like to add here",
|
"enter_here": "Enter the IP(s) you'd like to add here",
|
||||||
|
"entire_tree": "Site Map",
|
||||||
"entities": "Entities",
|
"entities": "Entities",
|
||||||
"entity": "Entity",
|
"entity": "Entity",
|
||||||
"error_fetch_entity": "Error while fetching entity information",
|
"error_fetch_entity": "Error while fetching entity information",
|
||||||
"error_fetching": "Error while fetching entities",
|
"error_fetching": "Error while fetching entities",
|
||||||
|
"error_fetching_map": "Error fetching map: {{error}}",
|
||||||
"error_saving": "Error while saving entity",
|
"error_saving": "Error while saving entity",
|
||||||
"higher_priority": "Make Higher Priority",
|
"higher_priority": "Make Higher Priority",
|
||||||
"ip_detection": "IP Detection",
|
"ip_detection": "IP Detection",
|
||||||
@@ -324,6 +343,7 @@
|
|||||||
"only_unassigned": "Only Unassigned",
|
"only_unassigned": "Only Unassigned",
|
||||||
"select_entity": "Select this Entity",
|
"select_entity": "Select this Entity",
|
||||||
"selected_entity": "Selected Entity",
|
"selected_entity": "Selected Entity",
|
||||||
|
"selected_map": "Selected Map",
|
||||||
"update_failure_error": "Error while trying to update entity: {{error}}",
|
"update_failure_error": "Error while trying to update entity: {{error}}",
|
||||||
"valid_serial": "Needs to be a valid serial number (12 HEX characters)",
|
"valid_serial": "Needs to be a valid serial number (12 HEX characters)",
|
||||||
"venues": "Venues"
|
"venues": "Venues"
|
||||||
@@ -336,6 +356,7 @@
|
|||||||
"warning": "Warning: Once you submit this cannot be reverted"
|
"warning": "Warning: Once you submit this cannot be reverted"
|
||||||
},
|
},
|
||||||
"firmware": {
|
"firmware": {
|
||||||
|
"age_explanation": "Average number of days for all devices from which we can obtain that value",
|
||||||
"average_age": "Average Firmware Age",
|
"average_age": "Average Firmware Age",
|
||||||
"choose_custom": "Choose",
|
"choose_custom": "Choose",
|
||||||
"details_title": "Image #{{image}} Details",
|
"details_title": "Image #{{image}} Details",
|
||||||
@@ -348,9 +369,11 @@
|
|||||||
"image": "Image",
|
"image": "Image",
|
||||||
"image_date": "Image Date",
|
"image_date": "Image Date",
|
||||||
"installed_firmware": "Installed Firmware",
|
"installed_firmware": "Installed Firmware",
|
||||||
|
"latest_explanation": "Devices running recognized firmware at its latest version",
|
||||||
"latest_version_installed": "Latest Version Installed",
|
"latest_version_installed": "Latest Version Installed",
|
||||||
"newer_firmware_available": "Newer Revisions Available",
|
"newer_firmware_available": "Newer Revisions Available",
|
||||||
"reinstall_latest": "Reinstall ",
|
"reinstall_latest": "Reinstall ",
|
||||||
|
"release": "Release",
|
||||||
"revision": "Revision",
|
"revision": "Revision",
|
||||||
"show_dev": "Show Dev Releases",
|
"show_dev": "Show Dev Releases",
|
||||||
"size": "Size",
|
"size": "Size",
|
||||||
@@ -457,7 +480,8 @@
|
|||||||
"unassigned_deleted_devices": "{{number}} Devices Deleted and Unassigned",
|
"unassigned_deleted_devices": "{{number}} Devices Deleted and Unassigned",
|
||||||
"unassigned_tags": "Unassigned tags",
|
"unassigned_tags": "Unassigned tags",
|
||||||
"validating_import_file": "Validating import file and data...",
|
"validating_import_file": "Validating import file and data...",
|
||||||
"venue": "Venue"
|
"venue": "Venue",
|
||||||
|
"view_in_gateway": "Details in Gateway"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"add": "Add Location",
|
"add": "Add Location",
|
||||||
@@ -465,13 +489,16 @@
|
|||||||
"city": "City",
|
"city": "City",
|
||||||
"country": "Country",
|
"country": "Country",
|
||||||
"create": "Create Location",
|
"create": "Create Location",
|
||||||
|
"currently_selected": "Currently Selected Location: {{location}}",
|
||||||
"delete": "Delete Location?",
|
"delete": "Delete Location?",
|
||||||
"error_assign": "Error while trying to assign location: {{error}}",
|
"error_assign": "Error while trying to assign location: {{error}}",
|
||||||
"error_creation": "Error while trying to create locations: {{error}}",
|
"error_creation": "Error while trying to create locations: {{error}}",
|
||||||
"error_delete": "Error while deleting location: {{error}}",
|
"error_delete": "Error while deleting location: {{error}}",
|
||||||
"error_fetching_single": "Error while trying to fetch location: {{error}}",
|
"error_fetching_single": "Error while trying to fetch location: {{error}}",
|
||||||
"geocode": "GeoCode",
|
"geocode": "GeoCode",
|
||||||
|
"mobiles": "Mobiles",
|
||||||
"no_associated": "No Associated Location",
|
"no_associated": "No Associated Location",
|
||||||
|
"phones": "Phones",
|
||||||
"postal": "ZIP/Postal Code",
|
"postal": "ZIP/Postal Code",
|
||||||
"search": "Search locations to auto fill the fields below",
|
"search": "Search locations to auto fill the fields below",
|
||||||
"state": "State",
|
"state": "State",
|
||||||
@@ -533,6 +560,59 @@
|
|||||||
"settings": {
|
"settings": {
|
||||||
"title": "Settings"
|
"title": "Settings"
|
||||||
},
|
},
|
||||||
|
"simulation": {
|
||||||
|
"add": "Add Simulation",
|
||||||
|
"cancel": "Cancel",
|
||||||
|
"cancel_success": "Simulation Run Successfully Cancelled!",
|
||||||
|
"check_ongoing_sims": "Follow Ongoing Sim",
|
||||||
|
"client_interval": "Client Interval",
|
||||||
|
"delete_simulation": "Delete Sim. {{name}}",
|
||||||
|
"end": "Ended",
|
||||||
|
"error_creating": "Error creating simulation: {{error}}",
|
||||||
|
"error_delete": "Error while deleting simulation: {{error}}",
|
||||||
|
"error_devices": "Error Devices",
|
||||||
|
"error_edit": "Error while trying to save simulation: {{error}}",
|
||||||
|
"error_edit_run": "Error while trying to change run state: {{error}}",
|
||||||
|
"error_fetching_simulations": "Error fetching simulations: {{error}}",
|
||||||
|
"error_start_run": "Error while trying to start a simulation run: {{error}}",
|
||||||
|
"gateway": "Gateway",
|
||||||
|
"healtcheck_interval": "Healthcheck Interval",
|
||||||
|
"keep_alive": "Keep Alive",
|
||||||
|
"last_refresh": "Last Refresh",
|
||||||
|
"length": "Length",
|
||||||
|
"live_devices": "Live Devices",
|
||||||
|
"mac_prefix": "MAC Prefix",
|
||||||
|
"max_associations": "Max. Associations",
|
||||||
|
"max_clients": "Max. Clients",
|
||||||
|
"messages_transmitted": "Messages Transmitted",
|
||||||
|
"min_associations": "Min. Associations",
|
||||||
|
"min_clients": "Min. Clients",
|
||||||
|
"pause": "Pause",
|
||||||
|
"pause_success": "Run Paused!",
|
||||||
|
"prefix_length": "Required, needs to be of a length of 6 characters",
|
||||||
|
"previous_runs": "Previous Runs",
|
||||||
|
"received": "Received",
|
||||||
|
"received_messages": "Messages Received",
|
||||||
|
"reconnect_interval": "Reconnect Interval",
|
||||||
|
"resume": "Resume",
|
||||||
|
"resume_success": "Run Resumed!",
|
||||||
|
"run": "Simulation Run",
|
||||||
|
"run_simulation": "Run Simulation",
|
||||||
|
"started": "Started",
|
||||||
|
"state_interval": "State Interval",
|
||||||
|
"stop": "Stop",
|
||||||
|
"stop_success": "Run Stopped!",
|
||||||
|
"success_creating": "Simulation Successfully Created!",
|
||||||
|
"success_run_start": "Successfully Started Run!",
|
||||||
|
"successful_delete": "Successfully Deleted Simulation!",
|
||||||
|
"successful_edit": "Successfully Edited Simulation!",
|
||||||
|
"threads": "Threads",
|
||||||
|
"time_full_devices": "Time to Full Devices",
|
||||||
|
"title": "Simulations",
|
||||||
|
"transmitted": "Transmitted",
|
||||||
|
"valid_cert": "Valid Certificate",
|
||||||
|
"valid_key": "Valid Key"
|
||||||
|
},
|
||||||
"statistics": {
|
"statistics": {
|
||||||
"data": "Data (KB)",
|
"data": "Data (KB)",
|
||||||
"latest_statistics": "Latest Statistics",
|
"latest_statistics": "Latest Statistics",
|
||||||
@@ -606,7 +686,7 @@
|
|||||||
"check_phone": "Please check your phone for your validation code",
|
"check_phone": "Please check your phone for your validation code",
|
||||||
"confirm_new_password": "Confirm New Password",
|
"confirm_new_password": "Confirm New Password",
|
||||||
"create": "Create User",
|
"create": "Create User",
|
||||||
"create_failure": "Error while creating user. Please make sure this email address is not already linked to an account.",
|
"create_failure": "Error while creating user: {{error}}",
|
||||||
"create_success": "User Created Successfully",
|
"create_success": "User Created Successfully",
|
||||||
"creating": "Creating User...",
|
"creating": "Creating User...",
|
||||||
"delete_avatar": "Delete Avatar",
|
"delete_avatar": "Delete Avatar",
|
||||||
@@ -620,6 +700,7 @@
|
|||||||
"email_address": "Email Address",
|
"email_address": "Email Address",
|
||||||
"enter_new_phone": "Enter your new phone number: ",
|
"enter_new_phone": "Enter your new phone number: ",
|
||||||
"error_fetching_users": "Error fetching users: {{error}}",
|
"error_fetching_users": "Error fetching users: {{error}}",
|
||||||
|
"error_retrieving": "Error retrieving user",
|
||||||
"error_sending_code": "Error while trying to send validation code. Please confirm that your phone number is valid.",
|
"error_sending_code": "Error while trying to send validation code. Please confirm that your phone number is valid.",
|
||||||
"force_password_change": "Force Password Change on Login",
|
"force_password_change": "Force Password Change on Login",
|
||||||
"id": "User Id.",
|
"id": "User Id.",
|
||||||
|
|||||||
@@ -52,8 +52,10 @@
|
|||||||
"commands_executed": "Comandos ejecutados",
|
"commands_executed": "Comandos ejecutados",
|
||||||
"compatible": "Compatible",
|
"compatible": "Compatible",
|
||||||
"completed": "terminado",
|
"completed": "terminado",
|
||||||
|
"concurrent_devices": "Dispositivos concurrentes",
|
||||||
"config_id": "Config. Identificación",
|
"config_id": "Config. Identificación",
|
||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
|
"confirm_stop_editing": "¿Estás seguro de que quieres dejar de editar? Esto cancelará cualquier cambio no guardado que haya realizado.",
|
||||||
"connected": "Conectado",
|
"connected": "Conectado",
|
||||||
"copied": "Copiado!",
|
"copied": "Copiado!",
|
||||||
"copy_to_clipboard": "Copiar al portapapeles",
|
"copy_to_clipboard": "Copiar al portapapeles",
|
||||||
@@ -71,7 +73,7 @@
|
|||||||
"details": "Detalles",
|
"details": "Detalles",
|
||||||
"device": "Dispositivo n.º{{serialNumber}}",
|
"device": "Dispositivo n.º{{serialNumber}}",
|
||||||
"device_dashboard": "Panel de control del dispositivo",
|
"device_dashboard": "Panel de control del dispositivo",
|
||||||
"device_delete": "Eliminar dispositivo n.º{{serialNumber}}",
|
"device_delete": "Eliminar #{{serialNumber}}",
|
||||||
"device_deleted": "Dispositivo eliminado correctamente",
|
"device_deleted": "Dispositivo eliminado correctamente",
|
||||||
"device_health": "Salud del dispositivo",
|
"device_health": "Salud del dispositivo",
|
||||||
"device_list": "Listado de dispositivos",
|
"device_list": "Listado de dispositivos",
|
||||||
@@ -102,17 +104,21 @@
|
|||||||
"forgot_password_title": "Se te olvidó tu contraseña",
|
"forgot_password_title": "Se te olvidó tu contraseña",
|
||||||
"from": "Desde",
|
"from": "Desde",
|
||||||
"general_error": "Error de API, consulte a su administrador",
|
"general_error": "Error de API, consulte a su administrador",
|
||||||
|
"go_back": "Regresa",
|
||||||
"hide": "Esconder",
|
"hide": "Esconder",
|
||||||
"hour": "hora",
|
"hour": "hora",
|
||||||
"hours": "horas",
|
"hours": "horas",
|
||||||
"id": "Carné de identidad",
|
"id": "Carné de identidad",
|
||||||
|
"invalid_credentials": "Nombre de usuario y / o contraseña inválido",
|
||||||
"invalid_file": "El archivo elegido no es válido, lea las instrucciones y ajuste su archivo en consecuencia",
|
"invalid_file": "El archivo elegido no es válido, lea las instrucciones y ajuste su archivo en consecuencia",
|
||||||
|
"invalid_password": "Esta contraseña no confirma las reglas básicas de contraseña. Visite nuestra página de Política de contraseñas para obtener más información.",
|
||||||
"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 ----- '",
|
"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",
|
"ip_address": "Dirección IP",
|
||||||
"ips": "IPs",
|
"ips": "IPs",
|
||||||
"item": "ít",
|
"item": "ít",
|
||||||
"items": "artículos",
|
"items": "artículos",
|
||||||
"items_per_page": "Artículos por página:",
|
"items_per_page": "Artículos por página:",
|
||||||
|
"key": "Llave",
|
||||||
"last_dashboard_refresh": "Última actualización del panel",
|
"last_dashboard_refresh": "Última actualización del panel",
|
||||||
"later_tonight": "Más tarde esta noche",
|
"later_tonight": "Más tarde esta noche",
|
||||||
"latest": "último",
|
"latest": "último",
|
||||||
@@ -121,8 +127,10 @@
|
|||||||
"loading_more_ellipsis": "Cargando más ...",
|
"loading_more_ellipsis": "Cargando más ...",
|
||||||
"logout": "Cerrar sesión",
|
"logout": "Cerrar sesión",
|
||||||
"mac": "Dirección MAC",
|
"mac": "Dirección MAC",
|
||||||
|
"main": "Principal",
|
||||||
"manufacturer": "Fabricante",
|
"manufacturer": "Fabricante",
|
||||||
"memory_used": "Memoria usada",
|
"memory_used": "Memoria usada",
|
||||||
|
"min_max": "Mín .: {{min}}, Máx .: {{max}}",
|
||||||
"minute": "minuto",
|
"minute": "minuto",
|
||||||
"minutes": "minutos",
|
"minutes": "minutos",
|
||||||
"modified": "Modificado",
|
"modified": "Modificado",
|
||||||
@@ -155,7 +163,9 @@
|
|||||||
"second": "segundo",
|
"second": "segundo",
|
||||||
"seconds": "segundos",
|
"seconds": "segundos",
|
||||||
"seconds_elapsed": "Segundos transcurridos",
|
"seconds_elapsed": "Segundos transcurridos",
|
||||||
|
"see_details": "Ver detalles",
|
||||||
"select": "Seleccionar",
|
"select": "Seleccionar",
|
||||||
|
"serial_num": "Número de serie",
|
||||||
"serial_number": "Número de serie",
|
"serial_number": "Número de serie",
|
||||||
"show_all": "Mostrar todo",
|
"show_all": "Mostrar todo",
|
||||||
"socket_connection_closed": "¡Conexión cerrada!",
|
"socket_connection_closed": "¡Conexión cerrada!",
|
||||||
@@ -205,6 +215,7 @@
|
|||||||
"device_password": "Contraseña",
|
"device_password": "Contraseña",
|
||||||
"device_type": "Tipo de dispositivo",
|
"device_type": "Tipo de dispositivo",
|
||||||
"device_types": "Tipos de dispositivos",
|
"device_types": "Tipos de dispositivos",
|
||||||
|
"devices_affected": "Dispositivos afectados por esta configuración:",
|
||||||
"edit_configuration": "Editar configuración",
|
"edit_configuration": "Editar configuración",
|
||||||
"error_delete": "Error al intentar eliminar: {{error}}",
|
"error_delete": "Error al intentar eliminar: {{error}}",
|
||||||
"error_fetching_config": "Error al obtener la configuración",
|
"error_fetching_config": "Error al obtener la configuración",
|
||||||
@@ -232,6 +243,7 @@
|
|||||||
"used_by": "Usado por",
|
"used_by": "Usado por",
|
||||||
"used_by_details": "{{entities}} Entidades, {{venues}} lugares y {{devices}} dispositivos",
|
"used_by_details": "{{entities}} Entidades, {{venues}} lugares y {{devices}} dispositivos",
|
||||||
"uuid": "ID de configuración",
|
"uuid": "ID de configuración",
|
||||||
|
"view_affected_devices": "Ver dispositivos afectados",
|
||||||
"view_config": "Ver configuración",
|
"view_config": "Ver configuración",
|
||||||
"view_in_use": "Ver en uso",
|
"view_in_use": "Ver en uso",
|
||||||
"view_json": "Ver JSON sin procesar"
|
"view_json": "Ver JSON sin procesar"
|
||||||
@@ -250,6 +262,7 @@
|
|||||||
"access_pin": "PIN de acceso",
|
"access_pin": "PIN de acceso",
|
||||||
"add_contact": "Agregar contacto",
|
"add_contact": "Agregar contacto",
|
||||||
"create_contact": "Crear contacto",
|
"create_contact": "Crear contacto",
|
||||||
|
"currently_selected_contact": "Contacto seleccionado actualmente: {{contact}}",
|
||||||
"delete": "¿Borrar contacto?",
|
"delete": "¿Borrar contacto?",
|
||||||
"error_assign": "Error al intentar asignar el contacto: {{error}}",
|
"error_assign": "Error al intentar asignar el contacto: {{error}}",
|
||||||
"error_creation": "Error al intentar crear contacto: {{error}}",
|
"error_creation": "Error al intentar crear contacto: {{error}}",
|
||||||
@@ -287,8 +300,12 @@
|
|||||||
"healthchecks_title": "Eliminar comprobaciones de estado"
|
"healthchecks_title": "Eliminar comprobaciones de estado"
|
||||||
},
|
},
|
||||||
"device": {
|
"device": {
|
||||||
|
"certificate_explanation": "Certificados de dispositivos conectados",
|
||||||
"error_fetching_device": "Error al obtener la información del dispositivo: {{error}}",
|
"error_fetching_device": "Error al obtener la información del dispositivo: {{error}}",
|
||||||
"error_fetching_devices": "Error al recuperar dispositivos: {{error}}"
|
"error_fetching_devices": "Error al recuperar dispositivos: {{error}}",
|
||||||
|
"health_explanation": "Salud de los dispositivos conectados",
|
||||||
|
"memory_explanation": "Memoria utilizada por dispositivos conectados",
|
||||||
|
"uptimes_explanation": "Tiempo que los dispositivos conectados han estado en funcionamiento y conectados"
|
||||||
},
|
},
|
||||||
"device_logs": {
|
"device_logs": {
|
||||||
"log": "Iniciar sesión",
|
"log": "Iniciar sesión",
|
||||||
@@ -309,10 +326,12 @@
|
|||||||
"delete_warning": "Advertencia: esta operación no se puede revertir",
|
"delete_warning": "Advertencia: esta operación no se puede revertir",
|
||||||
"edit_failure": "Actualización fallida: {{error}}",
|
"edit_failure": "Actualización fallida: {{error}}",
|
||||||
"enter_here": "Ingrese las IP que desea agregar aquí",
|
"enter_here": "Ingrese las IP que desea agregar aquí",
|
||||||
|
"entire_tree": "Site MAp",
|
||||||
"entities": "entidades",
|
"entities": "entidades",
|
||||||
"entity": "Entidad",
|
"entity": "Entidad",
|
||||||
"error_fetch_entity": "Error al obtener la información de la entidad",
|
"error_fetch_entity": "Error al obtener la información de la entidad",
|
||||||
"error_fetching": "Error al recuperar entidades",
|
"error_fetching": "Error al recuperar entidades",
|
||||||
|
"error_fetching_map": "Error al obtener el mapa: {{error}}",
|
||||||
"error_saving": "Error al guardar la entidad",
|
"error_saving": "Error al guardar la entidad",
|
||||||
"higher_priority": "Dar mayor prioridad",
|
"higher_priority": "Dar mayor prioridad",
|
||||||
"ip_detection": "Detección de IP",
|
"ip_detection": "Detección de IP",
|
||||||
@@ -324,6 +343,7 @@
|
|||||||
"only_unassigned": "Solo sin asignar",
|
"only_unassigned": "Solo sin asignar",
|
||||||
"select_entity": "Seleccione esta entidad",
|
"select_entity": "Seleccione esta entidad",
|
||||||
"selected_entity": "Entidad seleccionada",
|
"selected_entity": "Entidad seleccionada",
|
||||||
|
"selected_map": "Mapa seleccionado",
|
||||||
"update_failure_error": "Error al intentar actualizar la entidad: {{error}}",
|
"update_failure_error": "Error al intentar actualizar la entidad: {{error}}",
|
||||||
"valid_serial": "Debe ser un número de serie válido (12 caracteres HEX)",
|
"valid_serial": "Debe ser un número de serie válido (12 caracteres HEX)",
|
||||||
"venues": "Sedes"
|
"venues": "Sedes"
|
||||||
@@ -336,6 +356,7 @@
|
|||||||
"warning": "Advertencia: una vez que envíe, esto no se podrá revertir"
|
"warning": "Advertencia: una vez que envíe, esto no se podrá revertir"
|
||||||
},
|
},
|
||||||
"firmware": {
|
"firmware": {
|
||||||
|
"age_explanation": "Número medio de días para todos los dispositivos de los que podemos obtener ese valor",
|
||||||
"average_age": "Edad promedio del firmware",
|
"average_age": "Edad promedio del firmware",
|
||||||
"choose_custom": "Escoger",
|
"choose_custom": "Escoger",
|
||||||
"details_title": "Detalles de la imagen n. °{{image}} ",
|
"details_title": "Detalles de la imagen n. °{{image}} ",
|
||||||
@@ -348,9 +369,11 @@
|
|||||||
"image": "Imagen",
|
"image": "Imagen",
|
||||||
"image_date": "Fecha de la imagen",
|
"image_date": "Fecha de la imagen",
|
||||||
"installed_firmware": "Firmware instalado",
|
"installed_firmware": "Firmware instalado",
|
||||||
|
"latest_explanation": "Dispositivos que ejecutan firmware reconocido en su última versión",
|
||||||
"latest_version_installed": "Última versión instalada",
|
"latest_version_installed": "Última versión instalada",
|
||||||
"newer_firmware_available": "Nuevas revisiones disponibles",
|
"newer_firmware_available": "Nuevas revisiones disponibles",
|
||||||
"reinstall_latest": "Reinstalar",
|
"reinstall_latest": "Reinstalar",
|
||||||
|
"release": "Lanzamiento",
|
||||||
"revision": "Revisión",
|
"revision": "Revisión",
|
||||||
"show_dev": "Mostrar lanzamientos para desarrolladores",
|
"show_dev": "Mostrar lanzamientos para desarrolladores",
|
||||||
"size": "Tamaño",
|
"size": "Tamaño",
|
||||||
@@ -457,7 +480,8 @@
|
|||||||
"unassigned_deleted_devices": "{{number}} Dispositivos eliminados y sin asignar",
|
"unassigned_deleted_devices": "{{number}} Dispositivos eliminados y sin asignar",
|
||||||
"unassigned_tags": "Etiquetas sin asignar",
|
"unassigned_tags": "Etiquetas sin asignar",
|
||||||
"validating_import_file": "Validando archivo y datos de importación ...",
|
"validating_import_file": "Validando archivo y datos de importación ...",
|
||||||
"venue": "Lugar de encuentro"
|
"venue": "Lugar de encuentro",
|
||||||
|
"view_in_gateway": "Ver en Gateway"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"add": "Añade una ubicación",
|
"add": "Añade una ubicación",
|
||||||
@@ -465,13 +489,16 @@
|
|||||||
"city": "ciudad",
|
"city": "ciudad",
|
||||||
"country": "País",
|
"country": "País",
|
||||||
"create": "Crear ubicación",
|
"create": "Crear ubicación",
|
||||||
|
"currently_selected": "Ubicación seleccionada actualmente: {{location}}",
|
||||||
"delete": "¿Eliminar ubicación?",
|
"delete": "¿Eliminar ubicación?",
|
||||||
"error_assign": "Error al intentar asignar la ubicación: {{error}}",
|
"error_assign": "Error al intentar asignar la ubicación: {{error}}",
|
||||||
"error_creation": "Error al intentar crear ubicaciones: {{error}}",
|
"error_creation": "Error al intentar crear ubicaciones: {{error}}",
|
||||||
"error_delete": "Error al eliminar la ubicación: {{error}}",
|
"error_delete": "Error al eliminar la ubicación: {{error}}",
|
||||||
"error_fetching_single": "Error al intentar obtener la ubicación: {{error}}",
|
"error_fetching_single": "Error al intentar obtener la ubicación: {{error}}",
|
||||||
"geocode": "Geocode",
|
"geocode": "Geocode",
|
||||||
|
"mobiles": "MOBILES",
|
||||||
"no_associated": "Sin ubicación asociada",
|
"no_associated": "Sin ubicación asociada",
|
||||||
|
"phones": "Los telefonos",
|
||||||
"postal": "código postal",
|
"postal": "código postal",
|
||||||
"search": "Busque ubicaciones para completar automáticamente los campos a continuación",
|
"search": "Busque ubicaciones para completar automáticamente los campos a continuación",
|
||||||
"state": "Estado",
|
"state": "Estado",
|
||||||
@@ -533,6 +560,59 @@
|
|||||||
"settings": {
|
"settings": {
|
||||||
"title": "Ajustes"
|
"title": "Ajustes"
|
||||||
},
|
},
|
||||||
|
"simulation": {
|
||||||
|
"add": "Agregar simulación",
|
||||||
|
"cancel": "Cancelar",
|
||||||
|
"cancel_success": "¡La ejecución de la simulación se canceló con éxito!",
|
||||||
|
"check_ongoing_sims": "Seguir Sim en curso",
|
||||||
|
"client_interval": "Intervalo de cliente",
|
||||||
|
"delete_simulation": "Eliminar Sim. {{name}}",
|
||||||
|
"end": "Término",
|
||||||
|
"error_creating": "Error al crear la simulación: {{error}}",
|
||||||
|
"error_delete": "Error al eliminar la simulación: {{error}}",
|
||||||
|
"error_devices": "Dispositivos de error",
|
||||||
|
"error_edit": "Error al intentar guardar la simulación: {{error}}",
|
||||||
|
"error_edit_run": "Error al intentar cambiar el estado de ejecución: {{error}}",
|
||||||
|
"error_fetching_simulations": "Error al obtener simulaciones: {{error}}",
|
||||||
|
"error_start_run": "Error al intentar iniciar una ejecución de simulación: {{error}}",
|
||||||
|
"gateway": "Puerta",
|
||||||
|
"healtcheck_interval": "Intervalo de comprobación de estado",
|
||||||
|
"keep_alive": "Mantener viva",
|
||||||
|
"last_refresh": "Última actualización",
|
||||||
|
"length": "Longitud",
|
||||||
|
"live_devices": "Dispositivos en vivo",
|
||||||
|
"mac_prefix": "Prefijo MAC",
|
||||||
|
"max_associations": "Max. Asociaciones",
|
||||||
|
"max_clients": "Max. Clientela",
|
||||||
|
"messages_transmitted": "Mensajes transmitidos",
|
||||||
|
"min_associations": "Min. Asociaciones",
|
||||||
|
"min_clients": "Min. Clientela",
|
||||||
|
"pause": "pausa",
|
||||||
|
"pause_success": "¡Ejecutar en pausa!",
|
||||||
|
"prefix_length": "Obligatorio, debe tener una longitud de 6 caracteres",
|
||||||
|
"previous_runs": "Ejecuciones anteriores",
|
||||||
|
"received": "recibido",
|
||||||
|
"received_messages": "Mensajes recibidos",
|
||||||
|
"reconnect_interval": "Intervalo de reconexión",
|
||||||
|
"resume": "Currículum",
|
||||||
|
"resume_success": "¡Ejecutar reanudado!",
|
||||||
|
"run": "Ejecución de simulación",
|
||||||
|
"run_simulation": "Ejecutar simulación",
|
||||||
|
"started": "Empezado",
|
||||||
|
"state_interval": "Intervalo de estado",
|
||||||
|
"stop": "Detener",
|
||||||
|
"stop_success": "¡Corre, detenido!",
|
||||||
|
"success_creating": "¡Simulación creada con éxito!",
|
||||||
|
"success_run_start": "¡Ejecución iniciada con éxito!",
|
||||||
|
"successful_delete": "¡Simulación eliminada con éxito!",
|
||||||
|
"successful_edit": "¡Simulación editada con éxito!",
|
||||||
|
"threads": "Trapos",
|
||||||
|
"time_full_devices": "Tiempo para dispositivos completos",
|
||||||
|
"title": "Simulaciones",
|
||||||
|
"transmitted": "Transmitido",
|
||||||
|
"valid_cert": "Certificado válido",
|
||||||
|
"valid_key": "Clave válida"
|
||||||
|
},
|
||||||
"statistics": {
|
"statistics": {
|
||||||
"data": "Datos (KB)",
|
"data": "Datos (KB)",
|
||||||
"latest_statistics": "Últimas estadísticas",
|
"latest_statistics": "Últimas estadísticas",
|
||||||
@@ -606,7 +686,7 @@
|
|||||||
"check_phone": "Por favor revise su teléfono para su código de validación",
|
"check_phone": "Por favor revise su teléfono para su código de validación",
|
||||||
"confirm_new_password": "confirmar nueva contraseña",
|
"confirm_new_password": "confirmar nueva contraseña",
|
||||||
"create": "Crear usuario",
|
"create": "Crear usuario",
|
||||||
"create_failure": "Error al crear usuario. Asegúrese de que esta dirección de correo electrónico no esté vinculada a una cuenta.",
|
"create_failure": "Error al crear el usuario: {{error}}",
|
||||||
"create_success": "Usuario creado con éxito",
|
"create_success": "Usuario creado con éxito",
|
||||||
"creating": "Creando usuario ...",
|
"creating": "Creando usuario ...",
|
||||||
"delete_avatar": "Eliminar avatar",
|
"delete_avatar": "Eliminar avatar",
|
||||||
@@ -620,6 +700,7 @@
|
|||||||
"email_address": "Dirección de correo electrónico",
|
"email_address": "Dirección de correo electrónico",
|
||||||
"enter_new_phone": "Ingrese su nuevo número de teléfono:",
|
"enter_new_phone": "Ingrese su nuevo número de teléfono:",
|
||||||
"error_fetching_users": "Error al obtener usuarios: {{error}}",
|
"error_fetching_users": "Error al obtener usuarios: {{error}}",
|
||||||
|
"error_retrieving": "Error al recuperar usuario",
|
||||||
"error_sending_code": "Error al intentar enviar el código de validación. Confirma que tu número de teléfono es válido.",
|
"error_sending_code": "Error al intentar enviar el código de validación. Confirma que tu número de teléfono es válido.",
|
||||||
"force_password_change": "Forzar cambio de contraseña al iniciar sesión",
|
"force_password_change": "Forzar cambio de contraseña al iniciar sesión",
|
||||||
"id": "Id. De usuario",
|
"id": "Id. De usuario",
|
||||||
|
|||||||
@@ -52,8 +52,10 @@
|
|||||||
"commands_executed": "commandes exécutées",
|
"commands_executed": "commandes exécutées",
|
||||||
"compatible": "Compatible",
|
"compatible": "Compatible",
|
||||||
"completed": "Terminé",
|
"completed": "Terminé",
|
||||||
|
"concurrent_devices": "Périphériques simultanés",
|
||||||
"config_id": "Config. Identifiant",
|
"config_id": "Config. Identifiant",
|
||||||
"confirm": "Confirmer",
|
"confirm": "Confirmer",
|
||||||
|
"confirm_stop_editing": "Voulez-vous vraiment arrêter la modification ? Cela annulera toutes les modifications non enregistrées que vous avez apportées.",
|
||||||
"connected": "Connecté",
|
"connected": "Connecté",
|
||||||
"copied": "Copié!",
|
"copied": "Copié!",
|
||||||
"copy_to_clipboard": "Copier dans le presse-papier",
|
"copy_to_clipboard": "Copier dans le presse-papier",
|
||||||
@@ -71,7 +73,7 @@
|
|||||||
"details": "Détails",
|
"details": "Détails",
|
||||||
"device": "N° d'appareil{{serialNumber}}",
|
"device": "N° d'appareil{{serialNumber}}",
|
||||||
"device_dashboard": "Tableau de bord de l'appareil",
|
"device_dashboard": "Tableau de bord de l'appareil",
|
||||||
"device_delete": "Supprimer l'appareil n°{{serialNumber}}",
|
"device_delete": "Supprimer #{{serialNumber}}",
|
||||||
"device_deleted": "Appareil supprimé avec succès",
|
"device_deleted": "Appareil supprimé avec succès",
|
||||||
"device_health": "Santé de l'appareil",
|
"device_health": "Santé de l'appareil",
|
||||||
"device_list": "Liste des appareils",
|
"device_list": "Liste des appareils",
|
||||||
@@ -102,17 +104,21 @@
|
|||||||
"forgot_password_title": "Mot de passe oublié",
|
"forgot_password_title": "Mot de passe oublié",
|
||||||
"from": "De",
|
"from": "De",
|
||||||
"general_error": "Erreur API, veuillez consulter votre administrateur",
|
"general_error": "Erreur API, veuillez consulter votre administrateur",
|
||||||
|
"go_back": "Retourner",
|
||||||
"hide": "Cacher",
|
"hide": "Cacher",
|
||||||
"hour": "heure",
|
"hour": "heure",
|
||||||
"hours": "heures",
|
"hours": "heures",
|
||||||
"id": "Id",
|
"id": "Id",
|
||||||
|
"invalid_credentials": "Nom d'utilisateur et / ou mot de passe incorrect",
|
||||||
"invalid_file": "Le fichier choisi n'était pas valide, veuillez lire les instructions et ajuster votre fichier en conséquence",
|
"invalid_file": "Le fichier choisi n'était pas valide, veuillez lire les instructions et ajuster votre fichier en conséquence",
|
||||||
|
"invalid_password": "Ce mot de passe ne confirme pas les règles de base des mots de passe. Veuillez visiter notre page Politique de mot de passe pour en savoir plus",
|
||||||
"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-----'",
|
"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",
|
"ip_address": "Adresse IP",
|
||||||
"ips": "IPS",
|
"ips": "IPS",
|
||||||
"item": "article",
|
"item": "article",
|
||||||
"items": "Articles",
|
"items": "Articles",
|
||||||
"items_per_page": "Objets par page:",
|
"items_per_page": "Objets par page:",
|
||||||
|
"key": "Clé",
|
||||||
"last_dashboard_refresh": "Dernière actualisation du tableau de bord",
|
"last_dashboard_refresh": "Dernière actualisation du tableau de bord",
|
||||||
"later_tonight": "Plus tard ce soir",
|
"later_tonight": "Plus tard ce soir",
|
||||||
"latest": "Dernier",
|
"latest": "Dernier",
|
||||||
@@ -121,8 +127,10 @@
|
|||||||
"loading_more_ellipsis": "Chargement plus ...",
|
"loading_more_ellipsis": "Chargement plus ...",
|
||||||
"logout": "Connectez - Out",
|
"logout": "Connectez - Out",
|
||||||
"mac": "ADRESSE MAC",
|
"mac": "ADRESSE MAC",
|
||||||
|
"main": "Principale",
|
||||||
"manufacturer": "fabricant",
|
"manufacturer": "fabricant",
|
||||||
"memory_used": "Mémoire utilisée",
|
"memory_used": "Mémoire utilisée",
|
||||||
|
"min_max": "Min : {{min}}, Max : {{max}}",
|
||||||
"minute": "minute",
|
"minute": "minute",
|
||||||
"minutes": "minutes",
|
"minutes": "minutes",
|
||||||
"modified": "Modifié",
|
"modified": "Modifié",
|
||||||
@@ -155,7 +163,9 @@
|
|||||||
"second": "seconde",
|
"second": "seconde",
|
||||||
"seconds": "secondes",
|
"seconds": "secondes",
|
||||||
"seconds_elapsed": "Secondes écoulées",
|
"seconds_elapsed": "Secondes écoulées",
|
||||||
|
"see_details": "Voir les détails",
|
||||||
"select": "sélectionner",
|
"select": "sélectionner",
|
||||||
|
"serial_num": "Numéro de série",
|
||||||
"serial_number": "Numéro de série",
|
"serial_number": "Numéro de série",
|
||||||
"show_all": "Montre tout",
|
"show_all": "Montre tout",
|
||||||
"socket_connection_closed": "Connexion fermée !",
|
"socket_connection_closed": "Connexion fermée !",
|
||||||
@@ -205,6 +215,7 @@
|
|||||||
"device_password": "Mot de passe",
|
"device_password": "Mot de passe",
|
||||||
"device_type": "Type d'appareil",
|
"device_type": "Type d'appareil",
|
||||||
"device_types": "Types d'appareils",
|
"device_types": "Types d'appareils",
|
||||||
|
"devices_affected": "Appareils concernés par cette configuration :",
|
||||||
"edit_configuration": "Modifier la configuration",
|
"edit_configuration": "Modifier la configuration",
|
||||||
"error_delete": "Erreur lors de la tentative de suppression : {{error}}",
|
"error_delete": "Erreur lors de la tentative de suppression : {{error}}",
|
||||||
"error_fetching_config": "Erreur lors de la récupération de la configuration",
|
"error_fetching_config": "Erreur lors de la récupération de la configuration",
|
||||||
@@ -232,6 +243,7 @@
|
|||||||
"used_by": "Utilisé par",
|
"used_by": "Utilisé par",
|
||||||
"used_by_details": "{{entities}} Entités, {{venues}} Lieux et {{devices}} Appareils",
|
"used_by_details": "{{entities}} Entités, {{venues}} Lieux et {{devices}} Appareils",
|
||||||
"uuid": "Identifiant de configuration",
|
"uuid": "Identifiant de configuration",
|
||||||
|
"view_affected_devices": "Afficher les appareils concernés",
|
||||||
"view_config": "Afficher la configuration",
|
"view_config": "Afficher la configuration",
|
||||||
"view_in_use": "Afficher en cours d'utilisation",
|
"view_in_use": "Afficher en cours d'utilisation",
|
||||||
"view_json": "Afficher le JSON brut"
|
"view_json": "Afficher le JSON brut"
|
||||||
@@ -250,6 +262,7 @@
|
|||||||
"access_pin": "NIP d'accès",
|
"access_pin": "NIP d'accès",
|
||||||
"add_contact": "Ajouter le contact",
|
"add_contact": "Ajouter le contact",
|
||||||
"create_contact": "Créer un contact",
|
"create_contact": "Créer un contact",
|
||||||
|
"currently_selected_contact": "Contact actuellement sélectionné : {{contact}}",
|
||||||
"delete": "Effacer le contact?",
|
"delete": "Effacer le contact?",
|
||||||
"error_assign": "Erreur lors de la tentative d'attribution du contact : {{error}}",
|
"error_assign": "Erreur lors de la tentative d'attribution du contact : {{error}}",
|
||||||
"error_creation": "Erreur lors de la tentative de création du contact : {{error}}",
|
"error_creation": "Erreur lors de la tentative de création du contact : {{error}}",
|
||||||
@@ -287,8 +300,12 @@
|
|||||||
"healthchecks_title": "Supprimer les vérifications d'état"
|
"healthchecks_title": "Supprimer les vérifications d'état"
|
||||||
},
|
},
|
||||||
"device": {
|
"device": {
|
||||||
|
"certificate_explanation": "Certificats des appareils connectés",
|
||||||
"error_fetching_device": "Erreur lors de la récupération des informations sur l'appareil : {{error}}",
|
"error_fetching_device": "Erreur lors de la récupération des informations sur l'appareil : {{error}}",
|
||||||
"error_fetching_devices": "Erreur lors de la récupération des appareils : {{error}}"
|
"error_fetching_devices": "Erreur lors de la récupération des appareils : {{error}}",
|
||||||
|
"health_explanation": "Santé des appareils connectés",
|
||||||
|
"memory_explanation": "Mémoire utilisée par les appareils connectés",
|
||||||
|
"uptimes_explanation": "Heure à laquelle les appareils connectés ont été activés et connectés"
|
||||||
},
|
},
|
||||||
"device_logs": {
|
"device_logs": {
|
||||||
"log": "Bûche",
|
"log": "Bûche",
|
||||||
@@ -309,10 +326,12 @@
|
|||||||
"delete_warning": "Attention : cette opération ne peut pas être annulée",
|
"delete_warning": "Attention : cette opération ne peut pas être annulée",
|
||||||
"edit_failure": "Échec de la mise à jour : {{error}}",
|
"edit_failure": "Échec de la mise à jour : {{error}}",
|
||||||
"enter_here": "Entrez les IP que vous souhaitez ajouter ici",
|
"enter_here": "Entrez les IP que vous souhaitez ajouter ici",
|
||||||
|
"entire_tree": "Site MAp",
|
||||||
"entities": "Entités",
|
"entities": "Entités",
|
||||||
"entity": "Entité",
|
"entity": "Entité",
|
||||||
"error_fetch_entity": "Erreur lors de la récupération des informations sur l'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_fetching": "Erreur lors de la récupération des entités",
|
||||||
|
"error_fetching_map": "Erreur lors de la récupération de la carte : {{error}}",
|
||||||
"error_saving": "Erreur lors de l'enregistrement de l'entité",
|
"error_saving": "Erreur lors de l'enregistrement de l'entité",
|
||||||
"higher_priority": "Faire une priorité plus élevée",
|
"higher_priority": "Faire une priorité plus élevée",
|
||||||
"ip_detection": "Détection IP",
|
"ip_detection": "Détection IP",
|
||||||
@@ -324,6 +343,7 @@
|
|||||||
"only_unassigned": "Uniquement non attribué",
|
"only_unassigned": "Uniquement non attribué",
|
||||||
"select_entity": "Sélectionnez cette entité",
|
"select_entity": "Sélectionnez cette entité",
|
||||||
"selected_entity": "Entité sélectionnée",
|
"selected_entity": "Entité sélectionnée",
|
||||||
|
"selected_map": "Carte sélectionnée",
|
||||||
"update_failure_error": "Erreur lors de la tentative de mise à jour de l'entité : {{error}}",
|
"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)",
|
"valid_serial": "Doit être un numéro de série valide (12 caractères HEX)",
|
||||||
"venues": "Les lieux"
|
"venues": "Les lieux"
|
||||||
@@ -336,6 +356,7 @@
|
|||||||
"warning": "Avertissement : Une fois que vous avez soumis, cela ne peut pas être annulé"
|
"warning": "Avertissement : Une fois que vous avez soumis, cela ne peut pas être annulé"
|
||||||
},
|
},
|
||||||
"firmware": {
|
"firmware": {
|
||||||
|
"age_explanation": "Nombre moyen de jours pour tous les appareils à partir desquels nous pouvons obtenir cette valeur",
|
||||||
"average_age": "Âge moyen du micrologiciel",
|
"average_age": "Âge moyen du micrologiciel",
|
||||||
"choose_custom": "Choisir",
|
"choose_custom": "Choisir",
|
||||||
"details_title": "Image #{{image}} Détails",
|
"details_title": "Image #{{image}} Détails",
|
||||||
@@ -348,9 +369,11 @@
|
|||||||
"image": "Image",
|
"image": "Image",
|
||||||
"image_date": "Date de l'image",
|
"image_date": "Date de l'image",
|
||||||
"installed_firmware": "Micrologiciel installé",
|
"installed_firmware": "Micrologiciel installé",
|
||||||
|
"latest_explanation": "Appareils exécutant un firmware reconnu dans sa dernière version",
|
||||||
"latest_version_installed": "Dernière version installée",
|
"latest_version_installed": "Dernière version installée",
|
||||||
"newer_firmware_available": "Révisions plus récentes disponibles",
|
"newer_firmware_available": "Révisions plus récentes disponibles",
|
||||||
"reinstall_latest": "Réinstaller",
|
"reinstall_latest": "Réinstaller",
|
||||||
|
"release": "libération",
|
||||||
"revision": "Révision",
|
"revision": "Révision",
|
||||||
"show_dev": "Afficher les versions des développeurs",
|
"show_dev": "Afficher les versions des développeurs",
|
||||||
"size": "Taille",
|
"size": "Taille",
|
||||||
@@ -457,7 +480,8 @@
|
|||||||
"unassigned_deleted_devices": "{{number}} appareils supprimés et non attribués",
|
"unassigned_deleted_devices": "{{number}} appareils supprimés et non attribués",
|
||||||
"unassigned_tags": "Balises non attribuées",
|
"unassigned_tags": "Balises non attribuées",
|
||||||
"validating_import_file": "Validation du fichier d'importation et des données...",
|
"validating_import_file": "Validation du fichier d'importation et des données...",
|
||||||
"venue": "Lieu"
|
"venue": "Lieu",
|
||||||
|
"view_in_gateway": "Afficher dans la passerelle"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"add": "Ajouter un emplacement",
|
"add": "Ajouter un emplacement",
|
||||||
@@ -465,13 +489,16 @@
|
|||||||
"city": "Ville",
|
"city": "Ville",
|
||||||
"country": "Pays",
|
"country": "Pays",
|
||||||
"create": "Créer un lieu",
|
"create": "Créer un lieu",
|
||||||
|
"currently_selected": "Emplacement actuellement sélectionné : {{location}}",
|
||||||
"delete": "Supprimer le lieu?",
|
"delete": "Supprimer le lieu?",
|
||||||
"error_assign": "Erreur lors de la tentative d'attribution de l'emplacement : {{error}}",
|
"error_assign": "Erreur lors de la tentative d'attribution de l'emplacement : {{error}}",
|
||||||
"error_creation": "Erreur lors de la tentative de création d'établissements : {{error}}",
|
"error_creation": "Erreur lors de la tentative de création d'établissements : {{error}}",
|
||||||
"error_delete": "Erreur lors de la suppression de l'emplacement : {{error}}",
|
"error_delete": "Erreur lors de la suppression de l'emplacement : {{error}}",
|
||||||
"error_fetching_single": "Erreur lors de la tentative de récupération de l'emplacement : {{error}}",
|
"error_fetching_single": "Erreur lors de la tentative de récupération de l'emplacement : {{error}}",
|
||||||
"geocode": "Géocode",
|
"geocode": "Géocode",
|
||||||
|
"mobiles": "MOBILES",
|
||||||
"no_associated": "Aucun emplacement associé",
|
"no_associated": "Aucun emplacement associé",
|
||||||
|
"phones": "Téléphones",
|
||||||
"postal": "Zip / code postal",
|
"postal": "Zip / code postal",
|
||||||
"search": "Recherchez des emplacements pour remplir automatiquement les champs ci-dessous",
|
"search": "Recherchez des emplacements pour remplir automatiquement les champs ci-dessous",
|
||||||
"state": "Etat",
|
"state": "Etat",
|
||||||
@@ -533,6 +560,59 @@
|
|||||||
"settings": {
|
"settings": {
|
||||||
"title": "Réglages"
|
"title": "Réglages"
|
||||||
},
|
},
|
||||||
|
"simulation": {
|
||||||
|
"add": "Ajouter une simulation",
|
||||||
|
"cancel": "annuler",
|
||||||
|
"cancel_success": "Exécution de la simulation annulée avec succès !",
|
||||||
|
"check_ongoing_sims": "Suivre le Sim en cours",
|
||||||
|
"client_interval": "Intervalle client",
|
||||||
|
"delete_simulation": "Supprimer Sim. {{name}}",
|
||||||
|
"end": "Terminé",
|
||||||
|
"error_creating": "Erreur lors de la création de la simulation : {{error}}",
|
||||||
|
"error_delete": "Erreur lors de la suppression de la simulation : {{error}}",
|
||||||
|
"error_devices": "Périphériques d'erreur",
|
||||||
|
"error_edit": "Erreur lors de la tentative d'enregistrement de la simulation : {{error}}",
|
||||||
|
"error_edit_run": "Erreur lors de la tentative de modification de l'état d'exécution : {{error}}",
|
||||||
|
"error_fetching_simulations": "Erreur lors de la récupération des simulations : {{error}}",
|
||||||
|
"error_start_run": "Erreur lors de la tentative de démarrage d'une simulation : {{error}}",
|
||||||
|
"gateway": "passerelle",
|
||||||
|
"healtcheck_interval": "Intervalle de vérification de l'état",
|
||||||
|
"keep_alive": "Rester en vie",
|
||||||
|
"last_refresh": "Dernier rafraîchissement",
|
||||||
|
"length": "Longueur",
|
||||||
|
"live_devices": "Appareils en direct",
|
||||||
|
"mac_prefix": "Préfixe MAC",
|
||||||
|
"max_associations": "Max. Les associations",
|
||||||
|
"max_clients": "Max. Clients",
|
||||||
|
"messages_transmitted": "Messages transmis",
|
||||||
|
"min_associations": "Min. Les associations",
|
||||||
|
"min_clients": "Min. Clients",
|
||||||
|
"pause": "Pause",
|
||||||
|
"pause_success": "Exécuter en pause !",
|
||||||
|
"prefix_length": "Obligatoire, doit être d'une longueur de 6 caractères",
|
||||||
|
"previous_runs": "Courses précédentes",
|
||||||
|
"received": "reçu",
|
||||||
|
"received_messages": "Messages reçus",
|
||||||
|
"reconnect_interval": "Intervalle de reconnexion",
|
||||||
|
"resume": "CV",
|
||||||
|
"resume_success": "Exécution reprise !",
|
||||||
|
"run": "Exécution de simulation",
|
||||||
|
"run_simulation": "Exécuter la simulation",
|
||||||
|
"started": "commencé",
|
||||||
|
"state_interval": "Intervalle d'état",
|
||||||
|
"stop": "Arrêtez",
|
||||||
|
"stop_success": "Exécution arrêtée !",
|
||||||
|
"success_creating": "Simulation créée avec succès !",
|
||||||
|
"success_run_start": "Exécution démarrée avec succès !",
|
||||||
|
"successful_delete": "Simulation supprimée avec succès !",
|
||||||
|
"successful_edit": "Simulation éditée avec succès !",
|
||||||
|
"threads": "Fils",
|
||||||
|
"time_full_devices": "Temps pour les appareils pleins",
|
||||||
|
"title": "Simulations",
|
||||||
|
"transmitted": "Transmis",
|
||||||
|
"valid_cert": "Certificat valide",
|
||||||
|
"valid_key": "Clé valide"
|
||||||
|
},
|
||||||
"statistics": {
|
"statistics": {
|
||||||
"data": "Données (Ko)",
|
"data": "Données (Ko)",
|
||||||
"latest_statistics": "Dernières statistiques",
|
"latest_statistics": "Dernières statistiques",
|
||||||
@@ -606,7 +686,7 @@
|
|||||||
"check_phone": "Veuillez vérifier votre téléphone pour votre code de validation",
|
"check_phone": "Veuillez vérifier votre téléphone pour votre code de validation",
|
||||||
"confirm_new_password": "Confirmer le nouveau mot de passe",
|
"confirm_new_password": "Confirmer le nouveau mot de passe",
|
||||||
"create": "Créer un utilisateur",
|
"create": "Créer un utilisateur",
|
||||||
"create_failure": "Erreur lors de la création de l'utilisateur. Veuillez vous assurer que cette adresse e-mail n'est pas déjà liée à un compte.",
|
"create_failure": "Erreur lors de la création de l'utilisateur : {{error}}",
|
||||||
"create_success": "L'utilisateur a été créé avec succès",
|
"create_success": "L'utilisateur a été créé avec succès",
|
||||||
"creating": "Création de l'utilisateur...",
|
"creating": "Création de l'utilisateur...",
|
||||||
"delete_avatar": "Supprimer l'avatar",
|
"delete_avatar": "Supprimer l'avatar",
|
||||||
@@ -620,6 +700,7 @@
|
|||||||
"email_address": "Adresse électronique",
|
"email_address": "Adresse électronique",
|
||||||
"enter_new_phone": "Saisissez votre nouveau numéro de téléphone :",
|
"enter_new_phone": "Saisissez votre nouveau numéro de téléphone :",
|
||||||
"error_fetching_users": "Erreur lors de la récupération des utilisateurs : {{error}}",
|
"error_fetching_users": "Erreur lors de la récupération des utilisateurs : {{error}}",
|
||||||
|
"error_retrieving": "Erreur lors de la récupération de l'utilisateur",
|
||||||
"error_sending_code": "Erreur lors de la tentative d'envoi du code de validation. Veuillez confirmer que votre numéro de téléphone est valide.",
|
"error_sending_code": "Erreur lors de la tentative d'envoi du code de validation. Veuillez confirmer que votre numéro de téléphone est valide.",
|
||||||
"force_password_change": "Forcer le changement de mot de passe lors de la connexion",
|
"force_password_change": "Forcer le changement de mot de passe lors de la connexion",
|
||||||
"id": "Identifiant d'utilisateur.",
|
"id": "Identifiant d'utilisateur.",
|
||||||
|
|||||||
@@ -52,8 +52,10 @@
|
|||||||
"commands_executed": "Comandos Executados",
|
"commands_executed": "Comandos Executados",
|
||||||
"compatible": "Compatível",
|
"compatible": "Compatível",
|
||||||
"completed": "Concluído",
|
"completed": "Concluído",
|
||||||
|
"concurrent_devices": "Dispositivos Simultâneos",
|
||||||
"config_id": "Config. Identidade",
|
"config_id": "Config. Identidade",
|
||||||
"confirm": "confirme",
|
"confirm": "confirme",
|
||||||
|
"confirm_stop_editing": "Tem certeza que deseja parar de editar? Isso cancelará todas as alterações não salvas que você fez.",
|
||||||
"connected": "Conectado",
|
"connected": "Conectado",
|
||||||
"copied": "Copiado!",
|
"copied": "Copiado!",
|
||||||
"copy_to_clipboard": "Copiar para área de transferência",
|
"copy_to_clipboard": "Copiar para área de transferência",
|
||||||
@@ -71,7 +73,7 @@
|
|||||||
"details": "Detalhes",
|
"details": "Detalhes",
|
||||||
"device": "Dispositivo nº{{serialNumber}}",
|
"device": "Dispositivo nº{{serialNumber}}",
|
||||||
"device_dashboard": "Painel do dispositivo",
|
"device_dashboard": "Painel do dispositivo",
|
||||||
"device_delete": "Excluir dispositivo nº{{serialNumber}}",
|
"device_delete": "Excluir #{{serialNumber}}",
|
||||||
"device_deleted": "Dispositivo excluído com sucesso",
|
"device_deleted": "Dispositivo excluído com sucesso",
|
||||||
"device_health": "Saúde do Dispositivo",
|
"device_health": "Saúde do Dispositivo",
|
||||||
"device_list": "Lista de Dispositivos",
|
"device_list": "Lista de Dispositivos",
|
||||||
@@ -102,17 +104,21 @@
|
|||||||
"forgot_password_title": "Esqueceu a senha",
|
"forgot_password_title": "Esqueceu a senha",
|
||||||
"from": "De",
|
"from": "De",
|
||||||
"general_error": "Erro de API, consulte o seu administrador",
|
"general_error": "Erro de API, consulte o seu administrador",
|
||||||
|
"go_back": "Volte",
|
||||||
"hide": "Ocultar",
|
"hide": "Ocultar",
|
||||||
"hour": "hora",
|
"hour": "hora",
|
||||||
"hours": "horas",
|
"hours": "horas",
|
||||||
"id": "identidade",
|
"id": "identidade",
|
||||||
|
"invalid_credentials": "Nome de usuário e / ou senha inválidos",
|
||||||
"invalid_file": "O arquivo escolhido era inválido, por favor, leia as instruções e ajuste seu arquivo de acordo",
|
"invalid_file": "O arquivo escolhido era inválido, por favor, leia as instruções e ajuste seu arquivo de acordo",
|
||||||
|
"invalid_password": "Esta senha não está de acordo com as regras básicas de senha. Visite nossa página de Política de Senha para saber mais",
|
||||||
"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 ----- '",
|
"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",
|
"ip_address": "Endereço de IP",
|
||||||
"ips": "IPs",
|
"ips": "IPs",
|
||||||
"item": "Item",
|
"item": "Item",
|
||||||
"items": "Unid",
|
"items": "Unid",
|
||||||
"items_per_page": "Itens por página:",
|
"items_per_page": "Itens por página:",
|
||||||
|
"key": "Chave",
|
||||||
"last_dashboard_refresh": "Última atualização do painel",
|
"last_dashboard_refresh": "Última atualização do painel",
|
||||||
"later_tonight": "Logo à noite",
|
"later_tonight": "Logo à noite",
|
||||||
"latest": "Mais recentes",
|
"latest": "Mais recentes",
|
||||||
@@ -121,8 +127,10 @@
|
|||||||
"loading_more_ellipsis": "Carregando mais ...",
|
"loading_more_ellipsis": "Carregando mais ...",
|
||||||
"logout": "Sair",
|
"logout": "Sair",
|
||||||
"mac": "Endereço MAC",
|
"mac": "Endereço MAC",
|
||||||
|
"main": "a Principal",
|
||||||
"manufacturer": "Fabricante",
|
"manufacturer": "Fabricante",
|
||||||
"memory_used": "Memória Usada",
|
"memory_used": "Memória Usada",
|
||||||
|
"min_max": "Mín: {{min}}, Máx: {{max}}",
|
||||||
"minute": "minuto",
|
"minute": "minuto",
|
||||||
"minutes": "minutos",
|
"minutes": "minutos",
|
||||||
"modified": "Modificado",
|
"modified": "Modificado",
|
||||||
@@ -155,7 +163,9 @@
|
|||||||
"second": "segundo",
|
"second": "segundo",
|
||||||
"seconds": "segundos",
|
"seconds": "segundos",
|
||||||
"seconds_elapsed": "Segundos decorridos",
|
"seconds_elapsed": "Segundos decorridos",
|
||||||
|
"see_details": "Veja detalhes",
|
||||||
"select": "Selecione",
|
"select": "Selecione",
|
||||||
|
"serial_num": "Nº de série",
|
||||||
"serial_number": "Número de série",
|
"serial_number": "Número de série",
|
||||||
"show_all": "mostre tudo",
|
"show_all": "mostre tudo",
|
||||||
"socket_connection_closed": "Conexão fechada!",
|
"socket_connection_closed": "Conexão fechada!",
|
||||||
@@ -205,6 +215,7 @@
|
|||||||
"device_password": "Senha",
|
"device_password": "Senha",
|
||||||
"device_type": "Tipo de dispositivo",
|
"device_type": "Tipo de dispositivo",
|
||||||
"device_types": "Tipos de dispositivos",
|
"device_types": "Tipos de dispositivos",
|
||||||
|
"devices_affected": "Dispositivos afetados por esta configuração:",
|
||||||
"edit_configuration": "Editar configuração",
|
"edit_configuration": "Editar configuração",
|
||||||
"error_delete": "Erro ao tentar excluir: {{error}}",
|
"error_delete": "Erro ao tentar excluir: {{error}}",
|
||||||
"error_fetching_config": "Erro ao buscar configuração",
|
"error_fetching_config": "Erro ao buscar configuração",
|
||||||
@@ -232,6 +243,7 @@
|
|||||||
"used_by": "Usado por",
|
"used_by": "Usado por",
|
||||||
"used_by_details": "{{entities}} Entidades, {{venues}} Locais e {{devices}} Dispositivos",
|
"used_by_details": "{{entities}} Entidades, {{venues}} Locais e {{devices}} Dispositivos",
|
||||||
"uuid": "ID de configuração",
|
"uuid": "ID de configuração",
|
||||||
|
"view_affected_devices": "Exibir dispositivos afetados",
|
||||||
"view_config": "Ver configuração",
|
"view_config": "Ver configuração",
|
||||||
"view_in_use": "Visualização em uso",
|
"view_in_use": "Visualização em uso",
|
||||||
"view_json": "Exibir JSON bruto"
|
"view_json": "Exibir JSON bruto"
|
||||||
@@ -250,6 +262,7 @@
|
|||||||
"access_pin": "PIN de acesso",
|
"access_pin": "PIN de acesso",
|
||||||
"add_contact": "Adicionar contato",
|
"add_contact": "Adicionar contato",
|
||||||
"create_contact": "Criar Contato",
|
"create_contact": "Criar Contato",
|
||||||
|
"currently_selected_contact": "Contato atualmente selecionado: {{contact}}",
|
||||||
"delete": "Excluir contato?",
|
"delete": "Excluir contato?",
|
||||||
"error_assign": "Erro ao tentar atribuir contato: {{error}}",
|
"error_assign": "Erro ao tentar atribuir contato: {{error}}",
|
||||||
"error_creation": "Erro ao tentar criar contato: {{error}}",
|
"error_creation": "Erro ao tentar criar contato: {{error}}",
|
||||||
@@ -287,8 +300,12 @@
|
|||||||
"healthchecks_title": "Excluir verificações de saúde"
|
"healthchecks_title": "Excluir verificações de saúde"
|
||||||
},
|
},
|
||||||
"device": {
|
"device": {
|
||||||
|
"certificate_explanation": "Certificados de dispositivos conectados",
|
||||||
"error_fetching_device": "Erro ao buscar informações do dispositivo: {{error}}",
|
"error_fetching_device": "Erro ao buscar informações do dispositivo: {{error}}",
|
||||||
"error_fetching_devices": "Erro ao buscar dispositivos: {{error}}"
|
"error_fetching_devices": "Erro ao buscar dispositivos: {{error}}",
|
||||||
|
"health_explanation": "Saúde de dispositivos conectados",
|
||||||
|
"memory_explanation": "Memória usada por dispositivos conectados",
|
||||||
|
"uptimes_explanation": "Há tempo em que os dispositivos conectados estão ativados e conectados"
|
||||||
},
|
},
|
||||||
"device_logs": {
|
"device_logs": {
|
||||||
"log": "Registro",
|
"log": "Registro",
|
||||||
@@ -309,10 +326,12 @@
|
|||||||
"delete_warning": "Aviso: esta operação não pode ser revertida",
|
"delete_warning": "Aviso: esta operação não pode ser revertida",
|
||||||
"edit_failure": "Atualização malsucedida: {{error}}",
|
"edit_failure": "Atualização malsucedida: {{error}}",
|
||||||
"enter_here": "Digite o (s) IP (s) que deseja adicionar aqui",
|
"enter_here": "Digite o (s) IP (s) que deseja adicionar aqui",
|
||||||
|
"entire_tree": "Mapa do Site",
|
||||||
"entities": "Entidades",
|
"entities": "Entidades",
|
||||||
"entity": "Entidade",
|
"entity": "Entidade",
|
||||||
"error_fetch_entity": "Erro ao buscar informações da entidade",
|
"error_fetch_entity": "Erro ao buscar informações da entidade",
|
||||||
"error_fetching": "Erro ao buscar entidades",
|
"error_fetching": "Erro ao buscar entidades",
|
||||||
|
"error_fetching_map": "Erro ao buscar mapa: {{error}}",
|
||||||
"error_saving": "Erro ao salvar entidade",
|
"error_saving": "Erro ao salvar entidade",
|
||||||
"higher_priority": "Dê maior prioridade",
|
"higher_priority": "Dê maior prioridade",
|
||||||
"ip_detection": "Detecção de IP",
|
"ip_detection": "Detecção de IP",
|
||||||
@@ -324,6 +343,7 @@
|
|||||||
"only_unassigned": "Apenas não atribuídos",
|
"only_unassigned": "Apenas não atribuídos",
|
||||||
"select_entity": "Selecione esta Entidade",
|
"select_entity": "Selecione esta Entidade",
|
||||||
"selected_entity": "Entidade Selecionada",
|
"selected_entity": "Entidade Selecionada",
|
||||||
|
"selected_map": "Mapa Selecionado",
|
||||||
"update_failure_error": "Erro ao tentar atualizar a entidade: {{error}}",
|
"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)",
|
"valid_serial": "Precisa ser um número de série válido (12 caracteres HEX)",
|
||||||
"venues": "Locais"
|
"venues": "Locais"
|
||||||
@@ -336,6 +356,7 @@
|
|||||||
"warning": "Aviso: depois de enviar, isso não pode ser revertido"
|
"warning": "Aviso: depois de enviar, isso não pode ser revertido"
|
||||||
},
|
},
|
||||||
"firmware": {
|
"firmware": {
|
||||||
|
"age_explanation": "Número médio de dias para todos os dispositivos dos quais podemos obter esse valor",
|
||||||
"average_age": "Idade Média do Firmware",
|
"average_age": "Idade Média do Firmware",
|
||||||
"choose_custom": "Escolher",
|
"choose_custom": "Escolher",
|
||||||
"details_title": "Detalhes da imagem #{{image}} ",
|
"details_title": "Detalhes da imagem #{{image}} ",
|
||||||
@@ -348,9 +369,11 @@
|
|||||||
"image": "Imagem",
|
"image": "Imagem",
|
||||||
"image_date": "Data da Imagem",
|
"image_date": "Data da Imagem",
|
||||||
"installed_firmware": "Firmware Instalado",
|
"installed_firmware": "Firmware Instalado",
|
||||||
|
"latest_explanation": "Dispositivos executando firmware reconhecido em sua versão mais recente",
|
||||||
"latest_version_installed": "Última versão instalada",
|
"latest_version_installed": "Última versão instalada",
|
||||||
"newer_firmware_available": "Novas revisões disponíveis",
|
"newer_firmware_available": "Novas revisões disponíveis",
|
||||||
"reinstall_latest": "Reinstalar",
|
"reinstall_latest": "Reinstalar",
|
||||||
|
"release": "LANÇAMENTO",
|
||||||
"revision": "Revisão",
|
"revision": "Revisão",
|
||||||
"show_dev": "Mostrar lançamentos de desenvolvimento",
|
"show_dev": "Mostrar lançamentos de desenvolvimento",
|
||||||
"size": "Tamanho",
|
"size": "Tamanho",
|
||||||
@@ -457,7 +480,8 @@
|
|||||||
"unassigned_deleted_devices": "{{number}} Dispositivos excluídos e não atribuídos",
|
"unassigned_deleted_devices": "{{number}} Dispositivos excluídos e não atribuídos",
|
||||||
"unassigned_tags": "Tags não atribuídas",
|
"unassigned_tags": "Tags não atribuídas",
|
||||||
"validating_import_file": "Validando arquivo de importação e dados ...",
|
"validating_import_file": "Validando arquivo de importação e dados ...",
|
||||||
"venue": "Local"
|
"venue": "Local",
|
||||||
|
"view_in_gateway": "Ver no Gateway"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"add": "Adicionar Local",
|
"add": "Adicionar Local",
|
||||||
@@ -465,13 +489,16 @@
|
|||||||
"city": "Cidade",
|
"city": "Cidade",
|
||||||
"country": "País",
|
"country": "País",
|
||||||
"create": "Criar local",
|
"create": "Criar local",
|
||||||
|
"currently_selected": "Local selecionado atualmente: {{location}}",
|
||||||
"delete": "Excluir localização?",
|
"delete": "Excluir localização?",
|
||||||
"error_assign": "Erro ao tentar atribuir local: {{error}}",
|
"error_assign": "Erro ao tentar atribuir local: {{error}}",
|
||||||
"error_creation": "Erro ao tentar criar locais: {{error}}",
|
"error_creation": "Erro ao tentar criar locais: {{error}}",
|
||||||
"error_delete": "Erro ao excluir localização: {{error}}",
|
"error_delete": "Erro ao excluir localização: {{error}}",
|
||||||
"error_fetching_single": "Erro ao tentar buscar localização: {{error}}",
|
"error_fetching_single": "Erro ao tentar buscar localização: {{error}}",
|
||||||
"geocode": "GeoCode",
|
"geocode": "GeoCode",
|
||||||
|
"mobiles": "Móbiles",
|
||||||
"no_associated": "Sem localização associada",
|
"no_associated": "Sem localização associada",
|
||||||
|
"phones": "Telefones",
|
||||||
"postal": "CEP / Código Postal",
|
"postal": "CEP / Código Postal",
|
||||||
"search": "Pesquise locais para preencher automaticamente os campos abaixo",
|
"search": "Pesquise locais para preencher automaticamente os campos abaixo",
|
||||||
"state": "Estado",
|
"state": "Estado",
|
||||||
@@ -533,6 +560,59 @@
|
|||||||
"settings": {
|
"settings": {
|
||||||
"title": "Definições"
|
"title": "Definições"
|
||||||
},
|
},
|
||||||
|
"simulation": {
|
||||||
|
"add": "Adicionar Simulação",
|
||||||
|
"cancel": "Cancelar",
|
||||||
|
"cancel_success": "Simulação cancelada com sucesso!",
|
||||||
|
"check_ongoing_sims": "Seguir Sim em Curso",
|
||||||
|
"client_interval": "Intervalo do Cliente",
|
||||||
|
"delete_simulation": "Excluir Sim. {{name}}",
|
||||||
|
"end": "Terminado",
|
||||||
|
"error_creating": "Erro ao criar simulação: {{error}}",
|
||||||
|
"error_delete": "Erro ao excluir simulação: {{error}}",
|
||||||
|
"error_devices": "Dispositivos de Erro",
|
||||||
|
"error_edit": "Erro ao tentar salvar a simulação: {{error}}",
|
||||||
|
"error_edit_run": "Erro ao tentar alterar o estado de execução: {{error}}",
|
||||||
|
"error_fetching_simulations": "Erro ao buscar simulações: {{error}}",
|
||||||
|
"error_start_run": "Erro ao tentar iniciar uma simulação: {{error}}",
|
||||||
|
"gateway": "Gateway",
|
||||||
|
"healtcheck_interval": "Intervalo de verificação de saúde",
|
||||||
|
"keep_alive": "Mantenha vivo",
|
||||||
|
"last_refresh": "Última atualização",
|
||||||
|
"length": "Comprimento",
|
||||||
|
"live_devices": "Dispositivos Live",
|
||||||
|
"mac_prefix": "Prefixo MAC",
|
||||||
|
"max_associations": "Máx. Associações",
|
||||||
|
"max_clients": "Máx. Clientes",
|
||||||
|
"messages_transmitted": "Mensagens Transmitidas",
|
||||||
|
"min_associations": "Min. Associações",
|
||||||
|
"min_clients": "Min. Clientes",
|
||||||
|
"pause": "pausa",
|
||||||
|
"pause_success": "Executar em pausa!",
|
||||||
|
"prefix_length": "Obrigatório, deve ter 6 caracteres",
|
||||||
|
"previous_runs": "Execuções anteriores",
|
||||||
|
"received": "recebido",
|
||||||
|
"received_messages": "Mensagens recebidas",
|
||||||
|
"reconnect_interval": "Intervalo de reconexão",
|
||||||
|
"resume": "Currículo",
|
||||||
|
"resume_success": "Executar retomado!",
|
||||||
|
"run": "Simulação Rodada",
|
||||||
|
"run_simulation": "Executar Simulação",
|
||||||
|
"started": "Começado",
|
||||||
|
"state_interval": "Intervalo de estado",
|
||||||
|
"stop": "Pare",
|
||||||
|
"stop_success": "Run Stopped!",
|
||||||
|
"success_creating": "Simulação criada com sucesso!",
|
||||||
|
"success_run_start": "Execução iniciada com sucesso!",
|
||||||
|
"successful_delete": "Simulação excluída com sucesso!",
|
||||||
|
"successful_edit": "Simulação editada com sucesso!",
|
||||||
|
"threads": "Tópicos",
|
||||||
|
"time_full_devices": "Tempo para dispositivos completos",
|
||||||
|
"title": "Simulações",
|
||||||
|
"transmitted": "Transmitido",
|
||||||
|
"valid_cert": "Certificado Válido",
|
||||||
|
"valid_key": "Chave Válida"
|
||||||
|
},
|
||||||
"statistics": {
|
"statistics": {
|
||||||
"data": "Dados (KB)",
|
"data": "Dados (KB)",
|
||||||
"latest_statistics": "Estatísticas mais recentes",
|
"latest_statistics": "Estatísticas mais recentes",
|
||||||
@@ -606,7 +686,7 @@
|
|||||||
"check_phone": "Por favor, verifique o seu telefone para o seu código de validação",
|
"check_phone": "Por favor, verifique o seu telefone para o seu código de validação",
|
||||||
"confirm_new_password": "confirme a nova senha",
|
"confirm_new_password": "confirme a nova senha",
|
||||||
"create": "Criar usuário",
|
"create": "Criar usuário",
|
||||||
"create_failure": "Erro ao criar usuário. Certifique-se de que este endereço de e-mail ainda não esteja vinculado a uma conta.",
|
"create_failure": "Erro ao criar usuário: {{error}}",
|
||||||
"create_success": "Usuário criado com sucesso",
|
"create_success": "Usuário criado com sucesso",
|
||||||
"creating": "Criando usuário ...",
|
"creating": "Criando usuário ...",
|
||||||
"delete_avatar": "Apagar Avatar",
|
"delete_avatar": "Apagar Avatar",
|
||||||
@@ -620,6 +700,7 @@
|
|||||||
"email_address": "Endereço de e-mail",
|
"email_address": "Endereço de e-mail",
|
||||||
"enter_new_phone": "Insira seu novo número de telefone:",
|
"enter_new_phone": "Insira seu novo número de telefone:",
|
||||||
"error_fetching_users": "Erro ao buscar usuários: {{error}}",
|
"error_fetching_users": "Erro ao buscar usuários: {{error}}",
|
||||||
|
"error_retrieving": "Erro ao recuperar usuário",
|
||||||
"error_sending_code": "Erro ao tentar enviar o código de validação. Por favor, confirme se o seu número de telefone é válido.",
|
"error_sending_code": "Erro ao tentar enviar o código de validação. Por favor, confirme se o seu número de telefone é válido.",
|
||||||
"force_password_change": "Forçar mudança de senha no login",
|
"force_password_change": "Forçar mudança de senha no login",
|
||||||
"id": "ID do usuário.",
|
"id": "ID do usuário.",
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ const DetailsModal = ({ t, show, toggle, details, commandUuid }) => (
|
|||||||
</div>
|
</div>
|
||||||
</CModalHeader>
|
</CModalHeader>
|
||||||
<CModalBody>
|
<CModalBody>
|
||||||
<pre className="ignore">{JSON.stringify(details, null, 4)}</pre>
|
<pre className="ignore">{JSON.stringify(details, null, 2)}</pre>
|
||||||
</CModalBody>
|
</CModalBody>
|
||||||
</CModal>
|
</CModal>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ const initialState = {
|
|||||||
error: false,
|
error: false,
|
||||||
},
|
},
|
||||||
userRole: {
|
userRole: {
|
||||||
value: 'admin',
|
value: 'accounting',
|
||||||
error: false,
|
error: false,
|
||||||
},
|
},
|
||||||
notes: {
|
notes: {
|
||||||
@@ -42,16 +42,11 @@ const initialState = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const CreateUserModal = ({ show, toggle, getUsers }) => {
|
const CreateUserModal = ({ show, toggle, getUsers, policies }) => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { currentToken, endpoints } = useAuth();
|
const { currentToken, endpoints } = useAuth();
|
||||||
const { addToast } = useToast();
|
const { addToast } = useToast();
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [policies, setPolicies] = useState({
|
|
||||||
passwordPolicy: '',
|
|
||||||
passwordPattern: '',
|
|
||||||
accessPolicy: '',
|
|
||||||
});
|
|
||||||
const [formFields, updateFieldWithId, updateField, setFormFields] = useFormFields(initialState);
|
const [formFields, updateFieldWithId, updateField, setFormFields] = useFormFields(initialState);
|
||||||
|
|
||||||
const toggleChange = () => {
|
const toggleChange = () => {
|
||||||
@@ -107,10 +102,10 @@ const CreateUserModal = ({ show, toggle, getUsers }) => {
|
|||||||
});
|
});
|
||||||
toggle();
|
toggle();
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch((e) => {
|
||||||
addToast({
|
addToast({
|
||||||
title: t('common.error'),
|
title: t('common.error'),
|
||||||
body: t('user.create_failure'),
|
body: t('user.create_failure', { error: e.response?.data?.ErrorDescription }),
|
||||||
color: 'danger',
|
color: 'danger',
|
||||||
autohide: true,
|
autohide: true,
|
||||||
});
|
});
|
||||||
@@ -122,23 +117,6 @@ const CreateUserModal = ({ show, toggle, getUsers }) => {
|
|||||||
setLoading(false);
|
setLoading(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const getPasswordPolicy = () => {
|
|
||||||
axiosInstance
|
|
||||||
.post(`${endpoints.owsec}/api/v1/oauth2?requirements=true`, {})
|
|
||||||
.then((response) => {
|
|
||||||
const newPolicies = response.data;
|
|
||||||
newPolicies.accessPolicy = `${endpoints.owsec}${newPolicies.accessPolicy}`;
|
|
||||||
newPolicies.passwordPolicy = `${endpoints.owsec}${newPolicies.passwordPolicy}`;
|
|
||||||
setPolicies(response.data);
|
|
||||||
})
|
|
||||||
.catch(() => {});
|
|
||||||
};
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (policies.passwordPattern.length === 0) getPasswordPolicy();
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setFormFields(initialState);
|
setFormFields(initialState);
|
||||||
}, [show]);
|
}, [show]);
|
||||||
@@ -177,6 +155,7 @@ CreateUserModal.propTypes = {
|
|||||||
show: PropTypes.bool.isRequired,
|
show: PropTypes.bool.isRequired,
|
||||||
toggle: PropTypes.func.isRequired,
|
toggle: PropTypes.func.isRequired,
|
||||||
getUsers: PropTypes.func.isRequired,
|
getUsers: PropTypes.func.isRequired,
|
||||||
|
policies: PropTypes.instanceOf(Object).isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default React.memo(CreateUserModal);
|
export default React.memo(CreateUserModal);
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ const DeviceConfigurationModal = ({ show, toggle, configuration }) => (
|
|||||||
<CModalTitle className="text-dark">{t('configuration.title')}</CModalTitle>
|
<CModalTitle className="text-dark">{t('configuration.title')}</CModalTitle>
|
||||||
</CModalHeader>
|
</CModalHeader>
|
||||||
<CModalBody>
|
<CModalBody>
|
||||||
<pre className="ignore">{JSON.stringify(configuration, null, 4)}</pre>
|
<pre className="ignore">{JSON.stringify(configuration, null, 2)}</pre>
|
||||||
</CModalBody>
|
</CModalBody>
|
||||||
<CModalFooter>
|
<CModalFooter>
|
||||||
<CButton color="secondary" onClick={toggle}>
|
<CButton color="secondary" onClick={toggle}>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import React, { useEffect, useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { useHistory, useLocation } from 'react-router-dom';
|
import { useHistory } from 'react-router-dom';
|
||||||
import axiosInstance from 'utils/axiosInstance';
|
import axiosInstance from 'utils/axiosInstance';
|
||||||
import { getItem, setItem } from 'utils/localStorageHelper';
|
import { getItem, setItem } from 'utils/localStorageHelper';
|
||||||
import DeviceSearchBar from 'components/DeviceSearchBar';
|
import DeviceSearchBar from 'components/DeviceSearchBar';
|
||||||
@@ -16,8 +16,7 @@ const DeviceList = () => {
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { addToast } = useToast();
|
const { addToast } = useToast();
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
const { search } = useLocation();
|
const [page, setPage] = useState(parseInt(sessionStorage.getItem('deviceTable') ?? 0, 10));
|
||||||
const page = new URLSearchParams(search).get('page');
|
|
||||||
const { currentToken, endpoints } = useAuth();
|
const { currentToken, endpoints } = useAuth();
|
||||||
const [upgradeStatus, setUpgradeStatus] = useState({
|
const [upgradeStatus, setUpgradeStatus] = useState({
|
||||||
loading: false,
|
loading: false,
|
||||||
@@ -225,13 +224,15 @@ const DeviceList = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const updatePageCount = ({ selected: selectedPage }) => {
|
const updatePageCount = ({ selected: selectedPage }) => {
|
||||||
history.push(`/devices?page=${selectedPage}`);
|
sessionStorage.setItem('deviceTable', selectedPage);
|
||||||
|
setPage(selectedPage);
|
||||||
getDeviceInformation(selectedPage);
|
getDeviceInformation(selectedPage);
|
||||||
};
|
};
|
||||||
|
|
||||||
const upgradeToLatest = (device) => {
|
const upgradeToLatest = (device) => {
|
||||||
setUpgradeStatus({
|
setUpgradeStatus({
|
||||||
loading: true,
|
loading: true,
|
||||||
|
serialNumber: device.serialNumber,
|
||||||
});
|
});
|
||||||
|
|
||||||
const options = {
|
const options = {
|
||||||
@@ -354,9 +355,6 @@ const DeviceList = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (page === undefined || page === null || Number.isNaN(page)) {
|
|
||||||
history.push(`/devices?page=0`);
|
|
||||||
}
|
|
||||||
getCount();
|
getCount();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ const DeviceLogs = () => {
|
|||||||
|
|
||||||
const getDetails = (index, logDetails) => {
|
const getDetails = (index, logDetails) => {
|
||||||
if (details.includes(index))
|
if (details.includes(index))
|
||||||
return <pre className="ignore">{JSON.stringify(logDetails, null, 4)}</pre>;
|
return <pre className="ignore">{JSON.stringify(logDetails, null, 2)}</pre>;
|
||||||
return <pre className="ignore" />;
|
return <pre className="ignore" />;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,28 @@
|
|||||||
import React, { useEffect, useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { CButton, CModal, CModalBody, CModalHeader, CModalTitle, CPopover } from '@coreui/react';
|
import {
|
||||||
|
CButton,
|
||||||
|
CModal,
|
||||||
|
CModalBody,
|
||||||
|
CModalHeader,
|
||||||
|
CModalTitle,
|
||||||
|
CPopover,
|
||||||
|
CNav,
|
||||||
|
CNavLink,
|
||||||
|
CTabPane,
|
||||||
|
CTabContent,
|
||||||
|
} from '@coreui/react';
|
||||||
import CIcon from '@coreui/icons-react';
|
import CIcon from '@coreui/icons-react';
|
||||||
import { cilPencil, cilSave, cilX } from '@coreui/icons';
|
import { cilPencil, cilSave, cilX } from '@coreui/icons';
|
||||||
import axiosInstance from 'utils/axiosInstance';
|
import axiosInstance from 'utils/axiosInstance';
|
||||||
import { useFormFields, useAuth, useToast, FirmwareDetailsForm } from 'ucentral-libs';
|
import {
|
||||||
|
useFormFields,
|
||||||
|
useAuth,
|
||||||
|
useToast,
|
||||||
|
FirmwareDetailsForm,
|
||||||
|
DetailedNotesTable,
|
||||||
|
} from 'ucentral-libs';
|
||||||
|
|
||||||
const initialState = {
|
const initialState = {
|
||||||
created: {
|
created: {
|
||||||
@@ -33,11 +50,6 @@ const initialState = {
|
|||||||
error: false,
|
error: false,
|
||||||
editable: true,
|
editable: true,
|
||||||
},
|
},
|
||||||
owner: {
|
|
||||||
value: '',
|
|
||||||
error: false,
|
|
||||||
editable: true,
|
|
||||||
},
|
|
||||||
revision: {
|
revision: {
|
||||||
value: '',
|
value: '',
|
||||||
error: false,
|
error: false,
|
||||||
@@ -65,6 +77,7 @@ const EditFirmwareModal = ({ show, toggle, firmwareId, refreshTable }) => {
|
|||||||
const { addToast } = useToast();
|
const { addToast } = useToast();
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [editing, setEditing] = useState(false);
|
const [editing, setEditing] = useState(false);
|
||||||
|
const [index, setIndex] = useState(0);
|
||||||
const [firmware, updateWithId, updateWithKey, setFirmware] = useFormFields(initialState);
|
const [firmware, updateWithId, updateWithKey, setFirmware] = useFormFields(initialState);
|
||||||
|
|
||||||
const getFirmware = () => {
|
const getFirmware = () => {
|
||||||
@@ -168,6 +181,7 @@ const EditFirmwareModal = ({ show, toggle, firmwareId, refreshTable }) => {
|
|||||||
if (show) {
|
if (show) {
|
||||||
getFirmware();
|
getFirmware();
|
||||||
setEditing(false);
|
setEditing(false);
|
||||||
|
setIndex(0);
|
||||||
}
|
}
|
||||||
}, [show]);
|
}, [show]);
|
||||||
|
|
||||||
@@ -201,14 +215,48 @@ const EditFirmwareModal = ({ show, toggle, firmwareId, refreshTable }) => {
|
|||||||
</CPopover>
|
</CPopover>
|
||||||
</div>
|
</div>
|
||||||
</CModalHeader>
|
</CModalHeader>
|
||||||
<CModalBody>
|
<CModalBody className="px-3 pt-0">
|
||||||
<FirmwareDetailsForm
|
<CNav variant="tabs" className="mb-0 p-0">
|
||||||
t={t}
|
<CNavLink
|
||||||
fields={firmware}
|
className="font-weight-bold"
|
||||||
addNote={addNote}
|
href="#"
|
||||||
updateFieldsWithId={updateWithId}
|
active={index === 0}
|
||||||
editing={editing}
|
onClick={() => setIndex(0)}
|
||||||
/>
|
>
|
||||||
|
{t('common.main')}
|
||||||
|
</CNavLink>
|
||||||
|
<CNavLink
|
||||||
|
className="font-weight-bold"
|
||||||
|
href="#"
|
||||||
|
active={index === 1}
|
||||||
|
onClick={() => setIndex(1)}
|
||||||
|
>
|
||||||
|
{t('configuration.notes')}
|
||||||
|
</CNavLink>
|
||||||
|
</CNav>
|
||||||
|
<CTabContent>
|
||||||
|
<CTabPane active={index === 0} className="pt-2">
|
||||||
|
{index === 0 ? (
|
||||||
|
<FirmwareDetailsForm
|
||||||
|
t={t}
|
||||||
|
fields={firmware}
|
||||||
|
updateFieldsWithId={updateWithId}
|
||||||
|
editing={editing}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
</CTabPane>
|
||||||
|
<CTabPane active={index === 1}>
|
||||||
|
{index === 1 ? (
|
||||||
|
<DetailedNotesTable
|
||||||
|
t={t}
|
||||||
|
notes={firmware.notes.value}
|
||||||
|
addNote={addNote}
|
||||||
|
loading={loading}
|
||||||
|
editable={editing}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
</CTabPane>
|
||||||
|
</CTabContent>
|
||||||
</CModalBody>
|
</CModalBody>
|
||||||
</CModal>
|
</CModal>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ const initialState = {
|
|||||||
changePassword: {
|
changePassword: {
|
||||||
value: false,
|
value: false,
|
||||||
error: false,
|
error: false,
|
||||||
editable: false,
|
editable: true,
|
||||||
},
|
},
|
||||||
currentPassword: {
|
currentPassword: {
|
||||||
value: '',
|
value: '',
|
||||||
@@ -36,7 +36,7 @@ const initialState = {
|
|||||||
editable: true,
|
editable: true,
|
||||||
},
|
},
|
||||||
userRole: {
|
userRole: {
|
||||||
value: '',
|
value: 'accounting',
|
||||||
error: false,
|
error: false,
|
||||||
editable: true,
|
editable: true,
|
||||||
},
|
},
|
||||||
@@ -46,7 +46,7 @@ const initialState = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const EditUserModal = ({ show, toggle, userId, getUsers }) => {
|
const EditUserModal = ({ show, toggle, userId, getUsers, policies }) => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { currentToken, endpoints } = useAuth();
|
const { currentToken, endpoints } = useAuth();
|
||||||
const { addToast } = useToast();
|
const { addToast } = useToast();
|
||||||
@@ -54,23 +54,6 @@ const EditUserModal = ({ show, toggle, userId, getUsers }) => {
|
|||||||
const [initialUser, setInitialUser] = useState({});
|
const [initialUser, setInitialUser] = useState({});
|
||||||
const [editing, setEditing] = useState(false);
|
const [editing, setEditing] = useState(false);
|
||||||
const [user, updateWithId, updateWithKey, setUser] = useUser(initialState);
|
const [user, updateWithId, updateWithKey, setUser] = useUser(initialState);
|
||||||
const [policies, setPolicies] = useState({
|
|
||||||
passwordPolicy: '',
|
|
||||||
passwordPattern: '',
|
|
||||||
accessPolicy: '',
|
|
||||||
});
|
|
||||||
|
|
||||||
const getPasswordPolicy = () => {
|
|
||||||
axiosInstance
|
|
||||||
.post(`${endpoints.owsec}/api/v1/oauth2?requirements=true`, {})
|
|
||||||
.then((response) => {
|
|
||||||
const newPolicies = response.data;
|
|
||||||
newPolicies.accessPolicy = `${endpoints.owsec}${newPolicies.accessPolicy}`;
|
|
||||||
newPolicies.passwordPolicy = `${endpoints.owsec}${newPolicies.passwordPolicy}`;
|
|
||||||
setPolicies(response.data);
|
|
||||||
})
|
|
||||||
.catch(() => {});
|
|
||||||
};
|
|
||||||
|
|
||||||
const getUser = () => {
|
const getUser = () => {
|
||||||
const options = {
|
const options = {
|
||||||
@@ -96,7 +79,15 @@ const EditUserModal = ({ show, toggle, userId, getUsers }) => {
|
|||||||
setInitialUser({ ...initialState, ...newUser });
|
setInitialUser({ ...initialState, ...newUser });
|
||||||
setUser({ ...initialState, ...newUser });
|
setUser({ ...initialState, ...newUser });
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {
|
||||||
|
addToast({
|
||||||
|
title: t('common.error'),
|
||||||
|
body: t('user.error_retrieving'),
|
||||||
|
color: 'danger',
|
||||||
|
autohide: true,
|
||||||
|
});
|
||||||
|
toggle();
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const toggleEditing = () => {
|
const toggleEditing = () => {
|
||||||
@@ -134,13 +125,14 @@ const EditUserModal = ({ show, toggle, userId, getUsers }) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const newNotes = [];
|
const newNotes = [];
|
||||||
|
|
||||||
for (let i = 0; i < user.notes.value.length; i += 1) {
|
for (let i = 0; i < user.notes.value.length; i += 1) {
|
||||||
if (user.notes.value[i].new) newNotes.push({ note: user.notes.value[i].note });
|
if (user.notes.value[i].new) newNotes.push({ note: user.notes.value[i].note });
|
||||||
}
|
}
|
||||||
|
|
||||||
parameters.notes = newNotes;
|
parameters.notes = newNotes;
|
||||||
|
|
||||||
if (newData) {
|
if (newData || newNotes.length > 0) {
|
||||||
const options = {
|
const options = {
|
||||||
headers: {
|
headers: {
|
||||||
Accept: 'application/json',
|
Accept: 'application/json',
|
||||||
@@ -200,13 +192,11 @@ const EditUserModal = ({ show, toggle, userId, getUsers }) => {
|
|||||||
if (userId) {
|
if (userId) {
|
||||||
getUser();
|
getUser();
|
||||||
}
|
}
|
||||||
if (policies.passwordPattern.length === 0) {
|
|
||||||
getPasswordPolicy();
|
|
||||||
}
|
|
||||||
}, [userId]);
|
}, [userId]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (show) {
|
if (show) {
|
||||||
|
getUser();
|
||||||
setEditing(false);
|
setEditing(false);
|
||||||
}
|
}
|
||||||
}, [show]);
|
}, [show]);
|
||||||
@@ -233,6 +223,7 @@ EditUserModal.propTypes = {
|
|||||||
show: PropTypes.bool.isRequired,
|
show: PropTypes.bool.isRequired,
|
||||||
toggle: PropTypes.func.isRequired,
|
toggle: PropTypes.func.isRequired,
|
||||||
getUsers: PropTypes.func.isRequired,
|
getUsers: PropTypes.func.isRequired,
|
||||||
|
policies: PropTypes.instanceOf(Object).isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default React.memo(EditUserModal);
|
export default React.memo(EditUserModal);
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ const FirmwareDashboard = () => {
|
|||||||
if (
|
if (
|
||||||
parsedData.numberOfDevices === undefined ||
|
parsedData.numberOfDevices === undefined ||
|
||||||
Number.isNaN(parsedData.numberOfDevices) ||
|
Number.isNaN(parsedData.numberOfDevices) ||
|
||||||
parsedData === 0
|
parsedData.numberOfDevices === 0
|
||||||
) {
|
) {
|
||||||
parsedData.latestSoftwareRate = '-';
|
parsedData.latestSoftwareRate = '-';
|
||||||
} else {
|
} else {
|
||||||
@@ -151,13 +151,17 @@ const FirmwareDashboard = () => {
|
|||||||
: 0;
|
: 0;
|
||||||
const devicesForAverage = parsedData.numberOfDevices - usingUnknownFirmwareFromArray;
|
const devicesForAverage = parsedData.numberOfDevices - usingUnknownFirmwareFromArray;
|
||||||
|
|
||||||
if (parsedData.totalSecondsOld.length > 0) {
|
if (devicesForAverage !== 0 && parsedData.totalSecondsOld.length > 0) {
|
||||||
parsedData.averageFirmwareAge =
|
parsedData.averageFirmwareAge = Math.round(
|
||||||
parsedData.totalSecondsOld[0].value /
|
parsedData.totalSecondsOld[0].value /
|
||||||
(devicesForAverage > 0 ? devicesForAverage : 1) /
|
(devicesForAverage > 0 ? devicesForAverage : 1) /
|
||||||
(24 * 60 * 60);
|
(24 * 60 * 60),
|
||||||
|
);
|
||||||
|
parsedData.averageFirmwareAge = `${parsedData.averageFirmwareAge} ${
|
||||||
|
Math.round(parsedData.averageFirmwareAge) > 0 ? t('common.days') : t('common.day')
|
||||||
|
}`;
|
||||||
} else {
|
} else {
|
||||||
parsedData.averageFirmwareAge = 0;
|
parsedData.averageFirmwareAge = '-';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Latest firmware distribution
|
// Latest firmware distribution
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ const LatestStatisticsModal = ({ show, toggle }) => {
|
|||||||
</div>
|
</div>
|
||||||
</CModalHeader>
|
</CModalHeader>
|
||||||
<CModalBody>
|
<CModalBody>
|
||||||
<pre className="ignore">{JSON.stringify(latestStats, null, 4)}</pre>
|
<pre className="ignore">{JSON.stringify(latestStats, null, 2)}</pre>
|
||||||
</CModalBody>
|
</CModalBody>
|
||||||
</CModal>
|
</CModal>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ const ActionModal = ({ show, toggleModal }) => {
|
|||||||
const [waiting, setWaiting] = useState(false);
|
const [waiting, setWaiting] = useState(false);
|
||||||
const [result, setResult] = useState(null);
|
const [result, setResult] = useState(null);
|
||||||
const [chosenDate, setChosenDate] = useState(new Date().toString());
|
const [chosenDate, setChosenDate] = useState(new Date().toString());
|
||||||
const [isNow, setIsNow] = useState(false);
|
const [isNow, setIsNow] = useState(true);
|
||||||
|
|
||||||
const toggleNow = () => {
|
const toggleNow = () => {
|
||||||
setIsNow(!isNow);
|
setIsNow(!isNow);
|
||||||
@@ -48,6 +48,7 @@ const ActionModal = ({ show, toggleModal }) => {
|
|||||||
setResult(null);
|
setResult(null);
|
||||||
setWaiting(false);
|
setWaiting(false);
|
||||||
setChosenDate(new Date().toString());
|
setChosenDate(new Date().toString());
|
||||||
|
setIsNow(true);
|
||||||
}
|
}
|
||||||
}, [show]);
|
}, [show]);
|
||||||
|
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ const TelemetryModal = ({ show, toggle }) => {
|
|||||||
</CRow>
|
</CRow>
|
||||||
<CRow>
|
<CRow>
|
||||||
<CCol>
|
<CCol>
|
||||||
<pre>{JSON.stringify(lastMessage, null, '\t')}</pre>
|
<pre>{JSON.stringify(lastMessage, null, 2)}</pre>
|
||||||
</CCol>
|
</CCol>
|
||||||
</CRow>
|
</CRow>
|
||||||
<CRow>
|
<CRow>
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ const TheLayout = () => {
|
|||||||
endpoints={endpoints}
|
endpoints={endpoints}
|
||||||
user={user}
|
user={user}
|
||||||
avatar={avatar}
|
avatar={avatar}
|
||||||
|
hideBreadcrumb
|
||||||
/>
|
/>
|
||||||
<div className="c-body">
|
<div className="c-body">
|
||||||
<ToastProvider>
|
<ToastProvider>
|
||||||
|
|||||||
@@ -1,22 +1,44 @@
|
|||||||
import React, { useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import DeviceList from 'components/DeviceListTable';
|
import DeviceList from 'components/DeviceListTable';
|
||||||
import DeviceDashboard from 'components/DeviceDashboard';
|
import DeviceDashboard from 'components/DeviceDashboard';
|
||||||
import { CCard, CCardBody, CNav, CNavLink, CTabPane, CTabContent } from '@coreui/react';
|
import {
|
||||||
|
CCard,
|
||||||
|
CCardBody,
|
||||||
|
CNav,
|
||||||
|
CNavLink,
|
||||||
|
CTabPane,
|
||||||
|
CTabContent,
|
||||||
|
CCardHeader,
|
||||||
|
} from '@coreui/react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
const DeviceListPage = () => {
|
const DeviceListPage = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const [index, setIndex] = useState(0);
|
const [index, setIndex] = useState(0);
|
||||||
|
|
||||||
|
const updateNav = (target) => {
|
||||||
|
sessionStorage.setItem('devicePage', target);
|
||||||
|
setIndex(target);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const target = sessionStorage.getItem('devicePage');
|
||||||
|
|
||||||
|
if (target !== null) setIndex(parseInt(target, 10));
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CCard>
|
<CCard>
|
||||||
|
<CCardHeader className="dark-header">
|
||||||
|
<div className="text-value-lg mr-auto">{t('common.devices')}</div>
|
||||||
|
</CCardHeader>
|
||||||
<CCardBody className="p-0">
|
<CCardBody className="p-0">
|
||||||
<CNav variant="tabs">
|
<CNav variant="tabs">
|
||||||
<CNavLink
|
<CNavLink
|
||||||
className="font-weight-bold"
|
className="font-weight-bold"
|
||||||
href="#"
|
href="#"
|
||||||
active={index === 0}
|
active={index === 0}
|
||||||
onClick={() => setIndex(0)}
|
onClick={() => updateNav(0)}
|
||||||
>
|
>
|
||||||
{t('common.dashboard')}
|
{t('common.dashboard')}
|
||||||
</CNavLink>
|
</CNavLink>
|
||||||
@@ -24,9 +46,9 @@ const DeviceListPage = () => {
|
|||||||
className="font-weight-bold"
|
className="font-weight-bold"
|
||||||
href="#"
|
href="#"
|
||||||
active={index === 1}
|
active={index === 1}
|
||||||
onClick={() => setIndex(1)}
|
onClick={() => updateNav(1)}
|
||||||
>
|
>
|
||||||
{t('common.devices')}
|
{t('common.table')}
|
||||||
</CNavLink>
|
</CNavLink>
|
||||||
</CNav>
|
</CNav>
|
||||||
<CTabContent>
|
<CTabContent>
|
||||||
|
|||||||
@@ -2,7 +2,15 @@
|
|||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import axiosInstance from 'utils/axiosInstance';
|
import axiosInstance from 'utils/axiosInstance';
|
||||||
import { CCard, CCardBody, CNav, CNavLink, CTabPane, CTabContent } from '@coreui/react';
|
import {
|
||||||
|
CCard,
|
||||||
|
CCardBody,
|
||||||
|
CNav,
|
||||||
|
CNavLink,
|
||||||
|
CTabPane,
|
||||||
|
CTabContent,
|
||||||
|
CCardHeader,
|
||||||
|
} from '@coreui/react';
|
||||||
import { FirmwareList, useAuth, useToast } from 'ucentral-libs';
|
import { FirmwareList, useAuth, useToast } from 'ucentral-libs';
|
||||||
import FirmwareDashboard from 'components/FirmwareDashboard';
|
import FirmwareDashboard from 'components/FirmwareDashboard';
|
||||||
import EditFirmwareModal from 'components/EditFirmwareModal';
|
import EditFirmwareModal from 'components/EditFirmwareModal';
|
||||||
@@ -161,6 +169,9 @@ const FirmwareListPage = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<CCard>
|
<CCard>
|
||||||
|
<CCardHeader className="dark-header">
|
||||||
|
<div className="text-value-lg mr-auto">{t('common.firmware')}</div>
|
||||||
|
</CCardHeader>
|
||||||
<CCardBody className="p-0">
|
<CCardBody className="p-0">
|
||||||
<CNav variant="tabs">
|
<CNav variant="tabs">
|
||||||
<CNavLink
|
<CNavLink
|
||||||
@@ -177,7 +188,7 @@ const FirmwareListPage = () => {
|
|||||||
active={index === 1}
|
active={index === 1}
|
||||||
onClick={() => setIndex(1)}
|
onClick={() => setIndex(1)}
|
||||||
>
|
>
|
||||||
{t('common.firmware')}
|
{t('common.table')}
|
||||||
</CNavLink>
|
</CNavLink>
|
||||||
</CNav>
|
</CNav>
|
||||||
<CTabContent>
|
<CTabContent>
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ const Login = () => {
|
|||||||
|
|
||||||
const onKeyDown = (event, action) => {
|
const onKeyDown = (event, action) => {
|
||||||
if (event.code === 'Enter') {
|
if (event.code === 'Enter') {
|
||||||
action();
|
action(event);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -256,27 +256,47 @@ const Login = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
if (formType !== 'change-password') {
|
if (formType === 'change-password') {
|
||||||
if (
|
if (error.response?.data?.ErrorCode === 3) {
|
||||||
error.response.status === 403 &&
|
setChangeResponse({
|
||||||
error.response?.data?.ErrorDescription === 'Password change expected.'
|
text: t('login.previously_used'),
|
||||||
) {
|
error: true,
|
||||||
setFormType('change-password');
|
tried: true,
|
||||||
|
});
|
||||||
|
} else if (error.response?.data?.ErrorCode === 5) {
|
||||||
|
setChangeResponse({
|
||||||
|
text: t('common.invalid_password'),
|
||||||
|
error: true,
|
||||||
|
tried: true,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setChangeResponse({
|
||||||
|
text: t('login.change_password_error'),
|
||||||
|
error: true,
|
||||||
|
tried: true,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
} else if (error.response.status === 403) {
|
||||||
|
if (error.response?.data?.ErrorCode === 1) setFormType('change-password');
|
||||||
|
else if (error.response?.data?.ErrorCode === 2) {
|
||||||
|
setLoginResponse({
|
||||||
|
text: t('common.invalid_credentials'),
|
||||||
|
error: true,
|
||||||
|
tried: true,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setLoginResponse({
|
||||||
|
text: t('login.login_error'),
|
||||||
|
error: true,
|
||||||
|
tried: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
setLoginResponse({
|
setLoginResponse({
|
||||||
text: t('login.login_error'),
|
text: t('login.login_error'),
|
||||||
error: true,
|
error: true,
|
||||||
tried: true,
|
tried: true,
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
setChangeResponse({
|
|
||||||
text:
|
|
||||||
fields.newpassword.value === fields.password.value
|
|
||||||
? t('login.previously_used')
|
|
||||||
: t('login.change_password_error'),
|
|
||||||
error: true,
|
|
||||||
tried: true,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
@@ -285,6 +305,107 @@ const Login = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const submitForm = (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
setLoginResponse(initialResponseState);
|
||||||
|
|
||||||
|
setLoading(true);
|
||||||
|
let token = '';
|
||||||
|
|
||||||
|
const parameters = {
|
||||||
|
userId: event.target?.username?.value,
|
||||||
|
password: event.target?.password?.value,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (formType === 'change-password') {
|
||||||
|
parameters.newPassword = fields.newpassword.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
axiosInstance
|
||||||
|
.post(`${fields.ucentralsecurl.value}/api/v1/oauth2`, parameters)
|
||||||
|
.then((response) => {
|
||||||
|
// If there's MFA to do
|
||||||
|
if (response.data.method && response.data.created) {
|
||||||
|
setFormType(`validation-${response.data.method}-${response.data.uuid}`);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (response.data.userMustChangePassword) {
|
||||||
|
setFormType('change-password');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
setItem('access_token', response.data.access_token);
|
||||||
|
token = response.data.access_token;
|
||||||
|
return axiosInstance.get(`${fields.ucentralsecurl.value}/api/v1/systemEndpoints`, {
|
||||||
|
headers: {
|
||||||
|
Accept: 'application/json',
|
||||||
|
Authorization: `Bearer ${response.data.access_token}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.then((response) => {
|
||||||
|
if (response) {
|
||||||
|
const endpoints = {
|
||||||
|
owsec: fields.ucentralsecurl.value,
|
||||||
|
};
|
||||||
|
for (const endpoint of response.data.endpoints) {
|
||||||
|
endpoints[endpoint.type] = endpoint.uri;
|
||||||
|
}
|
||||||
|
if (endpoints.owgw) getGatewayUIUrl(token, endpoints.owgw);
|
||||||
|
if (endpoints.owprov) getProvUIUrl(token, endpoints.owprov);
|
||||||
|
setItem('gateway_endpoints', JSON.stringify(endpoints));
|
||||||
|
setEndpoints(endpoints);
|
||||||
|
setCurrentToken(token);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
if (formType === 'change-password') {
|
||||||
|
if (error.response?.data?.ErrorCode === 3) {
|
||||||
|
setChangeResponse({
|
||||||
|
text: t('login.previously_used'),
|
||||||
|
error: true,
|
||||||
|
tried: true,
|
||||||
|
});
|
||||||
|
} else if (error.response?.data?.ErrorCode === 5) {
|
||||||
|
setChangeResponse({
|
||||||
|
text: t('common.invalid_password'),
|
||||||
|
error: true,
|
||||||
|
tried: true,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setChangeResponse({
|
||||||
|
text: t('login.change_password_error'),
|
||||||
|
error: true,
|
||||||
|
tried: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (error.response.status === 403) {
|
||||||
|
if (error.response?.data?.ErrorCode === 1) setFormType('change-password');
|
||||||
|
else if (error.response?.data?.ErrorCode === 2) {
|
||||||
|
setLoginResponse({
|
||||||
|
text: t('common.invalid_credentials'),
|
||||||
|
error: true,
|
||||||
|
tried: true,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setLoginResponse({
|
||||||
|
text: t('login.login_error'),
|
||||||
|
error: true,
|
||||||
|
tried: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setLoginResponse({
|
||||||
|
text: t('login.login_error'),
|
||||||
|
error: true,
|
||||||
|
tried: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
setLoading(false);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const sendForgotPasswordEmail = () => {
|
const sendForgotPasswordEmail = () => {
|
||||||
setForgotResponse(initialResponseState);
|
setForgotResponse(initialResponseState);
|
||||||
|
|
||||||
@@ -426,6 +547,7 @@ const Login = () => {
|
|||||||
toggleForgotPassword={toggleForgotPassword}
|
toggleForgotPassword={toggleForgotPassword}
|
||||||
formType={formType}
|
formType={formType}
|
||||||
onKeyDown={onKeyDown}
|
onKeyDown={onKeyDown}
|
||||||
|
submitForm={submitForm}
|
||||||
sendForgotPasswordEmail={sendForgotPasswordEmail}
|
sendForgotPasswordEmail={sendForgotPasswordEmail}
|
||||||
changePasswordResponse={changePasswordResponse}
|
changePasswordResponse={changePasswordResponse}
|
||||||
cancelPasswordChange={cancelPasswordChange}
|
cancelPasswordChange={cancelPasswordChange}
|
||||||
|
|||||||
@@ -20,6 +20,23 @@ const UserListPage = () => {
|
|||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
const [deleteLoading, setDeleteLoading] = useState(false);
|
const [deleteLoading, setDeleteLoading] = useState(false);
|
||||||
const [usersPerPage, setUsersPerPage] = useState(getItem('devicesPerPage') || '10');
|
const [usersPerPage, setUsersPerPage] = useState(getItem('devicesPerPage') || '10');
|
||||||
|
const [policies, setPolicies] = useState({
|
||||||
|
passwordPolicy: '',
|
||||||
|
passwordPattern: '',
|
||||||
|
accessPolicy: '',
|
||||||
|
});
|
||||||
|
|
||||||
|
const getPasswordPolicy = () => {
|
||||||
|
axiosInstance
|
||||||
|
.post(`${endpoints.owsec}/api/v1/oauth2?requirements=true`, {})
|
||||||
|
.then((response) => {
|
||||||
|
const newPolicies = response.data;
|
||||||
|
newPolicies.accessPolicy = `${endpoints.owsec}${newPolicies.accessPolicy}`;
|
||||||
|
newPolicies.passwordPolicy = `${endpoints.owsec}${newPolicies.passwordPolicy}`;
|
||||||
|
setPolicies(response.data);
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
};
|
||||||
|
|
||||||
const toggleCreateModal = () => {
|
const toggleCreateModal = () => {
|
||||||
setShowCreateModal(!showCreateModal);
|
setShowCreateModal(!showCreateModal);
|
||||||
@@ -180,6 +197,7 @@ const UserListPage = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getUsers();
|
getUsers();
|
||||||
|
getPasswordPolicy();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -193,7 +211,7 @@ const UserListPage = () => {
|
|||||||
<div>
|
<div>
|
||||||
<UserListTable
|
<UserListTable
|
||||||
t={t}
|
t={t}
|
||||||
users={usersToDisplay}
|
users={usersToDisplay.sort((a, b) => a.email > b.email)}
|
||||||
loading={loading}
|
loading={loading}
|
||||||
usersPerPage={usersPerPage}
|
usersPerPage={usersPerPage}
|
||||||
setUsersPerPage={updateUsersPerPage}
|
setUsersPerPage={updateUsersPerPage}
|
||||||
@@ -206,12 +224,18 @@ const UserListPage = () => {
|
|||||||
toggleEdit={toggleEditModal}
|
toggleEdit={toggleEditModal}
|
||||||
refreshUsers={getUsers}
|
refreshUsers={getUsers}
|
||||||
/>
|
/>
|
||||||
<CreateUserModal show={showCreateModal} toggle={toggleCreateModal} getUsers={getUsers} />
|
<CreateUserModal
|
||||||
|
show={showCreateModal}
|
||||||
|
toggle={toggleCreateModal}
|
||||||
|
getUsers={getUsers}
|
||||||
|
policies={policies}
|
||||||
|
/>
|
||||||
<EditUserModal
|
<EditUserModal
|
||||||
show={showEditModal}
|
show={showEditModal}
|
||||||
toggle={toggleEditModal}
|
toggle={toggleEditModal}
|
||||||
userId={userToEdit}
|
userId={userToEdit}
|
||||||
getUsers={getUsers}
|
getUsers={getUsers}
|
||||||
|
policies={policies}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -20,10 +20,12 @@ axiosInstance.interceptors.response.use(
|
|||||||
case 401:
|
case 401:
|
||||||
break;
|
break;
|
||||||
case 403:
|
case 403:
|
||||||
localStorage.removeItem('access_token');
|
if (error.response.data?.ErrorCode === 9) {
|
||||||
localStorage.removeItem('gateway_endpoints');
|
localStorage.removeItem('access_token');
|
||||||
sessionStorage.clear();
|
localStorage.removeItem('gateway_endpoints');
|
||||||
window.location.href = '/';
|
sessionStorage.clear();
|
||||||
|
window.location.href = '/';
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user