]> git.wh0rd.org - tt-rss.git/blobdiff - functions.js
fix fatalError() not working properly
[tt-rss.git] / functions.js
index f0364deb053aa86704faaf9714254b737855bcb5..88365d70a555df4bbde50c7e37eba40f487d22de 100644 (file)
@@ -503,8 +503,6 @@ function setInitParam(key, value) {
 function fatalError(code, msg, ext_info) {
        try {   
 
-               if (!ext_info) ext_info = "N/A";
-
                if (code == 6) {
                        window.location.href = "tt-rss.php";                    
                } else if (code == 5) {
@@ -513,28 +511,36 @@ function fatalError(code, msg, ext_info) {
        
                        if (msg == "") msg = "Unknown error";
 
-                       var ebc = $("xebContent");
-       
-                       if (ebc) {
-       
-                               Element.show("dialog_overlay");
-                               Element.show("errorBoxShadow");
-                               Element.hide("xebBtn");
-
-                               if (ext_info) {
-                                       if (ext_info.responseText) {
-                                               ext_info = ext_info.responseText;
-                                       }
+                       if (ext_info) {
+                               if (ext_info.responseText) {
+                                       ext_info = ext_info.responseText;
                                }
+                       }
+
+                       if (ERRORS && ERRORS[code] && !msg) {
+                               msg = ERRORS[code];
+                       }
        
-                               ebc.innerHTML = 
-                                       "<div><b>Error message:</b></div>" +
-                                       "<pre>" + msg + "</pre>" +
-                                       "<div><b>Additional information:</b></div>" +
-                                       "<textarea readonly=\"1\">" + ext_info + "</textarea>";
+                       var content = "<div><b>Error code:</b> " + code + "</div>" +
+                               "<p>" + msg + "</p>";
+
+                       if (ext_info) {
+                               content = content + "<div><b>Additional information:</b></div>" +
+                                       "<textarea style='width: 100%' readonly=\"1\">" + 
+                                       ext_info + "</textarea>";
                        }
+
+                       var dialog = new dijit.Dialog({
+                               title: "Fatal error",
+                               style: "width: 600px",
+                               content: content});
+
+                       dialog.show();
+
                }
 
+               return false;
+
        } catch (e) {
                exception_error("fatalError", e);
        }
@@ -607,19 +613,15 @@ function filterDlgCheckDate() {
                        parameters: query,
                        onComplete: function(transport) { 
 
-                               if (transport.responseXML) {
-                                       var result = transport.responseXML.getElementsByTagName("result")[0];
+                               var reply = JSON.parse(transport.responseText);
 
-                                       if (result && result.firstChild) {
-                                               if (result.firstChild.nodeValue == "1") {
-                                                       alert(__("Date syntax appears to be correct."));
-                                                       return;
-                                               }
-                                       }
+                               if (reply['result'] == true) {
+                                       alert(__("Date syntax appears to be correct."));
+                                       return;
+                               } else {
+                                       alert(__("Date syntax is incorrect."));
                                }
 
-                               alert(__("Date syntax is incorrect."));
-
                        } });
 
 
@@ -966,15 +968,12 @@ function quickAddFilter() {
                                        new Ajax.Request("backend.php", {
                                                parameters: query,
                                                onComplete: function(transport) {
-                                                       handle_rpc_reply(transport);
-                                                       var response = transport.responseXML;
+                                                       var reply = JSON.parse(transport.responseText); 
 
-                                                       if (response) {
-                                                               var s = response.getElementsByTagName("status")[0].firstChild.nodeValue;
-       
+                                                       if (reply) {
                                                                notify('');
 
-                                                               if (s == "INVALID") {
+                                                               if (!reply['status']) {
                                                                        alert("Match regular expression seems to be invalid.");
                                                                        return;
                                                                } else {
@@ -1166,14 +1165,13 @@ function genUrlChangeKey(feed, is_cat) {
                        new Ajax.Request("backend.php", {
                                parameters: query,
                                onComplete: function(transport) {
-                                               var new_link = transport.responseXML.getElementsByTagName("link")[0];
+                                               var reply = JSON.parse(transport.responseText);
+                                               var new_link = reply.link;
        
                                                var e = $('gen_feed_url');
        
                                                if (new_link) {
                                                        
-                                                       new_link = new_link.firstChild.nodeValue;
-
                                                        e.innerHTML = e.innerHTML.replace(/\&amp;key=.*$/, 
                                                                "&amp;key=" + new_link);
 
@@ -1363,6 +1361,7 @@ function editFeed(feed, event) {
                                                parameters: dojo.objectToQuery(dialog.attr('value')),
                                                onComplete: function(transport) {
                                                        dialog.hide();
+                                                       notify('');
                                                        updateFeedList();
                                        }})
                                }
@@ -1421,12 +1420,6 @@ function feedBrowser() {
                                        new Ajax.Request("backend.php", {
                                                parameters: query,
                                                onComplete: function(transport) { 
-               
-                                                       var nf = transport.responseXML.getElementsByTagName('num-feeds')[0];
-                                                       var nf_value = nf.getAttribute("value");
-               
-                                                       notify_info(__("Subscribed to %d feed(s).").replace("%d", nf_value));
-               
                                                        if (inPreferences()) {
                                                                updateFeedList();
                                                        }
@@ -1450,17 +1443,19 @@ function feedBrowser() {
                                                Element.hide('feed_browser_spinner');
                
                                                var c = $("browseFeedList");
-                                               var r = transport.responseXML.getElementsByTagName("content")[0];
-                                               var nr = transport.responseXML.getElementsByTagName("num-results")[0];
-                                               var mode = transport.responseXML.getElementsByTagName("mode")[0];
+
+                                               var reply = JSON.parse(transport.responseText);
+
+                                               var r = reply['content'];
+                                               var mode = reply['mode'];
                
                                                if (c && r) {
-                                                       c.innerHTML = r.firstChild.nodeValue;
+                                                       c.innerHTML = r;
                                                }
                
                                                dojo.parser.parse("browseFeedList");
                
-                                               if (parseInt(mode.getAttribute("value")) == 2) {
+                                               if (mode == 2) {
                                                        Element.show(dijit.byId('feed_archive_remove').domNode);
                                                } else {
                                                        Element.hide(dijit.byId('feed_archive_remove').domNode);