Resolved policy sidepanel
[groupbasedpolicy.git] / groupbasedpolicy-ui / module / src / main / resources / gbp / resolved-policy / resolved-policy.controller.js
1 define(['app/gbp/resolved-policy/resolved-policy.service'], function () {
2     'use strict';
3
4     angular.module('app.gbp').controller('ResolvedPolicyController', ResolvedPolicyController);
5
6     ResolvedPolicyController.$inject = ['$rootScope', '$scope', 'ResolvedPolicyService', 'EpgService', 'EpgListService', 'ContractService', 'NextTopologyService'];
7
8     /* @ngInject */
9     function ResolvedPolicyController($rootScope, $scope, ResolvedPolicyService, EpgService, EpgListService, ContractService, NextTopologyService) {
10         $scope.cbkFunctions = {
11             clickNode: function(node){
12                 var epg = EpgService.createObject();
13                 epg.get(node['_data-id'], node['_model']['_data']['tenantId'], 'operational', function() {
14                     $scope.openSidePanel('resolved-policy/epg-sidepanel', epg, null);
15                 });
16                 $scope.$apply();
17                 $scope.parentTenant = node['_model']['_data']['tenantId'];
18
19                 NextTopologyService.highlightNode($rootScope.nxTopology, node['_data-id']);
20                 // //Example of highlighting
21                 // NextTopologyService.highlightNode($scope.nxTopology, 1);
22                 // NextTopologyService.highlightNode($scope.nxTopology, 1, true); //without links around
23                 // NextTopologyService.highlightLink($scope.nxTopology, '1-7');
24                 // NextTopologyService.highlightPath($scope.nxTopology, [array of links obj]);
25
26                 // //Fade out or in whole topology
27                 // NextTopologyService.fadeOutAllLayers();
28                 // NextTopologyService.fadeInAllLayers();
29             },
30             clickLink: function(link){
31                 var resolvedContract = $scope.resolvedPolicy[link['_model']['_data'].id];
32                 resolvedContract.linkId = link['_model']['_data'].id;
33                 $scope.openSidePanel('resolved-policy/contract-sidepanel', resolvedContract, null);
34                 $scope.$apply();
35
36                 NextTopologyService.highlightLink($rootScope.nxTopology, link['_model']['_data'].id);
37             },
38             topologyGenerated: function(){
39             }
40         };
41
42         $scope.$watch('nxTopology', function() {
43             $rootScope.nxTopology = $scope.nxTopology;
44         });
45     }
46
47 });
48