From cf35f1ecf9d01fc46e78c406747a15f6112d4fe8 Mon Sep 17 00:00:00 2001 From: ouidade Date: Fri, 16 May 2025 15:07:28 +0200 Subject: [PATCH] padding text incubateur --- web/themes/custom/eql/dist/assets/bundle.js | 2 +- .../custom/eql/dist/assets/css/bundle.css | 2 +- web/themes/custom/eql/scripts/main.js | 12 ++++++++ .../custom/eql/scss/pages/_incubateur.scss | 30 +------------------ web/themes/custom/eql/scss/pages/_static.scss | 3 +- 5 files changed, 17 insertions(+), 32 deletions(-) diff --git a/web/themes/custom/eql/dist/assets/bundle.js b/web/themes/custom/eql/dist/assets/bundle.js index 0c3ca33..12720b2 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').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 $('.page-node-type-actualite .block-entity-fieldnodefield-images .field--type-image').slick({\n dots: true,\n arrows: false,\n adaptiveHeight: true,\n responsive: [\n {\n breakpoint: 800,\n settings: {\n adaptiveHeight: true\n }\n }]\n });\n console.log('salut slick actus');\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-ressource-slide .views-row-wrapper').slick({\n slidesToShow: 3,\n dots: false,\n arrows: true,\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});\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').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 $('.page-node-type-actualite .block-entity-fieldnodefield-images .field--type-image').slick({\n dots: true,\n arrows: false,\n adaptiveHeight: true,\n responsive: [\n {\n breakpoint: 800,\n settings: {\n adaptiveHeight: true\n }\n }]\n });\n console.log('salut slick actus');\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-ressource-slide .views-row-wrapper').slick({\n slidesToShow: 3,\n dots: false,\n arrows: true,\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?"); /***/ }) diff --git a/web/themes/custom/eql/dist/assets/css/bundle.css b/web/themes/custom/eql/dist/assets/css/bundle.css index 29d19e0..e11b050 100644 --- a/web/themes/custom/eql/dist/assets/css/bundle.css +++ b/web/themes/custom/eql/dist/assets/css/bundle.css @@ -347,7 +347,7 @@ svg.ext { height: auto; } .path-node.page-node-type-static .layout-container .layout-content .layout__region--second .block-entity-fieldnodefield-textes .field--type-text-long { - padding-right: 2rem; + padding: 0.5rem 1rem 1rem 1.5rem; } .path-node.page-node-type-static .layout-container .layout-content .layout__region--second .block-entity-fieldnodefield-textes p { margin-top: 0; diff --git a/web/themes/custom/eql/scripts/main.js b/web/themes/custom/eql/scripts/main.js index 42e5748..b0816d4 100644 --- a/web/themes/custom/eql/scripts/main.js +++ b/web/themes/custom/eql/scripts/main.js @@ -301,6 +301,18 @@ document.addEventListener("DOMContentLoaded", function () { } } + document.querySelectorAll(".view-type-ressource-slide").forEach(view => { + const h3Content = view.querySelector("h3 > a")?.textContent.trim(); + + view.querySelectorAll(".field--name-field-type-de-ressource").forEach(field => { + const fieldText = field.textContent.trim(); + + if (fieldText === h3Content) { + field.style.display = "none"; + } + }); + }); + }); })(jQuery, window); diff --git a/web/themes/custom/eql/scss/pages/_incubateur.scss b/web/themes/custom/eql/scss/pages/_incubateur.scss index 2f28288..5c6f07c 100644 --- a/web/themes/custom/eql/scss/pages/_incubateur.scss +++ b/web/themes/custom/eql/scss/pages/_incubateur.scss @@ -7,26 +7,12 @@ .layout-container{ overflow: unset; - // display: flex; - // flex-direction: column; - // flex-flow: row wrap; - // header{ - // flex: 0 0 100%; - // } - // main{ - // flex: 0 0 100%; .layout-content{ .region-content{ #block-contenudelapageprincipale{ span{ width: fit-content; - // margin-left: 11%; - // margin-top: 15vh; - // @media (max-width: 810px){ - // margin-left: 8%; - // margin-right: 5%; - // } h2{ width: fit-content; margin-left: 11%; @@ -103,23 +89,15 @@ font-family: 'Source Code Pro', monospace; color: $blue-dark; text-transform: uppercase; - // margin-top: 2rem; margin-bottom: 0.8rem; } .field--name-field-texte{ - - - margin-bottom: 2rem; - + margin-bottom: 2rem; } - } } - } - } - } } // colone de droite fichiers et ressources liées @@ -131,9 +109,6 @@ display: flex; flex-direction: column; width: 70%; - // position: -webkit-sticky; - // position: sticky; - // top: 9rem; @media (max-width: 810px){ margin: auto; } @@ -148,8 +123,6 @@ color: $blue-light; padding-left: 0.8rem; padding-top: 1rem; - - span:nth-of-type(2){ display: none; } @@ -171,7 +144,6 @@ align-items: center; color: $blue-light; font-weight: 800; - // max-width: 80px ; } } diff --git a/web/themes/custom/eql/scss/pages/_static.scss b/web/themes/custom/eql/scss/pages/_static.scss index 90e3e2d..1dd4dd3 100644 --- a/web/themes/custom/eql/scss/pages/_static.scss +++ b/web/themes/custom/eql/scss/pages/_static.scss @@ -115,7 +115,8 @@ } } .field--type-text-long{ - padding-right: 2rem; + // padding-right: 2rem; + padding: 0.5rem 1rem 1rem 1.5rem; } p{ margin-top: 0;