SFC topology
[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', '$mdDialog', 'EpgService', 'NextTopologyService'];
7
8     /* @ngInject */
9     function ResolvedPolicyController($rootScope, $scope, $mdDialog, EpgService,  NextTopologyService) {
10
11         $scope.reloadTopology = reloadTopology;
12
13         $scope.cbkFunctions = {
14             clickNode: function(node){
15                 var epg = EpgService.createObject();
16
17                 epg.get(node['_data-id'], node['_model']['_data']['tenantId'], 'operational', function() {
18                     $scope.openSidePanel('resolved-policy/epg-sidepanel', epg, null);
19                 });
20
21                 $scope.$apply();
22                 $scope.parentTenant = node['_model']['_data']['tenantId'];
23
24                 NextTopologyService.highlightNode($rootScope.nxTopology, node['_data-id']);
25             },
26             clickLink: function(link){
27                 var resolvedContract = $scope.resolvedPolicy[link['_model']['_data'].id];
28                 resolvedContract.linkId = link['_model']['_data'].id;
29                 $scope.openSidePanel('resolved-policy/contract-sidepanel', resolvedContract, null);
30                 $scope.$apply();
31
32                 NextTopologyService.highlightLink($rootScope.nxTopology, link['_model']['_data'].id);
33             },
34             topologyGenerated: function(){
35             }
36         };
37
38         function openSfcDialog(chainName) {
39             $mdDialog.show({
40                 clickOutsideToClose: true,
41                 controller: 'SfcTopologyController',
42                 preserveScope: true,
43                 templateUrl: $scope.viewPath + 'sfc/dialog-sfc-topology.tpl.html',
44                 parent: angular.element(document.body),
45                 scope: $scope,
46                 locals: {
47                     chainName: chainName,
48                 },
49             });
50         }
51
52         function reloadTopology() {
53             $scope.fillTopologyData();
54         }
55
56         $scope.$watch('nxTopology', function() {
57             $rootScope.nxTopology = $scope.nxTopology;
58         });
59     }
60
61 });
62