CLOUDSTACK-1910: cloudstack UI - Regions menu - add new section GSLB.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8d21b4f4 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8d21b4f4 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8d21b4f4 Branch: refs/heads/affinity_groups Commit: 8d21b4f47c9d0e03575c0a88ee3991a05c8ece5d Parents: 7b0b2cd Author: Jessica Wang <jessica.w...@citrix.com> Authored: Wed Apr 3 10:21:37 2013 -0700 Committer: Jessica Wang <jessica.w...@citrix.com> Committed: Wed Apr 3 10:22:15 2013 -0700 ---------------------------------------------------------------------- ui/scripts/regions.js | 360 +++++++++++++++++++++++++------------------- 1 files changed, 204 insertions(+), 156 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8d21b4f4/ui/scripts/regions.js ---------------------------------------------------------------------- diff --git a/ui/scripts/regions.js b/ui/scripts/regions.js index 8839dec..7da4007 100644 --- a/ui/scripts/regions.js +++ b/ui/scripts/regions.js @@ -33,165 +33,213 @@ } }); } - }, - listView: { - section: 'regions', - fields: { - name: { label: 'label.name' }, - id: { label: 'ID' }, - endpoint: { label: 'label.endpoint' } - }, - actions: { - add: { - label: 'label.add.region', - messages: { - notification: function() { return 'label.add.region'; } - }, - createForm: { - title: 'label.add.region', - desc: 'message.add.region', - fields: { - id: { label: 'label.id', validation: { required: true } }, - name: { label: 'label.name', validation: { required: true } }, - endpoint: { label: 'label.endpoint', validation: { required: true } } - } - }, - action: function(args) { - var data = { - id: args.data.id, - name: args.data.name, - endpoint: args.data.endpoint - }; - - $.ajax({ - url: createURL('addRegion'), - data: data, - success: function(json) { - var item = json.addregionresponse.region; - args.response.success({data: item}); - $(window).trigger('cloudStack.refreshRegions'); - }, - error: function(json) { - args.response.error(parseXMLHttpResponse(json)); - } - }); - }, - notification: { - poll: function(args) { - args.complete(); + }, + sections: { + regions: { + listView: { + section: 'regions', + id: 'regions', + label: 'label.menu.regions', + fields: { + name: { label: 'label.name' }, + id: { label: 'ID' }, + endpoint: { label: 'label.endpoint' } + }, + actions: { + add: { + label: 'label.add.region', + messages: { + notification: function() { return 'label.add.region'; } + }, + createForm: { + title: 'label.add.region', + desc: 'message.add.region', + fields: { + id: { label: 'label.id', validation: { required: true } }, + name: { label: 'label.name', validation: { required: true } }, + endpoint: { label: 'label.endpoint', validation: { required: true } } + } + }, + action: function(args) { + var data = { + id: args.data.id, + name: args.data.name, + endpoint: args.data.endpoint + }; + + $.ajax({ + url: createURL('addRegion'), + data: data, + success: function(json) { + var item = json.addregionresponse.region; + args.response.success({data: item}); + $(window).trigger('cloudStack.refreshRegions'); + }, + error: function(json) { + args.response.error(parseXMLHttpResponse(json)); + } + }); + }, + notification: { + poll: function(args) { + args.complete(); + } + } } - } - } - }, - dataProvider: function(args) { - $.ajax({ - url: createURL('listRegions&listAll=true'), - success: function(json) { - var regions = json.listregionsresponse.region + }, + dataProvider: function(args) { + $.ajax({ + url: createURL('listRegions&listAll=true'), + success: function(json) { + var regions = json.listregionsresponse.region - args.response.success({ - data: regions ? regions : [] - }); - }, - error: function(json) { - args.response.error(parseXMLHttpResponse(json)); - } - }); - }, - detailView: { - name: 'Region details', - actions: { - edit: { - label: 'label.edit.region', - action: function(args) { - var data = { - id: args.context.regions[0].id, - name: args.data.name, - endpoint: args.data.endpoint - }; - - $.ajax({ - url: createURL('updateRegion'), - data: data, - success: function(json) { - args.response.success(); - $(window).trigger('cloudStack.refreshRegions'); - }, - error: function(json) { - args.response.error(parseXMLHttpResponse(json)); - } - }); - } - }, - remove: { - label: 'label.remove.region', - messages: { - notification: function() { return 'label.remove.region'; }, - confirm: function() { return 'message.remove.region'; } - }, - preAction: function(args) { - var region = args.context.regions[0]; - - /* e.g. - region.endpoint == "http://localhost:8080/client/" - document.location.href == "http://localhost:8080/client/#" - */ - /* - if(document.location.href.indexOf(region.endpoint) != -1) { - cloudStack.dialog.notice({ message: _l('You can not remove the region that you are currently in.') }); - return false; - } - */ - return true; - }, - action: function(args) { - var region = args.context.regions[0]; + args.response.success({ + data: regions ? regions : [] + }); + }, + error: function(json) { + args.response.error(parseXMLHttpResponse(json)); + } + }); + }, + detailView: { + name: 'Region details', + //viewAll: { path: 'regions.GSLB', label: 'GSLB' }, + actions: { + edit: { + label: 'label.edit.region', + action: function(args) { + var data = { + id: args.context.regions[0].id, + name: args.data.name, + endpoint: args.data.endpoint + }; + + $.ajax({ + url: createURL('updateRegion'), + data: data, + success: function(json) { + args.response.success(); + $(window).trigger('cloudStack.refreshRegions'); + }, + error: function(json) { + args.response.error(parseXMLHttpResponse(json)); + } + }); + } + }, + remove: { + label: 'label.remove.region', + messages: { + notification: function() { return 'label.remove.region'; }, + confirm: function() { return 'message.remove.region'; } + }, + preAction: function(args) { + var region = args.context.regions[0]; + + /* e.g. + region.endpoint == "http://localhost:8080/client/" + document.location.href == "http://localhost:8080/client/#" + */ + /* + if(document.location.href.indexOf(region.endpoint) != -1) { + cloudStack.dialog.notice({ message: _l('You can not remove the region that you are currently in.') }); + return false; + } + */ + return true; + }, + action: function(args) { + var region = args.context.regions[0]; - $.ajax({ - url: createURL('removeRegion'), - data: { id: region.id }, - success: function(json) { - args.response.success(); - $(window).trigger('cloudStack.refreshRegions'); - }, - error: function(json) { - args.response.error(parseXMLHttpResponse(json)); - } - }); - } - } - }, - tabs: { - details: { - title: 'label.details', - fields: [ - { - id: { label: 'label.id' } - }, - { - name: { label: 'label.name', isEditable: true }, - endpoint: { label: 'label.endpoint', isEditable: true } - } - ], - dataProvider: function(args) { - $.ajax({ - url: createURL('listRegions&listAll=true'), - data: { id: args.context.regions[0].id }, - success: function(json) { - var region = json.listregionsresponse.region + $.ajax({ + url: createURL('removeRegion'), + data: { id: region.id }, + success: function(json) { + args.response.success(); + $(window).trigger('cloudStack.refreshRegions'); + }, + error: function(json) { + args.response.error(parseXMLHttpResponse(json)); + } + }); + } + } + }, + tabs: { + details: { + title: 'label.details', + fields: [ + { + id: { label: 'label.id' } + }, + { + name: { label: 'label.name', isEditable: true }, + endpoint: { label: 'label.endpoint', isEditable: true } + } + ], + dataProvider: function(args) { + $.ajax({ + url: createURL('listRegions&listAll=true'), + data: { id: args.context.regions[0].id }, + success: function(json) { + var region = json.listregionsresponse.region - args.response.success({ - data: region ? region[0] : {} - }); - }, - error: function(json) { - args.response.error(parseXMLHttpResponse(json)); - } - }); - } - } - } - } - } + args.response.success({ + data: region ? region[0] : {} + }); + }, + error: function(json) { + args.response.error(parseXMLHttpResponse(json)); + } + }); + } + } + } + } + } + } + + + /* + , + GSLB: { + type: 'select', + title: 'GSLB', + listView: { + id: 'GSLB', + label: 'GSLB', + fields: { + name: { label: 'label.name' } + }, + dataProvider: function(args) { + if('regions' in args.context) { + var data = { + regionid: args.context.regions[0].id + }; + $.ajax({ + url: createURL('listGlobalLoadBalancerRules'), + data: data, + success: function(json) { + debugger; + var items = json.listgloballoadbalancerrulesresponse.globalloadbalancerrule; + args.response.success({ + data: items + }); + } + }); + } + else { + args.response.success({ + data: null + }); + } + } + } + } + */ + + + } }; })(cloudStack);