Compare commits

..

8 Commits

Author SHA1 Message Date
TIP Automation User
2c62c7bc92 Chg: update image tag in helm values to v2.6.0 2022-07-11 11:14:07 +00:00
TIP Automation User
2befa3ce6f Chg: update image tag in helm values to v2.6.0-RC4 2022-07-09 12:17:45 +00:00
Charles Bourque
5a39deaa37 Merge pull request #97 from stephb9959/main
[WIFI-9921] Telemetry now only showing selected types when receiving messages
2022-06-28 15:05:54 +01:00
Charles
85b92f46f5 [WIFI-9921] Telemetry now only showing selected types when receiving messages
Signed-off-by: Charles <charles.bourque96@gmail.com>
2022-06-28 15:03:51 +01:00
TIP Automation User
abb8b2ba0f Chg: update image tag in helm values to v2.6.0-RC3 2022-06-23 19:01:26 +00:00
Charles Bourque
a22f33dade Merge pull request #96 from stephb9959/main
[WIFI-9773] Wifi Scan request sometimes stalling
2022-06-21 18:14:09 +01:00
Charles
237b8b5ede [WIFI-9773] Wifi Scan request sometimes stalling
Signed-off-by: Charles <charles.bourque96@gmail.com>
2022-06-21 18:12:17 +01:00
Charles
438d008c34 2.6.27: wifi analysis with no records fix
Signed-off-by: Charles <charles.bourque96@gmail.com>
2022-06-21 18:12:17 +01:00
11 changed files with 82 additions and 55 deletions

View File

@@ -8,7 +8,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: v2.6.0-RC2 tag: v2.6.0
pullPolicy: Always pullPolicy: Always
services: services:

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "ucentral-client", "name": "ucentral-client",
"version": "2.6.26", "version": "2.6.29",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ucentral-client", "name": "ucentral-client",
"version": "2.6.26", "version": "2.6.29",
"dependencies": { "dependencies": {
"@coreui/coreui": "^3.4.0", "@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1", "@coreui/icons": "^2.0.1",

View File

@@ -1,6 +1,6 @@
{ {
"name": "ucentral-client", "name": "ucentral-client",
"version": "2.6.26", "version": "2.6.29",
"dependencies": { "dependencies": {
"@coreui/coreui": "^3.4.0", "@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1", "@coreui/icons": "^2.0.1",

View File

@@ -719,9 +719,9 @@
"telemetry": { "telemetry": {
"connection_failed": "Verbindung konnte nicht hergestellt werden. Fehler: {{error}}", "connection_failed": "Verbindung konnte nicht hergestellt werden. Fehler: {{error}}",
"interval": "Intervall", "interval": "Intervall",
"last_update": "Letztes Update",
"lifetime": "Dauer", "lifetime": "Dauer",
"outputmode": "Ausgabemodus", "outputmode": "Ausgabemodus",
"last_update": "Letztes Update",
"types": "Typen" "types": "Typen"
}, },
"trace": { "trace": {
@@ -816,6 +816,7 @@
"radios": "Radios", "radios": "Radios",
"scan_warning": "Ihr 5G-Funkgerät befindet sich auf einem Radarkanal, Sie müssen „Override DFS“ aktivieren, um das Scannen aller 5G-Kanäle zu ermöglichen", "scan_warning": "Ihr 5G-Funkgerät befindet sich auf einem Radarkanal, Sie müssen „Override DFS“ aktivieren, um das Scannen aller 5G-Kanäle zu ermöglichen",
"title": "WLAN-Analyse", "title": "WLAN-Analyse",
"vendor": "Verkäufer" "vendor": "Verkäufer",
"waiting_for_data": "Warten auf Empfang von Gerätedaten. Bitte schauen Sie später noch einmal nach"
} }
} }

View File

@@ -719,9 +719,9 @@
"telemetry": { "telemetry": {
"connection_failed": "Failed to create connection. Error: {{error}}", "connection_failed": "Failed to create connection. Error: {{error}}",
"interval": "Interval", "interval": "Interval",
"last_update": "Last Update",
"lifetime": "Duration", "lifetime": "Duration",
"outputmode": "Output Mode", "outputmode": "Output Mode",
"last_update": "Last Update",
"types": "Types" "types": "Types"
}, },
"trace": { "trace": {
@@ -816,6 +816,7 @@
"radios": "Radios", "radios": "Radios",
"scan_warning": "Your 5G radio is on a radar channel, you must enable “Override DFS” to allow scanning of all 5G channels", "scan_warning": "Your 5G radio is on a radar channel, you must enable “Override DFS” to allow scanning of all 5G channels",
"title": "Wi-Fi Analysis", "title": "Wi-Fi Analysis",
"vendor": "Vendor" "vendor": "Vendor",
"waiting_for_data": "Waiting to receive device data. Please check again later"
} }
} }

View File

@@ -719,9 +719,9 @@
"telemetry": { "telemetry": {
"connection_failed": "No se pudo crear la conexión. Error: {{error}}", "connection_failed": "No se pudo crear la conexión. Error: {{error}}",
"interval": "intervalo", "interval": "intervalo",
"last_update": "Última actualización",
"lifetime": "Duración", "lifetime": "Duración",
"outputmode": "Modo salida", "outputmode": "Modo salida",
"last_update": "Última actualización",
"types": "Los tipos" "types": "Los tipos"
}, },
"trace": { "trace": {
@@ -816,6 +816,7 @@
"radios": "Radios", "radios": "Radios",
"scan_warning": "Su radio 5G está en un canal de radar, debe habilitar \"Anular DFS\" para permitir el escaneo de todos los canales 5G", "scan_warning": "Su radio 5G está en un canal de radar, debe habilitar \"Anular DFS\" para permitir el escaneo de todos los canales 5G",
"title": "Análisis de Wi-Fi", "title": "Análisis de Wi-Fi",
"vendor": "Vendedor" "vendor": "Vendedor",
"waiting_for_data": "Esperando recibir datos del dispositivo. Vuelva a consultar más tarde"
} }
} }

