From 35be3e4ee351708a4e06c1bb868bb646298a904b Mon Sep 17 00:00:00 2001 From: Julie Date: Tue, 24 Feb 2026 18:41:20 +0100 Subject: [PATCH] liste artistes --- README.md | 18 +- app/assets/scss/base/_img.scss | 6 + app/components/header/HeaderNav.vue | 4 +- app/components/section/PageSection.vue | 1 + app/composables/useArtistesInvitees.js | 96 +++ app/pages/concerts/agenda.vue | 3 +- app/pages/concerts/concert-[id].vue | 1 + app/pages/concerts/jeune-public.vue | 97 ++- app/pages/concerts/saison.vue | 3 +- app/pages/index.vue | 5 +- app/pages/orchestre/artiste-[id].vue | 8 +- app/pages/orchestre/artisteinvitee-[id].vue | 755 ++++++++++++++++++ app/pages/orchestre/artistes-invitees.vue | 13 - app/pages/orchestre/artistesinvitees.vue | 317 ++++++++ app/pages/orchestre/direction.vue | 2 +- app/pages/orchestre/discographie.vue | 4 +- app/pages/orchestre/missions.vue | 2 +- app/pages/orchestre/musiciens.vue | 8 + app/pages/orchestre/partenaires.vue | 2 +- app/pages/orchestre/soutenir.vue | 2 +- design-system/tokens/_colors.scss | 1 + env.txt | 15 - server/api/__strapi__/artistesinvitees.get.js | 7 + 23 files changed, 1316 insertions(+), 54 deletions(-) create mode 100644 app/composables/useArtistesInvitees.js create mode 100644 app/pages/orchestre/artisteinvitee-[id].vue delete mode 100644 app/pages/orchestre/artistes-invitees.vue create mode 100644 app/pages/orchestre/artistesinvitees.vue delete mode 100644 env.txt create mode 100644 server/api/__strapi__/artistesinvitees.get.js diff --git a/README.md b/README.md index c844dca..7ed3abd 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ git push origin main cd /var/www/wondif_vue git pull origin main # récupère le dernier code -npm ci # installe / met à jour les dépendances +npm ci # installe / met à jour les dépendances (à exécuter uniquement si nouvelle dépendances installées dans package json) npm run build # rebuild Nuxt pm2 restart wondif_vue # redémarre le process @@ -163,6 +163,22 @@ Array.from(document.querySelectorAll('body > *')).forEach(el => { } } +01_siick_smol_girlfriend_5m50.mp3 +02_siick_lunar_blast 213_5m13.wav +03_siick_crystal_cavern_5m24.wav + + +01_leon_romanens_8m49_stereo.wav +02_marie_pierre_8m57_stereo.wav +03_siick_7m23_stereo.wav +04_celine_espuna_4m34_stereo.wav +06_walid_nouh_6m44_stereo.wav +08_codimp_7m43_stereo.wav +05_adrien_bourmault_7m53_stereo.wav +07_rafael_muniz_3m15_stereo.wav + + + debian@vps-48ebe2d9:~$ history 1 sudo nano ~/.bashrc 2 exit diff --git a/app/assets/scss/base/_img.scss b/app/assets/scss/base/_img.scss index d29c3c3..32e0438 100644 --- a/app/assets/scss/base/_img.scss +++ b/app/assets/scss/base/_img.scss @@ -13,4 +13,10 @@ margin: 0; object-fit: cover; //filter: contrast(0.8); +} + +.img_placeholder { + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.04); } \ No newline at end of file diff --git a/app/components/header/HeaderNav.vue b/app/components/header/HeaderNav.vue index ab69f46..d9f7067 100644 --- a/app/components/header/HeaderNav.vue +++ b/app/components/header/HeaderNav.vue @@ -38,7 +38,7 @@
  • Nos missions
  • Direction musicale
  • Les musiciens
  • -
  • Les artistes invités
  • +
  • Les artistes invités
  • Discographie
  • Nos partenaires
  • Nous soutenir
  • @@ -166,7 +166,7 @@
  • Nos missions
  • Direction musicale
  • Les musiciens
  • -
  • Les artistes invités
  • +
  • Les artistes invités
  • Discographie
  • Nos partenaires
  • Nous soutenir
  • diff --git a/app/components/section/PageSection.vue b/app/components/section/PageSection.vue index adfdcc4..a6d9b2c 100644 --- a/app/components/section/PageSection.vue +++ b/app/components/section/PageSection.vue @@ -56,6 +56,7 @@ &--brand { background: var(--c-brand_rouge);} &--dark { background: var(--c-backgroud-black); } &--brandreverse { background: var(--c-backgroud-brandreverse); } + &--jaune { background: var(--c-background-jaune); } // padding en haut et en bas &--padded { diff --git a/app/composables/useArtistesInvitees.js b/app/composables/useArtistesInvitees.js new file mode 100644 index 0000000..41b955d --- /dev/null +++ b/app/composables/useArtistesInvitees.js @@ -0,0 +1,96 @@ +export function useArtistesInvitees(options = {}) { + const queryString = computed(() => { + const locale = unref(options.locale) ?? "fr-FR" + const sort = unref(options.sort) ?? null + const populate = unref(options.populate) ?? null + const filters = unref(options.filters) ?? null + + const query = new URLSearchParams() + query.set("locale", locale) + if (sort) { + query.set("sort[0]", sort) + } + if (populate && typeof populate === "object") { + appendPopulate(query, populate) + } + if (filters && typeof filters === "object") { + appendFilters(query, filters) + } + + return query.toString() + }) + + const { data, pending, error, refresh } = useFetch( + () => `/api/__strapi__/artistesinvitees?${queryString.value}`, + { + server: true, + key: () => `artistesinvitees:${queryString.value}`, + watch: [queryString], + } + ) + + const artistesinvitees = computed(() => { + let list = (data.value?.data || []).map(normalizeArtiste) + + const limit = unref(options.limit) + if (typeof limit === "number") { + list = list.slice(0, Math.max(0, limit)) + } + + return list + }) + + return { + artistesinvitees, + concerts: artistesinvitees, + pending, + error, + refresh, + } +} + +function appendPopulate(query, populate, prefix = "populate") { + Object.entries(populate).forEach(([key, value]) => { + if (value === true) { + query.set(`${prefix}[${key}]`, "true") + return + } + if (value && typeof value === "object") { + const entries = Object.entries(value) + const allTrue = entries.length > 0 && entries.every(([, v]) => v === true) + if (allTrue) { + const list = entries.map(([k]) => k).join(",") + query.set(`${prefix}[${key}][populate]`, list) + return + } + appendPopulate(query, value, `${prefix}[${key}][populate]`) + } + }) +} + +function appendFilters(query, filters, prefix = "filters") { + Object.entries(filters).forEach(([key, value]) => { + if (value === null || value === undefined) return + if (typeof value !== "object") { + query.set(`${prefix}[${key}]`, String(value)) + return + } + Object.entries(value).forEach(([k, v]) => { + if (v === null || v === undefined) return + if (typeof v !== "object") { + query.set(`${prefix}[${key}][${k}]`, String(v)) + return + } + appendFilters(query, v, `${prefix}[${key}][${k}]`) + }) + }) +} + +function normalizeArtiste(item) { + const a = item.attributes || item || {} + + return { + id: item.id, + ...a, + } +} diff --git a/app/pages/concerts/agenda.vue b/app/pages/concerts/agenda.vue index c054614..8d11da8 100644 --- a/app/pages/concerts/agenda.vue +++ b/app/pages/concerts/agenda.vue @@ -32,6 +32,7 @@ - - \ No newline at end of file diff --git a/app/pages/concerts/saison.vue b/app/pages/concerts/saison.vue index 11a56f4..1f73d89 100644 --- a/app/pages/concerts/saison.vue +++ b/app/pages/concerts/saison.vue @@ -32,6 +32,7 @@ + + diff --git a/app/pages/orchestre/artistes-invitees.vue b/app/pages/orchestre/artistes-invitees.vue deleted file mode 100644 index b9b4da4..0000000 --- a/app/pages/orchestre/artistes-invitees.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/pages/orchestre/artistesinvitees.vue b/app/pages/orchestre/artistesinvitees.vue new file mode 100644 index 0000000..7bf3e05 --- /dev/null +++ b/app/pages/orchestre/artistesinvitees.vue @@ -0,0 +1,317 @@ + + + + + diff --git a/app/pages/orchestre/direction.vue b/app/pages/orchestre/direction.vue index eb679ac..2db8d5c 100644 --- a/app/pages/orchestre/direction.vue +++ b/app/pages/orchestre/direction.vue @@ -4,7 +4,7 @@ - diff --git a/app/pages/orchestre/discographie.vue b/app/pages/orchestre/discographie.vue index b9b4da4..dc90619 100644 --- a/app/pages/orchestre/discographie.vue +++ b/app/pages/orchestre/discographie.vue @@ -1,10 +1,10 @@ - diff --git a/app/pages/orchestre/missions.vue b/app/pages/orchestre/missions.vue index 5f600df..14a4b86 100644 --- a/app/pages/orchestre/missions.vue +++ b/app/pages/orchestre/missions.vue @@ -4,7 +4,7 @@ - diff --git a/app/pages/orchestre/musiciens.vue b/app/pages/orchestre/musiciens.vue index f173f33..ade2940 100644 --- a/app/pages/orchestre/musiciens.vue +++ b/app/pages/orchestre/musiciens.vue @@ -48,6 +48,7 @@ :alt="a.image.alternativeText || a.nom_artiste_ondif || ''" ratio="square" /> + - diff --git a/design-system/tokens/_colors.scss b/design-system/tokens/_colors.scss index a26355f..437fd9c 100644 --- a/design-system/tokens/_colors.scss +++ b/design-system/tokens/_colors.scss @@ -14,6 +14,7 @@ --c-backgroud-black: #111; --c-backgroud-brandreverse: #ACCFCF; --c-background-blanc-casse: #FCFCFC; + --c-background-jaune: #fac020; /* États */ --c-success: green; diff --git a/env.txt b/env.txt deleted file mode 100644 index aeaac16..0000000 --- a/env.txt +++ /dev/null @@ -1,15 +0,0 @@ -ENV=developpement - -# Nuxt -NUXT_PUBLIC_SITE_URL=http://localhost:3000 -NUXT_PUBLIC_API_URL=http://localhost:3000 -NUXT_I18N_DEFAULT_LOCALE=fr -NUXT_I18N_LOCALES=fr,en - -# Strapi -NUXT_PUBLIC_STRAPI_URL=https://bo.orchestre-ile.com/ -NUXT_PUBLICSTRAPI_ADMIN_EMAIL=contact@parisweb.art -NUXT_STRAPI_TOKEN= - -# Métier -SAISON=2025/2026 \ No newline at end of file diff --git a/server/api/__strapi__/artistesinvitees.get.js b/server/api/__strapi__/artistesinvitees.get.js new file mode 100644 index 0000000..08789e8 --- /dev/null +++ b/server/api/__strapi__/artistesinvitees.get.js @@ -0,0 +1,7 @@ +import { createStrapiProxyHandler } from "~~/server/utils/strapiEndpoint" + +export default defineEventHandler( + createStrapiProxyHandler({ + strapiPath: "/api/artistes-invites", + }) +)