CEC-4341 - Fix Can signal export select all (#340)
* CEC-4341 - Fix Can signal export select all * fix code smell
This commit is contained in:
@@ -16,7 +16,7 @@ const MainForm = ({ id }) => {
|
|||||||
const [selectedStartDate, setSelectedStartDate] = useState(new Date(Date.now() - 24 * 60 * 60 * 1000));
|
const [selectedStartDate, setSelectedStartDate] = useState(new Date(Date.now() - 24 * 60 * 60 * 1000));
|
||||||
const [selectedEndDate, setSelectedEndDate] = useState(new Date());
|
const [selectedEndDate, setSelectedEndDate] = useState(new Date());
|
||||||
const [selectedCanSignals, setSelectedCanSignals] = useState([]);
|
const [selectedCanSignals, setSelectedCanSignals] = useState([]);
|
||||||
|
const [selectAllCanSignals, setSelectAllCanSignals] = useState(false);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
token: {
|
token: {
|
||||||
@@ -29,8 +29,8 @@ const MainForm = ({ id }) => {
|
|||||||
let timestamp_start = Date.parse(selectedStartDate.toUTCString()) / 1000
|
let timestamp_start = Date.parse(selectedStartDate.toUTCString()) / 1000
|
||||||
let timestamp_end = Date.parse(selectedEndDate.toUTCString()) / 1000
|
let timestamp_end = Date.parse(selectedEndDate.toUTCString()) / 1000
|
||||||
try {
|
try {
|
||||||
await getDynamicColumnCANSignals(id, timestamp_start, timestamp_end, selectedCanSignals, token)
|
await getDynamicColumnCANSignals(id, timestamp_start, timestamp_end, selectedCanSignals, selectAllCanSignals, token)
|
||||||
} catch(e){
|
} catch (e) {
|
||||||
setMessage(e.message);
|
setMessage(e.message);
|
||||||
logger.error(e.stack)
|
logger.error(e.stack)
|
||||||
}
|
}
|
||||||
@@ -74,12 +74,14 @@ const MainForm = ({ id }) => {
|
|||||||
const handleSelectedItemsChange = (event) => {
|
const handleSelectedItemsChange = (event) => {
|
||||||
const { value } = event.target;
|
const { value } = event.target;
|
||||||
if (value.some(item => item === "Select All")) {
|
if (value.some(item => item === "Select All")) {
|
||||||
|
setSelectAllCanSignals(true);
|
||||||
if (selectedCanSignals.length === canSignals.length) {
|
if (selectedCanSignals.length === canSignals.length) {
|
||||||
setSelectedCanSignals([]);
|
setSelectedCanSignals([]);
|
||||||
} else {
|
} else {
|
||||||
setSelectedCanSignals(canSignals.map(signal => signal.signal_name));
|
setSelectedCanSignals(canSignals.map(signal => signal.signal_name));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
setSelectAllCanSignals(false);
|
||||||
setSelectedCanSignals(value);
|
setSelectedCanSignals(value);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -156,7 +158,7 @@ const MainForm = ({ id }) => {
|
|||||||
</Grid>
|
</Grid>
|
||||||
<Grid item xs={12}>
|
<Grid item xs={12}>
|
||||||
<FormControl fullWidth required>
|
<FormControl fullWidth required>
|
||||||
<InputLabel id="select-can-signals-label">Select CAN signals</InputLabel>
|
<InputLabel id="select-can-signals-label">Select CAN signals</InputLabel>
|
||||||
<Select
|
<Select
|
||||||
labelId="select-can-signals-label"
|
labelId="select-can-signals-label"
|
||||||
id="select-can-signals"
|
id="select-can-signals"
|
||||||
|
|||||||
@@ -23,14 +23,20 @@ export const CANSignalsExportProvider = ({ children }) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const getDynamicColumnCANSignals = async (vin, timestart, timeend, cansingals, token) => {
|
const getDynamicColumnCANSignals = async (vin, timestart, timeend, cansignals, selectall, token) => {
|
||||||
try {
|
try {
|
||||||
setBusy(true)
|
setBusy(true)
|
||||||
if (!vin) return;
|
if (!vin) return;
|
||||||
|
|
||||||
validateVIN(vin);
|
validateVIN(vin);
|
||||||
if (timestart > timeend) throw new Error("Start time cannot be after end time");
|
if (timestart > timeend) throw new Error("Start time cannot be after end time");
|
||||||
const result = await api.getCanSignalsVin(vin, timestart, timeend, cansingals, token);
|
|
||||||
|
let result
|
||||||
|
if (selectall === true) {
|
||||||
|
result = await api.getCanSignalsVin(vin, timestart, timeend, [], selectall, token);
|
||||||
|
} else {
|
||||||
|
result = await api.getCanSignalsVin(vin, timestart, timeend, cansignals, false, token);
|
||||||
|
}
|
||||||
if (result.error || !result.ok)
|
if (result.error || !result.ok)
|
||||||
throw new Error(`Get CAN signals error. ${result.message}`);
|
throw new Error(`Get CAN signals error. ${result.message}`);
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ const API_ENDPOINT = process.env.REACT_APP_OTA_SERVICE_URL;
|
|||||||
|
|
||||||
const canSignalAPI = {
|
const canSignalAPI = {
|
||||||
|
|
||||||
getCanSignalsVin: async (vin, timestamp_start, timestamp_end, can_signals, token) =>
|
getCanSignalsVin: async (vin, timestamp_start, timestamp_end, can_signals, select_all, token) =>
|
||||||
fetch(addQueryParams(`${API_ENDPOINT}/can_signals_export`, { vin, timestamp_start, timestamp_end, can_signals }), {
|
fetch(addQueryParams(`${API_ENDPOINT}/can_signals_export`, { vin, timestamp_start, timestamp_end, can_signals, select_all }), {
|
||||||
method: "GET",
|
method: "GET",
|
||||||
headers: Object.assign(
|
headers: Object.assign(
|
||||||
{ "Content-Type": "application/json" },
|
{ "Content-Type": "application/json" },
|
||||||
@@ -15,8 +15,7 @@ const canSignalAPI = {
|
|||||||
),
|
),
|
||||||
responseType: "blob"
|
responseType: "blob"
|
||||||
})
|
})
|
||||||
.catch(errorHandler),
|
.catch(errorHandler),
|
||||||
|
|
||||||
|
|
||||||
getCanSignalList: async (token) =>
|
getCanSignalList: async (token) =>
|
||||||
fetch(addQueryParams(`${API_ENDPOINT}/can_signals_list`), {
|
fetch(addQueryParams(`${API_ENDPOINT}/can_signals_list`), {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
const canSignalList = [
|
const canSignalList = [
|
||||||
{ signal_name: "123"},
|
{ signal_name: "123" },
|
||||||
{ signal_name: "456"},
|
{ signal_name: "456" },
|
||||||
{ signal_name: "789"}
|
{ signal_name: "789" }
|
||||||
];
|
];
|
||||||
|
|
||||||
const canSignalAPI = {
|
const canSignalAPI = {
|
||||||
getCanSignalsVin: async (vin, timestamp_start, timestamp_end, can_signals, token) => {
|
getCanSignalsVin: async (vin, timestamp_start, timestamp_end, can_signals, select_all, token) => {
|
||||||
return { data: "fake data" };
|
return { data: "fake data" };
|
||||||
},
|
},
|
||||||
getCanSignalList: async (token) => {
|
getCanSignalList: async (token) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user