From 2f5fc3d0a3e4521e0576d86c6237cc0edd40b008 Mon Sep 17 00:00:00 2001 From: Arthur Lefebvre Date: Sat, 25 Apr 2026 17:39:01 +0200 Subject: [PATCH] Collections browser: add a button to remove collections --- demodata.sql | 6 ++ front/src/CollectionFormElement.vue | 1 - front/src/CollectionListElement.vue | 46 +++++++++++++-- front/src/CollectionsBrowser.vue | 16 +++++- front/src/api.js | 4 ++ internal/apitest/delete_collection_test.go | 51 +++++++++++++++++ internal/model/collection.go | 1 - internal/routes/collectiondelete.go | 66 ++++++++++++++++++++++ internal/routes/collectionget.go | 7 +++ internal/setup/setup.go | 3 + 10 files changed, 192 insertions(+), 9 deletions(-) create mode 100644 internal/apitest/delete_collection_test.go create mode 100644 internal/routes/collectiondelete.go diff --git a/demodata.sql b/demodata.sql index dc3b6ae..7df7864 100644 --- a/demodata.sql +++ b/demodata.sql @@ -133,6 +133,8 @@ INSERT INTO collections(name, user_id) VALUES ('Non fiction',(SELECT id FROM use INSERT INTO collections(name, user_id) VALUES ('Empty',(SELECT id FROM users WHERE name = 'demo')); INSERT INTO collections(name, user_id) VALUES ('Lu récemment',(SELECT id FROM users WHERE name = 'demo')); INSERT INTO collections(name, user_id) VALUES ('Brouillon',(SELECT id FROM users WHERE name = 'demo')); +INSERT INTO collections(name, user_id) VALUES ('Traduit de l''anglais',(SELECT id FROM users WHERE name = 'demo')); +INSERT INTO collections(name, user_id) VALUES ('À supprimer',(SELECT id FROM users WHERE name = 'demo')); INSERT INTO collection_items(collection_id, book_id, position) VALUES ((SELECT id FROM collections WHERE name = 'Littérature française'), (SELECT id FROM books WHERE title = 'Nord'), 1); INSERT INTO collection_items(collection_id, book_id, position) VALUES ((SELECT id FROM collections WHERE name = 'Littérature française'), (SELECT id FROM books WHERE title = 'Gargantua'), 2); @@ -165,3 +167,7 @@ INSERT INTO collection_items(collection_id, book_id, position) VALUES ((SELECT i INSERT INTO collection_items(collection_id, book_id, position) VALUES ((SELECT id FROM collections WHERE name = 'Brouillon'), (SELECT id FROM books WHERE title = 'Un barrage contre le Pacifique'), 4); INSERT INTO collection_items(collection_id, book_id, position) VALUES ((SELECT id FROM collections WHERE name = 'Brouillon'), (SELECT id FROM books WHERE title = 'Rigodon'), 5); INSERT INTO collection_items(collection_id, book_id, position) VALUES ((SELECT id FROM collections WHERE name = 'Brouillon'), (SELECT id FROM books WHERE title = 'Les dieux ont soif'), 6); + +INSERT INTO collection_items(collection_id, book_id, position) VALUES ((SELECT id FROM collections WHERE name = 'Traduit de l''anglais'), (SELECT id FROM books WHERE title = 'Sa majesté des mouches'), 1); +INSERT INTO collection_items(collection_id, book_id, position) VALUES ((SELECT id FROM collections WHERE name = 'Traduit de l''anglais'), (SELECT id FROM books WHERE title = 'Le complot contre l''Amérique'), 2); +INSERT INTO collection_items(collection_id, book_id, position) VALUES ((SELECT id FROM collections WHERE name = 'Traduit de l''anglais'), (SELECT id FROM books WHERE title = 'De sang-froid'), 3); diff --git a/front/src/CollectionFormElement.vue b/front/src/CollectionFormElement.vue index e990986..07c883c 100644 --- a/front/src/CollectionFormElement.vue +++ b/front/src/CollectionFormElement.vue @@ -180,7 +180,6 @@ function onPointerMove(e) { height: 40px; width: 40px; font-size: 36px; - } .align-right { diff --git a/front/src/CollectionListElement.vue b/front/src/CollectionListElement.vue index 22d3359..e875c56 100644 --- a/front/src/CollectionListElement.vue +++ b/front/src/CollectionListElement.vue @@ -1,7 +1,13 @@ @@ -75,6 +95,11 @@ img { transition: ease-in-out 0.02s; } +.namecontainer { + flex: 1; + margin-bottom: 0px; +} + .collectionheader { flex: 1; display: flex; @@ -117,6 +142,17 @@ img { opacity: 10%; } +.closebtn { + height: 40px; + width: 40px; + font-size: 36px; +} + +.align-right { + display: flex; + justify-content: flex-end; +} + @media (max-width: 1024px) { img { max-height: 75px; diff --git a/front/src/CollectionsBrowser.vue b/front/src/CollectionsBrowser.vue index 9ac0a83..0219c3d 100644 --- a/front/src/CollectionsBrowser.vue +++ b/front/src/CollectionsBrowser.vue @@ -1,6 +1,6 @@