Updated Branches:
  refs/heads/vpc c4e2fe7b7 -> 6cbf43e89

CS-15761: Show type of router in list view

Adds a 'type' column to virtual router list views, which is labeled
either 'VPC,' 'Project,' or 'System' [default router].

--This also fixes an issue where project routers were never listed


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/6cbf43e8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/6cbf43e8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/6cbf43e8

Branch: refs/heads/vpc
Commit: 6cbf43e89b9c2399a6655586ecb629cf76727e7d
Parents: c4e2fe7
Author: Brian Federle <[email protected]>
Authored: Tue Jul 31 14:20:10 2012 -0700
Committer: Brian Federle <[email protected]>
Committed: Tue Jul 31 14:20:49 2012 -0700

----------------------------------------------------------------------
 ui/scripts/system.js |  141 ++++++++++++++++++++++++++++++---------------
 1 files changed, 95 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/6cbf43e8/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index b369bec..c76be57 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -21,6 +21,19 @@
   var selectedClusterObj, selectedZoneObj, selectedPublicNetworkObj, 
selectedManagementNetworkObj, selectedPhysicalNetworkObj, 
selectedGuestNetworkObj; 
   var nspMap = {}; //from listNetworkServiceProviders API 
        var nspHardcodingArray = []; //for service providers listView 
