Yangman - request header
[dlux.git] / modules / yangman-resources / src / main / resources / yangman / controllers / modules-list.controller.js
1 define([], function () {
2     'use strict';
3
4     angular.module('app.yangman').controller('ModulesListCtrl', ModulesListCtrl);
5
6     ModulesListCtrl.$inject = ['$scope', '$mdToast', 'YangUtilsService', '$filter'];
7
8     function ModulesListCtrl($scope, $mdToast, YangUtilsService, $filter) {
9         var modulesList = this;
10
11         modulesList.treeApis = [];
12         modulesList.showLoadingBox = true;
13
14         // methods
15         modulesList.setDataStore = setDataStore;
16         modulesList.setModule = setModule;
17
18         /**
19          * Initialization
20          */
21         function init(){
22             loadApis();
23         }
24
25         init();
26
27         /**
28          * Load apis and modules
29          */
30         function loadApis() {
31             modulesList.allNodes = [];
32             modulesList.treeApis = [];
33
34             modulesList.showLoadingBox = true;
35
36             YangUtilsService.generateNodesToApis(function (apis, allNodes, augGroups) {
37                 $scope.setGlobalParams(apis, augGroups);
38                 modulesList.allNodes = allNodes;
39                 // console.info('INFO :: got data', apis, modulesList.allNodes, modulesList.augmentations);
40                 modulesList.treeApis = YangUtilsService.generateApiTreeData(apis);
41                  //console.info('INFO :: tree api', modulesList.treeApis);
42                 // $scope.processingModulesSuccessCallback();
43                 modulesList.showLoadingBox = false;
44                 showToastInfoBox('YANGMAN_LOADED_MODULES');
45
46                 // $scope.$broadcast('LOAD_REQ_DATA');
47             }, function () {
48                 showToastInfoBox('YANGMAN_LOADED_MODULES_ERROR');
49                 modulesList.showLoadingBox = false;
50             });
51         }
52
53         /**
54          * Set and expand module in tree
55          */
56         function setModule(module, e){
57             if ( $(e.target).hasClass('top-element') ) {
58                 module.expanded = !module.expanded;
59                 $scope.setModule(module);
60             }
61         }
62
63         /**
64          * Set data store || rpc
65          * @param dataStore
66          * @param module
67          */
68         function setDataStore(dataStore, module){
69             $scope.setModule(module);
70             $scope.setDataStore(dataStore, true);
71         }
72
73         /**
74          * Method for showing toast box
75          * @param text
76          */
77         function showToastInfoBox(text){
78             $mdToast.show(
79                 $mdToast.simple()
80                     .textContent($filter('translate')(text))
81                     .position('bottom left')
82                     .hideDelay(3000)
83             );
84         }
85
86         // watcher
87
88         $scope.$on('YANGMAN_GET_API_TREE_DATA', function (event, args) {
89             (args.cbk || angular.noop)(modulesList.treeApis);
90         });
91     }
92
93 });