diff --git a/app/components/layout/footer_component.html.erb b/app/components/layout/footer_component.html.erb index 4391b0cd0..52f78b18d 100644 --- a/app/components/layout/footer_component.html.erb +++ b/app/components/layout/footer_component.html.erb @@ -27,6 +27,7 @@
  • <%= link_to t("layouts.footer.privacy"), page_path("privacy") %>
  • <%= link_to t("layouts.footer.conditions"), page_path("conditions") %>
  • <%= link_to t("layouts.footer.accessibility"), page_path("accessibility") %>
  • + <%= raw footer_legal_content_block %> diff --git a/app/components/layout/footer_component.rb b/app/components/layout/footer_component.rb index b9e0fe5de..0f092f247 100644 --- a/app/components/layout/footer_component.rb +++ b/app/components/layout/footer_component.rb @@ -1,2 +1,7 @@ class Layout::FooterComponent < ApplicationComponent + delegate :content_block, to: :helpers + + def footer_legal_content_block + content_block("footer_legal") + end end diff --git a/app/models/site_customization/content_block.rb b/app/models/site_customization/content_block.rb index 744819956..7d42817e6 100644 --- a/app/models/site_customization/content_block.rb +++ b/app/models/site_customization/content_block.rb @@ -1,5 +1,5 @@ class SiteCustomization::ContentBlock < ApplicationRecord - VALID_BLOCKS = %w[top_links footer subnavigation_left subnavigation_right].freeze + VALID_BLOCKS = %w[top_links footer footer_legal subnavigation_left subnavigation_right].freeze validates :locale, presence: true, inclusion: { in: I18n.available_locales.map(&:to_s) } validates :name, presence: true, uniqueness: { scope: :locale }, inclusion: { in: ->(*) { VALID_BLOCKS }} diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml index 27351ee03..031a9759c 100644 --- a/config/locales/en/admin.yml +++ b/config/locales/en/admin.yml @@ -1590,7 +1590,8 @@ en: name: Name names: top_links: Top Links - footer: Footer + footer: Footer (social media) + footer_legal: Footer (legal terms) subnavigation_left: Main Navigation Left subnavigation_right: Main Navigation Right images: diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml index b5c17978d..1c317d3a3 100644 --- a/config/locales/es/admin.yml +++ b/config/locales/es/admin.yml @@ -1590,7 +1590,8 @@ es: name: Nombre names: top_links: Enlaces superiores - footer: Pie de página + footer: Pie de página (redes sociales) + footer_legal: Pie de página (términos legales) subnavigation_left: Navegación principal izquierda subnavigation_right: Navegación principal derecha images: diff --git a/spec/system/site_customization/content_blocks_spec.rb b/spec/system/site_customization/content_blocks_spec.rb index 1af8f571e..cb7c5feb7 100644 --- a/spec/system/site_customization/content_blocks_spec.rb +++ b/spec/system/site_customization/content_blocks_spec.rb @@ -26,13 +26,37 @@ describe "Custom content blocks" do visit "/?locale=en" - expect(page).to have_content("content for footer") - expect(page).not_to have_content("contenido para footer") + within ".social" do + expect(page).to have_content("content for footer") + expect(page).not_to have_content("contenido para footer") + end visit "/?locale=es" - expect(page).to have_content("contenido para footer") - expect(page).not_to have_content("content for footer") + within ".social" do + expect(page).to have_content("contenido para footer") + expect(page).not_to have_content("content for footer") + end + end + + scenario "footer_legal content block" do + create(:site_customization_content_block, name: "footer_legal", locale: "en", + body: "legal content for footer") + create(:site_customization_content_block, name: "footer_legal", locale: "es", + body: "contenido legal para el footer") + + visit "/?locale=en" + + within ".legal" do + expect(page).to have_content("legal content for footer") + expect(page).not_to have_content("contenido legal para el footer") + end + + visit "/?locale=es" + within ".legal" do + expect(page).to have_content("contenido legal para el footer") + expect(page).not_to have_content("legal content for footer") + end end scenario "main navigation left" do