mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-24 00:52:52 +08:00
56 lines
1.3 KiB
JavaScript
Vendored
56 lines
1.3 KiB
JavaScript
Vendored
import { action } from "@ember/object";
|
|
import { service } from "@ember/service";
|
|
import DiscourseRoute from "discourse/routes/discourse";
|
|
import { i18n } from "discourse-i18n";
|
|
import SiteSetting from "admin/models/site-setting";
|
|
|
|
export default class AdminSiteSettingsRoute extends DiscourseRoute {
|
|
@service siteSettingChangeTracker;
|
|
|
|
queryParams = {
|
|
filter: { replace: true },
|
|
};
|
|
|
|
titleToken() {
|
|
return i18n("admin.config.site_settings.title");
|
|
}
|
|
|
|
model() {
|
|
return SiteSetting.findAll();
|
|
}
|
|
|
|
afterModel(siteSettings) {
|
|
const controller = this.controllerFor("adminSiteSettings");
|
|
|
|
if (!controller.get("visibleSiteSettings")) {
|
|
controller.set("visibleSiteSettings", siteSettings);
|
|
}
|
|
}
|
|
|
|
@action
|
|
async willTransition(transition) {
|
|
if (
|
|
this.siteSettingChangeTracker.hasUnsavedChanges &&
|
|
transition.from.name !== transition.to.name
|
|
) {
|
|
transition.abort();
|
|
|
|
await this.siteSettingChangeTracker.confirmTransition();
|
|
|
|
transition.retry();
|
|
}
|
|
}
|
|
|
|
@action
|
|
refreshAll() {
|
|
SiteSetting.findAll().then((settings) => {
|
|
this.controllerFor("adminSiteSettings").set("model", settings);
|
|
});
|
|
}
|
|
|
|
resetController(controller, isExiting) {
|
|
if (isExiting) {
|
|
controller.set("filter", "");
|
|
}
|
|
}
|
|
}
|