Pman.Download.js
[Pman.Core] / Pman.Download.js
index d892200..d62720a 100644 (file)
@@ -22,7 +22,12 @@ var t = new Pman.Download({
 * @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 {String} doctype (optional) download PDF to new window
-* @cfg {Boolean limit (optional) limit for grid downloads.
+* @cfg {Boolean} limit (optional) limit for grid downloads.
+ * @cfg {String} csvCols  - use '*' to override grid coluns
+ * @cfg {String} csvTitles - use '*' to override grid coluns
+
  
 * @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)
@@ -46,7 +51,7 @@ Pman.Download = function(cfg)
     
     if (this.newWindow && this.method == 'GET') {
             // as ie seems buggy...
-        window.open( cfg.url + '?' + Roo.urlEncode(cfg.params || {}), '_blank');
+        window.open( this.url + '?' + Roo.urlEncode(this.params || {}), '_blank');
         return ; 
         
     }
@@ -256,20 +261,29 @@ Roo.apply(Pman.Download.prototype, {
         this.method = this.grid.ds.proxy.conn.method ;
         var t = this;
         // work out the cols
-        Roo.each(this.grid.cm.config, function(c,i) {
-            t.params['csvCols['+i+']'] = c.dataIndex;
-            t.params['csvTitles['+i+']'] = c.header;
-            
-        });
         
+        if (this.csvCols) {
+            t.params.csvCols = this.csvCols;
+            t.params.csvTitles = this.csvTitles;
+        } else {
+            
+            Roo.each(this.grid.cm.config, function(c,i) {
+                t.params['csvCols['+i+']'] = c.dataIndex;
+                t.params['csvTitles['+i+']'] = c.header;
+                
+            });
+        }
         if (this.grid.loadMask) {
             this.grid.loadMask.onLoad();
         }
         this.params.limit = this.limit;
         
         // do it as a post, as args can get long..
-        this.params._get = 1;
-        this.method = 'POST';
+        
+        this.method = this.method || 'POST';
+        if (this.method  == 'POST') {
+            this.params._get = 1;
+        }
     }
      
 });