View File

@@ -719,9 +719,9 @@
"telemetry": { "telemetry": {
"connection_failed": "Échec de la création de la connexion. Erreur : {{error}}", "connection_failed": "Échec de la création de la connexion. Erreur : {{error}}",
"interval": "Intervalle", "interval": "Intervalle",
"last_update": "Dernière mise à jour",
"lifetime": "Durée", "lifetime": "Durée",
"outputmode": "Mode de sortie", "outputmode": "Mode de sortie",
"last_update": "Dernière mise à jour",
"types": "Les types" "types": "Les types"
}, },
"trace": { "trace": {
@@ -816,6 +816,7 @@
"radios": "Radios", "radios": "Radios",
"scan_warning": "Votre radio 5G est sur un canal radar, vous devez activer \"Override DFS\" pour permettre le balayage de tous les canaux 5G", "scan_warning": "Votre radio 5G est sur un canal radar, vous devez activer \"Override DFS\" pour permettre le balayage de tous les canaux 5G",
"title": "Analyse Wi-Fi", "title": "Analyse Wi-Fi",
"vendor": "vendeur" "vendor": "vendeur",
"waiting_for_data": "En attente de réception des données de l'appareil. Veuillez revérifier plus tard"
} }
} }

View File

@@ -719,9 +719,9 @@
"telemetry": { "telemetry": {
"connection_failed": "Falha ao criar conexão. Erro: {{error}}", "connection_failed": "Falha ao criar conexão. Erro: {{error}}",
"interval": "intervalo", "interval": "intervalo",
"last_update": "Última atualização",
"lifetime": "Duração", "lifetime": "Duração",
"outputmode": "Modo saída", "outputmode": "Modo saída",
"last_update": "Última atualização",
"types": "Tipos" "types": "Tipos"
}, },
"trace": { "trace": {
@@ -816,6 +816,7 @@
"radios": "Rádios", "radios": "Rádios",
"scan_warning": "Seu rádio 5G está em um canal de radar, você deve habilitar “Override DFS” para permitir a varredura de todos os canais 5G", "scan_warning": "Seu rádio 5G está em um canal de radar, você deve habilitar “Override DFS” para permitir a varredura de todos os canais 5G",
"title": "Análise de Wi-Fi", "title": "Análise de Wi-Fi",
"vendor": "fornecedor" "vendor": "fornecedor",
"waiting_for_data": "Aguardando para receber dados do dispositivo. Verifique novamente mais tarde"
} }
} }

View File

