CEC-4524: add bulk delete action (#364)
* CEC-4524: add bulk delete action
This commit is contained in:
@@ -12658,6 +12658,7 @@ exports[`App Route /vehicles authenticated 1`] = `
|
|||||||
<div
|
<div
|
||||||
data-testid="transform-modal"
|
data-testid="transform-modal"
|
||||||
/>
|
/>
|
||||||
|
<div />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@@ -482,6 +482,7 @@ exports[`VehicleTable Render 1`] = `
|
|||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<div />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import TransformModal from "../../TransformModal";
|
|||||||
import { useLocalStorage } from "../../useLocalStorage";
|
import { useLocalStorage } from "../../useLocalStorage";
|
||||||
import useStyles from "../../useStyles";
|
import useStyles from "../../useStyles";
|
||||||
import TaskRunner from "../../../utils/taskRunner";
|
import TaskRunner from "../../../utils/taskRunner";
|
||||||
|
import GeneralConfirmation from "../../GeneralConfirmation";
|
||||||
|
|
||||||
const MainForm = () => {
|
const MainForm = () => {
|
||||||
const classes = useStyles();
|
const classes = useStyles();
|
||||||
@@ -93,6 +94,23 @@ const MainForm = () => {
|
|||||||
.catch((error) => setMessage(error.message));
|
.catch((error) => setMessage(error.message));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleDelete = async (fn) => {
|
||||||
|
const taskRunner = new TaskRunner(5);
|
||||||
|
const request = (vin) => {
|
||||||
|
return async () => {
|
||||||
|
return fn(vin, token)
|
||||||
|
.then(() => {
|
||||||
|
setMessage(`Deleted ${selectedVins.length} vehicles`);
|
||||||
|
setSelectedVins([]);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
setMessage(error.message);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
selectedVins.forEach((vin) => taskRunner.push(request(vin)));
|
||||||
|
};
|
||||||
|
|
||||||
const actions = [
|
const actions = [
|
||||||
{
|
{
|
||||||
name: "Update Configs",
|
name: "Update Configs",
|
||||||
@@ -103,7 +121,12 @@ const MainForm = () => {
|
|||||||
name: "Add Tags",
|
name: "Add Tags",
|
||||||
disabled: selectedVins.length === 0,
|
disabled: selectedVins.length === 0,
|
||||||
trigger: () => setActiveModal("addTags"),
|
trigger: () => setActiveModal("addTags"),
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
name: "Delete",
|
||||||
|
disabled: selectedVins.length === 0,
|
||||||
|
trigger: () => setActiveModal("delete"),
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const handleOnlineHMI = (event) => {
|
const handleOnlineHMI = (event) => {
|
||||||
@@ -187,6 +210,13 @@ const MainForm = () => {
|
|||||||
setData={setTagsToAdd}
|
setData={setTagsToAdd}
|
||||||
submit={() => handleAddTags(context.addTags)}
|
submit={() => handleAddTags(context.addTags)}
|
||||||
/>
|
/>
|
||||||
|
<GeneralConfirmation
|
||||||
|
open={activeModal === "delete"}
|
||||||
|
close={() => setActiveModal(null)}
|
||||||
|
title="Delete"
|
||||||
|
message={`You are about to delete the following VINs: ${selectedVins.join(", ")}`}
|
||||||
|
actionFunction={() => handleDelete(context.deleteVehicle)}
|
||||||
|
/>
|
||||||
</>)}
|
</>)}
|
||||||
</VehicleConsumer>
|
</VehicleConsumer>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user