]> git.wh0rd.org - tt-rss.git/commitdiff
code cleanups, start work on sepUpdateFeed mechanism
authorAndrew Dolgov <fox@bah.spb.su>
Sun, 28 Aug 2005 05:48:32 +0000 (06:48 +0100)
committerAndrew Dolgov <fox@bah.spb.su>
Sun, 28 Aug 2005 05:48:32 +0000 (06:48 +0100)
backend.php
tt-rss.js
tt-rss.php

index c38793b5e87ad4e6bc82e36f4a7fda600f7520d7..bf93aa142fba9b1d6579c52e0e15b29b56f8194c 100644 (file)
@@ -91,6 +91,9 @@
 
                print "</table>";
 
+               print "<div class=\"invisible\" id=\"FEEDTU\">$total_unread</div>";
+
+/*
                print "<p align=\"center\">All feeds: 
                        <a class=\"button\" 
                                href=\"javascript:scheduleFeedUpdate(true)\">Update</a>";
                                href=\"javascript:catchupAllFeeds()\">Mark as read</a></p>";
 
                print "<div class=\"invisible\" id=\"FEEDTU\">$total_unread</div>";
-
+*/
 
 
        }
 
                $subop = $_GET["subop"];
 
-               if ($subop == "getRelativeId") {
-                       $mode = $_GET["mode"];
-                       $id = $_GET["id"];
+               if ($subop == "updateFeed") {
                        $feed_id = $_GET["feed"];
 
-                       if ($id != 'false' && $feed_id != 'false') {
+                       $result = pg_query($link, 
+                               "SELECT feed_url FROM ttrss_feeds WHERE id = '$feed_id'");
 
-                               if ($mode == 'next') {
-                                       $check_qpart = "updated >= ";
-                               } else {
-                                       $idcheck_qpart = "id < '$id'";
-                               }
-
-                               $result = pg_query("SELECT id FROM ttrss_entries WHERE
-                                       $check_qpart AND
-                                       feed_id = '$feed_id'
-                                       ORDER BY updated DESC LIMIT 1");
-
-                               $result_id = pg_fetch_result($result, 0, "id");
+                       if (pg_num_rows($result) > 0) {                 
+                               $feed_url = pg_fetch_result($result, 0, "feed_url");
+//                             update_rss_feed($link, $feed_url, $feed_id);
+                       }
 
-                               print "M $mode : P $id -> P $result_id : F $feed_id";
+                       print "DONE-$feed_id";
 
-                       }
+                       return;
                }
 
                if ($subop == "forceUpdateAllFeeds") {
index e6eca217234eaa96be4d23f99120435fa5ef5934..96c9b32addec459d4ab819d0abce5a1ac14358dc 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -19,6 +19,9 @@ var total_feed_entries = false;
 var _viewfeed_autoselect_first = false;
 var _viewfeed_autoselect_last = false;
 
+var _update_ids;
+var _update_num_ids;
+
 var search_query = "";
 
 /*@cc_on @*/
@@ -60,6 +63,14 @@ function feedlist_callback() {
        } 
 }
 
+function feed_update_callback() {
+       if (xmlhttp_rpc.readyState == 4) {
+               var result = xmlhttp_rpc.responseText;
+               notify(_update_ids);
+               updateFeed(_update_ids.shift());
+       }
+}
+
 function viewfeed_callback() {
        var container = document.getElementById('headlines');
        if (xmlhttp.readyState == 4) {
@@ -130,6 +141,30 @@ function refetch_callback() {
        } 
 }
 
+function updateFeed(feed_id) {
+
+       var query_str = "backend.php?op=rpc&subop=updateFeed&feed=" + feed_id;
+
+       if (xmlhttp_ready(xmlhttp_rpc)) {
+               xmlhttp_rpc.open("GET", query_str, true);
+               xmlhttp_rpc.onreadystatechange=feed_update_callback;
+               xmlhttp_rpc.send(null);
+       } else {
+               printLockingError();
+       }   
+
+}
+
+function scheduleSepFeedUpdate(force) {
+       notify("Updating feeds in background (M2)...");
+
+       _update_ids = getFeedIds();
+       _update_num_ids = _update_ids.length;
+
+       updateFeed(_update_ids.pop());
+
+}
+
 function scheduleFeedUpdate(force) {
 
        notify("Updating feeds in background...");
@@ -297,6 +332,21 @@ function markHeadline(id) {
        }
 }
 
+function getFeedIds() {
+       var content = document.getElementById("feedsList");
+
+       var rows = new Array();
+
+       for (i = 0; i < content.rows.length; i++) {
+               var id = content.rows[i].id.replace("FEEDR-", "");
+               if (id.length > 0) {
+                       rows.push(id);
+               }
+       }
+
+       return rows;
+}
+
 function cleanSelected(element) {
        var content = document.getElementById(element);
 
index 936efda8400d1a1a0ed7c660f5d460763db42593..338b3efc8d614d7efbc0452c121cb4846b6dfb63 100644 (file)
        </td>
 </tr>
 <tr>
-       <td valign="top" rowspan="2" id="feeds" class="feeds"> 
-               &nbsp;
+       <td valign="top" rowspan="2" class="feeds"> 
+               
+               <div id="feeds">&nbsp;</div>
+       
+               <p align="center">All feeds:
+               
+               <a class="button" 
+                               href="javascript:scheduleFeedUpdate(true)">Update</a>
+
+               <a class="button" 
+                               href="javascript:catchupAllFeeds()">Mark as read</a></p>
+
        </td>
        <td id="headlines" class="headlines" valign="top">
                Please select the feed.