Merge pull request #90 from stephb9959/dev

Dashboard bugfixes, user modal fixes
This commit is contained in:
Charles
2021-11-11 16:03:35 -05:00
committed by GitHub
9 changed files with 74 additions and 23 deletions

18
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "ucentral-client",
"version": "2.3.16",
"version": "2.3.17",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "ucentral-client",
"version": "2.3.16",
"version": "2.3.17",
"dependencies": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",
@@ -32,7 +32,7 @@
"react-tooltip": "^4.2.21",
"react-widgets": "^5.1.1",
"sass": "^1.35.1",
"ucentral-libs": "^1.0.22",
"ucentral-libs": "^1.0.28",
"uuid": "^8.3.2"
},
"devDependencies": {
@@ -14842,9 +14842,9 @@
}
},
"node_modules/ucentral-libs": {
"version": "1.0.23",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-1.0.23.tgz",
"integrity": "sha512-R9GUTPFtCqvQte2csyZ0DUs2DAQ0T05chmU/6sh8gw3QTlaYPondj1F+SgXOuQUHYysKXf/+gwwRC1cEsTVT+g==",
"version": "1.0.28",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-1.0.28.tgz",
"integrity": "sha512-RWxJ2tOvgm5c5ZaLxEEtm1FKHbdDC7Az+mBZDXwZDNrNIHt2AWks6w4n1CJC0PJIZo6JNoMtm4/BfCzhi2ujhw==",
"dependencies": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",
@@ -27716,9 +27716,9 @@
}
},
"ucentral-libs": {
"version": "1.0.23",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-1.0.23.tgz",
"integrity": "sha512-R9GUTPFtCqvQte2csyZ0DUs2DAQ0T05chmU/6sh8gw3QTlaYPondj1F+SgXOuQUHYysKXf/+gwwRC1cEsTVT+g==",
"version": "1.0.28",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-1.0.28.tgz",
"integrity": "sha512-RWxJ2tOvgm5c5ZaLxEEtm1FKHbdDC7Az+mBZDXwZDNrNIHt2AWks6w4n1CJC0PJIZo6JNoMtm4/BfCzhi2ujhw==",
"requires": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",

View File

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

View File

@@ -52,6 +52,7 @@
"commands_executed": "Ausgeführte Befehle",
"compatible": "kompatibel",
"completed": "Abgeschlossen",
"concurrent_devices": "Gleichzeitige Geräte",
"config_id": "Konfigurations ID",
"confirm": "Bestätigen",
"confirm_stop_editing": "Möchten Sie die Bearbeitung wirklich beenden? Dadurch werden alle nicht gespeicherten Änderungen, die Sie vorgenommen haben, verworfen.",
@@ -297,8 +298,12 @@
"healthchecks_title": "Healthchecks löschen"
},
"device": {
"certificate_explanation": "Zertifikate der angeschlossenen Geräte",
"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": {
"log": "Protokoll",
@@ -324,6 +329,7 @@
"entity": "Entität",
"error_fetch_entity": "Fehler beim Abrufen von Entitätsinformationen",
"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",
"higher_priority": "Stellen Sie eine höhere Priorität ein",
"ip_detection": "IP-Erkennung",
@@ -335,6 +341,7 @@
"only_unassigned": "Nur nicht zugewiesen",
"select_entity": "Wählen Sie diese Entität aus",
"selected_entity": "Ausgewählte Einheit",
"selected_map": "Ausgewählte Karte",
"update_failure_error": "Fehler beim Versuch, die Entität zu aktualisieren: {{error}}",
"valid_serial": "Muss eine gültige Seriennummer sein (12 HEX-Zeichen)",
"venues": "Veranstaltungsorte"
@@ -347,6 +354,7 @@
"warning": "Achtung: Nach dem Absenden kann dies nicht rückgängig gemacht werden"
},
"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",
"choose_custom": "Wählen",
"details_title": "Bild #{{image}} Details",
@@ -359,6 +367,7 @@
"image": "Bild",
"image_date": "Bilddatum",
"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",
"newer_firmware_available": "Neuere Versionen verfügbar",
"reinstall_latest": "Neu installieren",

View File

@@ -52,6 +52,7 @@
"commands_executed": "Commands Executed",
"compatible": "Compatible",
"completed": "Completed",
"concurrent_devices": "Concurrent Devices",
"config_id": "Config. Id",
"confirm": "Confirm",
"confirm_stop_editing": "Are you sure you want to stop editing? This will cancel any unsaved changes you have made.",
@@ -297,8 +298,12 @@
"healthchecks_title": "Delete Healthchecks"
},
"device": {
"certificate_explanation": "Certificates of connected devices",
"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": {
"log": "Log",
@@ -324,6 +329,7 @@
"entity": "Entity",
"error_fetch_entity": "Error while fetching entity information",
"error_fetching": "Error while fetching entities",
"error_fetching_map": "Error fetching map: {{error}}",
"error_saving": "Error while saving entity",
"higher_priority": "Make Higher Priority",
"ip_detection": "IP Detection",
@@ -335,6 +341,7 @@
"only_unassigned": "Only Unassigned",
"select_entity": "Select this Entity",
"selected_entity": "Selected Entity",
"selected_map": "Selected Map",
"update_failure_error": "Error while trying to update entity: {{error}}",
"valid_serial": "Needs to be a valid serial number (12 HEX characters)",
"venues": "Venues"
@@ -347,6 +354,7 @@
"warning": "Warning: Once you submit this cannot be reverted"
},
"firmware": {
"age_explanation": "Average number of days for all devices from which we can obtain that value",
"average_age": "Average Firmware Age",
"choose_custom": "Choose",
"details_title": "Image #{{image}} Details",
@@ -359,6 +367,7 @@
"image": "Image",
"image_date": "Image Date",
"installed_firmware": "Installed Firmware",
"latest_explanation": "Devices running recognized firmware at its latest version",
"latest_version_installed": "Latest Version Installed",
"newer_firmware_available": "Newer Revisions Available",
"reinstall_latest": "Reinstall ",

View File

@@ -52,6 +52,7 @@
"commands_executed": "Comandos ejecutados",
"compatible": "Compatible",
"completed": "terminado",
"concurrent_devices": "Dispositivos concurrentes",
"config_id": "Config. Identificación",
"confirm": "Confirmar",
"confirm_stop_editing": "¿Estás seguro de que quieres dejar de editar? Esto cancelará cualquier cambio no guardado que haya realizado.",
@@ -297,8 +298,12 @@
"healthchecks_title": "Eliminar comprobaciones de estado"
},
"device": {
"certificate_explanation": "Certificados de dispositivos conectados",
"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": {
"log": "Iniciar sesión",
@@ -324,6 +329,7 @@
"entity": "Entidad",
"error_fetch_entity": "Error al obtener la información de la entidad",
"error_fetching": "Error al recuperar entidades",
"error_fetching_map": "Error al obtener el mapa: {{error}}",
"error_saving": "Error al guardar la entidad",
"higher_priority": "Dar mayor prioridad",
"ip_detection": "Detección de IP",
@@ -335,6 +341,7 @@
"only_unassigned": "Solo sin asignar",
"select_entity": "Seleccione esta entidad",
"selected_entity": "Entidad seleccionada",
"selected_map": "Mapa seleccionado",
"update_failure_error": "Error al intentar actualizar la entidad: {{error}}",
"valid_serial": "Debe ser un número de serie válido (12 caracteres HEX)",
"venues": "Sedes"
@@ -347,6 +354,7 @@
"warning": "Advertencia: una vez que envíe, esto no se podrá revertir"
},
"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",
"choose_custom": "Escoger",
"details_title": "Detalles de la imagen n. °{{image}} ",
@@ -359,6 +367,7 @@
"image": "Imagen",
"image_date": "Fecha de la imagen",
"installed_firmware": "Firmware instalado",
"latest_explanation": "Dispositivos que ejecutan firmware reconocido en su última versión",
"latest_version_installed": "Última versión instalada",
"newer_firmware_available": "Nuevas revisiones disponibles",
"reinstall_latest": "Reinstalar",

View File

@@ -52,6 +52,7 @@
"commands_executed": "commandes exécutées",
"compatible": "Compatible",
"completed": "Terminé",
"concurrent_devices": "Périphériques simultanés",
"config_id": "Config. Identifiant",
"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.",
@@ -297,8 +298,12 @@
"healthchecks_title": "Supprimer les vérifications d'état"
},
"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_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": {
"log": "Bûche",
@@ -324,6 +329,7 @@
"entity": "Entité",
"error_fetch_entity": "Erreur lors de la récupération des informations sur l'entité",
"error_fetching": "Erreur lors de la récupération des entités",
"error_fetching_map": "Erreur lors de la récupération de la carte : {{error}}",
"error_saving": "Erreur lors de l'enregistrement de l'entité",
"higher_priority": "Faire une priorité plus élevée",
"ip_detection": "Détection IP",
@@ -335,6 +341,7 @@
"only_unassigned": "Uniquement non attribué",
"select_entity": "Sélectionnez cette entité",
"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}}",
"valid_serial": "Doit être un numéro de série valide (12 caractères HEX)",
"venues": "Les lieux"
@@ -347,6 +354,7 @@
"warning": "Avertissement : Une fois que vous avez soumis, cela ne peut pas être annulé"
},
"firmware": {
"age_explanation": "Nombre moyen de jours pour tous les appareils à partir desquels nous pouvons obtenir cette valeur",
"average_age": "Âge moyen du micrologiciel",
"choose_custom": "Choisir",
"details_title": "Image #{{image}} Détails",
@@ -359,6 +367,7 @@
"image": "Image",
"image_date": "Date de l'image",
"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",
"newer_firmware_available": "Révisions plus récentes disponibles",
"reinstall_latest": "Réinstaller",

View File

@@ -52,6 +52,7 @@
"commands_executed": "Comandos Executados",
"compatible": "Compatível",
"completed": "Concluído",
"concurrent_devices": "Dispositivos Simultâneos",
"config_id": "Config. Identidade",
"confirm": "confirme",
"confirm_stop_editing": "Tem certeza que deseja parar de editar? Isso cancelará todas as alterações não salvas que você fez.",
@@ -297,8 +298,12 @@
"healthchecks_title": "Excluir verificações de saúde"
},
"device": {
"certificate_explanation": "Certificados de dispositivos conectados",
"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": {
"log": "Registro",
@@ -324,6 +329,7 @@
"entity": "Entidade",
"error_fetch_entity": "Erro ao buscar informações da entidade",
"error_fetching": "Erro ao buscar entidades",
"error_fetching_map": "Erro ao buscar mapa: {{error}}",
"error_saving": "Erro ao salvar entidade",
"higher_priority": "Dê maior prioridade",
"ip_detection": "Detecção de IP",
@@ -335,6 +341,7 @@
"only_unassigned": "Apenas não atribuídos",
"select_entity": "Selecione esta Entidade",
"selected_entity": "Entidade Selecionada",
"selected_map": "Mapa Selecionado",
"update_failure_error": "Erro ao tentar atualizar a entidade: {{error}}",
"valid_serial": "Precisa ser um número de série válido (12 caracteres HEX)",
"venues": "Locais"
@@ -347,6 +354,7 @@
"warning": "Aviso: depois de enviar, isso não pode ser revertido"
},
"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",
"choose_custom": "Escolher",
"details_title": "Detalhes da imagem #{{image}} ",
@@ -359,6 +367,7 @@
"image": "Imagem",
"image_date": "Data da Imagem",
"installed_firmware": "Firmware Instalado",
"latest_explanation": "Dispositivos executando firmware reconhecido em sua versão mais recente",
"latest_version_installed": "Última versão instalada",
"newer_firmware_available": "Novas revisões disponíveis",
"reinstall_latest": "Reinstalar",

View File

@@ -13,7 +13,7 @@ const initialState = {
changePassword: {
value: false,
error: false,
editable: false,
editable: true,
},
currentPassword: {
value: '',
@@ -134,13 +134,14 @@ const EditUserModal = ({ show, toggle, userId, getUsers }) => {
}
const newNotes = [];
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 });
}
parameters.notes = newNotes;
if (newData) {
if (newData || newNotes.length > 0) {
const options = {
headers: {
Accept: 'application/json',
@@ -207,6 +208,7 @@ const EditUserModal = ({ show, toggle, userId, getUsers }) => {
useEffect(() => {
if (show) {
getUser();
setEditing(false);
}
}, [show]);

View File

@@ -151,13 +151,17 @@ const FirmwareDashboard = () => {
: 0;
const devicesForAverage = parsedData.numberOfDevices - usingUnknownFirmwareFromArray;
if (parsedData.totalSecondsOld.length > 0) {
parsedData.averageFirmwareAge =
if (devicesForAverage !== 0 && parsedData.totalSecondsOld.length > 0) {
parsedData.averageFirmwareAge = Math.round(
parsedData.totalSecondsOld[0].value /
(devicesForAverage > 0 ? devicesForAverage : 1) /
(24 * 60 * 60);
(devicesForAverage > 0 ? devicesForAverage : 1) /
(24 * 60 * 60),
);
parsedData.averageFirmwareAge = `${parsedData.averageFirmwareAge} ${
Math.round(parsedData.averageFirmwareAge) > 0 ? t('common.days') : t('common.day')
}`;
} else {
parsedData.averageFirmwareAge = 0;
parsedData.averageFirmwareAge = '-';
}
// Latest firmware distribution