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