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
615 // paper.scaleContentToFit();
\r
616 // paper.fitToContent();
\r
619 $scope.getPaperObj = function(){
\r
624 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
625 if ($scope.selectedTenant) {
\r
629 JointGraphFactory.reloadGraph(paper.model);
\r
636 gbp.register.controller('subjectDetailCtrl', ['$scope', 'GPBServices', 'JointGraphFactory', 'GBPGovernanceServices', 'JointGraphOffsetFactory', 'GBPConstants',
\r
637 function ($scope, GPBServices, JointGraphFactory, GBPGovernanceServices, JointGraphOffsetFactory, GBPConstants) {
\r
638 $scope.selectedSubject = null;
\r
639 $scope.subjectList = [];
\r
641 var paper = JointGraphFactory.createGraph(),
\r
642 subjectItem = null,
\r
646 var createSubjectLinks = function(subjectItem, ruleItem) {
\r
647 var linkItem = JointGraphFactory.createLink(subjectItem.id, ruleItem.id, 'blue');
\r
648 JointGraphFactory.addItem(paper.model, linkItem);
\r
651 paper.on('cell:pointerdown', function(cell) {
\r
652 var objClickAction = {
\r
653 subject: function(data){
\r
654 $scope.setViewContent('subject-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
656 rule: function(data){
\r
657 $scope.setViewContent('rule-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
661 // console.log('cell.model.attributes.objType', cell.model.attributes.objType, cell.model.attributes.objData);
\r
662 if ( angular.isFunction(objClickAction[cell.model.attributes.objType]) ) {
\r
663 objClickAction[cell.model.attributes.objType](cell.model.attributes.objData);
\r
667 var loadData = function() {
\r
668 if($scope.selectedSubject) {
\r
669 subjectItem = null;
\r
683 JointGraphFactory.reloadGraph(paper.model);
\r
685 var label = $scope.selectedSubject.name || $scope.selectedSubject.id,
\r
686 width = JointGraphFactory.getLabelLength(label.length);
\r
687 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
689 JointGraphFactory.addItem(paper.model, subjectItem);
\r
691 JointGraphOffsetFactory.resetOffsets(offsetObj, offsetObj.ow, 300);
\r
692 $scope.selectedSubject.rules.forEach(function(r, i) {
\r
693 var label = r.name,
\r
694 width = JointGraphFactory.getLabelLength(label.length);
\r
695 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
697 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width), paper);
\r
698 JointGraphFactory.addItem(paper.model, item);
\r
699 ruleItems[r.name] = item;
\r
701 createSubjectLinks(subjectItem, item);
\r
706 $scope.getPaperObj = function(){
\r
710 $scope.$on('SET_SELECTED_SUBJECT', function(event, data){
\r
711 $scope.selectedSubject = data.subject;
\r
712 $scope.subjectList = data.subjList;
\r
716 $scope.setSubject = function(subject) {
\r
717 $scope.selectedSubject = subject;
\r
724 gbp.register.controller('epgDetailCtrl', ['$scope', 'JointGraphFactory', 'TopologyDataLoaders', 'GBPEpgServices', 'JointGraphOffsetFactory', 'GBPConstants',
\r
725 function ($scope, JointGraphFactory, TopologyDataLoaders, GBPEpgServices, JointGraphOffsetFactory, GBPConstants) {
\r
726 var paper = JointGraphFactory.createGraph(),
\r
730 $scope.epgDisplayLabel = ['name', 'id'];
\r
731 $scope.epgList = [];
\r
732 $scope.selectedEpg = null;
\r
734 $scope.$on('SET_SELECTED_EPG', function(event, epg){
\r
735 $scope.selectedEpg = epg.ep;
\r
736 $scope.epgList = epg.epList;
\r
740 $scope.setEpg = function(epg){
\r
745 paper.on('cell:pointerdown', function(cell) {
\r
746 var objClickAction = {
\r
747 ep: function(data){
\r
748 $scope.setViewContent('ep-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
750 epg: function(data){
\r
751 $scope.setViewContent('epg-content-static',data, 'SET_SEL_STA_OBJ', 'menuBox');
\r
755 if ( angular.isFunction(objClickAction[cell.model.attributes.objType]) ) {
\r
756 objClickAction[cell.model.attributes.objType](cell.model.attributes.objData);
\r
760 var loadData = function() {
\r
761 if($scope.selectedTenant && $scope.selectedEpg) {
\r
766 JointGraphFactory.reloadGraph(paper.model);
\r
768 TopologyDataLoaders.getEndpointsFromEndpointGroup($scope.selectedTenant.id, $scope.selectedEpg.id, function(data){
\r
780 var label = $scope.selectedEpg.name || $scope.selectedEpg.id,
\r
781 width = JointGraphFactory.getLabelLength(label.length);
\r
782 epgItem = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, 'epg', $scope.selectedEpg, 'Click to see epg info', GBPConstants.colors.graph['subject'], 'EPG');
\r
784 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width), paper);
\r
785 JointGraphFactory.addItem(paper.model, epgItem);
\r
787 JointGraphOffsetFactory.resetOffsets(offsetObj, offsetObj.ow, 500);
\r
788 if(data && data.output && data.output['ui-endpoint'] && data.output['ui-endpoint'].length){
\r
789 data.output['ui-endpoint'].forEach(function(ep, i){
\r
790 var label = ep['mac-address'] + ':' + ep['l2-context'],
\r
791 width = JointGraphFactory.getLabelLength(label.length);
\r
792 item = JointGraphFactory.createElement(label, offsetObj.w, offsetObj.h, width, null, 'ep', ep, 'Click to see ep info', GBPConstants.colors.graph['pns'], 'Endpoint');
\r
794 JointGraphOffsetFactory.updateOffsets(JointGraphOffsetFactory.createWHObj(width), offsetObj, marginObj, JointGraphOffsetFactory.createWHObj(paper.options.width), paper);
\r
795 JointGraphFactory.addItem(paper.model, item);
\r
796 epItems[label] = item;
\r
797 links.push(JointGraphFactory.createLink(item.id, epgItem.id, 'green'));
\r
800 JointGraphFactory.addItemList(paper.model, links);
\r
806 $scope.getPaperObj = function(){
\r
813 gbp.register.controller('policyRendererCtrl', ['$scope', '$http', '$timeout', 'PGNServices', 'TopoServices', 'GBPTenantServices', 'GBPConstants',
\r
814 function ($scope, $http, $timeout, PGNServices, TopoServices, GBPTenantServices, GBPConstants) {
\r
816 $scope.topologyData = { nodes: [], links: [] };
\r
817 $scope.topologyType = null;
\r
818 $scope.legend = {};
\r
819 $scope.showLegend = false;
\r
821 var reloadShowLegend = function() {
\r
822 $scope.showLegend = !$.isEmptyObject($scope.legend);
\r
825 $scope.settingsSigma = {
\r
826 defaultLabelColor: '#fff',
\r
827 doubleClickEnabled: false,
\r
831 $scope.settingsAtlas = {
\r
836 $scope.viewTopo = {
\r
842 // $scope.selectedTenant = null;
\r
844 $scope.mandatoryProperties = [];
\r
845 $scope.loadTopology = function(type, args) {
\r
846 if ( $scope.selectedTenant ) {
\r
848 $scope.topologyData = { nodes: [], links: [] };
\r
849 $scope.topologyType = type;
\r
851 TopoServices.loadTopology(type, function(nodes, links) {
\r
852 $scope.topologyData = { nodes: nodes, links: links };
\r
853 $scope.viewTopo.box = true;
\r
854 $scope.viewTopo.button = type !== GBPConstants.strings.l2l3 && type !== null ? true : false;
\r
855 $scope.legend = TopoServices.getLegend(type);
\r
856 reloadShowLegend();
\r
858 $scope.legend = {};
\r
859 reloadShowLegend();
\r
865 $scope.topologyCustfunc = function(sigmaIstance, getSlowDownNum, dragListener, resize){
\r
867 sigmaIstance.bind('clickStage', function(e){
\r
868 sigmaIstance.killForceAtlas2();
\r
871 // Bind the events:
\r
872 // sigmaIstance.bind('overNode outNode clickNode doubleClickNode rightClickNode', function(e) {
\r
873 // console.log(e.type, e.data.node.label, e.data.captor);
\r
875 // sigmaIstance.bind('overEdge outEdge clickEdge doubleClickEdge rightClickEdge', function(e) {
\r
876 // console.log(e.type, e.data.edge, e.data.captor);
\r
878 // sigmaIstance.bind('clickStage', function(e) {
\r
879 // console.log(e.type, e.data.captor);
\r
881 // sigmaIstance.bind('doubleClickStage rightClickStage', function(e) {
\r
882 // console.log(e.type, e.data.captor);
\r
887 $scope.toggleExpanded = function(expand, show) {
\r
888 $scope.setViewExpand('policyRendererView',expand, show, 'l2');
\r
890 if($scope.policyRendererView[expand]) {
\r
891 if((expand === 'epg' || expand === 'contracts' || expand === 'classifiers' || expand === 'actions' || expand === 'renderers') && ($scope.topologyType !== GBPConstants.strings.config)) {
\r
892 $scope.loadTopology(GBPConstants.strings.config, { tenantId: $scope.selectedTenant ? $scope.selectedTenant.id : null, storage: 'config' });
\r
893 } else if((expand === 'l2l3' || expand === 'registerEndpoint' || expand === 'registerL3PrefixEndpoint') && ($scope.topologyType !== GBPConstants.strings.l2l3)) {
\r
894 $scope.loadTopology(GBPConstants.strings.l2l3, { tenantId: $scope.selectedTenant ? $scope.selectedTenant.id : null });
\r
899 $scope.loadTopo = function() {
\r
900 if($scope.selectedTenant) {
\r
901 $scope.loadTopology($scope.topologyType, { tenantId: $scope.selectedTenant.id });
\r
905 $scope.getDisplayLabelsFromCtrl = function(eventName, val) {
\r
906 $scope.$broadcast(eventName, val);
\r
909 $scope.validateMandatory = function(newObj, mandatoryProps){
\r
911 notFilledProps = [];
\r
913 mandatoryProps.forEach(function(el){
\r
914 if(newObj[el] === '' || newObj[el] === null || newObj[el] === undefined){
\r
915 notFilledProps.push(el);
\r
920 return {'status' : ret, 'notFilledProps' : notFilledProps};
\r
923 $scope.validate = function(value, errors){
\r
924 errors.int32 = !(parseInt(value) >= -2147483648 && parseInt(value) <= 2147483647);
\r
929 $scope.validateForm = function(form) {
\r
930 return form.$valid;
\r
933 $scope.$on('GBP_TENANT_RELOAD', function(e, obj){
\r
934 $scope.selectedTenant = obj;
\r
939 gbp.register.controller('topoDataCtrl',['$scope', 'TopoServices', function($scope, TopoServices){
\r
940 $scope.showTable = false;
\r
942 $scope.getConsProvLabel = function(edge){
\r
943 return TopoServices.getConsProvLabel(edge, $scope.topologyData);
\r
946 $scope.show = function(){
\r
947 $scope.showTable = true;
\r
950 $scope.close = function(){
\r
951 $scope.showTable = false;
\r
955 gbp.register.controller('crudCtrl',['$scope', function($scope){
\r
956 $scope.selectedObj = null;
\r
960 $scope.add = function() {
\r
961 $scope.selectedObj = null;
\r
965 $scope.modify = function() {
\r
966 $scope.$emit('PGN_EDIT_ELEM');
\r
969 $scope.init = function(label) {
\r
970 $scope.label = label;
\r
974 $scope.$on('EV_SET_SEL_CLASS', function(event, selObj){
\r
975 $scope.selectedObj = selObj;
\r
979 gbp.register.controller('contractCtrl', ['$scope','GBPContractServices', '$filter', function($scope, GBPContractServices, $filter){
\r
981 $scope.selectedContract = null;
\r
982 $scope.newContractObj = GBPContractServices.createObj();
\r
983 $scope.displayLabel = ['description','id'];
\r
984 $scope.crudLabel = 'Contract list';
\r
986 $scope.internalView = {
\r
992 mandatoryProperties = [],
\r
993 clear = function(){
\r
995 $scope.internalView = {
\r
999 $scope.selectedContract = null;
\r
1000 $scope.newContractObj = GBPContractServices.createObj();
\r
1003 $scope.init = function() {
\r
1004 if ( $scope.selectedTenant ) {
\r
1005 $scope.selectedContract = null;
\r
1006 path = GBPContractServices.createPathObj($scope.selectedTenant.id);
\r
1008 GBPContractServices.load(path, function(data){
\r
1009 $scope.list = data;
\r
1010 // $scope.$broadcast('GBP_CONTRACT_RELOAD');
\r
1011 $scope.sendReloadEventFromRoot('GBP_CONTRACT_RELOAD');
\r
1020 $scope.save = function(){
\r
1021 var resp = $scope.validateMandatory($scope.newContractObj, mandatoryProperties);
\r
1023 path = GBPContractServices.createPathObj($scope.selectedTenant.id, $scope.newContractObj.id);
\r
1024 GBPContractServices.send(path, $scope.newContractObj, function(data){
\r
1026 $scope.internalView.contract = false;
\r
1027 $scope.reloadNewObj();
\r
1028 $scope.internalView.edit = "view";
\r
1033 alert($filter('translate')('GBP_MANDATORY_NOT_FILLED')+': '+resp.notFilledProps.join(', '));
\r
1037 $scope.delete = function() {
\r
1038 if ( $scope.selectedContract ) {
\r
1039 path = GBPContractServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id);
\r
1040 GBPContractServices.delete(path, function(data){
\r
1042 $scope.selectedContract = null;
\r
1049 $scope.reloadNewObj = function() {
\r
1050 $scope.newContractObj = GBPContractServices.createObj();
\r
1053 $scope.reload = function(selectedObj) {
\r
1054 $scope.selectedContract = selectedObj;
\r
1055 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1057 $scope.internalView.contract = true;
\r
1059 $scope.internalView.contract = false;
\r
1060 $scope.internalView.edit = "view";
\r
1063 if($scope.internalView.contract) {
\r
1064 angular.copy(selectedObj, $scope.newContractObj);
\r
1066 $scope.sendReloadEventFromRoot('GBP_CONTRACT_RELOAD');
\r
1069 $scope.showForm = function() {
\r
1070 $scope.reloadNewObj();
\r
1071 $scope.internalView.contract = true;
\r
1072 $scope.selectedContract = null;
\r
1073 $scope.internalView.edit = "add";
\r
1076 $scope.close = function(){
\r
1077 $scope.internalView.contract = false;
\r
1078 $scope.internalView.edit = "view";
\r
1081 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1082 if(!event.defaultPrevented) {
\r
1083 if ( $scope.selectedContract ) {
\r
1084 $scope.internalView.contract = true;
\r
1085 $scope.internalView.edit = "edit";
\r
1086 angular.copy($scope.selectedContract, $scope.newContractObj);
\r
1088 event.defaultPrevented = true;
\r
1092 $scope.$on('GBP_TENANT_RELOAD',function(event){
\r
1096 $scope.$on('GBP_CONTRACTS_LABEL', function(event, obj){
\r
1097 obj.labels = $scope.displayLabel;
\r
1101 gbp.register.controller('clauseCtrl', ['$scope','GBPClauseServices', 'GBPSubjectServices',
\r
1102 function($scope, GBPClauseServices, GBPSubjectServices){
\r
1104 $scope.selectedClause = null;
\r
1105 $scope.newClauseObj = GBPClauseServices.createObj();
\r
1106 $scope.internalView = {
\r
1110 $scope.displayLabel = 'name';
\r
1111 $scope.crudLabel = 'Clause list';
\r
1113 $scope.subjects = {'options' : [], 'labels' : null};
\r
1114 $scope.getDisplayLabelsFromCtrl('GBP_SUBJECTS_LABEL', $scope.subjects);
\r
1118 clear = function(){
\r
1120 $scope.selectedClause = null;
\r
1121 $scope.newClauseObj = GBPClauseServices.createObj();
\r
1122 $scope.internalView = {
\r
1128 //move to separate ctrl \/
\r
1129 $scope.addNewElem = function(templateObj) {
\r
1130 if($scope.newClauseObj && $scope.newClauseObj['subject-refs']) {
\r
1131 var objToPush = templateObj || "";
\r
1132 $scope.newClauseObj['subject-refs'].push(objToPush);
\r
1136 $scope.deleteElemAt = function(index) {
\r
1137 if($scope.newClauseObj && $scope.newClauseObj['subject-refs']) {
\r
1138 $scope.newClauseObj['subject-refs'].splice(index, 1);
\r
1142 $scope.updateAt = function(index, value) {
\r
1143 if($scope.newClauseObj && $scope.newClauseObj['subject-refs'] && $scope.newClauseObj['subject-refs'].length >= index) {
\r
1144 $scope.newClauseObj['subject-refs'][index] = value;
\r
1147 //move to separate ctrl /\
\r
1149 var loadSubjects = function() {
\r
1150 $scope.getDisplayLabelsFromCtrl('GBP_SUBJECTS_LABEL', $scope.subjects);
\r
1152 GBPSubjectServices.load(path, function(data){
\r
1153 $scope.subjects.options = data;
\r
1159 $scope.init = function() {
\r
1160 if ( $scope.selectedContract ) {
\r
1161 path = GBPClauseServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id);
\r
1163 GBPClauseServices.load(path, function(data){
\r
1164 $scope.list = data;
\r
1173 $scope.save = function(){
\r
1174 if($scope.validateForm($scope.clauseForm)){
\r
1175 path = GBPClauseServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.newClauseObj.name);
\r
1176 GBPClauseServices.send(path, $scope.newClauseObj, function(data){
\r
1178 $scope.internalView.clause = false;
\r
1179 $scope.reloadNewObj();
\r
1180 $scope.internalView.clause = "view";
\r
1187 $scope.delete = function() {
\r
1188 if ( $scope.selectedClause ) {
\r
1189 path = GBPClauseServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedClause.name);
\r
1190 GBPClauseServices.delete(path, function(data){
\r
1192 $scope.selectedClause = null;
\r
1199 $scope.reloadNewObj = function() {
\r
1200 $scope.newClauseObj = GBPClauseServices.createObj();
\r
1203 $scope.reload = function(selectedObj) {
\r
1204 $scope.selectedClause = selectedObj;
\r
1205 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1207 $scope.internalView.clause = true;
\r
1209 $scope.internalView.clause = false;
\r
1210 $scope.internalView.edit = "view";
\r
1213 if($scope.internalView.clause) {
\r
1214 angular.copy(selectedObj, $scope.newClauseObj);
\r
1218 $scope.showForm = function() {
\r
1219 $scope.reloadNewObj();
\r
1220 $scope.internalView.clause = true;
\r
1221 $scope.internalView.edit = "add";
\r
1222 $scope.selectedClause = null;
\r
1225 $scope.close = function(){
\r
1226 $scope.internalView.clause = false;
\r
1227 $scope.internalView.edit = "view";
\r
1230 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1231 if (!event.defaultPrevented) {
\r
1232 if ( $scope.selectedClause ) {
\r
1233 $scope.internalView.clause = true;
\r
1234 $scope.internalView.edit = "edit";
\r
1235 angular.copy($scope.selectedClause, $scope.newClauseObj);
\r
1237 event.defaultPrevented = true;
\r
1241 $scope.$on('GBP_CONTRACT_RELOAD',function(){
\r
1245 $scope.$on('GBP_SUBJECT_RELOAD',function(){
\r
1250 gbp.register.controller('subjectCtrl', ['$scope','GBPSubjectServices', '$filter', function($scope, GBPSubjectServices, $filter){
\r
1252 $scope.selectedSubject = null;
\r
1253 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
1254 $scope.displayLabel = 'name';
\r
1255 $scope.internalView = {
\r
1259 $scope.crudLabel = 'Subject list';
\r
1260 $scope.errors = {};
\r
1263 mandatoryProperties = ['order'],
\r
1265 clear = function(){
\r
1267 $scope.selectedSubject = null;
\r
1268 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
1269 $scope.internalView = {
\r
1275 $scope.init = function() {
\r
1276 if ( $scope.selectedContract ) {
\r
1277 $scope.selectedSubject = null;
\r
1278 path = GBPSubjectServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id);
\r
1280 GBPSubjectServices.load(path, function(data){
\r
1281 $scope.list = data;
\r
1282 $scope.sendReloadEventFromRoot('GBP_SUBJECT_RELOAD');
\r
1291 $scope.save = function(){
\r
1292 if($scope.validateForm($scope.subjectForm)){
\r
1293 path = GBPSubjectServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.newSubjectObj.name);
\r
1294 GBPSubjectServices.send(path, $scope.newSubjectObj, function(data){
\r
1296 $scope.internalView.subject = false;
\r
1297 $scope.reloadNewObj();
\r
1298 $scope.internalView.edit = "view";
\r
1305 $scope.delete = function() {
\r
1306 if ( $scope.selectedSubject ) {
\r
1307 path = GBPSubjectServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name);
\r
1308 GBPSubjectServices.delete(path, function(data){
\r
1310 $scope.selectedSubject = null;
\r
1317 $scope.reloadNewObj = function() {
\r
1318 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
1321 $scope.reload = function(selectedObj) {
\r
1322 $scope.selectedSubject = selectedObj;
\r
1323 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1325 $scope.internalView.subject = true;
\r
1327 $scope.internalView.subject = false;
\r
1328 $scope.internalView.edit = "view";
\r
1331 if($scope.internalView.subject) {
\r
1332 angular.copy(selectedObj, $scope.newSubjectObj);
\r
1334 $scope.sendReloadEventFromRoot('GBP_SUBJECT_RELOAD');
\r
1337 $scope.showForm = function() {
\r
1338 $scope.reloadNewObj();
\r
1339 $scope.internalView.subject = true;
\r
1340 $scope.internalView.edit = "add";
\r
1341 $scope.selectedSubject = null;
\r
1344 $scope.close = function(){
\r
1345 $scope.internalView.subject = false;
\r
1346 $scope.internalView.edit = "view";
\r
1349 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1350 if (!event.defaultPrevented) {
\r
1351 if ( $scope.selectedSubject ) {
\r
1352 $scope.internalView.subject = true;
\r
1353 $scope.internalView.edit = "edit";
\r
1354 angular.copy($scope.selectedSubject, $scope.newSubjectObj);
\r
1356 event.defaultPrevented = true;
\r
1360 $scope.$on('GBP_CONTRACT_RELOAD',function(){
\r
1364 $scope.$on('GBP_SUBJECTS_LABEL', function(event, obj){
\r
1365 obj.labels = $scope.displayLabel;
\r
1369 gbp.register.controller('ruleCtrl', ['$scope','GBPRuleServices', '$filter', function($scope, GBPRuleServices, $filter){
\r
1371 $scope.selectedRule = null;
\r
1372 $scope.newRuleObj = GBPRuleServices.createObj();
\r
1373 $scope.displayLabel = 'name';
\r
1374 $scope.internalView = {
\r
1378 $scope.crudLabel = 'Rule list';
\r
1379 $scope.errors = {};
\r
1382 mandatoryProperties = ['order'],
\r
1384 clear = function(){
\r
1386 $scope.selectedRule = null;
\r
1387 $scope.newRuleObj = GBPRuleServices.createObj();
\r
1388 $scope.internalView = {
\r
1394 $scope.init = function() {
\r
1395 if ( $scope.selectedSubject ) {
\r
1396 $scope.selectedRule = null;
\r
1397 path = GBPRuleServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name);
\r
1399 GBPRuleServices.load(path, function(data){
\r
1400 $scope.list = data;
\r
1409 $scope.save = function(){
\r
1410 if($scope.validateForm($scope.rulesForm)){
\r
1411 path = GBPRuleServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.newRuleObj.name);
\r
1412 GBPRuleServices.send(path, $scope.newRuleObj, function(data){
\r
1414 $scope.internalView.rule = false;
\r
1415 $scope.reloadNewObj();
\r
1416 $scope.internalView.edit = "view";
\r
1423 $scope.delete = function() {
\r
1424 if ( $scope.selectedRule ) {
\r
1425 path = GBPRuleServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name);
\r
1426 GBPRuleServices.delete(path, function(data){
\r
1428 $scope.selectedRule = null;
\r
1435 $scope.reloadNewObj = function() {
\r
1436 $scope.newRuleObj = GBPRuleServices.createObj();
\r
1439 $scope.reload = function(selectedObj) {
\r
1440 $scope.selectedRule = selectedObj;
\r
1441 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1443 $scope.internalView.rule = true;
\r
1445 $scope.internalView.rule = false;
\r
1446 $scope.internalView.edit = "view";
\r
1449 if($scope.internalView.rule) {
\r
1450 angular.copy(selectedObj, $scope.newRuleObj);
\r
1452 $scope.$broadcast('GBP_RULE_RELOAD');
\r
1455 $scope.showForm = function() {
\r
1456 $scope.reloadNewObj();
\r
1457 $scope.internalView.rule = true;
\r
1458 $scope.internalView.edit = "add";
\r
1459 $scope.selectedRule = null;
\r
1462 $scope.close = function(){
\r
1463 $scope.internalView.rule = false;
\r
1464 $scope.internalView.edit = "view";
\r
1467 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1468 if (!event.defaultPrevented) {
\r
1469 if ( $scope.selectedRule ) {
\r
1470 $scope.internalView.rule = true;
\r
1471 $scope.internalView.edit = "edit";
\r
1472 angular.copy($scope.selectedRule, $scope.newRuleObj);
\r
1474 event.defaultPrevented = true;
\r
1478 $scope.$on('GBP_SUBJECT_RELOAD',function(){
\r
1483 gbp.register.controller('actionRefCtrl', ['$scope','GBPActionRefsServices', 'GBPActionInstanceServices', '$filter', function($scope, GBPActionRefsServices, GBPActionInstanceServices, $filter){
\r
1485 $scope.selectedActionRef = null;
\r
1486 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
1487 $scope.displayLabel = 'name';
\r
1488 $scope.internalView = {
\r
1489 actionRef : false,
\r
1492 $scope.crudLabel = 'Action ref list';
\r
1493 $scope.errors = {};
\r
1495 $scope.actionInstanceNames = {'options' : [], 'labels' : $scope.displayLabel};
\r
1498 mandatoryProperties = ['order'],
\r
1500 actionInstanceNamesLoad = function() {
\r
1501 var actionInstancePath = GBPActionInstanceServices.createPathObj($scope.selectedTenant.id);
\r
1502 GBPActionInstanceServices.load(actionInstancePath, function(data){
\r
1503 $scope.actionInstanceNames.options = data;
\r
1509 clear = function(){
\r
1511 $scope.selectedActionRef = null;
\r
1512 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
1513 $scope.internalView = {
\r
1514 actionRef : false,
\r
1519 $scope.init = function() {
\r
1520 if ( $scope.selectedRule ) {
\r
1521 $scope.selectedActionRef = null;
\r
1522 path = GBPActionRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name);
\r
1524 GBPActionRefsServices.load(path, function(data){
\r
1525 $scope.list = data;
\r
1530 actionInstanceNamesLoad();
\r
1536 $scope.save = function(){
\r
1537 if($scope.validateForm($scope.actionRefForm)){
\r
1538 path = GBPActionRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name, $scope.newActionRefObj.name);
\r
1539 GBPActionRefsServices.send(path, $scope.newActionRefObj, function(data){
\r
1541 $scope.internalView.actionRef = false;
\r
1542 $scope.reloadNewObj();
\r
1543 $scope.internalView.edit = "view";
\r
1550 $scope.delete = function() {
\r
1551 if ( $scope.selectedActionRef ) {
\r
1552 path = GBPActionRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name, $scope.selectedActionRef.name);
\r
1553 GBPActionRefsServices.delete(path, function(data){
\r
1555 $scope.selectedActionRef = null;
\r
1562 $scope.reloadNewObj = function() {
\r
1563 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
1566 $scope.reload = function(selectedObj) {
\r
1567 $scope.selectedActionRef = selectedObj;
\r
1568 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1570 $scope.internalView.actionRef = true;
\r
1572 $scope.internalView.actionRef = false;
\r
1573 $scope.internalView.edit = "view";
\r
1576 if($scope.internalView.actionRef) {
\r
1577 angular.copy(selectedObj, $scope.newActionRefObj);
\r
1581 $scope.showForm = function() {
\r
1582 $scope.reloadNewObj();
\r
1583 $scope.internalView.actionRef = true;
\r
1584 $scope.internalView.edit = "add";
\r
1585 $scope.selectedActionRef = null;
\r
1588 $scope.close = function(){
\r
1589 $scope.internalView.actionRef = false;
\r
1590 $scope.internalView.edit = "view";
\r
1593 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1594 if (!event.defaultPrevented) {
\r
1595 if ( $scope.selectedActionRef ) {
\r
1596 $scope.internalView.actionRef = true;
\r
1597 $scope.internalView.edit = "edit";
\r
1598 angular.copy($scope.selectedActionRef, $scope.newActionRefObj);
\r
1600 event.defaultPrevented = true;
\r
1604 $scope.$on('GBP_RULE_RELOAD',function(){
\r
1608 $scope.$on('GBP_ACTION_INSTANCE_RELOAD',function(){
\r
1609 actionInstanceNamesLoad();
\r
1613 gbp.register.controller('classifierRefCtrl', ['$scope','GBPClassifierRefsServices', 'GBPClassifierInstanceServices', '$filter', function($scope, GBPClassifierRefsServices, GBPClassifierInstanceServices, $filter){
\r
1615 $scope.selectedClassifierRef = null;
\r
1616 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
1617 $scope.displayLabel = 'name';
\r
1618 $scope.internalView = {
\r
1619 classifierRef : false,
\r
1623 $scope.instanceNames = {'options' : [], 'labels' : $scope.displayLabel};
\r
1625 $scope.formDirections = ['in', 'out', 'bidirectional'];
\r
1626 $scope.formConnectionTracking = ['normal', 'reflexive'];
\r
1628 $scope.crudLabel = 'Classifier ref list';
\r
1632 instanceNamesLoad = function() {
\r
1633 var classifierInstancePath = GBPClassifierInstanceServices.createPathObj($scope.selectedTenant.id);
\r
1634 GBPClassifierInstanceServices.load(classifierInstancePath, function(data){
\r
1635 $scope.instanceNames.options = data;
\r
1641 clear = function(){
\r
1643 $scope.selectedClassifierRef = null;
\r
1644 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
1645 $scope.internalView = {
\r
1646 classifierRef : false,
\r
1651 $scope.init = function() {
\r
1652 if ( $scope.selectedRule ) {
\r
1653 $scope.selectedClassifierRef = null;
\r
1654 path = GBPClassifierRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name);
\r
1658 GBPClassifierRefsServices.load(path, function(data){
\r
1659 $scope.list = data;
\r
1664 instanceNamesLoad();
\r
1670 $scope.save = function(){
\r
1671 if($scope.validateForm($scope.classifierRefForm)){
\r
1672 path = GBPClassifierRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name, $scope.newClassifierRefObj.name);
\r
1673 GBPClassifierRefsServices.send(path, $scope.newClassifierRefObj, function(data){
\r
1675 $scope.internalView.classifierRef = false;
\r
1676 $scope.reloadNewObj();
\r
1677 $scope.internalView.edit = "view";
\r
1684 $scope.delete = function() {
\r
1685 if ( $scope.selectedClassifierRef ) {
\r
1686 path = GBPClassifierRefsServices.createPathObj($scope.selectedTenant.id, $scope.selectedContract.id, $scope.selectedSubject.name, $scope.selectedRule.name, $scope.selectedClassifierRef.name);
\r
1687 GBPClassifierRefsServices.delete(path, function(data){
\r
1689 $scope.selectedClassifierRef = null;
\r
1696 $scope.reloadNewObj = function() {
\r
1697 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
1700 $scope.reload = function(selectedObj) {
\r
1701 $scope.selectedClassifierRef = selectedObj;
\r
1702 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1704 $scope.internalView.classifierRef = true;
\r
1706 $scope.internalView.classifierRef = false;
\r
1707 $scope.internalView.edit = "view";
\r
1710 if($scope.internalView.classifierRef) {
\r
1711 angular.copy(selectedObj, $scope.newClassifierRefObj);
\r
1715 $scope.showForm = function() {
\r
1716 $scope.reloadNewObj();
\r
1717 $scope.internalView.classifierRef = true;
\r
1718 $scope.internalView.edit = "add";
\r
1719 $scope.selectedClassifierRef = null;
\r
1722 $scope.close = function(){
\r
1723 $scope.internalView.classifierRef = false;
\r
1724 $scope.internalView.edit = "view";
\r
1727 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1728 if (!event.defaultPrevented) {
\r
1729 if ( $scope.selectedClassifierRef ) {
\r
1730 $scope.internalView.classifierRef = true;
\r
1731 $scope.internalView.edit = "edit";
\r
1732 angular.copy($scope.selectedClassifierRef, $scope.newClassifierRefObj);
\r
1734 event.defaultPrevented = true;
\r
1738 $scope.$on('GBP_RULE_RELOAD',function(){
\r
1742 $scope.$on('GBP_CLASSIFIER_INSTANCE_RELOAD',function(){
\r
1743 instanceNamesLoad();
\r
1747 gbp.register.controller('tenantCtrl', ['$scope', 'GBPTenantServices', '$filter', function($scope, GBPTenantServices, $filter){
\r
1749 $scope.selectedTenantObj = null;
\r
1750 $scope.newTenantObj = GBPTenantServices.createObj();
\r
1751 $scope.displayLabel = ['name' , 'id'];
\r
1752 $scope.crudLabel = 'Tenants list';
\r
1759 $scope.init = function() {
\r
1760 GBPTenantServices.load(
\r
1762 $scope.list = data;
\r
1763 $scope.newTenantObj = GBPTenantServices.createObj();
\r
1764 $scope.selectedTenantObj = null;
\r
1771 $scope.save = function(){
\r
1772 if($scope.validateForm($scope.tenantForm)){
\r
1773 path = GBPTenantServices.createPathObj($scope.newTenantObj.id);
\r
1774 GBPTenantServices.send(path, $scope.newTenantObj, function(data){
\r
1776 $scope.view.tenant = false;
\r
1777 $scope.view.edit = "view";
\r
1778 $scope.$emit('GBP_GLOBAL_TENANT_RELOAD');
\r
1785 $scope.delete = function() {
\r
1786 if($scope.selectedTenantObj) {
\r
1787 path = GBPTenantServices.createPathObj($scope.selectedTenantObj.id);
\r
1789 GBPTenantServices.delete(path, function(data){
\r
1791 $scope.view.tenant = false;
\r
1792 $scope.$emit('GBP_GLOBAL_TENANT_RELOAD');
\r
1799 $scope.reload = function(selectedObj) {
\r
1800 $scope.selectedTenantObj = selectedObj;
\r
1802 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
1804 $scope.view.tenant = true;
\r
1807 $scope.view.tenant = false;
\r
1808 $scope.view.edit = "view";
\r
1811 if ($scope.view.tenant) {
\r
1812 angular.copy(selectedObj, $scope.newTenantObj);
\r
1816 $scope.showForm = function() {
\r
1817 $scope.newTenantObj = GBPTenantServices.createObj();
\r
1818 $scope.selectedTenantObj = null;
\r
1819 $scope.view.tenant = true;
\r
1820 $scope.view.edit = "add";
\r
1823 $scope.close = function(){
\r
1824 $scope.view.tenant = false;
\r
1825 $scope.view.edit = "view";
\r
1828 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1829 if (!event.defaultPrevented) {
\r
1830 if ( $scope.selectedTenantObj ) {
\r
1831 $scope.view.tenant = true;
\r
1832 $scope.view.edit = "edit";
\r
1833 angular.copy($scope.selectedTenantObj, $scope.newTenantObj);
\r
1835 event.defaultPrevented = true;
\r
1839 $scope.$on('GBP_GLOBAL_TENANT_RELOAD',function(){
\r
1844 gbp.register.controller('epgCtrl',['$scope', 'GBPEpgServices', 'GBPContractServices', '$filter',
\r
1845 function($scope, GBPEpgServices, GBPContractServices, $filter){
\r
1846 $scope.selectedEpg = null;
\r
1847 $scope.newEpgObj = GBPEpgServices.createObj();
\r
1848 $scope.displayLabel = ['name', 'id'];
\r
1849 $scope.crudLabel = 'Group list';
\r
1851 $scope.igpOpts = ['allow', 'require-contract'];
\r
1853 $scope.contracts = {'options' : [], 'labels' : null};
\r
1854 $scope.getDisplayLabelsFromCtrl('GBP_CONTRACTS_LABEL', $scope.contracts);
\r
1858 $scope.internalView = {
\r
1863 var loadContracts = function() {
\r
1864 GBPContractServices.load(path, function(data){
\r
1865 $scope.contracts.options = data;
\r
1871 mandatoryProperties = ['name'],
\r
1873 clear = function(){
\r
1875 $scope.selectedEpg = null;
\r
1876 $scope.newEpgObj = GBPEpgServices.createObj();
\r
1877 $scope.internalView = {
\r
1883 $scope.init = function() {
\r
1884 if ($scope.selectedTenant) {
\r
1885 path = GBPEpgServices.createPathObj($scope.selectedTenant.id);
\r
1887 GBPEpgServices.load(path, function(data){
\r
1888 $scope.list = data;
\r
1889 // $scope.$broadcast('GBP_EPG_RELOAD');
\r
1890 $scope.sendReloadEventFromRoot('GBP_EPG_RELOAD');
\r
1901 $scope.save = function(){
\r
1902 if($scope.validateForm($scope.epgForm)){
\r
1903 path = GBPEpgServices.createPathObj($scope.selectedTenant.id, $scope.newEpgObj.id);
\r
1904 GBPEpgServices.send(path, $scope.newEpgObj, function(data){
\r
1906 $scope.internalView.epg = false;
\r
1907 $scope.reloadNewObj();
\r
1908 $scope.internalView.edit = "view";
\r
1915 $scope.delete = function() {
\r
1916 if($scope.selectedTenant && $scope.selectedEpg) {
\r
1917 path = GBPEpgServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id);
\r
1918 GBPEpgServices.delete(path, function(data){
\r
1920 $scope.internalView.epg = false;
\r
1927 $scope.showForm = function() {
\r
1928 $scope.internalView.epg = true;
\r
1929 $scope.reloadNewObj();
\r
1930 $scope.selectedEpg = null;
\r
1931 $scope.internalView.edit = "add";
\r
1934 $scope.reloadNewObj = function() {
\r
1935 $scope.newEpgObj = GBPEpgServices.createObj();
\r
1938 $scope.reload = function(selectedObj) {
\r
1939 $scope.selectedEpg = selectedObj;
\r
1940 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
1942 $scope.internalView.epg = true;
\r
1944 $scope.internalView.epg = false;
\r
1945 $scope.internalView.edit = "view";
\r
1948 if($scope.internalView.epg) {
\r
1949 angular.copy(selectedObj, $scope.newEpgObj);
\r
1951 $scope.sendReloadEventFromRoot('GBP_EPG_RELOAD');
\r
1954 $scope.close = function(){
\r
1955 $scope.internalView.epg = false;
\r
1956 $scope.internalView.edit = "view";
\r
1958 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
1959 if (!event.defaultPrevented) {
\r
1960 if ( $scope.selectedEpg ) {
\r
1961 $scope.internalView.epg = true;
\r
1962 $scope.internalView.edit = "edit";
\r
1963 angular.copy($scope.selectedEpg, $scope.newEpgObj);
\r
1965 event.defaultPrevented = true;
\r
1969 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
1973 $scope.$on('GBP_CONTRACT_RELOAD',function(){
\r
1977 $scope.$on('GBP_EPG_LABEL', function(event, obj){
\r
1978 obj.labels = $scope.displayLabel;
\r
1982 gbp.register.controller('cnsCtrl',['$scope', 'GBPConNamedSelServices', function($scope, GBPConNamedSelServices){
\r
1984 $scope.selectedCNS = null;
\r
1985 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
1986 $scope.internalView = {
\r
1990 $scope.displayLabel = 'name';
\r
1991 $scope.crudLabel = 'Consumer named selectors list';
\r
1993 var clear = function(){
\r
1995 $scope.selectedCNS = null;
\r
1996 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
1997 $scope.internalView = {
\r
2003 //move to separate ctrl \/
\r
2004 $scope.addNewElem = function(templateObj) {
\r
2005 if($scope.newCNSObj && $scope.newCNSObj.contract) {
\r
2006 var objToPush = templateObj || "";
\r
2007 $scope.newCNSObj.contract.push(objToPush);
\r
2011 $scope.deleteElemAt = function(index) {
\r
2012 if($scope.newCNSObj && $scope.newCNSObj.contract) {
\r
2013 $scope.newCNSObj.contract.splice(index, 1);
\r
2017 $scope.updateAt = function(index, value) {
\r
2018 if($scope.newCNSObj && $scope.newCNSObj.contract && $scope.newCNSObj.contract.length >= index) {
\r
2019 $scope.newCNSObj.contract[index] = value;
\r
2022 //move to separate ctrl /\
\r
2024 $scope.init = function() {
\r
2025 if ($scope.selectedTenant && $scope.selectedEpg) {
\r
2026 path = GBPConNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id);
\r
2028 GBPConNamedSelServices.load(path, function(data){
\r
2029 $scope.list = data;
\r
2038 $scope.save = function(){
\r
2039 if($scope.validateForm($scope.cnsForm)){
\r
2040 path = GBPConNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id, $scope.newCNSObj.name);
\r
2041 GBPConNamedSelServices.send(path, $scope.newCNSObj, function(data){
\r
2043 $scope.internalView.cns = false;
\r
2044 $scope.internalView.cns = "view";
\r
2045 $scope.reloadNewObj();
\r
2052 $scope.delete = function() {
\r
2053 if($scope.selectedTenant && $scope.selectedEpg && $scope.selectedCNS) {
\r
2054 path = GBPConNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id, $scope.selectedCNS.name);
\r
2055 GBPConNamedSelServices.delete(path, function(data){
\r
2063 $scope.showForm = function() {
\r
2064 $scope.reloadNewObj();
\r
2065 $scope.selectedCNS = null;
\r
2066 $scope.internalView.cns = true;
\r
2067 $scope.internalView.edit = "add";
\r
2070 $scope.reloadNewObj = function() {
\r
2071 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
2074 $scope.reload = function(selectedObj) {
\r
2075 $scope.selectedCNS = selectedObj;
\r
2076 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
2078 $scope.internalView.cns = true;
\r
2080 $scope.internalView.cns = false;
\r
2081 $scope.internalView.edit = "view";
\r
2084 if($scope.internalView.cns) {
\r
2085 angular.copy(selectedObj, $scope.newCNSObj);
\r
2089 $scope.close = function(){
\r
2090 $scope.internalView.cns = false;
\r
2091 $scope.internalView.edit = "view";
\r
2094 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2095 if (!event.defaultPrevented) {
\r
2096 if ( $scope.selectedEpg ) {
\r
2097 $scope.internalView.cns = true;
\r
2098 $scope.internalView.edit = "add";
\r
2099 angular.copy($scope.selectedCNS, $scope.newCNSObj);
\r
2101 event.defaultPrevented = true;
\r
2105 $scope.$on('GBP_EPG_RELOAD',function(){
\r
2110 gbp.register.controller('pnsCtrl',['$scope', 'GBPProNamedSelServices', function($scope, GBPProNamedSelServices){
\r
2112 $scope.selectedPNS = null;
\r
2113 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
2114 $scope.displayLabel = 'name';
\r
2115 $scope.crudLabel = 'Provider named selectors list';
\r
2116 $scope.internalView = {
\r
2121 var clear = function(){
\r
2123 $scope.selectedPNS = null;
\r
2124 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
2125 $scope.internalView = {
\r
2131 //move to separate ctrl \/
\r
2132 $scope.addNewElem = function(templateObj) {
\r
2133 if($scope.newPNSObj && $scope.newPNSObj.contract) {
\r
2134 var objToPush = templateObj || "";
\r
2135 $scope.newPNSObj.contract.push(objToPush);
\r
2139 $scope.deleteElemAt = function(index) {
\r
2140 if($scope.newPNSObj && $scope.newPNSObj.contract) {
\r
2141 $scope.newPNSObj.contract.splice(index, 1);
\r
2145 $scope.updateAt = function(index, value) {
\r
2146 if($scope.newPNSObj && $scope.newPNSObj.contract && $scope.newPNSObj.contract.length >= index) {
\r
2147 $scope.newPNSObj.contract[index] = value;
\r
2150 //move to separate ctrl /\
\r
2152 $scope.init = function() {
\r
2153 if ($scope.selectedTenant && $scope.selectedEpg) {
\r
2154 path = GBPProNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id);
\r
2156 GBPProNamedSelServices.load(path, function(data){
\r
2157 $scope.list = data;
\r
2166 $scope.save = function(){
\r
2167 if($scope.validateForm($scope.pnsForm)){
\r
2168 path = GBPProNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id, $scope.newPNSObj.name);
\r
2169 GBPProNamedSelServices.send(path, $scope.newPNSObj, function(data){
\r
2171 $scope.internalView.pns = false;
\r
2172 $scope.reloadNewObj();
\r
2173 $scope.internalView.cns = "view";
\r
2180 $scope.delete = function() {
\r
2181 if($scope.selectedTenant && $scope.selectedEpg && $scope.selectedPNS) {
\r
2182 path = GBPProNamedSelServices.createPathObj($scope.selectedTenant.id, $scope.selectedEpg.id, $scope.selectedPNS.name);
\r
2183 GBPProNamedSelServices.delete(path, function(data){
\r
2191 $scope.showForm = function() {
\r
2192 $scope.reloadNewObj();
\r
2193 $scope.internalView.pns = true;
\r
2194 $scope.internalView.edit = "add";
\r
2195 $scope.selectedPNS = null;
\r
2198 $scope.reloadNewObj = function() {
\r
2199 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
2202 $scope.reload = function(selectedObj) {
\r
2203 $scope.selectedPNS = selectedObj;
\r
2204 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
2206 $scope.internalView.pns = true;
\r
2208 $scope.internalView.pns = false;
\r
2209 $scope.internalView.edit = "view";
\r
2212 if($scope.internalView.pns) {
\r
2213 angular.copy(selectedObj, $scope.newPNSObj);
\r
2217 $scope.close = function(){
\r
2218 $scope.internalView.pns = false;
\r
2219 $scope.internalView.edit = "view";
\r
2221 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2222 if (!event.defaultPrevented) {
\r
2223 if ( $scope.selectedEpg ) {
\r
2224 $scope.internalView.pns = true;
\r
2225 $scope.internalView.edit = "edit";
\r
2226 angular.copy($scope.selectedPNS, $scope.newPNSObj);
\r
2228 event.defaultPrevented = true;
\r
2232 $scope.$on('GBP_EPG_RELOAD',function(){
\r
2237 gbp.register.controller('l2FloodCtrl', ['$scope', 'GBPL2FloodDomainServices', 'GBPL2BridgeDomainServices', '$filter', function($scope, GBPL2FloodDomainServices, GBPL2BridgeDomainServices, $filter){
\r
2239 $scope.selectedL2Flood = null;
\r
2240 $scope.newL2FloodObj = GBPL2FloodDomainServices.createObj();
\r
2241 $scope.displayLabel = ['name', 'id'];
\r
2242 $scope.crudLabel = 'L2 Flood Domain list';
\r
2244 $scope.l2bridge = {'options' : [], 'labels' : null};
\r
2245 $scope.getDisplayLabelsFromCtrl('GBP_L2BRIDGE_LABEL', $scope.l2bridge);
\r
2254 loadL2BridgeList = function() {
\r
2255 GBPL2BridgeDomainServices.load(GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id), function(data){
\r
2256 $scope.l2bridge.options = data;
\r
2262 clear = function(){
\r
2264 $scope.selectedL2Flood = null;
\r
2265 $scope.newL2FloodObj = GBPL2FloodDomainServices.createObj();
\r
2272 $scope.init = function() {
\r
2273 if ( $scope.selectedTenant ) {
\r
2274 path = GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id);
\r
2276 GBPL2FloodDomainServices.load(path, function(data){
\r
2277 $scope.list = data;
\r
2279 $scope.newL2FloodObj = GBPL2FloodDomainServices.createObj();
\r
2280 $scope.selectedL2Flood = null;
\r
2285 loadL2BridgeList();
\r
2291 $scope.save = function(){
\r
2292 if($scope.validateForm($scope.l2FloodForm)){
\r
2293 path = GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id, $scope.newL2FloodObj.id);
\r
2294 GBPL2FloodDomainServices.send(path, $scope.newL2FloodObj, function(data){
\r
2296 $scope.view.l2flood = false;
\r
2297 $scope.view.edit = "view";
\r
2298 $scope.sendReloadEventFromRoot('GBP_L2FLOOD_RELOAD');
\r
2305 $scope.delete = function() {
\r
2306 if($scope.selectedTenant && $scope.selectedL2Flood) {
\r
2307 path = GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id, $scope.selectedL2Flood.id);
\r
2308 GBPL2FloodDomainServices.delete(path, function(data){
\r
2310 $scope.view.l2flood = false;
\r
2311 $scope.view.edit = "view";
\r
2312 $scope.sendReloadEventFromRoot('GBP_L2FLOOD_RELOAD');
\r
2319 $scope.reload = function(selectedObj) {
\r
2320 $scope.selectedL2Flood = selectedObj;
\r
2322 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
2324 $scope.view.l2flood = true;
\r
2327 $scope.view.l2flood = false;
\r
2328 $scope.view.edit = "view";
\r
2331 if ($scope.view.l2flood) {
\r
2332 angular.copy(selectedObj, $scope.newL2FloodObj);
\r
2335 $scope.sendReloadEventFromRoot('GBP_L2FLOOD_RELOAD');
\r
2338 $scope.showForm = function() {
\r
2339 $scope.newL2FloodObj = GBPL2FloodDomainServices.createObj();
\r
2340 $scope.selectedL2Flood = null;
\r
2341 $scope.view.l2flood = true;
\r
2342 $scope.view.edit = "add";
\r
2345 $scope.close = function(){
\r
2346 $scope.view.l2flood = false;
\r
2349 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2350 if (!event.defaultPrevented) {
\r
2351 if ( $scope.selectedL2Flood ) {
\r
2352 $scope.view.l2flood = true;
\r
2353 $scope.view.edit = "edit";
\r
2354 angular.copy($scope.selectedL2Flood, $scope.newL2FloodObj);
\r
2356 event.defaultPrevented = true;
\r
2360 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
2364 $scope.$on('GBP_L2BRIDGE_RELOAD',function(){
\r
2365 loadL2BridgeList();
\r
2368 $scope.$on('GBP_L2FLOOD_LABEL', function(event, obj){
\r
2369 obj.labels = $scope.displayLabel;
\r
2373 gbp.register.controller('l2BridgeCtrl', ['$scope', 'GBPL2BridgeDomainServices', 'GBPL3ContextServices', '$filter', function($scope, GBPL2BridgeDomainServices, GBPL3ContextServices, $filter){
\r
2375 $scope.selectedL2Bridge = null;
\r
2376 $scope.newL2BridgeObj = GBPL2BridgeDomainServices.createObj();
\r
2377 $scope.displayLabel = ['name', 'id'];
\r
2378 $scope.crudLabel = 'L2 Bridge Domain list';
\r
2380 $scope.l3context = {'options' : [], 'labels' : null};
\r
2381 $scope.getDisplayLabelsFromCtrl('GBP_L3CONTEXT_LABEL', $scope.l3context);
\r
2390 loadL3ContextList = function() {
\r
2391 GBPL3ContextServices.load(GBPL3ContextServices.createPathObj($scope.selectedTenant.id), function(data){
\r
2392 $scope.l3context.options = data;
\r
2393 //$scope.$broadcast('GBP_L2BRIDGE_RELOAD');
\r
2399 clear = function(){
\r
2401 $scope.selectedL2Bridge = null;
\r
2402 $scope.newL2BridgeObj = GBPL2BridgeDomainServices.createObj();
\r
2409 $scope.init = function() {
\r
2410 if ( $scope.selectedTenant ) {
\r
2411 path = GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id);
\r
2413 GBPL2BridgeDomainServices.load(path, function(data){
\r
2414 $scope.list = data;
\r
2415 $scope.newL2BridgeObj = GBPL2BridgeDomainServices.createObj();
\r
2416 $scope.selectedL2Bridge = null;
\r
2417 // $scope.$broadcast('GBP_L2BRIDGE_RELOAD');
\r
2422 loadL3ContextList();
\r
2430 $scope.save = function(){
\r
2431 if($scope.validateForm($scope.l2BridgeForm)){
\r
2432 path = GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id, $scope.newL2BridgeObj.id);
\r
2433 GBPL2BridgeDomainServices.send(path, $scope.newL2BridgeObj, function(data){
\r
2435 $scope.view.l2bridge = false;
\r
2436 $scope.view.edit = "view";
\r
2437 $scope.sendReloadEventFromRoot('GBP_L2BRIDGE_RELOAD');
\r
2444 $scope.delete = function() {
\r
2445 if($scope.selectedTenant && $scope.selectedL2Bridge) {
\r
2446 path = GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id, $scope.selectedL2Bridge.id);
\r
2447 GBPL2BridgeDomainServices.delete(path, function(data){
\r
2449 $scope.view.l2bridge = false;
\r
2450 $scope.view.edit = "view";
\r
2451 $scope.sendReloadEventFromRoot('GBP_L2BRIDGE_RELOAD');
\r
2458 $scope.reload = function(selectedObj) {
\r
2459 $scope.selectedL2Bridge = selectedObj;
\r
2461 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
2463 $scope.view.l2bridge = true;
\r
2466 $scope.view.l2bridge = false;
\r
2467 $scope.view.edit = "view";
\r
2470 if ($scope.view.l2bridge) {
\r
2471 angular.copy(selectedObj, $scope.newL2BridgeObj);
\r
2474 $scope.sendReloadEventFromRoot('GBP_L2BRIDGE_RELOAD');
\r
2477 $scope.showForm = function() {
\r
2478 $scope.newL2BridgeObj = GBPL2BridgeDomainServices.createObj();
\r
2479 $scope.selectedL2Bridge = null;
\r
2480 $scope.view.l2bridge = true;
\r
2481 $scope.view.edit = "add";
\r
2484 $scope.close = function(){
\r
2485 $scope.view.l2bridge = false;
\r
2488 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2489 if (!event.defaultPrevented) {
\r
2490 if ( $scope.selectedL2Bridge ) {
\r
2491 $scope.view.l2bridge = true;
\r
2492 $scope.view.edit = "edit";
\r
2493 angular.copy($scope.selectedL2Bridge, $scope.newL2BridgeObj);
\r
2495 event.defaultPrevented = true;
\r
2499 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
2503 $scope.$on('GBP_L3CONTEXT_RELOAD',function(){
\r
2504 loadL3ContextList();
\r
2507 $scope.$on('GBP_L2BRIDGE_LABEL', function(event, obj){
\r
2508 obj.labels = $scope.displayLabel;
\r
2512 gbp.register.controller('l3ContextCtrl', ['$scope', 'GBPL3ContextServices', '$filter', function($scope, GBPL3ContextServices, $filter){ //GBPContractServices
\r
2514 $scope.selectedL3Context = null;
\r
2515 $scope.newL3ContextObj = GBPL3ContextServices.createObj();
\r
2516 $scope.displayLabel = ['name', 'id'];
\r
2517 $scope.crudLabel = 'L3 Context list';
\r
2526 clear = function(){
\r
2532 $scope.selectedL3Context = null;
\r
2533 $scope.newL3ContextObj = GBPL3ContextServices.createObj();
\r
2536 $scope.init = function() {
\r
2537 if ( $scope.selectedTenant ) {
\r
2538 path = GBPL3ContextServices.createPathObj($scope.selectedTenant.id);
\r
2540 GBPL3ContextServices.load(path, function(data){
\r
2541 $scope.list = data;
\r
2542 $scope.newL3ContextObj = GBPL3ContextServices.createObj();
\r
2543 $scope.selectedL3Context = null;
\r
2552 $scope.save = function(){
\r
2553 if($scope.validateForm($scope.l3ContextForm)){
\r
2554 path = GBPL3ContextServices.createPathObj($scope.selectedTenant.id, $scope.newL3ContextObj.id);
\r
2555 GBPL3ContextServices.send(path, $scope.newL3ContextObj, function(data){
\r
2557 $scope.view.l3context = false;
\r
2558 $scope.view.edit = "view";
\r
2559 $scope.sendReloadEventFromRoot('GBP_L3CONTEXT_RELOAD');
\r
2566 $scope.delete = function() {
\r
2567 if($scope.selectedTenant && $scope.selectedL3Context) {
\r
2568 path = GBPL3ContextServices.createPathObj($scope.selectedTenant.id, $scope.selectedL3Context.id);
\r
2569 GBPL3ContextServices.delete(path, function(data){
\r
2571 $scope.view.l3context = false;
\r
2572 $scope.view.edit = "view";
\r
2573 $scope.sendReloadEventFromRoot('GBP_L3CONTEXT_RELOAD');
\r
2580 $scope.reload = function(selectedObj) {
\r
2581 $scope.selectedL3Context = selectedObj;
\r
2583 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
2585 $scope.view.l3context = true;
\r
2588 $scope.view.l3context = false;
\r
2589 $scope.view.edit = "view";
\r
2592 if($scope.view.l3context) {
\r
2593 angular.copy(selectedObj, $scope.newL3ContextObj);
\r
2596 $scope.sendReloadEventFromRoot('GBP_L3CONTEXT_RELOAD');
\r
2599 $scope.showForm = function() {
\r
2600 $scope.newL3ContextObj = GBPL3ContextServices.createObj();
\r
2601 $scope.selectedL3Context = null;
\r
2602 $scope.view.l3context = true;
\r
2603 $scope.view.edit = "add";
\r
2606 $scope.close = function(){
\r
2607 $scope.view.l3context = false;
\r
2610 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2611 if (!event.defaultPrevented) {
\r
2612 if ( $scope.selectedL3Context ) {
\r
2613 $scope.view.l3context = true;
\r
2614 $scope.view.edit = "edit";
\r
2615 angular.copy($scope.selectedL3Context, $scope.newL3ContextObj);
\r
2617 event.defaultPrevented = true;
\r
2621 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
2625 $scope.$on('GBP_L3CONTEXT_LABEL', function(event, obj){
\r
2626 obj.labels = $scope.displayLabel;
\r
2630 gbp.register.controller('subnetCtrl', ['$scope', 'GBPSubnetServices', 'GBPL2FloodDomainServices', 'GBPL2BridgeDomainServices', 'GBPL3ContextServices', '$filter', function($scope, GBPSubnetServices, GBPL2FloodDomainServices, GBPL2BridgeDomainServices, GBPL3ContextServices, $filter){
\r
2632 $scope.selectedSubnet = null;
\r
2633 $scope.newSubnetObj = GBPSubnetServices.createObj();
\r
2634 $scope.displayLabel = ['name', 'id'];
\r
2635 $scope.crudLabel = 'Subnet list';
\r
2637 $scope.l2L3List = {'options' : [], 'labels' : null};
\r
2638 $scope.getDisplayLabelsFromCtrl('GBP_L2FLOOD_LABEL', $scope.l2L3List);
\r
2648 loadL2L3List = function() {
\r
2649 $scope.l2L3List.options = [];
\r
2651 GBPL3ContextServices.load(GBPL3ContextServices.createPathObj($scope.selectedTenant.id), function(l3ContextData){
\r
2652 $scope.l2L3List.options = $scope.l2L3List.options.concat(l3ContextData);
\r
2657 GBPL2FloodDomainServices.load(GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id), function(l2FloodData){
\r
2658 $scope.l2L3List.options = $scope.l2L3List.options.concat(l2FloodData);
\r
2663 GBPL2BridgeDomainServices.load(GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id), function(l2BridgeData){
\r
2664 $scope.l2L3List.options = $scope.l2L3List.options.concat(l2BridgeData);
\r
2670 clear = function(){
\r
2676 $scope.selectedSubnet = null;
\r
2677 $scope.newSubnetObj = GBPSubnetServices.createObj();
\r
2680 $scope.init = function() {
\r
2681 if ( $scope.selectedTenant ) {
\r
2682 path = GBPSubnetServices.createPathObj($scope.selectedTenant.id);
\r
2684 GBPSubnetServices.load(path, function(data){
\r
2685 $scope.list = data;
\r
2686 $scope.newSubnetObj = GBPSubnetServices.createObj();
\r
2687 $scope.selectedSubnet = null;
\r
2689 $scope.view.subnet = false;
\r
2690 $scope.view.edit = "view";
\r
2691 //$scope.sendReloadEventFromRoot('GBP_L2BRIDGE_RELOAD');
\r
2702 $scope.save = function(){
\r
2703 if($scope.validateForm($scope.subnetForm)){
\r
2704 path = GBPSubnetServices.createPathObj($scope.selectedTenant.id, $scope.newSubnetObj.id);
\r
2705 GBPSubnetServices.send(path, $scope.newSubnetObj, function(data){
\r
2707 $scope.view.subnet = false;
\r
2708 $scope.view.edit = "view";
\r
2715 $scope.delete = function() {
\r
2716 if($scope.selectedTenant && $scope.selectedSubnet) {
\r
2717 path = GBPSubnetServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id);
\r
2718 GBPSubnetServices.delete(path, function(data){
\r
2720 $scope.view.subnet = false;
\r
2721 $scope.view.edit = "view";
\r
2728 $scope.reload = function(selectedObj) {
\r
2729 $scope.selectedSubnet = selectedObj;
\r
2731 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
2733 $scope.view.subnet = true;
\r
2736 $scope.view.subnet = false;
\r
2737 $scope.view.edit = "view";
\r
2740 if($scope.view.subnet) {
\r
2741 angular.copy(selectedObj, $scope.newSubnetObj);
\r
2744 $scope.sendReloadEventFromRoot('GBP_SUBNET_RELOAD');
\r
2747 $scope.showForm = function() {
\r
2748 $scope.newSubnetObj = GBPSubnetServices.createObj();
\r
2749 $scope.selectedSubnet = null;
\r
2750 $scope.view.subnet = true;
\r
2751 $scope.view.edit = "add";
\r
2754 $scope.close = function(){
\r
2755 $scope.view.subnet = false;
\r
2758 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2759 if (!event.defaultPrevented) {
\r
2760 if ( $scope.selectedSubnet ) {
\r
2761 $scope.view.subnet = true;
\r
2762 $scope.view.edit = "edit";
\r
2763 angular.copy($scope.selectedSubnet, $scope.newSubnetObj);
\r
2765 event.defaultPrevented = true;
\r
2769 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
2773 $scope.$on('GBP_GATEWAY_RELOAD',function(){
\r
2777 $scope.$on('GBP_L3CONTEXT_RELOAD',function(){
\r
2781 $scope.$on('GBP_L2BRIDGE_RELOAD',function(){
\r
2785 $scope.$on('GBP_L2FLOOD_RELOAD',function(){
\r
2789 $scope.$on('GBP_PREFIX_RELOAD',function(){
\r
2794 gbp.register.controller('gatewayCtrl', ['$scope', 'GBPGatewayServices', function($scope, GBPGatewayServices){
\r
2796 $scope.gatewayView = false;
\r
2797 $scope.selectedGateway = null;
\r
2798 $scope.newGatewayObj = GBPGatewayServices.createObj();
\r
2799 $scope.displayLabel = 'gateway';
\r
2800 $scope.crudLabel = 'Gateway list';
\r
2801 $scope.internalView = {
\r
2808 clear = function(){
\r
2810 $scope.gatewayView = false;
\r
2811 $scope.selectedGateway = null;
\r
2812 $scope.newGatewayObj = GBPGatewayServices.createObj();
\r
2815 $scope.init = function() {
\r
2816 if ( $scope.selectedTenant && $scope.selectedSubnet ) {
\r
2817 path = GBPGatewayServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id);
\r
2819 GBPGatewayServices.load(path, function(data){
\r
2820 $scope.list = data;
\r
2821 $scope.newGatewayObj = GBPGatewayServices.createObj();
\r
2822 $scope.internalView.gateway = false;
\r
2823 $scope.selectedGateway = null;
\r
2832 $scope.save = function(){
\r
2833 if($scope.validateForm($scope.gatewayForm)){
\r
2834 path = GBPGatewayServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id, $scope.newGatewayObj.gateway);
\r
2835 GBPGatewayServices.send(path, $scope.newGatewayObj, function(data){
\r
2837 $scope.internalView.gateway = false;
\r
2838 $scope.internalView.edit = "view";
\r
2839 $scope.sendReloadEventFromRoot('GBP_GATEWAY_RELOAD');
\r
2846 $scope.delete = function() {
\r
2847 if($scope.selectedTenant && $scope.selectedSubnet && $scope.selectedGateway) {
\r
2848 path = GBPGatewayServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id, $scope.selectedGateway.gateway);
\r
2849 GBPGatewayServices.delete(path, function(data){
\r
2851 $scope.internalView.gateway = false;
\r
2852 $scope.sendReloadEventFromRoot('GBP_GATEWAY_RELOAD');
\r
2859 $scope.reload = function(selectedObj) {
\r
2860 $scope.selectedGateway = selectedObj;
\r
2861 angular.copy(selectedObj, $scope.newGatewayObj);
\r
2862 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
2864 $scope.internalView.gateway = true;
\r
2866 $scope.internalView.gateway = false;
\r
2867 $scope.internalView.edit = "view";
\r
2870 $scope.sendReloadEventFromRoot('GBP_GATEWAY_SET');
\r
2873 $scope.showForm = function() {
\r
2874 $scope.newGatewayObj = GBPGatewayServices.createObj();
\r
2875 $scope.internalView.gateway = true;
\r
2876 $scope.internalView.edit = "add";
\r
2877 $scope.selectedGateway = null;
\r
2880 $scope.close = function(){
\r
2881 $scope.internalView.gateway = false;
\r
2884 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2885 if (!event.defaultPrevented) {
\r
2886 if ( $scope.selectedGateway ) {
\r
2887 $scope.internalView.gateway = true;
\r
2888 $scope.internalView.edit = "edit";
\r
2889 angular.copy($scope.selectedGateway, $scope.newGatewayObj);
\r
2891 event.defaultPrevented = true;
\r
2895 $scope.$on('GBP_SUBNET_RELOAD',function(){
\r
2899 $scope.$on('GBP_PREFIX_RELOAD',function(){
\r
2904 gbp.register.controller('prefixCtrl', ['$scope', 'GBPPrefixServices', function($scope, GBPPrefixServices){
\r
2906 $scope.selectedPrefix = null;
\r
2907 $scope.newPrefixObj = GBPPrefixServices.createObj();
\r
2908 $scope.displayLabel = 'prefix';
\r
2909 $scope.crudLabel = 'Prefix list';
\r
2910 $scope.internalView = {
\r
2917 clear = function(){
\r
2919 $scope.selectedPrefix = null;
\r
2920 $scope.newPrefixObj = GBPPrefixServices.createObj();
\r
2921 $scope.internalView = {
\r
2927 $scope.init = function() {
\r
2928 if ( $scope.selectedTenant && $scope.selectedSubnet && $scope.selectedGateway) {
\r
2929 path = GBPPrefixServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id, $scope.selectedGateway.gateway);
\r
2931 GBPPrefixServices.load(path, function(data){
\r
2932 $scope.list = data;
\r
2933 $scope.newPrefixObj = GBPPrefixServices.createObj();
\r
2934 $scope.internalView.prefix = false;
\r
2935 $scope.selectedPrefix = null;
\r
2944 $scope.save = function(){
\r
2945 if($scope.validateForm($scope.prefixForm)){
\r
2946 path = GBPPrefixServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id, $scope.selectedGateway.gateway, $scope.newPrefixObj.prefix);
\r
2947 GBPPrefixServices.send(path, $scope.newPrefixObj, function(data){
\r
2949 $scope.internalView.prefix = false;
\r
2950 $scope.internalView.edit = "view";
\r
2951 $scope.sendReloadEventFromRoot('GBP_PREFIX_RELOAD');
\r
2958 $scope.delete = function() {
\r
2959 path = GBPPrefixServices.createPathObj($scope.selectedTenant.id, $scope.selectedSubnet.id, $scope.selectedGateway.gateway, $scope.selectedPrefix.prefix);
\r
2960 GBPPrefixServices.delete(path, function(data){
\r
2962 $scope.internalView.prefix = false;
\r
2963 $scope.sendReloadEventFromRoot('GBP_PREFIX_RELOAD');
\r
2969 $scope.reload = function(selectedObj) {
\r
2970 $scope.selectedPrefix = selectedObj;
\r
2971 $scope.internalView.edit = $scope.internalView.edit == "edit" ? $scope.internalView.edit : "view";
\r
2973 $scope.internalView.prefix = true;
\r
2975 $scope.internalView.prefix = false;
\r
2976 $scope.internalView.edit = "view";
\r
2979 angular.copy(selectedObj, $scope.newPrefixObj);
\r
2982 $scope.showForm = function() {
\r
2983 $scope.newPrefixObj = GBPPrefixServices.createObj();
\r
2984 $scope.internalView.prefix = true;
\r
2985 $scope.internalView.edit = "add";
\r
2986 $scope.selectedPrefix = null;
\r
2989 $scope.close = function(){
\r
2990 $scope.internalView.prefix = false;
\r
2993 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
2994 if (!event.defaultPrevented) {
\r
2995 if ( $scope.selectedPrefix ) {
\r
2996 $scope.internalView.prefix = true;
\r
2997 $scope.internalView.edit = "edit";
\r
2998 angular.copy($scope.selectedPrefix, $scope.newPrefixObj);
\r
3000 event.defaultPrevented = true;
\r
3004 $scope.$on('GBP_GATEWAY_SET',function(){
\r
3009 gbp.register.controller('renderersCtrl', ['$scope', 'GPBServices', function($scope, GPBServices){ //GBPContractServices
\r
3010 $scope.classifierDefinitions = {'options' : [], 'labels' : null};
\r
3011 $scope.actionDefinitions = {'options' : [], 'labels' : null};
\r
3013 //reload on event?
\r
3015 var loadDefinitions = function() {
\r
3016 GPBServices.getDefinitions(function(classifierDefs, actionDefs) {
\r
3017 $scope.classifierDefinitions.options = classifierDefs;
\r
3018 $scope.getDisplayLabelsFromCtrl('GBP_CLASSIFIERS_LABEL', $scope.classifierDefinitions);
\r
3020 $scope.actionDefinitions.options = actionDefs;
\r
3021 $scope.getDisplayLabelsFromCtrl('GBP_ACTIONS_LABEL', $scope.actionDefinitions);
\r
3025 loadDefinitions();
\r
3028 gbp.register.controller('paramCtrl', ['$scope', 'GPBServices', function($scope, GPBServices){
\r
3029 $scope.value = null;
\r
3031 $scope.init = function(param, paramValues) {
\r
3032 $scope.parameter = param;
\r
3035 paramValues.forEach(function(p) {
\r
3036 if($scope.parameter.name === p.name) {
\r
3037 $scope.value = GPBServices.getInstanceParamValue(p);
\r
3043 $scope.$on('GBP_SAVE_PARAM', function(event){
\r
3044 if($scope.value !== '' && $scope.value !== null) {
\r
3045 $scope.addParam($scope.parameter.name, $scope.parameter.type, $scope.value);
\r
3049 $scope.$on('GBP_SET_PARAM_VALUE', function(event, name, intVal, strVal) {
\r
3050 //console.info($scope.parameter, ' got GBP_SET_PARAM_VALUE', name, intVal, strVal, event);
\r
3054 $scope.$on('GBP_RESET_PARAM', function(event){
\r
3055 $scope.value = null;
\r
3059 gbp.register.controller('classifiersCtrl', ['$scope', 'GBPClassifierInstanceServices', 'GPBServices', '$filter',
\r
3060 function($scope, GBPClassifierInstanceServices, GPBServices, $filter){
\r
3062 $scope.classifiersView = false;
\r
3063 $scope.displayLabel = 'name';
\r
3064 $scope.selectedClassifier = null;
\r
3065 $scope.crudLabel = 'Classifiers';
\r
3066 $scope.newClassifierObj = GBPClassifierInstanceServices.createObj();
\r
3067 $scope.edit = "view";
\r
3069 var mandatoryProperties = ['name'],
\r
3071 clear = function(){
\r
3073 $scope.classifiersView = false;
\r
3074 $scope.selectedClassifier = null;
\r
3075 $scope.newClassifierObj = GBPClassifierInstanceServices.createObj();
\r
3076 $scope.edit = "view";
\r
3079 $scope.getDefinitionObjParams = function(id){
\r
3080 return GPBServices.getDefinitionObjParams($scope.classifierDefinitions.options, id);
\r
3083 $scope.reloadDefs = function(){
\r
3084 $scope.defs = angular.copy($scope.getDefinitionObjParams($scope.newClassifierObj['classifier-definition-id']));
\r
3087 $scope.addParam = function(name, type, value) {
\r
3088 $scope.newClassifierObj['parameter-value'].push(GPBServices.createParamObj(name, type, value));
\r
3091 var saveParams = function() {
\r
3092 $scope.newClassifierObj['parameter-value'] = [];
\r
3093 $scope.$broadcast('GBP_SAVE_PARAM');
\r
3097 $scope.init = function() {
\r
3098 if ( $scope.selectedTenant ) {
\r
3099 path = GBPClassifierInstanceServices.createPathObj($scope.selectedTenant.id);
\r
3100 GBPClassifierInstanceServices.load(path, function(data){
\r
3101 $scope.list = data;
\r
3102 $scope.reloadDefs();
\r
3111 $scope.save = function(){
\r
3112 if($scope.validateForm($scope.classifierForm)){
\r
3113 path = GBPClassifierInstanceServices.createPathObj($scope.selectedTenant.id, $scope.newClassifierObj.name);
\r
3115 GBPClassifierInstanceServices.send(path, $scope.newClassifierObj, function(data){
\r
3117 $scope.classifiersView = false;
\r
3118 $scope.edit = "view";
\r
3119 $scope.sendReloadEventFromRoot('GBP_CLASSIFIER_INSTANCE_RELOAD');
\r
3126 $scope.showForm = function() {
\r
3127 $scope.newClassifierObj = GBPClassifierInstanceServices.createObj();
\r
3128 $scope.selectedClassifier = null;
\r
3129 $scope.classifiersView = true;
\r
3130 $scope.edit = "add";
\r
3131 $scope.reloadDefs();
\r
3134 $scope.reload = function(selectedObj){
\r
3135 $scope.selectedClassifier = selectedObj;
\r
3136 $scope.sendReloadEventFromRoot('GBP_CLASSIFIER_INSTANCE_RELOAD');
\r
3138 $scope.edit = $scope.edit == "edit" ? $scope.edit : "view";
\r
3140 $scope.classifiersView = true;
\r
3143 $scope.classifiersView = false;
\r
3144 $scope.edit = "view";
\r
3147 if($scope.classifiersView) {
\r
3148 angular.copy(selectedObj, $scope.newClassifierObj);
\r
3151 $scope.reloadDefs();
\r
3154 $scope.close = function(){
\r
3155 $scope.classifiersView = false;
\r
3156 $scope.edit = "view";
\r
3159 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
3160 if (!event.defaultPrevented) {
\r
3161 if ( $scope.selectedClassifier ) {
\r
3162 $scope.classifiersView = true;
\r
3163 angular.copy($scope.selectedClassifier, $scope.newClassifierObj);
\r
3164 $scope.edit = "edit";
\r
3165 $scope.reloadDefs();
\r
3167 event.defaultPrevented = true;
\r
3171 $scope.delete = function(){
\r
3172 path = GBPClassifierInstanceServices.createPathObj($scope.selectedTenant.id, $scope.selectedClassifier.name);
\r
3173 GBPClassifierInstanceServices.delete(path, function(data){
\r
3175 $scope.classifiersView = false;
\r
3176 $scope.sendReloadEventFromRoot('GBP_CLASSIFIER_INSTANCE_RELOAD');
\r
3182 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
3186 $scope.$on('GBP_CLASSIFIERS_LABEL', function(event, obj){
\r
3187 obj.labels = $scope.displayLabel;
\r
3191 gbp.register.controller('actionsCtrl', ['$scope', 'GBPActionInstanceServices', 'GPBServices', '$filter',
\r
3192 function($scope, GBPActionInstanceServices, GPBServices, $filter){
\r
3194 $scope.actionsView = false;
\r
3195 $scope.displayLabel = 'name';
\r
3196 $scope.selectedAction = null;
\r
3197 $scope.crudLabel = 'Actions';
\r
3198 $scope.newActionObj = GBPActionInstanceServices.createObj();
\r
3199 $scope.edit = "view";
\r
3201 var mandatoryProperties = ['name'],
\r
3203 clear = function(){
\r
3205 $scope.actionsView = false;
\r
3206 $scope.selectedAction = null;
\r
3207 $scope.newActionObj = GBPActionInstanceServices.createObj();
\r
3208 $scope.edit = "view";
\r
3211 $scope.getDefinitionObjParams = function(id){
\r
3212 return GPBServices.getDefinitionObjParams($scope.actionDefinitions.options, id);
\r
3215 $scope.reloadDefs = function(){
\r
3216 $scope.defs = angular.copy($scope.getDefinitionObjParams($scope.newActionObj['action-definition-id']));
\r
3219 $scope.addParam = function(name, type, value) {
\r
3220 $scope.newActionObj['parameter-value'].push(GPBServices.createParamObj(name, type, value));
\r
3223 var saveParams = function() {
\r
3224 $scope.newActionObj['parameter-value'] = [];
\r
3225 $scope.$broadcast('GBP_SAVE_PARAM');
\r
3229 $scope.init = function() {
\r
3230 if ( $scope.selectedTenant ) {
\r
3231 path = GBPActionInstanceServices.createPathObj($scope.selectedTenant.id);
\r
3232 GBPActionInstanceServices.load(path, function(data){
\r
3233 $scope.list = data;
\r
3234 $scope.reloadDefs();
\r
3243 $scope.save = function(){
\r
3244 if($scope.validateForm($scope.actionsForm)){
\r
3245 path = GBPActionInstanceServices.createPathObj($scope.selectedTenant.id, $scope.newActionObj.name);
\r
3248 GBPActionInstanceServices.send(path, $scope.newActionObj, function(data){
\r
3250 $scope.actionsView = false;
\r
3251 $scope.edit = "view";
\r
3252 $scope.sendReloadEventFromRoot('GBP_ACTION_INSTANCE_RELOAD');
\r
3259 $scope.showForm = function() {
\r
3260 $scope.newActionObj = GBPActionInstanceServices.createObj();
\r
3261 $scope.selectedAction = null;
\r
3262 $scope.actionsView = true;
\r
3263 $scope.edit = "add";
\r
3264 $scope.reloadDefs();
\r
3267 $scope.reload = function(selectedObj){
\r
3268 $scope.selectedAction = selectedObj;
\r
3269 $scope.sendReloadEventFromRoot('GBP_ACTION_INSTANCE_RELOAD');
\r
3271 $scope.edit = $scope.edit == "edit" ? $scope.edit : "view";
\r
3273 $scope.actionsView = true;
\r
3276 $scope.actionsView = false;
\r
3277 $scope.edit = "view";
\r
3280 if($scope.actionsView) {
\r
3281 angular.copy(selectedObj, $scope.newActionObj);
\r
3284 $scope.reloadDefs();
\r
3287 $scope.close = function(){
\r
3288 $scope.actionsView = false;
\r
3289 $scope.edit = "view";
\r
3292 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
3293 if (!event.defaultPrevented) {
\r
3294 if ( $scope.selectedAction ) {
\r
3295 $scope.actionsView = true;
\r
3296 angular.copy($scope.selectedAction, $scope.newActionObj);
\r
3297 $scope.edit = "edit";
\r
3298 $scope.reloadDefs();
\r
3300 event.defaultPrevented = true;
\r
3304 $scope.delete = function(){
\r
3305 path = GBPActionInstanceServices.createPathObj($scope.selectedTenant.id, $scope.selectedAction.name);
\r
3306 GBPActionInstanceServices.delete(path, function(data){
\r
3308 $scope.actionsView = false;
\r
3309 $scope.sendReloadEventFromRoot('GBP_ACTION_INSTANCE_RELOAD');
\r
3315 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
3319 $scope.$on('GBP_ACTIONS_LABEL', function(event, obj){
\r
3320 obj.labels = $scope.displayLabel;
\r
3324 gbp.register.controller('endpointCtrl', ['$scope', 'GBPEndpointServices', 'GPBServices', 'GBPL2FloodDomainServices', 'GBPL2BridgeDomainServices', 'GBPL3ContextServices', 'GBPEpgServices', '$filter', 'GBPSubnetServices',
\r
3325 function($scope, GBPEndpointServices, GPBServices, GBPL2FloodDomainServices, GBPL2BridgeDomainServices, GBPL3ContextServices, GBPEpgServices, $filter, GBPSubnetServices){
\r
3327 $scope.selectedEndpoint = null;
\r
3328 $scope.newEndpointObj = GBPEndpointServices.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3329 $scope.displayLabel = function(obj) {
\r
3330 return obj['mac-address'] + ':' + obj['l2-context'];
\r
3332 $scope.crudLabel = 'Endpoint list';
\r
3334 $scope.l2context = {'options' : [], 'labels' : null};
\r
3335 $scope.getDisplayLabelsFromCtrl('GBP_L2FLOOD_LABEL', $scope.l2context);
\r
3337 $scope.l3context = {'options' : [], 'labels' : null};
\r
3338 $scope.getDisplayLabelsFromCtrl('GBP_L3CONTEXT_LABEL', $scope.l3context);
\r
3340 $scope.subnet = {'options' : [], 'labels' : null};
\r
3341 $scope.getDisplayLabelsFromCtrl('GBP_SUBNET_LABEL', $scope.subnet);
\r
3343 $scope.epg = {'options' : [], 'labels' : null};
\r
3344 $scope.getDisplayLabelsFromCtrl('GBP_EPG_LABEL', $scope.epg);
\r
3346 $scope.networkContainment = {'options' : [], 'labels' : null};
\r
3347 $scope.getDisplayLabelsFromCtrl('GBP_L2FLOOD_LABEL', $scope.networkContainment);
\r
3355 mandatoryProperties = [],
\r
3357 loadEpgOptions = function() {
\r
3358 $scope.epg.options = [];
\r
3360 path = GBPEpgServices.createPathObj($scope.selectedTenant.id);
\r
3361 GBPEpgServices.load(path, function(data){
\r
3362 $scope.epg.options = data;
\r
3368 loadL2ContextOptions = function() {
\r
3369 removeL2ContextOptions($scope.networkContainment.options, $scope.l2context.options);
\r
3370 $scope.l2context.options = [];
\r
3372 path = GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id);
\r
3374 GBPL2FloodDomainServices.load(path, function(data){
\r
3375 $scope.l2context.options = $scope.l2context.options.concat(data);
\r
3376 $scope.networkContainment.options = $scope.networkContainment.options.concat(data);
\r
3381 path = GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id);
\r
3382 GBPL2BridgeDomainServices.load(path, function(data){
\r
3383 $scope.l2context.options = $scope.l2context.options.concat(data);
\r
3384 $scope.networkContainment.options = $scope.networkContainment.options.concat(data);
\r
3390 loadL3ContextOptions = function(){
\r
3391 removeL2ContextOptions($scope.networkContainment.options, $scope.l3context.options);
\r
3392 $scope.l3context.options = [];
\r
3394 GBPL3ContextServices.load(GBPL3ContextServices.createPathObj($scope.selectedTenant.id), function(data){
\r
3395 $scope.l3context.options = data;
\r
3396 $scope.networkContainment.options = $scope.networkContainment.options.concat(data);
\r
3402 loadSubnetOptions = function(){
\r
3403 $scope.subnet.options = [];
\r
3405 GBPSubnetServices.load(GBPSubnetServices.createPathObj($scope.selectedTenant.id), function(data){
\r
3406 $scope.subnet.options = data;
\r
3407 $scope.networkContainment.options = $scope.networkContainment.options.concat(data);
\r
3413 loadNetworkCotnaninemnt = function(){
\r
3414 $scope.networkContainment.options = [];
\r
3416 loadL2ContextOptions();
\r
3417 loadL3ContextOptions();
\r
3418 loadSubnetOptions();
\r
3421 clear = function(){
\r
3423 $scope.selectedEndpoint = null;
\r
3424 $scope.newEndpointObj = GBPEndpointServices.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3430 removeL2ContextOptions = function(arr1, arr2) {
\r
3431 arr1 = arr1.filter( function( el ) {
\r
3432 return arr2.indexOf( el ) < 0;
\r
3436 $scope.init = function() {
\r
3437 if ($scope.selectedTenant) {
\r
3439 GBPEndpointServices.load(path, function(data){
\r
3440 $scope.list = data;
\r
3446 /*loadL2ContextOptions();
\r
3447 loadL3ContextOptions();
\r
3448 loadSubnetOptions();*/
\r
3449 loadNetworkCotnaninemnt();
\r
3455 $scope.addNewL3address = function() {
\r
3456 if($scope.newEndpointObj) {
\r
3457 if(!$scope.newEndpointObj['l3-address']){
\r
3458 $scope.newEndpointObj['l3-address'] = [];
\r
3460 var objToPush = {'l3-context' : '', 'ip-address' : ''};
\r
3461 $scope.newEndpointObj['l3-address'].push(objToPush);
\r
3465 $scope.deleteNewL3address = function(index){
\r
3466 if($scope.newEndpointObj) {
\r
3467 $scope.newEndpointObj['l3-address'].splice(index, 1);
\r
3471 $scope.addNewLeafListEl = function(prop) {
\r
3472 if($scope.newEndpointObj) {
\r
3473 if(!$scope.newEndpointObj[prop]){
\r
3474 $scope.newEndpointObj[prop] = [];
\r
3476 var objToPush = "";
\r
3477 $scope.newEndpointObj[prop].push(objToPush);
\r
3481 $scope.updateLeafListEl = function(index, value, prop) {
\r
3482 if($scope.newEndpointObj && $scope.newEndpointObj[prop] && $scope.newEndpointObj[prop].length >= index) {
\r
3483 $scope.newEndpointObj[prop][index] = value;
\r
3487 $scope.deleteNewLeafListEl = function(index, prop){
\r
3488 if($scope.newEndpointObj) {
\r
3489 $scope.newEndpointObj[prop].splice(index, 1);
\r
3493 $scope.save = function(){
\r
3494 if($scope.validateForm($scope.endpointForm)){
\r
3495 GBPEndpointServices.send(path, $scope.newEndpointObj, function(data){
\r
3497 $scope.view.endpoint = false;
\r
3498 $scope.reloadNewObj();
\r
3499 $scope.view.edit = "view";
\r
3506 $scope.delete = function() {
\r
3507 if($scope.selectedTenant && $scope.selectedEndpoint) {
\r
3508 GBPEndpointServices.delete(path, $scope.selectedEndpoint, function(data){
\r
3510 $scope.view.endpoint = false;
\r
3517 $scope.showForm = function() {
\r
3518 $scope.view.endpoint = true;
\r
3519 $scope.reloadNewObj();
\r
3520 $scope.selectedEndpoint = null;
\r
3522 $scope.view.edit = "add";
\r
3525 $scope.reloadNewObj = function() {
\r
3526 $scope.newEndpointObj = GBPEndpointServices.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3529 $scope.reload = function(selectedObj) {
\r
3530 $scope.selectedEndpoint = selectedObj;
\r
3531 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
3533 $scope.view.endpoint = true;
\r
3536 $scope.view.endpoint = false;
\r
3537 $scope.view.edit = "view";
\r
3540 if($scope.view.endpoint) {
\r
3541 angular.copy(selectedObj, $scope.newEndpointObj);
\r
3545 $scope.close = function(){
\r
3546 $scope.view.endpoint = false;
\r
3547 $scope.view.edit = "view";
\r
3550 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
3551 if (!event.defaultPrevented) {
\r
3552 if ( $scope.selectedEndpoint ) {
\r
3553 $scope.view.endpoint = true;
\r
3554 $scope.view.edit = "edit";
\r
3555 angular.copy($scope.selectedEndpoint, $scope.newEndpointObj);
\r
3557 event.defaultPrevented = true;
\r
3561 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
3565 $scope.$on('GBP_EPG_RELOAD',function(){
\r
3569 $scope.$on('GBP_L2BRIDGE_RELOAD',function(){
\r
3570 //loadL2ContextOptions();
\r
3571 loadNetworkCotnaninemnt();
\r
3574 $scope.$on('GBP_L2FLOOD_RELOAD',function(){
\r
3575 //loadL2ContextOptions();
\r
3576 loadNetworkCotnaninemnt();
\r
3579 $scope.$on('GBP_L3CONTEXT_RELOAD',function(){
\r
3580 //loadL3ContextOptions();
\r
3581 loadNetworkCotnaninemnt();
\r
3584 $scope.$on('GBP_SUBNET_RELOAD',function(){
\r
3585 //loadSubnetOptions();
\r
3586 loadNetworkCotnaninemnt();
\r
3590 gbp.register.controller('l3EndpointCtrl', ['$scope', 'GBPEndpointL3Services', 'GPBServices', 'GBPEpgServices', 'GBPL3ContextServices', 'GBPL2FloodDomainServices', 'GBPL2BridgeDomainServices', '$filter',
\r
3591 function($scope, GBPEndpointL3Services, GPBServices, GBPEpgServices, GBPL3ContextServices, GBPL2FloodDomainServices, GBPL2BridgeDomainServices, $filter){
\r
3593 $scope.selectedEndpoint = null;
\r
3594 $scope.newEndpointObj = GBPEndpointL3Services.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3595 $scope.displayLabel = function(obj) {
\r
3596 return obj['ip-prefix'] + ':' + obj['l3-context'];
\r
3598 $scope.crudLabel = 'L3 Prefix endpoint list';
\r
3600 $scope.l2context = {'options' : [], 'labels' : null};
\r
3601 $scope.getDisplayLabelsFromCtrl('GBP_L2FLOOD_LABEL', $scope.l2context);
\r
3603 $scope.l3context = {'options' : [], 'labels' : null};
\r
3604 $scope.getDisplayLabelsFromCtrl('GBP_L3CONTEXT_LABEL', $scope.l3context);
\r
3606 $scope.epg = {'options' : [], 'labels' : null};
\r
3607 $scope.getDisplayLabelsFromCtrl('GBP_EPG_LABEL', $scope.epg);
\r
3615 mandatoryProperties = [],
\r
3617 loadEpgOptions = function() {
\r
3618 $scope.epg.options = [];
\r
3620 path = GBPEpgServices.createPathObj($scope.selectedTenant.id);
\r
3621 GBPEpgServices.load(path, function(data){
\r
3622 $scope.epg.options = data;
\r
3628 loadL2ContextOptions = function() {
\r
3629 $scope.l2context.options = [];
\r
3631 path = GBPL2FloodDomainServices.createPathObj($scope.selectedTenant.id);
\r
3633 GBPL2FloodDomainServices.load(path, function(data){
\r
3634 $scope.l2context.options = $scope.l2context.options.concat(data);
\r
3639 path = GBPL2BridgeDomainServices.createPathObj($scope.selectedTenant.id);
\r
3640 GBPL2BridgeDomainServices.load(path, function(data){
\r
3641 $scope.l2context.options = $scope.l2context.options.concat(data);
\r
3647 loadL3ContextOptions = function(){
\r
3648 $scope.l3context.options = [];
\r
3650 GBPL3ContextServices.load(GBPL3ContextServices.createPathObj($scope.selectedTenant.id), function(data){
\r
3651 $scope.l3context.options = data;
\r
3657 clear = function(){
\r
3659 $scope.selectedEndpoint = null;
\r
3660 $scope.newEndpointObj = GBPEndpointL3Services.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3667 $scope.init = function() {
\r
3668 if ($scope.selectedTenant) {
\r
3670 GBPEndpointL3Services.load(path, function(data){
\r
3671 $scope.list = data;
\r
3677 loadL2ContextOptions();
\r
3678 loadL3ContextOptions();
\r
3684 $scope.addNewL2gateways = function() {
\r
3685 if($scope.newEndpointObj) {
\r
3686 if(!$scope.newEndpointObj['endpoint-l2-gateways']){
\r
3687 $scope.newEndpointObj['endpoint-l2-gateways'] = [];
\r
3689 var objToPush = {'l2-context' : '', 'mac-address' : ''};
\r
3690 $scope.newEndpointObj['endpoint-l2-gateways'].push(objToPush);
\r
3694 $scope.deleteNewL2gateways = function(index){
\r
3695 if($scope.newEndpointObj) {
\r
3696 $scope.newEndpointObj['endpoint-l2-gateways'].splice(index, 1);
\r
3700 $scope.addNewL3gateways = function() {
\r
3701 if($scope.newEndpointObj) {
\r
3702 if(!$scope.newEndpointObj['endpoint-l3-gateways']){
\r
3703 $scope.newEndpointObj['endpoint-l3-gateways'] = [];
\r
3705 var objToPush = {'l3-context' : '', 'ip-address' : ''};
\r
3706 $scope.newEndpointObj['endpoint-l3-gateways'].push(objToPush);
\r
3710 $scope.deleteNewL3gateways = function(index){
\r
3711 if($scope.newEndpointObj) {
\r
3712 $scope.newEndpointObj['endpoint-l3-gateways'].splice(index, 1);
\r
3716 $scope.addNewLeafListEl = function(prop) {
\r
3717 if($scope.newEndpointObj) {
\r
3718 if(!$scope.newEndpointObj[prop]){
\r
3719 $scope.newEndpointObj[prop] = [];
\r
3721 var objToPush = "";
\r
3722 $scope.newEndpointObj[prop].push(objToPush);
\r
3726 $scope.updateLeafListEl = function(index, value, prop) {
\r
3727 if($scope.newEndpointObj && $scope.newEndpointObj[prop] && $scope.newEndpointObj[prop].length >= index) {
\r
3728 $scope.newEndpointObj[prop][index] = value;
\r
3732 $scope.deleteNewLeafListEl = function(index, prop){
\r
3733 if($scope.newEndpointObj) {
\r
3734 $scope.newEndpointObj[prop].splice(index, 1);
\r
3738 $scope.save = function(){
\r
3739 if($scope.validateForm($scope.l3EndpointForm)){
\r
3740 GBPEndpointL3Services.send(path, $scope.newEndpointObj, function(data){
\r
3742 $scope.view.endpoint = false;
\r
3743 $scope.reloadNewObj();
\r
3744 $scope.view.edit = "view";
\r
3751 $scope.delete = function() {
\r
3752 if($scope.selectedTenant && $scope.selectedEndpoint) {
\r
3753 GBPEndpointL3Services.delete(path, $scope.selectedEndpoint, function(data){
\r
3761 $scope.showForm = function() {
\r
3762 $scope.view.endpoint = true;
\r
3763 $scope.reloadNewObj();
\r
3764 $scope.selectedEndpoint = null;
\r
3765 $scope.view.edit = "add";
\r
3768 $scope.reloadNewObj = function() {
\r
3769 $scope.newEndpointObj = GBPEndpointL3Services.createObj($scope.selectedTenant ? $scope.selectedTenant.id : null);
\r
3772 $scope.reload = function(selectedObj) {
\r
3773 $scope.selectedEndpoint = selectedObj;
\r
3774 angular.copy(selectedObj, $scope.newEndpointObj);
\r
3775 $scope.view.edit = $scope.view.edit == "edit" ? $scope.view.edit : "view";
\r
3777 $scope.view.endpoint = true;
\r
3780 $scope.view.endpoint = false;
\r
3781 $scope.view.edit = "view";
\r
3785 $scope.close = function(){
\r
3786 $scope.view.endpoint = false;
\r
3787 $scope.view.edit = "view";
\r
3790 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
3791 if (!event.defaultPrevented) {
\r
3792 if ( $scope.selectedEndpoint ) {
\r
3793 $scope.view.endpoint = true;
\r
3794 $scope.view.edit = "edit";
\r
3795 angular.copy($scope.selectedEndpoint, $scope.newEndpointObj);
\r
3797 event.defaultPrevented = true;
\r
3801 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
3805 $scope.$on('GBP_EPG_RELOAD',function(){
\r
3809 $scope.$on('GBP_L2BRIDGE_RELOAD',function(){
\r
3810 loadL2ContextOptions();
\r
3813 $scope.$on('GBP_L2FLOOD_RELOAD',function(){
\r
3814 loadL2ContextOptions();
\r
3817 $scope.$on('GBP_L3CONTEXT_RELOAD',function(){
\r
3818 loadL3ContextOptions();
\r
3822 gbp.register.controller('accessModelWizardCtrl', ['$scope', '$filter', 'GBPTenantServices', 'GBPEpgServices', 'GBPContractServices', 'GPBServices', function($scope, $filter, GBPTenantServices, GBPEpgServices, GBPContractServices, GPBServices){
\r
3823 $scope.wizardPage = null;
\r
3825 $scope.selectedTenant = null;
\r
3826 $scope.tenant = null;
\r
3827 //$scope.epgList = [];
\r
3828 $scope.newContractObj = null;
\r
3830 $scope.init = function() {
\r
3831 $scope.setPage('tenants');
\r
3834 $scope.setPage = function(pageName, object) {
\r
3835 $scope.wizardPage = pageName;
\r
3837 switch(pageName) {
\r
3840 $scope.tenant = object;
\r
3846 $scope.tenant['endpoint-group'] = $scope.tenant['endpoint-group'] ? $scope.tenant['endpoint-group'] : [];
\r
3849 object.forEach(function(o) {
\r
3850 $scope.tenant['endpoint-group'].push(GPBServices.stripNullValues(o));
\r
3857 $scope.tenant['contract'] = $scope.tenant['contract'] ? $scope.tenant['contract'] : [];
\r
3860 object.forEach(function(o) {
\r
3861 $scope.tenant['contract'].push(GPBServices.stripNullValues(o));
\r
3869 $scope.submit = function(object) {
\r
3870 $scope.tenant['endpoint-group'] = $scope.tenant['endpoint-group'] ? $scope.tenant['endpoint-group'] : [];
\r
3873 object.forEach(function(o) {
\r
3874 $scope.tenant['endpoint-group'].push(GPBServices.stripNullValues(o));
\r
3879 path = GBPTenantServices.createPathObj($scope.tenant.id);
\r
3880 GBPTenantServices.send(path, $scope.tenant, function(data){
\r
3881 $scope.wizards.accessModelWizard = false;
\r
3882 $scope.sendReloadEventFromRoot('GBP_GLOBAL_TENANT_RELOAD');
\r
3888 // $scope.updateList = function(list, object, key) {
\r
3889 // var elementPos = list.map(function(x) {return x[key]; }).indexOf(object[key]);
\r
3891 // if(elementPos < 0) {
\r
3892 // list.push(object);
\r
3895 // list[elementPos] = object;
\r
3900 gbp.register.controller('wizardTenantCtrl', ['$scope', '$filter', 'GBPTenantServices', function($scope, $filter, GBPTenantServices){
\r
3901 // $scope.tenantList = [];
\r
3902 $scope.newTenantObj = GBPTenantServices.createObj();
\r
3903 $scope.displayLabel = ['name' , 'id'];
\r
3909 // $scope.init = function() {
\r
3910 // $scope.getTenants();
\r
3913 // $scope.getTenants = function() {
\r
3914 // GBPTenantServices.load(
\r
3915 // function(data) {
\r
3916 // $scope.tenantList = data;
\r
3917 // $scope.newTenantObj = GBPTenantServices.createObj();
\r
3925 $scope.reloadTenants = function(selectedObject) {
\r
3926 if(!selectedObject) {
\r
3927 selectedObject = GBPTenantServices.createObj();
\r
3928 $scope.view.tenantEdit = false;
\r
3931 $scope.view.tenantEdit = true;
\r
3934 $scope.selectedTenant = selectedObject;
\r
3935 $scope.newTenantObj = selectedObject;
\r
3938 $scope.getNewTenantObject = function() {
\r
3939 return GBPTenantServices.createObj();
\r
3943 gbp.register.controller('wizardEpgCtrl', ['$scope', '$filter', 'GBPEpgServices', function($scope, $filter, GBPEpgServices){
\r
3945 $scope.newEpgObj = GBPEpgServices.createObj();
\r
3946 $scope.selectedEpg = null;
\r
3947 $scope.epgFormView = true;
\r
3949 $scope.displayLabel = ['name', 'id'];
\r
3950 $scope.crudLabel = 'Group list';
\r
3952 $scope.igpOpts = ['allow', 'require-contract'];
\r
3954 $scope.init = function() {
\r
3958 $scope.showForm = function() {
\r
3959 $scope.epgFormView = true;
\r
3960 $scope.newEpgObj = GBPEpgServices.createObj();
\r
3963 $scope.save = function() {
\r
3964 $scope.updateList($scope.list, $scope.newEpgObj, "id");
\r
3965 $scope.reload($scope.newEpgObj);
\r
3966 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newEpgObj);
\r
3969 $scope.delete = function() {
\r
3970 if($scope.selectedEpg) {
\r
3971 var index = $scope.list.indexOf($scope.selectedEpg);
\r
3972 $scope.list.splice(index, 1);
\r
3973 $scope.epgFormView = false;
\r
3975 //$scope.newEpgObj = GBPEpgServices.createObj();
\r
3978 $scope.reload = function(selectedObj) {
\r
3979 $scope.selectedEpg = selectedObj;
\r
3980 $scope.newEpgObj = selectedObj;
\r
3981 $scope.epgFormView = true;
\r
3982 $scope.$broadcast('WIZARD_EPG_RELOAD');
\r
3985 $scope.close = function() {
\r
3986 $scope.epgFormView = false;
\r
3987 $scope.newEpgObj = GBPEpgServices.createObj();
\r
3988 $scope.selectedEpg = null;
\r
3991 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
3992 if (!event.defaultPrevented) {
\r
3993 if ( $scope.selectedEpg ) {
\r
3994 $scope.epgFormView = true;
\r
3995 angular.copy($scope.selectedEpg, $scope.newEpgObj);
\r
3997 event.defaultPrevented = true;
\r
4001 $scope.$on("WIZARD_CNS_RELOAD", function(event, args){
\r
4002 //$scope.selectedEpg['consumer-named-selector'] = args;
\r
4003 $scope.newEpgObj['consumer-named-selector'] = args;
\r
4004 $scope.updateList($scope.list, $scope.newEpgObj, "id");
\r
4007 $scope.$on("WIZARD_PNS_RELOAD", function(event, args){
\r
4008 //$scope.selectedEpg['provider-named-selector'] = args;
\r
4009 $scope.newEpgObj['provider-named-selector'] = args;
\r
4010 $scope.updateList($scope.list, $scope.newEpgObj, "id");
\r
4014 gbp.register.controller('wizardContractCtrl', ['$scope', '$filter', 'GBPContractServices', function($scope, $filter, GBPContractServices){
\r
4016 $scope.newContractObj = GBPContractServices.createObj();
\r
4017 $scope.selectedContract = null;
\r
4019 $scope.displayLabel = ['description', 'id'];
\r
4020 $scope.crudLabel = 'Contract list';
\r
4022 $scope.contractFormView = true;
\r
4024 $scope.init = function() {
\r
4028 $scope.showForm = function() {
\r
4029 $scope.contractFormView = true;
\r
4030 $scope.newContractObj = GBPContractServices.createObj();
\r
4033 $scope.save = function() {
\r
4034 $scope.updateList($scope.list, $scope.newContractObj, "id");
\r
4035 $scope.reload($scope.newContractObj);
\r
4036 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newContractObj);
\r
4039 $scope.delete = function() {
\r
4040 if($scope.selectedContract) {
\r
4041 var index = $scope.list.indexOf($scope.selectedContract);
\r
4042 $scope.list.splice(index, 1);
\r
4043 $scope.contractFormView = false;
\r
4044 $scope.newContractObj = GBPContractServices.createObj();
\r
4045 $scope.selectedContract = null;
\r
4049 $scope.reload = function(selectedObj) {
\r
4050 $scope.selectedContract = selectedObj;
\r
4051 $scope.newContractObj = selectedObj;
\r
4052 $scope.contractFormView = true;
\r
4055 $scope.close = function() {
\r
4056 $scope.contractFormView = false;
\r
4057 //$scope.newContractObj = GBPContractServices.createObj();
\r
4058 //$scope.selectedContract = null;
\r
4061 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4062 if (!event.defaultPrevented) {
\r
4063 if ( $scope.selectedContract ) {
\r
4064 $scope.contractFormView = true;
\r
4065 angular.copy($scope.selectedContract, $scope.newContractObj);
\r
4067 event.defaultPrevented = true;
\r
4071 $scope.$on("WIZARD_SUBJECT_RELOAD", function(event, args){
\r
4072 //$scope.selectedEpg['consumer-named-selector'] = args;
\r
4073 $scope.newContractObj['subject'] = args;
\r
4074 $scope.updateList($scope.list, $scope.newContractObj, "id");
\r
4077 $scope.$on("WIZARD_CLAUSE_RELOAD", function(event, args){
\r
4078 //$scope.selectedEpg['consumer-named-selector'] = args;
\r
4079 $scope.newContractObj['clause'] = args;
\r
4080 $scope.updateList($scope.list, $scope.newContractObj, "id");
\r
4084 gbp.register.controller('wizardCnsCtrl',['$scope', 'GBPConNamedSelServices', function($scope, GBPConNamedSelServices){
\r
4086 $scope.selectedCNS = null;
\r
4087 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
4088 $scope.internalView = {
\r
4092 $scope.displayLabel = 'name';
\r
4093 $scope.crudLabel = 'Consumer named selectors list';
\r
4095 $scope.contractList = {'options' : [], 'labels' : null};
\r
4096 $scope.getDisplayLabelsFromCtrl('GBP_CONTRACTS_LABEL', $scope.contractList);
\r
4098 var clear = function(){
\r
4100 $scope.selectedCNS = null;
\r
4101 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
4102 $scope.internalView = {
\r
4108 //move to separate ctrl \/
\r
4109 $scope.addNewElem = function(templateObj) {
\r
4110 if($scope.newCNSObj && $scope.newCNSObj.contract) {
\r
4111 var objToPush = templateObj || "";
\r
4112 $scope.newCNSObj.contract.push(objToPush);
\r
4116 $scope.deleteElemAt = function(index) {
\r
4117 if($scope.newCNSObj && $scope.newCNSObj.contract) {
\r
4118 $scope.newCNSObj.contract.splice(index, 1);
\r
4122 $scope.updateAt = function(index, value) {
\r
4123 if($scope.newCNSObj && $scope.newCNSObj.contract && $scope.newCNSObj.contract.length >= index) {
\r
4124 $scope.newCNSObj.contract[index] = value;
\r
4127 //move to separate ctrl /\
\r
4129 $scope.init = function() {
\r
4132 if($scope.tenant && $scope.tenant['contract'].length>0) {
\r
4133 $scope.contractList.options = $scope.tenant['contract'];
\r
4136 if($scope.selectedEpg && $scope.selectedEpg['consumer-named-selector']) {
\r
4137 $scope.list = $scope.selectedEpg['consumer-named-selector'];
\r
4141 $scope.save = function(){
\r
4142 $scope.updateList($scope.list, $scope.newCNSObj, "name");
\r
4143 $scope.reload($scope.newCNSObj);
\r
4144 $scope.$emit('WIZARD_CNS_RELOAD', $scope.list);
\r
4145 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newCNSObj);
\r
4148 $scope.delete = function() {
\r
4149 if($scope.selectedCNS) {
\r
4150 var index = $scope.list.indexOf($scope.selectedCNS);
\r
4151 $scope.list.splice(index, 1);
\r
4152 $scope.internalView = {
\r
4156 $scope.$emit('WIZARD_CNS_RELOAD', $scope.list);
\r
4160 $scope.showForm = function() {
\r
4161 $scope.reloadNewObj();
\r
4162 $scope.selectedCNS = null;
\r
4163 $scope.internalView.cns = true;
\r
4164 $scope.internalView.edit = "add";
\r
4167 $scope.reloadNewObj = function() {
\r
4168 $scope.newCNSObj = GBPConNamedSelServices.createObj();
\r
4171 $scope.reload = function(selectedObj) {
\r
4172 $scope.selectedCNS = selectedObj;
\r
4173 $scope.newCNSObj = selectedObj;
\r
4174 $scope.internalView.cns = true;
\r
4177 $scope.close = function(){
\r
4178 $scope.internalView.cns = false;
\r
4179 //$scope.internalView.edit = "view";
\r
4182 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4183 if (!event.defaultPrevented) {
\r
4184 if ( $scope.selectedEpg ) {
\r
4185 $scope.internalView.cns = true;
\r
4186 $scope.internalView.edit = "add";
\r
4187 angular.copy($scope.selectedCNS, $scope.newCNSObj);
\r
4189 event.defaultPrevented = true;
\r
4193 $scope.$on('WIZARD_EPG_RELOAD',function(){
\r
4198 gbp.register.controller('wizardPnsCtrl',['$scope', 'GBPProNamedSelServices', function($scope, GBPProNamedSelServices){
\r
4200 $scope.selectedPNS = null;
\r
4201 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
4202 $scope.displayLabel = 'name';
\r
4203 $scope.crudLabel = 'Provider named selectors list';
\r
4204 $scope.internalView = {
\r
4209 $scope.contractList = {'options' : [], 'labels' : null};
\r
4210 $scope.getDisplayLabelsFromCtrl('GBP_CONTRACTS_LABEL', $scope.contractList);
\r
4212 var clear = function(){
\r
4214 $scope.selectedPNS = null;
\r
4215 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
4216 $scope.internalView = {
\r
4222 //move to separate ctrl \/
\r
4223 $scope.addNewElem = function(templateObj) {
\r
4224 if($scope.newPNSObj && $scope.newPNSObj.contract) {
\r
4225 var objToPush = templateObj || "";
\r
4226 $scope.newPNSObj.contract.push(objToPush);
\r
4230 $scope.deleteElemAt = function(index) {
\r
4231 if($scope.newPNSObj && $scope.newPNSObj.contract) {
\r
4232 $scope.newPNSObj.contract.splice(index, 1);
\r
4236 $scope.updateAt = function(index, value) {
\r
4237 if($scope.newPNSObj && $scope.newPNSObj.contract && $scope.newPNSObj.contract.length >= index) {
\r
4238 $scope.newPNSObj.contract[index] = value;
\r
4241 //move to separate ctrl /\
\r
4243 $scope.init = function() {
\r
4246 if($scope.tenant && $scope.tenant['contract'].length>0) {
\r
4247 $scope.contractList.options = $scope.tenant['contract'];
\r
4250 if($scope.selectedEpg && $scope.selectedEpg['provider-named-selector']) {
\r
4251 $scope.list = $scope.selectedEpg['provider-named-selector'];
\r
4255 $scope.save = function(){
\r
4256 $scope.updateList($scope.list, $scope.newPNSObj, "name");
\r
4257 $scope.reload($scope.newPNSObj);
\r
4258 $scope.$emit('WIZARD_PNS_RELOAD', $scope.list);
\r
4259 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newPNSObj);
\r
4262 $scope.delete = function() {
\r
4263 if($scope.selectedPNS) {
\r
4264 var index = $scope.list.indexOf($scope.selectedPNS);
\r
4265 $scope.list.splice(index, 1);
\r
4266 $scope.internalView = {
\r
4270 $scope.$emit('WIZARD_PNS_RELOAD', $scope.list);
\r
4274 $scope.showForm = function() {
\r
4275 $scope.reloadNewObj();
\r
4276 $scope.selectedPNS = null;
\r
4277 $scope.internalView.pns = true;
\r
4278 $scope.internalView.edit = "add";
\r
4281 $scope.reloadNewObj = function() {
\r
4282 $scope.newPNSObj = GBPProNamedSelServices.createObj();
\r
4285 $scope.reload = function(selectedObj) {
\r
4286 $scope.selectedPNS = selectedObj;
\r
4287 $scope.newPNSObj = selectedObj;
\r
4288 $scope.internalView.pns = true;
\r
4291 $scope.close = function(){
\r
4292 $scope.internalView.pns = false;
\r
4293 $scope.internalView.edit = "view";
\r
4295 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4296 if (!event.defaultPrevented) {
\r
4297 if ( $scope.selectedEpg ) {
\r
4298 $scope.internalView.pns = true;
\r
4299 $scope.internalView.edit = "edit";
\r
4300 angular.copy($scope.selectedPNS, $scope.newPNSObj);
\r
4302 event.defaultPrevented = true;
\r
4306 $scope.$on('WIZARD_EPG_RELOAD',function(){
\r
4311 gbp.register.controller('wizardSubjectCtrl', ['$scope','GBPSubjectServices', '$filter', function($scope, GBPSubjectServices, $filter){
\r
4313 $scope.selectedSubject = null;
\r
4314 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
4315 $scope.displayLabel = 'name';
\r
4316 $scope.internalView = {
\r
4320 $scope.crudLabel = 'Subject list';
\r
4321 $scope.errors = {};
\r
4325 mandatoryProperties = ['order'],
\r
4327 clear = function(){
\r
4329 $scope.selectedSubject = null;
\r
4330 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
4331 $scope.internalView = {
\r
4337 $scope.init = function() {
\r
4341 $scope.save = function(){
\r
4342 $scope.updateList($scope.list, $scope.newSubjectObj, "name");
\r
4343 $scope.reload($scope.newSubjectObj);
\r
4344 $scope.$emit('WIZARD_SUBJECT_RELOAD', $scope.list);
\r
4345 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newSubjectObj);
\r
4348 $scope.delete = function() {
\r
4349 if($scope.selectedSubject) {
\r
4350 var index = $scope.list.indexOf($scope.selectedSubject);
\r
4351 $scope.list.splice(index, 1);
\r
4352 $scope.internalView = {
\r
4356 $scope.reloadNewObj();
\r
4357 $scope.$emit('WIZARD_SUBJECT_RELOAD', $scope.list);
\r
4361 $scope.reloadNewObj = function() {
\r
4362 $scope.newSubjectObj = GBPSubjectServices.createObj();
\r
4365 $scope.reload = function(selectedObj) {
\r
4366 $scope.selectedSubject = selectedObj;
\r
4367 $scope.newSubjectObj = selectedObj;
\r
4368 $scope.internalView.subject = true;
\r
4371 $scope.showForm = function() {
\r
4372 $scope.reloadNewObj();
\r
4373 $scope.internalView.subject = true;
\r
4374 $scope.internalView.edit = "add";
\r
4375 $scope.selectedSubject = null;
\r
4378 $scope.close = function(){
\r
4379 $scope.internalView.subject = false;
\r
4380 $scope.internalView.edit = "view";
\r
4383 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4384 if (!event.defaultPrevented) {
\r
4385 if ( $scope.selectedSubject ) {
\r
4386 $scope.internalView.subject = true;
\r
4387 $scope.internalView.edit = "edit";
\r
4388 angular.copy($scope.selectedSubject, $scope.newSubjectObj);
\r
4390 event.defaultPrevented = true;
\r
4394 $scope.$on('GBP_CONTRACT_RELOAD',function(){
\r
4398 $scope.$on('GBP_SUBJECTS_LABEL', function(event, obj){
\r
4399 obj.labels = $scope.displayLabel;
\r
4402 $scope.$on("WIZARD_RULE_RELOAD", function(event, args){
\r
4403 //$scope.selectedEpg['consumer-named-selector'] = args;
\r
4404 $scope.newSubjectObj['rule'] = args;
\r
4405 $scope.updateList($scope.list, $scope.newSubjectObj, "id");
\r
4406 $scope.$emit('WIZARD_SUBJECT_RELOAD', $scope.list);
\r
4410 gbp.register.controller('wizardRuleCtrl', ['$scope','GBPRuleServices', '$filter', function($scope, GBPRuleServices, $filter){
\r
4412 $scope.selectedRule = null;
\r
4413 $scope.newRuleObj = GBPRuleServices.createObj();
\r
4414 $scope.displayLabel = 'name';
\r
4415 $scope.internalView = {
\r
4419 $scope.crudLabel = 'Rule list';
\r
4420 $scope.errors = {};
\r
4423 mandatoryProperties = ['order'],
\r
4425 clear = function(){
\r
4427 $scope.selectedRule = null;
\r
4428 $scope.newRuleObj = GBPRuleServices.createObj();
\r
4429 $scope.internalView = {
\r
4435 $scope.init = function() {
\r
4439 $scope.save = function(){
\r
4440 $scope.updateList($scope.list, $scope.newRuleObj, "name");
\r
4441 $scope.reload($scope.newRuleObj);
\r
4442 $scope.$emit('WIZARD_RULE_RELOAD', $scope.list);
\r
4443 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newRuleObj);
\r
4446 $scope.delete = function() {
\r
4447 if($scope.selectedRule) {
\r
4448 var index = $scope.list.indexOf($scope.selectedRule);
\r
4449 $scope.list.splice(index, 1);
\r
4450 $scope.internalView = {
\r
4454 $scope.reloadNewObj();
\r
4455 $scope.$emit('WIZARD_RULE_RELOAD', $scope.list);
\r
4459 $scope.reloadNewObj = function() {
\r
4460 $scope.newRuleObj = GBPRuleServices.createObj();
\r
4463 $scope.reload = function(selectedObj) {
\r
4464 $scope.selectedRule = selectedObj;
\r
4465 $scope.newRuleObj = selectedObj;
\r
4466 $scope.internalView.rule = true;
\r
4467 $scope.$broadcast('WIZARD_RULE_RELOAD');
\r
4470 $scope.showForm = function() {
\r
4471 $scope.reloadNewObj();
\r
4472 $scope.internalView.rule = true;
\r
4473 $scope.internalView.edit = "add";
\r
4474 $scope.selectedRule = null;
\r
4477 $scope.close = function(){
\r
4478 $scope.internalView.rule = false;
\r
4479 $scope.internalView.edit = "view";
\r
4482 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4483 if (!event.defaultPrevented) {
\r
4484 if ( $scope.selectedRule ) {
\r
4485 $scope.internalView.rule = true;
\r
4486 $scope.internalView.edit = "edit";
\r
4487 angular.copy($scope.selectedRule, $scope.newRuleObj);
\r
4489 event.defaultPrevented = true;
\r
4493 $scope.$on('GBP_SUBJECT_RELOAD',function(){
\r
4497 $scope.$on("WIZARD_CLASREF_RELOAD", function(event, args){
\r
4498 $scope.newRuleObj['classifier-ref'] = args;
\r
4499 $scope.updateList($scope.list, $scope.newRuleObj, "name");
\r
4500 $scope.$emit('WIZARD_RULE_RELOAD', $scope.list);
\r
4503 $scope.$on("WIZARD_ACTIONREF_RELOAD", function(event, args){
\r
4504 $scope.newRuleObj['action-ref'] = args;
\r
4505 $scope.updateList($scope.list, $scope.newRuleObj, "name");
\r
4506 $scope.$emit('WIZARD_RULE_RELOAD', $scope.list);
\r
4510 gbp.register.controller('wizardClauseCtrl', ['$scope','GBPClauseServices', 'GBPSubjectServices',
\r
4511 function($scope, GBPClauseServices, GBPSubjectServices){
\r
4513 $scope.selectedClause = null;
\r
4514 $scope.newClauseObj = GBPClauseServices.createObj();
\r
4515 $scope.internalView = {
\r
4519 $scope.displayLabel = 'name';
\r
4520 $scope.crudLabel = 'Clause list';
\r
4522 $scope.subjects = {'options' : [], 'labels' : null};
\r
4523 $scope.getDisplayLabelsFromCtrl('GBP_SUBJECTS_LABEL', $scope.subjects);
\r
4527 clear = function(){
\r
4529 $scope.selectedClause = null;
\r
4530 $scope.newClauseObj = GBPClauseServices.createObj();
\r
4531 $scope.internalView = {
\r
4537 //move to separate ctrl \/
\r
4538 $scope.addNewElem = function(templateObj) {
\r
4539 if($scope.newClauseObj && $scope.newClauseObj['subject-refs']) {
\r
4541 var objToPush = templateObj || "";
\r
4542 $scope.newClauseObj['subject-refs'].push(objToPush);
\r
4546 $scope.deleteElemAt = function(index) {
\r
4547 if($scope.newClauseObj && $scope.newClauseObj['subject-refs']) {
\r
4548 $scope.newClauseObj['subject-refs'].splice(index, 1);
\r
4552 $scope.updateAt = function(index, value) {
\r
4553 if($scope.newClauseObj && $scope.newClauseObj['subject-refs'] && $scope.newClauseObj['subject-refs'].length >= index) {
\r
4554 $scope.newClauseObj['subject-refs'][index] = value;
\r
4557 //move to separate ctrl /\
\r
4559 $scope.init = function() {
\r
4560 if($scope.selectedContract && $scope.selectedContract['subject'].length>0) {
\r
4561 $scope.subjects.options = $scope.selectedContract['subject'];
\r
4565 $scope.save = function(){
\r
4566 $scope.updateList($scope.list, $scope.newClauseObj, "name");
\r
4567 $scope.reload($scope.newClauseObj);
\r
4568 $scope.$emit('WIZARD_CLAUSE_RELOAD', $scope.list);
\r
4569 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newClauseObj);
\r
4572 $scope.delete = function() {
\r
4573 if($scope.selectedClause) {
\r
4574 var index = $scope.list.indexOf($scope.selectedClause);
\r
4575 $scope.list.splice(index, 1);
\r
4576 $scope.internalView = {
\r
4580 $scope.$emit('WIZARD_CLAUSE_RELOAD', $scope.list);
\r
4584 $scope.reloadNewObj = function() {
\r
4585 $scope.newClauseObj = GBPClauseServices.createObj();
\r
4588 $scope.reload = function(selectedObj) {
\r
4589 $scope.selectedClause = selectedObj;
\r
4590 $scope.newClauseObj = selectedObj;
\r
4591 $scope.internalView.clause = true;
\r
4594 $scope.showForm = function() {
\r
4595 $scope.reloadNewObj();
\r
4596 $scope.internalView.clause = true;
\r
4597 $scope.internalView.edit = "add";
\r
4598 $scope.selectedClause = null;
\r
4601 $scope.close = function(){
\r
4602 $scope.internalView.clause = false;
\r
4603 $scope.internalView.edit = "view";
\r
4606 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4607 if (!event.defaultPrevented) {
\r
4608 if ( $scope.selectedClause ) {
\r
4609 $scope.internalView.clause = true;
\r
4610 $scope.internalView.edit = "edit";
\r
4611 angular.copy($scope.selectedClause, $scope.newClauseObj);
\r
4613 event.defaultPrevented = true;
\r
4617 $scope.$on('WIZARD_SUBJECT_RELOAD',function(){
\r
4622 gbp.register.controller('wizardActionRefCtrl', ['$scope','GBPActionRefsServices', 'GBPActionInstanceServices', '$filter', function($scope, GBPActionRefsServices, GBPActionInstanceServices, $filter){
\r
4624 $scope.selectedActionRef = null;
\r
4625 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
4626 $scope.displayLabel = 'name';
\r
4627 $scope.internalView = {
\r
4628 actionRef : false,
\r
4631 $scope.crudLabel = 'Action ref list';
\r
4633 $scope.actionInstanceNames = {'options' : [], 'labels' : $scope.displayLabel};
\r
4636 mandatoryProperties = ['order'],
\r
4638 actionInstanceNamesLoad = function() {
\r
4639 if($scope.tenant) {
\r
4640 var actionInstancePath = GBPActionInstanceServices.createPathObj($scope.tenant.id);
\r
4641 GBPActionInstanceServices.load(actionInstancePath, function(data){
\r
4642 $scope.actionInstanceNames.options = data;
\r
4649 clear = function(){
\r
4651 $scope.selectedActionRef = null;
\r
4652 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
4653 $scope.internalView = {
\r
4654 actionRef : false,
\r
4659 $scope.init = function() {
\r
4660 actionInstanceNamesLoad();
\r
4663 $scope.save = function(){
\r
4664 $scope.updateList($scope.list, $scope.newActionRefObj, "name");
\r
4665 $scope.reload($scope.newActionRefObj);
\r
4666 $scope.$emit('WIZARD_ACTIONREF_RELOAD', $scope.list);
\r
4667 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newActionRefObj);
\r
4670 $scope.delete = function() {
\r
4671 if($scope.selectedActionRef) {
\r
4672 var index = $scope.list.indexOf($scope.selectedActionRef);
\r
4673 $scope.list.splice(index, 1);
\r
4674 $scope.internalView = {
\r
4678 $scope.$emit('WIZARD_ACTIONREF_RELOAD', $scope.list);
\r
4682 $scope.reloadNewObj = function() {
\r
4683 $scope.newActionRefObj = GBPActionRefsServices.createObj();
\r
4686 $scope.reload = function(selectedObj) {
\r
4687 $scope.selectedActionRef = selectedObj;
\r
4688 $scope.newActionRefObj = selectedObj;
\r
4689 $scope.internalView.actionRef = true;
\r
4692 $scope.showForm = function() {
\r
4693 $scope.reloadNewObj();
\r
4694 $scope.internalView.actionRef = true;
\r
4695 $scope.internalView.edit = "add";
\r
4696 $scope.selectedActionRef = null;
\r
4699 $scope.close = function(){
\r
4700 $scope.internalView.actionRef = false;
\r
4701 $scope.internalView.edit = "view";
\r
4704 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4705 if (!event.defaultPrevented) {
\r
4706 if ( $scope.selectedActionRef ) {
\r
4707 $scope.internalView.actionRef = true;
\r
4708 $scope.internalView.edit = "edit";
\r
4709 angular.copy($scope.selectedActionRef, $scope.newActionRefObj);
\r
4711 event.defaultPrevented = true;
\r
4715 $scope.$on('WIZARD_RULE_RELOAD',function(){
\r
4720 gbp.register.controller('wizardClassifierRefCtrl', ['$scope','GBPClassifierRefsServices', 'GBPClassifierInstanceServices', '$filter', function($scope, GBPClassifierRefsServices, GBPClassifierInstanceServices, $filter){
\r
4722 $scope.selectedClassifierRef = null;
\r
4723 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
4724 $scope.displayLabel = 'name';
\r
4725 $scope.internalView = {
\r
4726 classifierRef : false,
\r
4730 $scope.instanceNames = {'options' : [], 'labels' : $scope.displayLabel};
\r
4732 $scope.formDirections = ['in', 'out', 'bidirectional'];
\r
4733 $scope.formConnectionTracking = ['normal', 'reflexive'];
\r
4735 $scope.crudLabel = 'Classifier ref list';
\r
4739 instanceNamesLoad = function() {
\r
4740 if($scope.tenant) {
\r
4741 var classifierInstancePath = GBPClassifierInstanceServices.createPathObj($scope.tenant.id);
\r
4742 GBPClassifierInstanceServices.load(classifierInstancePath, function(data){
\r
4743 $scope.instanceNames.options = data;
\r
4750 clear = function(){
\r
4752 $scope.selectedClassifierRef = null;
\r
4753 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
4754 $scope.internalView = {
\r
4755 classifierRef : false,
\r
4760 $scope.init = function() {
\r
4761 instanceNamesLoad();
\r
4764 $scope.save = function(){
\r
4765 $scope.updateList($scope.list, $scope.newClassifierRefObj, "name");
\r
4766 $scope.reload($scope.newClassifierRefObj);
\r
4767 $scope.$emit('WIZARD_CLASREF_RELOAD', $scope.list);
\r
4768 $scope.$broadcast('EV_SET_SEL_CLASS', $scope.newClassifierRefObj);
\r
4771 $scope.delete = function() {
\r
4772 if($scope.selectedClassifierRef) {
\r
4773 var index = $scope.list.indexOf($scope.selectedClassifierRef);
\r
4774 $scope.list.splice(index, 1);
\r
4775 $scope.internalView = {
\r
4776 classifierRef: false,
\r
4779 $scope.$emit('WIZARD_CLASREF_RELOAD', $scope.list);
\r
4783 $scope.reloadNewObj = function() {
\r
4784 $scope.newClassifierRefObj = GBPClassifierRefsServices.createObj();
\r
4787 $scope.reload = function(selectedObj) {
\r
4788 $scope.selectedClassifierRef = selectedObj;
\r
4789 $scope.newClassifierRefObj = selectedObj;
\r
4790 $scope.internalView.classifierRef = true;
\r
4793 $scope.showForm = function() {
\r
4794 $scope.reloadNewObj();
\r
4795 $scope.internalView.classifierRef = true;
\r
4796 $scope.internalView.edit = "add";
\r
4797 $scope.selectedClassifierRef = null;
\r
4800 $scope.close = function(){
\r
4801 $scope.internalView.classifierRef = false;
\r
4802 $scope.internalView.edit = "view";
\r
4805 $scope.$on('PGN_EDIT_ELEM', function(event){
\r
4806 if (!event.defaultPrevented) {
\r
4807 if ( $scope.selectedClassifierRef ) {
\r
4808 $scope.internalView.classifierRef = true;
\r
4809 $scope.internalView.edit = "edit";
\r
4810 angular.copy($scope.selectedClassifierRef, $scope.newClassifierRefObj);
\r
4812 event.defaultPrevented = true;
\r
4816 $scope.$on('WIZARD_RULE_RELOAD',function(){
\r
4821 gbp.register.controller('rendererStateCtrl', ['$scope', 'GPBServices', function($scope, GPBServices){
\r
4822 $scope.data = {'subject-feature-definitions' : {}};
\r
4823 $scope.view_path = 'src/app/gbp/views/governance';
\r
4825 var init = function(){
\r
4826 GPBServices.getDefinitions(function(classifiersDefs, actionsDefs){
\r
4827 $scope.data['subject-feature-definitions']['classifier-definition'] = classifiersDefs;
\r
4828 $scope.data['subject-feature-definitions']['action-definition'] = actionsDefs;
\r
4837 gbp.register.controller('layerCtrl', ['$scope', function($scope){
\r
4839 var moveOffset = 1;
\r
4840 $scope.currentDisplayIndex = 1;
\r
4841 $scope.displayOffsets = [-1, 0, 1];
\r
4842 $scope.expanded = true;
\r
4844 $scope.init = function(key, value){
\r
4845 $scope.data = value;
\r
4846 if($scope.checkData(value, 'Array')){
\r
4847 $scope.setActData($scope.data[$scope.data.length - 1]);
\r
4851 $scope.toggleExpanded = function(){
\r
4852 $scope.expanded = !$scope.expanded;
\r
4855 $scope.shiftDisplayNext = function() {
\r
4856 $scope.currentDisplayIndex = Math.min($scope.currentDisplayIndex + moveOffset, $scope.data.length - 2);
\r
4859 $scope.shiftDisplayPrev = function() {
\r
4860 $scope.currentDisplayIndex = Math.max($scope.currentDisplayIndex - moveOffset, 1);
\r
4863 $scope.showPrevButton = function() {
\r
4864 return $scope.currentDisplayIndex > 1;
\r
4867 $scope.showNextButton = function() {
\r
4868 return $scope.data && $scope.currentDisplayIndex < $scope.data.length - 2;
\r
4871 $scope.setActData = function(data) {
\r
4872 $scope.actSelected = data;
\r
4875 $scope.checkData = function(data, type){
\r
4876 var result = {'Array' : data instanceof Array,
\r
4877 'Object' : data instanceof Object};
\r
4879 return result[type];
\r
4883 gbp.register.controller('actionReferenceWizardCtrl', ['$scope', '$filter', 'GBPRuleServices', 'GBPActionInstanceServices', function($scope, $filter, GBPRuleServices, GBPActionInstanceServices){
\r
4884 $scope.wizardPage = null;
\r
4888 $scope.actionInstanceNames = {'options' : [], 'labels' : "name"};
\r
4890 var actionInstanceNamesLoad = function() {
\r
4891 var actionInstancePath = GBPActionInstanceServices.createPathObj($scope.selectedTenant.id);
\r
4892 GBPActionInstanceServices.load(actionInstancePath, function(data){
\r
4893 $scope.actionInstanceNames.options = data;
\r
4899 $scope.init = function() {
\r
4900 $scope.setPage('reference');
\r
4903 $scope.setPage = function(pageName, object) {
\r
4904 $scope.wizardPage = pageName;
\r
4907 $scope.submit = function() {
\r
4908 //if($scope.validateForm($scope.actionsForm)){
\r
4909 $scope.actionInstanceNames.options.forEach(function(i) {
\r
4910 path = GBPActionInstanceServices.createPathObj($scope.path.tenantId, i.name);
\r
4913 GBPActionInstanceServices.send(path, i, function(data){
\r
4914 $scope.sendReloadEventFromRoot('GBP_ACTION_INSTANCE_RELOAD');
\r
4922 //if($scope.validateForm($scope.rulesForm)){
\r
4923 path = GBPRuleServices.createPathObj($scope.path.tenantId, $scope.path.contractId, $scope.path.subjectId, $scope.path.ruleId);
\r
4924 GBPRuleServices.send(path, $scope.rule, function(data){
\r
4926 $scope.wizards.actionReferenceWizard = false;
\r
4928 //$scope.sendReloadEventFromRoot('GBP_TENANT_RELOAD');
\r
4936 $scope.$on('ACTION_RULE_WIZARD_LOAD', function(event, data){
\r
4937 $scope.rule = angular.copy(data.data);
\r
4938 $scope.path = data.path;
\r
4941 $scope.$on('WIZARD_ACTIONREF_ADD', function(event, data){
\r
4942 if(!$scope.rule['action-ref']) {
\r
4943 $scope.rule['action-ref'] = [];
\r
4945 $scope.updateList($scope.rule['action-ref'], data, "name");
\r
4948 $scope.$on('WIZARD_ACTIONREF_DELETE', function(event, data){
\r
4949 $scope.rule['action-ref'].splice(data, 1);
\r
4952 $scope.$on('WIZARD_ACTIONINSTANCE_ADD', function(event, data){
\r
4953 $scope.updateList($scope.actionInstanceNames.options, data, "name");
\r
4955 $scope.setPage('reference');
\r
4958 $scope.$on('GBP_TENANT_RELOAD',function(){
\r
4959 actionInstanceNamesLoad();
\r
4964 gbp.register.controller('actionsRefListCtrl', ['$scope', '$filter', function($scope, $filter){
\r
4966 $scope.actionReferenceForm = false;
\r
4968 $scope.showForm = function(object) {
\r
4969 $scope.actionReferenceForm = true;
\r
4970 $scope.newActionRefObj = object || null;
\r
4973 $scope.closeForm = function() {
\r
4974 $scope.actionReferenceForm = false;
\r
4977 $scope.save = function(){
\r
4978 $scope.$emit('WIZARD_ACTIONREF_ADD', $scope.newActionRefObj);
\r
4979 $scope.resetObject();
\r
4982 $scope.deleteElemAt = function(index) {
\r
4983 $scope.$emit('WIZARD_ACTIONREF_DELETE', index);
\r
4984 $scope.resetObject();
\r
4987 $scope.resetObject = function() {
\r
4988 $scope.newActionRefObj = null;
\r
4995 gbp.register.controller('actionInstanceWizardCtrl', ['$scope', '$filter', 'GPBServices', 'GBPActionInstanceServices', function($scope, $filter, GPBServices, GBPActionInstanceServices){
\r
4996 $scope.actionDefinitions = {'options' : [], 'labels' : "name"};
\r
4997 $scope.newActionObj = GBPActionInstanceServices.createObj();
\r
4999 var loadDefinitions = function() {
\r
5000 GPBServices.getDefinitions(function(classifierDefs, actionDefs) {
\r
5001 $scope.actionDefinitions.options = actionDefs;
\r
5002 //$scope.getDisplayLabelsFromCtrl('GBP_ACTIONS_LABEL', $scope.actionDefinitions);
\r
5006 $scope.reloadDefs = function(){
\r
5007 $scope.defs = angular.copy($scope.getDefinitionObjParams($scope.newActionObj['action-definition-id']));
\r
5010 if($scope.defs.length && $scope.defs[0].name === 'sfc-chain-name') {
\r
5011 GPBServices.getServiceFunctionChains(function(data) {
\r
5012 $scope.serviceFunctionChains = data;
\r
5017 $scope.getDefinitionObjParams = function(id){
\r
5018 return GPBServices.getDefinitionObjParams($scope.actionDefinitions.options, id);
\r
5021 $scope.save = function(){
\r
5022 $scope.newActionObj['parameter-value'] = [];
\r
5023 $scope.$broadcast('GBP_SAVE_PARAM');
\r
5024 $scope.$emit('WIZARD_ACTIONINSTANCE_ADD', $scope.newActionObj);
\r
5025 $scope.resetObject();
\r
5028 $scope.resetObject = function() {
\r
5029 $scope.newActionObj = GBPActionInstanceServices.createObj();
\r
5032 $scope.saveParam = function() {
\r
5036 $scope.addParam = function(name, type, value) {
\r
5037 $scope.newActionObj['parameter-value'].push(GPBServices.createParamObj(name, type, value));
\r
5040 loadDefinitions();
\r