X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/78644811ca0c6042212788dc67add42bc41fb74c..ce89530aa0db752e169adb914938d7f5f9f0ed5a:/platforma/static/js/app.js
diff --git a/platforma/static/js/app.js b/platforma/static/js/app.js
index fde15393..e870a387 100644
--- a/platforma/static/js/app.js
+++ b/platforma/static/js/app.js
@@ -180,6 +180,59 @@ Editor.Object = Class.extend({
}
});
+// Handle JSON error responses in uniform way
+function parseXHRError(response)
+{
+ var message = "";
+ var level = "";
+
+ try {
+ var json = $.evalJSON(response.responseText);
+
+ if(json.reason == 'xml-parse-error') {
+ message = json.message.replace(/(line\s+)(\d+)(\s+)/i,
+ "$1$2$3");
+
+ message = message.replace(/(line\s+)(\d+)(\,\s*column\s+)(\d+)/i,
+ "$1$2$3$4");
+
+ 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";
+ }
+ } catch(e) {
+ // not a valid JSON response
+ message = response.statusText || 'Brak poÅÄ
czenia z serwerem';
+ level = "error";
+ }
+
+ 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;
-var panels = [];
+var panels = [];
\ No newline at end of file