mirror of
https://github.com/discourse/discourse.git
synced 2026-08-11 02:59:07 +08:00
This PR adds a shared `CategoryScopeSiteSetting` enum for category-scope
dropdowns.
The enum keeps the stored values short (`all`, `public`, `include`,
`include_strict`, `exclude`, `exclude_strict`) while letting the admin
UI show clearer labels like “Include selected categories (with
subcategories)”. This gives category-list settings a reusable way to
explain include/exclude and strict/non-strict behavior without making
the setting description do all the work.
Example usage:
```yaml
feature_name_category_scope:
type: enum
default: "public" # public categories
enum: "CategoryScopeSiteSetting"
client: false
area: "feature-name"
feature_name_categories:
type: category_list
default: ""
client: false
area: "feature-name"
depends_on:
- feature_name_category_scope
depends_on_values:
feature_name_category_scope:
- include
- include_strict
- exclude
- exclude_strict
depends_behavior: "hidden" # this settting will be hidden based on the depends_on_values
dependent_setting_display: "inline" # this setting will be displayed inline to the above
```
And suitable descriptions in `server.en.yml`
```yaml
feature_name_category_scope: "Choose which categories this feature can use. Include and exclude options use {{setting:feature_name_categories}}."
feature_name_categories: "Categories used when the category scope is set to <strong>include</strong> or <strong>exclude</strong>."
```
https://github.com/user-attachments/assets/d5255687-e995-4123-951b-2c784b315c0b
|
||
|---|---|---|
| .. | ||
| dashboard | ||
| admin-dashboard-skeleton.scss | ||
| admin_base.scss | ||
| admin_bulk_users_delete_modal.scss | ||
| admin_bulk_users_suspend_modal.scss | ||
| admin_config_area.scss | ||
| admin_config_color_palettes.scss | ||
| admin_config_components.scss | ||
| admin_dashboard.scss | ||
| admin_filter.scss | ||
| admin_filter_controls.scss | ||
| admin_intro.scss | ||
| admin_new_category_setup.scss | ||
| admin_report.scss | ||
| admin_report_chart.scss | ||
| admin_report_counters.scss | ||
| admin_report_inline_table.scss | ||
| admin_report_radar.scss | ||
| admin_report_stacked_line_chart.scss | ||
| admin_report_table.scss | ||
| admin_reports.scss | ||
| admin_section_landing_page.scss | ||
| admin_user_fields.scss | ||
| api.scss | ||
| backups.scss | ||
| badges.scss | ||
| color-palette-editor.scss | ||
| color_palettes.scss | ||
| customize-install-theme.scss | ||
| customize.scss | ||
| customize_show_schema.scss | ||
| dashboard.scss | ||
| discourse_id.scss | ||
| emails.scss | ||
| flags.scss | ||
| json_schema_editor.scss | ||
| mini_profiler.scss | ||
| penalty.scss | ||
| plugins.scss | ||
| schema_field.scss | ||
| schema_setting_editor.scss | ||
| search.scss | ||
| settings.scss | ||
| sidebar.scss | ||
| site-settings.scss | ||
| staff_logs.scss | ||
| upcoming-changes.scss | ||
| users.scss | ||