]> git.wh0rd.org - tt-rss.git/blobdiff - viewfeed.js
add quick action to edit current feed
[tt-rss.git] / viewfeed.js
index 838f3b0e594b575a2ffff9478ec8847982511aaf..70e8aaf0e8822aeb16399458f9b396cd794eca42 100644 (file)
@@ -1,12 +1,33 @@
 var active_post_id = false;
-
-//var xmlhttp_rpc = Ajax.getTransport();
+var _catchup_callback_func = false;
+
+function catchup_callback() {
+       if (xmlhttp_rpc.readyState == 4) {
+               try {
+                       debug("catchup_callback");
+                       if (_catchup_callback_func) {
+                               setTimeout(_catchup_callback_func, 100);        
+                       }
+                       all_counters_callback();
+               } catch (e) {
+                       exception_error("catchup_callback", e);
+               }
+       }
+}
 
 function headlines_callback() {
        if (xmlhttp.readyState == 4) {
                debug("headlines_callback");
                var f = document.getElementById("headlines-frame");
+               try {
+                       f.scrollTop = 0;
+               } catch (e) { };
                f.innerHTML = xmlhttp.responseText;
+               update_all_counters();
+               if (typeof correctPNG != 'undefined') {
+                       correctPNG();
+               }
+               notify("");
        }
 }
 
@@ -14,7 +35,13 @@ function article_callback() {
        if (xmlhttp.readyState == 4) {
                debug("article_callback");
                var f = document.getElementById("content-frame");
+               try {
+                       f.scrollTop = 0;
+               } catch (e) { };
                f.innerHTML = xmlhttp.responseText;
+               if (typeof correctPNG != 'undefined') {
+                       correctPNG();
+               }
                update_all_counters();
        }
 }
@@ -24,9 +51,6 @@ function view(id, feed_id) {
        try {
                debug("loading article: " + id + "/" + feed_id);
        
-               var f_document = getFeedsContext().document;
-               var m_document = document;
-       
                enableHotkeys();
        
                var crow = document.getElementById("RROW-" + id);
@@ -42,9 +66,9 @@ function view(id, feed_id) {
                } 
        
                active_post_id = id; 
-               setActiveFeedId(feed_id);
+               //setActiveFeedId(feed_id);
        
-               var content = m_document.getElementById("content-frame");
+               var content = document.getElementById("content-frame");
        
                selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false);
                markHeadline(active_post_id);
@@ -58,6 +82,7 @@ function view(id, feed_id) {
                        xmlhttp.send(null);
                } else {
                        debug("xmlhttp busy (@view)");
+                       printLockingError();
                }  
 
        } catch (e) {
@@ -67,8 +92,6 @@ function view(id, feed_id) {
 
 function toggleMark(id) {
 
-       var f_document = document;
-
        if (!xmlhttp_ready(xmlhttp_rpc)) {
                printLockingError();
                return;
@@ -77,7 +100,7 @@ function toggleMark(id) {
        var query = "backend.php?op=rpc&id=" + id + "&subop=mark";
 
        var mark_img = document.getElementById("FMARKPIC-" + id);
-       var vfeedu = f_document.getElementById("FEEDU--1");
+       var vfeedu = document.getElementById("FEEDU--1");
        var crow = document.getElementById("RROW-" + id);
 
        if (mark_img.alt != "Reset mark") {
@@ -100,8 +123,8 @@ function toggleMark(id) {
 
        }
 
-       var vfeedctr = f_document.getElementById("FEEDCTR--1");
-       var vfeedr = f_document.getElementById("FEEDR--1");
+       var vfeedctr = document.getElementById("FEEDCTR--1");
+       var vfeedr = document.getElementById("FEEDR--1");
 
        if (vfeedu && vfeedctr) {
                if ((+vfeedu.innerHTML) > 0) {
@@ -193,7 +216,7 @@ function toggleUnread(id, cmode) {
        }
 }
 
-function selectionToggleUnread(cdm_mode, set_state) {
+function selectionToggleUnread(cdm_mode, set_state, callback_func) {
        try {
                if (!xmlhttp_ready(xmlhttp_rpc)) {
                        printLockingError();
@@ -238,8 +261,10 @@ function selectionToggleUnread(cdm_mode, set_state) {
                        var query = "backend.php?op=rpc&subop=catchupSelected&ids=" +
                                param_escape(rows.toString()) + "&cmode=" + cmode;
 
+                       _catchup_callback_func = callback_func;
+
                        xmlhttp_rpc.open("GET", query, true);
-                       xmlhttp_rpc.onreadystatechange=all_counters_callback;
+                       xmlhttp_rpc.onreadystatechange=catchup_callback;
                        xmlhttp_rpc.send(null);
 
                }
@@ -303,7 +328,7 @@ function selectionToggleMarked(cdm_mode) {
 
 function cdmGetSelectedArticles() {
        var sel_articles = new Array();
-       var container = document.getElementById("headlinesContainer");
+       var container = document.getElementById("headlinesInnerContainer");
 
        for (i = 0; i < container.childNodes.length; i++) {
                var child = container.childNodes[i];
@@ -319,7 +344,7 @@ function cdmGetSelectedArticles() {
 
 // mode = all,none,unread
 function cdmSelectArticles(mode) {
-       var container = document.getElementById("headlinesContainer");
+       var container = document.getElementById("headlinesInnerContainer");
 
        for (i = 0; i < container.childNodes.length; i++) {
                var child = container.childNodes[i];
@@ -351,11 +376,11 @@ function catchupPage() {
 
        if (document.getElementById("headlinesList")) {
                selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', true, 'Unread', true);
-               selectionToggleUnread();
+               selectionToggleUnread(false, false, 'viewCurrentFeed()');
                selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false);
        } else {
                cdmSelectArticles('all');
-               selectionToggleUnread(true, false)
+               selectionToggleUnread(true, false, 'viewCurrentFeed()')
                cdmSelectArticles('none');
        }
 }
@@ -378,34 +403,10 @@ function labelFromSearch(search, search_mode, match_on, feed_id, is_cat) {
                debug("LFS: " + query);
        
                xmlhttp_rpc.open("GET", query, true);
-               xmlhttp_rpc.onreadystatechange=getMainContext().dlg_frefresh_callback;
+               xmlhttp_rpc.onreadystatechange=dlg_frefresh_callback;
                xmlhttp_rpc.send(null);
        }
 
 }
 
 
-
-function headlines_init() {
-       if (arguments.callee.done) return;
-       arguments.callee.done = true;           
-
-       if (parent.frames["feeds-frame"]) {
-               document.onkeydown = hotkey_handler;
-       }
-
-       var hl = document.getElementById("headlinesList");
-
-       if (!hl) {
-               hl = document.getElementById("headlinesContainer");
-       }
-
-       var hw = hl.scrollHeight;
-       var pw = parent.document.getElementById("headlines").scrollHeight;
-
-       if (hw >= pw) {
-               var bt = document.getElementById("headlineActionsBottom");
-               bt.className = "headlinesSubToolbar";
-       }
-
-}