DEV: Add Content admin config page (#32194)

This PR adds a dedicated page for Content related site settings. It has four different site setting tabs.
This commit is contained in:
Ted Johansson
2025-04-10 11:20:22 +08:00
committed by GitHub
parent db68fd7046
commit db214a38a2
20 changed files with 392 additions and 28 deletions

View File

@ -0,0 +1,3 @@
import AdminAreaSettingsBaseController from "admin/controllers/admin-area-settings-base";
export default class AdminConfigContentCategoriesAndTagsController extends AdminAreaSettingsBaseController {}

View File

@ -0,0 +1,3 @@
import AdminAreaSettingsBaseController from "admin/controllers/admin-area-settings-base";
export default class AdminConfigContentPostsAndTopicsController extends AdminAreaSettingsBaseController {}

View File

@ -0,0 +1,3 @@
import AdminAreaSettingsBaseController from "admin/controllers/admin-area-settings-base";
export default class AdminConfigContentSharingController extends AdminAreaSettingsBaseController {}

View File

@ -0,0 +1,3 @@
import AdminAreaSettingsBaseController from "admin/controllers/admin-area-settings-base";
export default class AdminConfigContentPostsAndTopicsController extends AdminAreaSettingsBaseController {}

View File

@ -0,0 +1,8 @@
import DiscourseRoute from "discourse/routes/discourse";
import { i18n } from "discourse-i18n";
export default class AdminConfigContentCategoriesAndTagsRoute extends DiscourseRoute {
titleToken() {
return i18n("admin.config.content.sub_pages.categories_and_tags.title");
}
}

View File

@ -0,0 +1,8 @@
import DiscourseRoute from "discourse/routes/discourse";
import { i18n } from "discourse-i18n";
export default class AdminConfigContentPostsAndTopicsRoute extends DiscourseRoute {
titleToken() {
return i18n("admin.config.content.sub_pages.posts_and_topics.title");
}
}

View File

@ -0,0 +1,8 @@
import DiscourseRoute from "discourse/routes/discourse";
import { i18n } from "discourse-i18n";
export default class AdminConfigContentSharingRoute extends DiscourseRoute {
titleToken() {
return i18n("admin.config.content.sub_pages.sharing.title");
}
}

View File

@ -0,0 +1,8 @@
import DiscourseRoute from "discourse/routes/discourse";
import { i18n } from "discourse-i18n";
export default class AdminConfigContentStatsAndThresholdsRoute extends DiscourseRoute {
titleToken() {
return i18n("admin.config.content.sub_pages.stats_and_thresholds.title");
}
}

View File

@ -238,6 +238,12 @@ export default function () {
});
}
);
this.route("content", function () {
this.route("categoriesAndTags", { path: "/" });
this.route("sharing");
this.route("postsAndTopics", { path: "/posts-and-topics" });
this.route("statsAndThresholds", { path: "/stats-and-thresholds" });
});
this.route("localization", function () {
this.route("settings", {
path: "/",

View File

@ -0,0 +1,14 @@
import RouteTemplate from "ember-route-template";
import AdminAreaSettings from "admin/components/admin-area-settings";
export default RouteTemplate(
<template>
<AdminAreaSettings
@area="categories_and_tags"
@path="/admin/config/content/categories-and-tags"
@filter={{@controller.filter}}
@adminSettingsFilterChangedCallback={{@controller.adminSettingsFilterChangedCallback}}
@showBreadcrumb={{false}}
/>
</template>
);

View File

@ -0,0 +1,14 @@
import RouteTemplate from "ember-route-template";
import AdminAreaSettings from "admin/components/admin-area-settings";
export default RouteTemplate(
<template>
<AdminAreaSettings
@area="posts_and_topics"
@path="/admin/config/content/posts-and-topics"
@filter={{@controller.filter}}
@adminSettingsFilterChangedCallback={{@controller.adminSettingsFilterChangedCallback}}
@showBreadcrumb={{false}}
/>
</template>
);

View File

@ -0,0 +1,14 @@
import RouteTemplate from "ember-route-template";
import AdminAreaSettings from "admin/components/admin-area-settings";
export default RouteTemplate(
<template>
<AdminAreaSettings
@area="sharing"
@path="/admin/config/content/sharing"
@filter={{@controller.filter}}
@adminSettingsFilterChangedCallback={{@controller.adminSettingsFilterChangedCallback}}
@showBreadcrumb={{false}}
/>
</template>
);

View File

@ -0,0 +1,14 @@
import RouteTemplate from "ember-route-template";
import AdminAreaSettings from "admin/components/admin-area-settings";
export default RouteTemplate(
<template>
<AdminAreaSettings
@area="stats_and_thresholds"
@path="/admin/config/content/stats-and-thresholds"
@filter={{@controller.filter}}
@adminSettingsFilterChangedCallback={{@controller.adminSettingsFilterChangedCallback}}
@showBreadcrumb={{false}}
/>
</template>
);

View File

@ -0,0 +1,44 @@
import RouteTemplate from "ember-route-template";
import DBreadcrumbsItem from "discourse/components/d-breadcrumbs-item";
import DPageHeader from "discourse/components/d-page-header";
import NavItem from "discourse/components/nav-item";
import { i18n } from "discourse-i18n";
export default RouteTemplate(
<template>
<DPageHeader
@titleLabel={{i18n "admin.config.content.title"}}
@descriptionLabel={{i18n "admin.config.content.header_description"}}
>
<:breadcrumbs>
<DBreadcrumbsItem @path="/admin" @label={{i18n "admin_title"}} />
<DBreadcrumbsItem
@path="/admin/config/content"
@label={{i18n "admin.config.content.title"}}
/>
</:breadcrumbs>
<:tabs>
<NavItem
@route="adminConfig.content.categoriesAndTags"
@label="admin.config.content.sub_pages.categories_and_tags.title"
/>
<NavItem
@route="adminConfig.content.sharing"
@label="admin.config.content.sub_pages.sharing.title"
/>
<NavItem
@route="adminConfig.content.postsAndTopics"
@label="admin.config.content.sub_pages.posts_and_topics.title"
/>
<NavItem
@route="adminConfig.content.statsAndThresholds"
@label="admin.config.content.sub_pages.stats_and_thresholds.title"
/>
</:tabs>
</DPageHeader>
<div class="admin-config-page__main-area">
{{outlet}}
</div>
</template>
);

View File

@ -114,6 +114,16 @@ export const ADMIN_NAV_MAP = [
icon: "gear",
settings_area: "about",
},
{
name: "admin_content",
route: "adminConfig.content",
label: "admin.config.content.title",
description: "admin.config.content.header_description",
keywords: "admin.config.content.keywords",
icon: "pencil",
settings_area: "categories_and_tags",
multi_tabbed: true,
},
{
name: "admin_badges",
route: "adminBadges",

View File

@ -4,6 +4,7 @@ class SiteSetting < ActiveRecord::Base
VALID_AREAS = %w[
about
analytics
categories_and_tags
email
embedding
emojis
@ -17,8 +18,11 @@ class SiteSetting < ActiveRecord::Base
notifications
permalinks
reports
posts_and_topics
user_defaults
sharing
site_admin
stats_and_thresholds
trust_levels
]

View File

@ -5420,6 +5420,19 @@ en:
title: "Interface & layout"
header_description: "Customize details of your site’s general layout and user interface"
keywords: "splash"
content:
title: "Content"
header_description: "Configure how your topics and posts are managed, and customize the content creation experience for your members"
keywords: "topics|posts|categories|tags"
sub_pages:
categories_and_tags:
title: "Categories & tags"
sharing:
title: "Sharing"
posts_and_topics:
title: "Posts & topics"
stats_and_thresholds:
title: "Stats & thresholds"
permalinks:
title: "Permalinks"
header_description: "Redirections to apply for URLs not known by the forum"

View File

@ -400,6 +400,10 @@ Discourse::Application.routes.draw do
namespace :config, constraints: StaffConstraint.new do
resources :site_settings, only: %i[index]
get "analytics-and-seo" => "site_settings#index"
get "content" => "site_settings#index"
get "content/sharing" => "site_settings#index"
get "content/posts-and-topics" => "site_settings#index"
get "content/stats-and-thresholds" => "site_settings#index"
get "developer" => "site_settings#index"
get "files" => "site_settings#index"
get "interface" => "site_settings#index"

View File

@ -190,16 +190,20 @@ basic:
client: true
default: 5
max: 2000
area: "posts_and_topics"
limit_suggested_to_category:
default: false
area: "posts_and_topics"
suggested_topics_unread_max_days_old:
default: 90
min: 0
max: 36500
area: "posts_and_topics"
suggested_topics_max_days_old:
default: 365
min: 7
max: 36500
area: "posts_and_topics"
ga_version:
type: enum
default: v4_gtag
@ -265,6 +269,7 @@ basic:
- bookmark
- admin
- reply
area: "posts_and_topics"
post_menu_hidden_items:
client: true
type: list
@ -280,6 +285,7 @@ basic:
- bookmark
- admin
- reply
area: "posts_and_topics"
share_links:
client: true
type: list
@ -290,9 +296,11 @@ basic:
- twitter
- facebook
- email
area: "sharing"
allow_username_in_share_links:
client: true
default: true
area: "sharing"
share_quote_visibility:
client: true
type: enum
@ -301,6 +309,7 @@ basic:
- none
- anonymous
- all
area: "sharing"
share_quote_buttons:
client: true
type: list
@ -311,6 +320,7 @@ basic:
- twitter
- facebook
- email
area: "sharing"
desktop_category_page_style:
client: true
enum: "CategoryPageStyle"
@ -355,12 +365,15 @@ basic:
relative_date_duration:
client: true
default: 30
area: "posts_and_topics"
topics_per_period_in_top_summary:
default: 20
min: 1
area: "posts_and_topics"
topics_per_period_in_top_page:
default: 50
min: 1
area: "posts_and_topics"
top_page_default_timeframe:
client: true
default: "yearly"
@ -372,6 +385,7 @@ basic:
- monthly
- weekly
- daily
area: "posts_and_topics"
fixed_category_positions:
client: true
default: false
@ -942,6 +956,7 @@ posting:
ja: 8
zh_CN: 8
zh_TW: 8
area: "posts_and_topics"
min_first_post_length:
client: true
min: 1
@ -950,9 +965,11 @@ posting:
ja: 8
zh_CN: 8
zh_TW: 8
area: "posts_and_topics"
prevent_uploads_only_posts:
client: true
default: false
area: "posts_and_topics"
min_personal_message_post_length:
client: true
min: 1
@ -961,22 +978,27 @@ posting:
ja: 3
zh_CN: 3
zh_TW: 3
area: "posts_and_topics"
max_post_length:
client: true
default: 32000
max: 150000
area: "posts_and_topics"
topic_featured_link_enabled:
client: true
default: true
area: "posts_and_topics"
body_min_entropy:
default: 7
locale_default:
ja: 3
zh_CN: 3
zh_TW: 3
area: "posts_and_topics"
min_topic_views_for_delete_confirm:
client: true
default: 5000
area: "posts_and_topics"
min_topic_title_length:
client: true
default: 15
@ -985,42 +1007,53 @@ posting:
ja: 6
zh_CN: 6
zh_TW: 6
area: "posts_and_topics"
max_topic_title_length:
client: true
default: 255
min: 5
max: 255
area: "posts_and_topics"
title_min_entropy:
default: 10
locale_default:
ja: 3
zh_CN: 3
zh_TW: 3
area: "posts_and_topics"
allow_uppercase_posts:
default: false
locale_default:
ja: true
area: "posts_and_topics"
max_consecutive_replies:
default: 3
area: "posts_and_topics"
enable_filtered_replies_view:
default: false
client: true
area: "posts_and_topics"
title_prettify:
default: true
locale_default:
ja: false
zh_CN: false
zh_TW: false
area: "posts_and_topics"
title_remove_extraneous_space:
default: false
locale_default:
en: true
en_GB: true
title_fancy_entities: true
area: "posts_and_topics"
title_fancy_entities:
default: true
area: "posts_and_topics"
min_personal_message_title_length:
client: true
default: 2
min: 1
area: "posts_and_topics"
max_emojis_in_title:
default: 1
area: "emojis"
@ -1028,12 +1061,18 @@ posting:
type: emoji_list
default: +1|heart|tada
client: true
area: "posts_and_topics"
allow_uncategorized_topics:
client: true
default: false
refresh: true
allow_duplicate_topic_titles: false
allow_duplicate_topic_titles_category: false
area: "posts_and_topics"
allow_duplicate_topic_titles:
default: false
area: "posts_and_topics"
allow_duplicate_topic_titles_category:
default: false
area: "posts_and_topics"
min_title_similar_length:
client: true
default: 10
@ -1041,8 +1080,10 @@ posting:
ja: 4
zh_CN: 4
zh_TW: 4
area: "posts_and_topics"
enable_system_message_replies:
default: true
area: "posts_and_topics"
personal_message_enabled_groups:
default: "1|2|11" # auto group admins, moderators, trust_level_1
mandatory_values: "1|2" # auto group admins, moderators
@ -1050,13 +1091,22 @@ posting:
allow_any: false
refresh: true
area: "group_permissions"
editing_grace_period: 300
editing_grace_period_max_diff: 100
editing_grace_period_max_diff_high_trust: 400
staff_edit_locks_post: false
editing_grace_period:
default: 300
area: "posts_and_topics"
editing_grace_period_max_diff:
default: 100
area: "posts_and_topics"
editing_grace_period_max_diff_high_trust:
default: 400
area: "posts_and_topics"
staff_edit_locks_post:
default: false
area: "posts_and_topics"
shared_drafts_category:
type: category
default: ""
area: "posts_and_topics"
shared_drafts_min_trust_level:
default: "staff"
enum: "TrustLevelAndStaffSetting"
@ -1071,33 +1121,42 @@ posting:
post_edit_time_limit:
default: 1440
max: 10080
area: "posts_and_topics"
tl2_post_edit_time_limit:
default: 43200
max: 525600
area: "posts_and_topics"
edit_history_visible_to_public:
client: true
default: true
area: "posts_and_topics"
delete_removed_posts_after:
client: true
default: 24
max: 876000
area: "posts_and_topics"
notify_users_after_responses_deleted_on_flagged_post:
default: false
area: "posts_and_topics"
traditional_markdown_linebreaks:
client: true
default: false
area: "posts_and_topics"
enable_markdown_typographer:
client: true
default: true
area: "posts_and_topics"
enable_markdown_linkify:
client: true
default: true
area: "posts_and_topics"
markdown_linkify_tlds:
client: true
type: list
default: "com|net|org|io|onion|co|tv|ru|cn|us|uk|me|de|fr|fi|gov"
list_type: compact
validator: "MarkdownLinkifyTldsValidator"
area: "posts_and_topics"
markdown_typographer_quotation_marks:
client: true
type: list
@ -1107,23 +1166,32 @@ posting:
locale_default:
de: "„|“|‚|‘"
fr: "«\xA0|\xA0»|‹\xA0|\xA0›"
area: "posts_and_topics"
suppress_reply_directly_below:
client: true
default: true
area: "posts_and_topics"
suppress_reply_directly_above:
client: true
default: true
area: "posts_and_topics"
suppress_reply_when_quoting:
default: true
area: "posts_and_topics"
remove_full_quote:
default: true
area: "posts_and_topics"
max_reply_history:
default: 1
client: true
post_undo_action_window_mins: 10
area: "posts_and_topics"
post_undo_action_window_mins:
default: 10
area: "posts_and_topics"
enable_mentions:
default: true
client: true
area: "posts_and_topics"
max_mentions_per_post:
default: 10
area: "notifications"
@ -1131,7 +1199,9 @@ posting:
default: 100
client: true
area: "notifications"
newuser_max_replies_per_topic: 3
newuser_max_replies_per_topic:
default: 3
area: "posts_and_topics"
newuser_max_mentions_per_post:
default: 2
area: "notifications"
@ -1139,7 +1209,10 @@ posting:
default: "here"
validator: "NotUsernameValidator"
client: true
max_here_mentioned: 10
area: "posts_and_topics"
max_here_mentioned:
default: 10
area: "posts_and_topics"
min_trust_level_for_here_mention:
default: "2"
enum: "TrustLevelAndStaffSetting"
@ -1158,16 +1231,22 @@ posting:
ko: 50
zh_CN: 50
zh_TW: 50
area: "posts_and_topics"
allowed_link_domains:
default: ""
type: list
newuser_max_links: 2
area: "posts_and_topics"
newuser_max_links:
default: 2
area: "posts_and_topics"
newuser_max_embedded_media:
client: true
default: 1
area: "posts_and_topics"
newuser_max_attachments:
client: true
default: 0
area: "posts_and_topics"
post_excerpt_maxlength:
default: 300
max: 1000
@ -1175,6 +1254,7 @@ posting:
ja: 120
zh_CN: 120
zh_TW: 120
area: "posts_and_topics"
topic_excerpt_maxlength:
default: 220
max: 1000
@ -1182,44 +1262,58 @@ posting:
ja: 120
zh_CN: 120
zh_TW: 120
area: "posts_and_topics"
default_subcategory_on_read_only_category:
client: true
default: false
area: "posts_and_topics"
show_pinned_excerpt_mobile:
client: true
default: true
area: "posts_and_topics"
show_pinned_excerpt_desktop:
client: true
default: true
area: "posts_and_topics"
display_name_on_posts:
client: true
default: false
area: "posts_and_topics"
show_time_gap_days:
default: 7
max: 36500
client: true
area: "posts_and_topics"
short_progress_text_threshold:
client: true
default: 10000
max: 99000
area: "posts_and_topics"
default_code_lang:
client: true
default: "auto"
warn_reviving_old_topic_age: 180
area: "posts_and_topics"
warn_reviving_old_topic_age:
default: 180
area: "posts_and_topics"
autohighlight_all_code:
client: true
default: false
area: "posts_and_topics"
highlighted_languages:
default: "bash|c|cpp|csharp|css|diff|go|graphql|ini|java|javascript|json|kotlin|lua|makefile|markdown|objectivec|perl|php|php-template|plaintext|python|python-repl|r|ruby|rust|scss|shell|sql|swift|typescript|xml|yaml|wasm"
choices: "HighlightJs.languages"
type: list
client: true
list_type: compact
area: "posts_and_topics"
show_copy_button_on_codeblocks:
client: true
default: true
hidden: true
delete_old_hidden_posts: true
delete_old_hidden_posts:
default: true
area: "posts_and_topics"
enable_emoji:
default: true
client: true
@ -1256,6 +1350,7 @@ posting:
area: "emojis"
approve_post_count:
default: 0
area: "posts_and_topics"
approve_unless_trust_level:
default: 0
enum: "TrustLevelSetting"
@ -1280,8 +1375,10 @@ posting:
area: "group_permissions"
approve_suspect_users:
default: true
area: "posts_and_topics"
approve_unless_staged:
default: false
area: "posts_and_topics"
notify_about_queued_posts_after:
type: float
default: 24
@ -1293,6 +1390,7 @@ posting:
default: 10000
auto_close_topics_create_linked_topic:
default: true
area: "posts_and_topics"
code_formatting_style:
client: true
type: enum
@ -1300,6 +1398,7 @@ posting:
choices:
- code-fences
- 4-spaces-indent
area: "posts_and_topics"
embed_any_origin:
default: false
area: "embedding"
@ -1329,9 +1428,11 @@ posting:
default: ""
type: list
list_type: compact
area: "posts_and_topics"
max_allowed_message_recipients:
default: 30
min: 1
area: "posts_and_topics"
disable_watched_word_checking_in_user_fields:
hidden: true
default: false
@ -1341,19 +1442,24 @@ posting:
enable_fast_edit:
default: true
client: true
area: "posts_and_topics"
old_post_notice_days:
default: 14
max: 36500
client: true
area: "posts_and_topics"
new_user_notice_tl:
default: 2
enum: "TrustLevelSetting"
area: "posts_and_topics"
returning_user_notice_tl:
default: 2
enum: "TrustLevelSetting"
area: "posts_and_topics"
returning_users_days:
default: 120
max: 36500
area: "posts_and_topics"
review_media_unless_trust_level:
default: 0
enum: "TrustLevelSetting"
@ -1368,13 +1474,19 @@ posting:
blur_tl0_flagged_posts_media:
default: true
client: true
area: "posts_and_topics"
enable_page_publishing:
default: false
area: "posts_and_topics"
show_published_pages_login_required:
default: false
skip_auto_delete_reply_likes: 5
area: "posts_and_topics"
skip_auto_delete_reply_likes:
default: 5
area: "posts_and_topics"
review_every_post:
default: false
area: "posts_and_topics"
max_draft_length:
default: 400_000
hidden: true
@ -1385,9 +1497,11 @@ posting:
default: 100
min: 5
max: 255
area: "posts_and_topics"
max_form_template_content_length:
default: 5000
max: 150000
area: "posts_and_topics"
group_pm_user_limit:
default: 1000
type: integer
@ -2964,6 +3078,7 @@ uncategorized:
suppress_uncategorized_badge:
client: true
default: true
area: "categories_and_tags"
header_dropdown_category_count:
client: true
@ -2986,79 +3101,120 @@ uncategorized:
validator: "RegexpListValidator"
area: "permalinks"
max_similar_results: 5
minimum_topics_similar: 50
max_similar_results:
default: 5
area: "posts_and_topics"
minimum_topics_similar:
default: 50
area: "posts_and_topics"
previous_visit_timeout_hours: 1
staff_like_weight: 3
topic_view_duration_hours: 8
user_profile_view_duration_hours: 8
topic_view_duration_hours:
default: 8
area: "stats_and_thresholds"
user_profile_view_duration_hours:
default: 8
area: "stats_and_thresholds"
# Summary mode
summary_score_threshold: 15
summary_posts_required: 50
summary_likes_required: 1
summary_percent_filter: 20
summary_max_results: 100
summary_score_threshold:
default: 15
area: "posts_and_topics"
summary_posts_required:
default: 50
area: "posts_and_topics"
summary_likes_required:
default: 1
area: "posts_and_topics"
summary_percent_filter:
default: 20
area: "posts_and_topics"
summary_max_results:
default: 100
area: "posts_and_topics"
summary_timeline_button:
client: true
default: false
area: "posts_and_topics"
automatic_topic_heat_values: true
automatic_topic_heat_values:
default: true
area: "stats_and_thresholds"
# View heat thresholds
topic_views_heat_low:
client: true
default: 1000
area: "stats_and_thresholds"
topic_views_heat_medium:
client: true
default: 2000
area: "stats_and_thresholds"
topic_views_heat_high:
client: true
default: 3500
area: "stats_and_thresholds"
# Post/Like heat thresholds
topic_post_like_heat_low:
client: true
default: 0.5
area: "stats_and_thresholds"
topic_post_like_heat_medium:
client: true
default: 1.0
area: "stats_and_thresholds"
topic_post_like_heat_high:
client: true
default: 2.0
area: "stats_and_thresholds"
# History edit heat thresholds
history_hours_low:
client: true
default: 12
area: "stats_and_thresholds"
history_hours_medium:
client: true
default: 24
area: "stats_and_thresholds"
history_hours_high:
client: true
default: 48
area: "stats_and_thresholds"
# Cold map thresholds
cold_age_days_low:
default: 14
max: 36500
client: true
area: "stats_and_thresholds"
cold_age_days_medium:
default: 90
max: 36500
client: true
area: "stats_and_thresholds"
cold_age_days_high:
default: 180
max: 36500
client: true
area: "stats_and_thresholds"
# Warnings
educate_until_posts: 2
sequential_replies_threshold: 2
get_a_room_threshold: 3
dont_feed_the_trolls_threshold: 2
dominating_topic_minimum_percent: 40
sequential_replies_threshold:
default: 2
area: "stats_and_thresholds"
get_a_room_threshold:
default: 3
area: "stats_and_thresholds"
dont_feed_the_trolls_threshold:
default: 2
area: "stats_and_thresholds"
dominating_topic_minimum_percent:
default: 40
area: "stats_and_thresholds"
disable_avatar_education_message: false
pm_warn_user_last_seen_months_ago: 24
@ -3095,6 +3251,7 @@ uncategorized:
type: category
default: ""
validator: "DefaultComposerCategoryValidator"
area: "posts_and_topics"
notify_about_reviewable_item_after:
type: float
@ -3138,10 +3295,12 @@ uncategorized:
delete_drafts_older_than_n_days:
default: 180
max: 36500
area: "posts_and_topics"
delete_merged_stub_topics_after_days:
default: 7
min: -1
area: "posts_and_topics"
backup_drafts_to_pm_length:
default: 0
@ -3183,6 +3342,7 @@ uncategorized:
automatically_unpin_topics:
default: true
client: true
area: "posts_and_topics"
read_time_word_count:
default: 500
@ -3191,10 +3351,12 @@ uncategorized:
ja: 350
zh_CN: 350
zh_TW: 350
area: "posts_and_topics"
topic_page_title_includes_category:
default: true
client: true
area: "posts_and_topics"
native_app_install_banner_ios:
default: false
@ -3285,6 +3447,7 @@ uncategorized:
create_revision_on_bulk_topic_moves:
default: true
area: "posts_and_topics"
allow_changing_staged_user_tracking: false
@ -3304,10 +3467,12 @@ uncategorized:
show_bottom_topic_map:
client: true
default: true
area: "posts_and_topics"
show_topic_map_in_topics_without_replies:
client: true
default: true
area: "posts_and_topics"
enable_welcome_banner:
client: true
@ -3530,6 +3695,7 @@ tags:
client: true
default: true
refresh: true
area: "categories_and_tags"
tag_style:
client: true
type: enum
@ -3539,19 +3705,24 @@ tags:
- bullet
- box
preview: '<div class="discourse-tags"><span class="discourse-tag {{value}}">tag1</span><span class="discourse-tag {{value}}">tag2</span></div>'
area: "categories_and_tags"
max_tags_per_topic:
default: 5
client: true
area: "categories_and_tags"
enable_max_tags_per_email_subject:
default: false
client: true
area: "categories_and_tags"
max_tags_per_email_subject:
default: 5
client: true
min: 0
area: "categories_and_tags"
max_tag_length:
default: 20
client: true
area: "categories_and_tags"
min_trust_to_create_tag:
default: "3"
type: enum
@ -3581,18 +3752,22 @@ tags:
client: true
default: 5
min: 1
area: "categories_and_tags"
max_tags_in_filter_list:
client: true
default: 30
min: 1
refresh: true
area: "categories_and_tags"
tags_sort_alphabetically:
client: true
default: false
refresh: true
area: "categories_and_tags"
tags_listed_by_group:
client: true
default: false
area: "categories_and_tags"
pm_tags_allowed_for_groups:
type: group_list
list_type: compact
@ -3603,22 +3778,28 @@ tags:
suppress_overlapping_tags_in_list:
default: false
client: true
area: "categories_and_tags"
remove_muted_tags_from_latest:
client: true
type: enum
default: always
enum: RemoveMutedTagsFromLatestSiteSetting
area: "categories_and_tags"
watched_precedence_over_muted:
client: true
default: false
area: "categories_and_tags"
force_lowercase_tags:
default: true
client: true
area: "categories_and_tags"
create_post_for_category_and_tag_changes:
default: false
area: "categories_and_tags"
automatically_clean_unused_tags:
default: false
area: "categories_and_tags"
dashboard:
dashboard_hidden_reports:

View File

@ -93,6 +93,7 @@ describe "Admin | Sidebar Navigation", type: :system do
links = page.all(".sidebar-section-link-content-text")
expect(links.map(&:text)).to eq(
[
I18n.t("admin_js.admin.config.content.title"),
I18n.t("admin_js.admin.config.user_fields.title"),
I18n.t("admin_js.admin.config.flags.title"),
I18n.t("admin_js.admin.config.email.title"),
@ -192,6 +193,7 @@ describe "Admin | Sidebar Navigation", type: :system do
links = page.all(".sidebar-section-link-content-text")
expect(links.map(&:text)).to eq(
[
I18n.t("admin_js.admin.config.content.title"),
I18n.t("admin_js.admin.config.user_fields.title"),
I18n.t("admin_js.admin.config.flags.title"),
I18n.t("admin_js.admin.config.email.title"),