From 843fe81ebf7f11920a52f625bf863a1fad4d29de Mon Sep 17 00:00:00 2001 From: Daniel Malachovsky Date: Fri, 5 Feb 2016 16:24:59 +0100 Subject: UI-Grid initial commit - added angular-ui-grid library for handling expandable table - removed old service (http) and old inventory controller - fixed bridge domains page formatting - fixes bugs due to old code's css - applied Dave's comments Change-Id: Ie10d05bb0da3cb9bac666b66cf7168696c45254f Signed-off-by: Daniel Malachovsky Signed-off-by: Varun Seereeram --- .../src/main/resources/vpp/vpp.controller.js | 823 +++++++++------------ 1 file changed, 346 insertions(+), 477 deletions(-) (limited to 'vbd/gui/module/src/main/resources/vpp/vpp.controller.js') diff --git a/vbd/gui/module/src/main/resources/vpp/vpp.controller.js b/vbd/gui/module/src/main/resources/vpp/vpp.controller.js index ebfd49ae8..acb7d0a5c 100644 --- a/vbd/gui/module/src/main/resources/vpp/vpp.controller.js +++ b/vbd/gui/module/src/main/resources/vpp/vpp.controller.js @@ -13,8 +13,8 @@ var modules = ['app/vpp/vpp.module', define(modules, function(vpp) { - vpp.register.controller('vppCtrl', ['$scope', '$rootScope', '$timeout', 'httpService' ,'dataService', 'toastService', '$mdSidenav', '$mdDialog', - function ($scope, $rootScope, $timeout, httpService ,dataService, toastService, $mdSidenav, $mdDialog) { + vpp.register.controller('vppCtrl', ['$scope', '$rootScope', '$timeout' ,'dataService', 'toastService', '$mdSidenav', '$mdDialog', + function ($scope, $rootScope, $timeout ,dataService, toastService, $mdSidenav, $mdDialog) { $rootScope['section_logo'] = 'src/app/vpp/assets/images/vpp.gif'; $scope.view_path = 'src/app/vpp/views/'; @@ -27,259 +27,312 @@ define(modules, function(vpp) { vpp.register.controller('InventoryTableController', ['$scope', '$rootScope','$filter', 'toastService', 'VppService', '$mdDialog', 'dataService', 'VppInterfaceService', function($scope, $rootScope, filter, toastService, VppService, $mdDialog, dataService, VppInterfaceService) { - - $scope.getInterfaces = function(index) { - VppInterfaceService.getInterfaceList( - $scope.vppList[index].name, - //success callback - function(data) { - var interfaces = data['interfaces-state'].interface; - var vpp = $scope.vppList[index]; - vpp.interfaces = []; - - interfaces.forEach(function(i){ - if (i.name != 'local0') { - vpp.interfaces.push(i); - } - }); - console.log($scope.vppList); - }, - //error callback - function(res) { - console.error(res); - } - ) - }; + $scope.initTable = - $scope.getVppList = function() { - $scope.initVppList(); - - VppService.getVppList( - // success callback - function(data) { - if(data.topology.length || data.topology[0].node.length) { - data.topology[0].node.forEach(function(n) { - if(n['node-id'] !== 'controller-config') { - var vppObj = VppService.createObj(n['node-id'], n['netconf-node-topology:host'], n['netconf-node-topology:port'], null, null, n['netconf-node-topology:connection-status']); - $scope.vppList.push(vppObj); - $scope.getInterfaces($scope.vppList.length - 1); //pass index. + $scope.getInterfaces = function(index) { + VppInterfaceService.getInterfaceList( + $scope.vppList[index].name, + //success callback + function(data) { + var interfaces = data['interfaces-state'].interface; + var vpp = $scope.vppList[index]; + vpp.interfaces = []; + interfaces.forEach(function(i){ + if (i.name != 'local0') { + vpp.interfaces.push(i); } }); + console.log($scope.vppList); + angular.copy($scope.vppList, dataService.vpps); + }, + //error callback + function(res) { + console.error(res); } - }, - // error callback - function(res) { - console.error(res); - } - ); - }; - - $scope.initVppList = function() { - $scope.vppList = []; - }; + ) + }; - $scope.viewTopology = function(vpp) { - $mdDialog.show({ - controller: function() { - var vm = this; - - $scope.topo = new nx.graphic.Topology({ - height: 350, - width: 500, - scalable: true, - theme:'blue', - enableGradualScaling:true, - nodeConfig: { - color: '#414040', - label: 'model.label', - scale: 'model.scale', - iconType: function(vertex) { - var type = vertex.get().type; - if (type === 'bd') { - return 'bd' - } else if (type === 'vpp') { - return 'switch' - } else { - return 'interf'; + $scope.getVppList = function() { + $scope.initVppList(); + + VppService.getVppList( + // success callback + function(data) { + if(data.topology.length || data.topology[0].node.length) { + data.topology[0].node.forEach(function(n) { + if(n['node-id'] !== 'controller-config') { + var vppObj = VppService.createObj(n['node-id'], n['netconf-node-topology:host'], n['netconf-node-topology:port'], null, null, n['netconf-node-topology:connection-status']); + $scope.vppList.push(vppObj); + $scope.getInterfaces($scope.vppList.length - 1); //pass index. } - } - }, - linkConfig: { - label: 'model.label', - linkType: 'parallel', - color: function(link) { - if (link.getData().type === 'tunnel') { - return '#00FF00'; - } else { - return '#414040'; + }); + } + + $scope.$broadcast('RELOAD_VPP_TABLE'); + }, + // error callback + function(res) { + console.error(res); + } + ); + }; + + $scope.initVppList = function() { + $scope.vppList = []; + }; + + $scope.viewTopology = function(vpp) { + $mdDialog.show({ + controller: function() { + var vm = this; + + $scope.topo = new nx.graphic.Topology({ + height: 350, + width: 500, + scalable: true, + theme:'blue', + enableGradualScaling:true, + nodeConfig: { + color: '#414040', + label: 'model.label', + scale: 'model.scale', + iconType: function(vertex) { + var type = vertex.get().type; + if (type === 'bd') { + return 'bd' + } else if (type === 'vpp') { + return 'switch' + } else { + return 'interf'; + } } }, - width: function(link) { - if (link.getData().type === 'tunnel') { - return 5; + linkConfig: { + label: 'model.label', + linkType: 'parallel', + color: function(link) { + if (link.getData().type === 'tunnel') { + return '#00FF00'; + } else { + return '#414040'; + } + }, + width: function(link) { + if (link.getData().type === 'tunnel') { + return 5; + } } + }, + showIcon: true, + dataProcessor: 'force', + autoLayout: true, + enableSmartNode: false, + tooltipManagerConfig: { + nodeTooltipContentClass: 'TooltipNode', + linkTooltipContentClass: 'TooltipLink' } - }, - showIcon: true, - dataProcessor: 'force', - autoLayout: true, - enableSmartNode: false, - tooltipManagerConfig: { - nodeTooltipContentClass: 'TooltipNode', - linkTooltipContentClass: 'TooltipLink' - } - }); - $scope.app = new nx.ui.Application; - - vm.vpp = vpp; - vm.vpp.type = 'vpp'; - vm.vpp.label = vm.vpp.name; - - var nodes = [].concat(vm.vpp); - var links = []; - - _.forEach(vm.vpp.interfaces, function(interf, index){ - interf.label = interf.name; - interf.scale = 0.5; - nodes.push(interf); - links.push({source: 0, target: index + 1}); - }); - - console.log(vpp); - console.log(nodes); - console.log(links); - - $scope.topo.data({ - nodes: nodes, - links: links - }); - - this.close = function() { - $mdDialog.cancel(); - }; + }); + $scope.app = new nx.ui.Application; - }, - onComplete: function() { - console.log(document.getElementById('next-vpp-topo')); - $scope.app.container(document.getElementById('next-vpp-topo')); - $scope.topo.attach($scope.app); - - }, - templateUrl: $scope.view_path + 'vpp-topo.html', - controllerAs: 'VppTopoCtrl', - parent: angular.element(document.body), - clickOutsideToClose:true - }) - }; + vm.vpp = vpp; + vm.vpp.type = 'vpp'; + vm.vpp.label = vm.vpp.name; - $scope.addVppShowForm = function() { - $mdDialog.show({ - controller: function() { - var vm = this; - vm.vpp = {}; - //function called when the cancel button ( 'x' in the top right) is clicked - vm.close = function() { - $mdDialog.cancel(); - }; + var nodes = [].concat(vm.vpp); + var links = []; - vm.finished = function(successful) { - if (successful) { - vm.close(); - vm.waiting = false; - toastService.showToast('New VPP added!'); - $scope.getVppList(); - } else { - vm.waiting = false; - toastService.showToast('Error adding new VPP'); - } - }; + _.forEach(vm.vpp.interfaces, function(interf, index){ + interf.label = interf.name; + interf.scale = 0.5; + nodes.push(interf); + links.push({source: 0, target: index + 1}); + }); - //function called when the update button is clicked - vm.updateConfig = function() { - vm.waiting = true; - VppService.mountVpp(vm.vpp.name, vm.vpp.ip, vm.vpp.port, vm.vpp.un, vm.vpp.pw, vm.finished); - }; - }, - controllerAs: 'NewVppDialogCtrl', - templateUrl: $scope.view_path + 'new-vpp-dialog.html', - parent: angular.element(document.body), - clickOutsideToClose:true - }) - }; + console.log(vpp); + console.log(nodes); + console.log(links); + + $scope.topo.data({ + nodes: nodes, + links: links + }); - $scope.editVppShowForm = function(vppObject) { + this.close = function() { + $mdDialog.cancel(); + }; + + }, + onComplete: function() { + console.log(document.getElementById('next-vpp-topo')); + $scope.app.container(document.getElementById('next-vpp-topo')); + $scope.topo.attach($scope.app); + + }, + templateUrl: $scope.view_path + 'vpp-topo.html', + controllerAs: 'VppTopoCtrl', + parent: angular.element(document.body), + clickOutsideToClose:true + }) + }; - $mdDialog.show({ - controller: function() { - var vm = this; + $scope.addVppShowForm = function() { + $mdDialog.show({ + controller: function() { + var vm = this; + vm.vpp = {}; + //function called when the cancel button ( 'x' in the top right) is clicked + vm.close = function() { + $mdDialog.cancel(); + }; + + vm.finished = function(successful) { + if (successful) { + vm.close(); + vm.waiting = false; + toastService.showToast('New VPP added!'); + $scope.getVppList(); + } else { + vm.waiting = false; + toastService.showToast('Error adding new VPP'); + } + }; + + //function called when the update button is clicked + vm.updateConfig = function() { + vm.waiting = true; + VppService.mountVpp(vm.vpp.name, vm.vpp.ip, vm.vpp.port, vm.vpp.un, vm.vpp.pw, vm.finished); + }; + }, + controllerAs: 'NewVppDialogCtrl', + templateUrl: $scope.view_path + 'new-vpp-dialog.html', + parent: angular.element(document.body), + clickOutsideToClose:true + }) + }; - vm.vpp = { - name: vppObject.name, - status: vppObject.status, - ip: vppObject.ipAddress, - port: vppObject.port - }; + $scope.editVppShowForm = function(vppObject) { + + $mdDialog.show({ + controller: function() { + var vm = this; + + vm.vpp = { + name: vppObject.name, + status: vppObject.status, + ip: vppObject.ipAddress, + port: vppObject.port + }; + + //function called when the cancel button ( 'x' in the top right) is clicked + vm.close = function() { + $mdDialog.cancel(); + }; + + vm.finishedUpdating = function(successful) { + if (successful) { + vm.close(); + vm.waiting = false; + toastService.showToast('VPP configuration updated!'); + $scope.getVppList(); + } else { + vm.waiting = false; + toastService.showToast('Error configuring VPP'); + } + }; + + vm.finishedDeleting = function(successful) { + if (successful) { + VppService.mountVpp(vm.vpp.name, vm.vpp.ip, vm.vpp.port, vm.vpp.un, vm.vpp.pw, vm.finishedUpdating); + $scope.getVppList(); + } else { + vm.waiting = false; + toastService.showToast('Error configuring VPP'); + } + }; + + //function called when the update button is clicked + vm.updateConfig = function() { + //VppService.editVpp(vm.vpp.name, vm.vpp.ip, vm.vpp.port, vm.vpp.un, vm.vpp.pw, vm.finishedUpdating); + VppService.deleteVpp(vm.vpp, vm.finishedDeleting); + }; + }, + controllerAs: 'ConfigVppDialogCtrl', + templateUrl: $scope.view_path + 'config-vpp-dialog.html', + parent: angular.element(document.body), + clickOutsideToClose:true + }); + }; - //function called when the cancel button ( 'x' in the top right) is clicked - vm.close = function() { - $mdDialog.cancel(); - }; + $scope.deleteVpp = function(vppObject) { - vm.finishedUpdating = function(successful) { - if (successful) { - vm.close(); - vm.waiting = false; - toastService.showToast('VPP configuration updated!'); - $scope.getVppList(); - } else { - vm.waiting = false; - toastService.showToast('Error configuring VPP'); - } - }; + var finished = function(successful) { + if (successful) { + toastService.showToast('Removed VPP!'); + $scope.getVppList(); + } else { + toastService.showToast('Error removing VPP'); + } + }; - vm.finishedDeleting = function(successful) { - if (successful) { - VppService.mountVpp(vm.vpp.name, vm.vpp.ip, vm.vpp.port, vm.vpp.un, vm.vpp.pw, vm.finishedUpdating); - $scope.getVppList(); - } else { - vm.waiting = false; - toastService.showToast('Error configuring VPP'); - } - }; + VppService.deleteVpp(vppObject, finished); + }; - //function called when the update button is clicked - vm.updateConfig = function() { - //VppService.editVpp(vm.vpp.name, vm.vpp.ip, vm.vpp.port, vm.vpp.un, vm.vpp.pw, vm.finishedUpdating); - VppService.deleteVpp(vm.vpp, vm.finishedDeleting); - }; - }, - controllerAs: 'ConfigVppDialogCtrl', - templateUrl: $scope.view_path + 'config-vpp-dialog.html', - parent: angular.element(document.body), - clickOutsideToClose:true - }); - }; + $scope.getVppList(); + }]); - $scope.deleteVpp = function(vppObject) { + vpp.register.controller('InventoryTableDefinitonController', ['$scope', function($scope) { - var finished = function(successful) { - if (successful) { - toastService.showToast('Removed VPP!'); - $scope.getVppList(); - } else { - toastService.showToast('Error removing VPP'); - } - }; + var actionCellTemplate = + 'View Topology' + + 'Edit' + + 'Delete'; + + $scope.gridOptions = { + + expandableRowTemplate: $scope.view_path + 'inventory-table-interfaces-subgrid.tpl.html', + expandableRowHeight: 150, + //subGridVariable will be available in subGrid scope + expandableRowScope: { + subGridVariable: 'subGridScopeVariable' + } + + } + + $scope.gridOptions.columnDefs = [ + { name: 'name' }, + { name: 'ipAddress'}, + { name: 'port'}, + { name: 'status'}, + { name:' ',cellTemplate: actionCellTemplate} + ]; + + + //$scope.gridOptions.data = $scope.vppList; - VppService.deleteVpp(vppObject, finished); + $scope.gridOptions.onRegisterApi = function(gridApi){ + $scope.gridApi = gridApi; }; - $scope.getVppList(); + $scope.$on('RELOAD_VPP_TABLE', function(event) { + $scope.gridOptions.data = $scope.vppList.map(function(item) { + item.subGridOptions = { + columnDefs: [ + { name:"Name", field:"name" }, + {name:"Mac Address", field: "phys-address"}, + {name:"Oper. Status", fiels: "oper-status"} + ], + data: item.interfaces + }; + + return item; + }); + }); + }]); - vpp.register.controller('TableController', ['$scope', '$rootScope','$filter', 'dataService', 'httpService', 'toastService', function ($scope, $rootScope, filter, dataService, httpService, toastService) { + vpp.register.controller('TableController', ['$scope', '$rootScope','$filter', 'dataService', 'toastService', function ($scope, $rootScope, filter, dataService, toastService) { var vm = this; vm.rowCollection = dataService.tableContent; vm.displayedCollection = [].concat(vm.rowCollection); @@ -301,279 +354,95 @@ define(modules, function(vpp) { }; }]); - vpp.register.controller('InventoryController', function(dataService, $mdDialog, httpService, $location, toastService, $window) { + vpp.register.controller('BridgeDomainsController', function(dataService, $location, $mdDialog, toastService) { var vm = this; vm.dataService = dataService; - var nextApp = new nx.ui.Application; - - nextApp.container(document.getElementById('inventory-next-app')); - dataService.vppTopo.attach(nextApp); - dataService.vppTopo.tooltipManager().nodeTooltip().close(); - dataService.bridgeDomainsTopo.tooltipManager().nodeTooltip().close(); - - window.addEventListener('resize', function() { - if ($location.path() === '/inventory') { - dataService.vppTopo.adaptToContainer(); - } - }); + dataService.nextApp.container(document.getElementById('bridge-domains-next-app')); + dataService.bridgeDomainsTopo.attach(dataService.nextApp); - dataService.vppTopo.on("topologyGenerated", function() { //on topology generated... - dataService.vppTopo.stage().on('dblclick', function(sender, event) { - var target = event.target; - var nodesLayerDom = dataService.vppTopo.getLayer('nodes').dom().$dom; - var id; - - //db click node - if (nodesLayerDom.contains(target)) { - while (!target.classList.contains('node')) { - target = target.parentElement; - } - id = target.getAttribute('data-id'); - dataService.vppTopo.tooltipManager().nodeTooltip().close(); - - if(dataService.vppTopo.getNode(id).model().get().type ==='iana-if-type:ethernetCsmacd') { - vm.configInterface(dataService.vppTopo.getData().nodes[id]); - } else { - vm.configVpp(dataService.vppTopo.getNode(id)); - } - } - }); //Double click handler - - dataService.vppTopo.on('clickNode',function(topo, node){ - if(node.model().get().type!='iana-if-type:ethernetCsmacd') { - dataService.vppTopo.tooltipManager().nodeTooltip().close(); + window.addEventListener('resize', function () { + if ($location.path() === '/bridgedomains') { + dataService.topo.adaptToContainer(); } - console.log(node.model().get()); - }); }); - vm.configVpp = function(node) { - console.log(node.model().get()); - $mdDialog.show({ - controller: function() { - var vm = this; - var nodeModel = node.model().get(); - vm.vpp = { - name: nodeModel['node-id'], - status: nodeModel['netconf-node-topology:connection-status'], - ip: nodeModel['netconf-node-topology:host'], - port: nodeModel['netconf-node-topology:port'] - }; - - //function called when the cancel button ( 'x' in the top right) is clicked - vm.close = function() { - $mdDialog.cancel(); - }; - - vm.finishedUpdating = function(successful) { - if (successful) { - vm.close(); - vm.waiting = false; - toastService.showToast('VPP configuration updated!'); - $window.location.reload(true); - } else { - vm.waiting = false; - toastService.showToast('Error configuring VPP'); - } - }; - - vm.finishedDeleting = function(successful) { - if (successful) { - vm.close(); - vm.waiting = false; - toastService.showToast('VPP deleted!'); - $window.location.reload(true); - } else { - vm.waiting = false; - toastService.showToast('Error deleting VPP'); - } - }; + vm.bridgedomains = dataService.bridgedomains; + vm.selectedBd = dataService.selectedBd; - vm.deleteVpp = function() { - vm.waiting = true; - httpService.deleteVpp(vm.vpp.name, vm.finishedDeleting); - }; + dataService.bridgeDomainsTopo.on('clickNode',function(topo,node) { + console.log(node); + }); - //function called when the update button is clicked - vm.updateConfig = function() { - //TODO: Function to send a POST with the entered content in the form field - httpService.configVpp(vm.vpp.name, vm.vpp.ip, vm.vpp.port, vm.vpp.un, vm.vpp.pw, vm.finishedUpdating); - }; - }, - controllerAs: 'ConfigVppDialogCtrl', - templateUrl: 'templates/config-vpp-dialog.html', - parent: angular.element(document.body), - clickOutsideToClose:false - }) + vm.bdChanged = function() { + dataService.injectBridgeDomainsTopoElements(); + dataService.buildTableContent(); }; - vm.addVpp = function() { - //show dialog - $mdDialog.show({ - controller: function() { - var vm = this; - vm.vpp = {}; - //function called when the cancel button ( 'x' in the top right) is clicked - vm.close = function() { - $mdDialog.cancel(); - }; + vm.addBd = function() { + //show dialog + $mdDialog.show({ + controller: function() { + var vm = this; + vm.bd = {}; + vm.waiting = false; - vm.finished = function(successful) { - if (successful) { - vm.close(); - vm.waiting = false; - toastService.showToast('New VPP added!'); - $window.location.reload(true); - } else { - vm.waiting = false; - toastService.showToast('Error adding new VPP'); - } - }; + //function called when the cancel button ( 'x' in the top right) is clicked + vm.close = function() { + $mdDialog.cancel(); + }; - //function called when the update button is clicked - vm.updateConfig = function() { - vm.waiting = true; - //TODO: Function to send a POST with the entered content in the form field - httpService.mountVpp(vm.vpp.name, vm.vpp.ip, vm.vpp.port, vm.vpp.un, vm.vpp.pw, vm.finished); - }; - }, - controllerAs: 'NewVppDialogCtrl', - templateUrl: 'templates/new-vpp-dialog.html', - parent: angular.element(document.body), - clickOutsideToClose:false - }) + vm.isDone = function(status) { + vm.waiting = false; + if (status === 'success') { + dataService.bridgedomains.push(vm.bd); + dataService.selectedBd.name = vm.bd.name; + dataService.injectBridgeDomainsTopoElements(); + dataService.buildTableContent(); + vm.close(); + } + }; + + //function called when the update button is clicked + vm.updateConfig = function() { + vm.waiting = true; + //send a POST with the entered content in the form field + + }; + }, + controllerAs: 'NewBdDialogCtrl', + templateUrl: 'templates/new-bd-dialog.html', + parent: angular.element(document.body), + clickOutsideToClose:false + }) }; - vm.configInterface = function(interf) { - //show dialog - $mdDialog.show({ - controller: function() { - var vm = this; - var oldDescription = interf.description; - var oldAdminStatus = interf['admin-status']; - vm.interf = interf; - //function called when the cancel button ( 'x' in the top right) is clicked - vm.cancel = function() { - $mdDialog.cancel(); - vm.revert(); - }; - vm.revert = function() { - interf['admin-status'] = oldAdminStatus; - interf.description = oldDescription - }; - vm.success = function() { - $mdDialog.cancel(); - }; - //function called when the update button is clicked - vm.updateConfig = function() { - vm.waiting = true; + vm.deploy = function() { - //send a POST with the entered content in the form field - httpService.updateInterface(vm.interf,vm.waiting,vm.cancel, vm.success); - }; - }, - controllerAs: 'ConfigInterfaceDialogCtrl', - templateUrl: 'templates/config-interface-dialog.html', - parent: angular.element(document.body), - clickOutsideToClose:false - }) }; - dataService.vppTopo.adaptToContainer(); - }); - vpp.register.controller('BridgeDomainsController', function(dataService, $location, $mdDialog, httpService, toastService) { - var vm = this; - vm.dataService = dataService; - var nextApp = new nx.ui.Application; - nextApp.container(document.getElementById('bridge-domains-next-app')); - dataService.bridgeDomainsTopo.attach(nextApp); + vm.removeBd = function() { + if(vm.selectedBd.name) { + var successCallback = function(success) { + if (success) { + console.log(vm.bridgedomains); + _.remove(vm.bridgedomains, { + name: vm.selectedBd.name + }); + toastService.showToast('Bridge Domain Removed!'); + vm.selectedBd.name = ''; + dataService.clearInjectedInterfacesInBridgeDomainTopo(); + dataService.injectBdIntoBridgeDomainsTopo(); + dataService.tableContent.length = 0; + } else { + toastService.showToast('Error removing Bridge Domain!'); - window.addEventListener('resize', function () { - if ($location.path() === '/bridgedomains') { - dataService.bridgeDomainsTopo.adaptToContainer(); } - }); - - dataService.vppTopo.tooltipManager().nodeTooltip().close(); - dataService.bridgeDomainsTopo.tooltipManager().nodeTooltip().close(); - - vm.bridgedomains = dataService.bridgedomains; - vm.selectedBd = dataService.selectedBd; - - dataService.bridgeDomainsTopo.on('clickNode',function(topo,node) { - console.log(node); - }); - - vm.bdChanged = function() { - dataService.injectBridgeDomainsTopoElements(); - dataService.buildTableContent(); - }; - - vm.addBd = function() { - //show dialog - $mdDialog.show({ - controller: function(httpService) { - var vm = this; - vm.bd = {}; - vm.waiting = false; - - //function called when the cancel button ( 'x' in the top right) is clicked - vm.close = function() { - $mdDialog.cancel(); - }; - - vm.isDone = function(status) { - vm.waiting = false; - if (status === 'success') { - dataService.bridgedomains.push(vm.bd); - dataService.selectedBd.name = vm.bd.name; - dataService.injectBridgeDomainsTopoElements(); - dataService.buildTableContent(); - vm.close(); - } - }; - - //function called when the update button is clicked - vm.updateConfig = function() { - vm.waiting = true; - //send a POST with the entered content in the form field - httpService.addBdToODL(vm.bd.name, vm.isDone); - }; - }, - controllerAs: 'NewBdDialogCtrl', - templateUrl: 'templates/new-bd-dialog.html', - parent: angular.element(document.body), - clickOutsideToClose:false - }) - }; - - vm.deploy = function() { - httpService.deploy(); - }; - - vm.removeBd = function() { - if(vm.selectedBd.name) { - var successCallback = function(success) { - if (success) { - console.log(vm.bridgedomains); - _.remove(vm.bridgedomains, { - name: vm.selectedBd.name - }); - toastService.showToast('Bridge Domain Removed!'); - vm.selectedBd.name = ''; - dataService.clearInjectedInterfacesInBridgeDomainTopo(); - dataService.injectBdIntoBridgeDomainsTopo(); - dataService.tableContent.length = 0; - } else { - toastService.showToast('Error removing Bridge Domain!'); - - } - }; + }; - httpService.removeBdFromOdl(vm.selectedBd.name, successCallback); - } - }; + //... removeBdFromOdl(vm.selectedBd.name, successCallback); + } + }; }); }); -- cgit 1.2.3-korg