Merge "BUG3517 - switched sigma topology to jointjs"
[groupbasedpolicy.git] / groupbasedpolicy-ui / module / src / main / resources / gbp / gbp.controller.js
index bce117414087161048f185928916bf24e5953c60..d139f9cff7d848d4966fcd04105c5b8e5c03d279 100755 (executable)
@@ -344,7 +344,7 @@ define(modules, function(gbp) {
 \r
                 providers.forEach(function(p) {\r
                     p.contract.forEach(function(con) {\r
-                        providerLinkItems.push(JointGraphFactory.createLink(epgItem.id, contracts[con].id, 'blue'));    \r
+                        providerLinkItems.push(JointGraphFactory.createLink(epgItem.id, contracts[con].id, 'blue'));\r
                     });\r
                 });\r
 \r
@@ -607,6 +607,7 @@ define(modules, function(gbp) {
                         JointGraphOffsetFactory.checkObjsHoffsets(itemsArray.subject ,offsetHobj.pEpg, paper);\r
                         offsetHobj.subject = JointGraphOffsetFactory.getCurrentOffset(itemsArray.subject, 'y');\r
                         JointGraphOffsetFactory.checkObjsHoffsets(itemsArray.cEpg ,offsetHobj.subject, paper);\r
+\r
                     }, function(){});\r
 \r
                 }\r
@@ -810,14 +811,17 @@ define(modules, function(gbp) {
             // init();\r
     }]);\r
 \r
