FEATURE: Add sidebar link for admin to configure default tags (#18593)

Displays a sidebar section link to admin users when
`default_sidebar_tags` site setting has not been configured for the
site.

Internal Ref: /t/73500
This commit is contained in:
Alan Guo Xiang Tan 2022-10-17 12:08:32 +08:00 committed by GitHub
parent ae6549a6ea
commit fff575ffd2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 2 deletions

View File

@ -27,5 +27,16 @@
{{/if}}
<Sidebar::Common::AllTagsSectionLink />
{{#if (and this.currentUser.admin (not this.hasDefaultSidebarTags))}}
<Sidebar::SectionLink
@linkName="configure-default-sidebar-tags"
@content={{i18n "sidebar.sections.tags.configure_defaults"}}
@prefixType="icon"
@prefixValue="wrench"
@route="adminSiteSettingsCategory"
@model="sidebar"
@query={{hash filter="default_sidebar_tags"}} />
{{/if}}
</Sidebar::Section>
{{/if}}

View File

@ -71,13 +71,17 @@ export default class SidebarUserTagsSection extends Component {
* If a site has default sidebar tags configured, always display the tags section.
*/
get shouldDisplay() {
if (this.siteSettings.default_sidebar_tags.length > 0) {
if (this.hasDefaultSidebarTags) {
return true;
} else {
return this.currentUser.sidebarTags.length > 0;
}
}
get hasDefaultSidebarTags() {
return this.siteSettings.default_sidebar_tags.length > 0;
}
@action
editTracked() {
this.router.transitionTo("preferences.sidebar", this.currentUser);

View File

@ -59,6 +59,7 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
},
],
display_sidebar_tags: true,
admin: false,
});
needs.pretender((server, helper) => {
@ -423,4 +424,23 @@ acceptance("Sidebar - Logged on user - Tags section", function (needs) {
initialCallbackCount
);
});
test("section link to admin site settings page when default sidebar tags have not been configured", async function (assert) {
updateCurrentUser({ admin: true });
await visit("/");
assert.ok(
exists(".sidebar-section-link-configure-default-sidebar-tags"),
"section link to configure default sidebar tags is shown"
);
await click(".sidebar-section-link-configure-default-sidebar-tags");
assert.strictEqual(
currentURL(),
"/admin/site_settings/category/all_results?filter=default_sidebar_tags",
"it links to the admin site settings page correctly"
);
});
});

View File

@ -1177,7 +1177,7 @@ en:
enable_quoting: "Enable quote reply for highlighted text"
enable_defer: "Enable defer to mark topics unread"
experimental_sidebar:
enable: "Enable experimental sidebar"
enable: "Enable sidebar"
options: "Options"
categories_section: "Categories Section"
categories_section_instruction: "Selected categories will be displayed under Sidebar's categories section."
@ -4189,6 +4189,7 @@ en:
click_to_get_started: "Click here to get started."
header_link_text: "Tags"
header_action_title: "edit your sidebar tags"
configure_defaults: "Configure defaults"
categories:
none: "You have not added any categories."
click_to_get_started: "Click here to get started."
@ -5666,6 +5667,7 @@ en:
search: "Search"
groups: "Groups"
dashboard: "Dashboard"
sidebar: "Sidebar"
secret_list:
invalid_input: "Input fields cannot be empty or contain vertical bar character."
default_categories: