Updated Branches:
  refs/heads/master d1bc54fc8 -> 45360b7a5

cloudstack UI - advanced search - introduce new property "advSearchFields" to 
lsitViewData.


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

Branch: refs/heads/master
Commit: 45360b7a576445debce3e3a66bbc8cf5cf42e99f
Parents: d1bc54f
Author: Jessica Wang <[email protected]>
Authored: Wed Sep 26 15:14:18 2012 -0700
Committer: Jessica Wang <[email protected]>
Committed: Wed Sep 26 15:17:00 2012 -0700

----------------------------------------------------------------------
 ui/scripts/storage.js             |   31 +++++++++++++++++++++++++++++--
 ui/scripts/ui/widgets/listView.js |    6 ++----
 2 files changed, 31 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/45360b7a/ui/scripts/storage.js
----------------------------------------------------------------------
diff --git a/ui/scripts/storage.js b/ui/scripts/storage.js
index 7d6a963..418fe36 100644
--- a/ui/scripts/storage.js
+++ b/ui/scripts/storage.js
@@ -49,6 +49,32 @@
                                                }
                                                */
           },
+                                       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
+                                                                               
                };
+                                                                               
        })
+                                                                               
});
+                                                                       }
+                                                               });
+                                                       }                       
                        
+                                               }
+                                       },
 
           // List view actions
           actions: {
@@ -270,11 +296,12 @@
           },
 
           dataProvider: function(args) {
-            var array1 = [];
+            var array1 = [];                                           
             if(args.filterBy != null) {                                        
                                                  if(args.filterBy.advSearch != 
null && typeof(args.filterBy.advSearch) == "object") {
                                                          for(var key in 
args.filterBy.advSearch) {
-                                                                 
array1.push("&" + key + "=" + args.filterBy.advSearch[key]);
+                                                                 
if(args.filterBy.advSearch[key] != null && args.filterBy.advSearch[key].length 
> 0)
+                                                                   
array1.push("&" + key + "=" + args.filterBy.advSearch[key]);
                                                                }
                                                        }                       
                        
               else if(args.filterBy.search != null && args.filterBy.search.by 
!= null && args.filterBy.search.value != null) {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/45360b7a/ui/scripts/ui/widgets/listView.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/listView.js 
b/ui/scripts/ui/widgets/listView.js
index e578120..883e86d 100644
--- a/ui/scripts/ui/widgets/listView.js
+++ b/ui/scripts/ui/widgets/listView.js
@@ -1390,13 +1390,11 @@
       );
     };
                                
-    $listView.find('.button.search#advanced_search').bind('click', 
function(event) {                   
+    $listView.find('.button.search#advanced_search').bind('click', 
function(event) {   
                        cloudStack.dialog.createForm({
                                form: {
                                        title: 'Advanced Search',               
                        
-                                       fields: {
-            name: { label: 'Name' }
-                                       }
+                                       fields: listViewData.advSearchFields
                                },
                                after: function(args) {                         
  
                                        advancedSearch(args);                   
                

Reply via email to