code cleanups, start work on sepUpdateFeed mechanism

This commit is contained in:
Andrew Dolgov 2005-08-28 06:48:32 +01:00
parent 7fdd55fb41
commit caa4e57f27
3 changed files with 76 additions and 22 deletions

View File

@ -91,6 +91,9 @@
print "</table>"; print "</table>";
print "<div class=\"invisible\" id=\"FEEDTU\">$total_unread</div>";
/*
print "<p align=\"center\">All feeds: print "<p align=\"center\">All feeds:
<a class=\"button\" <a class=\"button\"
href=\"javascript:scheduleFeedUpdate(true)\">Update</a>"; href=\"javascript:scheduleFeedUpdate(true)\">Update</a>";
@ -99,7 +102,7 @@
href=\"javascript:catchupAllFeeds()\">Mark as read</a></p>"; href=\"javascript:catchupAllFeeds()\">Mark as read</a></p>";
print "<div class=\"invisible\" id=\"FEEDTU\">$total_unread</div>"; print "<div class=\"invisible\" id=\"FEEDTU\">$total_unread</div>";
*/
} }
@ -109,29 +112,20 @@
$subop = $_GET["subop"]; $subop = $_GET["subop"];
if ($subop == "getRelativeId") { if ($subop == "updateFeed") {
$mode = $_GET["mode"];
$id = $_GET["id"];
$feed_id = $_GET["feed"]; $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') { if (pg_num_rows($result) > 0) {
$check_qpart = "updated >= "; $feed_url = pg_fetch_result($result, 0, "feed_url");
} else { // update_rss_feed($link, $feed_url, $feed_id);
$idcheck_qpart = "id < '$id'";
} }
$result = pg_query("SELECT id FROM ttrss_entries WHERE print "DONE-$feed_id";
$check_qpart AND
feed_id = '$feed_id'
ORDER BY updated DESC LIMIT 1");
$result_id = pg_fetch_result($result, 0, "id"); return;
print "M $mode : P $id -> P $result_id : F $feed_id";
}
} }
if ($subop == "forceUpdateAllFeeds") { if ($subop == "forceUpdateAllFeeds") {

View File

@ -19,6 +19,9 @@ var total_feed_entries = false;
var _viewfeed_autoselect_first = false; var _viewfeed_autoselect_first = false;
var _viewfeed_autoselect_last = false; var _viewfeed_autoselect_last = false;
var _update_ids;
var _update_num_ids;
var search_query = ""; var search_query = "";
/*@cc_on @*/ /*@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() { function viewfeed_callback() {
var container = document.getElementById('headlines'); var container = document.getElementById('headlines');
if (xmlhttp.readyState == 4) { 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) { function scheduleFeedUpdate(force) {
notify("Updating feeds in background..."); 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) { function cleanSelected(element) {
var content = document.getElementById(element); var content = document.getElementById(element);

View File

@ -28,8 +28,18 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td valign="top" rowspan="2" id="feeds" class="feeds"> <td valign="top" rowspan="2" class="feeds">
&nbsp;
<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>
<td id="headlines" class="headlines" valign="top"> <td id="headlines" class="headlines" valign="top">
Please select the feed. Please select the feed.