plugins: create PluginManager service

with-route-provider
David Cormier 12 years ago
parent 1fd6e1b0b6
commit cc2eda7057
  1. 47
      js/plugins.js
  2. 4
      js/websockets.js

@ -10,41 +10,42 @@ plugins.service('plugins', function() {
exclusive: false,
}
}
});
plugins.factory('pluginManager', ['youtubePlugin', 'urlPlugin', 'imagePlugin', function(youtubePlugin, urlPlugin, imagePlugin) {
var PluginManagerObject = function() {
var plugins = [youtubePlugin, urlPlugin, imagePlugin]
var plugins = [];
var hookPlugin = function(plugin) {
plugins.push(plugin);
}
var addPlugin = function(plugin) {
plugins.push(plugin);
}
var contentForMessage = function(message) {
var contentForMessage = function(message) {
var content = [];
for (var i = 0; i < plugins.length; i++) {
var pluginContent = plugins[i].contentForMessage(message);
if (pluginContent) {
var pluginContent = {'visible': false, 'content': pluginContent }
content.push(pluginContent);
var content = [];
for (var i = 0; i < plugins.length; i++) {
var pluginContent = plugins[i].contentForMessage(message);
if (pluginContent) {
var pluginContent = {'visible': false, 'content': pluginContent }
content.push(pluginContent);
if (plugins[i].exclusive) {
break;
if (plugins[i].exclusive) {
break;
}
}
}
return content;
}
return content;
return {
addPlugin: addPlugin,
contentForMessage: contentForMessage
}
}
return {
hookPlugin: hookPlugin,
contentForMessage: contentForMessage
}
this.PluginManager = new PluginManagerObject();
});
}]);

@ -110,7 +110,7 @@ weechat.factory('colors', [function($scope) {
}]);
weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'pluginManager', function($rootScope, colors, models, pluginManager) {
weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'plugins', function($rootScope, colors, models, plugins) {
var handleBufferClosing = function(message) {
var bufferMessage = message['objects'][0]['content'][0];
@ -124,7 +124,7 @@ weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'pluginManager',
var message = new models.BufferLine(message);
var buffer = models.getBuffer(message.buffer);
message.metadata = pluginManager.contentForMessage(message.text);
message.metadata = plugins.PluginManager.contentForMessage(message.text);
buffer.addLine(message);
if (!buffer.active) {

Loading…
Cancel
Save