<main class="layout-maxed ajouter-un-album" id="ajouter-album"> <h1>Ajouter un album</h1> <form @submit="search"> <div class="grid grid-cols-1 md:grid-cols-2"> <div> <label for="q">Nom de l'album ou code barre</label> <div class="field has-addons"> <input type="text" name="q" id="q" v-model="q" placeholder="ex : Iron Maiden - Powerslave" autofocus> <button class="button is-primary" :disabled="loading" aria-label="Chercher"> <i class="icon-search" v-if="!loading"></i> <i class="icon-spin animate-spin" v-if="loading"></i> </button> </div> <div class="grid sm:grid-cols-3 gap-5"> <div class="field"> <label for="format">Format</label> <select id="format" v-model="format"> <option value="">Tous</option> <option v-for="format in orderedItems(formats)" :value="format">{{format}}</option> </select> </div> <div class="field"> <label for="year">Année</label> <input type="number" name="year" v-model="year" id="year" placeholder="1984"> </div> <div class="field"> <label for="country">Pays</label> <input type="string" name="country" v-model="country" id="country" placeholder="France"> </div> </div> </div> </div> </form> <div class="grid grid-cols-1 md:grid-cols-2 list hover"> <div class="item" v-if="!loading" v-for="item in items"> <a @click="loadDetails(item.id)" class="title">{{ item.artists_sort }} {{ item.title }}</a> <div class="grid grid-cols-2 md:grid-cols-4"> <div> <img :src="item.thumb" :alt="item.title" @click="loadDetails(item.id)"/> </div> <div class="md:col-span-3"> <span><strong>Année :</strong> {{ item.year }}</span> <br /> <span><strong>Pays :</strong> {{ item.country }}</span> <br /> <span> <strong>Format : </strong> <template v-for="(format, index) in item.format"> {{ format }}<template v-if="index < item.format.length - 1">, </template> </template> </span> <br /> <span> <strong>Genre : </strong> <template v-for="(genre, index) in item.genre"> {{ genre }}<template v-if="index < item.genre.length - 1">, </template> </template> </span> <br /> <span> <strong>Style : </strong> <template v-for="(style, index) in item.style"> {{ style }}<template v-if="index < item.style.length - 1">, </template> </template> </span> </div> </div> </div> </div> <div class="modal" :class="{'is-visible': modalIsVisible}"> <div class="modal-background"></div> <div class="modal-card"> <header> <div>{{details.artists_sort}} - {{details.title}}</div> <button aria-label="Fermer" class="close" @click="toggleModal"></button> </header> <section> <div class="grid grid-cols-2 gap-16"> <div> <div class="text-center"> <img :src="details.thumb %>" :alt="`Miniature pour l'album ${details.title}`" /> <hr /> <img v-for="image in details.images" :src="image.uri150" :alt="`Miniature de type ${image.type}`" style="max-width: 60px;" /> <hr /> </div> <ol class="ml-4"> <li v-for="track in details.tracklist"> {{ track.title }} ({{track.duration}}) <ul v-if="track.artists && track.artists.length > 0" class="sm-hidden"> <li v-for="extra in track.artists" class=" ml-4"> <small>{{extra.role}} : {{extra.name}}</small> </li> </ul> </li> </ol> </div> <div> <div class="grid grid-cols-2 gap-10"> <div> <strong>Genres</strong> <br /> <template v-for="(genre, index) in details.genres"> {{genre}}<template v-if="index < details.genres.length - 1">, </template> </template> </div> <div> <strong>Styles</strong> <br /> <span v-for="(style, index) in details.styles"> {{style}}<template v-if="index < details.styles.length - 1">, </template> </span> </div> </div> <hr /> <div class="grid grid-cols-3 gap-10"> <div> <strong>Pays</strong> <br /> <span>{{details.country}}</span> </div> <div> <strong>Année</strong> <br /> <span>{{details.year}}</span> </div> <div> <strong>Date de sortie</strong> <br /> <span>{{details.released}}</span> </div> </div> <hr /> <div class="grid grid-cols-2 gap-10"> <div> <strong>Format</strong> <ul class="ml-4"> <li v-for="(format) in details.formats"> {{format.name}} <template v-if="format.text"> - <i>{{format.text}}</i> </template> <template v-if="format.descriptions && format.descriptions.length > 0"> (<span v-for="(description, index) in format.descriptions"> {{description}}<template v-if="index < format.descriptions.length - 1">, </template> </span>) </template> </li> </ul> </div> </div> <hr /> <div class="grid grid-cols-2 gap-10"> <div> <strong>Codes barres</strong> <ol> <li v-for="identifier in details.identifiers"> {{identifier.value}} ({{identifier.type}}) </li> </ol> </div> <div> <strong>Label</strong> <ol> <li v-for="label in details.labels"> {{label.name}} </li> </ol> <strong>Société</strong> <ol> <li v-for="company in details.companie"> {{company.name}} </li> </ol> </div> </div> </div> </div> </section> <footer> <button :class="['button is-primary', submitting ? 'is-disabled' : '']" @click="add">Ajouter</button> <button class="button" @click="toggleModal">Annuler</button> </footer> </div> </div> </main>