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?; 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 /// Delete a movement

View File

@ -60,4 +60,17 @@ export class MovementApi {
}) })
).data; ).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 { AsyncWidget } from "../widgets/AsyncWidget";
import { DataGrid, GridColDef } from "@mui/x-data-grid"; import { DataGrid, GridColDef } from "@mui/x-data-grid";
import { DateWidget } from "../widgets/DateWidget"; import { DateWidget } from "../widgets/DateWidget";
import { useAlert } from "../hooks/context_providers/AlertDialogProvider";
export function AccountRoute(): React.ReactElement { export function AccountRoute(): React.ReactElement {
const { accountId } = useParams(); 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]>[] = [ const columns: GridColDef<(typeof p.movements)[number]>[] = [
{ {
field: "checked", field: "checked",
@ -118,7 +124,7 @@ function MovementsTable(p: { movements: Movement[] }): React.ReactElement {
}, },
]; ];
return ( return (
<DataGrid <DataGrid<Movement>
columns={columns} columns={columns}
rows={p.movements} rows={p.movements}
autoPageSize 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;
}
}}
/> />
); );
} }