REFACTOR: Remove container from raw template helper
This commit is contained in:
parent
e08545cf99
commit
20e1233f89
|
@ -1,36 +1,23 @@
|
|||
import { registerUnbound } from "discourse-common/lib/helpers";
|
||||
import { registerUnbound, helperContext } from "discourse-common/lib/helpers";
|
||||
import { findRawTemplate } from "discourse-common/lib/raw-templates";
|
||||
import { htmlSafe } from "@ember/template";
|
||||
import { setOwner } from "@ember/application";
|
||||
|
||||
let _injections;
|
||||
|
||||
function renderRaw(ctx, container, template, templateName, params) {
|
||||
function renderRaw(ctx, template, templateName, params) {
|
||||
params = jQuery.extend({}, params);
|
||||
params.parent = params.parent || ctx;
|
||||
|
||||
if (!_injections) {
|
||||
_injections = {
|
||||
siteSettings: container.lookup("site-settings:main"),
|
||||
currentUser: container.lookup("current-user:main"),
|
||||
site: container.lookup("site:main"),
|
||||
session: container.lookup("session:main"),
|
||||
topicTrackingState: container.lookup("topic-tracking-state:main")
|
||||
};
|
||||
setOwner(_injections, container);
|
||||
}
|
||||
|
||||
let context = helperContext();
|
||||
if (!params.view) {
|
||||
const module = `discourse/raw-views/${templateName}`;
|
||||
if (requirejs.entries[module]) {
|
||||
const viewClass = requirejs(module, null, null, true);
|
||||
if (viewClass && viewClass.default) {
|
||||
params.view = viewClass.default.create(params, _injections);
|
||||
params.view = viewClass.default.create(params, context);
|
||||
}
|
||||
}
|
||||
|
||||
if (!params.view) {
|
||||
params = jQuery.extend({}, params, _injections);
|
||||
params = jQuery.extend({}, params, context);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -40,12 +27,11 @@ function renderRaw(ctx, container, template, templateName, params) {
|
|||
registerUnbound("raw", function(templateName, params) {
|
||||
templateName = templateName.replace(".", "/");
|
||||
|
||||
const container = Discourse.__container__;
|
||||
const template = findRawTemplate(templateName);
|
||||
if (!template) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn("Could not find raw template: " + templateName);
|
||||
return;
|
||||
}
|
||||
return renderRaw(this, container, template, templateName, params);
|
||||
return renderRaw(this, template, templateName, params);
|
||||
});
|
||||
|
|
|
@ -5,6 +5,7 @@ import {
|
|||
import RawHandlebars from "discourse-common/lib/raw-handlebars";
|
||||
import { registerRawHelpers } from "discourse-common/lib/raw-handlebars-helpers";
|
||||
import Handlebars from "handlebars";
|
||||
import { setOwner } from "@ember/application";
|
||||
|
||||
export function autoLoadModules(container, registry) {
|
||||
Object.keys(requirejs.entries).forEach(entry => {
|
||||
|
@ -15,10 +16,19 @@ export function autoLoadModules(container, registry) {
|
|||
requirejs(entry, null, null, true);
|
||||
}
|
||||
});
|
||||
let siteSettings = container.lookup("site-settings:main");
|
||||
let themeSettings = container.lookup("service:theme-settings");
|
||||
let keyValueStore = container.lookup("key-value-store:main");
|
||||
createHelperContext({ siteSettings, themeSettings, keyValueStore });
|
||||
|
||||
let context = {
|
||||
siteSettings: container.lookup("site-settings:main"),
|
||||
themeSettings: container.lookup("service:theme-settings"),
|
||||
keyValueStore: container.lookup("key-value-store:main"),
|
||||
currentUser: container.lookup("current-user:main"),
|
||||
site: container.lookup("site:main"),
|
||||
session: container.lookup("session:main"),
|
||||
topicTrackingState: container.lookup("topic-tracking-state:main")
|
||||
};
|
||||
setOwner(context, container);
|
||||
|
||||
createHelperContext(context);
|
||||
registerHelpers(registry);
|
||||
registerRawHelpers(RawHandlebars, Handlebars);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue