Updated Branches: refs/heads/master 2a0f2e01f -> 5dc1d468f
cloudstack UI - advanced search - implement advanced search on template page. Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/5dc1d468 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/5dc1d468 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/5dc1d468 Branch: refs/heads/master Commit: 5dc1d468fe8ee045ec8a5033b4a33b2ccd4c866b Parents: 2a0f2e0 Author: Jessica Wang <[email protected]> Authored: Wed Oct 3 15:39:09 2012 -0700 Committer: Jessica Wang <[email protected]> Committed: Wed Oct 3 15:40:26 2012 -0700 ---------------------------------------------------------------------- ui/scripts/templates.js | 71 ++++++++++++++++++++++++++++++------------ 1 files changed, 51 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5dc1d468/ui/scripts/templates.js ---------------------------------------------------------------------- diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js index 7a99d79..efb1b6d 100644 --- a/ui/scripts/templates.js +++ b/ui/scripts/templates.js @@ -48,6 +48,36 @@ zonename: { label: 'label.zone' }, hypervisor: { label: 'label.hypervisor' } }, + + 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; + + args.response.success({ + data: $.map(zones, function(zone) { + return { + id: zone.id, + description: zone.name + }; + }) + }); + } + }); + } + }, + tagKey: { label: 'Tag Key' }, + tagValue: { label: 'Tag Value' } + }, + reorder: cloudStack.api.actions.sort('updateTemplate', 'templates'), actions: { add: { @@ -301,43 +331,44 @@ } }, - dataProvider: function(args) { - var array1 = []; + dataProvider: function(args) { + var data = {}; + listViewDataProvider(args, data); + var ignoreProject = false; - if(args.filterBy != null) { + if(args.filterBy != null) { //filter dropdown if(args.filterBy.kind != null) { switch(args.filterBy.kind) { case "all": ignoreProject = true; - array1.push("&templatefilter=all"); + $.extend(data, { + templatefilter: 'all' + }); break; case "mine": - array1.push("&templatefilter=self"); + $.extend(data, { + templatefilter: 'self' + }); break; case "featured": ignoreProject = true; - array1.push("&templatefilter=featured"); + $.extend(data, { + templatefilter: 'featured' + }); break; case "community": ignoreProject = true; - array1.push("&templatefilter=community"); - break; - } - } - 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); + $.extend(data, { + templatefilter: 'community' + }); break; } - } + } } + $.ajax({ - url: createURL("listTemplates&page=" + args.page + "&pagesize=" + pageSize + array1.join(""), - { ignoreProject: ignoreProject }), - dataType: "json", - async: true, + url: createURL('listTemplates', { ignoreProject: ignoreProject }), + data: data, success: function(json) { var items = json.listtemplatesresponse.template; args.response.success({