-    gbp.register.controller('policyRendererCtrl', ['$scope', '$http', '$timeout', 'PGNServices', 'TopoServices', 'GBPTenantServices', 'GBPConstants',\r
-        function ($scope, $http, $timeout, PGNServices, TopoServices, GBPTenantServices, GBPConstants) {\r
+    gbp.register.controller('policyRendererCtrl', ['$scope', '$http', '$timeout', 'PGNServices', 'TopoServices', 'GBPTenantServices', 'GBPConstants', 'JointGraphFactory','GBPJointGraphBuilder',\r
+        function ($scope, $http, $timeout, PGNServices, TopoServices, GBPTenantServices, GBPConstants, JointGraphFactory, GBPJointGraphBuilder) {\r
             \r
             $scope.topologyData = { nodes: [], links: [] };\r
             $scope.topologyType = null;\r
+            $scope.topologyArgs = {};\r
             $scope.legend = {};\r
             $scope.showLegend = false;\r
 \r
+            var paper = JointGraphFactory.createGraph();\r
+\r
             var reloadShowLegend = function() {\r
                 $scope.showLegend = !$.isEmptyObject($scope.legend);\r
             };\r
@@ -838,67 +842,38 @@ define(modules, function(gbp) {
                 button: false\r
             };\r
 \r
-\r
-            // $scope.selectedTenant = null;\r
+            paper.on('cell:pointerdown', function(cellView, evt) {\r
+                if (cellView.model.isLink() && cellView.model.attributes.objData) {\r
+                    $scope.$broadcast('SET_LINK_DATA', cellView.model.attributes.objData);\r
+                }\r
+            });\r
 \r
             $scope.mandatoryProperties = [];\r
             $scope.loadTopology = function(type, args) {\r
-                if ( $scope.selectedTenant  ) {\r
-\r
-                    $scope.topologyData = { nodes: [], links: [] };\r
+                if ($scope.selectedTenant) {\r
                     $scope.topologyType = type;\r
-\r
-                    TopoServices.loadTopology(type, function(nodes, links) {\r
-                        $scope.topologyData = { nodes: nodes, links: links };\r
-                        $scope.viewTopo.box = true;\r
-                        $scope.viewTopo.button = type !== GBPConstants.strings.l2l3 && type !== null ? true : false;\r
-                        $scope.legend = TopoServices.getLegend(type);\r
-                        reloadShowLegend();\r
-                    }, function() {\r
-                        $scope.legend = {};\r
-                        reloadShowLegend();\r
-                    }, args);\r
-\r
+                    $scope.topologyArgs = args;\r
+                    GBPJointGraphBuilder.loadTopology(args, paper, type);\r
                 }\r
             };\r
-\r
-            $scope.topologyCustfunc = function(sigmaIstance, getSlowDownNum, dragListener, resize){\r
-\r
-                sigmaIstance.bind('clickStage', function(e){\r
-                  sigmaIstance.killForceAtlas2();\r
-                });\r
-\r
-                // Bind the events:\r
-                // sigmaIstance.bind('overNode outNode clickNode doubleClickNode rightClickNode', function(e) {\r
-                //   console.log(e.type, e.data.node.label, e.data.captor);\r
-                // });\r
-                // sigmaIstance.bind('overEdge outEdge clickEdge doubleClickEdge rightClickEdge', function(e) {\r
-                //   console.log(e.type, e.data.edge, e.data.captor);\r
-                // });\r
-                // sigmaIstance.bind('clickStage', function(e) {\r
-                //   console.log(e.type, e.data.captor);\r
-                // });\r
-                // sigmaIstance.bind('doubleClickStage rightClickStage', function(e) {\r
-                //   console.log(e.type, e.data.captor);\r
-                // });\r
-\r
-              };\r
-\r
             $scope.toggleExpanded = function(expand, show) {\r
                 $scope.setViewExpand('policyRendererView',expand, show, 'l2');\r
 \r
-                if($scope.policyRendererView[expand]) {\r
+                if($scope.policyRendererView[expand] && $scope.selectedTenant) {\r
+                    $scope.topologyArgs.tenantId = $scope.selectedTenant.id;\r
+\r
                     if((expand === 'epg' || expand === 'contracts' || expand === 'classifiers' || expand === 'actions' || expand === 'renderers') && ($scope.topologyType !== GBPConstants.strings.config)) {\r
-                        $scope.loadTopology(GBPConstants.strings.config, { tenantId: $scope.selectedTenant ? $scope.selectedTenant.id : null, storage: 'config' });\r
+                        $scope.loadTopology(GBPConstants.strings.config, $scope.topologyArgs);\r
                     } else if((expand === 'l2l3' || expand === 'registerEndpoint' || expand === 'registerL3PrefixEndpoint') && ($scope.topologyType !== GBPConstants.strings.l2l3)) {\r
-                        $scope.loadTopology(GBPConstants.strings.l2l3, { tenantId: $scope.selectedTenant ? $scope.selectedTenant.id : null });\r
+                        $scope.loadTopology(GBPConstants.strings.l2l3, $scope.topologyArgs);\r
                     }\r
                 }\r
             };\r
 \r
-            $scope.loadTopo = function() {\r
+            $scope.reloadTopo = function() {\r
                 if($scope.selectedTenant) {\r
-                    $scope.loadTopology($scope.topologyType, { tenantId: $scope.selectedTenant.id });\r
+                    $scope.topologyArgs.tenantId = $scope.selectedTenant.id;\r
+                    GBPJointGraphBuilder.loadTopology($scope.topologyArgs, paper, $scope.topologyType);\r
                 }\r
             };\r
 \r
@@ -936,13 +911,9 @@ define(modules, function(gbp) {
 \r
     }]);\r
 \r
-    gbp.register.controller('topoDataCtrl',['$scope', 'TopoServices',  function($scope, TopoServices){\r
+    gbp.register.controller('linkDataCtrl',['$scope', function($scope){\r
         $scope.showTable = false;\r
 \r
-        $scope.getConsProvLabel = function(edge){\r
-            return TopoServices.getConsProvLabel(edge, $scope.topologyData);\r
-        };\r
-\r
         $scope.show = function(){\r
             $scope.showTable = true;\r
         };\r
@@ -950,6 +921,12 @@ define(modules, function(gbp) {
         $scope.close = function(){\r
             $scope.showTable = false;\r
         };\r
+        \r
+        $scope.$on('SET_LINK_DATA', function(e, obj){\r
+           $scope.linkData = obj;\r
+           $scope.show();\r
+           $scope.$apply();\r
+        });\r
     }]);\r
 \r
     gbp.register.controller('crudCtrl',['$scope',  function($scope){\r
@@ -1910,6 +1887,7 @@ define(modules, function(gbp) {
                     $scope.internalView.epg = false;\r
                     $scope.reloadNewObj();\r
                     $scope.internalView.edit = "view";\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -1922,6 +1900,7 @@ define(modules, function(gbp) {
                 GBPEpgServices.delete(path, function(data){\r
                     $scope.init();\r
                     $scope.internalView.epg = false;\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2047,6 +2026,7 @@ define(modules, function(gbp) {
                     $scope.internalView.cns = false;\r
                     $scope.internalView.cns = "view";\r
                     $scope.reloadNewObj();\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2058,6 +2038,7 @@ define(modules, function(gbp) {
                 path = GBPConNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id, $scope.selectedCNS.name);\r
                 GBPConNamedSelServices.delete(path, function(data){\r
                     $scope.init();\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2175,6 +2156,7 @@ define(modules, function(gbp) {
                     $scope.internalView.pns = false;\r
                     $scope.reloadNewObj();\r
                     $scope.internalView.cns = "view";\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2186,6 +2168,7 @@ define(modules, function(gbp) {
                 path = GBPProNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id, $scope.selectedPNS.name);\r
                 GBPProNamedSelServices.delete(path, function(data){\r
                     $scope.init();\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2300,6 +2283,8 @@ define(modules, function(gbp) {
                     $scope.view.l2flood = false;\r
                     $scope.view.edit = "view";\r
                     $scope.sendReloadEventFromRoot('GBP_L2FLOOD_RELOAD');\r
+\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2314,6 +2299,8 @@ define(modules, function(gbp) {
                     $scope.view.l2flood = false;\r
                     $scope.view.edit = "view";\r
                     $scope.sendReloadEventFromRoot('GBP_L2FLOOD_RELOAD');\r
+\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2439,6 +2426,8 @@ define(modules, function(gbp) {
                     $scope.view.l2bridge = false;\r
                     $scope.view.edit = "view";\r
                     $scope.sendReloadEventFromRoot('GBP_L2BRIDGE_RELOAD');\r
+\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2453,6 +2442,8 @@ define(modules, function(gbp) {
                     $scope.view.l2bridge = false;\r
                     $scope.view.edit = "view";\r
                     $scope.sendReloadEventFromRoot('GBP_L2BRIDGE_RELOAD');\r
+\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2561,6 +2552,8 @@ define(modules, function(gbp) {
                     $scope.view.l3context = false;\r
                     $scope.view.edit = "view";\r
                     $scope.sendReloadEventFromRoot('GBP_L3CONTEXT_RELOAD');\r
+\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2575,6 +2568,8 @@ define(modules, function(gbp) {
                     $scope.view.l3context = false;\r
                     $scope.view.edit = "view";\r
                     $scope.sendReloadEventFromRoot('GBP_L3CONTEXT_RELOAD');\r
+\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2710,6 +2705,8 @@ define(modules, function(gbp) {
                     $scope.init();\r
                     $scope.view.subnet = false;\r
                     $scope.view.edit = "view";\r
+\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -2723,6 +2720,8 @@ define(modules, function(gbp) {
                     $scope.init();\r
                     $scope.view.subnet = false;\r
                     $scope.view.edit = "view";\r
+\r
+                    $scope.reloadTopo();\r
                 }, function(){\r
                     //TODO: error cbk\r
                 });\r
@@ -3884,6 +3883,7 @@ define(modules, function(gbp) {
             GBPTenantServices.send(path, $scope.tenant, function(data){\r
                 $scope.wizards.accessModelWizard = false;\r
                 $scope.sendReloadEventFromRoot('GBP_GLOBAL_TENANT_RELOAD');\r
+                $scope.reloadTopo();\r
             }, function(){\r
                 //TODO: error cbk\r
             });\r