Merge "YangUI & YangViz bugfixes"
[dlux.git] / modules / yangui-resources / src / main / resources / yangui / pluginHandler.services.js
1 var pluginsFactories = [\r
2   'displayTopology',\r
3   'checkFlow',\r
4   'displayMountPoints'\r
5 ];\r
6 \r
7 var pluginContollers = [\r
8   'cvTopology'\r
9 ];\r
10 \r
11 define(['app/yangui/yangui.module', 'common/yangutils/yangutils.services'].concat(pluginsFactories.map(function(plugin) {\r
12     return 'app/yangui/cf/'+plugin+'.services';\r
13 })).concat(pluginContollers.map(function(ctrl) {\r
14     return 'app/yangui/cf/cv/'+ctrl+'.controller';\r
15 })), function(yangui, yangutils) {\r
16 \r
17   yangui.register.factory('pluginHandler', function($http, $injector, reqBuilder, custFunct, yangUtils, displayTopology, checkFlow) {\r
18 \r
19     var pluginHandler = {\r
20         plugins: [],\r
21         addPlugins: function() {\r
22           var self = this;\r
23 \r
24           pluginsFactories.forEach(function(pluginFactFullName) {\r
25             var pluginServiceName = pluginFactFullName.split('/');\r
26                 pluginName = pluginServiceName[pluginServiceName.length - 1].split('.')[0];\r
27 \r
28             $injector.invoke([pluginName, function(pluginFact) {\r
29               self.plugins.push(pluginFact);\r
30             }]);\r
31           });\r
32           \r
33         },\r
34         plugAll: function(apis) {\r
35           this.plugins.forEach(function(plugin) {\r
36             console.info('adding plugin',plugin);\r
37             plugin.module.forEach(function(plModule, i){\r
38                 custFunct.createCustomFunctionalityApis(apis, plModule, plugin.revision, plugin.pathString[i], plugin.label, plugin.getCallback, plugin.view, plugin.hideButtonOnSelect);\r
39             });\r
40           });\r
41         }\r
42     };\r
43 \r
44     pluginHandler.addPlugins();\r
45     \r
46     return pluginHandler;\r
47   });\r
48 \r
49 });