diff --git a/javascripts/ajouter-un-album.js b/javascripts/ajouter-un-album.js index 2a2ce2c..ef5cd90 100644 --- a/javascripts/ajouter-un-album.js +++ b/javascripts/ajouter-un-album.js @@ -113,6 +113,7 @@ Vue.createApp({ format, genre, style, + inCollection, } = results[i]; items.push({ id, @@ -123,6 +124,7 @@ Vue.createApp({ format, genre, style, + inCollection, }); } diff --git a/sass/ajouter-un-album.scss b/sass/ajouter-un-album.scss index d822e30..a29fa02 100644 --- a/sass/ajouter-un-album.scss +++ b/sass/ajouter-un-album.scss @@ -7,10 +7,18 @@ .list { margin-top: 2rem; - .item{ + .item { img { cursor: pointer; } + + &.in-collection { + opacity: 0.6; + + small { + font-style: italic; + } + } } } } \ No newline at end of file diff --git a/src/middleware/Albums.js b/src/middleware/Albums.js index dc481ec..97058bc 100644 --- a/src/middleware/Albums.js +++ b/src/middleware/Albums.js @@ -167,6 +167,7 @@ PubliƩ automatiquement via #musictopus`; genre, style, userId: collectionUserId, + discogsIds, } = this.req.query; let userId = this.req.user?._id; @@ -216,6 +217,10 @@ PubliƩ automatiquement via #musictopus`; userId = userIsSharingCollection._id; } + if (discogsIds) { + where.discogsId = { $in: discogsIds }; + } + const count = await AlbumsModel.count({ User: userId, ...where, diff --git a/src/routes/api/v1/search.js b/src/routes/api/v1/search.js index 267ec0f..fbdab41 100644 --- a/src/routes/api/v1/search.js +++ b/src/routes/api/v1/search.js @@ -3,6 +3,7 @@ import { ensureLoggedIn } from "connect-ensure-login"; import { sendResponse } from "../../../libs/format"; import { searchSong, getAlbumDetails } from "../../../helpers"; +import Albums from "../../../middleware/Albums"; // eslint-disable-next-line new-cap const router = express.Router(); @@ -16,6 +17,30 @@ router.route("/").get(ensureLoggedIn("/connexion"), async (req, res, next) => { req.query.country || null ); + const discogsIds = []; + const foundIds = []; + + for (let i = 0; i < data.results.length; i += 1) { + discogsIds.push(data.results[i].id); + } + + req.query.discogsIds = discogsIds; + + const albums = new Albums(req); + const myAlbums = await albums.getAll(); + + if (myAlbums.rows) { + for (let i = 0; i < myAlbums.rows.length; i += 1) { + foundIds.push(myAlbums.rows[i].discogsId); + } + } + + for (let i = 0; i < data.results.length; i += 1) { + data.results[i].inCollection = foundIds.includes( + data.results[i].id + ); + } + sendResponse(req, res, data); } catch (err) { next(err); diff --git a/views/pages/ajouter-un-album.ejs b/views/pages/ajouter-un-album.ejs index cfafca1..d48aa4c 100644 --- a/views/pages/ajouter-un-album.ejs +++ b/views/pages/ajouter-un-album.ejs @@ -34,8 +34,9 @@
-
+