From 6aee5f2aefa4a8b7fd0af4d32599e5212358a5ea Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Thu, 2 Aug 2012 15:04:12 -0700 Subject: [PATCH] cloudstack 3.0 UI - site to site VPN - VPN customer gateway - implement Edit mode. Conflicts: ui/scripts/network.js --- ui/scripts/network.js | 246 +++++++++++++++++++++++++++++------------- 1 file changed, 169 insertions(+), 77 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index a5df76f9a05..9319416dd5d 100644 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -3936,81 +3936,127 @@ label: 'CIDR list', validation: { required: true } }, - ipsecpsk: { - label: 'IPsec Preshared-Key', - validation: { required: true } - }, - ikepolicy: { - label: 'IKE policy', - select: function(args) { - var items = []; - items.push({id: '3des-md5', description: '3des-md5'}); - items.push({id: 'aes-md5', description: 'aes-md5'}); - items.push({id: 'aes128-md5', description: 'aes128-md5'}); - items.push({id: '3des-sha1', description: '3des-sha1'}); - items.push({id: 'aes-sha1', description: 'aes-sha1'}); - items.push({id: 'aes128-sha1', description: 'aes128-sha1'}); - args.response.success({data: items}); - } - }, - esppolicy: { - label: 'ESP policy', - select: function(args) { - var items = []; - items.push({id: '3des-md5', description: '3des-md5'}); - items.push({id: 'aes-md5', description: 'aes-md5'}); - items.push({id: 'aes128-md5', description: 'aes128-md5'}); - items.push({id: '3des-sha1', description: '3des-sha1'}); - items.push({id: 'aes-sha1', description: 'aes-sha1'}); - items.push({id: 'aes128-sha1', description: 'aes128-sha1'}); - args.response.success({data: items}); - } - }, - lifetime: { - label: 'Lifetime (second)', - defaultValue: '86400', - validation: { required: false, number: true } - } - } - }, - action: function(args) { - $.ajax({ - url: createURL('createVpnCustomerGateway'), - data: { + gateway: { + label: 'label.gateway', + validation: { required: true } + }, + cidrlist: { + label: 'CIDR list', + validation: { required: true } + }, + ipsecpsk: { + label: 'IPsec Preshared-Key', + validation: { required: true } + }, + ikepolicy: { + label: 'IKE policy', + select: function(args) { + var items = []; + items.push({id: '3des-md5', description: '3des-md5'}); + items.push({id: 'aes-md5', description: 'aes-md5'}); + items.push({id: 'aes128-md5', description: 'aes128-md5'}); + items.push({id: '3des-sha1', description: '3des-sha1'}); + items.push({id: 'aes-sha1', description: 'aes-sha1'}); + items.push({id: 'aes128-sha1', description: 'aes128-sha1'}); + args.response.success({data: items}); + } + }, + esppolicy: { + label: 'ESP policy', + select: function(args) { + var items = []; + items.push({id: '3des-md5', description: '3des-md5'}); + items.push({id: 'aes-md5', description: 'aes-md5'}); + items.push({id: 'aes128-md5', description: 'aes128-md5'}); + items.push({id: '3des-sha1', description: '3des-sha1'}); + items.push({id: 'aes-sha1', description: 'aes-sha1'}); + items.push({id: 'aes128-sha1', description: 'aes128-sha1'}); + args.response.success({data: items}); + } + }, + lifetime: { + label: 'Lifetime (second)', + defaultValue: '86400', + validation: { required: false, number: true } + } + } + }, + action: function(args) { + $.ajax({ + url: createURL('createVpnCustomerGateway'), + data: { name: args.data.name, + gateway: args.data.gateway, + cidrlist: args.data.cidrlist, + ipsecpsk: args.data.ipsecpsk, + ikepolicy: args.data.ikepolicy, + esppolicy: args.data.esppolicy, + lifetime: args.data.lifetime + }, + dataType: 'json', + success: function(json) { + var jid = json.createvpncustomergatewayresponse.jobid; + args.response.success( + {_custom: + { + jobId: jid, + getUpdatedItem: function(json) { + return json.queryasyncjobresultresponse.jobresult.vpncustomergateway; + } + } + } + ); + } + }); + }, + notification: { + poll: pollAsyncJobResult + } + } + }, + + detailView: { + name: 'label.details', + actions: { + edit: { + label: 'label.edit', + action: function(args) { + var data = { + id: args.context.vpnCustomerGateway[0].id, + name: args.data.name, gateway: args.data.gateway, cidrlist: args.data.cidrlist, ipsecpsk: args.data.ipsecpsk, ikepolicy: args.data.ikepolicy, esppolicy: args.data.esppolicy, lifetime: args.data.lifetime - }, - dataType: 'json', - success: function(json) { - var jid = json.createvpncustomergatewayresponse.jobid; - args.response.success( - {_custom: - { - jobId: jid, - getUpdatedItem: function(json) { - return json.queryasyncjobresultresponse.jobresult.vpncustomergateway; - } + }; + + $.ajax({ + url: createURL('updateVpnCustomerGateway'), + data: data, + success: function(json) { + var jobId = json.updatecustomergatewayresponse.jobid; + args.response.success( + {_custom: + { + jobId: jobId, + getUpdatedItem: function(json) { + var item = json.queryasyncjobresultresponse.jobresult.vpncustomergateway; + args.response.success({ data: item }); + } + } } - } - ); - } - }); - }, - notification: { - poll: pollAsyncJobResult - } - } - }, - - detailView: { - name: 'label.details', - actions: { - remove: { + ); + } + }); + }, + notification: { + poll: pollAsyncJobResult + } + }, + + remove: { label: 'delete VPN Customer Gateway', messages: { confirm: function(args) { @@ -4049,17 +4095,63 @@ title: 'label.details', fields: [ { - gateway: { label: 'label.gateway' } - }, - { - cidrlist: { label: 'CIDR list' }, - ipsecpsk: { label: 'IPsec Preshared-Key' }, + name: { + label: 'label.name', + isEditable: true, + validation: { required: true } + } + }, + { + gateway: { + label: 'label.gateway', + isEditable: true, + validation: { required: true } + }, + cidrlist: { + label: 'CIDR list', + isEditable: true, + validation: { required: true } + }, + ipsecpsk: { + label: 'IPsec Preshared-Key', + isEditable: true, + validation: { required: true } + }, + ikepolicy: { + label: 'IKE policy', + isEditable: true, + select: function(args) { + var items = []; + items.push({id: '3des-md5', description: '3des-md5'}); + items.push({id: 'aes-md5', description: 'aes-md5'}); + items.push({id: 'aes128-md5', description: 'aes128-md5'}); + items.push({id: '3des-sha1', description: '3des-sha1'}); + items.push({id: 'aes-sha1', description: 'aes-sha1'}); + items.push({id: 'aes128-sha1', description: 'aes128-sha1'}); + args.response.success({data: items}); + } + }, + esppolicy:{ + label: 'ESP policy', + isEditable: true, + select: function(args) { + var items = []; + items.push({id: '3des-md5', description: '3des-md5'}); + items.push({id: 'aes-md5', description: 'aes-md5'}); + items.push({id: 'aes128-md5', description: 'aes128-md5'}); + items.push({id: '3des-sha1', description: '3des-sha1'}); + items.push({id: 'aes-sha1', description: 'aes-sha1'}); + items.push({id: 'aes128-sha1', description: 'aes128-sha1'}); + args.response.success({data: items}); + } + }, + lifetime :{ + label: 'Lifetime (second)', + isEditable: true + }, id: { label: 'label.id' }, - ikepolicy: { label: 'IKE policy'}, - esppolicy:{ label: 'ESP policy'}, - lifetime :{label: 'Lifetime (second)'}, - domain: { label: 'label.domain' }, - account: { label: 'label.account' } + domain: { label: 'label.domain' }, + account: { label: 'label.account' } } ], dataProvider: function(args) {