From 63e2d2b18fac9b298068c8387de9a812e51e5c27 Mon Sep 17 00:00:00 2001 From: Alexander Andrews <45926661+alexander-e-andrews@users.noreply.github.com> Date: Tue, 27 Sep 2022 15:07:43 -0400 Subject: [PATCH 1/2] CEC-2548 Fixed delete confirmation not being pulled up (#202) Co-authored-by: Alexander Andrews --- .../App/__snapshots__/App.test.js.snap | 2 +- src/components/Manifest/List/index.jsx | 23 +++++++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/components/App/__snapshots__/App.test.js.snap b/src/components/App/__snapshots__/App.test.js.snap index ad4b43a..637ad6b 100644 --- a/src/components/App/__snapshots__/App.test.js.snap +++ b/src/components/App/__snapshots__/App.test.js.snap @@ -3329,7 +3329,6 @@ exports[`App Route /packages authenticated 1`] = ` /> -
@@ -3460,6 +3459,7 @@ exports[`App Route /packages authenticated 1`] = ` +
diff --git a/src/components/Manifest/List/index.jsx b/src/components/Manifest/List/index.jsx index 907ed71..253c1bf 100644 --- a/src/components/Manifest/List/index.jsx +++ b/src/components/Manifest/List/index.jsx @@ -68,7 +68,11 @@ const MainForm = () => { const [orderBy, setOrderBy] = useState("id"); const [order, setOrder] = useState("asc"); const [search, setSearch] = useState(""); + const [showDeleteModal, setShowDeleteModal] = useState(false); + const [deleteId, setDeleteId] = useState(""); + const [deleteRowName, setDeleteRowName] = useState(""); + const { getManifests, deleteManifest, manifests, totalManifests } = useManifestsContext(); const { setMessage, setTitle, setSitePath } = useStatusContext(); @@ -133,6 +137,12 @@ const MainForm = () => { setSearch(query); }; + const setDeletePopup = (id, row) => { + setDeleteId(id); + setDeleteRowName(`${row.name} ${row.version}`); + setShowDeleteModal(true); + } + const onDelete = async (manifest_id) => { try { await deleteManifest(parseInt(manifest_id), token); @@ -182,16 +192,10 @@ const MainForm = () => { return (
- onDelete(action.id)}> + setDeletePopup(action.id, row)}> {action.icon} - setShowDeleteModal(false)} - deleteFunction={() => onDelete(action.id)} - />
); } @@ -261,6 +265,11 @@ const MainForm = () => { + setShowDeleteModal(false)} + deleteFunction={() => onDelete(deleteId)} /> ); }; From 231df333b0c24ea8549de46fb84864b580f05151 Mon Sep 17 00:00:00 2001 From: John Wu <76966357+jwu-fisker@users.noreply.github.com> Date: Wed, 28 Sep 2022 18:00:31 -0700 Subject: [PATCH 2/2] CEC-2611 Show HMI online status (#205) * CEC-2611 Show HMI online status Update car update progress to show ECU Refresh car details car updates tab * clean up --- src/components/Contexts/CarUpdatesContext.jsx | 28 ++-- src/components/Contexts/VehicleContext.jsx | 1 + .../Contexts/VehicleContext.test.jsx | 131 +++++++++++++----- .../Controls/CarSelectionTable/index.jsx | 5 +- .../Controls/CarUpdatesTable/index.jsx | 33 ++++- .../Controls/ConnectedIcon/index.jsx | 19 ++- src/components/Fleets/Update/index.jsx | 86 +++++++----- src/components/VehicleMap/index.jsx | 2 +- src/components/VehicleMap/popup.jsx | 5 +- 9 files changed, 214 insertions(+), 96 deletions(-) diff --git a/src/components/Contexts/CarUpdatesContext.jsx b/src/components/Contexts/CarUpdatesContext.jsx index 1ec447b..3e37bd8 100644 --- a/src/components/Contexts/CarUpdatesContext.jsx +++ b/src/components/Contexts/CarUpdatesContext.jsx @@ -76,10 +76,11 @@ export const CarUpdatesProvider = ({ children }) => { result = await api.getCarUpdates(search, token); if (result.error) throw new Error(`Get car updates error. ${result.message}`); - result.data.forEach((item) => { - item.progress = 0; + result.data.forEach((item, i) => { item.msg = item.status; - applyProgressStatus(item, item); + item.progress = 0; + applyProgressStatus(item); + result.data[i] = Object.assign(result.data[i], item); }); setCarUpdates(result.data); if (search && search.offset === 0 && result.total) { @@ -119,28 +120,27 @@ export const CarUpdatesProvider = ({ children }) => { return 0; }; - const applyProgressStatus = (item, status) => { - if (validateStatusMessage(status)) { - if (status.msg === "downloading") { - item.progress = getDownloadProgress(status); + const applyProgressStatus = (item) => { + if (validateStatusMessage(item)) { + if (item.msg === "downloading") { + item.progress = getDownloadProgress(item); item.status = `${item.ecu || ""} downloading ${item.progress}%`.trim(); return; - } else if (status.msg === "package_download_complete") { + } else if (item.msg === "package_download_complete") { item.progress = 100; - item.status = "download complete"; + item.status = `${item.ecu || ""} download complete`.trim(); return; - } else if (status.msg === "installing") { - item.progress = getInstallProgress(status); + } else if (item.msg === "installing") { + item.progress = getInstallProgress(item); item.status = `${item.ecu || ""} installing ${item.progress}%`.trim(); return; - } else if (status.msg === "package_install_complete") { + } else if (item.msg === "package_install_complete") { item.progress = 100; - item.status = "install complete"; + item.status = `${item.ecu || ""} install complete`.trim(); return; } } delete item.progress; - item.status = status.msg; }; const applyProgressStatuses = (statuses) => { diff --git a/src/components/Contexts/VehicleContext.jsx b/src/components/Contexts/VehicleContext.jsx index 82d9c2f..657dbec 100644 --- a/src/components/Contexts/VehicleContext.jsx +++ b/src/components/Contexts/VehicleContext.jsx @@ -45,6 +45,7 @@ export const VehicleProvider = ({ children }) => { } cars.forEach((car) => { car.connected = result[car.vin] || false; + car.connectedHMI = result[`2:${car.vin}`] || false; }); } catch (e) { logger.error(e.stack); diff --git a/src/components/Contexts/VehicleContext.test.jsx b/src/components/Contexts/VehicleContext.test.jsx index b97cf25..cda9d11 100644 --- a/src/components/Contexts/VehicleContext.test.jsx +++ b/src/components/Contexts/VehicleContext.test.jsx @@ -13,7 +13,7 @@ import { StatusProvider, useStatusContext } from "./StatusContext"; const checkVehicleResult = (error, busy, vehicle) => { checkBaseResults(error, busy); expect(screen.getByTestId("vehicle").innerHTML).toEqual(vehicle); -} +}; const checkVehiclesResult = (error, busy, vehicles) => { checkBaseResults(error, busy); @@ -195,12 +195,22 @@ describe("VehicleContext", () => { <>
{message}
{busy.toString()}
-