cloudstack UI - advanced search - implement advanced search on instance page 
which has filter dropdown in listView.


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

Branch: refs/heads/regions
Commit: 56496a235f2234eafbb2f281cf0ac583204264cd
Parents: c9bd605
Author: Jessica Wang <[email protected]>
Authored: Tue Oct 2 16:37:17 2012 -0700
Committer: Jessica Wang <[email protected]>
Committed: Tue Oct 2 16:38:23 2012 -0700

----------------------------------------------------------------------
 ui/scripts/instances.js |   78 ++++++++++++++++++++++-------------------
 1 files changed, 42 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/56496a23/ui/scripts/instances.js
----------------------------------------------------------------------
diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js
index 3537c6a..6eb18eb 100644
--- a/ui/scripts/instances.js
+++ b/ui/scripts/instances.js
@@ -266,44 +266,50 @@
       },
 
       dataProvider: function(args) {
-        var array1 = [];
-        if(args.filterBy != null) {
-          if(args.filterBy.kind != null) {
-            switch(args.filterBy.kind) {
-            case "all":
-              array1.push("&listAll=true");
-              break;
-            case "mine":
-              if (!args.context.projects) array1.push("&domainid=" + 
g_domainid + "&account=" + g_account);
-              break;
-            case "running":
-              array1.push("&listAll=true&state=Running");
-              break;
-            case "stopped":
-              array1.push("&listAll=true&state=Stopped");
-              break;
-            case "destroyed":
-              array1.push("&listAll=true&state=Destroyed");
-              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);
-              break;
-            }
-          }
-        }
-
-        if("hosts" in args.context)
-          array1.push("&hostid=" + args.context.hosts[0].id);
+                         var data = {};
+                               listViewDataProvider(args, data);               
+                                                                       
+                               if(args.filterBy != null) {     //filter 
dropdown
+                                       if(args.filterBy.kind != null) {
+                                               switch(args.filterBy.kind) {
+                                               case "all":                     
                                                                        
+                                                       break;
+                                               case "mine":
+                                                       if 
(!args.context.projects) {
+                                                         $.extend(data, {
+                                                                 domainid: 
g_domainid, 
+                                                                       
account: g_account
+                                                               });             
+              }                                                                
+                                                       break;
+                                               case "running":
+                                                 $.extend(data, {
+                                                         state: 'Running'
+                                                       });                     
                        
+                                                       break;
+                                               case "stopped":
+                                                 $.extend(data, {
+                                                         state: 'Stopped'
+                                                       });     
+                                                       break;
+                                               case "destroyed":
+                                                 $.extend(data, {
+                                                         state: 'Destroyed'
+                                                       });                     
                                                
+                                                       break;
+                                               }
+                                       }                                       
+                               }
+                                                               
+        if("hosts" in args.context) {          
+                                       $.extend(data, {
+                                         hostid: args.context.hosts[0].id
+                                       });
+                               }
 
         $.ajax({
-          url: createURL("listVirtualMachines&page=" + args.page + 
"&pagesize=" + pageSize + array1.join("")),
-          dataType: "json",
-          async: true,
+          url: createURL('listVirtualMachines'),
+          data: data,          
           success: function(json) {
             var items = json.listvirtualmachinesresponse.virtualmachine;
 

Reply via email to