Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 250A010DA7 for ; Thu, 21 Nov 2013 22:10:56 +0000 (UTC) Received: (qmail 68339 invoked by uid 500); 21 Nov 2013 22:10:37 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 67985 invoked by uid 500); 21 Nov 2013 22:10:35 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 67269 invoked by uid 99); 21 Nov 2013 22:10:33 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 21 Nov 2013 22:10:33 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 0C4139010DD; Thu, 21 Nov 2013 22:10:32 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: bfederle@apache.org To: commits@cloudstack.apache.org Date: Thu, 21 Nov 2013 22:11:35 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [66/69] [abbrv] System, main routers page: Split into subsections (WIP) http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b4282c21/ui/scripts/system.js ---------------------------------------------------------------------- diff --git a/ui/scripts/system.js b/ui/scripts/system.js index ba875a0..63e0c90 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -7391,417 +7391,425 @@ return listView; }, virtualRouters: function() { - var listView = $.extend(true, {}, cloudStack.sections.system.subsections.virtualRouters.listView, { - actions: { - upgradeRouterToUseNewerTemplate: { - isHeader: true, - - label: 'Upgrade Router to Use Newer Template', - - messages: { - notification: function (args) { - return 'Upgrade Router to Use Newer Template'; - } - }, - - createForm: { - title: 'Upgrade Router to Use Newer Template', - fields: { - zoneid: { - label: 'label.zone', - select: function (args) { - var items = [{ - id: '', - description: '' - }]; - $.ajax({ - url: createURL('listZones'), - data: { - listAll: true - }, - success: function (json) { - var objs = json.listzonesresponse.zone; - if (objs != null) { - for (var i = 0; i < objs.length; i++) { - items.push({ - id: objs[i].id, - description: objs[i].name - }); - } - } - args.response.success({ - data: items - }); - } - }); - } - }, - podid: { - label: 'Pod', - dependsOn: 'zoneid', - select: function (args) { - var items = [{ - id: '', - description: '' - }]; - if (args.zoneid.length > 0) { - $.ajax({ - url: createURL('listPods'), - data: { - zoneid: args.zoneid - }, - success: function (json) { - var objs = json.listpodsresponse.pod; - if (objs != null) { - for (var i = 0; i < objs.length; i++) { - items.push({ - id: objs[i].id, - description: objs[i].name - }); - } - } - args.response.success({ - data: items - }); - } - }); - } else { - args.response.success({ - data: items - }); - } - } - }, - clusterid: { - label: 'label.cluster', - dependsOn: 'podid', - select: function (args) { - var items = [{ - id: '', - description: '' - }]; - if (args.podid.length > 0) { - $.ajax({ - url: createURL('listClusters'), - data: { - podid: args.podid - }, - success: function (json) { - var objs = json.listclustersresponse.cluster; - if (objs != null) { - for (var i = 0; i < objs.length; i++) { - items.push({ - id: objs[i].id, - description: objs[i].name - }); - } - } - args.response.success({ - data: items - }); - } - }); - } else { - args.response.success({ - data: items - }); - } - } - } - } - }, - - action: function (args) { - var data = {}; - if (args.data.clusterid.length > 0) { - $.extend(data, { - clusterid: args.data.clusterid - }); - } else if (args.data.podid.length > 0) { - $.extend(data, { - podid: args.data.podid - }); - } else if (args.data.zoneid.length > 0) { - $.extend(data, { - zoneid: args.data.zoneid - }); - } else { - args.response.error('Please specify a zone, a pod or a cluster.'); - return; - } - - $.ajax({ - url: createURL('upgradeRouterTemplate'), - data: data, - success: function (json) { - //example - /* - json = { - "upgraderoutertemplateresponse": { - "count": 3, - "asyncjobs": [ - { - "jobid": "2d51f1f9-ea39-4871-9512-431f4a65a5f2" - }, - { - "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c" - }, - { - "jobid": "850a3cfd-c265-48f1-880a-f001481fc7f7" - } - ] - } - }; - */ - - var jobs = json.upgraderoutertemplateresponse.asyncjobs; - if (jobs != undefined) { - for (var i = 0; i < jobs.length; i++) { - var jid = jobs[i].jobid; - args.response.success({ - _custom: { - jobId: jid - } - }); - - //example begins - /* - { - "queryasyncjobresultresponse": { - "accountid": "ce5820a8-5099-11e3-80db-3c970e739c3e", - "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", - "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", - "jobstatus": 2, - "jobprocstatus": 0, - "jobresultcode": 530, - "jobresulttype": "object", - "jobresult": { - "errorcode": 530, - "errortext": "Resource [DataCenter:1] is unreachable: Unable to reboot domR, it is not in right state Stopped" - }, - "created": "2013-11-19T11:41:40-0800", - "jobid": "2d51f1f9-ea39-4871-9512-431f4a65a5f2" - } - } - { - "queryasyncjobresultresponse": { - "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86", - "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", - "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", - "jobstatus": 0, - "jobprocstatus": 0, - "jobresultcode": 0, - "jobinstancetype": "DomainRouter", - "jobinstanceid": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c", - "created": "2013-11-19T11:41:40-0800", - "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c" - } - } - { - "queryasyncjobresultresponse": { - "accountid": "6b5334a2-1c0e-46e0-b4d9-524698549f08", - "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", - "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", - "jobstatus": 2, - "jobprocstatus": 0, - "jobresultcode": 530, - "jobresulttype": "object", - "jobresult": { - "errorcode": 530, - "errortext": "Resource [DataCenter:1] is unreachable: Unable to reboot domR, it is not in right state Starting" - }, - "created": "2013-11-19T11:41:40-0800", - "jobid": "850a3cfd-c265-48f1-880a-f001481fc7f7" - } - } - - - { - "queryasyncjobresultresponse": { - "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86", - "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", - "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", - "jobstatus": 0, - "jobprocstatus": 0, - "jobresultcode": 0, - "jobinstancetype": "DomainRouter", - "jobinstanceid": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c", - "created": "2013-11-19T11:41:40-0800", - "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c" - } - } - { - "queryasyncjobresultresponse": { - "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86", - "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", - "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", - "jobstatus": 0, - "jobprocstatus": 0, - "jobresultcode": 0, - "jobinstancetype": "DomainRouter", - "jobinstanceid": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c", - "created": "2013-11-19T11:41:40-0800", - "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c" - } - } - { - "queryasyncjobresultresponse": { - "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86", - "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", - "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", - "jobstatus": 1, - "jobprocstatus": 0, - "jobresultcode": 0, - "jobresulttype": "object", - "jobresult": { - "router": { - "id": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c", - "zoneid": "3bfdd7d1-134a-4d75-8621-0ccfc8641660", - "zonename": "jw-adv", - "dns1": "8.8.8.8", - "gateway": "10.223.67.1", - "name": "r-6-VM", - "linklocalip": "169.254.2.29", - "linklocalmacaddress": "0e:00:a9:fe:02:1d", - "linklocalnetmask": "255.255.0.0", - "linklocalnetworkid": "4a02a05f-1312-484a-a82b-246a86ed6949", - "publicip": "10.223.67.6", - "publicmacaddress": "06:8d:22:00:00:18", - "publicnetmask": "255.255.255.0", - "publicnetworkid": "e7056c3c-2c7f-4e84-909e-af288ae170e9", - "templateid": "cd70f70a-5099-11e3-80db-3c970e739c3e", - "created": "2013-11-19T11:36:04-0800", - "state": "Running", - "account": "aaa_admin", - "domainid": "b95a5b02-e45d-4971-b0d8-d1620f7bf44e", - "domain": "aaa", - "serviceofferingid": "7dd7687c-01f0-4a14-846e-8e46067a8ff9", - "serviceofferingname": "System Offering For Software Router", - "isredundantrouter": false, - "redundantstate": "UNKNOWN", - "version": "3.0", - "role": "VIRTUAL_ROUTER", - "nic": [ - { - "id": "d41bf67e-1d58-4ec9-bf61-41903140cc53", - "networkid": "e7056c3c-2c7f-4e84-909e-af288ae170e9", - "netmask": "255.255.255.0", - "gateway": "10.223.67.1", - "ipaddress": "10.223.67.6", - "isolationuri": "vlan://159", - "broadcasturi": "vlan://159", - "traffictype": "Public", - "isdefault": true, - "macaddress": "06:8d:22:00:00:18" - }, - { - "id": "a6d1f6ac-fc45-474e-b372-3571e639fa8e", - "networkid": "4a02a05f-1312-484a-a82b-246a86ed6949", - "netmask": "255.255.0.0", - "gateway": "169.254.0.1", - "ipaddress": "169.254.2.29", - "traffictype": "Control", - "isdefault": false, - "macaddress": "0e:00:a9:fe:02:1d" - } - ], - "requiresupgrade": true, - "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c", - "jobstatus": 0 - } - }, - "created": "2013-11-19T11:41:40-0800", - "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c" - } - } - */ - //example ends - } - } - } - }); - }, - notification: { - poll: pollAsyncJobResult - } - } - }, - - dataProvider: function(args) { - var data = {}; - listViewDataProvider(args, data); - - var routers = []; - - //get account-owned routers - $.ajax({ - url: createURL('listRouters'), - data: $.extend(data,{ - listAll: true - }), - async: false, - success: function(json) { - var items = json.listroutersresponse.router ? json.listroutersresponse.router : []; - $(items).map(function(index, item) { - routers.push(item); - }); - - //get project-owned routers - var toSearchByProjectid = true; - if (args.filterBy != null) { - if (args.filterBy.advSearch != null && typeof(args.filterBy.advSearch) == "object") { //advanced search - if ('account' in args.filterBy.advSearch && args.filterBy.advSearch.account.length > 0) { //if account is specified in advanced search, don't search project-owned routers - toSearchByProjectid = false; //since account and projectid can't be specified together - } - } - } - if (toSearchByProjectid) { - $.ajax({ - url: createURL('listRouters'), - data: $.extend(data,{ - listAll: true, - projectid: -1 - }), - async: false, - success: function(json) { - var items = json.listroutersresponse.router ? json.listroutersresponse.router : []; - $(items).map(function(index, item) { - routers.push(item); - }); - } - }); - } - } - }); + var listView = $.extend(true, {}, cloudStack.sections.system.subsections.virtualRouters, { + //??????? + sections: { + virtualRouterNoGrouping: { + listView: { + actions: { + upgradeRouterToUseNewerTemplate: { + isHeader: true, - args.response.success({ - actionFilter: routerActionfilter, - data: $(routers).map(mapRouterType) - }); - }, + label: 'Upgrade Router to Use Newer Template', - detailView: { - updateContext: function(args) { - var zone; + messages: { + notification: function (args) { + return 'Upgrade Router to Use Newer Template'; + } + }, - $.ajax({ - url: createURL('listZones'), - data: { - id: args.context.routers[0].zoneid + createForm: { + title: 'Upgrade Router to Use Newer Template', + fields: { + zoneid: { + label: 'label.zone', + select: function (args) { + var items = [{ + id: '', + description: '' + }]; + $.ajax({ + url: createURL('listZones'), + data: { + listAll: true + }, + success: function (json) { + var objs = json.listzonesresponse.zone; + if (objs != null) { + for (var i = 0; i < objs.length; i++) { + items.push({ + id: objs[i].id, + description: objs[i].name + }); + } + } + args.response.success({ + data: items + }); + } + }); + } + }, + podid: { + label: 'Pod', + dependsOn: 'zoneid', + select: function (args) { + var items = [{ + id: '', + description: '' + }]; + if (args.zoneid.length > 0) { + $.ajax({ + url: createURL('listPods'), + data: { + zoneid: args.zoneid + }, + success: function (json) { + var objs = json.listpodsresponse.pod; + if (objs != null) { + for (var i = 0; i < objs.length; i++) { + items.push({ + id: objs[i].id, + description: objs[i].name + }); + } + } + args.response.success({ + data: items + }); + } + }); + } else { + args.response.success({ + data: items + }); + } + } + }, + clusterid: { + label: 'label.cluster', + dependsOn: 'podid', + select: function (args) { + var items = [{ + id: '', + description: '' + }]; + if (args.podid.length > 0) { + $.ajax({ + url: createURL('listClusters'), + data: { + podid: args.podid + }, + success: function (json) { + var objs = json.listclustersresponse.cluster; + if (objs != null) { + for (var i = 0; i < objs.length; i++) { + items.push({ + id: objs[i].id, + description: objs[i].name + }); + } + } + args.response.success({ + data: items + }); + } + }); + } else { + args.response.success({ + data: items + }); + } + } + } + } + }, + + action: function (args) { + var data = {}; + if (args.data.clusterid.length > 0) { + $.extend(data, { + clusterid: args.data.clusterid + }); + } else if (args.data.podid.length > 0) { + $.extend(data, { + podid: args.data.podid + }); + } else if (args.data.zoneid.length > 0) { + $.extend(data, { + zoneid: args.data.zoneid + }); + } else { + args.response.error('Please specify a zone, a pod or a cluster.'); + return; + } + + $.ajax({ + url: createURL('upgradeRouterTemplate'), + data: data, + success: function (json) { + //example + /* + json = { + "upgraderoutertemplateresponse": { + "count": 3, + "asyncjobs": [ + { + "jobid": "2d51f1f9-ea39-4871-9512-431f4a65a5f2" + }, + { + "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c" + }, + { + "jobid": "850a3cfd-c265-48f1-880a-f001481fc7f7" + } + ] + } + }; + */ + + var jobs = json.upgraderoutertemplateresponse.asyncjobs; + if (jobs != undefined) { + for (var i = 0; i < jobs.length; i++) { + var jid = jobs[i].jobid; + args.response.success({ + _custom: { + jobId: jid + } + }); + + //example begins + /* + { + "queryasyncjobresultresponse": { + "accountid": "ce5820a8-5099-11e3-80db-3c970e739c3e", + "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", + "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", + "jobstatus": 2, + "jobprocstatus": 0, + "jobresultcode": 530, + "jobresulttype": "object", + "jobresult": { + "errorcode": 530, + "errortext": "Resource [DataCenter:1] is unreachable: Unable to reboot domR, it is not in right state Stopped" + }, + "created": "2013-11-19T11:41:40-0800", + "jobid": "2d51f1f9-ea39-4871-9512-431f4a65a5f2" + } + } + { + "queryasyncjobresultresponse": { + "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86", + "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", + "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", + "jobstatus": 0, + "jobprocstatus": 0, + "jobresultcode": 0, + "jobinstancetype": "DomainRouter", + "jobinstanceid": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c", + "created": "2013-11-19T11:41:40-0800", + "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c" + } + } + { + "queryasyncjobresultresponse": { + "accountid": "6b5334a2-1c0e-46e0-b4d9-524698549f08", + "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", + "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", + "jobstatus": 2, + "jobprocstatus": 0, + "jobresultcode": 530, + "jobresulttype": "object", + "jobresult": { + "errorcode": 530, + "errortext": "Resource [DataCenter:1] is unreachable: Unable to reboot domR, it is not in right state Starting" + }, + "created": "2013-11-19T11:41:40-0800", + "jobid": "850a3cfd-c265-48f1-880a-f001481fc7f7" + } + } + + + { + "queryasyncjobresultresponse": { + "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86", + "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", + "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", + "jobstatus": 0, + "jobprocstatus": 0, + "jobresultcode": 0, + "jobinstancetype": "DomainRouter", + "jobinstanceid": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c", + "created": "2013-11-19T11:41:40-0800", + "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c" + } + } + { + "queryasyncjobresultresponse": { + "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86", + "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", + "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", + "jobstatus": 0, + "jobprocstatus": 0, + "jobresultcode": 0, + "jobinstancetype": "DomainRouter", + "jobinstanceid": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c", + "created": "2013-11-19T11:41:40-0800", + "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c" + } + } + { + "queryasyncjobresultresponse": { + "accountid": "9b0ea3b4-a699-431c-932b-570388ef7b86", + "userid": "ce58353e-5099-11e3-80db-3c970e739c3e", + "cmd": "org.apache.cloudstack.api.command.admin.router.RebootRouterCmd", + "jobstatus": 1, + "jobprocstatus": 0, + "jobresultcode": 0, + "jobresulttype": "object", + "jobresult": { + "router": { + "id": "d6e625ea-76f9-4c35-9f89-0998a04a3b9c", + "zoneid": "3bfdd7d1-134a-4d75-8621-0ccfc8641660", + "zonename": "jw-adv", + "dns1": "8.8.8.8", + "gateway": "10.223.67.1", + "name": "r-6-VM", + "linklocalip": "169.254.2.29", + "linklocalmacaddress": "0e:00:a9:fe:02:1d", + "linklocalnetmask": "255.255.0.0", + "linklocalnetworkid": "4a02a05f-1312-484a-a82b-246a86ed6949", + "publicip": "10.223.67.6", + "publicmacaddress": "06:8d:22:00:00:18", + "publicnetmask": "255.255.255.0", + "publicnetworkid": "e7056c3c-2c7f-4e84-909e-af288ae170e9", + "templateid": "cd70f70a-5099-11e3-80db-3c970e739c3e", + "created": "2013-11-19T11:36:04-0800", + "state": "Running", + "account": "aaa_admin", + "domainid": "b95a5b02-e45d-4971-b0d8-d1620f7bf44e", + "domain": "aaa", + "serviceofferingid": "7dd7687c-01f0-4a14-846e-8e46067a8ff9", + "serviceofferingname": "System Offering For Software Router", + "isredundantrouter": false, + "redundantstate": "UNKNOWN", + "version": "3.0", + "role": "VIRTUAL_ROUTER", + "nic": [ + { + "id": "d41bf67e-1d58-4ec9-bf61-41903140cc53", + "networkid": "e7056c3c-2c7f-4e84-909e-af288ae170e9", + "netmask": "255.255.255.0", + "gateway": "10.223.67.1", + "ipaddress": "10.223.67.6", + "isolationuri": "vlan://159", + "broadcasturi": "vlan://159", + "traffictype": "Public", + "isdefault": true, + "macaddress": "06:8d:22:00:00:18" + }, + { + "id": "a6d1f6ac-fc45-474e-b372-3571e639fa8e", + "networkid": "4a02a05f-1312-484a-a82b-246a86ed6949", + "netmask": "255.255.0.0", + "gateway": "169.254.0.1", + "ipaddress": "169.254.2.29", + "traffictype": "Control", + "isdefault": false, + "macaddress": "0e:00:a9:fe:02:1d" + } + ], + "requiresupgrade": true, + "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c", + "jobstatus": 0 + } + }, + "created": "2013-11-19T11:41:40-0800", + "jobid": "d66fa7ef-c91f-425f-b820-2f8ff2a0da8c" + } + } + */ + //example ends + } + } + } + }); + }, + notification: { + poll: pollAsyncJobResult + } + } }, - async: false, - success: function(json) { - zone = json.listzonesresponse.zone[0]; - } - }); - selectedZoneObj = zone; + dataProvider: function(args) { + var data = {}; + listViewDataProvider(args, data); - return { - zones: [zone] - }; + var routers = []; + + //get account-owned routers + $.ajax({ + url: createURL('listRouters'), + data: $.extend(data,{ + listAll: true + }), + async: false, + success: function(json) { + var items = json.listroutersresponse.router ? json.listroutersresponse.router : []; + $(items).map(function(index, item) { + routers.push(item); + }); + + //get project-owned routers + var toSearchByProjectid = true; + if (args.filterBy != null) { + if (args.filterBy.advSearch != null && typeof(args.filterBy.advSearch) == "object") { //advanced search + if ('account' in args.filterBy.advSearch && args.filterBy.advSearch.account.length > 0) { //if account is specified in advanced search, don't search project-owned routers + toSearchByProjectid = false; //since account and projectid can't be specified together + } + } + } + if (toSearchByProjectid) { + $.ajax({ + url: createURL('listRouters'), + data: $.extend(data,{ + listAll: true, + projectid: -1 + }), + async: false, + 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) + }); + }, + + detailView: { + updateContext: function(args) { + var zone; + + $.ajax({ + url: createURL('listZones'), + data: { + id: args.context.routers[0].zoneid + }, + async: false, + success: function(json) { + zone = json.listzonesresponse.zone[0]; + } + }); + + selectedZoneObj = zone; + + return { + zones: [zone] + }; + } + } + } } } + //??????? }); return listView; @@ -7882,726 +7890,1492 @@ }), subsections: { virtualRouters: { - listView: { - label: 'label.virtual.appliances', - id: 'routers', - fields: { - name: { - label: 'label.name' - }, - zonename: { - label: 'label.zone' - }, - routerType: { - label: 'label.type' - }, - state: { - converter: function(str) { - // For localization - return str; - }, - label: 'label.status', - indicator: { - 'Running': 'on', - 'Stopped': 'off', - 'Error': 'off' - } - } - }, - - advSearchFields: { - name: { - label: 'Name' - }, - zoneid: { - label: 'Zone', - select: function(args) { - $.ajax({ - url: createURL('listZones'), - data: { - listAll: true + sectionSelect: { + label: 'label.select-view' + }, + sections: { + routerNoGroup: { + id: 'routers', + type: 'select', + title: '(no grouping)', + listView: { + id: 'routers', + label: 'label.virtual.appliances', + fields: { + name: { + label: 'label.name' + }, + zonename: { + label: 'label.zone' + }, + routerType: { + label: 'label.type' + }, + state: { + converter: function(str) { + // For localization + return str; }, - success: function(json) { - var zones = json.listzonesresponse.zone ? json.listzonesresponse.zone : []; - - args.response.success({ - data: $.map(zones, function(zone) { - return { - id: zone.id, - description: zone.name - }; - }) - }); - } - }); - } - }, - podid: { - label: 'Pod', - dependsOn: 'zoneid', - select: function (args) { - $.ajax({ - url: createURL("listPods&zoneid=" + args.zoneid), - dataType: "json", - async: true, - success: function (json) { - var pods = json.listpodsresponse.pod ? json.listpodsresponse.pod : []; - args.response.success({ - data: $.map(pods, function(pod) { - return { - id: pod.id, - description: pod.name - }; - }) - }); - } - }); - } - }, - clusterid: { - label: 'label.cluster', - dependsOn: 'podid', - select: function(args) { - $.ajax({ - url: createURL("listClusters&podid=" + args.podid), - dataType: "json", - async: false, - success: function(json) { - var clusters = json.listclustersresponse.cluster ? json.listclustersresponse.cluster : []; - args.response.success({ - data: $.map(clusters, function(cluster) { - return { - id: cluster.id, - description: cluster.name - }; - }) - }); + label: 'label.status', + indicator: { + 'Running': 'on', + 'Stopped': 'off', + 'Error': 'off' } - }); - } - }, - 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; - } - } - }, - - dataProvider: function(args) { - var array1 = []; - if (args.filterBy != null) { - if (args.filterBy.search != null && args.filterBy.search.by != null && args.filterBy.search.value != null) { - switch (args.filterBy.search.by) { - case "name": - if (args.filterBy.search.value.length > 0) - array1.push("&keyword=" + args.filterBy.search.value); - break; - } - } - } - - var data2 = { - forvpc: false - }; - var routers = []; - $.ajax({ - url: createURL("listRouters&zoneid=" + selectedZoneObj.id + "&listAll=true&page=" + args.page + "&pagesize=" + pageSize + array1.join("")), - data: data2, - success: function(json) { - var items = json.listroutersresponse.router ? - json.listroutersresponse.router : []; + advSearchFields: { + name: { + label: 'Name' + }, + zoneid: { + label: 'Zone', + select: function(args) { + $.ajax({ + url: createURL('listZones'), + data: { + listAll: true + }, + success: function(json) { + var zones = json.listzonesresponse.zone ? json.listzonesresponse.zone : []; - $(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"), - data: data2, - success: function(json) { - var items = json.listroutersresponse.router ? - json.listroutersresponse.router : []; - - $(items).map(function(index, item) { - routers.push(item); + args.response.success({ + data: $.map(zones, function(zone) { + return { + id: zone.id, + description: zone.name + }; + }) + }); + } }); - args.response.success({ - actionFilter: routerActionfilter, - data: $(routers).map(mapRouterType) + } + }, + podid: { + label: 'Pod', + dependsOn: 'zoneid', + select: function (args) { + $.ajax({ + url: createURL("listPods&zoneid=" + args.zoneid), + dataType: "json", + async: true, + success: function (json) { + var pods = json.listpodsresponse.pod ? json.listpodsresponse.pod : []; + args.response.success({ + data: $.map(pods, function(pod) { + return { + id: pod.id, + description: pod.name + }; + }) + }); + } }); } - }); - } -