From 310a22b1f609ab906d11046fabdeacd93319cdac Mon Sep 17 00:00:00 2001 From: Arnaud Levy <arnaud.levy@noesya.coop> Date: Wed, 12 Feb 2025 07:15:35 +0100 Subject: [PATCH] =?UTF-8?q?G=C3=A9n=C3=A9ralisation=20des=20bodyclasses=20?= =?UTF-8?q?(#2715)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/communication/website/page.rb | 1 - app/models/concerns/bodyclassed.rb | 5 +++-- app/models/concerns/categorizable.rb | 3 ++- app/views/admin/application/static/_core.html.erb | 13 +++++++++++++ .../communication/websites/pages/static.html.erb | 2 -- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/models/communication/website/page.rb b/app/models/communication/website/page.rb index 16784a407..449e31205 100644 --- a/app/models/communication/website/page.rb +++ b/app/models/communication/website/page.rb @@ -34,7 +34,6 @@ class Communication::Website::Page < ApplicationRecord self.ignored_columns = %w(path kind) include AsDirectObject - include Bodyclassed include Duplicable include Filterable include Categorizable # Must be loaded after Filterable to be filtered by categories diff --git a/app/models/concerns/bodyclassed.rb b/app/models/concerns/bodyclassed.rb index 60e700e0c..4a84e8f61 100644 --- a/app/models/concerns/bodyclassed.rb +++ b/app/models/concerns/bodyclassed.rb @@ -7,8 +7,8 @@ module Bodyclassed # -> "page-classe1 page-classe2 ancestor-home ancestor-bodyclass ancestor-secondclass" def best_bodyclass classes = [] - classes += add_prefix_to_classes(bodyclass.split(' '), 'page') unless bodyclass.blank? - classes += add_prefix_to_classes(ancestor_classes, 'ancestor') unless ancestor_classes.blank? + classes += add_prefix_to_classes(bodyclass.split(' '), 'page') if try(:bodyclass).present? + classes += add_prefix_to_classes(ancestor_classes, 'ancestor') if ancestor_classes.present? classes.join(' ') end @@ -24,6 +24,7 @@ module Bodyclassed # ["class1", "class2", "class3 class4"] -> ["class1", "class2", "class3", "class4"] def ancestor_classes + return unless respond_to?(:ancestors) @ancestor_classes ||= ancestors.pluck(:bodyclass) .compact_blank .join(' ') diff --git a/app/models/concerns/categorizable.rb b/app/models/concerns/categorizable.rb index 0e50872f6..624fdbff5 100644 --- a/app/models/concerns/categorizable.rb +++ b/app/models/concerns/categorizable.rb @@ -1,7 +1,8 @@ -# Attention, doit être chargé après Bodyclassed pour pouvoir s'appuyer sur best_bodyclass module Categorizable extend ActiveSupport::Concern + include Bodyclassed + included do attr_accessor :categories_were_changed diff --git a/app/views/admin/application/static/_core.html.erb b/app/views/admin/application/static/_core.html.erb index 3ac9dfe07..d5d26dea4 100644 --- a/app/views/admin/application/static/_core.html.erb +++ b/app/views/admin/application/static/_core.html.erb @@ -25,6 +25,19 @@ subtitle: >- <% end %> <% ############# +# Body classes +############# +if about.respond_to?(:about) + object = about.about + if object.respond_to?(:best_bodyclass) %> +bodyclass: >- + <%= object.best_bodyclass %> +<% + end +end +%> +<% +############# # Permalinks ############# %> diff --git a/app/views/admin/communication/websites/pages/static.html.erb b/app/views/admin/communication/websites/pages/static.html.erb index 3f6ca797f..8a9742938 100644 --- a/app/views/admin/communication/websites/pages/static.html.erb +++ b/app/views/admin/communication/websites/pages/static.html.erb @@ -27,8 +27,6 @@ weight: <%= page.position %> categories: @website.page_categories, key: :pages_categories %> <%= render 'admin/application/l10n/static', about: @l10n %> -bodyclass: >- - <%= page.best_bodyclass %> <%= render 'admin/application/images/featured/static', about: @l10n %> <%= render 'admin/application/images/shared/static', about: @l10n %> <% if @l10n.children.published.any? %> -- GitLab