#82 - Utilisateur artists plutôt que artists_sort

This commit is contained in:
Damien Broqua 2023-03-23 14:30:40 +01:00
parent c743f0d3a4
commit b630e73c79
4 changed files with 33 additions and 12 deletions

View file

@ -21,7 +21,7 @@ Vue.createApp({
showModalDelete: false,
showModalShare: false,
// eslint-disable-next-line no-undef
shareLink: `${protocol}//${host}/collection/${userId}`,
shareLink: `/collection/${userId}`,
// eslint-disable-next-line no-undef
isPublicCollection,
// eslint-disable-next-line no-undef
@ -67,7 +67,7 @@ Vue.createApp({
let url = `/api/v1/albums?page=${this.page}&limit=${this.limit}&sort=${this.sort}&order=${this.order}`;
if (this.artist) {
url += `&artists_sort=${this.formatParams(this.artist)}`;
url += `&artist=${this.formatParams(this.artist)}`;
}
if (this.format) {
url += `&format=${this.formatParams(this.format)}`;
@ -218,5 +218,20 @@ Vue.createApp({
this.toggleModalShare();
});
},
renderAlbumTitle(item) {
let render = '';
for ( let i = 0 ; i < item.artists.length ; i += 1 ) {
const {
name,
join,
} = item.artists[i];
render += `${name} ${join ? `${join} ` : ''}`;
}
render += `- ${item.title}`;
return render;
}
},
}).mount("#collection");

View file

@ -80,7 +80,7 @@ class Albums extends Pages {
exportFormat = "json",
sort = "artists_sort",
order = "asc",
artists_sort,
artist,
format,
year,
genre,
@ -92,8 +92,8 @@ class Albums extends Pages {
const where = {};
if (artists_sort) {
where.artists_sort = artists_sort;
if (artist) {
where["artists.name"] = artist;
}
if (format) {
where["formats.name"] = format;
@ -236,7 +236,7 @@ class Albums extends Pages {
*/
async loadMyCollection() {
const artists = await Albums.getAllDistincts(
"artists_sort",
"artists.name",
this.req.user._id
);
const formats = await Albums.getAllDistincts(
@ -301,7 +301,7 @@ class Albums extends Pages {
);
}
const artists = await Albums.getAllDistincts("artists_sort", userId);
const artists = await Albums.getAllDistincts("artists.name", userId);
const formats = await Albums.getAllDistincts("formats.name", userId);
const years = await Albums.getAllDistincts("year", userId);
const genres = await Albums.getAllDistincts("genres", userId);

View file

@ -11,9 +11,11 @@
} %>
</h1>
<% if ( pageType === 'private' ) { %>
<a :href="shareLink" v-if="isPublicCollection" target="_blank">
<i class="icon-share"></i> Voir ma collection partagée
</a>
<div>
<a :href="shareLink" v-if="isPublicCollection" target="_blank">
<i class="icon-share"></i> Voir ma collection partagée
</a>
</div>
<% } %>
<%- include('../components/filters/index') %>
@ -28,7 +30,7 @@
<div class="item" v-if="!loading" v-for="item in items">
<span class="title">
<% if ( pageType === 'private' ) { %>
<a :href="'/ma-collection/' + item._id">{{ item.artists_sort}} - {{ item.title }}</a>
<a :href="'/ma-collection/' + item._id">{{ renderAlbumTitle(item) }}</a>
<i class="icon-trash" @click="showConfirmDelete(item._id)"></i>
<% } else { %>
{{ item.artists_sort}} - {{ item.title }}

View file

@ -1,7 +1,11 @@
<main class="layout-maxed ma-collection-details" id="ma-collection-details" v-cloak @keyup="changeImage">
<h1>
<a :href="`/ma-collection?page=1&limit=16&sort=year&order=asc&artists_sort=${item.artists_sort}`">{{item.artists_sort}}</a> - {{item.title}}
<template v-for="artist in item.artists">
<a :href="`/ma-collection?page=1&limit=16&sort=year&order=asc&artist=${artist.name}`">{{artist.name}}</a>
<template v-if="artist.join">&nbsp;{{artist.join}}&nbsp;</template>
</template>
- {{item.title}}
<i class="icon-trash" title="Supprimer cette fiche" @click="showConfirmDelete()"></i>
<i class="icon-refresh" title="Mettre à jour les données de cette fiche" @click="updateItem()"></i>
</h1>