]> git.wh0rd.org - tt-rss.git/blobdiff - functions.js
perform backend sanity check on startup, update schema version in backend.php
[tt-rss.git] / functions.js
index 0db4ea307205b6f1bf3273d4cbb34d21d40d6c33..aa3169ac99c88122815c720afec3ceca2122bace 100644 (file)
@@ -57,13 +57,15 @@ function p_notify(msg) {
 
        if (!n || !nb) return;
 
+       if (msg == "") msg = " ";
+
        nb.innerHTML = msg;
 
-       if (msg.length == 0) {
+/*     if (msg.length == 0) {
                n.style.display = "none";
        } else {
                n.style.display = "block";
-       }
+       } */
 
 }
 
@@ -74,13 +76,15 @@ function notify(msg) {
 
        if (!n || !nb) return;
 
+       if (msg == "") msg = " ";
+
        nb.innerHTML = msg;
 
-       if (msg.length == 0) {
+/*     if (msg.length == 0) {
                n.style.display = "none";
        } else {
                n.style.display = "block";
-       }
+       } */
 
 }
 
@@ -128,7 +132,8 @@ function cleanSelectedList(element) {
        var content = document.getElementById(element);
 
        for (i = 0; i < content.childNodes.length; i++) {
-               content.childNodes[i].className = content.childNodes[i].className.replace("Selected", "");
+               content.childNodes[i].className = 
+                       content.childNodes[i].className.replace("Selected", "");
        }
 
 }
@@ -302,6 +307,12 @@ if (!xmlhttp_rpc && typeof XMLHttpRequest!='undefined') {
 
 function label_counters_callback() {
        if (xmlhttp_rpc.readyState == 4) {
+
+               if (!xmlhttp_rpc.responseXML) {
+                       notify("label_counters_callback: backend did not return valid XML");
+                       return;
+               }
+
                var reply = xmlhttp_rpc.responseXML.firstChild;
 
                var f_document = parent.frames["feeds-frame"].document;
@@ -312,23 +323,100 @@ function label_counters_callback() {
 
                        var feedctr = f_document.getElementById("FEEDCTR-" + id);
                        var feedu = f_document.getElementById("FEEDU-" + id);
+                       var feedr = f_document.getElementById("FEEDR-" + id);
 
-                       feedu.innerHTML = ctr;
+                       if (feedctr && feedu && feedr) {
 
-                       if (ctr > 0) {
-                               feedctr.className = "odd";
-                       } else {
-                               feedctr.className = "invisible";
+                               feedu.innerHTML = ctr;
+       
+                               if (ctr > 0) {
+                                       feedctr.className = "odd";
+                                       if (!feedr.className.match("Unread")) {
+                                               feedr.className = feedr.className + "Unread";
+                                       }
+                               } else {
+                                       feedctr.className = "invisible";
+                                       feedr.className = feedr.className.replace("Unread", "");
+                               }                       
                        }
                }
        }
 }
 
-function update_label_counters() {
+function update_label_counters(feed) {
        if (xmlhttp_ready(xmlhttp_rpc)) {
-               var query = "backend.php?op=rpc&subop=getLabelCounters";        
+               var query = "backend.php?op=rpc&subop=getAllCounters";
+
+               if (feed > 0) {
+                       query = query + "&aid=" + feed;
+               }
+
                xmlhttp_rpc.open("GET", query, true);
                xmlhttp_rpc.onreadystatechange=label_counters_callback;
                xmlhttp_rpc.send(null);
        }
 }
+
+function popupHelp(tid) {
+       var w = window.open("backend.php?op=help&tid=" + tid,
+               "Popup Help", 
+               "menubar=no,location=no,resizable=yes,scrollbars=yes,status=no");
+}
+
+/** * @(#)isNumeric.js * * Copyright (c) 2000 by Sundar Dorai-Raj
+  * * @author Sundar Dorai-Raj
+  * * Email: sdoraira@vt.edu
+  * * This program is free software; you can redistribute it and/or
+  * * modify it under the terms of the GNU General Public License 
+  * * as published by the Free Software Foundation; either version 2 
+  * * of the License, or (at your option) any later version, 
+  * * provided that any use properly credits the author. 
+  * * This program is distributed in the hope that it will be useful,
+  * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  * * GNU General Public License for more details at http://www.gnu.org * * */
+
+  var numbers=".0123456789";
+  function isNumeric(x) {
+    // is x a String or a character?
+    if(x.length>1) {
+      // remove negative sign
+      x=Math.abs(x)+"";
+      for(j=0;j<x.length;j++) {
+        // call isNumeric recursively for each character
+        number=isNumeric(x.substring(j,j+1));
+        if(!number) return number;
+      }
+      return number;
+    }
+    else {
+      // if x is number return true
+      if(numbers.indexOf(x)>=0) return true;
+      return false;
+    }
+  }
+
+
+function hideOrShowFeeds(doc, hide) {
+
+       var css_rules = doc.styleSheets[0].cssRules;
+
+       for (i = 0; i < css_rules.length; i++) {
+               var rule = css_rules[i];
+
+               if (rule.selectorText == "ul.feedList li.feed") {
+                       if (!hide) {
+                               rule.style.display = "block";
+                       } else {
+                               rule.style.display = "none";
+                       }
+               }
+
+       } 
+
+}
+
+function fatalError(code) {
+       window.location = "error.php?c=" + param_escape(code);
+
+}