Filtering dev firmware in firmware list

This commit is contained in:
BourqueCharles
2021-08-09 14:59:04 -04:00
parent 5ba716a437
commit ebc44fa1ea
9 changed files with 61 additions and 41 deletions

18
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "ucentral-client",
"version": "2.0.10",
"version": "2.0.11",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "ucentral-client",
"version": "2.0.10",
"version": "2.0.11",
"dependencies": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",
@@ -29,7 +29,7 @@
"react-tooltip": "^4.2.21",
"react-widgets": "^5.1.1",
"sass": "^1.35.1",
"ucentral-libs": "^0.8.50",
"ucentral-libs": "^0.8.51",
"uuid": "^8.3.2"
},
"devDependencies": {
@@ -14311,9 +14311,9 @@
}
},
"node_modules/ucentral-libs": {
"version": "0.8.50",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.8.50.tgz",
"integrity": "sha512-wxnZzC7WiWEXhmPNH0qF7euy+f2Xk2K5crfpQ6HI6YZV6brYwyA1qOti55IU9jBhfyjYK7sTgtgBhBGXE5+oLg==",
"version": "0.8.51",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.8.51.tgz",
"integrity": "sha512-gZHo07Mu1Wl5Gq8fRwRKQOCGVuUC5FA/QrOiLalMahyIhmocRW3rBnE/ieWtV9O3nW5hkBXEpFigiZxX/T9LmA==",
"engines": {
"node": ">=10"
},
@@ -26634,9 +26634,9 @@
}
},
"ucentral-libs": {
"version": "0.8.50",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.8.50.tgz",
"integrity": "sha512-wxnZzC7WiWEXhmPNH0qF7euy+f2Xk2K5crfpQ6HI6YZV6brYwyA1qOti55IU9jBhfyjYK7sTgtgBhBGXE5+oLg==",
"version": "0.8.51",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.8.51.tgz",
"integrity": "sha512-gZHo07Mu1Wl5Gq8fRwRKQOCGVuUC5FA/QrOiLalMahyIhmocRW3rBnE/ieWtV9O3nW5hkBXEpFigiZxX/T9LmA==",
"requires": {}
},
"unbox-primitive": {

View File

@@ -1,6 +1,6 @@
{
"name": "ucentral-client",
"version": "2.0.10",
"version": "2.0.11",
"dependencies": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",
@@ -23,7 +23,7 @@
"react-tooltip": "^4.2.21",
"react-widgets": "^5.1.1",
"sass": "^1.35.1",
"ucentral-libs": "^0.8.50",
"ucentral-libs": "^0.8.51",
"uuid": "^8.3.2"
},
"main": "index.js",

View File

@@ -203,6 +203,7 @@
"newer_firmware_available": "Neuere Versionen verfügbar",
"reinstall_latest": "Neu installieren",
"revision": "Revision",
"show_dev": "Dev . anzeigen",
"size": "Größe",
"status": "Firmware-Status",
"title": "Firmware",

View File

@@ -203,6 +203,7 @@
"newer_firmware_available": "Newer Revisions Available",
"reinstall_latest": "Reinstall ",
"revision": "Revision",
"show_dev": "Show Dev",
"size": "Size",
"status": "Firmware Status",
"title": "Firmware",

View File

@@ -203,6 +203,7 @@
"newer_firmware_available": "Nuevas revisiones disponibles",
"reinstall_latest": "Reinstalar",
"revision": "Revisión",
"show_dev": "Mostrar desarrollador",
"size": "Tamaño",
"status": "Estado del firmware",
"title": "Firmware",

View File

@@ -203,6 +203,7 @@
"newer_firmware_available": "Révisions plus récentes disponibles",
"reinstall_latest": "Réinstaller",
"revision": "Révision",
"show_dev": "Afficher les développeurs",
"size": "Taille",
"status": "État du micrologiciel",
"title": "Micrologiciel",

View File

@@ -203,6 +203,7 @@
"newer_firmware_available": "Novas revisões disponíveis",
"reinstall_latest": "Reinstalar",
"revision": "Revisão",
"show_dev": "Mostrar Dev",
"size": "Tamanho",
"status": "Status do firmware",
"title": "Firmware",

View File

@@ -89,7 +89,7 @@ const TheLayout = () => {
<PageContainer t={t} routes={routes} redirectTo="/devices" />
</ToastProvider>
</div>
<Footer t={t} version="2.0.10" />
<Footer t={t} version="2.0.11" />
</div>
</div>
);

View File

@@ -13,21 +13,41 @@ const FirmwareListPage = () => {
const [selectedDeviceType, setSelectedDeviceType] = useState('');
const [deviceTypes, setDeviceTypes] = useState([]);
const [firmware, setFirmware] = useState([]);
const [filteredFirmware, setFilteredFirmware] = useState([]);
const [displayedFirmware, setDisplayedFirmware] = useState([]);
const [displayDev, setDisplayDev] = useState(false);
const [addNoteLoading, setAddNoteLoading] = useState(false);
const [updateDescriptionLoading, setUpdateDescriptionLoading] = useState(false);
const [loading, setLoading] = useState(false);
const displayFirmware = () => {
const displayFirmware = (currentPage, perPage, firmwareToDisplay) => {
setLoading(true);
const startIndex = page.selected * firmwarePerPage;
const endIndex = parseInt(startIndex, 10) + parseInt(firmwarePerPage, 10);
const startIndex = currentPage.selected * perPage;
const endIndex = parseInt(startIndex, 10) + parseInt(perPage, 10);
setDisplayedFirmware(firmware.slice(startIndex, endIndex));
setDisplayedFirmware(firmwareToDisplay.slice(startIndex, endIndex));
setLoading(false);
};
const filterFirmware = (newFirmware, displayDevDevices) => {
let firmwareToDisplay = newFirmware;
if (!displayDevDevices) {
firmwareToDisplay = firmwareToDisplay.filter((i) => !i.revision.includes('devel'));
}
const count = Math.ceil(firmwareToDisplay.length / firmwarePerPage);
setPageCount(count);
setPage({ selected: 0 });
setFilteredFirmware(firmwareToDisplay);
displayFirmware({ selected: 0 }, firmwarePerPage, firmwareToDisplay);
};
const toggleDevDisplay = () => {
setDisplayDev(!displayDev);
filterFirmware(firmware, !displayDev);
};
const getFirmware = (deviceType) => {
setLoading(true);
@@ -51,6 +71,7 @@ const FirmwareListPage = () => {
return firstDate > secondDate ? -1 : 0;
});
setFirmware(sortedFirmware);
filterFirmware(sortedFirmware, displayDev);
})
.catch(() => {
setLoading(false);
@@ -93,7 +114,22 @@ const FirmwareListPage = () => {
};
const updateFirmwarePerPage = (value) => {
const count = Math.ceil(filteredFirmware.length / value);
setPageCount(count);
setPage({ selected: 0 });
setFirmwarePerPage(value);
displayFirmware({ selected: 0 }, value, filteredFirmware);
};
const updatePage = (value) => {
setPage(value);
displayFirmware(value, firmwarePerPage, filteredFirmware);
};
const updateSelectedType = (value) => {
setSelectedDeviceType(value);
getFirmware(value);
};
const addNote = (value, id) => {
@@ -160,50 +196,29 @@ const FirmwareListPage = () => {
});
};
useEffect(() => {
if (firmware.length > 0) {
displayFirmware();
} else {
setDisplayedFirmware([]);
setLoading(false);
}
}, [firmware, firmwarePerPage, page]);
useEffect(() => {
if (selectedDeviceType === '' && !loading) getDeviceTypes();
}, []);
useEffect(() => {
if (selectedDeviceType !== '') {
getFirmware();
}
}, [selectedDeviceType]);
useEffect(() => {
if (firmware !== []) {
const count = Math.ceil(firmware.length / firmwarePerPage);
setPageCount(count);
setPage({ selected: 0 });
}
}, [firmwarePerPage, firmware]);
return (
<FirmwareList
t={t}
loading={loading}
page={page}
pageCount={pageCount}
setPage={setPage}
setPage={updatePage}
data={displayedFirmware}
firmwarePerPage={firmwarePerPage}
setFirmwarePerPage={updateFirmwarePerPage}
selectedDeviceType={selectedDeviceType}
deviceTypes={deviceTypes}
setSelectedDeviceType={setSelectedDeviceType}
setSelectedDeviceType={updateSelectedType}
addNote={addNote}
addNoteLoading={addNoteLoading}
updateDescription={updateDescription}
updateDescriptionLoading={updateDescriptionLoading}
displayDev={displayDev}
toggleDevDisplay={toggleDevDisplay}
/>
);
};