modif settings backend style map et ajout field étape couleurs
This commit is contained in:
@@ -43,18 +43,19 @@ export const useContentStore = defineStore('content', {
|
||||
this.etape.etape_number = etape.attributes.field_arret_numero;
|
||||
this.etape.dates = etape.attributes.field_dates;
|
||||
this.etape.geofield = etape.attributes.field_geofield;
|
||||
this.etape.galeries = await fetchEtapeContent('field_galleries', etape.relationships);
|
||||
const partiesFetch = await fetchEtapeContent('field_parties', etape.relationships);
|
||||
this.etape.galeries = await this.fetchEtapeContent('field_galleries', etape.relationships);
|
||||
const partiesFetch = await this.fetchEtapeContent('field_parties', etape.relationships);
|
||||
let partiesArray = []
|
||||
for (let partie of partiesFetch) {
|
||||
partiesArray.push({ title: partie.attributes.field_titre, text: partie.attributes.field_texte.value });
|
||||
}
|
||||
this.etape.parties = partiesArray;
|
||||
this.etape.saison = await fetchEtapeContent('field_saison', etape.relationships);
|
||||
this.etape.saison = await fetchEtapeContent('field_saison', etape.relationships);
|
||||
this.etape.thematiques = await fetchEtapeContent('field_thematiques', etape.relationships);
|
||||
const vignetteFetch = await fetchEtapeContent('field_vignette', etape.relationships);
|
||||
this.etape.saison = await this.fetchEtapeContent('field_saison', etape.relationships);
|
||||
this.etape.saison = await this.fetchEtapeContent('field_saison', etape.relationships);
|
||||
this.etape.thematiques = await this.fetchEtapeContent('field_thematiques', etape.relationships);
|
||||
const vignetteFetch = await this.fetchEtapeContent('field_vignette', etape.relationships);
|
||||
this.etape.vignette = { url: vignetteFetch.attributes.uri.url, alt: etape.attributes.field_vignette_alt };
|
||||
this.setActiveItemInMenu();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -76,7 +77,7 @@ export const useContentStore = defineStore('content', {
|
||||
if (staticContent.attributes.drupal_internal__nid == nid) {
|
||||
staticContent.attributes.metatag.forEach(item => {
|
||||
if (item.tag === 'meta') {
|
||||
this.page.title = item.attributes.content;
|
||||
this.page.title = item.attributes.content.split(' |')[0];
|
||||
}
|
||||
if (item.tag === 'link') {
|
||||
this.href = item.attributes.href;
|
||||
@@ -85,6 +86,7 @@ export const useContentStore = defineStore('content', {
|
||||
this.page.text = staticContent.attributes.field_texte.value;
|
||||
}
|
||||
}
|
||||
this.setActiveItemInMenu();
|
||||
} catch (error) {
|
||||
this.error = 'Failed to fetch data';
|
||||
console.error('Issue with getNodeData', error);
|
||||
@@ -95,19 +97,55 @@ export const useContentStore = defineStore('content', {
|
||||
emptyAll() {
|
||||
this.etape = {};
|
||||
this.page = {};
|
||||
this.setActiveItemInMenu();
|
||||
},
|
||||
setActiveItemInMenu() {
|
||||
const title = this.etape.title || this.page.title;
|
||||
|
||||
const generalLinks = document.querySelectorAll('#menu > ul > li > a');
|
||||
if (Object.entries(this.etape).length === 0 && Object.entries(this.page).length === 0) {
|
||||
for (let link of generalLinks) {
|
||||
link.classList.remove('is-active');
|
||||
}
|
||||
generalLinks[0].classList.add('is-active');
|
||||
} else {
|
||||
for (let link of generalLinks) {
|
||||
if (link.innerText === title) {
|
||||
link.classList.add('is-active');
|
||||
} else {
|
||||
link.classList.remove('is-active');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const etapeLinks = document.querySelectorAll('#etapes-liste li');
|
||||
for (let link of etapeLinks) {
|
||||
const a = link.querySelector('a');
|
||||
if (a.innerText === title) {
|
||||
link.classList.remove('inactive');
|
||||
} else {
|
||||
link.classList.add('inactive');
|
||||
}
|
||||
}
|
||||
const inactiveLinks = document.querySelectorAll('#etapes-liste li.inactive');
|
||||
if (inactiveLinks.length === etapeLinks.length) {
|
||||
for (let link of inactiveLinks) {
|
||||
link.classList.remove('inactive');
|
||||
}
|
||||
}
|
||||
},
|
||||
async fetchEtapeContent(field, relationships) {
|
||||
if (relationships[field].data) {
|
||||
try {
|
||||
const contentLink = relationships[field].links.related.href;
|
||||
const contentFetch = await REST.get(contentLink);
|
||||
return contentFetch.data.data;
|
||||
} catch (error) {
|
||||
this.error = 'Failed to fetch data';
|
||||
console.error('Issue with getNodeData', error);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
async function fetchEtapeContent(field, relationships) {
|
||||
if (relationships[field].data) {
|
||||
try {
|
||||
const contentLink = relationships[field].links.related.href;
|
||||
const contentFetch = await REST.get(contentLink);
|
||||
return contentFetch.data.data;
|
||||
} catch (error) {
|
||||
this.error = 'Failed to fetch data';
|
||||
console.error('Issue with getNodeData', error);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user