mirror of
https://github.com/discourse/discourse.git
synced 2024-12-01 18:35:11 +08:00
b53449eac9
NOTE: Most of this is experimental and will be removed at a later time, which is why things like translations have not been added. The new /admin-revamp UI uses a sidebar for admin nav. This initial step adds a script to generate a map of all the current admin nav into a format the sidebar to read. Then, people can experiment with different changes to this structure. The structure can then be edited from `/admin-revamp/config/sidebar-experiment`, and it is saved to local storage so people can visually experiment with different ways of showing the admin sidebar links.
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import { inject as service } from "@ember/service";
|
|
import DiscourseURL from "discourse/lib/url";
|
|
import DiscourseRoute from "discourse/routes/discourse";
|
|
import { ADMIN_PANEL, MAIN_PANEL } from "discourse/services/sidebar-state";
|
|
import I18n from "discourse-i18n";
|
|
|
|
export default class AdminRoute extends DiscourseRoute {
|
|
@service siteSettings;
|
|
@service currentUser;
|
|
@service sidebarState;
|
|
|
|
titleToken() {
|
|
return I18n.t("admin_title");
|
|
}
|
|
|
|
activate() {
|
|
if (
|
|
!this.siteSettings.userInAnyGroups(
|
|
"enable_experimental_admin_ui_groups",
|
|
this.currentUser
|
|
)
|
|
) {
|
|
return DiscourseURL.redirectTo("/admin");
|
|
}
|
|
|
|
this.sidebarState.setPanel(ADMIN_PANEL);
|
|
this.sidebarState.setSeparatedMode();
|
|
this.sidebarState.hideSwitchPanelButtons();
|
|
|
|
this.controllerFor("application").setProperties({
|
|
showTop: false,
|
|
});
|
|
}
|
|
|
|
deactivate(transition) {
|
|
this.controllerFor("application").set("showTop", true);
|
|
if (!transition?.to.name.startsWith("admin")) {
|
|
this.sidebarState.setPanel(MAIN_PANEL);
|
|
}
|
|
}
|
|
}
|