From b247ba6b4fc3516c87d193ef5bae34c619db2134 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Fri, 24 May 2013 15:21:32 -0700 Subject: [PATCH] CLOUDSTACK-1974: Dedicate Guest VLAN Range - UI - Infrastructure menu - physical network - Guest - devailView - (1) add new tab "Dedicated VLAN Ranges" that list dedicated Guest VLAN Ranges under the physical network. (2) implement "Dedicate Guest VLAN Range" action. --- ui/scripts/system.js | 92 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 89 insertions(+), 3 deletions(-) diff --git a/ui/scripts/system.js b/ui/scripts/system.js index 2e23fc40202..32303d3ed0f 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -1085,10 +1085,13 @@ tabFilter: function(args) { var hiddenTabs = []; - if (selectedZoneObj.networktype == 'Basic') + if (selectedZoneObj.networktype == 'Basic') { hiddenTabs.push("network"); - else //selectedZoneObj.networktype == 'Advanced' + hiddenTabs.push("dedicatedGuestVlanRanges"); + } + else { //selectedZoneObj.networktype == 'Advanced' hiddenTabs.push("ipAddresses"); + } return hiddenTabs; }, @@ -2115,7 +2118,90 @@ } } } - } + }, + + dedicatedGuestVlanRanges : { + title: 'Dedicated VLAN Ranges', + listView: { + section: 'dedicatedGuestVlanRanges', + id: 'dedicatedGuestVlanRanges', + fields: { + guestvlanrange: { label: 'VLAN Range(s)' }, + domain: { label: 'label.domain' }, + account: { label: 'label.account' } + }, + dataProvider: function(args) { + $.ajax({ + url: createURL('listDedicatedGuestVlanRanges'), + data: { + physicalnetworkid: args.context.physicalNetworks[0].id + }, + success: function(json) { + var items = json.listdedicatedguestvlanrangesresponse.dedicatedguestvlanrange; + args.response.success({ data: items }) + } + }); + }, + actions: { + add: { + label: 'Dedicate VLAN Range', + messages: { + notification: function(args) { + return 'Dedicate VLAN Range'; + } + }, + createForm: { + title: 'Dedicate VLAN Range', + fields: { + vlanrange: { label: 'VLAN Range(s)', validation: { required: true } }, + account: { label: 'label.account', validation: { required: true } }, + domainid: { + label: 'label.domain', + validation: { required: true }, + select: function(args) { + $.ajax({ + url: createURL('listDomains'), + data: { listAll: true }, + success: function(json) { + args.response.success({ + data: $.map(json.listdomainsresponse.domain, function(domain) { + return { + id: domain.id, + description: domain.path + }; + }) + }); + } + }); + } + } + } + }, + action: function(args) { + var data = { + physicalnetworkid: args.context.physicalNetworks[0].id, + vlanrange: args.data.vlanrange, + domainid: args.data.domainid, + account: args.data.account + }; + $.ajax({ + url: createURL('dedicateGuestVlanRange'), + data: data, + success: function(json) { + var item = json.dedicateguestvlanrangeresponse.dedicatedguestvlanrange; + args.response.success({ data: item }); + } + }); + }, + notification: { + poll: function(args) { + args.complete(); + } + } + } + } + } + } } } }