Pman.Download.js
[Pman.Core] / Pman.Download.js
index 9f76ba3..7680915 100644 (file)
@@ -20,6 +20,8 @@ var t = new Pman.Download({
 * @cfg {String} url     Location to download from.
 * @cfg {String} method     GET or POST (default GET), POST will create a form, and post that into the hidden frame.
 * @cfg {Boolean} newWindow (optional) download to new window
+* @cfg {Boolean limit (optional) limit for grid downloads.
 * @cfg {Function} success (optional) MAY fire on download completed (fails on attachments)..
 * @cfg {Number} timeout (optional) in milliseconds before it gives up (default 30000 = 30s)
 * @cfg {Roo.grid.Grid} grid (optional) if you want to just download a grid, (without renderers..)
@@ -64,7 +66,7 @@ Pman.Download = function(cfg)
         (function() {
             this.submit = true;
             this.csvFrame.src = cfg.url;
-            this.cleanup.defer(cfg.timeout || 30000,this);
+            //this.cleanup.defer(cfg.timeout || 30000,this);
         }).defer(100, this);
         
        
@@ -121,10 +123,14 @@ Roo.apply(Pman.Download.prototype, {
     // private
     form : false,
     
+    limit : 9999,
+    
+    
+    method : 'GET',
+    
     // private..
     createCsvFrame: function()
     {
-        
         if (this.csvFrame) {
             document.body.removeChild(this.csvFrame);
         }
@@ -151,10 +157,11 @@ Roo.apply(Pman.Download.prototype, {
        // if (requested < 2) {
        //     return;
         //} // n
+        Roo.log('onload?');
         if (!this.submit) {
             return false;
         }
-        
+        return false;
       
         var frame = this.csvFrame;
         var success  = true; 
@@ -181,7 +188,7 @@ Roo.apply(Pman.Download.prototype, {
             Roo.log(e);
         }
         // we can not actually do anything with the frame... as it may actually still be downloading..
-        return false;
+        return true;
     
         this.cleanup();
         
@@ -191,7 +198,7 @@ Roo.apply(Pman.Download.prototype, {
             
             this.success();
         }
-       
+        return false;
         
 
     },
@@ -199,6 +206,7 @@ Roo.apply(Pman.Download.prototype, {
     // private - clean up download elements.
     cleanup :function()
     {
+        Roo.log('cleanup?');
         if (this.form) {
             this.form.remove();
             this.form= false;
@@ -216,10 +224,24 @@ Roo.apply(Pman.Download.prototype, {
     buildFromGrid : function()
     {
         // get the params from beforeLoad
-        this.grid.ds.fireEvent('beforeload', this.grid.ds, {
+        var ds = this.grid.ds;
+        ds.fireEvent('beforeload', ds, {
             params : this.params
             
         });
+        
+         if(ds.sortInfo && ds.remoteSort){
+            var pn = ds.paramNames;
+            this.params[pn["sort"]] = ds.sortInfo.field;
+            this.params[pn["dir"]] = ds.sortInfo.direction;
+        }
+        if (ds.multiSort) {
+            var pn = ds.paramNames;
+            this.params[pn["multisort"]] = Roo.encode( { sort : ds.sortToggle, order: ds.sortOrder });
+        }
+        
+        
+        
         this.url = this.grid.ds.proxy.conn.url;
         this.method = this.grid.ds.proxy.conn.method ;
         var t = this;
@@ -229,11 +251,15 @@ Roo.apply(Pman.Download.prototype, {
             t.params['csvTitles['+i+']'] = c.header;
             
         });
+        
         if (this.grid.loadMask) {
             this.grid.loadMask.onLoad();
         }
-        this.params.limit = 9999;
+        this.params.limit = this.limit;
         
+        // do it as a post, as args can get long..
+        this.params._get = 1;
+        this.method = 'POST';
         
     }