]> git.wh0rd.org - tt-rss.git/commitdiff
consolidate counter parsing code
authorAndrew Dolgov <fox@madoka.spb.ru>
Tue, 13 Dec 2005 15:59:43 +0000 (16:59 +0100)
committerAndrew Dolgov <fox@madoka.spb.ru>
Tue, 13 Dec 2005 15:59:43 +0000 (16:59 +0100)
functions.js
tt-rss.js

index e032ff527cedd2dca1bb69d7a5ac6adce7260bd2..f82708b29754b00bb473b50e7e4bdfbec88ebfaf 100644 (file)
@@ -344,6 +344,61 @@ if (!xmlhttp_rpc && typeof XMLHttpRequest!='undefined') {
        xmlhttp_rpc = new XMLHttpRequest();
 }
 
+function parse_counters(reply, f_document) {
+       try {
+               for (var l = 0; l < reply.childNodes.length; l++) {
+                       var id = reply.childNodes[l].getAttribute("id");
+                       var t = reply.childNodes[l].getAttribute("type");
+                       var ctr = reply.childNodes[l].getAttribute("counter");
+       
+                       if (id == "global-unread") {
+                               parent.global_unread = ctr;
+                               parent.updateTitle();
+                               continue;
+                       }
+       
+                       if (t == "category") {
+                               var catctr = f_document.getElementById("FCATCTR-" + id);
+                               if (catctr) {
+                                       catctr.innerHTML = "(" + ctr + " unread)";
+                               }
+                               continue;
+                       }
+               
+                       var feedctr = f_document.getElementById("FEEDCTR-" + id);
+                       var feedu = f_document.getElementById("FEEDU-" + id);
+                       var feedr = f_document.getElementById("FEEDR-" + id);
+               
+                       if (feedctr && feedu && feedr) {
+               
+                               feedu.innerHTML = ctr;
+       
+                               if (ctr > 0) {                                  
+                                       feedctr.className = "odd";
+                                       if (!feedr.className.match("Unread")) {
+                                               var is_selected = feedr.className.match("Selected");
+               
+                                               feedr.className = feedr.className.replace("Selected", "");
+                                               feedr.className = feedr.className.replace("Unread", "");
+               
+                                               feedr.className = feedr.className + "Unread";
+               
+                                               if (is_selected) {
+                                                       feedr.className = feedr.className + "Selected";
+                                               }
+               
+                                       }
+                               } else {
+                                       feedctr.className = "invisible";
+                                       feedr.className = feedr.className.replace("Unread", "");
+                               }                       
+                       }
+               }
+       } catch (e) {
+               exception_error(e);
+       }
+}
+
 function all_counters_callback() {
        if (xmlhttp_rpc.readyState == 4) {
                try {
@@ -353,57 +408,10 @@ function all_counters_callback() {
                        }
        
                        var reply = xmlhttp_rpc.responseXML.firstChild;
-       
                        var f_document = parent.frames["feeds-frame"].document;
-       
-                       for (var l = 0; l < reply.childNodes.length; l++) {
-                               var id = reply.childNodes[l].getAttribute("id");
-                               var t = reply.childNodes[l].getAttribute("type");
-                               var ctr = reply.childNodes[l].getAttribute("counter");
-
-                               if (id == "global-unread") {
-                                       parent.global_unread = ctr;
-                                       parent.updateTitle();
-                                       continue;
-                               }
 
-                               if (t == "category") {
-                                       var catctr = f_document.getElementById("FCATCTR-" + id);
-                                       if (catctr) {
-                                               catctr.innerHTML = "(" + ctr + " unread)";
-                                       }
-                                       continue;
-                               }
-       
-                               var feedctr = f_document.getElementById("FEEDCTR-" + id);
-                               var feedu = f_document.getElementById("FEEDU-" + id);
-                               var feedr = f_document.getElementById("FEEDR-" + id);
-       
-                               if (feedctr && feedu && feedr) {
-       
-                                       feedu.innerHTML = ctr;
-               
-                                       if (ctr > 0) {                                  
-                                               feedctr.className = "odd";
-                                               if (!feedr.className.match("Unread")) {
-                                                       var is_selected = feedr.className.match("Selected");
-       
-                                                       feedr.className = feedr.className.replace("Selected", "");
-                                                       feedr.className = feedr.className.replace("Unread", "");
-       
-                                                       feedr.className = feedr.className + "Unread";
-       
-                                                       if (is_selected) {
-                                                               feedr.className = feedr.className + "Selected";
-                                                       }
+                       parse_counters(reply, f_document);
        
-                                               }
-                                       } else {
-                                               feedctr.className = "invisible";
-                                               feedr.className = feedr.className.replace("Unread", "");
-                                       }                       
-                               }
-                       }
                } catch (e) {
                        exception_error("all_counters_callback", e);
                }
index c4cd2db74714b44e0a604bebb1162ae86a62f00c..dee5e85460dfda351da1cb1f21be70e6f12a56b3 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -92,35 +92,8 @@ function refetch_callback() {
                        }
        
                        var f_document = window.frames["feeds-frame"].document;
-       
-                       for (var l = 0; l < reply.childNodes.length; l++) {
-                               var id = reply.childNodes[l].getAttribute("id");
-                               var ctr = reply.childNodes[l].getAttribute("counter");
-       
-                               var feedctr = f_document.getElementById("FEEDCTR-" + id);
-                               var feedu = f_document.getElementById("FEEDU-" + id);
-                               var feedr = f_document.getElementById("FEEDR-" + id);
-       
-                               if (id == "global-unread") {
-                                       global_unread = ctr;
-                                       continue;
-                               }
-       
-                               if (feedctr && feedu && feedr) {
-       
-                                       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", "");
-                                       }
-                               }
-                       }  
+
+                       parse_counters(reply, f_document);
        
                        updateTitle("");
                        notify("All feeds updated.");