You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2005/08/31 17:45:43 UTC

svn commit: r265515 - /cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/resources/js/cforms.js

Author: sylvain
Date: Wed Aug 31 08:45:39 2005
New Revision: 265515

URL: http://svn.apache.org/viewcvs?rev=265515&view=rev
Log:
Port some better error reporting from trunk

Modified:
    cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/resources/js/cforms.js

Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/resources/js/cforms.js
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/resources/js/cforms.js?rev=265515&r1=265514&r2=265515&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/resources/js/cforms.js (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/resources/js/cforms.js Wed Aug 31 08:45:39 2005
@@ -140,24 +140,14 @@
             // Handle browser update directives
             var doc = request.responseXML;
             if (!doc) {
-                alert("no xml answer");
+                BrowserUpdate.handleError("No xml answer", request);
                 return;
             }
         
-           BrowserUpdate.processResponse(doc);
+           BrowserUpdate.processResponse(doc, request);
        }
     } else {
-/*        var str = "";
-        for(prop in request) {
-           str += prop
-           str += " = " 
-           str += request[prop];
-           str += '\n';
-        }
-        alert(str);
-        alert(request.getAllResponseHeaders());
-*/
-        alert("request failed - status: " + request.status);
+        BrowserUpdate.handleError("Request failed - status=" + request.status, request);
     }
 }
 
@@ -248,7 +238,7 @@
 
 BrowserUpdate = {};
 
-BrowserUpdate.processResponse = function(doc) {
+BrowserUpdate.processResponse = function(doc, request) {
     var nodes = doc.documentElement.childNodes;
     for (var i = 0; i < nodes.length; i++) {
         var node = nodes[i];
@@ -264,7 +254,7 @@
             if (handlerFunc) {
                 handlerFunc(node);
             } else {
-                alert("no handler found for " + handler);
+                BrowserUpdate.handleError("No handler found for element " + handler, request);
             }
         }
     }
@@ -276,7 +266,7 @@
            alert("no id found on update element");
            return;
         }    
-        // Get the first child element (the first child not may be some text!)
+        // Get the first child element (the first child may be some text!)
         var firstChild = DOMUtils.firstChildElement(element);
     
         var oldElement = document.getElementById(id);
@@ -298,6 +288,21 @@
         }
     }
 }
+
+BrowserUpdate.handleError = function(message, request) {
+    if (confirm(message + "\nShow server response?")) {
+        var w = window.open(undefined, "Cocoon Error", "location=no");
+        if (w == undefined) {
+            alert("You must allow popups from this server to display the response.");
+        } else {
+	        var doc = w.document;
+	        doc.open();
+	        doc.write(request.responseText);
+	        doc.close();
+	    }
+    }
+}
+
 
 //-------------------------------------------------------------------------------------------------
 // Fader used to highlight page areas that have been updated