new fichier ressuorces.je
This commit is contained in:
@@ -378,109 +378,7 @@ window.addEventListener("resize", moveLanguageSwitcher);
|
||||
/////////////////// end langswitcher position responsive///////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////// start class à view-rows-ressources ////////
|
||||
$(document).ready(function () {
|
||||
$(".view-rows-wrapper").each(function () {
|
||||
let h3Container = $(this).prev("h3").find("div[class^='type-']");
|
||||
let classToAdd = h3Container.attr("class"); // Récupère la classe complète (ex: "type-Documentation")
|
||||
|
||||
if (classToAdd) {
|
||||
$(this).addClass(classToAdd); // Ajoute cette classe à .view-rows-wrapper
|
||||
}
|
||||
});
|
||||
|
||||
////////////////// end class à view-rows-wrapper ////////////////
|
||||
|
||||
|
||||
|
||||
/////////////////// start voir plus... ressources ////////////////////
|
||||
|
||||
|
||||
// Vérifier si on est sur la page avec l'ID #ressources
|
||||
if ($("#ressources").length > 0) {
|
||||
$(".view-rows-wrapper").each(function () {
|
||||
let container = $(this); // Cible uniquement cette section
|
||||
let items = container.find(".views-row"); // Les éléments à afficher progressivement
|
||||
let visibleCount = 4; // Nombre d'éléments visibles au départ (par défaut)
|
||||
|
||||
// Récupérer la classe `type-XXX`
|
||||
let typeClass = container.attr("class").split(" ").find(cls => cls.startsWith("type-"));
|
||||
let typeName = typeClass ? typeClass.replace("type-", "").replace(/-/g, " ") : "contenu"; // Nettoyer le nom
|
||||
|
||||
// >>> Exception : tout afficher pour type-Galerie-photos (pas de bouton)
|
||||
if (typeClass && typeClass.toLowerCase() === "type-mission-photo") {
|
||||
items.show(); // aucun masquage
|
||||
return; // on sort : pas de "voir plus"
|
||||
}
|
||||
|
||||
// Ajuster le nombre d'éléments visibles en fonction du type
|
||||
if (typeClass && (typeClass === "type-podcast" || typeClass.toLowerCase() === "type-vidéo")) {
|
||||
visibleCount = 2; // Pour Podcast et Vidéo
|
||||
} else if (typeClass === "type-kit-de-communication") {
|
||||
visibleCount = 1; // Pour Kit de Communication
|
||||
}
|
||||
|
||||
// Si le nombre total d'éléments est inférieur ou égal à la limite, ne pas ajouter le bouton
|
||||
if (items.length <= visibleCount) {
|
||||
return; // Sortir de la boucle
|
||||
}
|
||||
|
||||
// Ajouter le bouton dynamiquement après chaque `.view-rows-wrapper`
|
||||
let button = $("<button>")
|
||||
.addClass("voir-plus")
|
||||
.text("Voir plus de " + typeName)
|
||||
.insertAfter(container);
|
||||
|
||||
// Cacher tous les éléments sauf ceux définis par `visibleCount`
|
||||
items.hide().slice(0, visibleCount).show();
|
||||
|
||||
// Action sur le bouton
|
||||
button.on("click", function () {
|
||||
let hiddenItems = container.find(".views-row:hidden").slice(0, 4); // Prochains éléments à afficher
|
||||
|
||||
if ($(this).text().includes("Voir plus")) {
|
||||
hiddenItems.slideDown(); // Afficher avec un effet de glissement
|
||||
|
||||
if (container.find(".views-row:hidden").length === 0) {
|
||||
$(this).text("Voir moins de " + typeName); // Changer le texte du bouton si tout est affiché
|
||||
}
|
||||
} else {
|
||||
container.find(".views-row").slice(visibleCount).slideUp(); // Replier les éléments
|
||||
$(this).text("Voir plus de " + typeName); // Revenir à l'état initial
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// slimselect
|
||||
let ressource_type_select = new SlimSelect({
|
||||
select: '#edit-field-type-de-ressource-target-id--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
let ressource_motscles_select = new SlimSelect({
|
||||
select: '#edit-field-mots-clefs-target-id--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
let ressource_sites_select = new SlimSelect({
|
||||
select: '#edit-field-site-target-id-verf--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
// console.log(('sites_select'), sites_select);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/////////////////// end voir plus... ressources ////////////////////
|
||||
|
||||
|
||||
|
||||
/////////////////// start voir plus... actualite dans /actualites & /home ////////////////////
|
||||
@@ -555,17 +453,6 @@ $(document).ready(function () {
|
||||
/////////////////// end voir plus... actualite dans /actualites & /home ////////////////////
|
||||
|
||||
|
||||
/////////////// start class à view-rows-ressources ////////
|
||||
|
||||
$(".view-rows-wrapper").each(function () {
|
||||
let h3Container = $(this).prev("h3").find("div[class^='type-']");
|
||||
let classToAdd = h3Container.attr("class"); // Récupère la classe complète (ex: "type-Documentation")
|
||||
|
||||
if (classToAdd) {
|
||||
$(this).addClass(classToAdd); // Ajoute cette classe à .view-rows-wrapper
|
||||
}
|
||||
});
|
||||
////////////////// end class à view-rows-wrapper ////////////////
|
||||
|
||||
//////////////start toggle partenaire //////////////////
|
||||
|
||||
@@ -595,42 +482,6 @@ $(document).ready(function () {
|
||||
|
||||
|
||||
////////////// start toggle page node projet //////////////////
|
||||
// document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
// const photo = document.querySelector('.field_field_equipe_photo');
|
||||
// const pres = document.querySelector('.field_field_equipe_presentation');
|
||||
|
||||
// if (!pres) return;
|
||||
|
||||
// // Création du bouton
|
||||
// const btn = document.createElement('button');
|
||||
// btn.className = 'btn-equipe-toggle';
|
||||
// btn.textContent = "EN SAVOIR PLUS SUR L'ÉQUIPE";
|
||||
// btn.setAttribute('aria-expanded', false);
|
||||
|
||||
// // Insertion du bouton juste après le bloc présentation
|
||||
// pres.insertAdjacentElement('afterend', btn);
|
||||
|
||||
// // 3. Ajout de la ligne après le bouton
|
||||
// const separator = document.createElement('div');
|
||||
// separator.className = 'equipe-separator';
|
||||
// btn.insertAdjacentElement('afterend', separator);
|
||||
|
||||
// // Toggle
|
||||
// btn.addEventListener('click', function () {
|
||||
// const isOpen = pres.classList.toggle('is-open');
|
||||
|
||||
// if (photo) photo.classList.toggle('is-open');
|
||||
|
||||
// btn.textContent = isOpen
|
||||
// ? "FERMER LA PRÉSENTATION DE L'ÉQUIPE"
|
||||
// : "EN SAVOIR PLUS SUR L'ÉQUIPE";
|
||||
|
||||
// btn.setAttribute('aria-expanded', isOpen);
|
||||
// });
|
||||
|
||||
// });
|
||||
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
@@ -639,9 +490,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
if (!photo || !pres) return;
|
||||
|
||||
// 🔒 Forcer l'état FERMÉ au chargement
|
||||
photo.classList.remove('is-open');
|
||||
pres.classList.remove('is-open');
|
||||
// 🔒 Forcer l'état FERMÉ au chargement
|
||||
photo.classList.remove('is-open');
|
||||
pres.classList.remove('is-open');
|
||||
|
||||
// 1. Créer un wrapper autour de photo + présentation
|
||||
const panel = document.createElement('div');
|
||||
@@ -711,13 +562,13 @@ pres.classList.remove('is-open');
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
//////////////end toggle page node projet //////////////////
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
})(jQuery, window);
|
||||
|
||||
|
||||
@@ -1228,6 +1079,163 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
//////////////////////// end Timeline script /////////////////////////////////////////////
|
||||
})(jQuery, window);
|
||||
}();
|
||||
// This entry need to be wrapped in an IIFE because it need to be isolated against other entry modules.
|
||||
!function() {
|
||||
/*!*************************************!*\
|
||||
!*** ./src/assets/js/ressources.js ***!
|
||||
\*************************************/
|
||||
/**
|
||||
* @file
|
||||
* quartiers_de_demain behaviors.
|
||||
*/
|
||||
(function (Drupal) {
|
||||
|
||||
'use strict';
|
||||
|
||||
Drupal.behaviors.quartiers_de_demain = {
|
||||
attach: function (context, settings) {
|
||||
console.log('It works!');
|
||||
}
|
||||
};
|
||||
} (Drupal));
|
||||
|
||||
|
||||
|
||||
(function($, window) {
|
||||
$(document).ready(function () {
|
||||
/////////////// start class à view-rows-ressources ////////
|
||||
$(".view-rows-wrapper").each(function () {
|
||||
let h3Container = $(this).prev("h3").find("div[class^='type-']");
|
||||
let classToAdd = h3Container.attr("class"); // Récupère la classe complète (ex: "type-Documentation")
|
||||
|
||||
if (classToAdd) {
|
||||
$(this).addClass(classToAdd); // Ajoute cette classe à .view-rows-wrapper
|
||||
}
|
||||
});
|
||||
////////////////// end class à view-rows-wrapper ////////////////
|
||||
|
||||
|
||||
|
||||
|
||||
/////////////////// start voir plus... ressources ////////////////////
|
||||
|
||||
|
||||
// Vérifier si on est sur la page avec l'ID #ressources
|
||||
if ($("#ressources").length > 0) {
|
||||
$(".view-rows-wrapper").each(function () {
|
||||
let container = $(this); // Cible uniquement cette section
|
||||
let items = container.find(".views-row"); // Les éléments à afficher progressivement
|
||||
let visibleCount = 4; // Nombre d'éléments visibles au départ (par défaut)
|
||||
|
||||
// Récupérer la classe `type-XXX`
|
||||
let typeClass = container.attr("class").split(" ").find(cls => cls.startsWith("type-"));
|
||||
let typeName = typeClass ? typeClass.replace("type-", "").replace(/-/g, " ") : "contenu"; // Nettoyer le nom
|
||||
|
||||
// >>> Exception : tout afficher pour type-Galerie-photos (pas de bouton)
|
||||
if (typeClass && typeClass.toLowerCase() === "type-mission-photo") {
|
||||
items.show(); // aucun masquage
|
||||
return; // on sort : pas de "voir plus"
|
||||
}
|
||||
|
||||
// Ajuster le nombre d'éléments visibles en fonction du type
|
||||
if (typeClass && (typeClass === "type-podcast" || typeClass.toLowerCase() === "type-vidéo")) {
|
||||
visibleCount = 2; // Pour Podcast et Vidéo
|
||||
} else if (typeClass === "type-kit-de-communication") {
|
||||
visibleCount = 1; // Pour Kit de Communication
|
||||
}
|
||||
|
||||
// Si le nombre total d'éléments est inférieur ou égal à la limite, ne pas ajouter le bouton
|
||||
if (items.length <= visibleCount) {
|
||||
return; // Sortir de la boucle
|
||||
}
|
||||
|
||||
// Ajouter le bouton dynamiquement après chaque `.view-rows-wrapper`
|
||||
let button = $("<button>")
|
||||
.addClass("voir-plus")
|
||||
.text("Voir plus de " + typeName)
|
||||
.insertAfter(container);
|
||||
|
||||
// Cacher tous les éléments sauf ceux définis par `visibleCount`
|
||||
items.hide().slice(0, visibleCount).show();
|
||||
|
||||
// Action sur le bouton
|
||||
button.on("click", function () {
|
||||
let hiddenItems = container.find(".views-row:hidden").slice(0, 4); // Prochains éléments à afficher
|
||||
|
||||
if ($(this).text().includes("Voir plus")) {
|
||||
hiddenItems.slideDown(); // Afficher avec un effet de glissement
|
||||
|
||||
if (container.find(".views-row:hidden").length === 0) {
|
||||
$(this).text("Voir moins de " + typeName); // Changer le texte du bouton si tout est affiché
|
||||
}
|
||||
} else {
|
||||
container.find(".views-row").slice(visibleCount).slideUp(); // Replier les éléments
|
||||
$(this).text("Voir plus de " + typeName); // Revenir à l'état initial
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// slimselect
|
||||
let ressource_type_select = new SlimSelect({
|
||||
select: '#edit-field-type-de-ressource-target-id--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
let ressource_motscles_select = new SlimSelect({
|
||||
select: '#edit-field-mots-clefs-target-id--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
let ressource_sites_select = new SlimSelect({
|
||||
select: '#edit-field-site-target-id-verf--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
// console.log(('sites_select'), sites_select);
|
||||
|
||||
}
|
||||
|
||||
/////////////////// end voir plus... ressources ////////////////////
|
||||
|
||||
///////////////////////// start ressource img clicable mission photo //////////////////////
|
||||
$('.view-rows-wrapper.type-Mission-photo .views-row').each(function () {
|
||||
var $row = $(this);
|
||||
|
||||
// Lien cible : d'abord le titre, sinon "Voir la gallerie photo"
|
||||
var $link = $row.find('.views-field-views-conditional-field-1 a, .views-field-views-conditional-field a').first();
|
||||
|
||||
// L'image
|
||||
var $img = $row.find('.views-field-field-images img').first();
|
||||
|
||||
if ($link.length && $img.length && !$img.data('missionPhotoBound')) {
|
||||
console.log('→ Bind click sur image pour', $link.attr('href'));
|
||||
|
||||
$img.css('cursor', 'pointer');
|
||||
$img.on('click', function () {
|
||||
window.location.href = $link.attr('href');
|
||||
});
|
||||
|
||||
// éviter de binder plusieurs fois (si AJAX / re-init)
|
||||
$img.data('missionPhotoBound', true);
|
||||
}
|
||||
});
|
||||
///////////////////////// end ressource img clicable mission photo //////////////////////
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
})(jQuery, window);
|
||||
}();
|
||||
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
|
||||
!function() {
|
||||
"use strict";
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -320,109 +320,7 @@ window.addEventListener("resize", moveLanguageSwitcher);
|
||||
/////////////////// end langswitcher position responsive///////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////// start class à view-rows-ressources ////////
|
||||
$(document).ready(function () {
|
||||
$(".view-rows-wrapper").each(function () {
|
||||
let h3Container = $(this).prev("h3").find("div[class^='type-']");
|
||||
let classToAdd = h3Container.attr("class"); // Récupère la classe complète (ex: "type-Documentation")
|
||||
|
||||
if (classToAdd) {
|
||||
$(this).addClass(classToAdd); // Ajoute cette classe à .view-rows-wrapper
|
||||
}
|
||||
});
|
||||
|
||||
////////////////// end class à view-rows-wrapper ////////////////
|
||||
|
||||
|
||||
|
||||
/////////////////// start voir plus... ressources ////////////////////
|
||||
|
||||
|
||||
// Vérifier si on est sur la page avec l'ID #ressources
|
||||
if ($("#ressources").length > 0) {
|
||||
$(".view-rows-wrapper").each(function () {
|
||||
let container = $(this); // Cible uniquement cette section
|
||||
let items = container.find(".views-row"); // Les éléments à afficher progressivement
|
||||
let visibleCount = 4; // Nombre d'éléments visibles au départ (par défaut)
|
||||
|
||||
// Récupérer la classe `type-XXX`
|
||||
let typeClass = container.attr("class").split(" ").find(cls => cls.startsWith("type-"));
|
||||
let typeName = typeClass ? typeClass.replace("type-", "").replace(/-/g, " ") : "contenu"; // Nettoyer le nom
|
||||
|
||||
// >>> Exception : tout afficher pour type-Galerie-photos (pas de bouton)
|
||||
if (typeClass && typeClass.toLowerCase() === "type-mission-photo") {
|
||||
items.show(); // aucun masquage
|
||||
return; // on sort : pas de "voir plus"
|
||||
}
|
||||
|
||||
// Ajuster le nombre d'éléments visibles en fonction du type
|
||||
if (typeClass && (typeClass === "type-podcast" || typeClass.toLowerCase() === "type-vidéo")) {
|
||||
visibleCount = 2; // Pour Podcast et Vidéo
|
||||
} else if (typeClass === "type-kit-de-communication") {
|
||||
visibleCount = 1; // Pour Kit de Communication
|
||||
}
|
||||
|
||||
// Si le nombre total d'éléments est inférieur ou égal à la limite, ne pas ajouter le bouton
|
||||
if (items.length <= visibleCount) {
|
||||
return; // Sortir de la boucle
|
||||
}
|
||||
|
||||
// Ajouter le bouton dynamiquement après chaque `.view-rows-wrapper`
|
||||
let button = $("<button>")
|
||||
.addClass("voir-plus")
|
||||
.text("Voir plus de " + typeName)
|
||||
.insertAfter(container);
|
||||
|
||||
// Cacher tous les éléments sauf ceux définis par `visibleCount`
|
||||
items.hide().slice(0, visibleCount).show();
|
||||
|
||||
// Action sur le bouton
|
||||
button.on("click", function () {
|
||||
let hiddenItems = container.find(".views-row:hidden").slice(0, 4); // Prochains éléments à afficher
|
||||
|
||||
if ($(this).text().includes("Voir plus")) {
|
||||
hiddenItems.slideDown(); // Afficher avec un effet de glissement
|
||||
|
||||
if (container.find(".views-row:hidden").length === 0) {
|
||||
$(this).text("Voir moins de " + typeName); // Changer le texte du bouton si tout est affiché
|
||||
}
|
||||
} else {
|
||||
container.find(".views-row").slice(visibleCount).slideUp(); // Replier les éléments
|
||||
$(this).text("Voir plus de " + typeName); // Revenir à l'état initial
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// slimselect
|
||||
let ressource_type_select = new SlimSelect({
|
||||
select: '#edit-field-type-de-ressource-target-id--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
let ressource_motscles_select = new SlimSelect({
|
||||
select: '#edit-field-mots-clefs-target-id--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
let ressource_sites_select = new SlimSelect({
|
||||
select: '#edit-field-site-target-id-verf--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
// console.log(('sites_select'), sites_select);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/////////////////// end voir plus... ressources ////////////////////
|
||||
|
||||
|
||||
|
||||
/////////////////// start voir plus... actualite dans /actualites & /home ////////////////////
|
||||
@@ -497,17 +395,6 @@ $(document).ready(function () {
|
||||
/////////////////// end voir plus... actualite dans /actualites & /home ////////////////////
|
||||
|
||||
|
||||
/////////////// start class à view-rows-ressources ////////
|
||||
|
||||
$(".view-rows-wrapper").each(function () {
|
||||
let h3Container = $(this).prev("h3").find("div[class^='type-']");
|
||||
let classToAdd = h3Container.attr("class"); // Récupère la classe complète (ex: "type-Documentation")
|
||||
|
||||
if (classToAdd) {
|
||||
$(this).addClass(classToAdd); // Ajoute cette classe à .view-rows-wrapper
|
||||
}
|
||||
});
|
||||
////////////////// end class à view-rows-wrapper ////////////////
|
||||
|
||||
//////////////start toggle partenaire //////////////////
|
||||
|
||||
@@ -537,42 +424,6 @@ $(document).ready(function () {
|
||||
|
||||
|
||||
////////////// start toggle page node projet //////////////////
|
||||
// document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
// const photo = document.querySelector('.field_field_equipe_photo');
|
||||
// const pres = document.querySelector('.field_field_equipe_presentation');
|
||||
|
||||
// if (!pres) return;
|
||||
|
||||
// // Création du bouton
|
||||
// const btn = document.createElement('button');
|
||||
// btn.className = 'btn-equipe-toggle';
|
||||
// btn.textContent = "EN SAVOIR PLUS SUR L'ÉQUIPE";
|
||||
// btn.setAttribute('aria-expanded', false);
|
||||
|
||||
// // Insertion du bouton juste après le bloc présentation
|
||||
// pres.insertAdjacentElement('afterend', btn);
|
||||
|
||||
// // 3. Ajout de la ligne après le bouton
|
||||
// const separator = document.createElement('div');
|
||||
// separator.className = 'equipe-separator';
|
||||
// btn.insertAdjacentElement('afterend', separator);
|
||||
|
||||
// // Toggle
|
||||
// btn.addEventListener('click', function () {
|
||||
// const isOpen = pres.classList.toggle('is-open');
|
||||
|
||||
// if (photo) photo.classList.toggle('is-open');
|
||||
|
||||
// btn.textContent = isOpen
|
||||
// ? "FERMER LA PRÉSENTATION DE L'ÉQUIPE"
|
||||
// : "EN SAVOIR PLUS SUR L'ÉQUIPE";
|
||||
|
||||
// btn.setAttribute('aria-expanded', isOpen);
|
||||
// });
|
||||
|
||||
// });
|
||||
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
@@ -581,9 +432,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
if (!photo || !pres) return;
|
||||
|
||||
// 🔒 Forcer l'état FERMÉ au chargement
|
||||
photo.classList.remove('is-open');
|
||||
pres.classList.remove('is-open');
|
||||
// 🔒 Forcer l'état FERMÉ au chargement
|
||||
photo.classList.remove('is-open');
|
||||
pres.classList.remove('is-open');
|
||||
|
||||
// 1. Créer un wrapper autour de photo + présentation
|
||||
const panel = document.createElement('div');
|
||||
@@ -653,13 +504,13 @@ pres.classList.remove('is-open');
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
//////////////end toggle page node projet //////////////////
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
})(jQuery, window);
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
/**
|
||||
* @file
|
||||
* quartiers_de_demain behaviors.
|
||||
*/
|
||||
(function (Drupal) {
|
||||
|
||||
'use strict';
|
||||
|
||||
Drupal.behaviors.quartiers_de_demain = {
|
||||
attach: function (context, settings) {
|
||||
console.log('It works!');
|
||||
}
|
||||
};
|
||||
} (Drupal));
|
||||
|
||||
|
||||
|
||||
(function($, window) {
|
||||
$(document).ready(function () {
|
||||
/////////////// start class à view-rows-ressources ////////
|
||||
$(".view-rows-wrapper").each(function () {
|
||||
let h3Container = $(this).prev("h3").find("div[class^='type-']");
|
||||
let classToAdd = h3Container.attr("class"); // Récupère la classe complète (ex: "type-Documentation")
|
||||
|
||||
if (classToAdd) {
|
||||
$(this).addClass(classToAdd); // Ajoute cette classe à .view-rows-wrapper
|
||||
}
|
||||
});
|
||||
////////////////// end class à view-rows-wrapper ////////////////
|
||||
|
||||
|
||||
|
||||
|
||||
/////////////////// start voir plus... ressources ////////////////////
|
||||
|
||||
|
||||
// Vérifier si on est sur la page avec l'ID #ressources
|
||||
if ($("#ressources").length > 0) {
|
||||
$(".view-rows-wrapper").each(function () {
|
||||
let container = $(this); // Cible uniquement cette section
|
||||
let items = container.find(".views-row"); // Les éléments à afficher progressivement
|
||||
let visibleCount = 4; // Nombre d'éléments visibles au départ (par défaut)
|
||||
|
||||
// Récupérer la classe `type-XXX`
|
||||
let typeClass = container.attr("class").split(" ").find(cls => cls.startsWith("type-"));
|
||||
let typeName = typeClass ? typeClass.replace("type-", "").replace(/-/g, " ") : "contenu"; // Nettoyer le nom
|
||||
|
||||
// >>> Exception : tout afficher pour type-Galerie-photos (pas de bouton)
|
||||
if (typeClass && typeClass.toLowerCase() === "type-mission-photo") {
|
||||
items.show(); // aucun masquage
|
||||
return; // on sort : pas de "voir plus"
|
||||
}
|
||||
|
||||
// Ajuster le nombre d'éléments visibles en fonction du type
|
||||
if (typeClass && (typeClass === "type-podcast" || typeClass.toLowerCase() === "type-vidéo")) {
|
||||
visibleCount = 2; // Pour Podcast et Vidéo
|
||||
} else if (typeClass === "type-kit-de-communication") {
|
||||
visibleCount = 1; // Pour Kit de Communication
|
||||
}
|
||||
|
||||
// Si le nombre total d'éléments est inférieur ou égal à la limite, ne pas ajouter le bouton
|
||||
if (items.length <= visibleCount) {
|
||||
return; // Sortir de la boucle
|
||||
}
|
||||
|
||||
// Ajouter le bouton dynamiquement après chaque `.view-rows-wrapper`
|
||||
let button = $("<button>")
|
||||
.addClass("voir-plus")
|
||||
.text("Voir plus de " + typeName)
|
||||
.insertAfter(container);
|
||||
|
||||
// Cacher tous les éléments sauf ceux définis par `visibleCount`
|
||||
items.hide().slice(0, visibleCount).show();
|
||||
|
||||
// Action sur le bouton
|
||||
button.on("click", function () {
|
||||
let hiddenItems = container.find(".views-row:hidden").slice(0, 4); // Prochains éléments à afficher
|
||||
|
||||
if ($(this).text().includes("Voir plus")) {
|
||||
hiddenItems.slideDown(); // Afficher avec un effet de glissement
|
||||
|
||||
if (container.find(".views-row:hidden").length === 0) {
|
||||
$(this).text("Voir moins de " + typeName); // Changer le texte du bouton si tout est affiché
|
||||
}
|
||||
} else {
|
||||
container.find(".views-row").slice(visibleCount).slideUp(); // Replier les éléments
|
||||
$(this).text("Voir plus de " + typeName); // Revenir à l'état initial
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// slimselect
|
||||
let ressource_type_select = new SlimSelect({
|
||||
select: '#edit-field-type-de-ressource-target-id--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
let ressource_motscles_select = new SlimSelect({
|
||||
select: '#edit-field-mots-clefs-target-id--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
let ressource_sites_select = new SlimSelect({
|
||||
select: '#edit-field-site-target-id-verf--2',
|
||||
settings:{
|
||||
placeholderText: 'choisir',
|
||||
searchPlaceholder: 'choisir'
|
||||
}
|
||||
})
|
||||
// console.log(('sites_select'), sites_select);
|
||||
|
||||
}
|
||||
|
||||
/////////////////// end voir plus... ressources ////////////////////
|
||||
|
||||
///////////////////////// start ressource img clicable mission photo //////////////////////
|
||||
$('.view-rows-wrapper.type-Mission-photo .views-row').each(function () {
|
||||
var $row = $(this);
|
||||
|
||||
// Lien cible : d'abord le titre, sinon "Voir la gallerie photo"
|
||||
var $link = $row.find('.views-field-views-conditional-field-1 a, .views-field-views-conditional-field a').first();
|
||||
|
||||
// L'image
|
||||
var $img = $row.find('.views-field-field-images img').first();
|
||||
|
||||
if ($link.length && $img.length && !$img.data('missionPhotoBound')) {
|
||||
console.log('→ Bind click sur image pour', $link.attr('href'));
|
||||
|
||||
$img.css('cursor', 'pointer');
|
||||
$img.on('click', function () {
|
||||
window.location.href = $link.attr('href');
|
||||
});
|
||||
|
||||
// éviter de binder plusieurs fois (si AJAX / re-init)
|
||||
$img.data('missionPhotoBound', true);
|
||||
}
|
||||
});
|
||||
///////////////////////// end ressource img clicable mission photo //////////////////////
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
})(jQuery, window);
|
||||
@@ -12,6 +12,7 @@ let config = {
|
||||
"./src/assets/js/lightbox.js",
|
||||
"./src/assets/js/header.js",
|
||||
"./src/assets/js/timeline.js",
|
||||
"./src/assets/js/ressources.js",
|
||||
"./src/assets/scss/quartiers_de_demain.scss",
|
||||
// "./src/assets/fonts/*",
|
||||
// "./src/assets/css/animated_logo.css",
|
||||
|
||||
Reference in New Issue
Block a user