This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/lib/static-route-builder.js.es6
Jarek Radosz fe588cc7f8
DEV: Fix function prototype deprecations (#8681)
* DEV: Fix the function prototype observers deprecation

DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.observes('foo') to observer('foo', function() {}). [deprecation id: function-prototype-extensions.observes] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-observes for more details.

* DEV: Fix the function prototype event listeners deprecation

DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.on('foo') to on('foo', function() {}). [deprecation id: function-prototype-extensions.on] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-on for more details.

* DEV: Simplify `default as` imports

Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
2020-01-16 18:56:53 +01:00

50 lines
1.1 KiB
JavaScript

import DiscourseRoute from "discourse/routes/discourse";
import StaticPage from "discourse/models/static-page";
import DiscourseURL, { jumpToElement } from "discourse/lib/url";
const configs = {
faq: "faq_url",
tos: "tos_url",
privacy: "privacy_policy_url"
};
export default function(page) {
return DiscourseRoute.extend({
renderTemplate() {
this.render("static");
},
beforeModel(transition) {
const configKey = configs[page];
if (configKey && Discourse.SiteSettings[configKey].length > 0) {
transition.abort();
DiscourseURL.redirectTo(Discourse.SiteSettings[configKey]);
}
},
activate() {
this._super(...arguments);
jumpToElement(document.location.hash.substr(1));
},
model() {
return StaticPage.find(page);
},
setupController(controller, model) {
this.controllerFor("static").set("model", model);
},
titleToken() {
return I18n.t(page);
},
actions: {
didTransition() {
this.controllerFor("application").set("showFooter", true);
return true;
}
}
});
}