Unicode errors in filebrowser. Refs #372.
[redakcja.git] / platforma / static / js / app.js
index e8b439d..e870a38 100644 (file)
@@ -183,23 +183,54 @@ Editor.Object = Class.extend({
 // Handle JSON error responses in uniform way
 function parseXHRError(response)
 {
 // Handle JSON error responses in uniform way
 function parseXHRError(response)
 {
-    var message = ""
+    var message = "";
+    var level = "";
+    
     try {
       var json = $.evalJSON(response.responseText);
 
       if(json.reason == 'xml-parse-error') {
     try {
       var json = $.evalJSON(response.responseText);
 
       if(json.reason == 'xml-parse-error') {
-          message = json_response.message.replace(/(line\s+)(\d+)(\s+)/i,
+          message = json.message.replace(/(line\s+)(\d+)(\s+)/i,
             "<a class='xml-editor-ref' href='#xml-$2-1'>$1$2$3</a>");
 
           message = message.replace(/(line\s+)(\d+)(\,\s*column\s+)(\d+)/i,
             "<a class='xml-editor-ref' href='#xml-$2-$4'>$1$2$3$4</a>");
             "<a class='xml-editor-ref' href='#xml-$2-1'>$1$2$3</a>");
 
           message = message.replace(/(line\s+)(\d+)(\,\s*column\s+)(\d+)/i,
             "<a class='xml-editor-ref' href='#xml-$2-$4'>$1$2$3$4</a>");
+
+          level = "warning";
+      }
+      else if(json.reason == 'xml-non-valid') {
+          message = json.message;
+          level = "warning";
+      }
+      else {
+         message = json.message || json.reason || "Nieznany błąd :((";
+         level = "error";
       }
       }
-      message = json_response.message || json_response.reason || "Nieznany błąd :((";
     } catch(e) {
         // not a valid JSON response
     } catch(e) {
         // not a valid JSON response
-        message = response.statusText;
+        message = response.statusText || 'Brak połączenia z serwerem';
+        level = "error";
     }
     }
-    return message;
+    
+    return {error_message: message, error_level: level};
+}
+
+function parseXHRResponse(xhr) {
+    var response = {}
+    
+    if(xhr.status >= 200 && xhr.status < 300) 
+    {
+        response.success = true;
+        try {
+            response.data = $.evalJSON(xhr.responseText);
+        } catch(e) {
+            response.data = {};
+        }
+
+        return response;
+    }
+
+    return parseXHRError(xhr);
 }
 
 Editor.Object._lastGuid = 0;
 }
 
 Editor.Object._lastGuid = 0;