feat: can delete boxes from member

This commit is contained in:
Nemo D'ACREMONT 2024-12-04 17:56:18 +01:00
parent 7613866ff4
commit 4a6056dc01
No known key found for this signature in database
GPG Key ID: 6E5BCE8022FA8276
5 changed files with 33 additions and 1 deletions

View File

@ -156,6 +156,13 @@ const boxById: RequestHandler<{ id: string; }> = async (req, res) => {
res.render('box.ejs', { box }); res.render('box.ejs', { box });
}; };
const removeBoxFromMember : RequestHandler<{ id_box: string, id_member: string }> = async (req, res) => {
const id_box = parseInt(req.params.id_box);
const id_member = parseInt(req.params.id_member);
await boxService.removeBoxFromMember(id_box, id_member)
res.sendStatus(200);
}
const registerBox: RequestHandler = async (req, res, next) => { const registerBox: RequestHandler = async (req, res, next) => {
const id_box = parseInt(req.body.id_box); const id_box = parseInt(req.body.id_box);
const id_member = parseInt(req.body.id_member); const id_member = parseInt(req.body.id_member);
@ -189,7 +196,8 @@ const boxController = {
allBoxesFromDate, allBoxesFromDate,
boxById, boxById,
registerBox, registerBox,
boxRemovePieceById boxRemovePieceById,
removeBoxFromMember,
}; };
export default boxController; export default boxController;

View File

@ -12,6 +12,8 @@ boxRouter.post("/register", boxController.registerBox);
boxRouter.get("/:title", boxController.boxByTitle); boxRouter.get("/:title", boxController.boxByTitle);
boxRouter.post("/:title", boxController.boxAddPieces); boxRouter.post("/:title", boxController.boxAddPieces);
boxRouter.delete("/:id_box/:id_member", boxController.removeBoxFromMember);
boxRouter.delete("/byid/:id_box", boxController.boxRemovePieceById); boxRouter.delete("/byid/:id_box", boxController.boxRemovePieceById);
boxRouter.post("/byid/:id_box", boxController.boxAddPiecesById); boxRouter.post("/byid/:id_box", boxController.boxAddPiecesById);

View File

@ -126,6 +126,12 @@ const registerBox = async (id_box: number, id_member: number, quantity: number)
await client.query("INSERT INTO enregistrer VALUES($1, $2, $3);", [id_box, id_member, quantity]); await client.query("INSERT INTO enregistrer VALUES($1, $2, $3);", [id_box, id_member, quantity]);
} }
const removeBoxFromMember = async (id_box: number, id_member: number) => {
const client = new_client();
await client.query("DELETE FROM enregistrer WHERE id_boite=$1 AND id_membre=$2;", [id_box, id_member]);
}
const boxService = { const boxService = {
addPiecesToBox, addPiecesToBox,
getBox, getBox,
@ -134,6 +140,7 @@ const boxService = {
removePieceFromBox, removePieceFromBox,
registerBox, registerBox,
getBoxesFromMember, getBoxesFromMember,
removeBoxFromMember,
}; };
export default boxService; export default boxService;

View File

@ -6,6 +6,11 @@
font-family: sans-serif; font-family: sans-serif;
} }
button {
background-color: transparent;
cursor: pointer;
}
pre, code { pre, code {
font-family: monospace; font-family: monospace;
} }

View File

@ -21,7 +21,15 @@
padding: .5rem 1rem; padding: .5rem 1rem;
} }
i { color: var(--bg); }
</style> </style>
<script>
function removeBox(id) {
fetch(window.location.origin + '/boxes/' + id + '/' + <%= member.id_member%>, { method: 'DELETE' }).then(r => window.location.reload());
}
</script>
</head> </head>
<body> <body>
@ -69,6 +77,7 @@
<th>Nombre de pièces</th> <th>Nombre de pièces</th>
<th>Quantité</th> <th>Quantité</th>
<th></th> <th></th>
<th></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -87,6 +96,7 @@
<%=box.second%> <%=box.second%>
</td> </td>
<td><a href="/boxes/byid/<%=box.first.id%>"><i class="fa-solid fa-eye"></i></a></td> <td><a href="/boxes/byid/<%=box.first.id%>"><i class="fa-solid fa-eye"></i></a></td>
<td><button onclick="removeBox(<%=box.first.id%>)"><i class="fa-solid fa-trash"></i></button></td>
</tr> </tr>
<% }); %> <% }); %>