Merge branch 'master' of http://git.roojs.com:8081/Pman.Core
[Pman.Core] / Pman.Download.js
index 3303132..34b74d7 100644 (file)
@@ -28,27 +28,28 @@ var t = new Pman.Download({
 
 Pman.Download = function(cfg)
 {
     
+    this.params = {};
     
-    if (cfg.newWindow) {
-            // as ie seems buggy...
-        window.open( cfg.url + '?' + Roo.urlEncode(cfg.params || {}), '_blank');
-        return ; 
-        
-    }
     Roo.apply(this, cfg);
-    
-    
+     
     if (this.grid) {
         
         this.buildFromGrid();
-        
+        Roo.log(this);
     }
     
     
+    if (cfg.newWindow) {
+            // as ie seems buggy...
+        window.open( cfg.url + '?' + Roo.urlEncode(cfg.params || {}), '_blank');
+        return ; 
+        
+    }
+   
+    
     
-    var submit = false;
+    this.submit = false;
     this.createCsvFrame();
     
     var requested = 0;
@@ -57,13 +58,13 @@ Pman.Download = function(cfg)
     
     
     //--- simple method..
-    cfg.method = cfg.method || 'GET';
+    this.method = this.method || 'GET';
     
-    if (cfg.method == 'GET' && !cfg.params) {
+    if (this.method == 'GET' && !this.params) {
         (function() {
-            submit = true;
+            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);
         
        
@@ -76,8 +77,8 @@ Pman.Download = function(cfg)
     var b = Roo.get(document.body);
     this.form = b.createChild({
         tag: 'form',
-        method : cfg.method,
-        action : cfg.url,
+        method : this.method,
+        action : this.url,
         target : this.csvFrame.id,
         enctype : 'multipart/form-data'
 
@@ -85,7 +86,7 @@ Pman.Download = function(cfg)
         
     });
  
-    for(var i in cfg.params) {
+    for(var i in this.params) {
         
         var el = this.form.createChild( {
             ns : 'html',
@@ -93,16 +94,16 @@ Pman.Download = function(cfg)
             
             type: 'hidden',
             name : i,
-            value : cfg.params[i]
+            value : this.params[i]
         });
         
         
     }
     
     (function() {
-        submit = true;
+        this.submit = true;
         this.form.dom.submit();
-        this.cleanup.defer(cfg.timeout || 30000,this);
+        this.cleanup.defer(this.timeout || 30000,this);
     }).defer(100, this);
     
      
@@ -150,10 +151,11 @@ Roo.apply(Pman.Download.prototype, {
        // if (requested < 2) {
        //     return;
         //} // n
+        Roo.log('onload?');
         if (!this.submit) {
-            return;
+            return false;
         }
-        
+        return false;
       
         var frame = this.csvFrame;
         var success  = true; 
@@ -179,7 +181,9 @@ Roo.apply(Pman.Download.prototype, {
             Roo.log(e.toString());
             Roo.log(e);
         }
-        
+        // we can not actually do anything with the frame... as it may actually still be downloading..
+        return true;
+    
         this.cleanup();
         
         // this will never fire.. see 
@@ -188,7 +192,7 @@ Roo.apply(Pman.Download.prototype, {
             
             this.success();
         }
-       
+        return false;
         
 
     },
@@ -196,6 +200,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;
@@ -213,21 +218,23 @@ Roo.apply(Pman.Download.prototype, {
     buildFromGrid : function()
     {
         // get the params from beforeLoad
-        this.grid.ds.fireEvent('beforeload', {
+        this.grid.ds.fireEvent('beforeload', this.grid.ds, {
             params : this.params
             
         });
         this.url = this.grid.ds.proxy.conn.url;
         this.method = this.grid.ds.proxy.conn.method ;
-        
+        var t = this;
         // work out the cols
         Roo.each(this.grid.cm.config, function(c,i) {
-            params['csvCols['+i+']'] = c.dataIndex;
-            params['csvTitles['+i+']'] = c.header;
+            t.params['csvCols['+i+']'] = c.dataIndex;
+            t.params['csvTitles['+i+']'] = c.header;
             
         });
-        
-        
+        if (this.grid.loadMask) {
+            this.grid.loadMask.onLoad();
+        }
+        this.params.limit = 9999;
         
         
     }