CEC-2385 Only show software updates (#193)

* CEC-2385 Only show software updates

* Update browser list

* update threshold

* Clean up
This commit is contained in:
John Wu
2022-09-02 09:56:52 -07:00
committed by GitHub
parent 8d0dbf8030
commit 153c6bdcf7
18 changed files with 31 additions and 2266 deletions

View File

@@ -1,79 +0,0 @@
import React from "react";
import {
Table,
TableBody,
TableCell,
TableFooter,
TableRow,
} from "@material-ui/core";
import FileDragArea from "../FileDragArea";
import ListHead from "../ListHead";
import SubListItem from "../SubListItem";
import { useManifestCreateContext } from "../../Contexts/ManifestCreateContext";
import ManifestECUFileTypes from "../ManifestECUFileTypes";
const options = [
{
label: "Filename",
field: "filename",
readonly: true,
},
{
label: "Offset",
field: "offset",
},
{
label: "Checksum",
field: "checksum",
},
{
label: "Type",
field: "type",
control: ManifestECUFileTypes,
},
{
label: "",
field: "filename",
delete: true,
},
];
const ManifestECUFileList = ({ data }) => {
const { addECUFile, deleteECUFile } = useManifestCreateContext();
const onAddFile = (files) => {
addECUFile(data.data_id, files);
};
const onDeletFile = (filename) => {
deleteECUFile(data.data_id, filename);
};
return (
<Table>
{data && data.files && data.files.length > 0 && (
<ListHead options={options} />
)}
<TableBody>
{data.files.map((file) => (
<SubListItem
key={file.filename}
data={file}
options={options}
onDelete={onDeletFile}
/>
))}
</TableBody>
<TableFooter>
<TableRow>
<TableCell colSpan={options.length}>
<FileDragArea onFileSelect={onAddFile}>ADD FILES</FileDragArea>
</TableCell>
</TableRow>
</TableFooter>
</Table>
);
};
export default ManifestECUFileList;

View File

@@ -1,75 +0,0 @@
import React from "react";
import {
Button,
Table,
TableBody,
TableCell,
TableFooter,
TableRow,
} from "@material-ui/core";
import ECUDropDrop from "../ECUDropDown";
import ListHead from "../ListHead";
import ManifestECURow from "../ManifestECURow";
import { useManifestCreateContext } from "../../Contexts/ManifestCreateContext";
import PageDragPreventDefault from "../PageDragPreventDefault";
const options = [
{
label: "ID",
field: "data_id",
readonly: true,
},
{
label: "ECU",
field: "name",
control: ECUDropDrop,
required: true,
},
{
label: "Version",
field: "version",
required: true,
},
{
label: "Hardware",
field: "hw_version",
},
{
label: "",
delete: true,
},
];
const ManifestECUList = () => {
const { ecus, addECU } = useManifestCreateContext();
return (
<>
<PageDragPreventDefault />
<Table>
<ListHead options={options} />
<TableBody>
{ecus.map((item) => {
return (
<ManifestECURow
key={item.data_id}
data={item}
options={options}
/>
);
})}
</TableBody>
<TableFooter>
<TableRow>
<TableCell colSpan={5} align="center">
<Button onClick={addECU}>Add ECU</Button>
</TableCell>
</TableRow>
</TableFooter>
</Table>
</>
);
};
export default ManifestECUList;

View File

@@ -1,33 +0,0 @@
import React from "react";
import { TableCell, TableRow } from "@material-ui/core";
import ManifestECUFileList from "../ManifestECUFileList";
import SubListItem from "../SubListItem";
import { useManifestCreateContext } from "../../Contexts/ManifestCreateContext";
const ManifestECURow = ({ data, options }) => {
const { deleteECU } = useManifestCreateContext();
const onDeleteECU = () => {
deleteECU(data.data_id);
};
return (
<>
<SubListItem
key={data.data_id}
data={data}
options={options}
onDelete={onDeleteECU}
/>
<TableRow>
<TableCell colSpan={options.length}>
<ManifestECUFileList data={data} />
</TableCell>
</TableRow>
</>
);
};
export default ManifestECURow;

View File

@@ -1,68 +0,0 @@
import React, { useEffect, useState } from "react";
import { Button, Grid, LinearProgress, Typography } from "@material-ui/core";
import { useManifestCreateContext } from "../../Contexts/ManifestCreateContext";
const ManifestUploadProgress = (props) => {
const { uploadProgress, uploadStatus, uploadFileIndex, uploadedFiles } =
useManifestCreateContext();
const [progress, setProgress] = useState(0);
const [completed, setCompleted] = useState(0);
const [total, setTotal] = useState(0);
useEffect(() => {
const x = uploadedFiles.reduce(
(current, { file }) => current + file.size,
0
);
setTotal(x);
}, [uploadedFiles]);
useEffect(() => {
if (uploadFileIndex === 0 || uploadFileIndex >= uploadedFiles.length)
return;
let uploaded = 0;
uploadedFiles.forEach(({ file }, i) => {
if (i < uploadFileIndex) uploaded += file.size;
});
setCompleted(uploaded);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [uploadFileIndex]);
useEffect(() => {
if (total === 0 || uploadFileIndex >= uploadedFiles.length) return;
const { file } = uploadedFiles[uploadFileIndex];
const uploaded = completed + file.size * uploadProgress;
const x = Math.min(99, Math.floor((uploaded / total) * 100));
setProgress(x);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [uploadProgress, completed]);
return (
<>
<Grid container>
<Grid xs={12}>
<Typography align="center">
{`File ${uploadFileIndex + 1} of ${
uploadedFiles.length
}. ${uploadStatus}`}
</Typography>
</Grid>
</Grid>
<Grid container alignContent="center" spacing={0}>
<Grid xs={11}>
<LinearProgress
variant="determinate"
value={progress}
style={{ marginTop: 16 }}
/>
</Grid>
<Grid xs={1} alignContent="flex-end" align="right">
<Button onClick={props.onCancel}>Cancel</Button>
</Grid>
</Grid>
</>
);
};
export default ManifestUploadProgress;

View File

@@ -8,7 +8,7 @@ exports[`TabPanel Render 1`] = `
role="tabpanel"
>
<div
class="MuiBox-root MuiBox-root-1"
class="MuiBox-root MuiBox-root-0"
>
<div>
Test