X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=js%2Fpz2.js;h=8aab9bff345427d42919be79822eb18371bf246f;hb=7caf759e76b964ad57f2fa0336e174ff0f2cb098;hp=58cf4a3505960fdfc37aaa6059f1c98f2a6958a0;hpb=33c32a8d851124919232f87dbce1796805737a3f;p=pazpar2-moved-to-github.git diff --git a/js/pz2.js b/js/pz2.js index 58cf4a3..8aab9bf 100644 --- a/js/pz2.js +++ b/js/pz2.js @@ -637,6 +637,18 @@ pz2.prototype = bytarget[i][nodeName] = nodeText; } } + if (bytarget[i]["state"]=="Client_Disconnected") { + bytarget[i]["hits"] = "Error"; + } else if (bytarget[i]["state"]=="Client_Error") { + bytarget[i]["hits"] = "Error"; + } else if (bytarget[i]["state"]=="Client_Working") { + bytarget[i]["hits"] = "..."; + } + if (bytarget[i].diagnostic == "1") { + bytarget[i].diagnostic = "Permanent system error"; + } else if (bytarget[i].diagnostic == "2") { + bytarget[i].diagnostic = "Temporary system error"; + } } context.bytargetCounter++; @@ -707,6 +719,7 @@ var pzHttpRequest = function ( url, errorHandler ) { } }; + pzHttpRequest.prototype = { safeGet: function ( params, callback ) @@ -805,8 +818,33 @@ pzHttpRequest.prototype = this.request.responseXML == null) { if (this.request.responseText != null) { //assume JSON - var json = eval("(" + this.request.responseText + ")"); - this.callback(json, "json"); + + var json = null; + var text = this.request.responseText; + if (typeof window.JSON == "undefined") + json = eval("(" + text + ")"); + else { + try { + json = JSON.parse(text); + } + catch (e) { + // Safari: eval will fail as well. Considering trying JSON2 (non-native implementation) instead + /* DEBUG only works in mk2-mobile + if (document.getElementById("log")) + document.getElementById("log").innerHTML = "" + e + " " + length + ": " + text; + */ + try { + json = eval("(" + text + ")"); + } + catch (e) { + /* DEBUG only works in mk2-mobile + if (document.getElementById("log")) + document.getElementById("log").innerHTML = "" + e + " " + length + ": " + text; + */ + } + } + } + this.callback(json, "json"); } else { var err = new Error("XML response is empty but no error " + "for " + savedUrlForErrorReporting);