plugins: make PluginManager dependent of userPlugins and register them at runtime
This commit is contained in:
parent
e457e96cd6
commit
7b701079f4
|
@ -1,22 +1,23 @@
|
||||||
var plugins = angular.module('plugins', []);
|
plugins = angular.module('plugins', []);
|
||||||
|
|
||||||
|
var Plugin = function(contentForMessage) {
|
||||||
plugins.service('plugins', function() {
|
|
||||||
|
|
||||||
this.Plugin = function(contentForMessage) {
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
contentForMessage: contentForMessage,
|
contentForMessage: contentForMessage,
|
||||||
exclusive: false,
|
exclusive: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
plugins.service('plugins', ['userPlugins', function(userPlugins) {
|
||||||
|
|
||||||
|
|
||||||
var PluginManagerObject = function() {
|
var PluginManagerObject = function() {
|
||||||
|
|
||||||
var plugins = [];
|
var plugins = [];
|
||||||
|
var registerPlugins = function(userPlugins) {
|
||||||
var addPlugin = function(plugin) {
|
for (var i = 0; i < userPlugins.length; i++) {
|
||||||
plugins.push(plugin);
|
plugins.push(userPlugins[i]);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var contentForMessage = function(message) {
|
var contentForMessage = function(message) {
|
||||||
|
@ -25,7 +26,8 @@ plugins.service('plugins', function() {
|
||||||
for (var i = 0; i < plugins.length; i++) {
|
for (var i = 0; i < plugins.length; i++) {
|
||||||
var pluginContent = plugins[i].contentForMessage(message);
|
var pluginContent = plugins[i].contentForMessage(message);
|
||||||
if (pluginContent) {
|
if (pluginContent) {
|
||||||
var pluginContent = {'visible': false, 'content': pluginContent }
|
var pluginContent = {'visible': false,
|
||||||
|
'content': pluginContent }
|
||||||
content.push(pluginContent);
|
content.push(pluginContent);
|
||||||
|
|
||||||
if (plugins[i].exclusive) {
|
if (plugins[i].exclusive) {
|
||||||
|
@ -33,20 +35,17 @@ plugins.service('plugins', function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
addPlugin: addPlugin,
|
registerPlugins: registerPlugins,
|
||||||
contentForMessage: contentForMessage
|
contentForMessage: contentForMessage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.PluginManager = new PluginManagerObject();
|
this.PluginManager = new PluginManagerObject();
|
||||||
|
this.PluginManager.registerPlugins(userPlugins.plugins);
|
||||||
});
|
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
plugins.factory('userPlugins', function() {
|
plugins.factory('userPlugins', function() {
|
||||||
|
|
Loading…
Reference in New Issue