diff --git a/app/assets/javascripts/discourse-plugins/colocated-template-compiler.js b/app/assets/javascripts/discourse-plugins/colocated-template-compiler.js new file mode 100644 index 00000000000..2cc0759cf38 --- /dev/null +++ b/app/assets/javascripts/discourse-plugins/colocated-template-compiler.js @@ -0,0 +1,19 @@ +const ColocatedTemplateProcessor = require("ember-cli-htmlbars/lib/colocated-broccoli-plugin"); + +module.exports = class DiscoursePluginColocatedTemplateProcessor extends ( + ColocatedTemplateProcessor +) { + detectRootName() { + const entries = this.currentEntries().filter((e) => !e.isDirectory()); + + const path = entries[0]?.relativePath; + + const match = path?.match( + /^discourse\/plugins\/(?[^/]+)\/discourse\// + ); + + if (match) { + return `discourse/plugins/${match.groups.name}/discourse`; + } + } +}; diff --git a/app/assets/javascripts/discourse-plugins/index.js b/app/assets/javascripts/discourse-plugins/index.js index 0f3612cbfe3..996f6f08d9b 100644 --- a/app/assets/javascripts/discourse-plugins/index.js +++ b/app/assets/javascripts/discourse-plugins/index.js @@ -7,6 +7,7 @@ const mergeTrees = require("broccoli-merge-trees"); const fs = require("fs"); const concat = require("broccoli-concat"); const RawHandlebarsCompiler = require("discourse-hbr/raw-handlebars-compiler"); +const DiscoursePluginColocatedTemplateProcessor = require("./colocated-template-compiler"); function fixLegacyExtensions(tree) { return new Funnel(tree, { @@ -169,6 +170,8 @@ module.exports = { tree = namespaceModules(tree, pluginName); tree = RawHandlebarsCompiler(tree); + + tree = new DiscoursePluginColocatedTemplateProcessor(tree); tree = this.compileTemplates(tree); tree = this.processedAddonJsFiles(tree); diff --git a/plugins/discourse-presence/assets/javascripts/discourse/templates/components/composer-presence-display.hbs b/plugins/discourse-presence/assets/javascripts/discourse/components/composer-presence-display.hbs similarity index 100% rename from plugins/discourse-presence/assets/javascripts/discourse/templates/components/composer-presence-display.hbs rename to plugins/discourse-presence/assets/javascripts/discourse/components/composer-presence-display.hbs diff --git a/plugins/discourse-presence/assets/javascripts/discourse/templates/components/topic-presence-display.hbs b/plugins/discourse-presence/assets/javascripts/discourse/components/topic-presence-display.hbs similarity index 100% rename from plugins/discourse-presence/assets/javascripts/discourse/templates/components/topic-presence-display.hbs rename to plugins/discourse-presence/assets/javascripts/discourse/components/topic-presence-display.hbs diff --git a/plugins/discourse-presence/assets/javascripts/discourse/templates/connectors/before-composer-controls/presence.hbs b/plugins/discourse-presence/assets/javascripts/discourse/connectors/before-composer-controls/presence.hbs similarity index 100% rename from plugins/discourse-presence/assets/javascripts/discourse/templates/connectors/before-composer-controls/presence.hbs rename to plugins/discourse-presence/assets/javascripts/discourse/connectors/before-composer-controls/presence.hbs diff --git a/plugins/discourse-presence/assets/javascripts/discourse/templates/connectors/topic-above-footer-buttons/presence.hbs b/plugins/discourse-presence/assets/javascripts/discourse/connectors/topic-above-footer-buttons/presence.hbs similarity index 100% rename from plugins/discourse-presence/assets/javascripts/discourse/templates/connectors/topic-above-footer-buttons/presence.hbs rename to plugins/discourse-presence/assets/javascripts/discourse/connectors/topic-above-footer-buttons/presence.hbs