mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-26 03:01:14 +08:00
This feature allows admins to find what they are looking for in the admin interface via a search modal. This replaces the admin sidebar filter as the focus of the Ctrl+/ command, but the sidebar filter can also still be used. Perhaps at some point we may remove it or change the shortcut. The search modal presents the following data for filtering: * A list of all admin pages, the same as the sidebar, except also showing "third level" pages like "Email > Skipped" * All site settings * Themes * Components * Reports Admins can also filter which types of items are shown in the modal, for example hiding Settings if they know they are looking for a Page. In this PR, I also have the following fixes: * Site setting filters now clear when moving between filtered site setting pages, previously it was super sticky from Ember * Many translations were moved around, instead of being in various namespaces for the sidebar links and the admin page titles and descriptions, now everything is under `admin.config` namespace, this makes it way easier to reuse this text for pages, search, and sidebar, and if you change it in one place then it is changed everywhere. --------- Co-authored-by: Ella <ella.estigoy@gmail.com>
34 lines
809 B
JavaScript
Vendored
34 lines
809 B
JavaScript
Vendored
import { action } from "@ember/object";
|
|
import DiscourseRoute from "discourse/routes/discourse";
|
|
import SiteSetting from "admin/models/site-setting";
|
|
|
|
export default class AdminSiteSettingsRoute extends DiscourseRoute {
|
|
queryParams = {
|
|
filter: { replace: true },
|
|
};
|
|
|
|
model() {
|
|
return SiteSetting.findAll();
|
|
}
|
|
|
|
afterModel(siteSettings) {
|
|
const controller = this.controllerFor("adminSiteSettings");
|
|
|
|
if (!controller.get("visibleSiteSettings")) {
|
|
controller.set("visibleSiteSettings", siteSettings);
|
|
}
|
|
}
|
|
|
|
@action
|
|
refreshAll() {
|
|
SiteSetting.findAll().then((settings) => {
|
|
this.controllerFor("adminSiteSettings").set("model", settings);
|
|
});
|
|
}
|
|
|
|
resetController(controller, isExiting) {
|
|
if (isExiting) {
|
|
controller.set("filter", "");
|
|
}
|
|
}
|
|
}
|