From f5a762a7401f4f6d8715c3a49bb8e8867e3ac31c Mon Sep 17 00:00:00 2001 From: Anna Lonka Date: Fri, 7 Mar 2025 09:08:04 +0200 Subject: [PATCH 1/2] UHF-11472: Changed map to require only preferences and added bypass for palvelukartta --- dist/js/embedded-content-cookie-compliance.min.js | 2 +- hdbt.theme | 13 +++++++++++++ src/js/embedded-content-cookie-compliance.js | 4 ++++ templates/media/media--hel-map.html.twig | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/dist/js/embedded-content-cookie-compliance.min.js b/dist/js/embedded-content-cookie-compliance.min.js index 80f7daf95..f329703a2 100644 --- a/dist/js/embedded-content-cookie-compliance.min.js +++ b/dist/js/embedded-content-cookie-compliance.min.js @@ -1 +1 @@ -!function(e,Drupal,drupalSettings){const t=()=>{Object.entries(drupalSettings?.embedded_media_attributes||{}).forEach((([t,i])=>{var n;(n=i?.cookieConsentGroups,n||(n=["preferences","statistics"]),Drupal.cookieConsent.getConsentStatus(n))&&e(`.embedded-content-cookie-compliance.media-${t}`).each((function(t){const n=e(this),o=document.createElement("iframe");o.classList.add("media-oembed-content"),o.src=i.src,o.title=i.title,i.allow&&(o.allow=i.allow),i.height&&(o.height=i.height),i.width&&(o.width=i.width);const s=document.createElement("div");s.appendChild(o);let a="";a="video"===i.type?n.parent().siblings(".remote-video__video-title").text().trim()||"":n.closest(`.component__content.${i.type}`).siblings(".component__title").text().trim()||"";const c=document.createElement("a"),l=document.createElement("a");switch(i.skipLinkBeforeId&&i.skipLinkAfterId&&(c.classList.add("focusable","skip-link"),c.href=`#${i.skipLinkAfterId}-${t}`,c.id=`${i.skipLinkBeforeId}-${t}`,l.classList.add("focusable","skip-link"),l.href=`#${i.skipLinkBeforeId}-${t}`,l.id=`${i.skipLinkAfterId}-${t}`),i.type){case"video":s.classList.add(`responsive-${i.type}-container`),l.classList.add("skip-link--video--after"),c.classList.add("skip-link--video--before"),l.text=Drupal.t("Continue above the @video video",{"@video":a},{context:"Skip links"}),c.text=Drupal.t("Continue below the @video video",{"@video":a},{context:"Skip links"}),n.replaceWith(c,s,l);break;case"chart":s.classList.add(`responsive-${i.type}-container`),l.classList.add("skip-link--chart--after"),c.classList.add("skip-link--chart--before"),l.text=a?Drupal.t("Continue above the @chart chart",{"@chart":a},{context:"Skip links"}):Drupal.t("Continue above the chart",{},{context:"Skip links"}),c.text=a?Drupal.t("Continue below the @chart chart",{"@chart":a},{context:"Skip links"}):Drupal.t("Continue below the chart",{},{context:"Skip links"}),n.replaceWith(c,s,l);break;case"journey_planner":s.classList.add("journey-planner-container"),l.classList.add("skip-link--planner--after"),c.classList.add("skip-link--planner--before"),l.text=Drupal.t("Continue above the journey planner",{},{context:"Skip links"}),c.text=Drupal.t("Continue below the journey planner",{},{context:"Skip links"}),n.replaceWith(c,s,l);break;case"map":s.classList.add("responsive-map-container"),l.classList.add("skip-link--map--after"),c.classList.add("skip-link--map--before"),l.text=a?Drupal.t("Continue above the @map map",{"@map":a},{context:"Skip links"}):Drupal.t("Continue above the map",{},{context:"Skip links"}),c.text=a?Drupal.t("Continue below the @map map",{"@map":a},{context:"Skip links"}):Drupal.t("Continue below the map",{},{context:"Skip links"}),n.replaceWith(c,s,l)}}))}))};e(".embedded-content-cookie-compliance .js-remove").remove(),Drupal.cookieConsent.initialized()?t():Drupal.cookieConsent.loadFunction(t)}(jQuery,Drupal,drupalSettings); \ No newline at end of file +!function(e,Drupal,drupalSettings){const t=()=>{Object.entries(drupalSettings?.embedded_media_attributes||{}).forEach((([t,i])=>{var n;(n=i?.cookieConsentGroups,n.includes("bypass")||(n||(n=["preferences","statistics"]),Drupal.cookieConsent.getConsentStatus(n)))&&e(`.embedded-content-cookie-compliance.media-${t}`).each((function(t){const n=e(this),o=document.createElement("iframe");o.classList.add("media-oembed-content"),o.src=i.src,o.title=i.title,i.allow&&(o.allow=i.allow),i.height&&(o.height=i.height),i.width&&(o.width=i.width);const s=document.createElement("div");s.appendChild(o);let a="";a="video"===i.type?n.parent().siblings(".remote-video__video-title").text().trim()||"":n.closest(`.component__content.${i.type}`).siblings(".component__title").text().trim()||"";const c=document.createElement("a"),l=document.createElement("a");switch(i.skipLinkBeforeId&&i.skipLinkAfterId&&(c.classList.add("focusable","skip-link"),c.href=`#${i.skipLinkAfterId}-${t}`,c.id=`${i.skipLinkBeforeId}-${t}`,l.classList.add("focusable","skip-link"),l.href=`#${i.skipLinkBeforeId}-${t}`,l.id=`${i.skipLinkAfterId}-${t}`),i.type){case"video":s.classList.add(`responsive-${i.type}-container`),l.classList.add("skip-link--video--after"),c.classList.add("skip-link--video--before"),l.text=Drupal.t("Continue above the @video video",{"@video":a},{context:"Skip links"}),c.text=Drupal.t("Continue below the @video video",{"@video":a},{context:"Skip links"}),n.replaceWith(c,s,l);break;case"chart":s.classList.add(`responsive-${i.type}-container`),l.classList.add("skip-link--chart--after"),c.classList.add("skip-link--chart--before"),l.text=a?Drupal.t("Continue above the @chart chart",{"@chart":a},{context:"Skip links"}):Drupal.t("Continue above the chart",{},{context:"Skip links"}),c.text=a?Drupal.t("Continue below the @chart chart",{"@chart":a},{context:"Skip links"}):Drupal.t("Continue below the chart",{},{context:"Skip links"}),n.replaceWith(c,s,l);break;case"journey_planner":s.classList.add("journey-planner-container"),l.classList.add("skip-link--planner--after"),c.classList.add("skip-link--planner--before"),l.text=Drupal.t("Continue above the journey planner",{},{context:"Skip links"}),c.text=Drupal.t("Continue below the journey planner",{},{context:"Skip links"}),n.replaceWith(c,s,l);break;case"map":s.classList.add("responsive-map-container"),l.classList.add("skip-link--map--after"),c.classList.add("skip-link--map--before"),l.text=a?Drupal.t("Continue above the @map map",{"@map":a},{context:"Skip links"}):Drupal.t("Continue above the map",{},{context:"Skip links"}),c.text=a?Drupal.t("Continue below the @map map",{"@map":a},{context:"Skip links"}):Drupal.t("Continue below the map",{},{context:"Skip links"}),n.replaceWith(c,s,l)}}))}))};e(".embedded-content-cookie-compliance .js-remove").remove(),Drupal.cookieConsent.initialized()?t():Drupal.cookieConsent.loadFunction(t)}(jQuery,Drupal,drupalSettings); \ No newline at end of file diff --git a/hdbt.theme b/hdbt.theme index d355174b7..49b5ec695 100644 --- a/hdbt.theme +++ b/hdbt.theme @@ -881,6 +881,19 @@ function hdbt_preprocess_paragraph__map(&$variables) { } } +/** + * Implements hook_preprocess_media__type(). + */ +function hdbt_preprocess_media__hel_map(&$variables) { + $media = $variables['media']; + if ($media->hasField('field_media_hel_map')) { + $link = $media->get('field_media_hel_map')->uri; + if ($link) { + $variables['is_palvelukartta'] = str_contains($link, 'palvelukartta.hel.fi'); + } + } +} + /** * Implements hook_preprocess_paragraph__type(). */ diff --git a/src/js/embedded-content-cookie-compliance.js b/src/js/embedded-content-cookie-compliance.js index a7b790651..1d228e172 100644 --- a/src/js/embedded-content-cookie-compliance.js +++ b/src/js/embedded-content-cookie-compliance.js @@ -7,6 +7,10 @@ // Check whether the given cookie categories have been accepted. const categoriesAgreed = (categories) => { + // If the 'bypass' category is included, the content should be loaded + if (categories.includes('bypass')) { + return true; + } // Set default categories if none exists. if (!categories) { categories = ['preferences', 'statistics']; diff --git a/templates/media/media--hel-map.html.twig b/templates/media/media--hel-map.html.twig index 8601bd40f..750be6cae 100644 --- a/templates/media/media--hel-map.html.twig +++ b/templates/media/media--hel-map.html.twig @@ -37,7 +37,7 @@ {% set map_service_url = media.getServiceUrl() %} {% set privacy_policy_url = media.getPrivacyPolicyUrl() %} {% set iframe_title = media.getMediaTitle() %} -{% set cookie_consent_groups = ['preferences', 'statistics'] %} +{% set cookie_consent_groups = is_palvelukartta ? ['bypass'] : ['preferences'] %} {% set skip_link_after = 'map-' ~ media_id ~ random() ~ '-after'|clean_id %} {% set skip_link_before = 'map-' ~ media_id ~ random() ~ '-before'|clean_id %} From 49da09630a1dd605db0b1e6d58c47e97a32af7c9 Mon Sep 17 00:00:00 2001 From: Anna Lonka Date: Fri, 7 Mar 2025 14:59:45 +0200 Subject: [PATCH 2/2] UHF-11472: Moved helfi map preprocesses to its module --- hdbt.libraries.yml | 2 +- hdbt.theme | 13 ------------- templates/media/media--hel-map.html.twig | 2 +- 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/hdbt.libraries.yml b/hdbt.libraries.yml index 5947446ff..ec3a2818b 100644 --- a/hdbt.libraries.yml +++ b/hdbt.libraries.yml @@ -65,7 +65,7 @@ hdbt-icons: dist/css/hdbt-icons.css: {} embedded-content-cookie-compliance: - version: 1.1 + version: 1.2 js: dist/js/embedded-content-cookie-compliance.min.js: { minified: true diff --git a/hdbt.theme b/hdbt.theme index 49b5ec695..d355174b7 100644 --- a/hdbt.theme +++ b/hdbt.theme @@ -881,19 +881,6 @@ function hdbt_preprocess_paragraph__map(&$variables) { } } -/** - * Implements hook_preprocess_media__type(). - */ -function hdbt_preprocess_media__hel_map(&$variables) { - $media = $variables['media']; - if ($media->hasField('field_media_hel_map')) { - $link = $media->get('field_media_hel_map')->uri; - if ($link) { - $variables['is_palvelukartta'] = str_contains($link, 'palvelukartta.hel.fi'); - } - } -} - /** * Implements hook_preprocess_paragraph__type(). */ diff --git a/templates/media/media--hel-map.html.twig b/templates/media/media--hel-map.html.twig index 750be6cae..f97731e36 100644 --- a/templates/media/media--hel-map.html.twig +++ b/templates/media/media--hel-map.html.twig @@ -37,7 +37,7 @@ {% set map_service_url = media.getServiceUrl() %} {% set privacy_policy_url = media.getPrivacyPolicyUrl() %} {% set iframe_title = media.getMediaTitle() %} -{% set cookie_consent_groups = is_palvelukartta ? ['bypass'] : ['preferences'] %} +{% set cookie_consent_groups = media.getCookieConsentBypass ? ['bypass'] : ['preferences'] %} {% set skip_link_after = 'map-' ~ media_id ~ random() ~ '-after'|clean_id %} {% set skip_link_before = 'map-' ~ media_id ~ random() ~ '-before'|clean_id %}