Pman.Request.js
authorAlan Knowles <alan@akbkhome.com>
Mon, 13 Sep 2010 04:54:32 +0000 (12:54 +0800)
committerAlan Knowles <alan@akbkhome.com>
Mon, 13 Sep 2010 04:54:32 +0000 (12:54 +0800)
Pman.Request.js

index a8dc675..fc29e72 100644 (file)
@@ -30,11 +30,61 @@ var t = new Pman.Request({
 Pman.Request = function(config){
     
     Pman.Request.superclass.constructor.call(this, config);
-    config.failure  = typeof(config.failure) == 'undefined' ? this.failure : config.failure;
     this.request(config);
 }
 
 Roo.extend(Pman.Request, Roo.data.Connection, {
     
+    processResponse : function(response) {
+        
+        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, errors : true };
+        }
+        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);
+       
+        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.MessageBox.hide(); // hide any existing messages..
+            Roo.MessageBox.alert("Error", res.errorMsg ? res.errorMsg : "Error Sending");
+            return;
+        }
+        Roo.callback(options.success, options.scope, [res.data, 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);
+        Roo.callback(options.failure, options.scope, [response, options]);
+        Roo.callback(options.callback, options.scope, [options, false, response]);
+        if (!options.failure) {
+            
+        }
+    }
 });
\ No newline at end of file