(hardcoding, not from listNetworkServiceProviders API) 
+
+  // Add router type to virtual router
+  // -- can be either Project, VPC, or System (standard)
+  var mapRouterType = function(index, router) {
+    var routerType = _l('label.menu.system');
+
+    if (router.projectid) routerType = _l('label.project');
+    if (router.vpcid) routerType = 'VPC';
+
+    return $.extend(router, {
+      routerType: routerType
+    });
+  };
        
   cloudStack.publicIpRangeAccount = {
     dialog: function(args) {      
@@ -1933,6 +1946,9 @@
                   fields: {
                     name: { label: 'label.name' },
                     zonename: { label: 'label.zone' },
+                    routerType: {
+                      label: 'label.type'
+                    },
                     state: {
                       converter: function(str) {
                         // For localization
@@ -1959,35 +1975,36 @@
                                                                                
        }
                                                                                
}
 
+                    var routers = [];
                     $.ajax({
                       url: createURL("listRouters&zoneid=" + 
selectedZoneObj.id + "&listAll=true&page=" + args.page + "&pagesize=" + 
pageSize + array1.join("")),
                       dataType: 'json',
-                                                                               
        data: {
-                                                                               
          forvpc: false
-                                                                               
        },
                       async: true,
                       success: function(json) {
-                        var items = json.listroutersresponse.router;
-                        args.response.success({
-                          actionFilter: routerActionfilter,
-                          data: items
+                        var items = json.listroutersresponse.router ?
+                              json.listroutersresponse.router : [];
+
+                        $(items).map(function(index, item) {
+                          routers.push(item); 
                         });
-                      }
-                    });
 
-                    // Get project routers
-                    $.ajax({
-                      url: createURL("listRouters&zoneid=" + 
selectedZoneObj.id + "&listAll=true&page=" + args.page + "&pagesize=" + 
pageSize + array1.join("") + "&projectid=-1"),
-                      dataType: 'json',
-                      data: {
-                                                                               
          forvpc: false
-                                                                               
        },
-                      async: true,
-                      success: function(json) {
-                        var items = json.listroutersresponse.router;
-                        args.response.success({
-                          actionFilter: routerActionfilter,
-                          data: items
+                        // Get project routers
+                        $.ajax({
+                          url: createURL("listRouters&zoneid=" + 
selectedZoneObj.id + "&listAll=true&page=" + args.page + "&pagesize=" + 
pageSize + array1.join("") + "&projectid=-1"),
+                          dataType: 'json',
+                          async: true,
+                          success: function(json) {
+                            var items = json.listroutersresponse.router ?
+                                  json.listroutersresponse.router : [];
+                            
+                            $(items).map(function(index, item) {
+                              routers.push(item); 
+                            });
+                            args.response.success({
+                              actionFilter: routerActionfilter,
+                              data: $(routers).map(mapRouterType)
+                            });
+                          }
                         });
                       }
                     });
@@ -4575,14 +4592,37 @@
                   var searchByArgs = args.filterBy.search.value.length ?
                     '&name=' + args.filterBy.search.value : '';
 
+                  var routers = [];
                   $.ajax({
-                    url: createURL('listRouters' + searchByArgs),
-                    data: { page: args.page, pageSize: pageSize, listAll: true 
},
-                    success: function (json) {
-                      args.response.success({ data: 
json.listroutersresponse.router });
-                    },
-                    error: function (json) {
-                      args.response.error(parseXMLHttpResponse(json));
+                    url: createURL("listRouters&listAll=true&page=" + 
args.page + "&pagesize=" + pageSize + searchByArgs),
+                    dataType: 'json',
+                    async: true,
+                    success: function(json) {
+                      var items = json.listroutersresponse.router ?
+                            json.listroutersresponse.router : [];
+
+                      $(items).map(function(index, item) {
+                        routers.push(item); 
+                      });
+                      
+                      // Get project routers
+                      $.ajax({
+                        url: createURL("listRouters&listAll=true&page=" + 
args.page + "&pagesize=" + pageSize + "&projectid=-1"),
+                        dataType: 'json',
+                        async: true,
+                        success: function(json) {
+                          var items = json.listroutersresponse.router ?
+                                json.listroutersresponse.router : [];
+                          
+                          $(items).map(function(index, item) {
+                            routers.push(item); 
+                          });
+                          args.response.success({
+                            actionFilter: routerActionfilter,
+                            data: $(routers).map(mapRouterType)
+                          });
+                        }
+                      });
                     }
                   });
                 },
@@ -4623,6 +4663,9 @@
           fields: {
             name: { label: 'label.name' },
             zonename: { label: 'label.zone' },
+            routerType: {
+              label: 'label.type'
+            },
             state: {
               converter: function(str) {
                 // For localization
@@ -4649,29 +4692,35 @@
               }
             }
 
+            var routers = [];
             $.ajax({
               url: createURL("listRouters&zoneid=" + selectedZoneObj.id + 
"&listAll=true&page=" + args.page + "&pagesize=" + pageSize + array1.join("")),
               dataType: 'json',
               async: true,
               success: function(json) {
-                var items = json.listroutersresponse.router;
-                args.response.success({
-                  actionFilter: routerActionfilter,
-                  data: items
-                });
-              }
-            });
+                var items = json.listroutersresponse.router ?
+                      json.listroutersresponse.router : [];
 
-            // Get project routers
-            $.ajax({
-              url: createURL("listRouters&zoneid=" + selectedZoneObj.id + 
"&listAll=true&page=" + args.page + "&pagesize=" + pageSize + array1.join("") + 
"&projectid=-1"),
-              dataType: 'json',
-              async: true,
-              success: function(json) {
-                var items = json.listroutersresponse.router;
-                args.response.success({
-                  actionFilter: routerActionfilter,
-                  data: items
+                $(items).map(function(index, item) {
+                  routers.push(item); 
+                });
+                // Get project routers
+                $.ajax({
+                  url: createURL("listRouters&zoneid=" + selectedZoneObj.id + 
"&listAll=true&page=" + args.page + "&pagesize=" + pageSize + array1.join("") + 
"&projectid=-1"),
+                  dataType: 'json',
+                  async: true,
+                  success: function(json) {
+                    var items = json.listroutersresponse.router ?
+                          json.listroutersresponse.router : [];
+                    
+                    $(items).map(function(index, item) {
+                      routers.push(item); 
+                    });
+                    args.response.success({
+                      actionFilter: routerActionfilter,
+                      data: $(routers).map(mapRouterType)
+                    });
+                  }
                 });
               }
             });

Reply via email to