From bfb39a02597a596219e8542a68169bb1f4b3bcf8 Mon Sep 17 00:00:00 2001 From: Valentin Le Moign Date: Tue, 20 May 2025 20:07:03 +0200 Subject: [PATCH] =?UTF-8?q?filtre=20ressources=20par=20=C3=A9tape=20+=20tr?= =?UTF-8?q?i=C3=A9es=20par=20ordre=20chrono?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caravane/assets/js/stores/content.js | 3 +- .../js/utils/content/contentFetchUtils.js | 3 ++ .../assets/js/utils/content/multiItemPages.js | 2 ++ .../js/vuejs/components/CentreDeRessource.vue | 35 ++++++++++++++++--- .../js/vuejs/composables/useParseDates.js | 26 ++++++++++++++ .../custom/caravane/assets/scss/main.scss | 2 ++ 6 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 web/themes/custom/caravane/assets/js/vuejs/composables/useParseDates.js diff --git a/web/themes/custom/caravane/assets/js/stores/content.js b/web/themes/custom/caravane/assets/js/stores/content.js index a0fc2f4..14fec4e 100644 --- a/web/themes/custom/caravane/assets/js/stores/content.js +++ b/web/themes/custom/caravane/assets/js/stores/content.js @@ -188,9 +188,10 @@ export const useContentStore = defineStore('content', { case 'gouvernance': multiItemPageArray = await getGouvernance(rawContent); break; - } + } this.content[`${this.contentType}s`] = multiItemPageArray; + } } catch (error) { this.error = 'Failed to fetch data'; diff --git a/web/themes/custom/caravane/assets/js/utils/content/contentFetchUtils.js b/web/themes/custom/caravane/assets/js/utils/content/contentFetchUtils.js index a6933ee..f4c588b 100644 --- a/web/themes/custom/caravane/assets/js/utils/content/contentFetchUtils.js +++ b/web/themes/custom/caravane/assets/js/utils/content/contentFetchUtils.js @@ -120,6 +120,8 @@ export async function getRessourceItemCard(item) { vignette = null; } } + + const relatedEtape = await REST.get(item.relationships.field_etape.links.related.href); return { ressourceType: item.attributes.field_type_de_ressource, @@ -127,6 +129,7 @@ export async function getRessourceItemCard(item) { auteurice: item.attributes.field_autheurice, date: getCleanDate(item.attributes.field_date_ressource), url: ressourceFetch.data.data.attributes.metatag.find(tag => tag.tag === "link")?.attributes.href, + relatedEtape: relatedEtape.data.data.attributes.title, vignette }; } catch (error) { diff --git a/web/themes/custom/caravane/assets/js/utils/content/multiItemPages.js b/web/themes/custom/caravane/assets/js/utils/content/multiItemPages.js index f9f267c..9b960e4 100644 --- a/web/themes/custom/caravane/assets/js/utils/content/multiItemPages.js +++ b/web/themes/custom/caravane/assets/js/utils/content/multiItemPages.js @@ -55,6 +55,8 @@ export async function getGouvernance(rawContent) { } export async function getRessources(rawContent) { + console.log(rawContent); + const ressourcesPromises = rawContent.map(item => getRessourceItemCard(item)); return await Promise.all(ressourcesPromises); diff --git a/web/themes/custom/caravane/assets/js/vuejs/components/CentreDeRessource.vue b/web/themes/custom/caravane/assets/js/vuejs/components/CentreDeRessource.vue index bf24421..41344f2 100644 --- a/web/themes/custom/caravane/assets/js/vuejs/components/CentreDeRessource.vue +++ b/web/themes/custom/caravane/assets/js/vuejs/components/CentreDeRessource.vue @@ -8,6 +8,12 @@ {{ type.replace(/_/g, ' ').replace(/^\w/, char => char.toUpperCase()) }} +