]> git.wh0rd.org - tt-rss.git/blobdiff - viewfeed.js
misc fixes, rework hotkeys code placement
[tt-rss.git] / viewfeed.js
index 2eef820e88182bb86f6050885c09b0e00d9c0087..e5e862d59481fa3fc87dbf17de97b7ae74443297 100644 (file)
@@ -152,6 +152,8 @@ function headlines_callback2(transport, active_feed_id, is_cat, feed_cur_page) {
                                                        markHeadline(ids[i]);
                                                }
 
+                                               subtoolbarSearch();
+
                                        } else {
                                                debug("no new headlines received");
                                        }
@@ -793,6 +795,7 @@ function toggleUnread(id, cmode, effect) {
                var row = document.getElementById("RROW-" + id);
                if (row) {
                        var nc = row.className;
+                       var is_selected = row.className.match("Selected");
                        nc = nc.replace("Unread", "");
                        nc = nc.replace("Selected", "");
 
@@ -831,6 +834,9 @@ function toggleUnread(id, cmode, effect) {
                                row.className = nc + "Unread";
                        }
 
+                       // Disable unmarking as selected for the time being (16.05.08) -fox
+                       if (is_selected) row.className = row.className + "Selected";
+
                        if (cmode == undefined) cmode = 2;
 
                        var query = "backend.php?op=rpc&subop=catchupSelected&ids=" +
@@ -1508,6 +1514,10 @@ function cache_expire() {
        }
 }
 
+function cache_empty() {
+       article_cache = new Array();
+}
+
 function cache_invalidate(id) {
        var i = 0
 
@@ -1673,4 +1683,60 @@ function cdmExpandArticle(a_id) {
 
 }
 
+function fixHeadlinesOrder(ids) {
+       try {
+               for (var i = 0; i < ids.length; i++) {
+                       var e = document.getElementById("RROW-" + ids[i]);
+
+                       if (e) {
+                               if (i % 2 == 0) {
+                                       e.className = e.className.replace("even", "odd");
+                               } else {
+                                       e.className = e.className.replace("odd", "even");
+                               }
+                       }
+               }
+       } catch (e) {
+               exception_error("fixHeadlinesOrder", e);
+       }
+}
+
+function subtoolbarSearch() {
+
+       try {
+
+               var q = document.getElementById("subtoolbar_search_box");
+               
+               if (!q) return;
 
+               q = q.value.toUpperCase();
+
+               var ids = false;
+               var vis_ids = new Array();
+
+               if (document.getElementById("headlinesList")) {
+                       ids = getVisibleHeadlineIds();
+               } else {
+                       ids = cdmGetVisibleArticles();
+               }
+
+               for (var i = 0; i < ids.length; i++) {
+                       var title = document.getElementById("RTITLE-" + ids[i]);
+
+                       if (title) {
+                               if (!title.innerHTML.toUpperCase().match(q)) {
+                                       Element.hide(document.getElementById("RROW-" + ids[i]));
+                               } else {
+                                       Element.show(document.getElementById("RROW-" + ids[i]));
+                                       vis_ids.push(ids[i]);
+                               }
+                       }
+               }
+
+               fixHeadlinesOrder(vis_ids);
+
+       } catch (e) {
+               exception_error("subtoolbarSearch", e);
+       }
+
+}