url: baseURL + '/Images/Download/0/myfile.jpg',
newWindow : false,
params: { .... },
+ doctype: 'pdf'
success : function() {
Roo.MessageBox.alert("File has downloaded");
}
* @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 {String} doctype (optional) download PDF to new window
+* @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)
* @cfg {Roo.grid.Grid} grid (optional) if you want to just download a grid, (without renderers..)
}
- if (cfg.newWindow) {
+ if (this.newWindow && this.method == 'GET') {
// as ie seems buggy...
window.open( cfg.url + '?' + Roo.urlEncode(cfg.params || {}), '_blank');
return ;
(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);
tag: 'form',
method : this.method,
action : this.url,
- target : this.csvFrame.id,
+ target : this.newWindow ? '_new' : this.csvFrame.id,
enctype : 'multipart/form-data'
-
-
-
});
+//
+// if(this.doctype == 'pdf'){
+// this.pdfEmbed = b.createChild({
+// tag: 'embed',
+// src : this.url,
+// pluginspage : 'http://www.adobe.com/products/acrobat/readstep2.html',
+// alt: this.doctype
+// });
+// }
+
for(var i in this.params) {
// private
form : false,
+ limit : 9999,
+
+ newWindow : false,
+
+ method : 'GET',
+
// private..
createCsvFrame: function()
{
-
if (this.csvFrame) {
document.body.removeChild(this.csvFrame);
}
// if (requested < 2) {
// return;
//} // n
+ Roo.log('onload?');
if (!this.submit) {
- return;
+ return false;
}
-
+ return false;
var frame = this.csvFrame;
var success = true;
// private - clean up download elements.
cleanup :function()
{
+ Roo.log('cleanup?');
if (this.form) {
this.form.remove();
this.form= false;
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;
// 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 = 9999;
+ this.params.limit = this.limit;
+ // do it as a post, as args can get long..
+ this.method = this.method || 'POST';
+ if (this.method == 'POST') {
+ this.params._get = 1;
+ }
}
-
-
-
-
-
-
});