1 var modules = ['app/gbp/gbp.module',
\r
2 'app/gbp/gbp.services'
\r
6 define(modules, function(gbp) {
\r
8 gbp.register.controller('gbpCtrl', ['$scope', '$rootScope', 'GBPTenantServices','DesignGbpFactory', 'GBPConstants',
\r
9 function ($scope, $rootScope, GBPTenantServices, DesignGbpFactory, GBPConstants) {
\r
10 $rootScope['section_logo'] = 'logo_gbp';
\r
11 $scope.view_path = 'src/app/gbp/views/';
\r
15 'policy-renderer': false,
\r
19 $scope.policyRendererView = {
\r
31 registerEndpoint : false,
\r
32 registerL3PrefixEndpoint : false
\r
35 $scope.subMenuView = {
\r
43 $scope.breadcrumbs = {'l1' : null,
\r
48 accessModelWizard: false,
\r
49 actionReferenceWizard: false
\r
52 $scope.setBreadcrumb = function(level, label, visible){
\r
53 $scope.breadcrumbs[level] = visible ? label : null;
\r
55 $scope.breadcrumbs.l2 = null;
\r
56 $scope.breadcrumbs.l3 = null;
\r
59 $scope.breadcrumbs.l3 = null;
\r
63 $scope.setViewExpand = function(menu, expand, show){
\r
64 $scope[menu][expand] = show ? true : !$scope[menu][expand];
\r
65 for ( var property in $scope[menu] ) {
\r
66 $scope[menu][property] = expand !== property ? false : $scope[menu][expand];
\r
71 $scope.toggleExpandedMM = function(expand, show, broadcast){
\r
72 $scope.setViewExpand('mainView',expand, show);
\r
75 $scope.$broadcast(broadcast);
\r
79 $scope.sliceLabel = function(label){
\r
80 return label.length > GBPConstants.numbers.displayLabelLength ? label.slice(0,GBPConstants.numbers.displayLabelLength)+'...' : label;
\r
83 $scope.getDisplayLabel = function(obj, labelArray, dontSlice){
\r
86 if((typeof labelArray) === 'string'){
\r
87 ret = obj[labelArray];
\r
88 } else if (angular.isFunction(labelArray)) {
\r
89 ret = labelArray(obj);
\r
91 labelArray.some(function(labelParam) {
\r
92 if(angular.isFunction(labelParam)) {
\r
93 ret = labelParam(obj);
\r
94 } else if(obj.hasOwnProperty(labelParam)) {
\r
95 ret = obj[labelParam];
\r
101 return dontSlice ? ret : $scope.sliceLabel(ret);
\r
105 $scope.tenantList = [];
\r
106 $scope.selectedTenant = null;
\r
107 $scope.tenantDisplayLabel = ['name' , 'id'];
\r
109 $scope.loadTenants = function() {
\r
110 GBPTenantServices.load(
\r
111 function(tenants) {
\r
112 $scope.tenantList = tenants;
\r
113 console.log('$scope.tenantList', $scope.tenantList);
\r
119 DesignGbpFactory.setMainClass();
\r
122 $scope.setTenant = function(selectedTenant) {
\r
123 $scope.selectedTenant = selectedTenant;
\r
124 $scope.$broadcast('GBP_TENANT_RELOAD', $scope.selectedTenant);
\r
127 $scope.loadTenants();
\r
129 $scope.$on('GBP_GLOBAL_TENANT_RELOAD',function(){
\r
130 $scope.loadTenants();
\r
133 $scope.sendReloadEventFromRoot = function(eventName, val) {
\r
134 $scope.$broadcast(eventName, val);
\r
138 // TODO: rework, use $scope.setViewContent or something
\r
139 $scope.showWizard = function(wizardName, broadcast, broadcastedData, path) {
\r
140 $scope.wizards[wizardName] = true;
\r
143 $scope.sendReloadEventFromRoot(broadcast, {data: broadcastedData, path: path});
\r
147 $scope.closeWizard = function(wizardName) {
\r
148 $scope.wizards[wizardName] = false;
\r
151 $scope.updateList = function(list, object, key) {
\r
152 var elementPos = list.map(function(x) {return x[key]; }).indexOf(object[key]);
\r
154 if(elementPos < 0) {
\r
158 list[elementPos] = object;
\r
164 gbp.register.controller('governanceCtrl', ['$rootScope','$scope',
\r
165 function ($rootScope, $scope) {
\r
166 $scope.menuTpl = 'main-menu';
\r
167 $scope.menuBox = null;
\r
168 $scope.contentTpl = 'main';
\r
169 // $scope.selectedTenant = null;
\r
170 $scope.rendererList = [];
\r
171 var broadcastObj = {};
\r
173 $scope.rendererList.push({'name' : 'of_overlay', 'id' : 0});
\r
175 $scope.toggleExpanded = function(expand, menu, tplType){
\r
176 var type = tplType ? tplType : 'contentTpl';
\r
177 $scope.menuBox = null;
\r
179 $scope[type] = expand;
\r
181 if ( menu && menu === false ) {
\r
182 $scope.menuTpl = !menu ? null : menu;
\r
188 $scope.setViewContent = function(tplName, data, broadcast, tplType) {
\r
190 if ( $scope[tplType] === tplName ) {
\r
191 $scope.$broadcast(broadcast, data, true);
\r
194 broadcastObj[tplType] = {};
\r
195 broadcastObj[tplType].name = broadcast;
\r
196 broadcastObj[tplType].data = data;
\r
198 $scope.toggleExpanded(tplName, null, tplType);
\r
204 $scope.broadcastCalling = function(tplType){
\r
205 $scope.$broadcast(broadcastObj[tplType].name, broadcastObj[tplType].data);
\r
208 $scope.checkBroadcastCalling = function(tplName){
\r
209 var objClickAction = {
\r
210 'epg-detail': function(){
\r
211 $scope.broadcastCalling('contentTpl');
\r
213 'subject-detail': function(){
\r
214 $scope.broadcastCalling('contentTpl');
\r
218 if ( angular.isFunction(objClickAction[tplName]) ) {
\r
219 objClickAction[tplName]();
\r
225 $scope.$on('GOV_INIT', function(){
\r
226 $scope.menuTpl = 'main-menu';
\r
227 $scope.contentTpl = 'main';
\r
228 // $scope.$emit('GBP_GLOBAL_TENANT_RELOAD');
\r
229 $scope.menuBox = null;
\r
232 $scope.$on('GBP_TENANT_RELOAD', function(e, obj){
\r
233 $scope.selectedTenant = obj;
\r
239 gbp.register.controller('boxStaticCtrl',['$scope',
\r
242 $scope.selectedObj = null;
\r
244 $scope.getLabel = function(id, type){
\r
246 providerItems: function(){
\r
247 var name = $scope.selectedObj[type][id].attributes.objData['name'];
\r
248 return name ? name + ' : ' + id : id;
\r
250 consumerItems: function(){
\r
251 var name = $scope.selectedObj[type][id].attributes.objData['name'];
\r
252 return name ? name + ' : ' + id : id;
\r
256 if ( angular.isFunction(objAction[type]) ) {
\r
257 return objAction[type]();
\r
261 $scope.$on('SET_SEL_STA_OBJ', function(obj, data, apply){
\r
262 $scope.selectedObj = data;
\r
272 gbp.register.controller('graphCtrl', ['$scope', function($scope){
\r
276 $scope.init = function(paperInstance){
\r
277 paper = paperInstance;
\r
278 $scope.loadMouseScrollEvent();
\r
282 $scope.zoom = function(out){
\r
283 paperScale = out ? paperScale - 0.1 : paperScale >= 1 ? 1 : paperScale + 0.1;
\r
284 paper.scale(paperScale, paperScale);
\r
289 $scope.loadMouseScrollEvent = function(){
\r
290 /*mouse wheel event for zooming*/
\r
291 var graph = document.getElementById('graph'),
\r
292 MouseWheelHandler = function(e){
\r
293 var mouseEvent = window.event || e; // old IE support
\r
294 var delta = Math.max(-1, Math.min(1, (mouseEvent.wheelDelta || -mouseEvent.detail)));
\r
295 $scope.zoom(delta === 1 ? false : true);
\r
298 if (graph.addEventListener) {
\r
299 // IE9, Chrome, Safari, Opera
\r
300 graph.addEventListener("mousewheel", MouseWheelHandler, false);
\r
302 graph.addEventListener("DOMMouseScroll", MouseWheelHandler, false);
\r
305 else {graph.attachEvent("onmousewheel", MouseWheelHandler);}
\r
306 /*mouse wheel event for zooming - end*/
\r
311 gbp.register.controller('expressedPolicyCtrl', ['$scope', 'JointGraphFactory', 'JointGraphOffsetFactory', 'GBPConstants',
\r
312 function ($scope, JointGraphFactory, JointGraphOffsetFactory, GBPConstants) {
\r
313 var paper = JointGraphFactory.createGraph(),
\r
315 contractItems = [],
\r
318 var objClickAction = {
\r
319 epg: function(data){
\r
320 $scope.setViewContent('epg-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
322 contract: function(data){
\r
323 $scope.setViewContent('contract-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
327 paper.on('cell:pointerdown', function(cell) {
\r
328 if ( angular.isFunction(objClickAction[cell.model.attributes.objType]) ) {
\r
329 objClickAction[cell.model.attributes.objType](cell.model.attributes.objData);
\r
333 var createEpgLinks = function(epg, epgItem, contracts) {
\r
334 var providers = epg['provider-named-selector'] && epg['provider-named-selector'].length>0 ? epg['provider-named-selector'] : [];
\r
335 var consumers = epg['consumer-named-selector'] && epg['consumer-named-selector'].length>0 ? epg['consumer-named-selector'] : [];
\r
336 var consumerLinkItems = [];
\r
337 var providerLinkItems = [];
\r
339 consumers.forEach(function(c) {
\r
340 c.contract.forEach(function(con) {
\r
341 consumerLinkItems.push(JointGraphFactory.createLink(contracts[con].id, epgItem.id, 'green'));
\r
345 providers.forEach(function(p) {
\r
346 p.contract.forEach(function(con) {
\r
347 providerLinkItems.push(JointGraphFactory.createLink(epgItem.id, contracts[con].id, 'blue'));
\r
351 JointGraphFactory.addItemList(paper.model, providerLinkItems);
\r
352 JointGraphFactory.addItemList(paper.model, consumerLinkItems);
\r
356 var loadData = function() {
\r
357 if($scope.selectedTenant) {
\r
377 JointGraphFactory.reloadGraph(paper.model);
\r
379 if ( $scope.selectedTenant && $scope.selectedTenant.contract ) {
\r
381 $scope.selectedTenant.contract.forEach(function(c, i) {
\r
382 var label = c.description ? $scope.sliceLabel(c.description) : c.id,
\r
383 width = JointGraphFactory.getLabelLength(label.length);
\r
384 item = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, GBPConstants.objType.contract, c, 'Click to see contract info', GBPConstants.colors.graph['subject'], 'Contract');
\r
386 itemsArray.contract.push(item);
\r
388 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width, paper.options.height), paper);
\r
389 JointGraphFactory.addItem(paper.model, item);
\r
390 contractItems[c.id] = item;
\r
393 offsetHobj.contract = offsetObj.h;
\r
397 if ( $scope.selectedTenant && $scope.selectedTenant['endpoint-group'] ) {
\r
399 JointGraphOffsetFactory.resetOffsets(offsetObj, offsetObj.ow, offsetObj.h > 400 ? offsetObj.h : 400);
\r
400 $scope.selectedTenant['endpoint-group'].forEach(function(e, i) {
\r
401 var label = e.name || e.id,
\r
402 width = JointGraphFactory.getLabelLength(label.length);
\r
403 item = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, GBPConstants.objType.epg, e, 'Click to see epg info', GBPConstants.colors.graph['pns'], 'EP group');
\r
405 itemsArray.epg.push(item);
\r
407 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width, paper.options.height), paper);
\r
408 JointGraphFactory.addItem(paper.model, item);
\r
409 epgItems[e.id] = item;
\r
411 createEpgLinks(e, item, contractItems);
\r
416 offsetHobj.epg = JointGraphOffsetFactory.getCurrentOffset(itemsArray.contract, 'y');
\r
417 JointGraphOffsetFactory.checkObjsHoffsets(itemsArray.epg ,offsetHobj.epg, paper);
\r
422 $scope.getPaperObj = function(){
\r
426 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
427 if ($scope.selectedTenant) {
\r
431 JointGraphFactory.reloadGraph(paper.model);
\r
438 gbp.register.controller('deliveredPolicyCtrl', ['$scope', 'GPBServices', 'JointGraphFactory', 'GBPGovernanceServices', 'JointGraphOffsetFactory', 'GBPConstants',
\r
439 function ($scope, GPBServices, JointGraphFactory, GBPGovernanceServices, JointGraphOffsetFactory, GBPConstants) {
\r
440 var paper = JointGraphFactory.createGraph(),
\r
441 providerItems = {},
\r
442 consumerItems = {},
\r
445 var getEpList = function() {
\r
446 var providerEpKeys = Object.keys(providerItems),
\r
447 consumerEpKeys = Object.keys(consumerItems),
\r
448 epList = providerEpKeys.map(function (k) {
\r
449 return providerItems[k].attributes.objData;
\r
452 consumerEpKeys.forEach(function(k) {
\r
453 if(providerEpKeys.indexOf(k) === -1) {
\r
454 epList.push(consumerItems[k].attributes.objData);
\r
461 var getSubjList = function() {
\r
462 return Object.keys(subjectItems).map(function (k) {
\r
463 return subjectItems[k].attributes.objData;
\r
467 var objClickAction = {
\r
468 subject: function(data){
\r
469 data.providerItems = providerItems;
\r
470 data.consumerItems = consumerItems;
\r
471 $scope.setViewContent('subject-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
473 consumer: function(data) {
\r
474 $scope.setViewContent('epg-content-static', data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
476 provider: function(data) {
\r
477 $scope.setViewContent('epg-content-static', data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
481 var objDblClickAction = {
\r
482 consumer: function(data){
\r
483 $scope.setBreadcrumb('l3', 'Endpoint group detail', true);
\r
484 $scope.setViewContent('epg-detail', { ep: data, epList: getEpList() }, 'SET_SELECTED_EPG','contentTpl');
\r
486 provider: function(data){
\r
487 $scope.setBreadcrumb('l3', 'Endpoint group detail', true);
\r
488 $scope.setViewContent('epg-detail', { ep: data, epList: getEpList() }, 'SET_SELECTED_EPG','contentTpl');
\r
490 subject: function(data) {
\r
491 var obj = { subject: data,
\r
492 subjList: Object.keys(subjectItems).map(function (k) {
\r
493 return subjectItems[k].attributes.objData;
\r
495 providerItems: providerItems,
\r
496 consumerItems: consumerItems
\r
498 $scope.setBreadcrumb('l3', 'Subject detail', true);
\r
499 $scope.setViewContent('subject-detail', obj, 'SET_SELECTED_SUBJECT','contentTpl');
\r
503 paper.on('cell:pointerdown', function(cell) {
\r
504 if ( angular.isFunction(objClickAction[cell.model.attributes.objType]) ) {
\r
505 objClickAction[cell.model.attributes.objType](cell.model.attributes.objData);
\r
509 paper.on('cell:pointerdblclick', function(cell) {
\r
510 objDblClickAction[cell.model.attributes.objType](cell.model.attributes.objData);
\r
513 var createSubjectLinks = function(subject, subjectItem, providerItems, consumerItems) {
\r
514 var providerLinkItems = subject.providers.map(function(p) {
\r
515 return JointGraphFactory.createLink(providerItems[p].id, subjectItem.id, 'green');
\r
517 consumerLinkItems = subject.consumers.map(function(c) {
\r
518 return JointGraphFactory.createLink(subjectItem.id, consumerItems[c].id, 'blue');
\r
521 JointGraphFactory.addItemList(paper.model, providerLinkItems);
\r
522 JointGraphFactory.addItemList(paper.model, consumerLinkItems);
\r
525 var loadData = function() {
\r
526 if($scope.selectedTenant) {
\r
527 providerItems = {};
\r
528 consumerItems = {};
\r
531 var classifierInstances = $scope.selectedTenant['subject-feature-instances'] &&
\r
532 $scope.selectedTenant['subject-feature-instances']['classifier-instance'] &&
\r
533 $scope.selectedTenant['subject-feature-instances']['classifier-instance'].length > 0 ? $scope.selectedTenant['subject-feature-instances']['classifier-instance'] : [];
\r
556 JointGraphFactory.reloadGraph(paper.model);
\r
558 GBPGovernanceServices.getEPGsAndSubjects($scope.selectedTenant.id, classifierInstances, function(data){
\r
559 data.providers.forEach(function(p, i) {
\r
560 var relatedObj = GPBServices.getPropFromListByProp($scope.selectedTenant['endpoint-group'], 'id', p.id),
\r
561 label = relatedObj.name || p.id,
\r
562 width = JointGraphFactory.getLabelLength(label.length);
\r
564 relatedObj.rules = p.rules;
\r
565 var item = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, GBPConstants.objType.provider, relatedObj, 'Click to see epg info, doubleclick to see Endpoint group detail', GBPConstants.colors.graph['pns'], 'Provider EPG');
\r
567 itemsArray.pEpg.push(item);
\r
569 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width, paper.options.height), paper);
\r
570 JointGraphFactory.addItem(paper.model, item);
\r
571 providerItems[p.id] = item;
\r
574 offsetHobj.pEpg = offsetObj.h;
\r
576 JointGraphOffsetFactory.resetOffsets(offsetObj, offsetObj.ow, 500);
\r
577 data.consumers.forEach(function(c, i) {
\r
578 var relatedObj = GPBServices.getPropFromListByProp($scope.selectedTenant['endpoint-group'], 'id', c.id),
\r
579 label = relatedObj.name || c.id,
\r
580 width = JointGraphFactory.getLabelLength(label.length);
\r
582 relatedObj.rules = c.rules;
\r
583 var item = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, GBPConstants.objType.consumer, relatedObj, 'Click to see epg info, doubleclick to see Endpoint group detail', GBPConstants.colors.graph['cns'], 'Consumer EPG');
\r
585 itemsArray.cEpg.push(item);
\r
587 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width, paper.options.height), paper);
\r
588 JointGraphFactory.addItem(paper.model, item);
\r
589 consumerItems[c.id] = item;
\r
592 JointGraphOffsetFactory.resetOffsets(offsetObj, offsetObj.ow, offsetHobj.pEpg > 300 ? offsetHobj.pEpg : 300);
\r
593 data.subjects.forEach(function(s, i) {
\r
594 var label = s.name,
\r
595 width = JointGraphFactory.getLabelLength(label.length),
\r
596 item = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, GBPConstants.objType.subject, s, 'Click to see subject info, doubleclick to see Subject detail', GBPConstants.colors.graph['subject'], 'Subject');
\r
598 itemsArray.subject.push(item);
\r
600 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width, paper.options.height), paper);
\r
601 JointGraphFactory.addItem(paper.model, item);
\r
602 subjectItems[s.name] = item;
\r
603 createSubjectLinks(s, item, providerItems, consumerItems);
\r
606 offsetHobj.pEpg = JointGraphOffsetFactory.getCurrentOffset(itemsArray.pEpg, 'y');
\r
607 JointGraphOffsetFactory.checkObjsHoffsets(itemsArray.subject ,offsetHobj.pEpg, paper);
\r
608 offsetHobj.subject = JointGraphOffsetFactory.getCurrentOffset(itemsArray.subject, 'y');
\r
609 JointGraphOffsetFactory.checkObjsHoffsets(itemsArray.cEpg ,offsetHobj.subject, paper);
\r
616 // paper.scaleContentToFit();
\r
617 // paper.fitToContent();
\r
620 $scope.getPaperObj = function(){
\r
625 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
626 if ($scope.selectedTenant) {
\r
630 JointGraphFactory.reloadGraph(paper.model);
\r
637 gbp.register.controller('subjectDetailCtrl', ['$scope', 'GPBServices', 'JointGraphFactory', 'GBPGovernanceServices', 'JointGraphOffsetFactory', 'GBPConstants',
\r
638 function ($scope, GPBServices, JointGraphFactory, GBPGovernanceServices, JointGraphOffsetFactory, GBPConstants) {
\r
639 $scope.selectedSubject = null;
\r
640 $scope.subjectList = [];
\r
642 var paper = JointGraphFactory.createGraph(),
\r
643 subjectItem = null,
\r
647 var createSubjectLinks = function(subjectItem, ruleItem) {
\r
648 var linkItem = JointGraphFactory.createLink(subjectItem.id, ruleItem.id, 'blue');
\r
649 JointGraphFactory.addItem(paper.model, linkItem);
\r
652 paper.on('cell:pointerdown', function(cell) {
\r
653 var objClickAction = {
\r
654 subject: function(data){
\r
655 $scope.setViewContent('subject-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
657 rule: function(data){
\r
658 $scope.setViewContent('rule-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
662 // console.log('cell.model.attributes.objType', cell.model.attributes.objType, cell.model.attributes.objData);
\r
663 if ( angular.isFunction(objClickAction[cell.model.attributes.objType]) ) {
\r
664 objClickAction[cell.model.attributes.objType](cell.model.attributes.objData);
\r
668 var loadData = function() {
\r
669 if($scope.selectedSubject) {
\r
670 subjectItem = null;
\r
684 JointGraphFactory.reloadGraph(paper.model);
\r
686 var label = $scope.selectedSubject.name || $scope.selectedSubject.id,
\r
687 width = JointGraphFactory.getLabelLength(label.length);
\r
688 subjectItem = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, GBPConstants.objType.subject, $scope.selectedSubject, 'Click to see subject info', GBPConstants.colors.graph['subject'], 'Subject');
\r
690 JointGraphFactory.addItem(paper.model, subjectItem);
\r
692 JointGraphOffsetFactory.resetOffsets(offsetObj, offsetObj.ow, 300);
\r
693 $scope.selectedSubject.rules.forEach(function(r, i) {
\r
694 var label = r.name,
\r
695 width = JointGraphFactory.getLabelLength(label.length);
\r
696 item = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, GBPConstants.objType.rule, r, 'Click to see rule info', GBPConstants.colors.graph['cns'], 'Rule');
\r
698 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width), paper);
\r
699 JointGraphFactory.addItem(paper.model, item);
\r
700 ruleItems[r.name] = item;
\r
702 createSubjectLinks(subjectItem, item);
\r
707 $scope.getPaperObj = function(){
\r
711 $scope.$on('SET_SELECTED_SUBJECT', function(event, data){
\r
712 $scope.selectedSubject = data.subject;
\r
713 $scope.subjectList = data.subjList;
\r
717 $scope.setSubject = function(subject) {
\r
718 $scope.selectedSubject = subject;
\r
725 gbp.register.controller('epgDetailCtrl', ['$scope', 'JointGraphFactory', 'TopologyDataLoaders', 'GBPEpgServices', 'JointGraphOffsetFactory', 'GBPConstants',
\r
726 function ($scope, JointGraphFactory, TopologyDataLoaders, GBPEpgServices, JointGraphOffsetFactory, GBPConstants) {
\r
727 var paper = JointGraphFactory.createGraph(),
\r
731 $scope.epgDisplayLabel = ['name', 'id'];
\r
732 $scope.epgList = [];
\r
733 $scope.selectedEpg = null;
\r
735 $scope.$on('SET_SELECTED_EPG', function(event, epg){
\r
736 $scope.selectedEpg = epg.ep;
\r
737 $scope.epgList = epg.epList;
\r
741 $scope.setEpg = function(epg){
\r
746 paper.on('cell:pointerdown', function(cell) {
\r
747 var objClickAction = {
\r
748 ep: function(data){
\r
749 $scope.setViewContent('ep-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
751 epg: function(data){
\r
752 $scope.setViewContent('epg-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
756 if ( angular.isFunction(objClickAction[cell.model.attributes.objType]) ) {
\r
757 objClickAction[cell.model.attributes.objType](cell.model.attributes.objData);
\r
761 var loadData = function() {
\r
762 if($scope.selectedTenant && $scope.selectedEpg) {
\r
767 JointGraphFactory.reloadGraph(paper.model);
\r
769 TopologyDataLoaders.getEndpointsFromEndpointGroup($scope.selectedTenant.id, $scope.selectedEpg.id, function(data){
\r
781 var label = $scope.selectedEpg.name || $scope.selectedEpg.id,
\r
782 width = JointGraphFactory.getLabelLength(label.length);
\r
783 epgItem = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, 'epg', $scope.selectedEpg, 'Click to see epg info', GBPConstants.colors.graph['subject'], 'EPG');
\r
785 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width), paper);
\r
786 JointGraphFactory.addItem(paper.model, epgItem);
\r
788 JointGraphOffsetFactory.resetOffsets(offsetObj, offsetObj.ow, 500);
\r
789 if(data && data.output && data.output['ui-endpoint'] && data.output['ui-endpoint'].length){
\r
790 data.output['ui-endpoint'].forEach(function(ep, i){
\r
791 var label = ep['mac-address'] + ':' + ep['l2-context'],
\r
792 width = JointGraphFactory.getLabelLength(label.length);
\r
793 item = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, 'ep', ep, 'Click to see ep info', GBPConstants.colors.graph['pns'], 'Endpoint');
\r
795 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width), paper);
\r
796 JointGraphFactory.addItem(paper.model, item);
\r
797 epItems[label] = item;
\r
798 links.push(JointGraphFactory.createLink(item.id, epgItem.id, 'green'));
\r
801 JointGraphFactory.addItemList(paper.model, links);
\r
807 $scope.getPaperObj = function(){
\r
814 gbp.register.controller('policyRendererCtrl', ['$scope', '$http', '$timeout', 'PGNServices', 'TopoServices', 'GBPTenantServices', 'GBPConstants', 'JointGraphFactory','GBPJointGraphBuilder',
\r
815 function ($scope, $http, $timeout, PGNServices, TopoServices, GBPTenantServices, GBPConstants, JointGraphFactory, GBPJointGraphBuilder) {
\r
817 $scope.topologyData = { nodes: [], links: [] };
\r
818 $scope.topologyType = null;
\r
819 $scope.topologyArgs = {};
\r
820 $scope.legend = {};
\r
821 $scope.showLegend = false;
\r
823 var paper = JointGraphFactory.createGraph();
\r
825 var reloadShowLegend = function() {
\r
826 $scope.showLegend = !$.isEmptyObject($scope.legend);
\r
829 $scope.settingsSigma = {
\r
830 defaultLabelColor: '#fff',
\r
831 doubleClickEnabled: false,
\r
835 $scope.settingsAtlas = {
\r
840 $scope.viewTopo = {
\r
845 paper.on('cell:pointerdown', function(cellView, evt) {
\r
846 if (cellView.model.isLink() && cellView.model.attributes.objData) {
\r
847 $scope.$broadcast('SET_LINK_DATA', cellView.model.attributes.objData);
\r
851 $scope.mandatoryProperties = [];
\r
852 $scope.loadTopology = function(type, args) {
\r
853 if ($scope.selectedTenant) {
\r
854 $scope.topologyType = type;
\r
855 $scope.topologyArgs = args;
\r
856 GBPJointGraphBuilder.loadTopology(args, paper, type);
\r
859 $scope.toggleExpanded = function(expand, show) {
\r
860 $scope.setViewExpand('policyRendererView',expand, show, 'l2');
\r
862 if($scope.policyRendererView[expand] && $scope.selectedTenant) {
\r
863 $scope.topologyArgs.tenantId = $scope.selectedTenant.id;
\r
865 if((expand === 'epg' || expand === 'contracts' || expand === 'classifiers' || expand === 'actions' || expand === 'renderers') && ($scope.topologyType !== GBPConstants.strings.config)) {
\r
866 $scope.loadTopology(GBPConstants.strings.config, $scope.topologyArgs);
\r
867 } else if((expand === 'l2l3' || expand === 'registerEndpoint' || expand === 'registerL3PrefixEndpoint') && ($scope.topologyType !== GBPConstants.strings.l2l3)) {
\r
868 $scope.loadTopology(GBPConstants.strings.l2l3, $scope.topologyArgs);
\r
873 $scope.reloadTopo = function() {
\r
874 if($scope.selectedTenant) {
\r
875 $scope.topologyArgs.tenantId = $scope.selectedTenant.id;
\r
876 GBPJointGraphBuilder.loadTopology($scope.topologyArgs, paper, $scope.topologyType);
\r
880 $scope.getDisplayLabelsFromCtrl = function(eventName, val) {
\r
881 $scope.$broadcast(eventName, val);
\r
884 $scope.validateMandatory = function(newObj, mandatoryProps){
\r
886 notFilledProps = [];
\r
888 mandatoryProps.forEach(function(el){
\r
889 if(newObj[el] === '' || newObj[el] === null || newObj[el] === undefined){
\r
890 notFilledProps.push(el);
\r
895 return {'status' : ret, 'notFilledProps' : notFilledProps};
\r
898 $scope.validate = function(value, errors){
\r
899 errors.int32 = !(parseInt(value) >= -2147483648 && parseInt(value) <= 2147483647);
\r
904 $scope.validateForm = function(form) {
\r
905 return form.$valid;
\r
908 $scope.$on('GBP_TENANT_RELOAD', function(e, obj){
\r
909 $scope.selectedTenant = obj;
\r
914 gbp.register.controller('linkDataCtrl',['$scope', function($scope){
\r
915 $scope.showTable = false;
\r
917 $scope.show = function(){
\r
918 $scope.showTable = true;
\r
921 $scope.close = function(){
\r
922 $scope.showTable = false;
\r
925 $scope.$on('SET_LINK_DATA', function(e, obj){
\r
926 $scope.linkData = obj;
\r
932 gbp.register.controller('crudCtrl',['$scope', function($scope){
\r
933 $scope.selectedObj = null;
\r
937 $scope.add = function() {
\r
938 $scope.selectedObj = null;
\r
942 $scope.modify = function() {
\r
943 $scope.$emit('PGN_EDIT_ELEM');
\r
946 $scope.init = function(label) {
\r
947 $scope.label = label;
\r
951 $scope.$on('EV_SET_SEL_CLASS', function(event, selObj){
\r
952 $scope.selectedObj = selObj;
\r
956 gbp.register.controller('contractCtrl', ['$scope','GBPContractServices', '$filter', function($scope, GBPContractServices, $filter){
\r
958 $scope.selectedContract = null;
\r
959 $scope.newContractObj = GBPContractServices.createObj();
\r
960 $scope.displayLabel = ['description','id'];
\r
961 $scope.crudLabel = 'Contract list';
\r
963 $scope.internalView = {
\r
969 mandatoryProperties = [],
\r
970 clear = function(){
\r
972 $scope.internalView = {
\r
976 $scope.selectedContract = null;
\r
977 $scope.newContractObj = GBPContractServices.createObj();
\r
980 $scope.init = function() {
\r
981 if ( $scope.selectedTenant ) {
\r
982 $scope.selectedContract = null;
\r
983 path = GBPContractServices.createPathObj($scope.selectedTenant.id);
\r
985 GBPContractServices.load(path, function(data){
\r
986 $scope.list = data;
\r
987 // $scope.$broadcast('GBP_CONTRACT_RELOAD');
\r
988 $scope.sendReloadEventFromRoot('GBP_CONTRACT_RELOAD');
\r
997 $scope.save = function(){
\r
998 var resp = $scope.validateMandatory($scope.newContractObj, mandatoryProperties);
\r
1000 path = GBPContractServices.createPathObj($scope.selectedTenant.id, $scope.newContractObj.id);
\r
1001 GBPContractServices.send(path, $scope.newContractObj, function(data){
\r
1003 $scope.internalView.contract = false;
\r
1004 $scope.reloadNewObj();
\r
1005 $scope.internalView.edit = "view";
\r
1010 alert($filter('translate')('GBP_MANDATORY_NOT_FILLED')+': '+resp.notFilledProps.join(', '));
\r
1014 $scope.delete = function() {
\r
1015 if ( $scope.selectedContract ) {
\r
1016 path = GBPContractServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id);
\r
1017 GBPContractServices.delete(path, function(data){
\r
1019 $scope.selectedContract = null;
\r
1026 $scope.reloadNewObj = function() {
\r
1027 $scope.newContractObj = GBPContractServices.createObj();
\r
1030 $scope.reload = function(selectedObj) {
\r
1031 $scope.selectedContract = selectedObj;
\r
1032 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1034 $scope.internalView.contract = true;
\r
1036 $scope.internalView.contract = false;
\r
1037 $scope.internalView.edit = "view";
\r
1040 if($scope.internalView.contract) {
\r
1041 angular.copy(selectedObj, $scope.newContractObj);
\r
1043 $scope.sendReloadEventFromRoot('GBP_CONTRACT_RELOAD');
\r
1046 $scope.showForm = function() {
\r
1047 $scope.reloadNewObj();
\r
1048 $scope.internalView.contract = true;
\r
1049 $scope.selectedContract = null;
\r
1050 $scope.internalView.edit = "add";
\r
1053 $scope.close = function(){
\r
1054 $scope.internalView.contract = false;
\r
1055 $scope.internalView.edit = "view";
\r
1058 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1059 if(!event.defaultPrevented) {
\r
1060 if ( $scope.selectedContract ) {
\r
1061 $scope.internalView.contract = true;
\r
1062 $scope.internalView.edit = "edit";
\r
1063 angular.copy($scope.selectedContract, $scope.newContractObj);
\r
1065 event.defaultPrevented = true;
\r
1069 $scope.$on('GBP_TENANT_RELOAD',function(event){
\r
1073 $scope.$on('GBP_CONTRACTS_LABEL', function(event, obj){
\r
1074 obj.labels = $scope.displayLabel;
\r
1078 gbp.register.controller('clauseCtrl', ['$scope','GBPClauseServices', 'GBPSubjectServices',
\r
1079 function($scope, GBPClauseServices, GBPSubjectServices){
\r
1081 $scope.selectedClause = null;
\r
1082 $scope.newClauseObj = GBPClauseServices.createObj();
\r
1083 $scope.internalView = {
\r
1087 $scope.displayLabel = 'name';
\r
1088 $scope.crudLabel = 'Clause list';
\r
1090 $scope.subjects = {'options' : [], 'labels' : null};
\r
1091 $scope.getDisplayLabelsFromCtrl('GBP_SUBJECTS_LABEL', $scope.subjects);
\r
1095 clear = function(){
\r
1097 $scope.selectedClause = null;
\r
1098 $scope.newClauseObj = GBPClauseServices.createObj();
\r
1099 $scope.internalView = {
\r
1105 //move to separate ctrl \/
\r
1106 $scope.addNewElem = function(templateObj) {
\r
1107 if($scope.newClauseObj && $scope.newClauseObj['subject-refs']) {
\r
1108 var objToPush = templateObj || "";
\r
1109 $scope.newClauseObj['subject-refs'].push(objToPush);
\r
1113 $scope.deleteElemAt = function(index) {
\r
1114 if($scope.newClauseObj && $scope.newClauseObj['subject-refs']) {
\r
1115 $scope.newClauseObj['subject-refs'].splice(index, 1);
\r
1119 $scope.updateAt = function(index, value) {
\r
1120 if($scope.newClauseObj && $scope.newClauseObj['subject-refs'] && $scope.newClauseObj['subject-refs'].length >= index) {
\r
1121 $scope.newClauseObj['subject-refs'][index] = value;
\r
1124 //move to separate ctrl /\
\r
1126 var loadSubjects = function() {
\r
1127 $scope.getDisplayLabelsFromCtrl('GBP_SUBJECTS_LABEL', $scope.subjects);
\r
1129 GBPSubjectServices.load(path, function(data){
\r
1130 $scope.subjects.options = data;
\r
1136 $scope.init = function() {
\r
1137 if ( $scope.selectedContract ) {
\r
1138 path = GBPClauseServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id);
\r
1140 GBPClauseServices.load(path, function(data){
\r
1141 $scope.list = data;
\r
1150 $scope.save = function(){
\r
1151 if($scope.validateForm($scope.clauseForm)){
\r
1152 path = GBPClauseServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.newClauseObj.name);
\r
1153 GBPClauseServices.send(path, $scope.newClauseObj, function(data){
\r
1155 $scope.internalView.clause = false;
\r
1156 $scope.reloadNewObj();
\r
1157 $scope.internalView.clause = "view";
\r
1164 $scope.delete = function() {
\r
1165 if ( $scope.selectedClause ) {
\r
1166 path = GBPClauseServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedClause.name);
\r
1167 GBPClauseServices.delete(path, function(data){
\r
1169 $scope.selectedClause = null;
\r
1176 $scope.reloadNewObj = function() {
\r
1177 $scope.newClauseObj = GBPClauseServices.createObj();
\r
1180 $scope.reload = function(selectedObj) {
\r
1181 $scope.selectedClause = selectedObj;
\r
1182 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1184 $scope.internalView.clause = true;
\r
1186 $scope.internalView.clause = false;
\r
1187 $scope.internalView.edit = "view";
\r
1190 if($scope.internalView.clause) {
\r
1191 angular.copy(selectedObj, $scope.newClauseObj);
\r
1195 $scope.showForm = function() {
\r
1196 $scope.reloadNewObj();
\r
1197 $scope.internalView.clause = true;
\r
1198 $scope.internalView.edit = "add";
\r
1199 $scope.selectedClause = null;
\r
1202 $scope.close = function(){
\r
1203 $scope.internalView.clause = false;
\r
1204 $scope.internalView.edit = "view";
\r
1207 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1208 if (!event.defaultPrevented) {
\r
1209 if ( $scope.selectedClause ) {
\r
1210 $scope.internalView.clause = true;
\r
1211 $scope.internalView.edit = "edit";
\r
1212 angular.copy($scope.selectedClause, $scope.newClauseObj);
\r
1214 event.defaultPrevented = true;
\r
1218 $scope.$on('GBP_CONTRACT_RELOAD',function(){
\r
1219 $scope.internalView.clause = false;
\r
1223 $scope.$on('GBP_SUBJECT_RELOAD',function(){
\r
1228 gbp.register.controller('subjectCtrl', ['$scope','GBPSubjectServices', '$filter', function($scope, GBPSubjectServices, $filter){
\r
1230 $scope.selectedSubject = null;
\r
1231 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
1232 $scope.displayLabel = 'name';
\r
1233 $scope.internalView = {
\r
1237 $scope.crudLabel = 'Subject list';
\r
1238 $scope.errors = {};
\r
1241 mandatoryProperties = ['order'],
\r
1243 clear = function(){
\r
1245 $scope.selectedSubject = null;
\r
1246 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
1247 $scope.internalView = {
\r
1253 $scope.init = function() {
\r
1254 if ( $scope.selectedContract ) {
\r
1255 $scope.selectedSubject = null;
\r
1256 path = GBPSubjectServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id);
\r
1258 GBPSubjectServices.load(path, function(data){
\r
1259 $scope.list = data;
\r
1260 $scope.sendReloadEventFromRoot('GBP_SUBJECT_RELOAD');
\r
1269 $scope.save = function(){
\r
1270 if($scope.validateForm($scope.subjectForm)){
\r
1271 path = GBPSubjectServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.newSubjectObj.name);
\r
1272 GBPSubjectServices.send(path, $scope.newSubjectObj, function(data){
\r
1274 $scope.internalView.subject = false;
\r
1275 $scope.reloadNewObj();
\r
1276 $scope.internalView.edit = "view";
\r
1283 $scope.delete = function() {
\r
1284 if ( $scope.selectedSubject ) {
\r
1285 path = GBPSubjectServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name);
\r
1286 GBPSubjectServices.delete(path, function(data){
\r
1288 $scope.selectedSubject = null;
\r
1295 $scope.reloadNewObj = function() {
\r
1296 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
1299 $scope.reload = function(selectedObj) {
\r
1300 $scope.selectedSubject = selectedObj;
\r
1301 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1303 $scope.internalView.subject = true;
\r
1305 $scope.internalView.subject = false;
\r
1306 $scope.internalView.edit = "view";
\r
1309 if($scope.internalView.subject) {
\r
1310 angular.copy(selectedObj, $scope.newSubjectObj);
\r
1312 $scope.sendReloadEventFromRoot('GBP_SUBJECT_RELOAD');
\r
1315 $scope.showForm = function() {
\r
1316 $scope.reloadNewObj();
\r
1317 $scope.internalView.subject = true;
\r
1318 $scope.internalView.edit = "add";
\r
1319 $scope.selectedSubject = null;
\r
1322 $scope.close = function(){
\r
1323 $scope.internalView.subject = false;
\r
1324 $scope.internalView.edit = "view";
\r
1327 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1328 if (!event.defaultPrevented) {
\r
1329 if ( $scope.selectedSubject ) {
\r
1330 $scope.internalView.subject = true;
\r
1331 $scope.internalView.edit = "edit";
\r
1332 angular.copy($scope.selectedSubject, $scope.newSubjectObj);
\r
1334 event.defaultPrevented = true;
\r
1338 $scope.$on('GBP_CONTRACT_RELOAD',function(){
\r
1339 $scope.internalView.subject = false;
\r
1343 $scope.$on('GBP_SUBJECTS_LABEL', function(event, obj){
\r
1344 obj.labels = $scope.displayLabel;
\r
1348 gbp.register.controller('ruleCtrl', ['$scope','GBPRuleServices', '$filter', function($scope, GBPRuleServices, $filter){
\r
1350 $scope.selectedRule = null;
\r
1351 $scope.newRuleObj = GBPRuleServices.createObj();
\r
1352 $scope.displayLabel = 'name';
\r
1353 $scope.internalView = {
\r
1357 $scope.crudLabel = 'Rule list';
\r
1358 $scope.errors = {};
\r
1361 mandatoryProperties = ['order'],
\r
1363 clear = function(){
\r
1365 $scope.selectedRule = null;
\r
1366 $scope.newRuleObj = GBPRuleServices.createObj();
\r
1367 $scope.internalView = {
\r
1373 $scope.init = function() {
\r
1374 if ( $scope.selectedSubject ) {
\r
1375 $scope.selectedRule = null;
\r
1376 path = GBPRuleServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name);
\r
1378 GBPRuleServices.load(path, function(data){
\r
1379 $scope.list = data;
\r
1388 $scope.save = function(){
\r
1389 if($scope.validateForm($scope.rulesForm)){
\r
1390 path = GBPRuleServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.newRuleObj.name);
\r
1391 GBPRuleServices.send(path, $scope.newRuleObj, function(data){
\r
1393 $scope.internalView.rule = false;
\r
1394 $scope.reloadNewObj();
\r
1395 $scope.internalView.edit = "view";
\r
1402 $scope.delete = function() {
\r
1403 if ( $scope.selectedRule ) {
\r
1404 path = GBPRuleServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name);
\r
1405 GBPRuleServices.delete(path, function(data){
\r
1407 $scope.selectedRule = null;
\r
1414 $scope.reloadNewObj = function() {
\r
1415 $scope.newRuleObj = GBPRuleServices.createObj();
\r
1418 $scope.reload = function(selectedObj) {
\r
1419 $scope.selectedRule = selectedObj;
\r
1420 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1422 $scope.internalView.rule = true;
\r
1424 $scope.internalView.rule = false;
\r
1425 $scope.internalView.edit = "view";
\r
1428 if($scope.internalView.rule) {
\r
1429 angular.copy(selectedObj, $scope.newRuleObj);
\r
1431 $scope.$broadcast('GBP_RULE_RELOAD');
\r
1434 $scope.showForm = function() {
\r
1435 $scope.reloadNewObj();
\r
1436 $scope.internalView.rule = true;
\r
1437 $scope.internalView.edit = "add";
\r
1438 $scope.selectedRule = null;
\r
1441 $scope.close = function(){
\r
1442 $scope.internalView.rule = false;
\r
1443 $scope.internalView.edit = "view";
\r
1446 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1447 if (!event.defaultPrevented) {
\r
1448 if ( $scope.selectedRule ) {
\r
1449 $scope.internalView.rule = true;
\r
1450 $scope.internalView.edit = "edit";
\r
1451 angular.copy($scope.selectedRule, $scope.newRuleObj);
\r
1453 event.defaultPrevented = true;
\r
1457 $scope.$on('GBP_SUBJECT_RELOAD',function(){
\r
1462 gbp.register.controller('actionRefCtrl', ['$scope','GBPActionRefsServices', 'GBPActionInstanceServices', '$filter', function($scope, GBPActionRefsServices, GBPActionInstanceServices, $filter){
\r
1464 $scope.selectedActionRef = null;
\r
1465 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
1466 $scope.displayLabel = 'name';
\r
1467 $scope.internalView = {
\r
1468 actionRef : false,
\r
1471 $scope.crudLabel = 'Action ref list';
\r
1472 $scope.errors = {};
\r
1474 $scope.actionInstanceNames = {'options' : [], 'labels' : $scope.displayLabel};
\r
1477 mandatoryProperties = ['order'],
\r
1479 actionInstanceNamesLoad = function() {
\r
1480 var actionInstancePath = GBPActionInstanceServices.createPathObj($scope.selectedTenant.id);
\r
1481 GBPActionInstanceServices.load(actionInstancePath, function(data){
\r
1482 $scope.actionInstanceNames.options = data;
\r
1488 clear = function(){
\r
1490 $scope.selectedActionRef = null;
\r
1491 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
1492 $scope.internalView = {
\r
1493 actionRef : false,
\r
1498 $scope.init = function() {
\r
1499 if ( $scope.selectedRule ) {
\r
1500 $scope.selectedActionRef = null;
\r
1501 path = GBPActionRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name);
\r
1503 GBPActionRefsServices.load(path, function(data){
\r
1504 $scope.list = data;
\r
1509 actionInstanceNamesLoad();
\r
1515 $scope.save = function(){
\r
1516 if($scope.validateForm($scope.actionRefForm)){
\r
1517 path = GBPActionRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name, $scope.newActionRefObj.name);
\r
1518 GBPActionRefsServices.send(path, $scope.newActionRefObj, function(data){
\r
1520 $scope.internalView.actionRef = false;
\r
1521 $scope.reloadNewObj();
\r
1522 $scope.internalView.edit = "view";
\r
1529 $scope.delete = function() {
\r
1530 if ( $scope.selectedActionRef ) {
\r
1531 path = GBPActionRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name, $scope.selectedActionRef.name);
\r
1532 GBPActionRefsServices.delete(path, function(data){
\r
1534 $scope.selectedActionRef = null;
\r
1541 $scope.reloadNewObj = function() {
\r
1542 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
1545 $scope.reload = function(selectedObj) {
\r
1546 $scope.selectedActionRef = selectedObj;
\r
1547 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1549 $scope.internalView.actionRef = true;
\r
1551 $scope.internalView.actionRef = false;
\r
1552 $scope.internalView.edit = "view";
\r
1555 if($scope.internalView.actionRef) {
\r
1556 angular.copy(selectedObj, $scope.newActionRefObj);
\r
1560 $scope.showForm = function() {
\r
1561 $scope.reloadNewObj();
\r
1562 $scope.internalView.actionRef = true;
\r
1563 $scope.internalView.edit = "add";
\r
1564 $scope.selectedActionRef = null;
\r
1567 $scope.close = function(){
\r
1568 $scope.internalView.actionRef = false;
\r
1569 $scope.internalView.edit = "view";
\r
1572 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1573 if (!event.defaultPrevented) {
\r
1574 if ( $scope.selectedActionRef ) {
\r
1575 $scope.internalView.actionRef = true;
\r
1576 $scope.internalView.edit = "edit";
\r
1577 angular.copy($scope.selectedActionRef, $scope.newActionRefObj);
\r
1579 event.defaultPrevented = true;
\r
1583 $scope.$on('GBP_RULE_RELOAD',function(){
\r
1584 $scope.internalView.actionRef = false;
\r
1588 $scope.$on('GBP_ACTION_INSTANCE_RELOAD',function(){
\r
1589 actionInstanceNamesLoad();
\r
1593 gbp.register.controller('classifierRefCtrl', ['$scope','GBPClassifierRefsServices', 'GBPClassifierInstanceServices', '$filter', function($scope, GBPClassifierRefsServices, GBPClassifierInstanceServices, $filter){
\r
1595 $scope.selectedClassifierRef = null;
\r
1596 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
1597 $scope.displayLabel = 'name';
\r
1598 $scope.internalView = {
\r
1599 classifierRef : false,
\r
1603 $scope.instanceNames = {'options' : [], 'labels' : $scope.displayLabel};
\r
1605 $scope.formDirections = ['in', 'out', 'bidirectional'];
\r
1606 $scope.formConnectionTracking = ['normal', 'reflexive'];
\r
1608 $scope.crudLabel = 'Classifier ref list';
\r
1612 instanceNamesLoad = function() {
\r
1613 var classifierInstancePath = GBPClassifierInstanceServices.createPathObj($scope.selectedTenant.id);
\r
1614 GBPClassifierInstanceServices.load(classifierInstancePath, function(data){
\r
1615 $scope.instanceNames.options = data;
\r
1621 clear = function(){
\r
1623 $scope.selectedClassifierRef = null;
\r
1624 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
1625 $scope.internalView = {
\r
1626 classifierRef : false,
\r
1631 $scope.init = function() {
\r
1632 if ( $scope.selectedRule ) {
\r
1633 $scope.selectedClassifierRef = null;
\r
1634 path = GBPClassifierRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name);
\r
1638 GBPClassifierRefsServices.load(path, function(data){
\r
1639 $scope.list = data;
\r
1644 instanceNamesLoad();
\r
1650 $scope.save = function(){
\r
1651 if($scope.validateForm($scope.classifierRefForm)){
\r
1652 path = GBPClassifierRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name, $scope.newClassifierRefObj.name);
\r
1653 GBPClassifierRefsServices.send(path, $scope.newClassifierRefObj, function(data){
\r
1655 $scope.internalView.classifierRef = false;
\r
1656 $scope.reloadNewObj();
\r
1657 $scope.internalView.edit = "view";
\r
1664 $scope.delete = function() {
\r
1665 if ( $scope.selectedClassifierRef ) {
\r
1666 path = GBPClassifierRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name, $scope.selectedClassifierRef.name);
\r
1667 GBPClassifierRefsServices.delete(path, function(data){
\r
1669 $scope.selectedClassifierRef = null;
\r
1676 $scope.reloadNewObj = function() {
\r
1677 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
1680 $scope.reload = function(selectedObj) {
\r
1681 $scope.selectedClassifierRef = selectedObj;
\r
1682 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1684 $scope.internalView.classifierRef = true;
\r
1686 $scope.internalView.classifierRef = false;
\r
1687 $scope.internalView.edit = "view";
\r
1690 if($scope.internalView.classifierRef) {
\r
1691 angular.copy(selectedObj, $scope.newClassifierRefObj);
\r
1695 $scope.showForm = function() {
\r
1696 $scope.reloadNewObj();
\r
1697 $scope.internalView.classifierRef = true;
\r
1698 $scope.internalView.edit = "add";
\r
1699 $scope.selectedClassifierRef = null;
\r
1702 $scope.close = function(){
\r
1703 $scope.internalView.classifierRef = false;
\r
1704 $scope.internalView.edit = "view";
\r
1707 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1708 if (!event.defaultPrevented) {
\r
1709 if ( $scope.selectedClassifierRef ) {
\r
1710 $scope.internalView.classifierRef = true;
\r
1711 $scope.internalView.edit = "edit";
\r
1712 angular.copy($scope.selectedClassifierRef, $scope.newClassifierRefObj);
\r
1714 event.defaultPrevented = true;
\r
1718 $scope.$on('GBP_RULE_RELOAD',function(){
\r
1719 $scope.internalView.classifierRef = false;
\r
1723 $scope.$on('GBP_CLASSIFIER_INSTANCE_RELOAD',function(){
\r
1724 instanceNamesLoad();
\r
1728 gbp.register.controller('tenantCtrl', ['$scope', 'GBPTenantServices', '$filter', function($scope, GBPTenantServices, $filter){
\r
1730 $scope.selectedTenantObj = null;
\r
1731 $scope.newTenantObj = GBPTenantServices.createObj();
\r
1732 $scope.displayLabel = ['name' , 'id'];
\r
1733 $scope.crudLabel = 'Tenants list';
\r
1740 $scope.init = function() {
\r
1741 GBPTenantServices.load(
\r
1743 $scope.list = data;
\r
1744 $scope.newTenantObj = GBPTenantServices.createObj();
\r
1745 $scope.selectedTenantObj = null;
\r
1752 $scope.save = function(){
\r
1753 if($scope.validateForm($scope.tenantForm)){
\r
1754 path = GBPTenantServices.createPathObj($scope.newTenantObj.id);
\r
1755 GBPTenantServices.send(path, $scope.newTenantObj, function(data){
\r
1757 $scope.view.tenant = false;
\r
1758 $scope.view.edit = "view";
\r
1759 $scope.$emit('GBP_GLOBAL_TENANT_RELOAD');
\r
1766 $scope.delete = function() {
\r
1767 if($scope.selectedTenantObj) {
\r
1768 path = GBPTenantServices.createPathObj($scope.selectedTenantObj.id);
\r
1770 GBPTenantServices.delete(path, function(data){
\r
1772 $scope.view.tenant = false;
\r
1773 $scope.$emit('GBP_GLOBAL_TENANT_RELOAD');
\r
1780 $scope.reload = function(selectedObj) {
\r
1781 $scope.selectedTenantObj = selectedObj;
\r
1783 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
1785 $scope.view.tenant = true;
\r
1788 $scope.view.tenant = false;
\r
1789 $scope.view.edit = "view";
\r
1792 if ($scope.view.tenant) {
\r
1793 angular.copy(selectedObj, $scope.newTenantObj);
\r
1797 $scope.showForm = function() {
\r
1798 $scope.newTenantObj = GBPTenantServices.createObj();
\r
1799 $scope.selectedTenantObj = null;
\r
1800 $scope.view.tenant = true;
\r
1801 $scope.view.edit = "add";
\r
1804 $scope.close = function(){
\r
1805 $scope.view.tenant = false;
\r
1806 $scope.view.edit = "view";
\r
1809 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1810 if (!event.defaultPrevented) {
\r
1811 if ( $scope.selectedTenantObj ) {
\r
1812 $scope.view.tenant = true;
\r
1813 $scope.view.edit = "edit";
\r
1814 angular.copy($scope.selectedTenantObj, $scope.newTenantObj);
\r
1816 event.defaultPrevented = true;
\r
1820 $scope.$on('GBP_GLOBAL_TENANT_RELOAD',function(){
\r
1825 gbp.register.controller('epgCtrl',['$scope', 'GBPEpgServices', 'GBPContractServices', '$filter',
\r
1826 function($scope, GBPEpgServices, GBPContractServices, $filter){
\r
1827 $scope.selectedEpg = null;
\r
1828 $scope.newEpgObj = GBPEpgServices.createObj();
\r
1829 $scope.displayLabel = ['name', 'id'];
\r
1830 $scope.crudLabel = 'Group list';
\r
1832 $scope.igpOpts = ['allow', 'require-contract'];
\r
1834 $scope.contracts = {'options' : [], 'labels' : null};
\r
1835 $scope.getDisplayLabelsFromCtrl('GBP_CONTRACTS_LABEL', $scope.contracts);
\r
1839 $scope.internalView = {
\r
1844 var loadContracts = function() {
\r
1845 GBPContractServices.load(path, function(data){
\r
1846 $scope.contracts.options = data;
\r
1852 mandatoryProperties = ['name'],
\r
1854 clear = function(){
\r
1856 $scope.selectedEpg = null;
\r
1857 $scope.newEpgObj = GBPEpgServices.createObj();
\r
1858 $scope.internalView = {
\r
1864 $scope.init = function() {
\r
1865 if ($scope.selectedTenant) {
\r
1866 path = GBPEpgServices.createPathObj($scope.selectedTenant.id);
\r
1868 GBPEpgServices.load(path, function(data){
\r
1869 $scope.list = data;
\r
1870 // $scope.$broadcast('GBP_EPG_RELOAD');
\r
1871 $scope.sendReloadEventFromRoot('GBP_EPG_RELOAD');
\r
1882 $scope.save = function(){
\r
1883 if($scope.validateForm($scope.epgForm)){
\r
1884 path = GBPEpgServices.createPathObj($scope.selectedTenant.id, $scope.newEpgObj.id);
\r
1885 GBPEpgServices.send(path, $scope.newEpgObj, function(data){
\r
1887 $scope.internalView.epg = false;
\r
1888 $scope.reloadNewObj();
\r
1889 $scope.internalView.edit = "view";
\r
1890 $scope.reloadTopo();
\r
1897 $scope.delete = function() {
\r
1898 if($scope.selectedTenant && $scope.selectedEpg) {
\r
1899 path = GBPEpgServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id);
\r
1900 GBPEpgServices.delete(path, function(data){
\r
1902 $scope.internalView.epg = false;
\r
1903 $scope.reloadTopo();
\r
1910 $scope.showForm = function() {
\r
1911 $scope.internalView.epg = true;
\r
1912 $scope.reloadNewObj();
\r
1913 $scope.selectedEpg = null;
\r
1914 $scope.internalView.edit = "add";
\r
1917 $scope.reloadNewObj = function() {
\r
1918 $scope.newEpgObj = GBPEpgServices.createObj();
\r
1921 $scope.reload = function(selectedObj) {
\r
1922 $scope.selectedEpg = selectedObj;
\r
1923 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1925 $scope.internalView.epg = true;
\r
1927 $scope.internalView.epg = false;
\r
1928 $scope.internalView.edit = "view";
\r
1931 if($scope.internalView.epg) {
\r
1932 angular.copy(selectedObj, $scope.newEpgObj);
\r
1934 $scope.sendReloadEventFromRoot('GBP_EPG_RELOAD');
\r
1937 $scope.close = function(){
\r
1938 $scope.internalView.epg = false;
\r
1939 $scope.internalView.edit = "view";
\r
1941 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1942 if (!event.defaultPrevented) {
\r
1943 if ( $scope.selectedEpg ) {
\r
1944 $scope.internalView.epg = true;
\r
1945 $scope.internalView.edit = "edit";
\r
1946 angular.copy($scope.selectedEpg, $scope.newEpgObj);
\r
1948 event.defaultPrevented = true;
\r
1952 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
1956 $scope.$on('GBP_CONTRACT_RELOAD',function(){
\r
1960 $scope.$on('GBP_EPG_LABEL', function(event, obj){
\r
1961 obj.labels = $scope.displayLabel;
\r
1965 gbp.register.controller('cnsCtrl',['$scope', 'GBPConNamedSelServices', function($scope, GBPConNamedSelServices){
\r
1967 $scope.selectedCNS = null;
\r
1968 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
1969 $scope.internalView = {
\r
1973 $scope.displayLabel = 'name';
\r
1974 $scope.crudLabel = 'Consumer named selectors list';
\r
1976 var clear = function(){
\r
1978 $scope.selectedCNS = null;
\r
1979 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
1980 $scope.internalView = {
\r
1986 //move to separate ctrl \/
\r
1987 $scope.addNewElem = function(templateObj) {
\r
1988 if($scope.newCNSObj && $scope.newCNSObj.contract) {
\r
1989 var objToPush = templateObj || "";
\r
1990 $scope.newCNSObj.contract.push(objToPush);
\r
1994 $scope.deleteElemAt = function(index) {
\r
1995 if($scope.newCNSObj && $scope.newCNSObj.contract) {
\r
1996 $scope.newCNSObj.contract.splice(index, 1);
\r
2000 $scope.updateAt = function(index, value) {
\r
2001 if($scope.newCNSObj && $scope.newCNSObj.contract && $scope.newCNSObj.contract.length >= index) {
\r
2002 $scope.newCNSObj.contract[index] = value;
\r
2005 //move to separate ctrl /\
\r
2007 $scope.init = function() {
\r
2008 if ($scope.selectedTenant && $scope.selectedEpg) {
\r
2009 path = GBPConNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id);
\r
2011 GBPConNamedSelServices.load(path, function(data){
\r
2012 $scope.list = data;
\r
2021 $scope.save = function(){
\r
2022 if($scope.validateForm($scope.cnsForm)){
\r
2023 path = GBPConNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id, $scope.newCNSObj.name);
\r
2024 GBPConNamedSelServices.send(path, $scope.newCNSObj, function(data){
\r
2026 $scope.internalView.cns = false;
\r
2027 $scope.internalView.cns = "view";
\r
2028 $scope.reloadNewObj();
\r
2029 $scope.reloadTopo();
\r
2036 $scope.delete = function() {
\r
2037 if($scope.selectedTenant && $scope.selectedEpg && $scope.selectedCNS) {
\r
2038 path = GBPConNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id, $scope.selectedCNS.name);
\r
2039 GBPConNamedSelServices.delete(path, function(data){
\r
2041 $scope.reloadTopo();
\r
2048 $scope.showForm = function() {
\r
2049 $scope.reloadNewObj();
\r
2050 $scope.selectedCNS = null;
\r
2051 $scope.internalView.cns = true;
\r
2052 $scope.internalView.edit = "add";
\r
2055 $scope.reloadNewObj = function() {
\r
2056 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
2059 $scope.reload = function(selectedObj) {
\r
2060 $scope.selectedCNS = selectedObj;
\r
2061 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
2063 $scope.internalView.cns = true;
\r
2065 $scope.internalView.cns = false;
\r
2066 $scope.internalView.edit = "view";
\r
2069 if($scope.internalView.cns) {
\r
2070 angular.copy(selectedObj, $scope.newCNSObj);
\r
2074 $scope.close = function(){
\r
2075 $scope.internalView.cns = false;
\r
2076 $scope.internalView.edit = "view";
\r
2079 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2080 if (!event.defaultPrevented) {
\r
2081 if ( $scope.selectedEpg ) {
\r
2082 $scope.internalView.cns = true;
\r
2083 $scope.internalView.edit = "add";
\r
2084 angular.copy($scope.selectedCNS, $scope.newCNSObj);
\r
2086 event.defaultPrevented = true;
\r
2090 $scope.$on('GBP_EPG_RELOAD',function(){
\r
2095 gbp.register.controller('pnsCtrl',['$scope', 'GBPProNamedSelServices', function($scope, GBPProNamedSelServices){
\r
2097 $scope.selectedPNS = null;
\r
2098 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
2099 $scope.displayLabel = 'name';
\r
2100 $scope.crudLabel = 'Provider named selectors list';
\r
2101 $scope.internalView = {
\r
2106 var clear = function(){
\r
2108 $scope.selectedPNS = null;
\r
2109 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
2110 $scope.internalView = {
\r
2116 //move to separate ctrl \/
\r
2117 $scope.addNewElem = function(templateObj) {
\r
2118 if($scope.newPNSObj && $scope.newPNSObj.contract) {
\r
2119 var objToPush = templateObj || "";
\r
2120 $scope.newPNSObj.contract.push(objToPush);
\r
2124 $scope.deleteElemAt = function(index) {
\r
2125 if($scope.newPNSObj && $scope.newPNSObj.contract) {
\r
2126 $scope.newPNSObj.contract.splice(index, 1);
\r
2130 $scope.updateAt = function(index, value) {
\r
2131 if($scope.newPNSObj && $scope.newPNSObj.contract && $scope.newPNSObj.contract.length >= index) {
\r
2132 $scope.newPNSObj.contract[index] = value;
\r
2135 //move to separate ctrl /\
\r
2137 $scope.init = function() {
\r
2138 if ($scope.selectedTenant && $scope.selectedEpg) {
\r
2139 path = GBPProNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id);
\r
2141 GBPProNamedSelServices.load(path, function(data){
\r
2142 $scope.list = data;
\r
2151 $scope.save = function(){
\r
2152 if($scope.validateForm($scope.pnsForm)){
\r
2153 path = GBPProNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id, $scope.newPNSObj.name);
\r
2154 GBPProNamedSelServices.send(path, $scope.newPNSObj, function(data){
\r
2156 $scope.internalView.pns = false;
\r
2157 $scope.reloadNewObj();
\r
2158 $scope.internalView.cns = "view";
\r
2159 $scope.reloadTopo();
\r
2166 $scope.delete = function() {
\r
2167 if($scope.selectedTenant && $scope.selectedEpg && $scope.selectedPNS) {
\r
2168 path = GBPProNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id, $scope.selectedPNS.name);
\r
2169 GBPProNamedSelServices.delete(path, function(data){
\r
2171 $scope.reloadTopo();
\r
2178 $scope.showForm = function() {
\r
2179 $scope.reloadNewObj();
\r
2180 $scope.internalView.pns = true;
\r
2181 $scope.internalView.edit = "add";
\r
2182 $scope.selectedPNS = null;
\r
2185 $scope.reloadNewObj = function() {
\r
2186 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
2189 $scope.reload = function(selectedObj) {
\r
2190 $scope.selectedPNS = selectedObj;
\r
2191 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
2193 $scope.internalView.pns = true;
\r
2195 $scope.internalView.pns = false;
\r
2196 $scope.internalView.edit = "view";
\r
2199 if($scope.internalView.pns) {
\r
2200 angular.copy(selectedObj, $scope.newPNSObj);
\r
2204 $scope.close = function(){
\r
2205 $scope.internalView.pns = false;
\r
2206 $scope.internalView.edit = "view";
\r
2208 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2209 if (!event.defaultPrevented) {
\r
2210 if ( $scope.selectedEpg ) {
\r
2211 $scope.internalView.pns = true;
\r
2212 $scope.internalView.edit = "edit";
\r
2213 angular.copy($scope.selectedPNS, $scope.newPNSObj);
\r
2215 event.defaultPrevented = true;
\r
2219 $scope.$on('GBP_EPG_RELOAD',function(){
\r
2224 gbp.register.controller('l2FloodCtrl', ['$scope', 'GBPL2FloodDomainServices', 'GBPL2BridgeDomainServices', '$filter', function($scope, GBPL2FloodDomainServices, GBPL2BridgeDomainServices, $filter){
\r
2226 $scope.selectedL2Flood = null;
\r
2227 $scope.newL2FloodObj = GBPL2FloodDomainServices.createObj();
\r
2228 $scope.displayLabel = ['name', 'id'];
\r
2229 $scope.crudLabel = 'L2 Flood Domain list';
\r
2231 $scope.l2bridge = {'options' : [], 'labels' : null};
\r
2232 $scope.getDisplayLabelsFromCtrl('GBP_L2BRIDGE_LABEL', $scope.l2bridge);
\r
2241 loadL2BridgeList = function() {
\r
2242 GBPL2BridgeDomainServices.load(GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id), function(data){
\r
2243 $scope.l2bridge.options = data;
\r
2249 clear = function(){
\r
2251 $scope.selectedL2Flood = null;
\r
2252 $scope.newL2FloodObj = GBPL2FloodDomainServices.createObj();
\r
2259 $scope.init = function() {
\r
2260 if ( $scope.selectedTenant ) {
\r
2261 path = GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id);
\r
2263 GBPL2FloodDomainServices.load(path, function(data){
\r
2264 $scope.list = data;
\r
2266 $scope.newL2FloodObj = GBPL2FloodDomainServices.createObj();
\r
2267 $scope.selectedL2Flood = null;
\r
2272 loadL2BridgeList();
\r
2278 $scope.save = function(){
\r
2279 if($scope.validateForm($scope.l2FloodForm)){
\r
2280 path = GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id, $scope.newL2FloodObj.id);
\r
2281 GBPL2FloodDomainServices.send(path, $scope.newL2FloodObj, function(data){
\r
2283 $scope.view.l2flood = false;
\r
2284 $scope.view.edit = "view";
\r
2285 $scope.sendReloadEventFromRoot('GBP_L2FLOOD_RELOAD');
\r
2287 $scope.reloadTopo();
\r
2294 $scope.delete = function() {
\r
2295 if($scope.selectedTenant && $scope.selectedL2Flood) {
\r
2296 path = GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id, $scope.selectedL2Flood.id);
\r
2297 GBPL2FloodDomainServices.delete(path, function(data){
\r
2299 $scope.view.l2flood = false;
\r
2300 $scope.view.edit = "view";
\r
2301 $scope.sendReloadEventFromRoot('GBP_L2FLOOD_RELOAD');
\r
2303 $scope.reloadTopo();
\r
2310 $scope.reload = function(selectedObj) {
\r
2311 $scope.selectedL2Flood = selectedObj;
\r
2313 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
2315 $scope.view.l2flood = true;
\r
2318 $scope.view.l2flood = false;
\r
2319 $scope.view.edit = "view";
\r
2322 if ($scope.view.l2flood) {
\r
2323 angular.copy(selectedObj, $scope.newL2FloodObj);
\r
2326 $scope.sendReloadEventFromRoot('GBP_L2FLOOD_RELOAD');
\r
2329 $scope.showForm = function() {
\r
2330 $scope.newL2FloodObj = GBPL2FloodDomainServices.createObj();
\r
2331 $scope.selectedL2Flood = null;
\r
2332 $scope.view.l2flood = true;
\r
2333 $scope.view.edit = "add";
\r
2336 $scope.close = function(){
\r
2337 $scope.view.l2flood = false;
\r
2340 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2341 if (!event.defaultPrevented) {
\r
2342 if ( $scope.selectedL2Flood ) {
\r
2343 $scope.view.l2flood = true;
\r
2344 $scope.view.edit = "edit";
\r
2345 angular.copy($scope.selectedL2Flood, $scope.newL2FloodObj);
\r
2347 event.defaultPrevented = true;
\r
2351 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
2355 $scope.$on('GBP_L2BRIDGE_RELOAD',function(){
\r
2356 loadL2BridgeList();
\r
2359 $scope.$on('GBP_L2FLOOD_LABEL', function(event, obj){
\r
2360 obj.labels = $scope.displayLabel;
\r
2364 gbp.register.controller('l2BridgeCtrl', ['$scope', 'GBPL2BridgeDomainServices', 'GBPL3ContextServices', '$filter', function($scope, GBPL2BridgeDomainServices, GBPL3ContextServices, $filter){
\r
2366 $scope.selectedL2Bridge = null;
\r
2367 $scope.newL2BridgeObj = GBPL2BridgeDomainServices.createObj();
\r
2368 $scope.displayLabel = ['name', 'id'];
\r
2369 $scope.crudLabel = 'L2 Bridge Domain list';
\r
2371 $scope.l3context = {'options' : [], 'labels' : null};
\r
2372 $scope.getDisplayLabelsFromCtrl('GBP_L3CONTEXT_LABEL', $scope.l3context);
\r
2381 loadL3ContextList = function() {
\r
2382 GBPL3ContextServices.load(GBPL3ContextServices.createPathObj($scope.selectedTenant.id), function(data){
\r
2383 $scope.l3context.options = data;
\r
2384 //$scope.$broadcast('GBP_L2BRIDGE_RELOAD');
\r
2390 clear = function(){
\r
2392 $scope.selectedL2Bridge = null;
\r
2393 $scope.newL2BridgeObj = GBPL2BridgeDomainServices.createObj();
\r
2400 $scope.init = function() {
\r
2401 if ( $scope.selectedTenant ) {
\r
2402 path = GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id);
\r
2404 GBPL2BridgeDomainServices.load(path, function(data){
\r
2405 $scope.list = data;
\r
2406 $scope.newL2BridgeObj = GBPL2BridgeDomainServices.createObj();
\r
2407 $scope.selectedL2Bridge = null;
\r
2408 // $scope.$broadcast('GBP_L2BRIDGE_RELOAD');
\r
2413 loadL3ContextList();
\r
2421 $scope.save = function(){
\r
2422 if($scope.validateForm($scope.l2BridgeForm)){
\r
2423 path = GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id, $scope.newL2BridgeObj.id);
\r
2424 GBPL2BridgeDomainServices.send(path, $scope.newL2BridgeObj, function(data){
\r
2426 $scope.view.l2bridge = false;
\r
2427 $scope.view.edit = "view";
\r
2428 $scope.sendReloadEventFromRoot('GBP_L2BRIDGE_RELOAD');
\r
2430 $scope.reloadTopo();
\r
2437 $scope.delete = function() {
\r
2438 if($scope.selectedTenant && $scope.selectedL2Bridge) {
\r
2439 path = GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id, $scope.selectedL2Bridge.id);
\r
2440 GBPL2BridgeDomainServices.delete(path, function(data){
\r
2442 $scope.view.l2bridge = false;
\r
2443 $scope.view.edit = "view";
\r
2444 $scope.sendReloadEventFromRoot('GBP_L2BRIDGE_RELOAD');
\r
2446 $scope.reloadTopo();
\r
2453 $scope.reload = function(selectedObj) {
\r
2454 $scope.selectedL2Bridge = selectedObj;
\r
2456 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
2458 $scope.view.l2bridge = true;
\r
2461 $scope.view.l2bridge = false;
\r
2462 $scope.view.edit = "view";
\r
2465 if ($scope.view.l2bridge) {
\r
2466 angular.copy(selectedObj, $scope.newL2BridgeObj);
\r
2469 $scope.sendReloadEventFromRoot('GBP_L2BRIDGE_RELOAD');
\r
2472 $scope.showForm = function() {
\r
2473 $scope.newL2BridgeObj = GBPL2BridgeDomainServices.createObj();
\r
2474 $scope.selectedL2Bridge = null;
\r
2475 $scope.view.l2bridge = true;
\r
2476 $scope.view.edit = "add";
\r
2479 $scope.close = function(){
\r
2480 $scope.view.l2bridge = false;
\r
2483 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2484 if (!event.defaultPrevented) {
\r
2485 if ( $scope.selectedL2Bridge ) {
\r
2486 $scope.view.l2bridge = true;
\r
2487 $scope.view.edit = "edit";
\r
2488 angular.copy($scope.selectedL2Bridge, $scope.newL2BridgeObj);
\r
2490 event.defaultPrevented = true;
\r
2494 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
2498 $scope.$on('GBP_L3CONTEXT_RELOAD',function(){
\r
2499 loadL3ContextList();
\r
2502 $scope.$on('GBP_L2BRIDGE_LABEL', function(event, obj){
\r
2503 obj.labels = $scope.displayLabel;
\r
2507 gbp.register.controller('l3ContextCtrl', ['$scope', 'GBPL3ContextServices', '$filter', function($scope, GBPL3ContextServices, $filter){ //GBPContractServices
\r
2509 $scope.selectedL3Context = null;
\r
2510 $scope.newL3ContextObj = GBPL3ContextServices.createObj();
\r
2511 $scope.displayLabel = ['name', 'id'];
\r
2512 $scope.crudLabel = 'L3 Context list';
\r
2521 clear = function(){
\r
2527 $scope.selectedL3Context = null;
\r
2528 $scope.newL3ContextObj = GBPL3ContextServices.createObj();
\r
2531 $scope.init = function() {
\r
2532 if ( $scope.selectedTenant ) {
\r
2533 path = GBPL3ContextServices.createPathObj($scope.selectedTenant.id);
\r
2535 GBPL3ContextServices.load(path, function(data){
\r
2536 $scope.list = data;
\r
2537 $scope.newL3ContextObj = GBPL3ContextServices.createObj();
\r
2538 $scope.selectedL3Context = null;
\r
2547 $scope.save = function(){
\r
2548 if($scope.validateForm($scope.l3ContextForm)){
\r
2549 path = GBPL3ContextServices.createPathObj($scope.selectedTenant.id, $scope.newL3ContextObj.id);
\r
2550 GBPL3ContextServices.send(path, $scope.newL3ContextObj, function(data){
\r
2552 $scope.view.l3context = false;
\r
2553 $scope.view.edit = "view";
\r
2554 $scope.sendReloadEventFromRoot('GBP_L3CONTEXT_RELOAD');
\r
2556 $scope.reloadTopo();
\r
2563 $scope.delete = function() {
\r
2564 if($scope.selectedTenant && $scope.selectedL3Context) {
\r
2565 path = GBPL3ContextServices.createPathObj($scope.selectedTenant.id, $scope.selectedL3Context.id);
\r
2566 GBPL3ContextServices.delete(path, function(data){
\r
2568 $scope.view.l3context = false;
\r
2569 $scope.view.edit = "view";
\r
2570 $scope.sendReloadEventFromRoot('GBP_L3CONTEXT_RELOAD');
\r
2572 $scope.reloadTopo();
\r
2579 $scope.reload = function(selectedObj) {
\r
2580 $scope.selectedL3Context = selectedObj;
\r
2582 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
2584 $scope.view.l3context = true;
\r
2587 $scope.view.l3context = false;
\r
2588 $scope.view.edit = "view";
\r
2591 if($scope.view.l3context) {
\r
2592 angular.copy(selectedObj, $scope.newL3ContextObj);
\r
2595 $scope.sendReloadEventFromRoot('GBP_L3CONTEXT_RELOAD');
\r
2598 $scope.showForm = function() {
\r
2599 $scope.newL3ContextObj = GBPL3ContextServices.createObj();
\r
2600 $scope.selectedL3Context = null;
\r
2601 $scope.view.l3context = true;
\r
2602 $scope.view.edit = "add";
\r
2605 $scope.close = function(){
\r
2606 $scope.view.l3context = false;
\r
2609 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2610 if (!event.defaultPrevented) {
\r
2611 if ( $scope.selectedL3Context ) {
\r
2612 $scope.view.l3context = true;
\r
2613 $scope.view.edit = "edit";
\r
2614 angular.copy($scope.selectedL3Context, $scope.newL3ContextObj);
\r
2616 event.defaultPrevented = true;
\r
2620 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
2624 $scope.$on('GBP_L3CONTEXT_LABEL', function(event, obj){
\r
2625 obj.labels = $scope.displayLabel;
\r
2629 gbp.register.controller('subnetCtrl', ['$scope', 'GBPSubnetServices', 'GBPL2FloodDomainServices', 'GBPL2BridgeDomainServices', 'GBPL3ContextServices', '$filter', function($scope, GBPSubnetServices, GBPL2FloodDomainServices, GBPL2BridgeDomainServices, GBPL3ContextServices, $filter){
\r
2631 $scope.selectedSubnet = null;
\r
2632 $scope.newSubnetObj = GBPSubnetServices.createObj();
\r
2633 $scope.displayLabel = ['name', 'id'];
\r
2634 $scope.crudLabel = 'Subnet list';
\r
2636 $scope.l2L3List = {'options' : [], 'labels' : null};
\r
2637 $scope.getDisplayLabelsFromCtrl('GBP_L2FLOOD_LABEL', $scope.l2L3List);
\r
2647 loadL2L3List = function() {
\r
2648 $scope.l2L3List.options = [];
\r
2650 GBPL3ContextServices.load(GBPL3ContextServices.createPathObj($scope.selectedTenant.id), function(l3ContextData){
\r
2651 $scope.l2L3List.options = $scope.l2L3List.options.concat(l3ContextData);
\r
2656 GBPL2FloodDomainServices.load(GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id), function(l2FloodData){
\r
2657 $scope.l2L3List.options = $scope.l2L3List.options.concat(l2FloodData);
\r
2662 GBPL2BridgeDomainServices.load(GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id), function(l2BridgeData){
\r
2663 $scope.l2L3List.options = $scope.l2L3List.options.concat(l2BridgeData);
\r
2669 clear = function(){
\r
2675 $scope.selectedSubnet = null;
\r
2676 $scope.newSubnetObj = GBPSubnetServices.createObj();
\r
2679 $scope.init = function() {
\r
2680 if ( $scope.selectedTenant ) {
\r
2681 path = GBPSubnetServices.createPathObj($scope.selectedTenant.id);
\r
2683 GBPSubnetServices.load(path, function(data){
\r
2684 $scope.list = data;
\r
2685 $scope.newSubnetObj = GBPSubnetServices.createObj();
\r
2686 $scope.selectedSubnet = null;
\r
2688 $scope.view.subnet = false;
\r
2689 $scope.view.edit = "view";
\r
2690 //$scope.sendReloadEventFromRoot('GBP_L2BRIDGE_RELOAD');
\r
2701 $scope.save = function(){
\r
2702 if($scope.validateForm($scope.subnetForm)){
\r
2703 path = GBPSubnetServices.createPathObj($scope.selectedTenant.id, $scope.newSubnetObj.id);
\r
2704 GBPSubnetServices.send(path, $scope.newSubnetObj, function(data){
\r
2706 $scope.view.subnet = false;
\r
2707 $scope.view.edit = "view";
\r
2709 $scope.reloadTopo();
\r
2716 $scope.delete = function() {
\r
2717 if($scope.selectedTenant && $scope.selectedSubnet) {
\r
2718 path = GBPSubnetServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id);
\r
2719 GBPSubnetServices.delete(path, function(data){
\r
2721 $scope.view.subnet = false;
\r
2722 $scope.view.edit = "view";
\r
2724 $scope.reloadTopo();
\r
2731 $scope.reload = function(selectedObj) {
\r
2732 $scope.selectedSubnet = selectedObj;
\r
2734 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
2736 $scope.view.subnet = true;
\r
2739 $scope.view.subnet = false;
\r
2740 $scope.view.edit = "view";
\r
2743 if($scope.view.subnet) {
\r
2744 angular.copy(selectedObj, $scope.newSubnetObj);
\r
2747 $scope.sendReloadEventFromRoot('GBP_SUBNET_RELOAD');
\r
2750 $scope.showForm = function() {
\r
2751 $scope.newSubnetObj = GBPSubnetServices.createObj();
\r
2752 $scope.selectedSubnet = null;
\r
2753 $scope.view.subnet = true;
\r
2754 $scope.view.edit = "add";
\r
2757 $scope.close = function(){
\r
2758 $scope.view.subnet = false;
\r
2761 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2762 if (!event.defaultPrevented) {
\r
2763 if ( $scope.selectedSubnet ) {
\r
2764 $scope.view.subnet = true;
\r
2765 $scope.view.edit = "edit";
\r
2766 angular.copy($scope.selectedSubnet, $scope.newSubnetObj);
\r
2768 event.defaultPrevented = true;
\r
2772 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
2776 $scope.$on('GBP_GATEWAY_RELOAD',function(){
\r
2780 $scope.$on('GBP_L3CONTEXT_RELOAD',function(){
\r
2784 $scope.$on('GBP_L2BRIDGE_RELOAD',function(){
\r
2788 $scope.$on('GBP_L2FLOOD_RELOAD',function(){
\r
2792 $scope.$on('GBP_PREFIX_RELOAD',function(){
\r
2797 gbp.register.controller('gatewayCtrl', ['$scope', 'GBPGatewayServices', function($scope, GBPGatewayServices){
\r
2799 $scope.gatewayView = false;
\r
2800 $scope.selectedGateway = null;
\r
2801 $scope.newGatewayObj = GBPGatewayServices.createObj();
\r
2802 $scope.displayLabel = 'gateway';
\r
2803 $scope.crudLabel = 'Gateway list';
\r
2804 $scope.internalView = {
\r
2811 clear = function(){
\r
2813 $scope.gatewayView = false;
\r
2814 $scope.selectedGateway = null;
\r
2815 $scope.newGatewayObj = GBPGatewayServices.createObj();
\r
2818 $scope.init = function() {
\r
2819 if ( $scope.selectedTenant && $scope.selectedSubnet ) {
\r
2820 path = GBPGatewayServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id);
\r
2822 GBPGatewayServices.load(path, function(data){
\r
2823 $scope.list = data;
\r
2824 $scope.newGatewayObj = GBPGatewayServices.createObj();
\r
2825 $scope.internalView.gateway = false;
\r
2826 $scope.selectedGateway = null;
\r
2835 $scope.save = function(){
\r
2836 if($scope.validateForm($scope.gatewayForm)){
\r
2837 path = GBPGatewayServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id, $scope.newGatewayObj.gateway);
\r
2838 GBPGatewayServices.send(path, $scope.newGatewayObj, function(data){
\r
2840 $scope.internalView.gateway = false;
\r
2841 $scope.internalView.edit = "view";
\r
2842 $scope.sendReloadEventFromRoot('GBP_GATEWAY_RELOAD');
\r
2849 $scope.delete = function() {
\r
2850 if($scope.selectedTenant && $scope.selectedSubnet && $scope.selectedGateway) {
\r
2851 path = GBPGatewayServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id, $scope.selectedGateway.gateway);
\r
2852 GBPGatewayServices.delete(path, function(data){
\r
2854 $scope.internalView.gateway = false;
\r
2855 $scope.sendReloadEventFromRoot('GBP_GATEWAY_RELOAD');
\r
2862 $scope.reload = function(selectedObj) {
\r
2863 $scope.selectedGateway = selectedObj;
\r
2864 angular.copy(selectedObj, $scope.newGatewayObj);
\r
2865 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
2867 $scope.internalView.gateway = true;
\r
2869 $scope.internalView.gateway = false;
\r
2870 $scope.internalView.edit = "view";
\r
2873 $scope.sendReloadEventFromRoot('GBP_GATEWAY_SET');
\r
2876 $scope.showForm = function() {
\r
2877 $scope.newGatewayObj = GBPGatewayServices.createObj();
\r
2878 $scope.internalView.gateway = true;
\r
2879 $scope.internalView.edit = "add";
\r
2880 $scope.selectedGateway = null;
\r
2883 $scope.close = function(){
\r
2884 $scope.internalView.gateway = false;
\r
2887 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2888 if (!event.defaultPrevented) {
\r
2889 if ( $scope.selectedGateway ) {
\r
2890 $scope.internalView.gateway = true;
\r
2891 $scope.internalView.edit = "edit";
\r
2892 angular.copy($scope.selectedGateway, $scope.newGatewayObj);
\r
2894 event.defaultPrevented = true;
\r
2898 $scope.$on('GBP_SUBNET_RELOAD',function(){
\r
2902 $scope.$on('GBP_PREFIX_RELOAD',function(){
\r
2907 gbp.register.controller('prefixCtrl', ['$scope', 'GBPPrefixServices', function($scope, GBPPrefixServices){
\r
2909 $scope.selectedPrefix = null;
\r
2910 $scope.newPrefixObj = GBPPrefixServices.createObj();
\r
2911 $scope.displayLabel = 'prefix';
\r
2912 $scope.crudLabel = 'Prefix list';
\r
2913 $scope.internalView = {
\r
2920 clear = function(){
\r
2922 $scope.selectedPrefix = null;
\r
2923 $scope.newPrefixObj = GBPPrefixServices.createObj();
\r
2924 $scope.internalView = {
\r
2930 $scope.init = function() {
\r
2931 if ( $scope.selectedTenant && $scope.selectedSubnet && $scope.selectedGateway) {
\r
2932 path = GBPPrefixServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id, $scope.selectedGateway.gateway);
\r
2934 GBPPrefixServices.load(path, function(data){
\r
2935 $scope.list = data;
\r
2936 $scope.newPrefixObj = GBPPrefixServices.createObj();
\r
2937 $scope.internalView.prefix = false;
\r
2938 $scope.selectedPrefix = null;
\r
2947 $scope.save = function(){
\r
2948 if($scope.validateForm($scope.prefixForm)){
\r
2949 path = GBPPrefixServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id, $scope.selectedGateway.gateway, $scope.newPrefixObj.prefix);
\r
2950 GBPPrefixServices.send(path, $scope.newPrefixObj, function(data){
\r
2952 $scope.internalView.prefix = false;
\r
2953 $scope.internalView.edit = "view";
\r
2954 $scope.sendReloadEventFromRoot('GBP_PREFIX_RELOAD');
\r
2961 $scope.delete = function() {
\r
2962 path = GBPPrefixServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id, $scope.selectedGateway.gateway, $scope.selectedPrefix.prefix);
\r
2963 GBPPrefixServices.delete(path, function(data){
\r
2965 $scope.internalView.prefix = false;
\r
2966 $scope.sendReloadEventFromRoot('GBP_PREFIX_RELOAD');
\r
2972 $scope.reload = function(selectedObj) {
\r
2973 $scope.selectedPrefix = selectedObj;
\r
2974 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
2976 $scope.internalView.prefix = true;
\r
2978 $scope.internalView.prefix = false;
\r
2979 $scope.internalView.edit = "view";
\r
2982 angular.copy(selectedObj, $scope.newPrefixObj);
\r
2985 $scope.showForm = function() {
\r
2986 $scope.newPrefixObj = GBPPrefixServices.createObj();
\r
2987 $scope.internalView.prefix = true;
\r
2988 $scope.internalView.edit = "add";
\r
2989 $scope.selectedPrefix = null;
\r
2992 $scope.close = function(){
\r
2993 $scope.internalView.prefix = false;
\r
2996 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2997 if (!event.defaultPrevented) {
\r
2998 if ( $scope.selectedPrefix ) {
\r
2999 $scope.internalView.prefix = true;
\r
3000 $scope.internalView.edit = "edit";
\r
3001 angular.copy($scope.selectedPrefix, $scope.newPrefixObj);
\r
3003 event.defaultPrevented = true;
\r
3007 $scope.$on('GBP_GATEWAY_SET',function(){
\r
3012 gbp.register.controller('renderersCtrl', ['$scope', 'GPBServices', function($scope, GPBServices){ //GBPContractServices
\r
3013 $scope.classifierDefinitions = {'options' : [], 'labels' : null};
\r
3014 $scope.actionDefinitions = {'options' : [], 'labels' : null};
\r
3016 //reload on event?
\r
3018 var loadDefinitions = function() {
\r
3019 GPBServices.getDefinitions(function(classifierDefs, actionDefs) {
\r
3020 $scope.classifierDefinitions.options = classifierDefs;
\r
3021 $scope.getDisplayLabelsFromCtrl('GBP_CLASSIFIERS_LABEL', $scope.classifierDefinitions);
\r
3023 $scope.actionDefinitions.options = actionDefs;
\r
3024 $scope.getDisplayLabelsFromCtrl('GBP_ACTIONS_LABEL', $scope.actionDefinitions);
\r
3028 loadDefinitions();
\r
3031 gbp.register.controller('paramCtrl', ['$scope', 'GPBServices', function($scope, GPBServices){
\r
3032 $scope.value = null;
\r
3034 $scope.init = function(param, paramValues) {
\r
3035 $scope.parameter = param;
\r
3038 paramValues.forEach(function(p) {
\r
3039 if($scope.parameter.name === p.name) {
\r
3040 $scope.value = GPBServices.getInstanceParamValue(p);
\r
3046 $scope.$on('GBP_SAVE_PARAM', function(event){
\r
3047 if($scope.value !== '' && $scope.value !== null) {
\r
3048 $scope.addParam($scope.parameter.name, $scope.parameter.type, $scope.value);
\r
3052 $scope.$on('GBP_SET_PARAM_VALUE', function(event, name, intVal, strVal) {
\r
3053 //console.info($scope.parameter, ' got GBP_SET_PARAM_VALUE', name, intVal, strVal, event);
\r
3057 $scope.$on('GBP_RESET_PARAM', function(event){
\r
3058 $scope.value = null;
\r
3062 gbp.register.controller('classifiersCtrl', ['$scope', 'GBPClassifierInstanceServices', 'GPBServices', '$filter',
\r
3063 function($scope, GBPClassifierInstanceServices, GPBServices, $filter){
\r
3065 $scope.classifiersView = false;
\r
3066 $scope.displayLabel = 'name';
\r
3067 $scope.selectedClassifier = null;
\r
3068 $scope.crudLabel = 'Classifiers';
\r
3069 $scope.newClassifierObj = GBPClassifierInstanceServices.createObj();
\r
3070 $scope.edit = "view";
\r
3072 var mandatoryProperties = ['name'],
\r
3074 clear = function(){
\r
3076 $scope.classifiersView = false;
\r
3077 $scope.selectedClassifier = null;
\r
3078 $scope.newClassifierObj = GBPClassifierInstanceServices.createObj();
\r
3079 $scope.edit = "view";
\r
3082 $scope.getDefinitionObjParams = function(id){
\r
3083 return GPBServices.getDefinitionObjParams($scope.classifierDefinitions.options, id);
\r
3086 $scope.reloadDefs = function(){
\r
3087 $scope.defs = angular.copy($scope.getDefinitionObjParams($scope.newClassifierObj['classifier-definition-id']));
\r
3090 $scope.addParam = function(name, type, value) {
\r
3091 $scope.newClassifierObj['parameter-value'].push(GPBServices.createParamObj(name, type, value));
\r
3094 var saveParams = function() {
\r
3095 $scope.newClassifierObj['parameter-value'] = [];
\r
3096 $scope.$broadcast('GBP_SAVE_PARAM');
\r
3100 $scope.init = function() {
\r
3101 if ( $scope.selectedTenant ) {
\r
3102 path = GBPClassifierInstanceServices.createPathObj($scope.selectedTenant.id);
\r
3103 GBPClassifierInstanceServices.load(path, function(data){
\r
3104 $scope.list = data;
\r
3105 $scope.reloadDefs();
\r
3114 $scope.save = function(){
\r
3115 if($scope.validateForm($scope.classifierForm)){
\r
3116 path = GBPClassifierInstanceServices.createPathObj($scope.selectedTenant.id, $scope.newClassifierObj.name);
\r
3118 GBPClassifierInstanceServices.send(path, $scope.newClassifierObj, function(data){
\r
3120 $scope.classifiersView = false;
\r
3121 $scope.edit = "view";
\r
3122 $scope.sendReloadEventFromRoot('GBP_CLASSIFIER_INSTANCE_RELOAD');
\r
3129 $scope.showForm = function() {
\r
3130 $scope.newClassifierObj = GBPClassifierInstanceServices.createObj();
\r
3131 $scope.selectedClassifier = null;
\r
3132 $scope.classifiersView = true;
\r
3133 $scope.edit = "add";
\r
3134 $scope.reloadDefs();
\r
3137 $scope.reload = function(selectedObj){
\r
3138 $scope.selectedClassifier = selectedObj;
\r
3139 $scope.sendReloadEventFromRoot('GBP_CLASSIFIER_INSTANCE_RELOAD');
\r
3141 $scope.edit = $scope.edit == "edit" ? $scope.edit : "view";
\r
3143 $scope.classifiersView = true;
\r
3146 $scope.classifiersView = false;
\r
3147 $scope.edit = "view";
\r
3150 if($scope.classifiersView) {
\r
3151 angular.copy(selectedObj, $scope.newClassifierObj);
\r
3154 $scope.reloadDefs();
\r
3157 $scope.close = function(){
\r
3158 $scope.classifiersView = false;
\r
3159 $scope.edit = "view";
\r
3162 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
3163 if (!event.defaultPrevented) {
\r
3164 if ( $scope.selectedClassifier ) {
\r
3165 $scope.classifiersView = true;
\r
3166 angular.copy($scope.selectedClassifier, $scope.newClassifierObj);
\r
3167 $scope.edit = "edit";
\r
3168 $scope.reloadDefs();
\r
3170 event.defaultPrevented = true;
\r
3174 $scope.delete = function(){
\r
3175 path = GBPClassifierInstanceServices.createPathObj($scope.selectedTenant.id, $scope.selectedClassifier.name);
\r
3176 GBPClassifierInstanceServices.delete(path, function(data){
\r
3178 $scope.classifiersView = false;
\r
3179 $scope.sendReloadEventFromRoot('GBP_CLASSIFIER_INSTANCE_RELOAD');
\r
3185 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
3189 $scope.$on('GBP_CLASSIFIERS_LABEL', function(event, obj){
\r
3190 obj.labels = $scope.displayLabel;
\r
3194 gbp.register.controller('actionsCtrl', ['$scope', 'GBPActionInstanceServices', 'GPBServices', '$filter',
\r
3195 function($scope, GBPActionInstanceServices, GPBServices, $filter){
\r
3197 $scope.actionsView = false;
\r
3198 $scope.displayLabel = 'name';
\r
3199 $scope.selectedAction = null;
\r
3200 $scope.crudLabel = 'Actions';
\r
3201 $scope.newActionObj = GBPActionInstanceServices.createObj();
\r
3202 $scope.edit = "view";
\r
3204 var mandatoryProperties = ['name'],
\r
3206 clear = function(){
\r
3208 $scope.actionsView = false;
\r
3209 $scope.selectedAction = null;
\r
3210 $scope.newActionObj = GBPActionInstanceServices.createObj();
\r
3211 $scope.edit = "view";
\r
3214 $scope.getDefinitionObjParams = function(id){
\r
3215 return GPBServices.getDefinitionObjParams($scope.actionDefinitions.options, id);
\r
3218 $scope.reloadDefs = function(){
\r
3219 $scope.defs = angular.copy($scope.getDefinitionObjParams($scope.newActionObj['action-definition-id']));
\r
3222 $scope.addParam = function(name, type, value) {
\r
3223 $scope.newActionObj['parameter-value'].push(GPBServices.createParamObj(name, type, value));
\r
3226 var saveParams = function() {
\r
3227 $scope.newActionObj['parameter-value'] = [];
\r
3228 $scope.$broadcast('GBP_SAVE_PARAM');
\r
3232 $scope.init = function() {
\r
3233 if ( $scope.selectedTenant ) {
\r
3234 path = GBPActionInstanceServices.createPathObj($scope.selectedTenant.id);
\r
3235 GBPActionInstanceServices.load(path, function(data){
\r
3236 $scope.list = data;
\r
3237 $scope.reloadDefs();
\r
3246 $scope.save = function(){
\r
3247 if($scope.validateForm($scope.actionsForm)){
\r
3248 path = GBPActionInstanceServices.createPathObj($scope.selectedTenant.id, $scope.newActionObj.name);
\r
3251 GBPActionInstanceServices.send(path, $scope.newActionObj, function(data){
\r
3253 $scope.actionsView = false;
\r
3254 $scope.edit = "view";
\r
3255 $scope.sendReloadEventFromRoot('GBP_ACTION_INSTANCE_RELOAD');
\r
3262 $scope.showForm = function() {
\r
3263 $scope.newActionObj = GBPActionInstanceServices.createObj();
\r
3264 $scope.selectedAction = null;
\r
3265 $scope.actionsView = true;
\r
3266 $scope.edit = "add";
\r
3267 $scope.reloadDefs();
\r
3270 $scope.reload = function(selectedObj){
\r
3271 $scope.selectedAction = selectedObj;
\r
3272 $scope.sendReloadEventFromRoot('GBP_ACTION_INSTANCE_RELOAD');
\r
3274 $scope.edit = $scope.edit == "edit" ? $scope.edit : "view";
\r
3276 $scope.actionsView = true;
\r
3279 $scope.actionsView = false;
\r
3280 $scope.edit = "view";
\r
3283 if($scope.actionsView) {
\r
3284 angular.copy(selectedObj, $scope.newActionObj);
\r
3287 $scope.reloadDefs();
\r
3290 $scope.close = function(){
\r
3291 $scope.actionsView = false;
\r
3292 $scope.edit = "view";
\r
3295 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
3296 if (!event.defaultPrevented) {
\r
3297 if ( $scope.selectedAction ) {
\r
3298 $scope.actionsView = true;
\r
3299 angular.copy($scope.selectedAction, $scope.newActionObj);
\r
3300 $scope.edit = "edit";
\r
3301 $scope.reloadDefs();
\r
3303 event.defaultPrevented = true;
\r
3307 $scope.delete = function(){
\r
3308 path = GBPActionInstanceServices.createPathObj($scope.selectedTenant.id, $scope.selectedAction.name);
\r
3309 GBPActionInstanceServices.delete(path, function(data){
\r
3311 $scope.actionsView = false;
\r
3312 $scope.sendReloadEventFromRoot('GBP_ACTION_INSTANCE_RELOAD');
\r
3318 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
3322 $scope.$on('GBP_ACTIONS_LABEL', function(event, obj){
\r
3323 obj.labels = $scope.displayLabel;
\r
3327 gbp.register.controller('endpointCtrl', ['$scope', 'GBPEndpointServices', 'GPBServices', 'GBPL2FloodDomainServices', 'GBPL2BridgeDomainServices', 'GBPL3ContextServices', 'GBPEpgServices', '$filter', 'GBPSubnetServices',
\r
3328 function($scope, GBPEndpointServices, GPBServices, GBPL2FloodDomainServices, GBPL2BridgeDomainServices, GBPL3ContextServices, GBPEpgServices, $filter, GBPSubnetServices){
\r
3330 $scope.selectedEndpoint = null;
\r
3331 $scope.newEndpointObj = GBPEndpointServices.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3332 $scope.displayLabel = function(obj) {
\r
3333 return obj['mac-address'] + ':' + obj['l2-context'];
\r
3335 $scope.crudLabel = 'Endpoint list';
\r
3337 $scope.l2context = {'options' : [], 'labels' : null};
\r
3338 $scope.getDisplayLabelsFromCtrl('GBP_L2FLOOD_LABEL', $scope.l2context);
\r
3340 $scope.l3context = {'options' : [], 'labels' : null};
\r
3341 $scope.getDisplayLabelsFromCtrl('GBP_L3CONTEXT_LABEL', $scope.l3context);
\r
3343 $scope.subnet = {'options' : [], 'labels' : null};
\r
3344 $scope.getDisplayLabelsFromCtrl('GBP_SUBNET_LABEL', $scope.subnet);
\r
3346 $scope.epg = {'options' : [], 'labels' : null};
\r
3347 $scope.getDisplayLabelsFromCtrl('GBP_EPG_LABEL', $scope.epg);
\r
3349 $scope.networkContainment = {'options' : [], 'labels' : null};
\r
3350 $scope.getDisplayLabelsFromCtrl('GBP_L2FLOOD_LABEL', $scope.networkContainment);
\r
3358 mandatoryProperties = [],
\r
3360 loadEpgOptions = function() {
\r
3361 $scope.epg.options = [];
\r
3363 path = GBPEpgServices.createPathObj($scope.selectedTenant.id);
\r
3364 GBPEpgServices.load(path, function(data){
\r
3365 $scope.epg.options = data;
\r
3371 loadL2ContextOptions = function() {
\r
3372 removeL2ContextOptions($scope.networkContainment.options, $scope.l2context.options);
\r
3373 $scope.l2context.options = [];
\r
3375 path = GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id);
\r
3377 GBPL2FloodDomainServices.load(path, function(data){
\r
3378 $scope.l2context.options = $scope.l2context.options.concat(data);
\r
3379 $scope.networkContainment.options = $scope.networkContainment.options.concat(data);
\r
3384 path = GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id);
\r
3385 GBPL2BridgeDomainServices.load(path, function(data){
\r
3386 $scope.l2context.options = $scope.l2context.options.concat(data);
\r
3387 $scope.networkContainment.options = $scope.networkContainment.options.concat(data);
\r
3393 loadL3ContextOptions = function(){
\r
3394 removeL2ContextOptions($scope.networkContainment.options, $scope.l3context.options);
\r
3395 $scope.l3context.options = [];
\r
3397 GBPL3ContextServices.load(GBPL3ContextServices.createPathObj($scope.selectedTenant.id), function(data){
\r
3398 $scope.l3context.options = data;
\r
3399 $scope.networkContainment.options = $scope.networkContainment.options.concat(data);
\r
3405 loadSubnetOptions = function(){
\r
3406 $scope.subnet.options = [];
\r
3408 GBPSubnetServices.load(GBPSubnetServices.createPathObj($scope.selectedTenant.id), function(data){
\r
3409 $scope.subnet.options = data;
\r
3410 $scope.networkContainment.options = $scope.networkContainment.options.concat(data);
\r
3416 loadNetworkCotnaninemnt = function(){
\r
3417 $scope.networkContainment.options = [];
\r
3419 loadL2ContextOptions();
\r
3420 loadL3ContextOptions();
\r
3421 loadSubnetOptions();
\r
3424 clear = function(){
\r
3426 $scope.selectedEndpoint = null;
\r
3427 $scope.newEndpointObj = GBPEndpointServices.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3433 removeL2ContextOptions = function(arr1, arr2) {
\r
3434 arr1 = arr1.filter( function( el ) {
\r
3435 return arr2.indexOf( el ) < 0;
\r
3439 $scope.init = function() {
\r
3440 if ($scope.selectedTenant) {
\r
3442 GBPEndpointServices.load(path, function(data){
\r
3443 $scope.list = data;
\r
3449 /*loadL2ContextOptions();
\r
3450 loadL3ContextOptions();
\r
3451 loadSubnetOptions();*/
\r
3452 loadNetworkCotnaninemnt();
\r
3458 $scope.addNewL3address = function() {
\r
3459 if($scope.newEndpointObj) {
\r
3460 if(!$scope.newEndpointObj['l3-address']){
\r
3461 $scope.newEndpointObj['l3-address'] = [];
\r
3463 var objToPush = {'l3-context' : '', 'ip-address' : ''};
\r
3464 $scope.newEndpointObj['l3-address'].push(objToPush);
\r
3468 $scope.deleteNewL3address = function(index){
\r
3469 if($scope.newEndpointObj) {
\r
3470 $scope.newEndpointObj['l3-address'].splice(index, 1);
\r
3474 $scope.addNewLeafListEl = function(prop) {
\r
3475 if($scope.newEndpointObj) {
\r
3476 if(!$scope.newEndpointObj[prop]){
\r
3477 $scope.newEndpointObj[prop] = [];
\r
3479 var objToPush = "";
\r
3480 $scope.newEndpointObj[prop].push(objToPush);
\r
3484 $scope.updateLeafListEl = function(index, value, prop) {
\r
3485 if($scope.newEndpointObj && $scope.newEndpointObj[prop] && $scope.newEndpointObj[prop].length >= index) {
\r
3486 $scope.newEndpointObj[prop][index] = value;
\r
3490 $scope.deleteNewLeafListEl = function(index, prop){
\r
3491 if($scope.newEndpointObj) {
\r
3492 $scope.newEndpointObj[prop].splice(index, 1);
\r
3496 $scope.save = function(){
\r
3497 if($scope.validateForm($scope.endpointForm)){
\r
3498 GBPEndpointServices.send(path, $scope.newEndpointObj, function(data){
\r
3500 $scope.view.endpoint = false;
\r
3501 $scope.reloadNewObj();
\r
3502 $scope.view.edit = "view";
\r
3509 $scope.delete = function() {
\r
3510 if($scope.selectedTenant && $scope.selectedEndpoint) {
\r
3511 GBPEndpointServices.delete(path, $scope.selectedEndpoint, function(data){
\r
3513 $scope.view.endpoint = false;
\r
3520 $scope.showForm = function() {
\r
3521 $scope.view.endpoint = true;
\r
3522 $scope.reloadNewObj();
\r
3523 $scope.selectedEndpoint = null;
\r
3525 $scope.view.edit = "add";
\r
3528 $scope.reloadNewObj = function() {
\r
3529 $scope.newEndpointObj = GBPEndpointServices.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3532 $scope.reload = function(selectedObj) {
\r
3533 $scope.selectedEndpoint = selectedObj;
\r
3534 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
3536 $scope.view.endpoint = true;
\r
3539 $scope.view.endpoint = false;
\r
3540 $scope.view.edit = "view";
\r
3543 if($scope.view.endpoint) {
\r
3544 angular.copy(selectedObj, $scope.newEndpointObj);
\r
3548 $scope.close = function(){
\r
3549 $scope.view.endpoint = false;
\r
3550 $scope.view.edit = "view";
\r
3553 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
3554 if (!event.defaultPrevented) {
\r
3555 if ( $scope.selectedEndpoint ) {
\r
3556 $scope.view.endpoint = true;
\r
3557 $scope.view.edit = "edit";
\r
3558 angular.copy($scope.selectedEndpoint, $scope.newEndpointObj);
\r
3560 event.defaultPrevented = true;
\r
3564 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
3568 $scope.$on('GBP_EPG_RELOAD',function(){
\r
3572 $scope.$on('GBP_L2BRIDGE_RELOAD',function(){
\r
3573 //loadL2ContextOptions();
\r
3574 loadNetworkCotnaninemnt();
\r
3577 $scope.$on('GBP_L2FLOOD_RELOAD',function(){
\r
3578 //loadL2ContextOptions();
\r
3579 loadNetworkCotnaninemnt();
\r
3582 $scope.$on('GBP_L3CONTEXT_RELOAD',function(){
\r
3583 //loadL3ContextOptions();
\r
3584 loadNetworkCotnaninemnt();
\r
3587 $scope.$on('GBP_SUBNET_RELOAD',function(){
\r
3588 //loadSubnetOptions();
\r
3589 loadNetworkCotnaninemnt();
\r
3593 gbp.register.controller('l3EndpointCtrl', ['$scope', 'GBPEndpointL3Services', 'GPBServices', 'GBPEpgServices', 'GBPL3ContextServices', 'GBPL2FloodDomainServices', 'GBPL2BridgeDomainServices', '$filter',
\r
3594 function($scope, GBPEndpointL3Services, GPBServices, GBPEpgServices, GBPL3ContextServices, GBPL2FloodDomainServices, GBPL2BridgeDomainServices, $filter){
\r
3596 $scope.selectedEndpoint = null;
\r
3597 $scope.newEndpointObj = GBPEndpointL3Services.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3598 $scope.displayLabel = function(obj) {
\r
3599 return obj['ip-prefix'] + ':' + obj['l3-context'];
\r
3601 $scope.crudLabel = 'L3 Prefix endpoint list';
\r
3603 $scope.l2context = {'options' : [], 'labels' : null};
\r
3604 $scope.getDisplayLabelsFromCtrl('GBP_L2FLOOD_LABEL', $scope.l2context);
\r
3606 $scope.l3context = {'options' : [], 'labels' : null};
\r
3607 $scope.getDisplayLabelsFromCtrl('GBP_L3CONTEXT_LABEL', $scope.l3context);
\r
3609 $scope.epg = {'options' : [], 'labels' : null};
\r
3610 $scope.getDisplayLabelsFromCtrl('GBP_EPG_LABEL', $scope.epg);
\r
3618 mandatoryProperties = [],
\r
3620 loadEpgOptions = function() {
\r
3621 $scope.epg.options = [];
\r
3623 path = GBPEpgServices.createPathObj($scope.selectedTenant.id);
\r
3624 GBPEpgServices.load(path, function(data){
\r
3625 $scope.epg.options = data;
\r
3631 loadL2ContextOptions = function() {
\r
3632 $scope.l2context.options = [];
\r
3634 path = GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id);
\r
3636 GBPL2FloodDomainServices.load(path, function(data){
\r
3637 $scope.l2context.options = $scope.l2context.options.concat(data);
\r
3642 path = GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id);
\r
3643 GBPL2BridgeDomainServices.load(path, function(data){
\r
3644 $scope.l2context.options = $scope.l2context.options.concat(data);
\r
3650 loadL3ContextOptions = function(){
\r
3651 $scope.l3context.options = [];
\r
3653 GBPL3ContextServices.load(GBPL3ContextServices.createPathObj($scope.selectedTenant.id), function(data){
\r
3654 $scope.l3context.options = data;
\r
3660 clear = function(){
\r
3662 $scope.selectedEndpoint = null;
\r
3663 $scope.newEndpointObj = GBPEndpointL3Services.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3670 $scope.init = function() {
\r
3671 if ($scope.selectedTenant) {
\r
3673 GBPEndpointL3Services.load(path, function(data){
\r
3674 $scope.list = data;
\r
3680 loadL2ContextOptions();
\r
3681 loadL3ContextOptions();
\r
3687 $scope.addNewL2gateways = function() {
\r
3688 if($scope.newEndpointObj) {
\r
3689 if(!$scope.newEndpointObj['endpoint-l2-gateways']){
\r
3690 $scope.newEndpointObj['endpoint-l2-gateways'] = [];
\r
3692 var objToPush = {'l2-context' : '', 'mac-address' : ''};
\r
3693 $scope.newEndpointObj['endpoint-l2-gateways'].push(objToPush);
\r
3697 $scope.deleteNewL2gateways = function(index){
\r
3698 if($scope.newEndpointObj) {
\r
3699 $scope.newEndpointObj['endpoint-l2-gateways'].splice(index, 1);
\r
3703 $scope.addNewL3gateways = function() {
\r
3704 if($scope.newEndpointObj) {
\r
3705 if(!$scope.newEndpointObj['endpoint-l3-gateways']){
\r
3706 $scope.newEndpointObj['endpoint-l3-gateways'] = [];
\r
3708 var objToPush = {'l3-context' : '', 'ip-address' : ''};
\r
3709 $scope.newEndpointObj['endpoint-l3-gateways'].push(objToPush);
\r
3713 $scope.deleteNewL3gateways = function(index){
\r
3714 if($scope.newEndpointObj) {
\r
3715 $scope.newEndpointObj['endpoint-l3-gateways'].splice(index, 1);
\r
3719 $scope.addNewLeafListEl = function(prop) {
\r
3720 if($scope.newEndpointObj) {
\r
3721 if(!$scope.newEndpointObj[prop]){
\r
3722 $scope.newEndpointObj[prop] = [];
\r
3724 var objToPush = "";
\r
3725 $scope.newEndpointObj[prop].push(objToPush);
\r
3729 $scope.updateLeafListEl = function(index, value, prop) {
\r
3730 if($scope.newEndpointObj && $scope.newEndpointObj[prop] && $scope.newEndpointObj[prop].length >= index) {
\r
3731 $scope.newEndpointObj[prop][index] = value;
\r
3735 $scope.deleteNewLeafListEl = function(index, prop){
\r
3736 if($scope.newEndpointObj) {
\r
3737 $scope.newEndpointObj[prop].splice(index, 1);
\r
3741 $scope.save = function(){
\r
3742 if($scope.validateForm($scope.l3EndpointForm)){
\r
3743 GBPEndpointL3Services.send(path, $scope.newEndpointObj, function(data){
\r
3745 $scope.view.endpoint = false;
\r
3746 $scope.reloadNewObj();
\r
3747 $scope.view.edit = "view";
\r
3754 $scope.delete = function() {
\r
3755 if($scope.selectedTenant && $scope.selectedEndpoint) {
\r
3756 GBPEndpointL3Services.delete(path, $scope.selectedEndpoint, function(data){
\r
3764 $scope.showForm = function() {
\r
3765 $scope.view.endpoint = true;
\r
3766 $scope.reloadNewObj();
\r
3767 $scope.selectedEndpoint = null;
\r
3768 $scope.view.edit = "add";
\r
3771 $scope.reloadNewObj = function() {
\r
3772 $scope.newEndpointObj = GBPEndpointL3Services.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3775 $scope.reload = function(selectedObj) {
\r
3776 $scope.selectedEndpoint = selectedObj;
\r
3777 angular.copy(selectedObj, $scope.newEndpointObj);
\r
3778 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
3780 $scope.view.endpoint = true;
\r
3783 $scope.view.endpoint = false;
\r
3784 $scope.view.edit = "view";
\r
3788 $scope.close = function(){
\r
3789 $scope.view.endpoint = false;
\r
3790 $scope.view.edit = "view";
\r
3793 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
3794 if (!event.defaultPrevented) {
\r
3795 if ( $scope.selectedEndpoint ) {
\r
3796 $scope.view.endpoint = true;
\r
3797 $scope.view.edit = "edit";
\r
3798 angular.copy($scope.selectedEndpoint, $scope.newEndpointObj);
\r
3800 event.defaultPrevented = true;
\r
3804 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
3808 $scope.$on('GBP_EPG_RELOAD',function(){
\r
3812 $scope.$on('GBP_L2BRIDGE_RELOAD',function(){
\r
3813 loadL2ContextOptions();
\r
3816 $scope.$on('GBP_L2FLOOD_RELOAD',function(){
\r
3817 loadL2ContextOptions();
\r
3820 $scope.$on('GBP_L3CONTEXT_RELOAD',function(){
\r
3821 loadL3ContextOptions();
\r
3825 gbp.register.controller('accessModelWizardCtrl', ['$scope', '$filter', 'GBPTenantServices', 'GBPEpgServices', 'GBPContractServices', 'GPBServices', function($scope, $filter, GBPTenantServices, GBPEpgServices, GBPContractServices, GPBServices){
\r
3826 $scope.wizardPage = null;
\r
3828 $scope.selectedTenant = null;
\r
3829 $scope.tenant = null;
\r
3830 //$scope.epgList = [];
\r
3831 $scope.newContractObj = null;
\r
3833 $scope.init = function() {
\r
3834 $scope.setPage('tenants');
\r
3837 $scope.setPage = function(pageName, object) {
\r
3838 $scope.wizardPage = pageName;
\r
3840 switch(pageName) {
\r
3843 $scope.tenant = object;
\r
3849 $scope.tenant['endpoint-group'] = $scope.tenant['endpoint-group'] ? $scope.tenant['endpoint-group'] : [];
\r
3852 object.forEach(function(o) {
\r
3853 $scope.tenant['endpoint-group'].push(GPBServices.stripNullValues(o));
\r
3860 $scope.tenant['contract'] = $scope.tenant['contract'] ? $scope.tenant['contract'] : [];
\r
3863 object.forEach(function(o) {
\r
3864 $scope.tenant['contract'].push(GPBServices.stripNullValues(o));
\r
3872 $scope.submit = function(object) {
\r
3873 $scope.tenant['endpoint-group'] = $scope.tenant['endpoint-group'] ? $scope.tenant['endpoint-group'] : [];
\r
3876 object.forEach(function(o) {
\r
3877 $scope.tenant['endpoint-group'].push(GPBServices.stripNullValues(o));
\r
3882 path = GBPTenantServices.createPathObj($scope.tenant.id);
\r
3883 GBPTenantServices.send(path, $scope.tenant, function(data){
\r
3884 $scope.wizards.accessModelWizard = false;
\r
3885 $scope.sendReloadEventFromRoot('GBP_GLOBAL_TENANT_RELOAD');
\r
3886 $scope.reloadTopo();
\r
3892 // $scope.updateList = function(list, object, key) {
\r
3893 // var elementPos = list.map(function(x) {return x[key]; }).indexOf(object[key]);
\r
3895 // if(elementPos < 0) {
\r
3896 // list.push(object);
\r
3899 // list[elementPos] = object;
\r
3904 gbp.register.controller('wizardTenantCtrl', ['$scope', '$filter', 'GBPTenantServices', function($scope, $filter, GBPTenantServices){
\r
3905 // $scope.tenantList = [];
\r
3906 $scope.newTenantObj = GBPTenantServices.createObj();
\r
3907 $scope.displayLabel = ['name' , 'id'];
\r
3913 // $scope.init = function() {
\r
3914 // $scope.getTenants();
\r
3917 // $scope.getTenants = function() {
\r
3918 // GBPTenantServices.load(
\r
3919 // function(data) {
\r
3920 // $scope.tenantList = data;
\r
3921 // $scope.newTenantObj = GBPTenantServices.createObj();
\r
3929 $scope.reloadTenants = function(selectedObject) {
\r
3930 if(!selectedObject) {
\r
3931 selectedObject = GBPTenantServices.createObj();
\r
3932 $scope.view.tenantEdit = false;
\r
3935 $scope.view.tenantEdit = true;
\r
3938 $scope.selectedTenant = selectedObject;
\r
3939 $scope.newTenantObj = selectedObject;
\r
3942 $scope.getNewTenantObject = function() {
\r
3943 return GBPTenantServices.createObj();
\r
3947 gbp.register.controller('wizardEpgCtrl', ['$scope', '$filter', 'GBPEpgServices', function($scope, $filter, GBPEpgServices){
\r
3949 $scope.newEpgObj = GBPEpgServices.createObj();
\r
3950 $scope.selectedEpg = null;
\r
3951 $scope.epgFormView = true;
\r
3953 $scope.displayLabel = ['name', 'id'];
\r
3954 $scope.crudLabel = 'Group list';
\r
3956 $scope.igpOpts = ['allow', 'require-contract'];
\r
3958 $scope.init = function() {
\r
3962 $scope.showForm = function() {
\r
3963 $scope.epgFormView = true;
\r
3964 $scope.newEpgObj = GBPEpgServices.createObj();
\r
3967 $scope.save = function() {
\r
3968 $scope.updateList($scope.list, $scope.newEpgObj, "id");
\r
3969 $scope.reload($scope.newEpgObj);
\r
3970 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newEpgObj);
\r
3973 $scope.delete = function() {
\r
3974 if($scope.selectedEpg) {
\r
3975 var index = $scope.list.indexOf($scope.selectedEpg);
\r
3976 $scope.list.splice(index, 1);
\r
3977 $scope.epgFormView = false;
\r
3979 //$scope.newEpgObj = GBPEpgServices.createObj();
\r
3982 $scope.reload = function(selectedObj) {
\r
3983 $scope.selectedEpg = selectedObj;
\r
3984 $scope.newEpgObj = selectedObj;
\r
3985 $scope.epgFormView = true;
\r
3986 $scope.$broadcast('WIZARD_EPG_RELOAD');
\r
3989 $scope.close = function() {
\r
3990 $scope.epgFormView = false;
\r
3991 $scope.newEpgObj = GBPEpgServices.createObj();
\r
3992 $scope.selectedEpg = null;
\r
3995 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
3996 if (!event.defaultPrevented) {
\r
3997 if ( $scope.selectedEpg ) {
\r
3998 $scope.epgFormView = true;
\r
3999 angular.copy($scope.selectedEpg, $scope.newEpgObj);
\r
4001 event.defaultPrevented = true;
\r
4005 $scope.$on("WIZARD_CNS_RELOAD", function(event, args){
\r
4006 //$scope.selectedEpg['consumer-named-selector'] = args;
\r
4007 $scope.newEpgObj['consumer-named-selector'] = args;
\r
4008 $scope.updateList($scope.list, $scope.newEpgObj, "id");
\r
4011 $scope.$on("WIZARD_PNS_RELOAD", function(event, args){
\r
4012 //$scope.selectedEpg['provider-named-selector'] = args;
\r
4013 $scope.newEpgObj['provider-named-selector'] = args;
\r
4014 $scope.updateList($scope.list, $scope.newEpgObj, "id");
\r
4018 gbp.register.controller('wizardContractCtrl', ['$scope', '$filter', 'GBPContractServices', function($scope, $filter, GBPContractServices){
\r
4020 $scope.newContractObj = GBPContractServices.createObj();
\r
4021 $scope.selectedContract = null;
\r
4023 $scope.displayLabel = ['description', 'id'];
\r
4024 $scope.crudLabel = 'Contract list';
\r
4026 $scope.contractFormView = true;
\r
4028 $scope.init = function() {
\r
4032 $scope.showForm = function() {
\r
4033 $scope.contractFormView = true;
\r
4034 $scope.newContractObj = GBPContractServices.createObj();
\r
4037 $scope.save = function() {
\r
4038 $scope.updateList($scope.list, $scope.newContractObj, "id");
\r
4039 $scope.reload($scope.newContractObj);
\r
4040 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newContractObj);
\r
4043 $scope.delete = function() {
\r
4044 if($scope.selectedContract) {
\r
4045 var index = $scope.list.indexOf($scope.selectedContract);
\r
4046 $scope.list.splice(index, 1);
\r
4047 $scope.contractFormView = false;
\r
4048 $scope.newContractObj = GBPContractServices.createObj();
\r
4049 $scope.selectedContract = null;
\r
4053 $scope.reload = function(selectedObj) {
\r
4054 $scope.selectedContract = selectedObj;
\r
4055 $scope.newContractObj = selectedObj;
\r
4056 $scope.contractFormView = true;
\r
4059 $scope.close = function() {
\r
4060 $scope.contractFormView = false;
\r
4061 //$scope.newContractObj = GBPContractServices.createObj();
\r
4062 //$scope.selectedContract = null;
\r
4065 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4066 if (!event.defaultPrevented) {
\r
4067 if ( $scope.selectedContract ) {
\r
4068 $scope.contractFormView = true;
\r
4069 angular.copy($scope.selectedContract, $scope.newContractObj);
\r
4071 event.defaultPrevented = true;
\r
4075 $scope.$on("WIZARD_SUBJECT_RELOAD", function(event, args){
\r
4076 //$scope.selectedEpg['consumer-named-selector'] = args;
\r
4077 $scope.newContractObj['subject'] = args;
\r
4078 $scope.updateList($scope.list, $scope.newContractObj, "id");
\r
4081 $scope.$on("WIZARD_CLAUSE_RELOAD", function(event, args){
\r
4082 //$scope.selectedEpg['consumer-named-selector'] = args;
\r
4083 $scope.newContractObj['clause'] = args;
\r
4084 $scope.updateList($scope.list, $scope.newContractObj, "id");
\r
4088 gbp.register.controller('wizardCnsCtrl',['$scope', 'GBPConNamedSelServices', function($scope, GBPConNamedSelServices){
\r
4090 $scope.selectedCNS = null;
\r
4091 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
4092 $scope.internalView = {
\r
4096 $scope.displayLabel = 'name';
\r
4097 $scope.crudLabel = 'Consumer named selectors list';
\r
4099 $scope.contractList = {'options' : [], 'labels' : null};
\r
4100 $scope.getDisplayLabelsFromCtrl('GBP_CONTRACTS_LABEL', $scope.contractList);
\r
4102 var clear = function(){
\r
4104 $scope.selectedCNS = null;
\r
4105 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
4106 $scope.internalView = {
\r
4112 //move to separate ctrl \/
\r
4113 $scope.addNewElem = function(templateObj) {
\r
4114 if($scope.newCNSObj && $scope.newCNSObj.contract) {
\r
4115 var objToPush = templateObj || "";
\r
4116 $scope.newCNSObj.contract.push(objToPush);
\r
4120 $scope.deleteElemAt = function(index) {
\r
4121 if($scope.newCNSObj && $scope.newCNSObj.contract) {
\r
4122 $scope.newCNSObj.contract.splice(index, 1);
\r
4126 $scope.updateAt = function(index, value) {
\r
4127 if($scope.newCNSObj && $scope.newCNSObj.contract && $scope.newCNSObj.contract.length >= index) {
\r
4128 $scope.newCNSObj.contract[index] = value;
\r
4131 //move to separate ctrl /\
\r
4133 $scope.init = function() {
\r
4136 if($scope.tenant && $scope.tenant['contract'].length>0) {
\r
4137 $scope.contractList.options = $scope.tenant['contract'];
\r
4140 if($scope.selectedEpg && $scope.selectedEpg['consumer-named-selector']) {
\r
4141 $scope.list = $scope.selectedEpg['consumer-named-selector'];
\r
4145 $scope.save = function(){
\r
4146 $scope.updateList($scope.list, $scope.newCNSObj, "name");
\r
4147 $scope.reload($scope.newCNSObj);
\r
4148 $scope.$emit('WIZARD_CNS_RELOAD', $scope.list);
\r
4149 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newCNSObj);
\r
4152 $scope.delete = function() {
\r
4153 if($scope.selectedCNS) {
\r
4154 var index = $scope.list.indexOf($scope.selectedCNS);
\r
4155 $scope.list.splice(index, 1);
\r
4156 $scope.internalView = {
\r
4160 $scope.$emit('WIZARD_CNS_RELOAD', $scope.list);
\r
4164 $scope.showForm = function() {
\r
4165 $scope.reloadNewObj();
\r
4166 $scope.selectedCNS = null;
\r
4167 $scope.internalView.cns = true;
\r
4168 $scope.internalView.edit = "add";
\r
4171 $scope.reloadNewObj = function() {
\r
4172 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
4175 $scope.reload = function(selectedObj) {
\r
4176 $scope.selectedCNS = selectedObj;
\r
4177 $scope.newCNSObj = selectedObj;
\r
4178 $scope.internalView.cns = true;
\r
4181 $scope.close = function(){
\r
4182 $scope.internalView.cns = false;
\r
4183 //$scope.internalView.edit = "view";
\r
4186 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4187 if (!event.defaultPrevented) {
\r
4188 if ( $scope.selectedEpg ) {
\r
4189 $scope.internalView.cns = true;
\r
4190 $scope.internalView.edit = "add";
\r
4191 angular.copy($scope.selectedCNS, $scope.newCNSObj);
\r
4193 event.defaultPrevented = true;
\r
4197 $scope.$on('WIZARD_EPG_RELOAD',function(){
\r
4202 gbp.register.controller('wizardPnsCtrl',['$scope', 'GBPProNamedSelServices', function($scope, GBPProNamedSelServices){
\r
4204 $scope.selectedPNS = null;
\r
4205 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
4206 $scope.displayLabel = 'name';
\r
4207 $scope.crudLabel = 'Provider named selectors list';
\r
4208 $scope.internalView = {
\r
4213 $scope.contractList = {'options' : [], 'labels' : null};
\r
4214 $scope.getDisplayLabelsFromCtrl('GBP_CONTRACTS_LABEL', $scope.contractList);
\r
4216 var clear = function(){
\r
4218 $scope.selectedPNS = null;
\r
4219 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
4220 $scope.internalView = {
\r
4226 //move to separate ctrl \/
\r
4227 $scope.addNewElem = function(templateObj) {
\r
4228 if($scope.newPNSObj && $scope.newPNSObj.contract) {
\r
4229 var objToPush = templateObj || "";
\r
4230 $scope.newPNSObj.contract.push(objToPush);
\r
4234 $scope.deleteElemAt = function(index) {
\r
4235 if($scope.newPNSObj && $scope.newPNSObj.contract) {
\r
4236 $scope.newPNSObj.contract.splice(index, 1);
\r
4240 $scope.updateAt = function(index, value) {
\r
4241 if($scope.newPNSObj && $scope.newPNSObj.contract && $scope.newPNSObj.contract.length >= index) {
\r
4242 $scope.newPNSObj.contract[index] = value;
\r
4245 //move to separate ctrl /\
\r
4247 $scope.init = function() {
\r
4250 if($scope.tenant && $scope.tenant['contract'].length>0) {
\r
4251 $scope.contractList.options = $scope.tenant['contract'];
\r
4254 if($scope.selectedEpg && $scope.selectedEpg['provider-named-selector']) {
\r
4255 $scope.list = $scope.selectedEpg['provider-named-selector'];
\r
4259 $scope.save = function(){
\r
4260 $scope.updateList($scope.list, $scope.newPNSObj, "name");
\r
4261 $scope.reload($scope.newPNSObj);
\r
4262 $scope.$emit('WIZARD_PNS_RELOAD', $scope.list);
\r
4263 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newPNSObj);
\r
4266 $scope.delete = function() {
\r
4267 if($scope.selectedPNS) {
\r
4268 var index = $scope.list.indexOf($scope.selectedPNS);
\r
4269 $scope.list.splice(index, 1);
\r
4270 $scope.internalView = {
\r
4274 $scope.$emit('WIZARD_PNS_RELOAD', $scope.list);
\r
4278 $scope.showForm = function() {
\r
4279 $scope.reloadNewObj();
\r
4280 $scope.selectedPNS = null;
\r
4281 $scope.internalView.pns = true;
\r
4282 $scope.internalView.edit = "add";
\r
4285 $scope.reloadNewObj = function() {
\r
4286 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
4289 $scope.reload = function(selectedObj) {
\r
4290 $scope.selectedPNS = selectedObj;
\r
4291 $scope.newPNSObj = selectedObj;
\r
4292 $scope.internalView.pns = true;
\r
4295 $scope.close = function(){
\r
4296 $scope.internalView.pns = false;
\r
4297 $scope.internalView.edit = "view";
\r
4299 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4300 if (!event.defaultPrevented) {
\r
4301 if ( $scope.selectedEpg ) {
\r
4302 $scope.internalView.pns = true;
\r
4303 $scope.internalView.edit = "edit";
\r
4304 angular.copy($scope.selectedPNS, $scope.newPNSObj);
\r
4306 event.defaultPrevented = true;
\r
4310 $scope.$on('WIZARD_EPG_RELOAD',function(){
\r
4315 gbp.register.controller('wizardSubjectCtrl', ['$scope','GBPSubjectServices', '$filter', function($scope, GBPSubjectServices, $filter){
\r
4317 $scope.selectedSubject = null;
\r
4318 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
4319 $scope.displayLabel = 'name';
\r
4320 $scope.internalView = {
\r
4324 $scope.crudLabel = 'Subject list';
\r
4325 $scope.errors = {};
\r
4329 mandatoryProperties = ['order'],
\r
4331 clear = function(){
\r
4333 $scope.selectedSubject = null;
\r
4334 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
4335 $scope.internalView = {
\r
4341 $scope.init = function() {
\r
4345 $scope.save = function(){
\r
4346 $scope.updateList($scope.list, $scope.newSubjectObj, "name");
\r
4347 $scope.reload($scope.newSubjectObj);
\r
4348 $scope.$emit('WIZARD_SUBJECT_RELOAD', $scope.list);
\r
4349 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newSubjectObj);
\r
4352 $scope.delete = function() {
\r
4353 if($scope.selectedSubject) {
\r
4354 var index = $scope.list.indexOf($scope.selectedSubject);
\r
4355 $scope.list.splice(index, 1);
\r
4356 $scope.internalView = {
\r
4360 $scope.reloadNewObj();
\r
4361 $scope.$emit('WIZARD_SUBJECT_RELOAD', $scope.list);
\r
4365 $scope.reloadNewObj = function() {
\r
4366 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
4369 $scope.reload = function(selectedObj) {
\r
4370 $scope.selectedSubject = selectedObj;
\r
4371 $scope.newSubjectObj = selectedObj;
\r
4372 $scope.internalView.subject = true;
\r
4375 $scope.showForm = function() {
\r
4376 $scope.reloadNewObj();
\r
4377 $scope.internalView.subject = true;
\r
4378 $scope.internalView.edit = "add";
\r
4379 $scope.selectedSubject = null;
\r
4382 $scope.close = function(){
\r
4383 $scope.internalView.subject = false;
\r
4384 $scope.internalView.edit = "view";
\r
4387 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4388 if (!event.defaultPrevented) {
\r
4389 if ( $scope.selectedSubject ) {
\r
4390 $scope.internalView.subject = true;
\r
4391 $scope.internalView.edit = "edit";
\r
4392 angular.copy($scope.selectedSubject, $scope.newSubjectObj);
\r
4394 event.defaultPrevented = true;
\r
4398 $scope.$on('GBP_CONTRACT_RELOAD',function(){
\r
4402 $scope.$on('GBP_SUBJECTS_LABEL', function(event, obj){
\r
4403 obj.labels = $scope.displayLabel;
\r
4406 $scope.$on("WIZARD_RULE_RELOAD", function(event, args){
\r
4407 //$scope.selectedEpg['consumer-named-selector'] = args;
\r
4408 $scope.newSubjectObj['rule'] = args;
\r
4409 $scope.updateList($scope.list, $scope.newSubjectObj, "id");
\r
4410 $scope.$emit('WIZARD_SUBJECT_RELOAD', $scope.list);
\r
4414 gbp.register.controller('wizardRuleCtrl', ['$scope','GBPRuleServices', '$filter', function($scope, GBPRuleServices, $filter){
\r
4416 $scope.selectedRule = null;
\r
4417 $scope.newRuleObj = GBPRuleServices.createObj();
\r
4418 $scope.displayLabel = 'name';
\r
4419 $scope.internalView = {
\r
4423 $scope.crudLabel = 'Rule list';
\r
4424 $scope.errors = {};
\r
4427 mandatoryProperties = ['order'],
\r
4429 clear = function(){
\r
4431 $scope.selectedRule = null;
\r
4432 $scope.newRuleObj = GBPRuleServices.createObj();
\r
4433 $scope.internalView = {
\r
4439 $scope.init = function() {
\r
4443 $scope.save = function(){
\r
4444 $scope.updateList($scope.list, $scope.newRuleObj, "name");
\r
4445 $scope.reload($scope.newRuleObj);
\r
4446 $scope.$emit('WIZARD_RULE_RELOAD', $scope.list);
\r
4447 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newRuleObj);
\r
4450 $scope.delete = function() {
\r
4451 if($scope.selectedRule) {
\r
4452 var index = $scope.list.indexOf($scope.selectedRule);
\r
4453 $scope.list.splice(index, 1);
\r
4454 $scope.internalView = {
\r
4458 $scope.reloadNewObj();
\r
4459 $scope.$emit('WIZARD_RULE_RELOAD', $scope.list);
\r
4463 $scope.reloadNewObj = function() {
\r
4464 $scope.newRuleObj = GBPRuleServices.createObj();
\r
4467 $scope.reload = function(selectedObj) {
\r
4468 $scope.selectedRule = selectedObj;
\r
4469 $scope.newRuleObj = selectedObj;
\r
4470 $scope.internalView.rule = true;
\r
4471 $scope.$broadcast('WIZARD_RULE_RELOAD');
\r
4474 $scope.showForm = function() {
\r
4475 $scope.reloadNewObj();
\r
4476 $scope.internalView.rule = true;
\r
4477 $scope.internalView.edit = "add";
\r
4478 $scope.selectedRule = null;
\r
4481 $scope.close = function(){
\r
4482 $scope.internalView.rule = false;
\r
4483 $scope.internalView.edit = "view";
\r
4486 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4487 if (!event.defaultPrevented) {
\r
4488 if ( $scope.selectedRule ) {
\r
4489 $scope.internalView.rule = true;
\r
4490 $scope.internalView.edit = "edit";
\r
4491 angular.copy($scope.selectedRule, $scope.newRuleObj);
\r
4493 event.defaultPrevented = true;
\r
4497 $scope.$on('GBP_SUBJECT_RELOAD',function(){
\r
4501 $scope.$on("WIZARD_CLASREF_RELOAD", function(event, args){
\r
4502 $scope.newRuleObj['classifier-ref'] = args;
\r
4503 $scope.updateList($scope.list, $scope.newRuleObj, "name");
\r
4504 $scope.$emit('WIZARD_RULE_RELOAD', $scope.list);
\r
4507 $scope.$on("WIZARD_ACTIONREF_RELOAD", function(event, args){
\r
4508 $scope.newRuleObj['action-ref'] = args;
\r
4509 $scope.updateList($scope.list, $scope.newRuleObj, "name");
\r
4510 $scope.$emit('WIZARD_RULE_RELOAD', $scope.list);
\r
4514 gbp.register.controller('wizardClauseCtrl', ['$scope','GBPClauseServices', 'GBPSubjectServices',
\r
4515 function($scope, GBPClauseServices, GBPSubjectServices){
\r
4517 $scope.selectedClause = null;
\r
4518 $scope.newClauseObj = GBPClauseServices.createObj();
\r
4519 $scope.internalView = {
\r
4523 $scope.displayLabel = 'name';
\r
4524 $scope.crudLabel = 'Clause list';
\r
4526 $scope.subjects = {'options' : [], 'labels' : null};
\r
4527 $scope.getDisplayLabelsFromCtrl('GBP_SUBJECTS_LABEL', $scope.subjects);
\r
4531 clear = function(){
\r
4533 $scope.selectedClause = null;
\r
4534 $scope.newClauseObj = GBPClauseServices.createObj();
\r
4535 $scope.internalView = {
\r
4541 //move to separate ctrl \/
\r
4542 $scope.addNewElem = function(templateObj) {
\r
4543 if($scope.newClauseObj && $scope.newClauseObj['subject-refs']) {
\r
4545 var objToPush = templateObj || "";
\r
4546 $scope.newClauseObj['subject-refs'].push(objToPush);
\r
4550 $scope.deleteElemAt = function(index) {
\r
4551 if($scope.newClauseObj && $scope.newClauseObj['subject-refs']) {
\r
4552 $scope.newClauseObj['subject-refs'].splice(index, 1);
\r
4556 $scope.updateAt = function(index, value) {
\r
4557 if($scope.newClauseObj && $scope.newClauseObj['subject-refs'] && $scope.newClauseObj['subject-refs'].length >= index) {
\r
4558 $scope.newClauseObj['subject-refs'][index] = value;
\r
4561 //move to separate ctrl /\
\r
4563 $scope.init = function() {
\r
4564 if($scope.selectedContract && $scope.selectedContract['subject'].length>0) {
\r
4565 $scope.subjects.options = $scope.selectedContract['subject'];
\r
4569 $scope.save = function(){
\r
4570 $scope.updateList($scope.list, $scope.newClauseObj, "name");
\r
4571 $scope.reload($scope.newClauseObj);
\r
4572 $scope.$emit('WIZARD_CLAUSE_RELOAD', $scope.list);
\r
4573 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newClauseObj);
\r
4576 $scope.delete = function() {
\r
4577 if($scope.selectedClause) {
\r
4578 var index = $scope.list.indexOf($scope.selectedClause);
\r
4579 $scope.list.splice(index, 1);
\r
4580 $scope.internalView = {
\r
4584 $scope.$emit('WIZARD_CLAUSE_RELOAD', $scope.list);
\r
4588 $scope.reloadNewObj = function() {
\r
4589 $scope.newClauseObj = GBPClauseServices.createObj();
\r
4592 $scope.reload = function(selectedObj) {
\r
4593 $scope.selectedClause = selectedObj;
\r
4594 $scope.newClauseObj = selectedObj;
\r
4595 $scope.internalView.clause = true;
\r
4598 $scope.showForm = function() {
\r
4599 $scope.reloadNewObj();
\r
4600 $scope.internalView.clause = true;
\r
4601 $scope.internalView.edit = "add";
\r
4602 $scope.selectedClause = null;
\r
4605 $scope.close = function(){
\r
4606 $scope.internalView.clause = false;
\r
4607 $scope.internalView.edit = "view";
\r
4610 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4611 if (!event.defaultPrevented) {
\r
4612 if ( $scope.selectedClause ) {
\r
4613 $scope.internalView.clause = true;
\r
4614 $scope.internalView.edit = "edit";
\r
4615 angular.copy($scope.selectedClause, $scope.newClauseObj);
\r
4617 event.defaultPrevented = true;
\r
4621 $scope.$on('WIZARD_SUBJECT_RELOAD',function(){
\r
4626 gbp.register.controller('wizardActionRefCtrl', ['$scope','GBPActionRefsServices', 'GBPActionInstanceServices', '$filter', function($scope, GBPActionRefsServices, GBPActionInstanceServices, $filter){
\r
4628 $scope.selectedActionRef = null;
\r
4629 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
4630 $scope.displayLabel = 'name';
\r
4631 $scope.internalView = {
\r
4632 actionRef : false,
\r
4635 $scope.crudLabel = 'Action ref list';
\r
4637 $scope.actionInstanceNames = {'options' : [], 'labels' : $scope.displayLabel};
\r
4640 mandatoryProperties = ['order'],
\r
4642 actionInstanceNamesLoad = function() {
\r
4643 if($scope.tenant) {
\r
4644 var actionInstancePath = GBPActionInstanceServices.createPathObj($scope.tenant.id);
\r
4645 GBPActionInstanceServices.load(actionInstancePath, function(data){
\r
4646 $scope.actionInstanceNames.options = data;
\r
4653 clear = function(){
\r
4655 $scope.selectedActionRef = null;
\r
4656 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
4657 $scope.internalView = {
\r
4658 actionRef : false,
\r
4663 $scope.init = function() {
\r
4664 actionInstanceNamesLoad();
\r
4667 $scope.save = function(){
\r
4668 $scope.updateList($scope.list, $scope.newActionRefObj, "name");
\r
4669 $scope.reload($scope.newActionRefObj);
\r
4670 $scope.$emit('WIZARD_ACTIONREF_RELOAD', $scope.list);
\r
4671 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newActionRefObj);
\r
4674 $scope.delete = function() {
\r
4675 if($scope.selectedActionRef) {
\r
4676 var index = $scope.list.indexOf($scope.selectedActionRef);
\r
4677 $scope.list.splice(index, 1);
\r
4678 $scope.internalView = {
\r
4682 $scope.$emit('WIZARD_ACTIONREF_RELOAD', $scope.list);
\r
4686 $scope.reloadNewObj = function() {
\r
4687 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
4690 $scope.reload = function(selectedObj) {
\r
4691 $scope.selectedActionRef = selectedObj;
\r
4692 $scope.newActionRefObj = selectedObj;
\r
4693 $scope.internalView.actionRef = true;
\r
4696 $scope.showForm = function() {
\r
4697 $scope.reloadNewObj();
\r
4698 $scope.internalView.actionRef = true;
\r
4699 $scope.internalView.edit = "add";
\r
4700 $scope.selectedActionRef = null;
\r
4703 $scope.close = function(){
\r
4704 $scope.internalView.actionRef = false;
\r
4705 $scope.internalView.edit = "view";
\r
4708 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4709 if (!event.defaultPrevented) {
\r
4710 if ( $scope.selectedActionRef ) {
\r
4711 $scope.internalView.actionRef = true;
\r
4712 $scope.internalView.edit = "edit";
\r
4713 angular.copy($scope.selectedActionRef, $scope.newActionRefObj);
\r
4715 event.defaultPrevented = true;
\r
4719 $scope.$on('WIZARD_RULE_RELOAD',function(){
\r
4724 gbp.register.controller('wizardClassifierRefCtrl', ['$scope','GBPClassifierRefsServices', 'GBPClassifierInstanceServices', '$filter', function($scope, GBPClassifierRefsServices, GBPClassifierInstanceServices, $filter){
\r
4726 $scope.selectedClassifierRef = null;
\r
4727 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
4728 $scope.displayLabel = 'name';
\r
4729 $scope.internalView = {
\r
4730 classifierRef : false,
\r
4734 $scope.instanceNames = {'options' : [], 'labels' : $scope.displayLabel};
\r
4736 $scope.formDirections = ['in', 'out', 'bidirectional'];
\r
4737 $scope.formConnectionTracking = ['normal', 'reflexive'];
\r
4739 $scope.crudLabel = 'Classifier ref list';
\r
4743 instanceNamesLoad = function() {
\r
4744 if($scope.tenant) {
\r
4745 var classifierInstancePath = GBPClassifierInstanceServices.createPathObj($scope.tenant.id);
\r
4746 GBPClassifierInstanceServices.load(classifierInstancePath, function(data){
\r
4747 $scope.instanceNames.options = data;
\r
4754 clear = function(){
\r
4756 $scope.selectedClassifierRef = null;
\r
4757 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
4758 $scope.internalView = {
\r
4759 classifierRef : false,
\r
4764 $scope.init = function() {
\r
4765 instanceNamesLoad();
\r
4768 $scope.save = function(){
\r
4769 $scope.updateList($scope.list, $scope.newClassifierRefObj, "name");
\r
4770 $scope.reload($scope.newClassifierRefObj);
\r
4771 $scope.$emit('WIZARD_CLASREF_RELOAD', $scope.list);
\r
4772 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newClassifierRefObj);
\r
4775 $scope.delete = function() {
\r
4776 if($scope.selectedClassifierRef) {
\r
4777 var index = $scope.list.indexOf($scope.selectedClassifierRef);
\r
4778 $scope.list.splice(index, 1);
\r
4779 $scope.internalView = {
\r
4780 classifierRef: false,
\r
4783 $scope.$emit('WIZARD_CLASREF_RELOAD', $scope.list);
\r
4787 $scope.reloadNewObj = function() {
\r
4788 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
4791 $scope.reload = function(selectedObj) {
\r
4792 $scope.selectedClassifierRef = selectedObj;
\r
4793 $scope.newClassifierRefObj = selectedObj;
\r
4794 $scope.internalView.classifierRef = true;
\r
4797 $scope.showForm = function() {
\r
4798 $scope.reloadNewObj();
\r
4799 $scope.internalView.classifierRef = true;
\r
4800 $scope.internalView.edit = "add";
\r
4801 $scope.selectedClassifierRef = null;
\r
4804 $scope.close = function(){
\r
4805 $scope.internalView.classifierRef = false;
\r
4806 $scope.internalView.edit = "view";
\r
4809 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4810 if (!event.defaultPrevented) {
\r
4811 if ( $scope.selectedClassifierRef ) {
\r
4812 $scope.internalView.classifierRef = true;
\r
4813 $scope.internalView.edit = "edit";
\r
4814 angular.copy($scope.selectedClassifierRef, $scope.newClassifierRefObj);
\r
4816 event.defaultPrevented = true;
\r
4820 $scope.$on('WIZARD_RULE_RELOAD',function(){
\r
4825 gbp.register.controller('rendererStateCtrl', ['$scope', 'GPBServices', function($scope, GPBServices){
\r
4826 $scope.data = {'subject-feature-definitions' : {}};
\r
4827 $scope.view_path = 'src/app/gbp/views/governance';
\r
4829 var init = function(){
\r
4830 GPBServices.getDefinitions(function(classifiersDefs, actionsDefs){
\r
4831 $scope.data['subject-feature-definitions']['classifier-definition'] = classifiersDefs;
\r
4832 $scope.data['subject-feature-definitions']['action-definition'] = actionsDefs;
\r
4841 gbp.register.controller('layerCtrl', ['$scope', function($scope){
\r
4843 var moveOffset = 1;
\r
4844 $scope.currentDisplayIndex = 1;
\r
4845 $scope.displayOffsets = [-1, 0, 1];
\r
4846 $scope.expanded = true;
\r
4848 $scope.init = function(key, value){
\r
4849 $scope.data = value;
\r
4850 if($scope.checkData(value, 'Array')){
\r
4851 $scope.setActData($scope.data[$scope.data.length - 1]);
\r
4855 $scope.toggleExpanded = function(){
\r
4856 $scope.expanded = !$scope.expanded;
\r
4859 $scope.shiftDisplayNext = function() {
\r
4860 $scope.currentDisplayIndex = Math.min($scope.currentDisplayIndex + moveOffset, $scope.data.length - 2);
\r
4863 $scope.shiftDisplayPrev = function() {
\r
4864 $scope.currentDisplayIndex = Math.max($scope.currentDisplayIndex - moveOffset, 1);
\r
4867 $scope.showPrevButton = function() {
\r
4868 return $scope.currentDisplayIndex > 1;
\r
4871 $scope.showNextButton = function() {
\r
4872 return $scope.data && $scope.currentDisplayIndex < $scope.data.length - 2;
\r
4875 $scope.setActData = function(data) {
\r
4876 $scope.actSelected = data;
\r
4879 $scope.checkData = function(data, type){
\r
4880 var result = {'Array' : data instanceof Array,
\r
4881 'Object' : data instanceof Object};
\r
4883 return result[type];
\r
4887 gbp.register.controller('actionReferenceWizardCtrl', ['$scope', '$filter', 'GBPRuleServices', 'GBPActionInstanceServices', function($scope, $filter, GBPRuleServices, GBPActionInstanceServices){
\r
4888 $scope.wizardPage = null;
\r
4892 $scope.actionInstanceNames = {'options' : [], 'labels' : "name"};
\r
4894 var actionInstanceNamesLoad = function() {
\r
4895 var actionInstancePath = GBPActionInstanceServices.createPathObj($scope.selectedTenant.id);
\r
4896 GBPActionInstanceServices.load(actionInstancePath, function(data){
\r
4897 $scope.actionInstanceNames.options = data;
\r
4903 $scope.init = function() {
\r
4904 $scope.setPage('reference');
\r
4907 $scope.setPage = function(pageName, object) {
\r
4908 $scope.wizardPage = pageName;
\r
4911 $scope.submit = function() {
\r
4912 //if($scope.validateForm($scope.actionsForm)){
\r
4913 $scope.actionInstanceNames.options.forEach(function(i) {
\r
4914 path = GBPActionInstanceServices.createPathObj($scope.path.tenantId, i.name);
\r
4917 GBPActionInstanceServices.send(path, i, function(data){
\r
4918 $scope.sendReloadEventFromRoot('GBP_ACTION_INSTANCE_RELOAD');
\r
4926 //if($scope.validateForm($scope.rulesForm)){
\r
4927 path = GBPRuleServices.createPathObj($scope.path.tenantId, $scope.path.contractId, $scope.path.subjectId, $scope.path.ruleId);
\r
4928 GBPRuleServices.send(path, $scope.rule, function(data){
\r
4930 $scope.wizards.actionReferenceWizard = false;
\r
4932 //$scope.sendReloadEventFromRoot('GBP_TENANT_RELOAD');
\r
4940 $scope.$on('ACTION_RULE_WIZARD_LOAD', function(event, data){
\r
4941 $scope.rule = angular.copy(data.data);
\r
4942 $scope.path = data.path;
\r
4945 $scope.$on('WIZARD_ACTIONREF_ADD', function(event, data){
\r
4946 if(!$scope.rule['action-ref']) {
\r
4947 $scope.rule['action-ref'] = [];
\r
4949 $scope.updateList($scope.rule['action-ref'], data, "name");
\r
4952 $scope.$on('WIZARD_ACTIONREF_DELETE', function(event, data){
\r
4953 $scope.rule['action-ref'].splice(data, 1);
\r
4956 $scope.$on('WIZARD_ACTIONINSTANCE_ADD', function(event, data){
\r
4957 $scope.updateList($scope.actionInstanceNames.options, data, "name");
\r
4959 $scope.setPage('reference');
\r
4962 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
4963 actionInstanceNamesLoad();
\r
4968 gbp.register.controller('actionsRefListCtrl', ['$scope', '$filter', function($scope, $filter){
\r
4970 $scope.actionReferenceForm = false;
\r
4972 $scope.showForm = function(object) {
\r
4973 $scope.actionReferenceForm = true;
\r
4974 $scope.newActionRefObj = object || null;
\r
4977 $scope.closeForm = function() {
\r
4978 $scope.actionReferenceForm = false;
\r
4981 $scope.save = function(){
\r
4982 $scope.$emit('WIZARD_ACTIONREF_ADD', $scope.newActionRefObj);
\r
4983 $scope.resetObject();
\r
4986 $scope.deleteElemAt = function(index) {
\r
4987 $scope.$emit('WIZARD_ACTIONREF_DELETE', index);
\r
4988 $scope.resetObject();
\r
4991 $scope.resetObject = function() {
\r
4992 $scope.newActionRefObj = null;
\r
4999 gbp.register.controller('actionInstanceWizardCtrl', ['$scope', '$filter', 'GPBServices', 'GBPActionInstanceServices', function($scope, $filter, GPBServices, GBPActionInstanceServices){
\r
5000 $scope.actionDefinitions = {'options' : [], 'labels' : "name"};
\r
5001 $scope.newActionObj = GBPActionInstanceServices.createObj();
\r
5003 var loadDefinitions = function() {
\r
5004 GPBServices.getDefinitions(function(classifierDefs, actionDefs) {
\r
5005 $scope.actionDefinitions.options = actionDefs;
\r
5006 //$scope.getDisplayLabelsFromCtrl('GBP_ACTIONS_LABEL', $scope.actionDefinitions);
\r
5010 $scope.reloadDefs = function(){
\r
5011 $scope.defs = angular.copy($scope.getDefinitionObjParams($scope.newActionObj['action-definition-id']));
\r
5014 if($scope.defs.length && $scope.defs[0].name === 'sfc-chain-name') {
\r
5015 GPBServices.getServiceFunctionChains(function(data) {
\r
5016 $scope.serviceFunctionChains = data;
\r
5021 $scope.getDefinitionObjParams = function(id){
\r
5022 return GPBServices.getDefinitionObjParams($scope.actionDefinitions.options, id);
\r
5025 $scope.save = function(){
\r
5026 $scope.newActionObj['parameter-value'] = [];
\r
5027 $scope.$broadcast('GBP_SAVE_PARAM');
\r
5028 $scope.$emit('WIZARD_ACTIONINSTANCE_ADD', $scope.newActionObj);
\r
5029 $scope.resetObject();
\r
5032 $scope.resetObject = function() {
\r
5033 $scope.newActionObj = GBPActionInstanceServices.createObj();
\r
5036 $scope.saveParam = function() {
\r
5040 $scope.addParam = function(name, type, value) {
\r
5041 $scope.newActionObj['parameter-value'].push(GPBServices.createParamObj(name, type, value));
\r
5044 loadDefinitions();
\r