new fichier ressuorces.je
This commit is contained in:
@@ -378,109 +378,7 @@ window.addEventListener("resize", moveLanguageSwitcher);
|
|||||||
/////////////////// end langswitcher position responsive///////////////////////////////////////////////////////////
|
/////////////////// end langswitcher position responsive///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
/////////////// start class à view-rows-ressources ////////
|
|
||||||
$(document).ready(function () {
|
$(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 ////////////////////
|
/////////////////// start voir plus... actualite dans /actualites & /home ////////////////////
|
||||||
@@ -555,17 +453,6 @@ $(document).ready(function () {
|
|||||||
/////////////////// end voir plus... actualite dans /actualites & /home ////////////////////
|
/////////////////// 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 //////////////////
|
//////////////start toggle partenaire //////////////////
|
||||||
|
|
||||||
@@ -595,42 +482,6 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
|
|
||||||
////////////// start toggle page node projet //////////////////
|
////////////// 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 () {
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
|
||||||
@@ -639,9 +490,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
|
|
||||||
if (!photo || !pres) return;
|
if (!photo || !pres) return;
|
||||||
|
|
||||||
// 🔒 Forcer l'état FERMÉ au chargement
|
// 🔒 Forcer l'état FERMÉ au chargement
|
||||||
photo.classList.remove('is-open');
|
photo.classList.remove('is-open');
|
||||||
pres.classList.remove('is-open');
|
pres.classList.remove('is-open');
|
||||||
|
|
||||||
// 1. Créer un wrapper autour de photo + présentation
|
// 1. Créer un wrapper autour de photo + présentation
|
||||||
const panel = document.createElement('div');
|
const panel = document.createElement('div');
|
||||||
@@ -711,13 +562,13 @@ pres.classList.remove('is-open');
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////end toggle page node projet //////////////////
|
//////////////end toggle page node projet //////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})(jQuery, window);
|
})(jQuery, window);
|
||||||
|
|
||||||
|
|
||||||
@@ -1226,6 +1077,163 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
|
|
||||||
|
|
||||||
//////////////////////// end Timeline script /////////////////////////////////////////////
|
//////////////////////// 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);
|
})(jQuery, window);
|
||||||
}();
|
}();
|
||||||
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
|
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -320,109 +320,7 @@ window.addEventListener("resize", moveLanguageSwitcher);
|
|||||||
/////////////////// end langswitcher position responsive///////////////////////////////////////////////////////////
|
/////////////////// end langswitcher position responsive///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
/////////////// start class à view-rows-ressources ////////
|
|
||||||
$(document).ready(function () {
|
$(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 ////////////////////
|
/////////////////// start voir plus... actualite dans /actualites & /home ////////////////////
|
||||||
@@ -497,17 +395,6 @@ $(document).ready(function () {
|
|||||||
/////////////////// end voir plus... actualite dans /actualites & /home ////////////////////
|
/////////////////// 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 //////////////////
|
//////////////start toggle partenaire //////////////////
|
||||||
|
|
||||||
@@ -537,42 +424,6 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
|
|
||||||
////////////// start toggle page node projet //////////////////
|
////////////// 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 () {
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
|
||||||
@@ -581,9 +432,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
|
|
||||||
if (!photo || !pres) return;
|
if (!photo || !pres) return;
|
||||||
|
|
||||||
// 🔒 Forcer l'état FERMÉ au chargement
|
// 🔒 Forcer l'état FERMÉ au chargement
|
||||||
photo.classList.remove('is-open');
|
photo.classList.remove('is-open');
|
||||||
pres.classList.remove('is-open');
|
pres.classList.remove('is-open');
|
||||||
|
|
||||||
// 1. Créer un wrapper autour de photo + présentation
|
// 1. Créer un wrapper autour de photo + présentation
|
||||||
const panel = document.createElement('div');
|
const panel = document.createElement('div');
|
||||||
@@ -653,13 +504,13 @@ pres.classList.remove('is-open');
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////end toggle page node projet //////////////////
|
//////////////end toggle page node projet //////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})(jQuery, window);
|
})(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/lightbox.js",
|
||||||
"./src/assets/js/header.js",
|
"./src/assets/js/header.js",
|
||||||
"./src/assets/js/timeline.js",
|
"./src/assets/js/timeline.js",
|
||||||
|
"./src/assets/js/ressources.js",
|
||||||
"./src/assets/scss/quartiers_de_demain.scss",
|
"./src/assets/scss/quartiers_de_demain.scss",
|
||||||
// "./src/assets/fonts/*",
|
// "./src/assets/fonts/*",
|
||||||
// "./src/assets/css/animated_logo.css",
|
// "./src/assets/css/animated_logo.css",
|
||||||
|
|||||||
Reference in New Issue
Block a user