@@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import Select from 'react-select'; import Select from 'react-select';
@@ -55,6 +55,17 @@ const TelemetryModal = ({ show, toggle }) => {
} }
}; };
const msgToDisplay = useMemo(() => {
const display = {};
if (lastMessage) {
for (const type of types) {
display[type.value] = lastMessage[type.value];
}
}
return display;
}, [lastMessage, types]);
const getUrl = () => { const getUrl = () => {
setLastUpdate(''); setLastUpdate('');
setLastMessage({}); setLastMessage({});
@@ -82,14 +93,13 @@ const TelemetryModal = ({ show, toggle }) => {
.then((response) => { .then((response) => {
if (chosenMethod === 'true') { if (chosenMethod === 'true') {
addToast({ addToast({
title: t('common.success'), title: t('common.success'),
body: t('commands.command_success'), body: t('commands.command_success'),
color: 'success', color: 'success',
autohide: true, autohide: true,
}); });
toggle(); toggle();
} } else if (response.data.uri && response.data.uri !== '') {
else if (response.data.uri && response.data.uri !== '') {
setReceivedMessages(0); setReceivedMessages(0);
setSocket(new WebSocket(response.data.uri)); setSocket(new WebSocket(response.data.uri));
} }
@@ -259,7 +269,7 @@ const TelemetryModal = ({ show, toggle }) => {
</CRow> </CRow>
<CRow> <CRow>
<CCol> <CCol>
<pre>{JSON.stringify(lastMessage, null, 2)}</pre> <pre>{JSON.stringify(msgToDisplay, null, 2)}</pre>
</CCol> </CCol>
</CRow> </CRow>
<CRow> <CRow>

View File

@@ -238,7 +238,7 @@ const WifiAnalysis = () => {
return ( return (
<div> <div>
<CCard> <CCard className="mb-0">
<CCardHeader className="dark-header d-flex flex-row-reverse align-items-center"> <CCardHeader className="dark-header d-flex flex-row-reverse align-items-center">
<div className="pl-2"> <div className="pl-2">
<CPopover content={t('common.refresh')}> <CPopover content={t('common.refresh')}>
@@ -254,35 +254,47 @@ const WifiAnalysis = () => {
</div> </div>
</CCardHeader> </CCardHeader>
<CCardBody> <CCardBody>
<CRow className="mb-4"> {!loading && parsedAssociationStats.length === 0 ? (
<CCol className="text-center"> <div className="text-center">
<input <h3>{t('wifi_analysis.waiting_for_data')}</h3>
type="range" </div>
style={{ width: '80%' }} ) : (
className="form-range" <>
min="0" <CRow className="mb-4">
max={range} <CCol className="text-center">
step="1" <input
onChange={(e) => updateSelectedStats(e.target.value)} type="range"
defaultValue={range} style={{ width: '80%' }}
disabled={!selectedRadioStats} className="form-range"
/> min="0"
<h5> max={range}
{t('common.timestamp')}: {tableTime} step="1"
</h5> onChange={(e) => updateSelectedStats(e.target.value)}
</CCol> defaultValue={range}
</CRow> disabled={!selectedRadioStats}
<div className="overflow-auto" style={{ height: 'calc(100vh - 300px)' }}> />
<h5 className="pb-3 text-center">{t('wifi_analysis.radios')}</h5> <h5>
<RadioAnalysisTable data={selectedRadioStats ?? []} loading={loading} range={range} /> {t('common.timestamp')}: {tableTime}
<h5 className="pt-5 pb-3 text-center">{t('wifi_analysis.associations')}</h5> </h5>
<WifiAnalysisTable </CCol>
t={t} </CRow>
data={selectedAssociationStats ?? []} <div className="overflow-auto" style={{ height: 'calc(100vh - 300px)' }}>
loading={loading} <h5 className="pb-3 text-center">{t('wifi_analysis.radios')}</h5>
range={range} <RadioAnalysisTable
/> data={selectedRadioStats ?? []}
</div> loading={loading}
range={range}
/>
<h5 className="pt-5 pb-3 text-center">{t('wifi_analysis.associations')}</h5>
<WifiAnalysisTable
t={t}
data={selectedAssociationStats ?? []}
loading={loading}
range={range}
/>
</div>
</>
)}
</CCardBody> </CCardBody>
</CCard> </CCard>
<CModal size="xl" show={showModal} onClose={toggleModal}> <CModal size="xl" show={showModal} onClose={toggleModal}>

View File

@@ -82,7 +82,7 @@ const WifiScanModal = ({ show, toggleModal }) => {
setActiveScan(false); setActiveScan(false);
setHideOptions(false); setHideOptions(false);
setErrorCode(0); setErrorCode(0);
setIes(undefined); setIes([]);
}, [show]); }, [show]);
const parseThroughList = (scanList) => { const parseThroughList = (scanList) => {
@@ -164,7 +164,7 @@ const WifiScanModal = ({ show, toggleModal }) => {
override_dfs: dfs, override_dfs: dfs,
bandwidth: bandwidth !== '' ? bandwidth : undefined, bandwidth: bandwidth !== '' ? bandwidth : undefined,
activeScan, activeScan,
ies: ies.length > 0 ? ies.map(({ value }) => value) : undefined, ies: ies?.length > 0 ? ies.map(({ value }) => value) : undefined,
}; };
const headers = { const headers = {
Accept: 'application/json', Accept: 'application/json',