From 16ff57c2ff8bb902145a5d44c754a02fca82b113 Mon Sep 17 00:00:00 2001
From: Ben Halpern
Date: Wed, 17 Jan 2024 07:12:22 -0500
Subject: [PATCH] Add HTML customization to admin (#20531)
* Add HTML customization to admin
* Update spec/requests/stories_index_spec.rb
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
app/lib/constants/settings/user_experience.rb | 8 ++++++++
app/models/settings/user_experience.rb | 4 ++++
.../settings/forms/_user_experience.html.erb | 16 ++++++++++++++++
app/views/layouts/application.html.erb | 2 ++
config/locales/lib/en.yml | 6 ++++++
config/locales/lib/fr.yml | 6 ++++++
spec/requests/stories_index_spec.rb | 12 ++++++++++++
7 files changed, 54 insertions(+)
diff --git a/app/lib/constants/settings/user_experience.rb b/app/lib/constants/settings/user_experience.rb
index 6d381281f..ee04adb2b 100644
--- a/app/lib/constants/settings/user_experience.rb
+++ b/app/lib/constants/settings/user_experience.rb
@@ -44,6 +44,14 @@ module Constants
tag_feed_minimum_score: {
description: I18n.t("lib.constants.settings.user_experience.tag_feed.description"),
placeholder: "0"
+ },
+ head_content: {
+ description: I18n.t("lib.constants.settings.user_experience.head_content.description"),
+ placeholder: I18n.t("lib.constants.settings.user_experience.head_content.placeholder")
+ },
+ bottom_of_body_content: {
+ description: I18n.t("lib.constants.settings.user_experience.bottom_of_body_content.description"),
+ placeholder: I18n.t("lib.constants.settings.user_experience.bottom_of_body_content.placeholder")
}
}
end
diff --git a/app/models/settings/user_experience.rb b/app/models/settings/user_experience.rb
index 50612582c..a04a994dc 100644
--- a/app/models/settings/user_experience.rb
+++ b/app/models/settings/user_experience.rb
@@ -41,5 +41,9 @@ module Settings
setting :default_locale, type: :string, default: "en"
setting :display_in_directory, type: :boolean, default: true
setting :award_tag_minimum_score, type: :integer, default: 100
+
+ # Head and footer content
+ setting :head_content, type: :string, default: ""
+ setting :bottom_of_body_content, type: :string, default: ""
end
end
diff --git a/app/views/admin/settings/forms/_user_experience.html.erb b/app/views/admin/settings/forms/_user_experience.html.erb
index a12c9c5e6..cb8c1ab53 100644
--- a/app/views/admin/settings/forms/_user_experience.html.erb
+++ b/app/views/admin/settings/forms/_user_experience.html.erb
@@ -115,6 +115,22 @@
+
+ <%= admin_config_label :head_content, model: Settings::UserExperience %>
+ <%= admin_config_description Constants::Settings::UserExperience.details[:head_content][:description] %>
+ <%= f.text_area :head_content,
+ class: "crayons-textfield",
+ value: Settings::UserExperience.head_content,
+ placeholder: Constants::Settings::UserExperience.details[:head_content][:placeholder] %>
+
+
+ <%= admin_config_label :bottom_of_body_content, model: Settings::UserExperience %>
+ <%= admin_config_description Constants::Settings::UserExperience.details[:bottom_of_body_content][:description] %>
+ <%= f.text_area :bottom_of_body_content,
+ class: "crayons-textfield",
+ value: Settings::UserExperience.bottom_of_body_content,
+ placeholder: Constants::Settings::UserExperience.details[:bottom_of_body_content][:placeholder] %>
+
<%= render "update_setting_button", f: f %>
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index e0b72bca9..1d7f21575 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -43,6 +43,7 @@
" />
<% end %>
+ <%= Settings::UserExperience.head_content.html_safe %>
<% unless internal_navigation? %>
<% cache(release_adjusted_cache_key("top-html-and-config--#{user_signed_in?}")) do %>
@@ -114,6 +115,7 @@
<% end %>
<%= render "articles/reaction_category_resources" %>
+ <%= Settings::UserExperience.bottom_of_body_content.html_safe %>