Merge branch 'development' of https://github.com/crtaylor123/KiwiIRC into crtaylor123...
[KiwiIRC.git] / client / src / models / pluginmanager.js
CommitLineData
eaaf73b0 1_kiwi.model.PluginManager = Backbone.Model.extend({\r
890a9b91 2 initialize: function () {\r
f66c4823
D
3 this.$plugin_holder = $('<div id="kiwi_plugins" style="display:none;"></div>')\r
4 .appendTo(_kiwi.app.view.$el);\r
6b8fbed0
D
5\r
6 this.loading_plugins = 0;\r
890a9b91
D
7 this.loaded_plugins = {};\r
8 },\r
9\r
10 // Load an applet within this panel\r
11 load: function (url) {\r
6b8fbed0
D
12 var that = this;\r
13\r
890a9b91
D
14 if (this.loaded_plugins[url]) {\r
15 this.unload(url);\r
16 }\r
17\r
6b8fbed0
D
18 this.loading_plugins++;\r
19\r
890a9b91
D
20 this.loaded_plugins[url] = $('<div></div>');\r
21 this.loaded_plugins[url].appendTo(this.$plugin_holder)\r
6b8fbed0 22 .load(url, _.bind(that.pluginLoaded, that));\r
890a9b91
D
23 },\r
24\r
25\r
26 unload: function (url) {\r
27 if (!this.loaded_plugins[url]) {\r
28 return;\r
29 }\r
30\r
31 this.loaded_plugins[url].remove();\r
32 delete this.loaded_plugins[url];\r
6b8fbed0
D
33 },\r
34\r
35\r
36 // Called after each plugin is loaded\r
37 pluginLoaded: function() {\r
38 this.loading_plugins--;\r
39\r
40 if (this.loading_plugins === 0) {\r
41 this.trigger('loaded');\r
42 }\r
43 },\r
890a9b91 44});