Merge pull request #63 from stephb9959/main

Version 2.3.18
This commit is contained in:
Charles
2021-11-12 16:41:07 -05:00
committed by GitHub
10 changed files with 119 additions and 38 deletions

18
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "ucentral-client",
"version": "2.3.16",
"version": "2.3.18",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "ucentral-client",
"version": "2.3.16",
"version": "2.3.18",
"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.29",
"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.29",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-1.0.29.tgz",
"integrity": "sha512-yeuzfdk15YqUW7/BdAdR8PxF0IIGxubTfkJQBloZqOFWIfBb/b//lDWjQUKj2DkgxxAW3rY3XbmzwCU9UJuMPg==",
"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.29",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-1.0.29.tgz",
"integrity": "sha512-yeuzfdk15YqUW7/BdAdR8PxF0IIGxubTfkJQBloZqOFWIfBb/b//lDWjQUKj2DkgxxAW3rY3XbmzwCU9UJuMPg==",
"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.18",
"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.29",
"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.",
@@ -108,7 +109,9 @@
"hour": "stunde",
"hours": "std",
"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_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-----'",
"ip_address": "IP Adresse",
"ips": "IPs",
@@ -297,8 +300,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 +331,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 +343,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 +356,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 +369,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.",
@@ -108,7 +109,9 @@
"hour": "hour",
"hours": "hours",
"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_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-----'",
"ip_address": "IP Address",
"ips": "IPs",
@@ -297,8 +300,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 +331,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 +343,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 +356,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 +369,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.",
@@ -108,7 +109,9 @@
"hour": "hora",
"hours": "horas",
"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_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 ----- '",
"ip_address": "Dirección IP",
"ips": "IPs",
@@ -297,8 +300,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 +331,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 +343,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 +356,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 +369,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.",
@@ -108,7 +109,9 @@
"hour": "heure",
"hours": "heures",
"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_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-----'",
"ip_address": "Adresse IP",
"ips": "IPS",
@@ -297,8 +300,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 +331,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 +343,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 +356,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 +369,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.",
@@ -108,7 +109,9 @@
"hour": "hora",
"hours": "horas",
"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_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 ----- '",
"ip_address": "Endereço de IP",
"ips": "IPs",
@@ -297,8 +300,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 +331,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 +343,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 +356,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 +369,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

View File

@@ -256,27 +256,47 @@ const Login = () => {
}
})
.catch((error) => {
if (formType !== 'change-password') {
if (
error.response.status === 403 &&
error.response?.data?.ErrorDescription === 'Password change expected.'
) {
setFormType('change-password');
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,
});
} else {
setChangeResponse({
text:
fields.newpassword.value === fields.password.value
? t('login.previously_used')
: t('login.change_password_error'),
error: true,
tried: true,
});
}
})
.finally(() => {