Favorieten toegevoegd aan de navigatiebalk en sidebar.

This commit is contained in:
2026-08-29 19:53:28 +02:00
parent 2912f7c455
commit ce07575d5e
19 changed files with 355 additions and 29 deletions
+35
View File
@@ -1,5 +1,6 @@
const ProductRepository = require("../repositories/ProductRepository");
const ShoppingListRepository = require("../repositories/ShoppingListRepository");
const FavoriteService = require("../services/FavoriteService");
class ShoppingListController {
index(req, res) {
@@ -63,6 +64,40 @@ class ShoppingListController {
res.redirect(`/lists/${list.id}`);
}
clearItems(req, res) {
const list = ShoppingListRepository.findById(req.params.id, req.user.household_id);
if (!list) return res.status(404).render("errors/404");
ShoppingListRepository.clearItems(list.id);
this.broadcastUpdate(req, list.id);
req.flash("success", "Alle producten zijn verwijderd uit de lijst.");
res.redirect(`/lists/${list.id}`);
}
addFavoriteProducts(req, res) {
const list = ShoppingListRepository.findById(req.params.id, req.user.household_id);
if (!list) return res.status(404).render("errors/404");
const favorites = FavoriteService.getFavorites(req.user.id, req.user.household_id);
const items = favorites.map((favorite) => ({
list_id: list.id,
product_id: favorite.id,
amount: 1,
checked: 0,
sort_order: 0
}));
if (items.length === 0) {
req.flash("info", "Je hebt nog geen favorieten om toe te voegen.");
return res.redirect(`/lists/${list.id}`);
}
ShoppingListRepository.addItems(list.id, items);
this.broadcastUpdate(req, list.id);
req.flash("success", `${items.length} favoriete producten toegevoegd aan de lijst.`);
res.redirect(`/lists/${list.id}`);
}
deleteItem(req, res) {
const list = ShoppingListRepository.findById(req.params.id, req.user.household_id);
if (!list) return res.status(404).json({ error: "Lijst niet gevonden" });