+ $scope.ipvcDialog = new CpeuiDialogs.Dialog('AddIpvc', {}, function(obj) {
+ CpeuiSvc.addIpvc(obj, $scope.curTenant, function() {
+ $scope.updateEvcView();
+ });
+ });
+
+ $scope.linkIpvcUniDialog = new CpeuiDialogs.Dialog('LinkIpvcUni', {},
+ function(obj) {
+ CpeuiSvc.addIpvcUni(obj.svc_id, obj.uni['uni-id'], obj.ip_uni,
+ function() {
+ $scope.updateEvcView();
+ });
+ });
+
+ var ipUniDialogController = function($scope, $mdDialog) {
+ $scope.hasVlans = false;
+ if ($scope.params.uni['ip-unis'] && $scope.params.uni['ip-unis']['ip-uni']) {
+ var ipunis = $scope.params.uni['ip-unis']['ip-uni'];
+ for (i = 0; i < ipunis.length; i++) {
+ if (ipunis[i].vlan){
+ $scope.hasVlans = true;
+ }
+ }
+ }
+ };
+
+ $scope.ipUniDialog = new CpeuiDialogs.Dialog('AddIpUni', {}, function(obj) {
+ CpeuiSvc.addIpUni(obj['uni-id'], obj['ip-uni-id'], obj['ip-address'], obj.vlan, obj.subnets, function() {
+ $scope.unis.filterByField('uni-id',obj['uni-id'])[0]['ip-unis']['ip-uni'].push(obj);
+ });
+ }, ipUniDialogController);
+
+ $scope.openIpUniDialog = function(event,uni){
+ if (uni['ip-unis'] && (uni['ip-unis']['ip-uni'] != undefined)){
+ var ipunis = uni['ip-unis']['ip-uni'];
+ for (i = 0; i < ipunis.length; i++) {
+ if (!ipunis[i].vlan){
+ CpeuiDialogs.alert("Error","You Can't have more then one ip-uni with no vlan. please remove the non-vlan ip-uni before adding new.")
+ return;
+ }
+ }
+ }
+ $scope.ipUniDialog.show(event,{'uniid':uni['uni-id'], uni:uni})
+ }
+
+ $scope.ipUniSubnetDialog = new CpeuiDialogs.Dialog('AddIpUniSubnet', {}, function(obj) {
+ CpeuiSvc.addIpUniSubnet(obj.uniid, obj.ipuniid, obj.subnet, obj.gateway, function() {
+ CpeuiSvc.getIpUniSubnets(obj.uniid, obj.ipuniid, function(subnets) {
+ $scope.unis.filterByField('uni-id',obj.uniid)[0]['ip-unis']['ip-uni'].filterByField('ip-uni-id',obj.ipuniid)[0].subnets = {subnet:subnets};
+ });
+ });
+ });
+
+ $scope.deleteIpUni = function(uniid, ipuni_id) {
+ CpeuiDialogs.confirm(function() {
+ CpeuiSvc.deleteIpUni(uniid, ipuni_id, function() {
+ $scope.updateEvcView(); // TODO update unis only
+ });
+ });
+ };
+ $scope.deleteIpvcUni = function(svc_id, uni_id) {
+ CpeuiDialogs.confirm(function() {
+ CpeuiSvc.deleteIpvcUni(svc_id, uni_id, function() {
+ $scope.updateEvcView();
+ });
+ });
+ };
+ $scope.getMefInterfaceIpvc = function(uni_id,ipuni_id){
+ var uni = $scope.unis.filterByField('uni-id',uni_id)[0];
+ if ((uni == undefined) || (uni['ip-unis'] == undefined) || (uni['ip-unis']['ip-uni'] == undefined)) {
+ return undefined;
+ }
+ return uni['ip-unis']['ip-uni'].filterByField('ip-uni-id',ipuni_id)[0];
+ }
+
+ $scope.deleteIpUniSubnet = function(uniid, ipuni_id, subnet) {
+ CpeuiDialogs.confirm(function() {
+ CpeuiSvc.deleteIpUniSubnet(uniid, ipuni_id, subnet, function() {
+ $scope.updateEvcView(); // TODO update unis only
+ });
+ });
+ };
+