FEATURE: Site Customizations can use the plugin api

This commit is contained in:
Robin Ward
2016-03-18 14:41:27 -04:00
parent a7eec3da5c
commit b4f306ce03
4 changed files with 86 additions and 2 deletions

View File

@ -6,6 +6,8 @@ define('ember', ['exports'], function(__exports__) {
__exports__.default = Ember;
});
var _pluginCallbacks = [];
window.Discourse = Ember.Application.createWithMixins(Discourse.Ajax, {
rootElement: '#main',
_docTitle: document.title,
@ -127,6 +129,18 @@ window.Discourse = Ember.Application.createWithMixins(Discourse.Ajax, {
}
});
// Plugins that are registered via `<script>` tags.
var withPluginApi = require('discourse/lib/plugin-api').withPluginApi;
var initCount = 0;
_pluginCallbacks.forEach(function(cb) {
Discourse.instanceInitializer({
name: "_discourse_plugin_" + (++initCount),
after: 'inject-objects',
initialize: function() {
withPluginApi(cb.version, cb.code);
}
});
});
},
requiresRefresh: function(){
@ -134,6 +148,9 @@ window.Discourse = Ember.Application.createWithMixins(Discourse.Ajax, {
return desired && Discourse.get("currentAssetVersion") !== desired;
}.property("currentAssetVersion", "desiredAssetVersion"),
_registerPluginCode(version, code) {
_pluginCallbacks.push({ version: version, code: code });
},
assetVersion: Ember.computed({
get: function() {