diff --git a/app/controllers/admin/communication/websites_controller.rb b/app/controllers/admin/communication/websites_controller.rb index 1b27bcfe1..0f4182f69 100644 --- a/app/controllers/admin/communication/websites_controller.rb +++ b/app/controllers/admin/communication/websites_controller.rb @@ -80,7 +80,7 @@ def website_params :git_provider, :git_endpoint, :git_branch, :plausible_url, :feature_posts, :feature_agenda, :default_time_zone, - :deuxfleurs_hosting, :default_image, :default_image_delete, + :deuxfleurs_hosting, :default_image, :default_image_delete, :default_shared_image, :default_shared_image_delete, :social_mastodon, :social_x, :social_linkedin, :social_youtube, :social_vimeo, :social_peertube, :social_instagram, :social_facebook, :social_tiktok, :social_email, :social_github, :deployment_status_badge, :autoupdate_theme, language_ids: [] ] diff --git a/app/models/communication/website.rb b/app/models/communication/website.rb index 3e195c5de..d03ca7b31 100644 --- a/app/models/communication/website.rb +++ b/app/models/communication/website.rb @@ -83,6 +83,9 @@ class Communication::Website < ApplicationRecord has_one_attached_deletable :default_image validates :default_image, size: { less_than: 5.megabytes } + has_one_attached_deletable :default_shared_image + validates :default_shared_image, size: { less_than: 5.megabytes } + before_validation :sanitize_fields scope :ordered, -> { order(:name) } diff --git a/app/views/admin/communication/websites/_form.html.erb b/app/views/admin/communication/websites/_form.html.erb index 9fcf63a8e..e8d41e423 100644 --- a/app/views/admin/communication/websites/_form.html.erb +++ b/app/views/admin/communication/websites/_form.html.erb @@ -51,6 +51,12 @@ hint: images_formats_accepted_hint, input_html: { accept: default_images_formats_accepted }, preview: 300 %> + <%= f.input :default_shared_image, + as: :single_deletable_file, + direct_upload: true, + hint: images_formats_accepted_hint, + input_html: { accept: default_images_formats_accepted }, + preview: 300 %> <% end %> diff --git a/app/views/admin/communication/websites/static.html.erb b/app/views/admin/communication/websites/static.html.erb index 8bc86ef5b..ddc757bd5 100644 --- a/app/views/admin/communication/websites/static.html.erb +++ b/app/views/admin/communication/websites/static.html.erb @@ -1,8 +1,13 @@ title: > <%= @about.to_s %> +default: <% if @website.default_image.attached? %> -default_image: - id: <%= @website.default_image.blob&.id %> + image: + id: <%= @website.default_image.blob&.id %> +<% end %> +<% if @website.default_shared_image.attached? %> + shared_image: + id: <%= @website.default_shared_image.blob&.id %> <% end %> social: <% diff --git a/config/locales/communication/en.yml b/config/locales/communication/en.yml index f58baa2f2..e8a205f68 100644 --- a/config/locales/communication/en.yml +++ b/config/locales/communication/en.yml @@ -85,6 +85,7 @@ en: created_at: Creation default_image: Default image default_language: Default language + default_shared_image: Default shared image default_time_zone: Default time zone deployment_status_badge: Deployment status badge deuxfleurs_hosting: Hébergement avec Deuxfleurs @@ -279,7 +280,8 @@ en: draft: Draft none: No event yet formatted_time_zone: "Time zone: %{time_zone}" - default_image: "The default image will be used on pages and posts that do not have an image, if the theme is set to display images in all cases. It is also the default sharing image." + default_image: "The default image will be used on pages and posts that do not have an image, if the theme is set to display images in all cases." + default_shared_image: "The default sharing image, 1200 pixels wide, is a good base because the networks have different standards." editorial: label: Editorial description: Everything related to content diff --git a/config/locales/communication/fr.yml b/config/locales/communication/fr.yml index d491c90dc..f005e484d 100644 --- a/config/locales/communication/fr.yml +++ b/config/locales/communication/fr.yml @@ -85,6 +85,7 @@ fr: created_at: Création default_image: Image par défaut default_language: Langue par défaut + default_shared_image: Image de partage par défaut default_time_zone: Fuseau horaire par défaut deployment_status_badge: Badge de statut du déploiement deuxfleurs_hosting: Hébergement avec Deuxfleurs @@ -279,7 +280,8 @@ fr: draft: Brouillon none: Pas encore d'événements formatted_time_zone: "Fuseau horaire : %{time_zone}" - default_image: "L'image par défaut sera utilisée dans les pages et actualités qui n'ont pas d'image, si le thème est paramétré pour afficher des images dans tous les cas. C'est aussi l'image de partage par défaut." + default_image: "L'image par défaut sera utilisée dans les pages et actualités qui n'ont pas d'image, si le thème est paramétré pour afficher des images dans tous les cas." + default_shared_image: "Image de partage par défaut, 1200 pixels de large est une bonne base car les réseaux ont des standards différents." editorial: label: Éditorial description: Tout ce qui est lié au contenu