]> git.wh0rd.org - tt-rss.git/commitdiff
feedlist-related code cleanup
authorAndrew Dolgov <fox@bah.spb.su>
Tue, 20 May 2008 11:46:40 +0000 (12:46 +0100)
committerAndrew Dolgov <fox@bah.spb.su>
Tue, 20 May 2008 11:46:40 +0000 (12:46 +0100)
feedlist.js
functions.js
functions.php
tt-rss.js

index 62fceca37edd628b47f77921768a8fb41c26d46b..562b2ad9b55aa443839513a5740f3e1e287dcb57 100644 (file)
@@ -332,7 +332,7 @@ function feedlist_init() {
 
                debug("in feedlist init");
                
-               hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1);
+               hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
                document.onkeydown = hotkey_handler;
                document.onmousemove = mouse_move_handler;
                document.onmousedown = mouse_down_handler;
index a5c689b1026d9f059bd765460f25f5a708e68e47..a27336d6d42835106c3b6556840e91c4f7b04044 100644 (file)
@@ -205,34 +205,6 @@ function printLockingError() {
        notify_info("Please wait until operation finishes.");
 }
 
-function cleanSelectedList(element) {
-       var content = document.getElementById(element);
-
-       if (!document.getElementById("feedCatHolder")) {
-               for (i = 0; i < content.childNodes.length; i++) {
-                       var child = content.childNodes[i];
-                       try {
-                               child.className = child.className.replace("Selected", "");
-                       } catch (e) {
-                               //
-                       }
-               }
-       } else {
-               for (i = 0; i < content.childNodes.length; i++) {
-                       var child = content.childNodes[i];
-                       if (child.id == "feedCatHolder") {
-                               debug(child.id);
-                               var fcat = child.lastChild;
-                               for (j = 0; j < fcat.childNodes.length; j++) {
-                                       var feed = fcat.childNodes[j];
-                                       feed.className = feed.className.replace("Selected", "");
-                               }               
-                       }
-               } 
-       }
-}
-
-
 function cleanSelected(element) {
        var content = document.getElementById(element);
 
@@ -585,7 +557,7 @@ function parse_counters(reply, scheduled_call) {
                        }
                }
 
-               hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1);
+               hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
 
                var feeds_stored = number_of_feeds;
 
@@ -650,7 +622,7 @@ function parse_counters_reply(transport, scheduled_call) {
                        resort_feedlist();              
        }       
 
-       hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1);
+       hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
 
 }
 
@@ -674,7 +646,7 @@ function get_feed_unread(id) {
        }
 }
 
