docbrown/app/views/admin/settings/forms/_user_experience.html.erb
Mac Siri afa73e06e3
Replace Webpacker with Esbuild (#20470)
* Migrate to esbuild WIP

* Add exclude

* Remove redundant file

* Move file

* Move to javascript_include_tag

* Lint fix

* WIP

* WIP

* Add watch mode to esbuild WIP

* Get jest working

* Remove babel

* Revert "Remove babel"

This reverts commit 6da35260aa19d6f97f586deb66c0ecaf48433b73.

* More WIP

* Got image to load

* WIP

* Resolve audit

* Lint fix

* WIP

* Fix jest spec

* [CI] Remove asset-restore for test build stage

* Production compliant

* Temp disable sourcemap

* Update glob

* Add esbuild helper to stimulus

* Import fragment

* Temp disable coverage to see failing tests

* Fix broken spec

* Address lint

* Set proper es6 target

* Use esbuild for everything

* wait what

* Revert "Set proper es6 target"

This reverts commit 98f5278093421baa8ffe2ca580845b01c1a1eadf.

* Revert "Use esbuild for everything"

This reverts commit 0ac46738f07ffcb6af095ccb1ffa5e439b7fefa3.

* Replace uglifier with terser

* New compiled assets version

* Remvoe honeybadger-io/webpack

* Remove cypress coverage checks for now

* Update jsconfig.json

* Update docker-compose

* Remove public/packs-test from ci cache
2024-01-25 20:29:21 +00:00

140 lines
9.1 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%= form_for(Settings::UserExperience.new,
url: admin_settings_user_experiences_path,
html: { data: { action: "submit->config#updateConfigurationSettings" } }) do |f| %>
<details class="crayons-card">
<summary class="crayons-subtitle-2 p-6">User Experience and Brand</summary>
<div class="p-6 pt-0">
<fieldset class="grid gap-4">
<div class="crayons-field">
<%= admin_config_label :feed_style, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:feed_style][:description] %>
<%= select_tag "settings_user_experience[feed_style]",
options_for_select(Settings::UserExperience::FEED_STYLES, Settings::UserExperience.feed_style),
multiple: false,
class: "crayons-select" %>
</div>
<div class="crayons-field">
<%= admin_config_label :feed_strategy, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:feed_strategy][:description] %>
<%= select_tag "settings_user_experience[feed_strategy]",
options_for_select(Settings::UserExperience::FEED_STRATEGIES, Settings::UserExperience.feed_strategy),
multiple: false,
class: "crayons-select" %>
</div>
<div class="crayons-field">
<%= admin_config_label :cover_image_height, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:cover_image_height][:description] %>
<%= f.number_field :cover_image_height,
class: "crayons-textfield",
value: Settings::UserExperience.cover_image_height,
placeholder: Constants::Settings::UserExperience.details[:cover_image_height][:placeholder] %>
</div>
<div class="crayons-field">
<%= admin_config_label :cover_image_fit, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:cover_image_fit][:description] %>
<%= select_tag "settings_user_experience[cover_image_fit]",
options_for_select(Settings::UserExperience::COVER_IMAGE_FITS, Settings::UserExperience.cover_image_fit),
multiple: false,
class: "crayons-select" %>
</div>
<div class="crayons-field">
<%= admin_config_label :tag_feed_minimum_score, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:tag_feed_minimum_score][:description] %>
<%= f.number_field :tag_feed_minimum_score,
class: "crayons-textfield",
value: Settings::UserExperience.tag_feed_minimum_score,
placeholder: Constants::Settings::UserExperience.details[:tag_feed_minimum_score][:placeholder] %>
</div>
<div class="crayons-field">
<%= admin_config_label :home_feed_minimum_score, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:home_feed_minimum_score][:description] %>
<%= f.number_field :home_feed_minimum_score,
class: "crayons-textfield",
value: Settings::UserExperience.home_feed_minimum_score,
placeholder: Constants::Settings::UserExperience.details[:home_feed_minimum_score][:placeholder] %>
</div>
<div class="crayons-field">
<%= admin_config_label :index_minimum_score, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:index_minimum_score][:description] %>
<%= f.number_field :index_minimum_score,
class: "crayons-textfield",
value: Settings::UserExperience.index_minimum_score,
placeholder: Constants::Settings::UserExperience.details[:index_minimum_score][:placeholder] %>
</div>
<div class="crayons-field">
<%= admin_config_label :index_minimum_date, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:index_minimum_date][:description] %>
<%= f.number_field :index_minimum_date,
class: "crayons-textfield",
value: Settings::UserExperience.index_minimum_date,
placeholder: Constants::Settings::UserExperience.details[:index_minimum_date][:placeholder] %>
</div>
<div class="crayons-field">
<%= admin_config_label :default_font, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:default_font][:description] %>
<%= select_tag "settings_user_experience[default_font]",
options_for_select(
[%w[sans-serif sans_serif], %w[serif serif], %w[open-dyslexic open_dyslexic]],
Settings::UserExperience.default_font,
),
multiple: false,
class: "crayons-select" %>
</div>
<div class="crayons-field">
<%= admin_config_label :default_locale, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:default_locale][:description] %>
<%= select_tag "settings_user_experience[default_locale]",
options_for_select(
[%w[English en], %w[Français fr]],
Settings::UserExperience.default_locale,
),
multiple: false,
class: "crayons-select" %>
</div>
<div class="crayons-field">
<%= admin_config_label :primary_brand_color_hex, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience.details[:primary_brand_color_hex][:description], id: "brand-color-description" %>
<%= f.text_field :primary_brand_color_hex, class: "crayons-textfield", value: Settings::UserExperience.primary_brand_color_hex, placeholder: Constants::Settings::UserExperience.details[:primary_brand_color_hex][:placeholder], pattern: "^#+([a-fA-F0-9]{6})$",
data: { color_picker: true, label_text: "Primary brand color hex" }, aria: { describedby: "brand-color-description" } %>
</div>
<div class="crayons-field crayons-field--checkbox">
<%= f.check_box :public, checked: Settings::UserExperience.public, class: "crayons-checkbox" %>
<div class="mt-0">
<%= admin_config_label :public, model: Settings::UserExperience %>
<p class="crayons-field__description">
Are most of the site pages (e.g. posts, profiles) public? <strong>Please take precaution when changing this setting.</strong>
</p>
</div>
</div>
<div class="crayons-field crayons-field--checkbox">
<%= f.check_box :display_in_directory, checked: Settings::UserExperience.display_in_directory, class: "crayons-checkbox" %>
<div class="mt-0">
<%= admin_config_label :display_in_directory, model: Settings::UserExperience %>
<p class="crayons-field__description">
Do you want this Forem to be displayed in the <a href="https://discover.forem.com" target="_blank">Forem Directory</a>?
</p>
</div>
</div>
<div class="crayons-field">
<%= 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] %>
</div>
<div class="crayons-field">
<%= 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] %>
</div>
</fieldset>
<%= render "update_setting_button", f: f %>
</div>
</details>
<% end %>
</div>
<%= javascript_include_tag "enhanceColorPickers", defer: true %>