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);

Reply via email to