]> git.wh0rd.org - tt-rss.git/commitdiff
check for failures to request counters in async way after viewfeed/view
authorAndrew Dolgov <fox@madoka.spb.ru>
Wed, 21 May 2008 04:38:28 +0000 (05:38 +0100)
committerAndrew Dolgov <fox@madoka.spb.ru>
Wed, 21 May 2008 04:38:28 +0000 (05:38 +0100)
backend.php
feedlist.js
functions.js
viewfeed.js

index 20411cc0ae17d3aa8bb731c57985a81b8e4d2338..8cf5c16918f97c4dea5af61ae7a4a5ff0a88c01d 100644 (file)
                        $mode = db_escape_string($_GET["mode"]);
                        $omode = db_escape_string($_GET["omode"]);
 
+                       $csync = $_GET["csync"];
+
                        print "<reply>";
 
                        // in prefetch mode we only output requested cids, main article 
                                }
                        }
 
-                       if ($mode != "prefetch_old") {
+                       if ($mode != "prefetch_old" && !$csync) {
                                print "<counters>";
                                getAllCounters($link, $omode);
                                print "</counters>";
                        $next_unread_feed = db_escape_string($_GET["nuf"]);
                        $offset = db_escape_string($_GET["skip"]);
                        $vgroup_last_feed = db_escape_string($_GET["vgrlf"]);
+                       $csync = $_GET["csync"];
 
                        set_pref($link, "_DEFAULT_VIEW_MODE", $view_mode);
                        set_pref($link, "_DEFAULT_VIEW_LIMIT", $limit);
 
                        if ($_GET["debug"]) $timing_info = print_checkpoint("20", $timing_info);
 
-                       if (time() - $_SESSION["get_all_counters_stamp"] > 300) {
+                       $viewfeed_ctr_interval = 300;
+
+                       if ($csync) {
+                               $viewfeed_ctr_interval = 60;
+                       }
+
+                       if (time() - $_SESSION["get_all_counters_stamp"] > $viewfeed_ctr_interval) {
                                print "<counters>";
                                getAllCounters($link, $omode, $feed);
                                print "</counters>";
index 4f5c8d7750ccd97e52d313098185104710b4ee57..1cd784524a0ab8b833ed31c5da31ea752c609014 100644 (file)
@@ -168,6 +168,10 @@ function viewfeed(feed, subop, is_cat, subop_param, skip_history, offset) {
                        query = query + "&omode=flc";
                }
 
+               if (!async_counters_work) {
+                       query = query + "&csync=true";
+               }
+
                debug(query);
 
                var container = document.getElementById("headlinesInnerContainer");
@@ -517,7 +521,7 @@ function request_counters_real() {
                new Ajax.Request(query, {
                        onComplete: function(transport) { 
                                try {
-                                       all_counters_callback2(transport);
+                                       all_counters_callback2(transport, true);
                                } catch (e) {
                                        exception_error("viewfeed/getcounters", e);
                                }
index b3673b03f56bc4ac034053bfb2bc30f57410b56e..456b65af758a321a557a933daabb6db784df36e4 100644 (file)
@@ -2,6 +2,7 @@ var hotkeys_enabled = true;
 var xmlhttp_rpc = Ajax.getTransport();
 var notify_silent = false;
 var last_progress_point = 0;
+var async_counters_work = false;
 
 /* add method to remove element from array */
 
@@ -626,8 +627,10 @@ function parse_counters_reply(transport, scheduled_call) {
 
 }
 
-function all_counters_callback2(transport) {
+function all_counters_callback2(transport, async_call) {
        try {
+               if (async_call) async_counters_work = true;
+
                debug("<b>all_counters_callback2 IN: " + transport + "</b>");
                parse_counters_reply(transport);
                debug("<b>all_counters_callback2 OUT: " + transport + "</b>");
index 73417c3d5755ae5f046aec28ec5cdfaa52f91920..3336dda6889291e6dbd73ec409ef4d4720314425 100644 (file)
@@ -431,6 +431,10 @@ function view(id, feed_id, skip_history) {
                var crow = document.getElementById("RROW-" + id);
                var article_is_unread = crow.className.match("Unread");
 
+               if (!async_counters_work) {
+                       query = query + "&csync=true";
+               }
+
                if (!cached_article) {
 
                        notify_progress("Loading, please wait...");