You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2013/04/11 23:22:28 UTC
[05/47] git commit: updated refs/heads/internallb to 3795048
CLOUDSTACK-1910: cloudstack UI - Regions menu - implement create GSLB action.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9a50d2bd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9a50d2bd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9a50d2bd
Branch: refs/heads/internallb
Commit: 9a50d2bd3b592a673d1a4aa1492a8282f5dfd737
Parents: ca8ac08
Author: Jessica Wang <je...@citrix.com>
Authored: Thu Apr 11 11:14:04 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Thu Apr 11 11:14:36 2013 -0700
----------------------------------------------------------------------
ui/scripts/regions.js | 136 +++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 134 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9a50d2bd/ui/scripts/regions.js
----------------------------------------------------------------------
diff --git a/ui/scripts/regions.js b/ui/scripts/regions.js
index 0aaece0..129fc7a 100644
--- a/ui/scripts/regions.js
+++ b/ui/scripts/regions.js
@@ -216,6 +216,139 @@
fields: {
name: { label: 'label.name' }
},
+
+ //???
+ actions: {
+ add: {
+ label: 'Add GSLB',
+
+ messages: {
+ confirm: function(args) {
+ return 'Add GSLB';
+ },
+ notification: function(args) {
+ return 'Add GSLB';
+ }
+ },
+
+ createForm: {
+ title: 'Add GSLB',
+ fields: {
+ name: {
+ label: 'label.name',
+ validation: { required: true }
+ },
+ description: {
+ label: 'label.description'
+ },
+ domainid: {
+ label: 'Domain',
+ select: function(args) {
+ if(isAdmin() || isDomainAdmin()) {
+ $.ajax({
+ url: createURL('listDomains'),
+ data: {
+ listAll: true,
+ details: 'min'
+ },
+ success: function(json) {
+ var array1 = [{id: '', description: ''}];
+ var domains = json.listdomainsresponse.domain;
+ if(domains != null && domains.length > 0) {
+ for(var i = 0; i < domains.length; i++) {
+ array1.push({id: domains[i].id, description: domains[i].path});
+ }
+ }
+ args.response.success({
+ data: array1
+ });
+ }
+ });
+ }
+ else {
+ args.response.success({
+ data: null
+ });
+ }
+ },
+ isHidden: function(args) {
+ if(isAdmin() || isDomainAdmin())
+ return false;
+ else
+ return true;
+ }
+ },
+ account: {
+ label: 'Account',
+ isHidden: function(args) {
+ if(isAdmin() || isDomainAdmin())
+ return false;
+ else
+ return true;
+ }
+ },
+ gslblbmethod: {
+ label: 'Algorithm',
+ select: function(args) {
+ var array1 = [{id: 'roundrobin', description: 'roundrobin'}, {id: 'leastconn', description: 'leastconn'}, {id: 'proximity', description: 'proximity'}];
+ args.response.success({
+ data: array1
+ });
+ }
+ },
+ gslbdomainname: {
+ label: 'Domain Name',
+ validation: { required: true }
+ },
+ gslbservicetype: {
+ label: 'Service Type',
+ select: function(args) {
+ var array1 = [{id: 'tcp', description: 'tcp'}, {id: 'udp', description: 'udp'}];
+ args.response.success({
+ data: array1
+ });
+ },
+ validation: { required: true }
+ }
+ }
+ },
+ action: function(args) {
+ var data = {
+ name: args.data.name,
+ regionid: args.context.regions[0].id,
+ gslblbmethod: args.data.gslblbmethod,
+ gslbdomainname: args.data.gslbdomainname,
+ gslbservicetype: args.data.gslbservicetype
+ };
+ if(args.data.description != null && args.data.description.length > 0)
+ $.extend(data, { description: args.data.description });
+ if(args.data.domainid != null && args.data.domainid.length > 0)
+ $.extend(data, { domainid: args.data.domainid });
+ if(args.data.account != null && args.data.account.length > 0)
+ $.extend(data, { account: args.data.account });
+
+ $.ajax({
+ url: createURL('createGlobalLoadBalancerRule'),
+ data: data,
+ success: function(json) {
+ var item = json.creategloballoadbalancerruleresponse.globalloadbalancerrule;
+ args.response.success({data: item});
+ },
+ error: function(data) {
+ args.response.error(parseXMLHttpResponse(data));
+ }
+ });
+ },
+
+ notification: {
+ poll: function(args) {
+ args.complete();
+ }
+ }
+ }
+ },
+ //???
+
dataProvider: function(args) {
if('regions' in args.context) {
var data = {
@@ -224,8 +357,7 @@
$.ajax({
url: createURL('listGlobalLoadBalancerRules'),
data: data,
- success: function(json) {
- debugger;
+ success: function(json) {
var items = json.listgloballoadbalancerrulesresponse.globalloadbalancerrule;
args.response.success({
data: items