From d35455624f83418716e662221f5627cd160c209f Mon Sep 17 00:00:00 2001 From: taitus Date: Tue, 10 Dec 2024 17:50:35 +0100 Subject: [PATCH] Allow accept essential cookies from management modal --- app/assets/javascripts/cookies_consent.js | 1 + .../layout/cookies_consent_management.scss | 17 +++++++++++++++++ .../management_component.html.erb | 4 ++++ config/locales/en/general.yml | 2 +- config/locales/es/general.yml | 2 +- .../management_component_spec.rb | 1 + spec/system/cookies_consent_spec.rb | 16 ++++++++++++++-- 7 files changed, 39 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/cookies_consent.js b/app/assets/javascripts/cookies_consent.js index 29085daf8..5d0e533c7 100644 --- a/app/assets/javascripts/cookies_consent.js +++ b/app/assets/javascripts/cookies_consent.js @@ -3,6 +3,7 @@ App.CookiesConsent = { hide: function() { $("#cookies_consent_banner").hide(); + $("#cookies_consent_management").foundation("close"); }, initialize: function() { $(".accept-essential-cookies").on("click", function() { diff --git a/app/assets/stylesheets/layout/cookies_consent_management.scss b/app/assets/stylesheets/layout/cookies_consent_management.scss index fba2fb924..389208c7e 100644 --- a/app/assets/stylesheets/layout/cookies_consent_management.scss +++ b/app/assets/stylesheets/layout/cookies_consent_management.scss @@ -13,4 +13,21 @@ .close-button { @include modal-close-button; } + + .buttons { + border-top: 1px solid $medium-gray; + padding-top: $line-height; + + button { + @include breakpoint(small only) { + display: block; + width: 100%; + } + + &.accept-essential-cookies { + @include regular-button; + margin-bottom: 0; + } + } + } } diff --git a/app/components/layout/cookies_consent/management_component.html.erb b/app/components/layout/cookies_consent/management_component.html.erb index a49db1868..7ea903510 100644 --- a/app/components/layout/cookies_consent/management_component.html.erb +++ b/app/components/layout/cookies_consent/management_component.html.erb @@ -9,4 +9,8 @@

<%= t("cookies_management.essentials.title") %>

<%= t("cookies_management.essentials.description") %>

+ +
+ +
diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml index 0c21007b3..677016950 100644 --- a/config/locales/en/general.yml +++ b/config/locales/en/general.yml @@ -942,7 +942,7 @@ en: title: "Cookies policy" cookies_management: title: Cookies management - description: This website uses own cookies for its proper functioning. + description: This website uses own for its proper functioning. By clicking the Accept essential cookies button, you agree to the use of these technologies and the processing of your data for these purposes. essentials: title: Essential cookies description: They are used for many different purposes, such as recognising you as a user, choosing the language or customising the way in which content is displayed. diff --git a/config/locales/es/general.yml b/config/locales/es/general.yml index c7eaf34b6..111848515 100644 --- a/config/locales/es/general.yml +++ b/config/locales/es/general.yml @@ -942,7 +942,7 @@ es: title: "Política de cookies" cookies_management: title: Configuración de cookies - description: Esta web utiliza cookies propias para su correcto funcionamiento. + description: Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer click en el botón Aceptar cookies esenciales, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. essentials: title: Cookies esenciales description: Utilizadas para finalidades muy diversas, como por ejemplo, reconocerte como usuario, elegir el idioma o personalizar la forma en la que se muestra el contenido. diff --git a/spec/components/layout/cookies_consent/management_component_spec.rb b/spec/components/layout/cookies_consent/management_component_spec.rb index 897a6287c..f7a6bc2f1 100644 --- a/spec/components/layout/cookies_consent/management_component_spec.rb +++ b/spec/components/layout/cookies_consent/management_component_spec.rb @@ -17,5 +17,6 @@ describe Layout::CookiesConsent::ManagementComponent do expect(page).to be_rendered expect(page).to have_css "h2", text: "Cookies management" expect(page).to have_css "h3", text: "Essential cookies" + expect(page).to have_button "Accept essential cookies" end end diff --git a/spec/system/cookies_consent_spec.rb b/spec/system/cookies_consent_spec.rb index 964f4e2fe..59d46a2da 100644 --- a/spec/system/cookies_consent_spec.rb +++ b/spec/system/cookies_consent_spec.rb @@ -23,14 +23,26 @@ describe "Cookies consent" do end context "Management modal" do - scenario "Allow users access to cookies management modal" do + scenario "Allow users to accept essential cookies and hide management modal" do visit root_path + expect(cookie_by_name("cookies_consent")).to be nil + within ".cookies-consent-banner" do click_button "Manage cookies" end - expect(page).to have_css "h2", text: "Cookies management" + within ".cookies-consent-management" do + click_button "Accept essential cookies" + end + + expect(cookie_by_name("cookies_consent")[:value]).to eq "essential" + expect(page).not_to have_content "Cookies policy" + expect(page).not_to have_content "Cookies management" + + refresh + + expect(page).not_to have_content "Cookies policy" end end end