Commit | Line | Data |
---|---|---|
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 | }); |