docbrown/app/views/admin/settings/forms/_user_experience.html.erb
Daniel Uber 5678fb77f5
Remove unneeded checks for code tags when filtering articles from search indexing (#14801)
* Move logic to determine noindex from view to model

This brings attention to the code and allows for faster unit tests.

I expect we'll be modifying this soon to deemphasize the code tag as a
marker of quality.

* Replace "5" constant with home feed minimum score

* Remove check for "code" tags in low quality article check

This made sense for DEV and other devrel communities, but is no longer
necessary for Forems.

* Add UserExperience setting for minimum index score

- add setting, I used `index_minimum_score` to match the
`home_feed_minimum_score`, `minimum_index_score` feels natural but
breaks the pattern.

- use this to determine whether to include article in the sitemap

- use this to determine whether to add noindex meta to article show page

* Remove unneeded tests

Since there's no longer any check for <code> tags in the body, omit
those tests (which passed anyway).

* Add new setting to admin page
2021-09-28 13:44:35 -04:00

108 lines
6.4 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| %>
<div class=" card mt-3">
<%= render partial: "admin/shared/card_header",
locals: {
header: "User Experience and Brand",
state: "collapse",
target: "uxBodyContainer",
expanded: false
} %>
<div id="uxBodyContainer" class="card-body collapse hide" aria-labelledby="uxBodyContainer">
<fieldset class="grid gap-4">
<div class="crayons-fieldx">
<%= admin_config_label :feed_style, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience::DETAILS[:feed_style][:description] %>
<%= f.text_field :feed_style,
class: "crayons-textfield",
value: Settings::UserExperience.feed_style,
placeholder: Constants::Settings::UserExperience::DETAILS[:feed_style][:placeholder] %>
</div>
<div class="crayons-field">
<%= admin_config_label :feed_strategy, model: Settings::UserExperience %>
<%= admin_config_description Constants::Settings::UserExperience::DETAILS[:feed_strategy][:description] %>
<%= f.text_field :feed_strategy,
class: "crayons-textfield",
value: Settings::UserExperience.feed_strategy,
placeholder: Constants::Settings::UserExperience::DETAILS[:feed_strategy][:placeholder] %>
</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 :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: "selectpicker" %>
</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: "selectpicker" %>
</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] %>
<%= f.color_field :primary_brand_color_hex,
class: "crayons-color-selector",
value: Settings::UserExperience.primary_brand_color_hex,
pattern: "^#+([a-fA-F0-9]{6})$",
placeholder: Constants::Settings::UserExperience::DETAILS[:primary_brand_color_hex][:placeholder] %>
</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>
</fieldset>
<%= render "update_setting_button", f: f %>
</div>
</div>
<% end %>
</div>