]> git.wh0rd.org - tt-rss.git/blobdiff - functions.js
reenable piggie (refs #42)
[tt-rss.git] / functions.js
index b3fc8876a24d63bd21f168ef0cc59d4797159189..43de38c98689b3581d8da6fc4da583db8d7de3ac 100644 (file)
@@ -2,6 +2,7 @@ var hotkeys_enabled = true;
 var notify_silent = false;
 var last_progress_point = 0;
 var async_counters_work = false;
+var sanity_check_done = false;
 
 /* add method to remove element from array */
 
@@ -46,12 +47,12 @@ function exception_error(location, e, ext_info) {
 
                        if (ext_info) {
                                ebc.innerHTML += "<div><b>Additional information:</b></div>" +
-                                       "<textarea readonly=\"1\">" + ext_info + "</textarea>";
+                               "<textarea readonly=\"1\">" + ext_info + "</textarea>";
                        }
 
                        ebc.innerHTML += "<div><b>Stack trace:</b></div>" +
                                "<textarea readonly=\"1\">" + e.stack + "</textarea>";
-
+       
                } else {
                        alert(msg);
                }
@@ -1092,70 +1093,6 @@ function getRelativeFeedId2(id, is_cat, direction, unread_only) {
        }
 }
 
-function getRelativeFeedId(list, id, direction, unread_only) { 
-       var rows = list.getElementsByTagName("LI");
-       var feeds = new Array();
-
-       for (var i = 0; i < rows.length; i++) {
-               if (rows[i].id.match("FEEDR-")) {
-
-                       if (rows[i].id == "FEEDR-" + id || (Element.visible(rows[i]) && Element.visible(rows[i].parentNode))) {
-
-                               if (!unread_only || 
-                                               (rows[i].className.match("Unread") || rows[i].id == "FEEDR-" + id)) {
-                                       feeds.push(rows[i].id.replace("FEEDR-", ""));
-                               }
-                       }
-               }
-       }
-
-       if (!id) {
-               if (direction == "next") {
-                       return feeds.shift();
-               } else {
-                       return feeds.pop();
-               }
-       } else {
-               if (direction == "next") {
-                       var idx = feeds.indexOf(id);
-                       if (idx != -1 && idx < feeds.length) {
-                               return feeds[idx+1];                                    
-                       } else {
-                               return getRelativeFeedId(list, false, direction, unread_only);
-                       }
-               } else {
-                       var idx = feeds.indexOf(id);
-                       if (idx > 0) {
-                               return feeds[idx-1];
-                       } else {
-                               return getRelativeFeedId(list, false, direction, unread_only);
-                       }
-               }
-
-       }
-}
-
-function showBlockElement(id, h_id) {
-       var elem = $(id);
-
-       if (elem) {
-               elem.style.display = "block";
-
-               if (h_id) {
-                       elem = $(h_id);
-                       if (elem) {
-                               elem.style.display = "none";
-                       }
-               }
-       } else {
-               alert("[showBlockElement] can't find element with id " + id);
-       } 
-}
-
-function appearBlockElement_afh(effect) {
-
-}
-
 function checkboxToggleElement(elem, id) {
        if (elem.checked) {
                Effect.Appear(id, {duration : 0.5});
@@ -1164,23 +1101,6 @@ function checkboxToggleElement(elem, id) {
        }
 }
 
-function appearBlockElement(id, h_id) {
-
-       try {
-               if (h_id) {
-                       Effect.Fade(h_id);
-               }
-               Effect.SlideDown(id, {duration : 1.0, afterFinish: appearBlockElement_afh});
-       } catch (e) {
-               exception_error("appearBlockElement", e);
-       }
-
-}
-
-function hideParentElement(e) {
-       e.parentNode.style.display = "none";
-}
-
 function dropboxSelect(e, v) {
        for (i = 0; i < e.length; i++) {
                if (e[i].value == v) {
@@ -2200,4 +2120,76 @@ function unsubscribeFeed(feed_id, title) {
 }
 
 
+function backend_sanity_check_callback(transport) {
+
+       try {
+
+               if (sanity_check_done) {
+                       fatalError(11, "Sanity check request received twice. This can indicate "+
+                     "presence of Firebug or some other disrupting extension. "+
+                               "Please disable it and try again.");
+                       return;
+               }
+
+               if (!transport.responseXML) {
+                       if (!store) {
+                               fatalError(3, "Sanity check: Received reply is not XML", 
+                                       transport.responseText);
+                               return;
+                       } else {
+                               init_offline();
+                               return;
+                       }
+               }
+
+               if (getURLParam("offline")) {
+                       return init_offline();
+               }
+
+               var reply = transport.responseXML.firstChild.firstChild;
+
+               if (!reply) {
+                       fatalError(3, "Sanity check: invalid RPC reply", transport.responseText);
+                       return;
+               }
+
+               var error_code = reply.getAttribute("error-code");
+       
+               if (error_code && error_code != 0) {
+                       return fatalError(error_code, reply.getAttribute("error-msg"));
+               }
+
+               console.log("sanity check ok");
+
+               var params = reply.nextSibling;
+
+               if (params) {
+                       console.log('reading init-params...');
+                       var param = params.firstChild;
+
+                       while (param) {
+                               var k = param.getAttribute("key");
+                               var v = param.getAttribute("value");
+                               console.log(k + " => " + v);
+                               init_params[k] = v;                                     
+
+                               if (db) {
+                                       db.execute("DELETE FROM init_params WHERE key = ?", [k]);
+                                       db.execute("INSERT INTO init_params (key,value) VALUES (?, ?)",
+                                               [k, v]);
+                               }
+
+                               param = param.nextSibling;
+                       }
+               }
+
+               sanity_check_done = true;
+
+               init_second_stage();
+
+       } catch (e) {
+               exception_error("backend_sanity_check_callback", e, transport); 
+       } 
+}
+