From 091f946b30a751caf672ae2b414f5fbba3d1d0bf Mon Sep 17 00:00:00 2001 From: ouidade Date: Tue, 20 May 2025 11:01:57 +0200 Subject: [PATCH] js affichage bandeau ressources --- web/themes/custom/eql/dist/assets/bundle.js | 2 +- .../custom/eql/dist/assets/css/bundle.css | 73 ++++++++++--------- web/themes/custom/eql/scripts/main.js | 30 +++++++- .../custom/eql/scss/pages/ressources.scss | 17 +++-- .../partials/_node-type-ressource-teaser.scss | 2 +- 5 files changed, 80 insertions(+), 44 deletions(-) diff --git a/web/themes/custom/eql/dist/assets/bundle.js b/web/themes/custom/eql/dist/assets/bundle.js index 68303e5..f292e7a 100644 --- a/web/themes/custom/eql/dist/assets/bundle.js +++ b/web/themes/custom/eql/dist/assets/bundle.js @@ -36,7 +36,7 @@ eval("/**\n * @file\n * External links js file.\n */\n\n (function ($, Drupal, d \*************************/ /***/ (function() { -eval("\nconsole.log('salut');\n// menu burger open\n\nvar burger = document.getElementById(\"block-burger\");\nvar burgertitle = document.getElementById(\"block-burger-menu\");\n\n\nburgertitle.addEventListener(\"click\", toggleMenu);\n\nfunction toggleMenu(event) {\n // console.log(event);\n burger.classList.toggle('opened');\n}\n\n//////////////////////////\n// faq reponse open \n\nvar answers = document.getElementsByClassName(\"field--name-field-reponse\");\nvar fichiers = document.getElementsByClassName(\"field--name-field-fichiers\");\nvar questions = document.getElementsByClassName(\"field--name-field-question\");\n\nfor (let i = 0; i < questions.length; i++) {\n const question = questions[i]\n question.addEventListener(\"click\", toggleFaq);\n}\nfunction toggleFaq(event) {\n // console.log(event, this);\n // fermé tout\n for (let i = 0; i < answers.length; i++) {\n answers[i].classList.remove('opened'); \n }\n // la réponse correspndante a la question clické\n // | this c'est l'élément sur le quel on a clické\n // | |le parent |la réponse dans le parent\n let answer = this.parentNode.querySelector('.field--name-field-reponse');\n // console.log(answer); \n answer.classList.add('opened');\n\n}\n///// répète fonction pour les fichiers, les liens et ressources\n//// il faudrait créer un tableau d'objet ?\n\nvar fichiers = document.getElementsByClassName(\"field--name-field-fichiers\");\nvar questions = document.getElementsByClassName(\"field--name-field-question\");\n\nfor (let i = 0; i < questions.length; i++) {\n const question = questions[i]\n question.addEventListener(\"click\", toggleFaqFichiers);\n}\nfunction toggleFaqFichiers(event) {\n // console.log(event, this);\nfor (let i = 0; i < fichiers.length; i++) {\n fichiers[i].classList.remove('opened'); \n}\nlet fichier = this.parentNode.querySelector('.field--name-field-fichiers');\n\nfichier.classList.add('opened');\n}\n\n\n////////////////////////\nvar liens = document.getElementsByClassName(\"field--name-field-liens\");\nvar questions = document.getElementsByClassName(\"field--name-field-question\");\n\nfor (let i = 0; i < questions.length; i++) {\n const question = questions[i]\n question.addEventListener(\"click\", toggleFaqLiens);\n}\nfunction toggleFaqLiens(event) {\n // console.log(event, this);\nfor (let i = 0; i < liens.length; i++) {\n liens[i].classList.remove('opened'); \n}\nlet lien = this.parentNode.querySelector('.field--name-field-liens');\n \nlien.classList.add('opened');\n}\n\n//////////////////////\nvar ressources = document.getElementsByClassName(\"field--name-field-ress\");\nvar questions = document.getElementsByClassName(\"field--name-field-question\");\n\nfor (let i = 0; i < questions.length; i++) {\n const question = questions[i]\n question.addEventListener(\"click\", toggleFaqRessources);\n}\nfunction toggleFaqRessources(event) {\n // console.log(event, this);\nfor (let i = 0; i < resources.length; i++) {\n ressources[i].classList.remove('opened'); \n}\nlet ressource = this.parentNode.querySelector('.field--name-field-ress');\n\nressource.classList.add('opened');\n}\n\n///////////////////////////////\n////////////////////////////////\n// fleche qui tourne faq\n\n// var questions = document.getElementsByClassName(\"field--name-field-question\");\n// var paragraph = document.querySelector('.field--name-field-question p::after');\n// console.log(paragraph)\n// var styles = window.getComputedStyle(element,':after')\n// console.log(styles)\n// var content = styles['content']\n// console.log(content)\n\n\n// for (let i = 0; i < questions.length; i++) {\n// const question = questions[i]\n// question.addEventListener(\"click\", rotateFleche);\n// }\n// function rotateFleche(event) {\n// console.log(event, this);\n// // for (let i = 0; i < answers.length; i++) {\n// // answers[i].classList.remove('opened'); \n// // }\n// }\n\n//////////////////////////////////////////\n// block collection reste bleu quand actif\n \njQuery(function($) {\n var path = window.location.href; // because the 'href' property of the DOM element is the absolute path\n console.log(path);\n $(\".view-id-collections .view-content .views-row a\").each(function() {\n if (this.href === path) {\n $(this).parent().closest('.views-row').addClass('active');\n }\n });\n });\n\n// /////////////////\n//// ancre dans texte au click parragraphe correspondant arrive en dessous du header \n\n\n(function($, window) {\n var adjustAnchor = function() {\n var $anchor = $('.block-entity-fieldnodefield-textes'),\n fixedElementHeight = 350;\n if ($anchor.length > 0) {\n $('html, body').stop().animate({scrollTop: $anchor.offset().top - fixedElementHeight }, 0);\n }\n };\n\n $(window).on('hashchange', function() {\n adjustAnchor();\n });\n\n})(jQuery, window);\n\n\n// ///////////////////////////////\n\n\n// slideshow home // marche pas. attention ai rajouter des class dans template views.view.html.twig et views-view-actus-blocks-pages--block-1.html.twig\n\n(function($, window) {\n console.log('hello')\n $(document).ready(function(){\n $('.path-frontpage .view-actus-blocks-pages .view-content .view-type-slide .views-row-wrapper').slick({\n slidesToShow: 1,\n // slidesToScroll: 1,\n dots: true,\n arrows: true,\n centerMode: true,\n // centerPadding: '100px',\n responsive: [\n {\n breakpoint: 810,\n settings: {\n slidesToShow: 1,\n adaptiveHeight: true,\n arrows: false,\n draggable: true,\n centerMode: true,\n }\n }]\n });\n console.log('salut slick home');\n\n\n $('.page-node-type-actualite .block-entity-fieldnodefield-images .field--type-image').slick({\n dots: true,\n arrows: true,\n adaptiveHeight: true,\n responsive: [\n {\n breakpoint: 800,\n settings: {\n adaptiveHeight: true\n }\n }]\n });\n console.log('salut slick actus');\n\n\n $('.page-node-type-projet .block-entity-fieldnodefield-photo .field--type-image').slick({\n slidesToShow: 1,\n dots: true,\n arrows: false,\n draggable: true,\n adaptiveHeight: true,\n responsive: [\n {\n breakpoint: 800,\n settings: {\n adaptiveHeight: true\n }\n }]\n });\n console.log('salut slick projets');\n\n $('.path-ressources .view:not(.view-partenaires) .view-content .view-type-slide .views-row-wrapper').slick({\n slidesToShow: 3,\n dots: false,\n arrows: true,\n infinite: false,\n centerMode: false,\n // responsive: [\n // {\n // breakpoint: 810,\n // settings: {\n // slidesToShow: 3,\n // arrows: false,\n // draggable: true,\n // centerMode: true,\n // }\n // }]\n });\n console.log('salut slick ressource');\n\n });\n\n\n// //////// start class à views-row-wrapper ////////\n$(document).ready(function () {\n $(\".views-row-wrapper\").each(function () {\n let h3 = $(this).prev(\"h3\");\n let link = h3.find(\"a\");\n if (link.length) {\n let text = link.text().trim();\n let className = text\n .toLowerCase()\n .normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\") // enlever les accents\n .replace(/[^a-z0-9]+/g, '-') // remplacer tout ce qui n'est pas a-z0-9 par -\n .replace(/(^-|-$)/g, ''); // enlever tirets début/fin\n\n $(this).addClass('type-' + className);\n // Ajouter la même classe sur le

\n h3.addClass('type-' + className);\n }\n });\n\n\n $(\".wrapper-ressource\").each(function(){\n let media = $(this).find(\".field--name-field-type-de-media\");\n\n // console.log(media);\n \n let mediaText = media.text().trim();\n let className = mediaText\n .toLowerCase()\n .normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\") // enlever les accents\n .replace(/[^a-z0-9]+/g, '-') // remplacer tout ce qui n'est pas a-z0-9 par -\n .replace(/(^-|-$)/g, ''); // enlever tirets début/fin\n // console.log(mediaText);\n $(this).addClass('type-media-' + className);\n });\n\n});\n// /////// end class à views-row-wrapper ///////\n\n\n/////////////// start ouverture liens externes vers nouvel onglet //////////////////\ndocument.querySelectorAll('a[href^=\"http\"]').forEach(link => {\n if (!link.href.includes(location.hostname)) {\n link.setAttribute('target', '_blank');\n link.setAttribute('rel', 'noopener noreferrer');\n }\n});\n\n/////////////// end ouverture liens externes vers nouvel onglet //////////////////\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n const form = document.querySelector(\".views-exposed-form\");\n\n // console.log(form);\n\n if (form) {\n form.setAttribute(\"action\", form.action.split(\"#\")[0] + \"#filtres\");\n }\n if (window.location.hash === \"#filtres\") {\n const target = document.getElementById(\"filtres\");\n if (target) {\n // target.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n const offset = 300;\n const top = target.getBoundingClientRect().top + window.pageYOffset - offset;\n\n window.scrollTo({\n top: top,\n behavior: \"smooth\"\n });\n }\n }\n\n document.querySelectorAll(\".view-type-ressource-slide\").forEach(view => {\n const h3Content = view.querySelector(\"h3 > a\")?.textContent.trim();\n\n view.querySelectorAll(\".field--name-field-type-de-ressource\").forEach(field => {\n const fieldText = field.textContent.trim();\n\n if (fieldText === h3Content) {\n field.style.display = \"none\";\n }\n });\n });\n\n});\n\n})(jQuery, window);\n\n\n\n//# sourceURL=webpack://dev.eql.fr/./scripts/main.js?"); +eval("\nconsole.log('salut');\n// menu burger open\n\nvar burger = document.getElementById(\"block-burger\");\nvar burgertitle = document.getElementById(\"block-burger-menu\");\n\n\nburgertitle.addEventListener(\"click\", toggleMenu);\n\nfunction toggleMenu(event) {\n // console.log(event);\n burger.classList.toggle('opened');\n}\n\n//////////////////////////\n// faq reponse open \n\nvar answers = document.getElementsByClassName(\"field--name-field-reponse\");\nvar fichiers = document.getElementsByClassName(\"field--name-field-fichiers\");\nvar questions = document.getElementsByClassName(\"field--name-field-question\");\n\nfor (let i = 0; i < questions.length; i++) {\n const question = questions[i]\n question.addEventListener(\"click\", toggleFaq);\n}\nfunction toggleFaq(event) {\n // console.log(event, this);\n // fermé tout\n for (let i = 0; i < answers.length; i++) {\n answers[i].classList.remove('opened'); \n }\n // la réponse correspndante a la question clické\n // | this c'est l'élément sur le quel on a clické\n // | |le parent |la réponse dans le parent\n let answer = this.parentNode.querySelector('.field--name-field-reponse');\n // console.log(answer); \n answer.classList.add('opened');\n\n}\n///// répète fonction pour les fichiers, les liens et ressources\n//// il faudrait créer un tableau d'objet ?\n\nvar fichiers = document.getElementsByClassName(\"field--name-field-fichiers\");\nvar questions = document.getElementsByClassName(\"field--name-field-question\");\n\nfor (let i = 0; i < questions.length; i++) {\n const question = questions[i]\n question.addEventListener(\"click\", toggleFaqFichiers);\n}\nfunction toggleFaqFichiers(event) {\n // console.log(event, this);\nfor (let i = 0; i < fichiers.length; i++) {\n fichiers[i].classList.remove('opened'); \n}\nlet fichier = this.parentNode.querySelector('.field--name-field-fichiers');\n\nfichier.classList.add('opened');\n}\n\n\n////////////////////////\nvar liens = document.getElementsByClassName(\"field--name-field-liens\");\nvar questions = document.getElementsByClassName(\"field--name-field-question\");\n\nfor (let i = 0; i < questions.length; i++) {\n const question = questions[i]\n question.addEventListener(\"click\", toggleFaqLiens);\n}\nfunction toggleFaqLiens(event) {\n // console.log(event, this);\nfor (let i = 0; i < liens.length; i++) {\n liens[i].classList.remove('opened'); \n}\nlet lien = this.parentNode.querySelector('.field--name-field-liens');\n \nlien.classList.add('opened');\n}\n\n//////////////////////\nvar ressources = document.getElementsByClassName(\"field--name-field-ress\");\nvar questions = document.getElementsByClassName(\"field--name-field-question\");\n\nfor (let i = 0; i < questions.length; i++) {\n const question = questions[i]\n question.addEventListener(\"click\", toggleFaqRessources);\n}\nfunction toggleFaqRessources(event) {\n // console.log(event, this);\nfor (let i = 0; i < resources.length; i++) {\n ressources[i].classList.remove('opened'); \n}\nlet ressource = this.parentNode.querySelector('.field--name-field-ress');\n\nressource.classList.add('opened');\n}\n\n///////////////////////////////\n////////////////////////////////\n// fleche qui tourne faq\n\n// var questions = document.getElementsByClassName(\"field--name-field-question\");\n// var paragraph = document.querySelector('.field--name-field-question p::after');\n// console.log(paragraph)\n// var styles = window.getComputedStyle(element,':after')\n// console.log(styles)\n// var content = styles['content']\n// console.log(content)\n\n\n// for (let i = 0; i < questions.length; i++) {\n// const question = questions[i]\n// question.addEventListener(\"click\", rotateFleche);\n// }\n// function rotateFleche(event) {\n// console.log(event, this);\n// // for (let i = 0; i < answers.length; i++) {\n// // answers[i].classList.remove('opened'); \n// // }\n// }\n\n//////////////////////////////////////////\n// block collection reste bleu quand actif\n \njQuery(function($) {\n var path = window.location.href; // because the 'href' property of the DOM element is the absolute path\n console.log(path);\n $(\".view-id-collections .view-content .views-row a\").each(function() {\n if (this.href === path) {\n $(this).parent().closest('.views-row').addClass('active');\n }\n });\n });\n\n// /////////////////\n//// ancre dans texte au click parragraphe correspondant arrive en dessous du header \n\n\n(function($, window) {\n var adjustAnchor = function() {\n var $anchor = $('.block-entity-fieldnodefield-textes'),\n fixedElementHeight = 350;\n if ($anchor.length > 0) {\n $('html, body').stop().animate({scrollTop: $anchor.offset().top - fixedElementHeight }, 0);\n }\n };\n\n $(window).on('hashchange', function() {\n adjustAnchor();\n });\n\n})(jQuery, window);\n\n\n// ///////////////////////////////\n\n\n// slideshow home // marche pas. attention ai rajouter des class dans template views.view.html.twig et views-view-actus-blocks-pages--block-1.html.twig\n\n(function($, window) {\n console.log('hello')\n $(document).ready(function(){\n $('.path-frontpage .view-actus-blocks-pages .view-content .view-type-slide .views-row-wrapper').slick({\n slidesToShow: 1,\n // slidesToScroll: 1,\n dots: true,\n arrows: true,\n centerMode: true,\n // centerPadding: '100px',\n responsive: [\n {\n breakpoint: 810,\n settings: {\n slidesToShow: 1,\n adaptiveHeight: true,\n arrows: false,\n draggable: true,\n centerMode: true,\n }\n }]\n });\n console.log('salut slick home');\n\n\n $('.page-node-type-actualite .block-entity-fieldnodefield-images .field--type-image').slick({\n dots: true,\n arrows: true,\n adaptiveHeight: true,\n responsive: [\n {\n breakpoint: 800,\n settings: {\n adaptiveHeight: true\n }\n }]\n });\n console.log('salut slick actus');\n\n\n $('.page-node-type-projet .block-entity-fieldnodefield-photo .field--type-image').slick({\n slidesToShow: 1,\n dots: true,\n arrows: false,\n draggable: true,\n adaptiveHeight: true,\n responsive: [\n {\n breakpoint: 800,\n settings: {\n adaptiveHeight: true\n }\n }]\n });\n console.log('salut slick projets');\n\n $('.path-ressources .view:not(.view-partenaires) .view-content .view-type-slide .views-row-wrapper').slick({\n slidesToShow: 3,\n dots: false,\n arrows: true,\n infinite: false,\n centerMode: false,\n // responsive: [\n // {\n // breakpoint: 810,\n // settings: {\n // slidesToShow: 3,\n // arrows: false,\n // draggable: true,\n // centerMode: true,\n // }\n // }]\n });\n console.log('salut slick ressource');\n\n });\n\n\n// //////// start ajoute class à views-row-wrapper et view-type-slide dans /ressources ////////\n$(document).ready(function () {\n $(\".views-row-wrapper\").each(function () {\n let h3 = $(this).prev(\"h3\");\n let link = h3.find(\"a\");\n if (link.length) {\n let text = link.text().trim();\n let className = text\n .toLowerCase()\n .normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\") // enlever les accents\n .replace(/[^a-z0-9]+/g, '-') // remplacer tout ce qui n'est pas a-z0-9 par -\n .replace(/(^-|-$)/g, ''); // enlever tirets début/fin\n\n $(this).addClass('type-' + className);\n // Ajouter la même classe sur le

\n h3.addClass('type-' + className);\n h3.closest('.view-type-slide').addClass('type-' + className); // ajouter aussi au bloc parent\n }\n });\n\n\n $(\".wrapper-ressource\").each(function(){\n let media = $(this).find(\".field--name-field-type-de-media\");\n\n // console.log(media);\n \n let mediaText = media.text().trim();\n let className = mediaText\n .toLowerCase()\n .normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\") // enlever les accents\n .replace(/[^a-z0-9]+/g, '-') // remplacer tout ce qui n'est pas a-z0-9 par -\n .replace(/(^-|-$)/g, ''); // enlever tirets début/fin\n // console.log(mediaText);\n $(this).addClass('type-media-' + className);\n });\n\n////// cache les slide non voulue en fonction de la class /////////\n const allowedTypes = [\n \"type-publication-issue-du-programme-eqld\",\n \"type-paroles-de-laureats\",\n \"type-les-projets-en-images\",\n \"type-presse\"\n ];\n\n $(\".view-type-slide\").each(function () {\n let $block = $(this);\n let keep = allowedTypes.some(type => $block.hasClass(type));\n\n if (!keep) {\n $block.hide(); // ou fadeOut() si tu veux un effet\n }\n });\n});\n// /////// end class à views-row-wrapper ///////\n\n\n/////////////// start ouverture liens externes vers nouvel onglet //////////////////\ndocument.querySelectorAll('a[href^=\"http\"]').forEach(link => {\n if (!link.href.includes(location.hostname)) {\n link.setAttribute('target', '_blank');\n link.setAttribute('rel', 'noopener noreferrer');\n }\n});\n\n/////////////// end ouverture liens externes vers nouvel onglet //////////////////\n\n\n/// start /// dans pages /projets après click sur appliquer filtres, scroll down la page au niveau des filtres //////\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n const form = document.querySelector(\".views-exposed-form\");\n\n // console.log(form);\n\n if (form) {\n form.setAttribute(\"action\", form.action.split(\"#\")[0] + \"#filtres\");\n }\n if (window.location.hash === \"#filtres\") {\n const target = document.getElementById(\"filtres\");\n if (target) {\n // target.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n const offset = 300;\n const top = target.getBoundingClientRect().top + window.pageYOffset - offset;\n\n window.scrollTo({\n top: top,\n behavior: \"smooth\"\n });\n }\n }\n/// end //// dans pages /projets après click sur appliquer filtres, scroll down la page au niveau des filtres //////\n\n\n\n\n //// start ne pas afficher type de ressource 2 fois dans /ressources //////\n document.querySelectorAll(\".view-type-slide\").forEach(view => {\n const h3Content = view.querySelector(\"h3 > a\")?.textContent.trim();\n\n view.querySelectorAll(\".field--name-field-type-de-ressource\").forEach(field => {\n const fieldText = field.textContent.trim();\n\n if (fieldText === h3Content) {\n field.style.display = \"none\";\n }\n });\n });\n\n //// end ne pas afficher type de ressource 2 fois dans /ressources //////\n\n});\n\n})(jQuery, window);\n\n\n\n//# sourceURL=webpack://dev.eql.fr/./scripts/main.js?"); /***/ }) diff --git a/web/themes/custom/eql/dist/assets/css/bundle.css b/web/themes/custom/eql/dist/assets/css/bundle.css index 9f06d7c..574aa12 100644 --- a/web/themes/custom/eql/dist/assets/css/bundle.css +++ b/web/themes/custom/eql/dist/assets/css/bundle.css @@ -5260,6 +5260,13 @@ svg.ext { width: 100%; margin: auto; } +.path-ressources .layout-content .region-content #block-contenudelapageprincipale h2 { + font-size: 5rem; + color: rgb(9, 57, 139); + font-weight: 400; + text-align: center; + margin-bottom: 1rem; +} .path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content { display: flex; flex-direction: column; @@ -5299,7 +5306,6 @@ svg.ext { .path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-config-pages-block .config_pages--base-de-donnees--full .field--name-field-introduction { margin: auto; background: rgb(255, 255, 255); - margin-top: 5rem; } @media (max-width: 479px) { .path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-config-pages-block .config_pages--base-de-donnees--full .field--name-field-introduction { @@ -5373,7 +5379,6 @@ svg.ext { top: 9rem; left: 0; background-color: rgb(255, 255, 255); - margin-top: 2rem; margin-bottom: 5rem; padding: 1rem; padding-left: 2rem; @@ -5407,13 +5412,13 @@ svg.ext { flex-wrap: wrap; width: 100%; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) { width: 100%; position: relative; z-index: 0; padding-bottom: 4rem; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer)::before { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer)::before { content: ""; position: absolute; left: -30%; @@ -5421,73 +5426,73 @@ svg.ext { width: 110vw; z-index: 0; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) > * { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) > * { position: relative; z-index: 1; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) h3 { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) h3 { margin-top: 3rem; text-transform: uppercase; font-family: "Source Code Pro"; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) h3 a { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) h3 a { color: rgb(9, 57, 139) !important; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) h3 a { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) h3 a { display: flex; flex-direction: row; align-items: center; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) h3.type-productions-du-programme-engages-pour-la-qualite-du-logement-de-demain a:before { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) h3.type-publication-issue-du-programme-eqld a:before { content: url("../images/pictos/picto-ressource-eqld.svg"); padding-right: 1rem; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) h3.type-paroles-de-laureats a:before { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) h3.type-paroles-de-laureats a:before { content: url("../images/pictos/picto-ressource-paroleslaureats.svg"); padding-right: 1rem; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) h3.type-les-projets-en-images a:before { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) h3.type-les-projets-en-images a:before { content: url("../images/pictos/picto-ressource-projetsimages.svg"); padding-right: 1rem; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) h3.type-presse a:before { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) h3.type-presse a:before { content: url("../images/pictos/picto-ressource-presse.svg"); padding-right: 1rem; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) .views-row-wrapper { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) .views-row-wrapper { display: flex; flex-direction: row; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) .views-row-wrapper .views-row { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) .views-row-wrapper .views-row { display: flex; width: 25%; max-width: fit-content; } @media (max-width: 810px) { - .path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) .views-row-wrapper { + .path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) .views-row-wrapper { flex-direction: column; } - .path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) .views-row-wrapper .views-row { + .path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) .views-row-wrapper .views-row { width: 100%; } } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) .views-row-wrapper .slick-next::before { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) .views-row-wrapper .slick-next::before { content: url("../images/pictos/fleche-droite-dans-rond.png"); display: block; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) .views-row-wrapper .slick-prev::before { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) .views-row-wrapper .slick-prev::before { content: url("../images/pictos/fleche-droite-dans-rond.png"); display: block; transform: scaleX(-1); } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) .views-row-wrapper .slick-prev.slick-disabled::before, -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) .views-row-wrapper .slick-next.slick-disabled::before { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) .views-row-wrapper .slick-prev.slick-disabled::before, +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) .views-row-wrapper .slick-next.slick-disabled::before { opacity: 0 !important; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:not(footer) .views-row-wrapper .slick-next { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:not(footer) .views-row-wrapper .slick-next { right: 3%; } -.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-ressource-slide:has(.type-productions-du-programme-engages-pour-la-qualite-du-logement-de-demain)::before { +.path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .view-type-slide:has(.type-publication-issue-du-programme-eqld)::before { background-color: rgba(0, 158, 227, 0.2); } .path-ressources .layout-content .region-content #block-contenudelapageprincipale .layout--onecol .layout__region--content .block-region-content .block-views-blockbase-de-donnees-block-1 .view-base-de-donnees .view-content .type-les-projets-en-images .slick-track { @@ -6223,56 +6228,56 @@ html.js body.node-type-actualite.node-id-88.path-node.page-node-type-actualite d .node-type-ressource svg.ext { display: none; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource { display: grid; grid-template-columns: 1fr 1.8fr; grid-template-rows: repeat(5 1fr); } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-field-type-de-ressource { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-field-type-de-ressource { order: 2; grid-row: 2; margin-bottom: 1rem; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-field-type-de-media { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-field-type-de-media { order: 1; grid-row: 1; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-field-images { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-field-images { order: 3; grid-row: 3/span 5; height: auto; width: 90%; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-field-images img { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-field-images img { height: auto; width: 90%; border: 1px solid #a3a3a3; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-title { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-title { grid-row: 3; margin-top: 0; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-title a { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-title a { color: rgb(0, 158, 227); font-size: 1.2rem; font-style: normal; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-field-sous-titre { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-field-sous-titre { grid-row: 4; color: rgb(0, 158, 227); font-size: 0.8rem; font-weight: 800; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-field-auteur-s- { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-field-auteur-s- { grid-row: 5; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-field-edition { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-field-edition { grid-row: 6; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-field-date-de-parution { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-field-date-de-parution { grid-row: 7; } -.node-type-ressource.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain .wrapper-ressource .field--name-field-mots-clefs { +.node-type-ressource.type-de-ressource-Publication-issue-du-programme-EQLD .wrapper-ressource .field--name-field-mots-clefs { grid-row: 8; } @media (max-width: 479px) { diff --git a/web/themes/custom/eql/scripts/main.js b/web/themes/custom/eql/scripts/main.js index 0fb3b2f..00eee6b 100644 --- a/web/themes/custom/eql/scripts/main.js +++ b/web/themes/custom/eql/scripts/main.js @@ -235,7 +235,7 @@ jQuery(function($) { }); -// //////// start class à views-row-wrapper //////// +// //////// start ajoute class à views-row-wrapper et view-type-slide dans /ressources //////// $(document).ready(function () { $(".views-row-wrapper").each(function () { let h3 = $(this).prev("h3"); @@ -251,6 +251,7 @@ $(document).ready(function () { $(this).addClass('type-' + className); // Ajouter la même classe sur le

h3.addClass('type-' + className); + h3.closest('.view-type-slide').addClass('type-' + className); // ajouter aussi au bloc parent } }); @@ -270,6 +271,22 @@ $(document).ready(function () { $(this).addClass('type-media-' + className); }); +////// cache les slide non voulue en fonction de la class ///////// + const allowedTypes = [ + "type-publication-issue-du-programme-eqld", + "type-paroles-de-laureats", + "type-les-projets-en-images", + "type-presse" + ]; + + $(".view-type-slide").each(function () { + let $block = $(this); + let keep = allowedTypes.some(type => $block.hasClass(type)); + + if (!keep) { + $block.hide(); // ou fadeOut() si tu veux un effet + } + }); }); // /////// end class à views-row-wrapper /////// @@ -284,6 +301,8 @@ document.querySelectorAll('a[href^="http"]').forEach(link => { /////////////// end ouverture liens externes vers nouvel onglet ////////////////// + +/// start /// dans pages /projets après click sur appliquer filtres, scroll down la page au niveau des filtres ////// document.addEventListener("DOMContentLoaded", function () { const form = document.querySelector(".views-exposed-form"); @@ -305,8 +324,13 @@ document.addEventListener("DOMContentLoaded", function () { }); } } +/// end //// dans pages /projets après click sur appliquer filtres, scroll down la page au niveau des filtres ////// - document.querySelectorAll(".view-type-ressource-slide").forEach(view => { + + + + //// start ne pas afficher type de ressource 2 fois dans /ressources ////// + document.querySelectorAll(".view-type-slide").forEach(view => { const h3Content = view.querySelector("h3 > a")?.textContent.trim(); view.querySelectorAll(".field--name-field-type-de-ressource").forEach(field => { @@ -318,6 +342,8 @@ document.addEventListener("DOMContentLoaded", function () { }); }); + //// end ne pas afficher type de ressource 2 fois dans /ressources ////// + }); })(jQuery, window); diff --git a/web/themes/custom/eql/scss/pages/ressources.scss b/web/themes/custom/eql/scss/pages/ressources.scss index 2a30d26..0d55b77 100644 --- a/web/themes/custom/eql/scss/pages/ressources.scss +++ b/web/themes/custom/eql/scss/pages/ressources.scss @@ -10,7 +10,13 @@ width: 100%; margin: auto; #block-contenudelapageprincipale{ - + h2{ + font-size: 5rem; + color: $blue-dark; + font-weight: 400; + text-align: center; + margin-bottom: 1rem; + } .layout--onecol{ .layout__region--content{ .block-region-content{ @@ -46,7 +52,7 @@ .field--name-field-introduction{ margin: auto; background: $white; - margin-top:5rem; + // margin-top:5rem; @media (max-width: 479px){ margin-top:1rem; } @@ -122,7 +128,6 @@ top: 9rem; left: 0; background-color: $white; - margin-top: 2rem; margin-bottom: 5rem; padding: 1rem; padding-left: 2rem; @@ -151,7 +156,7 @@ flex-direction: row; flex-wrap: wrap; width: 100%; - .view-type-ressource-slide:not(footer){ + .view-type-slide:not(footer){ width: 100%; position: relative; z-index: 0; @@ -179,7 +184,7 @@ flex-direction: row; align-items: center; } - h3.type-productions-du-programme-engages-pour-la-qualite-du-logement-de-demain a{ + h3.type-publication-issue-du-programme-eqld a{ &:before{ content:url("../images/pictos/picto-ressource-eqld.svg"); padding-right: 1rem; @@ -241,7 +246,7 @@ } - .view-type-ressource-slide:has(.type-productions-du-programme-engages-pour-la-qualite-du-logement-de-demain){ + .view-type-slide:has(.type-publication-issue-du-programme-eqld){ &::before{ background-color: $background-actus;} } diff --git a/web/themes/custom/eql/scss/partials/_node-type-ressource-teaser.scss b/web/themes/custom/eql/scss/partials/_node-type-ressource-teaser.scss index f91bbf0..4d0cf52 100644 --- a/web/themes/custom/eql/scss/partials/_node-type-ressource-teaser.scss +++ b/web/themes/custom/eql/scss/partials/_node-type-ressource-teaser.scss @@ -7,7 +7,7 @@ svg.ext{ display: none; } - &.type-de-ressource-Productions-du-programme-Engagés-pour-la-qualité-du-logement-de-demain{ + &.type-de-ressource-Publication-issue-du-programme-EQLD{ // background-color: $background-actus; .wrapper-ressource{ display: grid;