Pman.Gnumeric.js
[Pman.Core] / Pman.Request.js
index 13c2ab4..b4db0f0 100644 (file)
@@ -25,20 +25,30 @@ var t = new Pman.Request({
 *       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);
+    
+    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 = '';
+        var res;
         try {
             res = Roo.decode(response.responseText);
             // oops...
@@ -50,28 +60,35 @@ Roo.extend(Pman.Request, Roo.data.Connection, {
             }
             
         } catch(e) {
-            res = { success : false,  errorMsg : response.responseText, errors : true };
+            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;
     },
     
-    handleResponse : function(response){
-       this.transId = false;
-       var options = response.argument.options;
-       response.argument = options ? options.argument : null;
-       this.fireEvent("requestcomplete", this, response, options);
-       
+    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..
-                if (true === Roo.callback(options.failure, options.scope, [res, options])) {
-                    return;
-                }
+                Roo.callback(options.failure, options.scope, [res, options]);
+                return;
             }
             Roo.MessageBox.hide(); // hide any existing messages..
-            Roo.MessageBox.alert("Error", res.errorMsg ? res.errorMsg : "Error Sending");
+            Roo.MessageBox.alert("Error", res && res.errorMsg ?  res.errorMsg : "Error Sending data");
             return;
         }
         Roo.callback(options.success, options.scope, [res, options]);
@@ -83,9 +100,23 @@ Roo.extend(Pman.Request, Roo.data.Connection, {
         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) {
-            Roo.MessageBox.hide(); // hide any existing messages..
-            Roo.MessageBox.alert("Error", "Error Sending" + JSON.stringify(res));
+            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");
+            
         }
     }
-});
\ No newline at end of file
+});