-function get_feed_entry_unread(doc, elem) {
+function get_feed_entry_unread(elem) {
 
        var id = elem.id.replace("FEEDR-", "");
 
@@ -683,28 +655,28 @@ function get_feed_entry_unread(doc, elem) {
        }
 
        try {
-               return parseInt(doc.getElementById("FEEDU-" + id).innerHTML);   
+               return parseInt(document.getElementById("FEEDU-" + id).innerHTML);      
        } catch (e) {
                return -1;
        }
 }
 
-function resort_category(doc, node) {
+function resort_category(node) {
        debug("resort_category: " + node);
 
        if (node.hasChildNodes() && node.firstChild.nextSibling != false) {  
                for (i = 0; i < node.childNodes.length; i++) {
                        if (node.childNodes[i].nodeName != "LI") { continue; }
 
-                       if (get_feed_entry_unread(doc, node.childNodes[i]) < 0) {
+                       if (get_feed_entry_unread(node.childNodes[i]) < 0) {
                                continue;
                        }
 
                        for (j = i+1; j < node.childNodes.length; j++) {                        
                                if (node.childNodes[j].nodeName != "LI") { continue; }  
 
-                               var tmp_val = get_feed_entry_unread(doc, node.childNodes[i]);
-                               var cur_val = get_feed_entry_unread(doc, node.childNodes[j]);
+                               var tmp_val = get_feed_entry_unread(node.childNodes[i]);
+                               var cur_val = get_feed_entry_unread(node.childNodes[j]);
 
                                if (cur_val > tmp_val) {
                                        tempnode_i = node.childNodes[i].cloneNode(true);
@@ -722,24 +694,18 @@ function resort_category(doc, node) {
 function resort_feedlist() {
        debug("resort_feedlist");
 
-       var fd = document;
-
-       if (fd.getElementById("feedCatHolder")) {
+       if (document.getElementById("FCATLIST--1")) {
 
-               var feeds = fd.getElementById("feedList");
-               var child = feeds.firstChild;
+               var lists = document.getElementsByTagName("UL");
 
-               while (child) {
-
-                       if (child.id == "feedCatHolder") {
-                               resort_category(fd, child.firstChild);
+               for (var i = 0; i < lists.length; i++) {
+                       if (lists[i].id && lists[i].id.match("FCATLIST-")) {
+                               resort_category(lists[i]);
                        }
-       
-                       child = child.nextSibling;
                }
 
        } else {
-               resort_category(fd, fd.getElementById("feedList"));
+               resort_category(document.getElementById("feedList"));
        }
 }
 
@@ -777,107 +743,123 @@ function resort_feedlist() {
   }
 
 
-function hideOrShowFeeds(doc, hide) {
+function hideOrShowFeeds(hide) {
 
-       debug("hideOrShowFeeds: " + doc + ", " + hide);
-
-       var fd = document;
+       try {
 
-       var list = fd.getElementById("feedList");
+       debug("hideOrShowFeeds: " + hide);
 
-       if (fd.getElementById("feedCatHolder")) {
+       if (document.getElementById("FCATLIST--1")) {
 
-               var feeds = fd.getElementById("feedList");
-               var child = feeds.firstChild;
+               var lists = document.getElementsByTagName("UL");
 
-               while (child) {
+               for (var i = 0; i < lists.length; i++) {
+                       if (lists[i].id && lists[i].id.match("FCATLIST-")) {
 
-                       if (child.id == "feedCatHolder") {
-                               hideOrShowFeedsCategory(fd, child.firstChild, hide, child.previousSibling);
+                               var id = lists[i].id.replace("FCATLIST-", "");
+                               hideOrShowFeedsCategory(id, hide);
                        }
-       
-                       child = child.nextSibling;
                }
 
        } else {
-               hideOrShowFeedsCategory(fd, fd.getElementById("feedList"), hide);
+               hideOrShowFeedsCategory(null, hide);
        }
-}
-
-function hideOrShowFeedsCategory(doc, node, hide, cat_node) {
 
-//     debug("hideOrShowFeedsCategory: " + node + " (" + hide + ")");
-
-       var cat_unread = 0;
-
-       if (!node) {
-               debug("hideOrShowFeeds: passed node is null, aborting");
-               return;
+       } catch (e) {
+               exception_error("hideOrShowFeeds", e);
        }
+}
 
-//     debug("cat: " + node.id);
+function hideOrShowFeedsCategory(id, hide) {
 
-       if (node.hasChildNodes() && node.firstChild.nextSibling != false) {  
-               for (i = 0; i < node.childNodes.length; i++) {
-                       if (node.childNodes[i].nodeName != "LI") { continue; }
+       try {
+       
+               var node = null;
+               var cat_node = null;
 
-                       if (node.childNodes[i].style != undefined) {
+               if (id) {
+                       node = document.getElementById("FCATLIST-" + id);
+                       cat_node = document.getElementById("FCAT-" + id);
+               } else {
+                       node = document.getElementById("feedList"); // no categories
+               }
 
-                               var has_unread = (node.childNodes[i].className != "feed" &&
-                                       node.childNodes[i].className != "label" && 
-                                       !(!getInitParam("hide_read_shows_special") && 
-                                               node.childNodes[i].className == "virt") && 
-                                       node.childNodes[i].className != "error" && 
-                                       node.childNodes[i].className != "tag");
+       //      debug("hideOrShowFeedsCategory: " + node + " (" + hide + ")");
        
-//                             debug(node.childNodes[i].id + " --> " + has_unread);
+               var cat_unread = 0;
        
-                               if (hide && !has_unread) {
-                                       //node.childNodes[i].style.display = "none";
-                                       var id = node.childNodes[i].id;
-                                       Effect.Fade(node.childNodes[i], {duration : 0.3, 
-                                               queue: { position: 'end', scope: 'FFADE-' + id, limit: 1 }});
-                               }
+               if (!node) {
+                       debug("hideOrShowFeeds: passed node is null, aborting");
+                       return;
+               }
        
-                               if (!hide) {
-                                       node.childNodes[i].style.display = "list-item";
-                                       //Effect.Appear(node.childNodes[i], {duration : 0.3});
-                               }
+       //      debug("cat: " + node.id);
+       
+               if (node.hasChildNodes() && node.firstChild.nextSibling != false) {  
+                       for (i = 0; i < node.childNodes.length; i++) {
+                               if (node.childNodes[i].nodeName != "LI") { continue; }
        
-                               if (has_unread) {
-                                       node.childNodes[i].style.display = "list-item";
-                                       cat_unread++;
-                                       //Effect.Appear(node.childNodes[i], {duration : 0.3});
-                                       //Effect.Highlight(node.childNodes[i]);
+                               if (node.childNodes[i].style != undefined) {
+       
+                                       var has_unread = (node.childNodes[i].className != "feed" &&
+                                               node.childNodes[i].className != "label" && 
+                                               !(!getInitParam("hide_read_shows_special") && 
+                                                       node.childNodes[i].className == "virt") && 
+                                               node.childNodes[i].className != "error" && 
+                                               node.childNodes[i].className != "tag");
+               
+       //                              debug(node.childNodes[i].id + " --> " + has_unread);
+               
+                                       if (hide && !has_unread) {
+                                               //node.childNodes[i].style.display = "none";
+                                               var id = node.childNodes[i].id;
+                                               Effect.Fade(node.childNodes[i], {duration : 0.3, 
+                                                       queue: { position: 'end', scope: 'FFADE-' + id, limit: 1 }});
+                                       }
+               
+                                       if (!hide) {
+                                               node.childNodes[i].style.display = "list-item";
+                                               //Effect.Appear(node.childNodes[i], {duration : 0.3});
+                                       }
+               
+                                       if (has_unread) {
+                                               node.childNodes[i].style.display = "list-item";
+                                               cat_unread++;
+                                               //Effect.Appear(node.childNodes[i], {duration : 0.3});
+                                               //Effect.Highlight(node.childNodes[i]);
+                                       }
                                }
                        }
-               }
-       }       
-
-//     debug("end cat: " + node.id + " unread " + cat_unread);
-
-       if (cat_unread == 0) {
-               if (cat_node.style == undefined) {
-                       debug("ERROR: supplied cat_node " + cat_node + 
-                               " has no styles. WTF?");
-                       return;
-               }
-               if (hide) {
-                       //cat_node.style.display = "none";
-                       Effect.Fade(cat_node, {duration : 0.3, 
-                               queue: { position: 'end', scope: 'CFADE-' + node.id, limit: 1 }});
+               }       
+       
+       //      debug("end cat: " + node.id + " unread " + cat_unread);
+       
+               if (cat_unread == 0) {
+                       if (cat_node.style == undefined) {
+                               debug("ERROR: supplied cat_node " + cat_node + 
+                                       " has no styles. WTF?");
+                               return;
+                       }
+                       if (hide) {
+                               //cat_node.style.display = "none";
+                               Effect.Fade(cat_node, {duration : 0.3, 
+                                       queue: { position: 'end', scope: 'CFADE-' + node.id, limit: 1 }});
+                       } else {
+                               cat_node.style.display = "list-item";
+                       }
                } else {
-                       cat_node.style.display = "list-item";
-               }
-       } else {
-               try {
-                       cat_node.style.display = "list-item";
-               } catch (e) {
-                       debug(e);
+                       try {
+                               cat_node.style.display = "list-item";
+                       } catch (e) {
+                               debug(e);
+                       }
                }
-       }
 
 //     debug("unread for category: " + cat_unread);
+
+       } catch (e) {
+               exception_error("hideOrShowFeedsCategory", e);
+       }
 }
 
 function selectTableRow(r, do_select) {
index 42b21a4655d58b87543610c1a40858d7193c0c24..100a1306e845b96ff32a1c4cbc42459db85305f5 100644 (file)
 
                        print "</li>";
 
-                       print "<li id=\"feedCatHolder\" class=\"$holder_class\"><ul class=\"feedCatList\" id=\"FCATLIST-$cat_id\" style='$holder_style'>";
+                       print "<ul class=\"feedCatList\" id=\"FCATLIST-$cat_id\" style='$holder_style'>";
 
        }
        
                                $cat_hidden = false;
                        }
 
-#                      print "<li class=\"feedCat\">".__('Special')."</li>";
-#                      print "<li id=\"feedCatHolder\" class=\"feedCatHolder\"><ul class=\"feedCatList\">";            
-#                      print "<li class=\"feedCat\">".
-#                              "<a id=\"FCATN--1\" href=\"javascript:toggleCollapseCat(-1)\">".
-#                              __('Special')."</a> <span id='FCAP--1'>$ellipsis</span></li>";
-#
-#                      print "<li id=\"feedCatHolder\" class=\"feedCatHolder\">
-#                              <ul class=\"feedCatList\" id='FCATLIST--1' style='$holder_style'>";
-
-#                      $cat_unread = getCategoryUnread($link, -1);
-#                      $tmp_category = __("Special");
-#                      $catctr_class = ($cat_unread > 0) ? "catCtrHasUnread" : "catCtrNoUnread";
-
                        printCategoryHeader($link, -1, $cat_hidden, false);
                }
 
 
                                                printCategoryHeader($link, -2, $cat_hidden, false);
 
-#                                              print "<li class=\"feedCat\">".
-#                                                      "<a id=\"FCATN--2\" href=\"javascript:toggleCollapseCat(-2)\">".
-#                                                      __('Labels')."</a> <span id='FCAP--2'>$ellipsis</span></li>";
-#
-#                                              print "<li id=\"feedCatHolder\" class=\"feedCatHolder\"><ul class=\"feedCatList\" id='FCATLIST--2' style='$holder_style'>";
                                        } else {
                                                print "<li><hr></li>";
                                        }
                                if ($category != $tmp_category && get_pref($link, 'ENABLE_FEED_CATS')) {
                                
                                        if ($category) {
-                                               print "</ul></li>";
+                                               print "</ul>";
                                        }
                                
                                        $category = $tmp_category;
                                                }
                                        }
 
-/*                                     if ($collapsed == "t" || $collapsed == "1") {
-                                               $holder_class = "feedCatHolder";
-                                               $holder_style = "display:none;";
-                                               $ellipsis = "…";
-                                       } else {
-                                               $holder_class = "feedCatHolder";
-                                               $holder_style = "";
-                                               $ellipsis = "";
-                                       } */
-
                                        $cat_id = sprintf("%d", $cat_id);
 
                                        printCategoryHeader($link, $cat_id, $collapsed, true);
 
-
-/*                                     $cat_unread = getCategoryUnread($link, $cat_id);
-
-                                       $catctr_class = ($cat_unread > 0) ? "catCtrHasUnread" : "catCtrNoUnread";
-
-                                       print "<li class=\"feedCat\" id=\"FCAT-$cat_id\">
-                                               <a id=\"FCATN-$cat_id\" href=\"javascript:toggleCollapseCat($cat_id)\">$tmp_category</a>
-                                                       <a href=\"#\" onclick=\"javascript:viewCategory($cat_id)\" id=\"FCAP-$cat_id\">
-                                                       <span id=\"FCATCTR-$cat_id\" 
-                                                       class=\"$catctr_class\">($cat_unread)</span> $ellipsis
-                                                       </a></li>";
-
-                                       print "<li id=\"feedCatHolder\" class=\"$holder_class\"><ul class=\"feedCatList\" id=\"FCATLIST-$cat_id\" style='$holder_style'>"; */
-
-                                       
                                }
        
                                printFeedEntry($feed_id, $class, $feed, $unread, 
 
                        if (get_pref($link, 'ENABLE_FEED_CATS')) {
                                print "<li class=\"feedCat\">".__('Tags')."</li>";
-                               print "<li id=\"feedCatHolder\"><ul class=\"feedCatList\">";
+                               print "<ul class=\"feedCatList\">";
                        }
 
                        $age_qpart = getMaxAgeSubquery();
index c29d74dec64c3ef978dd8f7dfa73a626009d6ad9..e81987ef7e69e828e8f7b9d71c82d6fd5d4e197a 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -622,7 +622,7 @@ function toggleDispRead() {
 
                debug("toggle_disp_read => " + hide_read_feeds);
 
-               hideOrShowFeeds(getFeedsContext().document, hide_read_feeds);
+               hideOrShowFeeds(hide_read_feeds);
 
                storeInitParam("hide_read_feeds", hide_read_feeds, true);
                                
@@ -1035,7 +1035,7 @@ function hotkey_handler(e) {
                                }
                                return false;
                        }
-       
+
                        if (keycode == 191 || keychar == '/') { // /
                                displayDlg("search", getActiveFeedId() + ":" + activeFeedIsCat());
                                return false;
@@ -1219,6 +1219,10 @@ function hotkey_handler(e) {
                                }
                        }
 
+                       if (keycode == 87) { // w
+                               return resort_feedlist();
+                       }
+
                }
 
                /* Prefix c */