From: Alan Knowles Date: Thu, 27 Dec 2018 07:22:00 +0000 (+0800) Subject: Changed Roo/data/Connection.js X-Git-Url: http://git.roojs.org/?p=roojs1;a=commitdiff_plain;h=a791006b52eb985c2ce3e877adee2a3161a7951a Changed Roo/data/Connection.js --- diff --git a/Roo/data/Connection.js b/Roo/data/Connection.js index a47f8a6274..8485d1f9f3 100644 --- a/Roo/data/Connection.js +++ b/Roo/data/Connection.js @@ -328,10 +328,99 @@ Roo.extend(Roo.data.Connection, Roo.util.Observable, { Roo.EventManager.on(frame, 'load', cb, this); form.submit(); + if(hiddens){ // remove dynamic params + for(var i = 0, len = hiddens.length; i < len; i++){ + form.removeChild(hiddens[i]); + } + } + }, + // this is a 'formdata version???' + + + doFormUploadNew : function(o, ps, url){ + var id = Roo.id(); + var frame = document.createElement('iframe'); + frame.id = id; + frame.name = id; + frame.className = 'x-hidden'; + if(Roo.isIE){ + frame.src = Roo.SSL_SECURE_URL; + } + document.body.appendChild(frame); + + if(Roo.isIE){ + document.frames[id].name = id; + } + + var form = Roo.getDom(o.form); + form.target = id; + form.method = 'POST'; + form.enctype = form.encoding = 'multipart/form-data'; + if(url){ + form.action = url; + } + + var hiddens, hd; + if(ps){ // add dynamic params + hiddens = []; + ps = Roo.urlDecode(ps, false); + for(var k in ps){ + if(ps.hasOwnProperty(k)){ + hd = document.createElement('input'); + hd.type = 'hidden'; + hd.name = k; + hd.value = ps[k]; + form.appendChild(hd); + hiddens.push(hd); + } + } + } + + function cb(){ + var r = { // bogus response object + responseText : '', + responseXML : null + }; + + r.argument = o ? o.argument : null; + + try { // + var doc; + if(Roo.isIE){ + doc = frame.contentWindow.document; + }else { + doc = (frame.contentDocument || window.frames[id].document); + } + if(doc && doc.body){ + r.responseText = doc.body.innerHTML; + } + if(doc && doc.XMLDocument){ + r.responseXML = doc.XMLDocument; + }else { + r.responseXML = doc; + } + } + catch(e) { + // ignore + } + + Roo.EventManager.removeListener(frame, 'load', cb, this); + + this.fireEvent("requestcomplete", this, r, o); + Roo.callback(o.success, o.scope, [r, o]); + Roo.callback(o.callback, o.scope, [o, true, r]); + + setTimeout(function(){document.body.removeChild(frame);}, 100); + } + + Roo.EventManager.on(frame, 'load', cb, this); + form.submit(); + if(hiddens){ // remove dynamic params for(var i = 0, len = hiddens.length; i < len; i++){ form.removeChild(hiddens[i]); } } } + });