X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=Pman.Request.js;h=b4db0f0783dd2c3c096a2fea9cc96d53ec154817;hp=a8dc675009b0fe9721aa2c480b303c8313939095;hb=refs%2Fheads%2Fwip_edward_T5851_download_old_offer_sheet;hpb=36cf106a83a07dc3f1a26393ccaeb1eed280a855 diff --git a/Pman.Request.js b/Pman.Request.js index a8dc6750..b4db0f07 100644 --- a/Pman.Request.js +++ b/Pman.Request.js @@ -8,12 +8,11 @@ var t = new Pman.Request({ url: baseURL + '/Images/Download/0/myfile.jpg', params: { .... }, - success : function(data) { - - }, - failure : function () { - - } + success : function(res) { + Roo.log(res.data); + Roo.log(res.total); + .... + } }); @@ -22,19 +21,102 @@ var t = new Pman.Request({ * @param {Object} cfg Configuration object. * @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 {Object/String/Function} (Optional) An object containing properties which are used as parameters to the +* @cfg {Object/String/Function} params (Optional) An object containing properties which are used as parameters to the * request, a url encoded string or a function to call to get either. -* +* @cfg {Function} success called with ( JSON decoded data of the data.. ) +* @cfg {Function} success called with ( JSON decoded data of the data.. ) +* @cfg {Boolean} showFailureDialog (true|false) default true */ Pman.Request = function(config){ Pman.Request.superclass.constructor.call(this, config); - config.failure = typeof(config.failure) == 'undefined' ? this.failure : config.failure; + + if (this.mask) { + this.maskEl = this.maskEl || Roo.get(document.body); + Roo.get(this.maskEl).mask(this.mask); + + } this.request(config); + } Roo.extend(Pman.Request, Roo.data.Connection, { + // private + showFailureDialog : true, + processResponse : function(response) { + // convert the Roo Connection response into JSON data. + + var res; + try { + res = Roo.decode(response.responseText); + // oops... + if (typeof(res) != 'object') { + res = { success : false, errorMsg : res, errors : true }; + } + if (typeof(res.success) == 'undefined') { + res.success = false; + } + + } catch(e) { + res = { success : false, errorMsg : response.responseText || Roo.encode(response), errors : true }; + } + //Roo.log(response.responseText); + if (!res.success && !res.errorMsg) { + res.errorMsg = Roo.encode(response); + } + return res; + }, -}); \ No newline at end of file + handleResponse : function(response) + { + this.transId = false; + var options = response.argument.options; + response.argument = options ? options.argument : null; + this.fireEvent("requestcomplete", this, response, options); + + if (this.mask && this.maskEl) { + Roo.get(this.maskEl).unmask(true); + } + var res = this.processResponse(response); + + if (!res.success) { // error! + if (options.failure) { + // failure is handled... - do not show error.. + Roo.callback(options.failure, options.scope, [res, options]); + return; + } + Roo.MessageBox.hide(); // hide any existing messages.. + Roo.MessageBox.alert("Error", res && res.errorMsg ? res.errorMsg : "Error Sending data"); + return; + } + Roo.callback(options.success, options.scope, [res, options]); + + }, + handleFailure : function(response, e){ + this.transId = false; + var options = response.argument.options; + response.argument = options ? options.argument : null; + this.fireEvent("requestexception", this, response, options, e); + var res = Roo.callback(options.failure, options.scope, [response, options]); + if (this.mask && this.maskEl) { + Roo.get(this.maskEl).unmask(true); + } + if(!this.showFailureDialog){ + return; + } + if (res !== true) { + var decode = this.processResponse(response); + Roo.log(decode); + + if (Roo.MessageBox.isVisible()) { + alert(decode && decode.errorMsg ? decode.errorMsg : "Error Sending data - return true from failure to remove message"); + return; + } + + Roo.MessageBox.alert("Error", decode && decode.errorMsg ? decode.errorMsg : "Error Sending data"); + + } + } +});