diff --git a/app/components/admin/settings/cookies_consent_tab_component.html.erb b/app/components/admin/settings/cookies_consent_tab_component.html.erb index 9d8c2cd8a..7bb2e9bfe 100644 --- a/app/components/admin/settings/cookies_consent_tab_component.html.erb +++ b/app/components/admin/settings/cookies_consent_tab_component.html.erb @@ -2,4 +2,5 @@ <%= render Admin::Settings::TableComponent.new(setting_name: "feature") do %> <%= render Admin::Settings::RowComponent.new("feature.cookies_consent", type: :feature, tab: tab) %> + <%= render Admin::Settings::RowComponent.new("cookies_consent.more_info_link", type: :text, tab: tab) %> <% end %> diff --git a/app/components/layout/cookies_consent/banner_component.html.erb b/app/components/layout/cookies_consent/banner_component.html.erb index cee08ff60..742dfe7d6 100644 --- a/app/components/layout/cookies_consent/banner_component.html.erb +++ b/app/components/layout/cookies_consent/banner_component.html.erb @@ -1,5 +1,9 @@ diff --git a/app/components/layout/cookies_consent/banner_component.rb b/app/components/layout/cookies_consent/banner_component.rb index da08b3e05..87dfbc496 100644 --- a/app/components/layout/cookies_consent/banner_component.rb +++ b/app/components/layout/cookies_consent/banner_component.rb @@ -5,6 +5,10 @@ class Layout::CookiesConsent::BannerComponent < ApplicationComponent feature?(:cookies_consent) && cookies_consent_unset? end + def more_info_link + Setting["cookies_consent.more_info_link"] + end + private def cookies_consent_unset? diff --git a/app/models/setting.rb b/app/models/setting.rb index bf8a53929..f65006fd6 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -161,6 +161,7 @@ class Setting < ApplicationRecord "related_content_score_threshold": -0.3, "featured_proposals_number": 3, "feature.dashboard.notification_emails": nil, + "cookies_consent.more_info_link": "", "machine_learning.comments_summary": false, "machine_learning.related_content": false, "machine_learning.tags": false, diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml index 25cf43bc4..bc51702cc 100644 --- a/config/locales/en/general.yml +++ b/config/locales/en/general.yml @@ -936,4 +936,5 @@ en: cookies_consent: accept_essential_cookies: "Accept essential cookies" message: "Cookies help us deliver our services. By using our services, you agree to our use of cookies." + more_info_link: "More information about cookies" title: "Cookies policy" diff --git a/config/locales/en/settings.yml b/config/locales/en/settings.yml index d2d77eaaa..497256767 100644 --- a/config/locales/en/settings.yml +++ b/config/locales/en/settings.yml @@ -228,3 +228,6 @@ en: budgets_description: Allow participatory budgets to be linked to Sustainable Development Goals legislation: Related SDG in collaborative legislation legislation_description: Allow collaborative legislation to be linked to Sustainable Development Goals + cookies_consent: + more_info_link: Link to cookies policy + more_info_link_description: Link shown in the consent banner to the cookie policy page. diff --git a/config/locales/es/general.yml b/config/locales/es/general.yml index 89d6e7491..6c3b4f1be 100644 --- a/config/locales/es/general.yml +++ b/config/locales/es/general.yml @@ -936,4 +936,5 @@ es: cookies_consent: accept_essential_cookies: "Aceptar cookies esenciales" message: "Las cookies nos ayudan a ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso de cookies." + more_info_link: "Más información sobre cookies" title: "Política de cookies" diff --git a/config/locales/es/settings.yml b/config/locales/es/settings.yml index e21288858..eccef39dc 100644 --- a/config/locales/es/settings.yml +++ b/config/locales/es/settings.yml @@ -228,3 +228,6 @@ es: budgets_description: Permitir alineamiento de los Objetivos de Desarrollo Sostenible en presupuestos participativos legislation: Alineamiento ODS en legislación colaborativa legislation_description: Permitir alineamiento de los Objetivos de Desarrollo Sostenible en legislación colaborativa + cookies_consent: + more_info_link: Enlace a la política de cookies + more_info_link_description: Enlace que se muestra en el banner de consentimiento a la página de política de cookies diff --git a/spec/components/layout/cookies_consent/banner_component_spec.rb b/spec/components/layout/cookies_consent/banner_component_spec.rb index 235856dfa..aa05bf2ab 100644 --- a/spec/components/layout/cookies_consent/banner_component_spec.rb +++ b/spec/components/layout/cookies_consent/banner_component_spec.rb @@ -20,10 +20,22 @@ describe Layout::CookiesConsent::BannerComponent do end it "renders the banner content when feature `cookies_consent` is enabled and cookies were not accepted" do + Setting["cookies_consent.more_info_link"] = "/cookies_policy" + render_inline Layout::CookiesConsent::BannerComponent.new expect(page).to be_rendered expect(page).to have_css "h2", text: "Cookies policy" + expect(page).to have_link "More information about cookies", href: "/cookies_policy" expect(page).to have_button "Accept essential cookies" end + + it "does not render a link when the setting `cookies_consent.more_info_link` is not defined" do + Setting["cookies_consent.more_info_link"] = "" + + render_inline Layout::CookiesConsent::BannerComponent.new + + expect(page).not_to have_link "More information about cookies" + expect(page).to be_rendered + end end