Can update movement information

This commit is contained in:
Pierre HUBERT 2025-04-22 11:17:39 +02:00
parent 5db816ca9a
commit 68dfbfff2b
3 changed files with 31 additions and 3 deletions

View File

@ -48,7 +48,7 @@ pub async fn update(
movements_service::update(movement.movement().id(), &req).await?;
Ok(HttpResponse::Accepted().finish())
Ok(HttpResponse::Ok().json(movements_service::get_by_id(movement.movement().id()).await?))
}
/// Delete a movement

View File

@ -60,4 +60,17 @@ export class MovementApi {
})
).data;
}
/**
* Update a movement information
*/
static async Update(movement: Movement): Promise<Movement> {
return (
await APIClient.exec({
uri: `/movement/${movement.id}`,
method: "PUT",
jsonData: movement,
})
).data;
}
}

View File

@ -11,6 +11,7 @@ import React from "react";
import { AsyncWidget } from "../widgets/AsyncWidget";
import { DataGrid, GridColDef } from "@mui/x-data-grid";
import { DateWidget } from "../widgets/DateWidget";
import { useAlert } from "../hooks/context_providers/AlertDialogProvider";
export function AccountRoute(): React.ReactElement {
const { accountId } = useParams();
@ -66,7 +67,12 @@ export function AccountRoute(): React.ReactElement {
);
}
function MovementsTable(p: { movements: Movement[] }): React.ReactElement {
function MovementsTable(p: {
movements: Movement[];
needReload: () => {};
}): React.ReactElement {
const alert = useAlert();
const columns: GridColDef<(typeof p.movements)[number]>[] = [
{
field: "checked",
@ -118,7 +124,7 @@ function MovementsTable(p: { movements: Movement[] }): React.ReactElement {
},
];
return (
<DataGrid
<DataGrid<Movement>
columns={columns}
rows={p.movements}
autoPageSize
@ -133,6 +139,15 @@ function MovementsTable(p: { movements: Movement[] }): React.ReactElement {
},
},
}}
processRowUpdate={async (n) => {
try {
return await MovementApi.Update(n);
} catch (e) {
console.error("Failed to update movement information!", e);
alert(`Failed to update row! ${e}`);
throw e;
}
}}
/>
);
}