summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2005-08-22 12:43:07 +0100
committerAndrew Dolgov <[email protected]>2005-08-22 12:43:07 +0100
commit175847dee889442606adae97f844302cb027cebd (patch)
tree12f25541d305ff4eff3cf9ec727745d60744d266
parent5d348feec2484d784c70f548c68fc07a025d95aa (diff)
mark headlines page as read now works (via rpc)
-rw-r--r--backend.php26
-rw-r--r--prefs.js1
-rw-r--r--tt-rss.css7
-rw-r--r--tt-rss.js43
4 files changed, 71 insertions, 6 deletions
diff --git a/backend.php b/backend.php
index f862d540d..c7b66929e 100644
--- a/backend.php
+++ b/backend.php
@@ -12,7 +12,27 @@
$op = $_GET["op"];
$fetch = $_GET["fetch"];
+
+ if ($op == "rpc") {
+
+ $subop = $_GET["subop"];
+ if ($subop == "catchupPage") {
+
+ $ids = split(",", $_GET["ids"]);
+
+ foreach ($ids as $id) {
+
+ pg_query("UPDATE ttrss_entries SET unread=false,last_read = NOW()
+ WHERE id = '$id'");
+
+ }
+
+ print "Marked active page as read.";
+ }
+
+ }
+
if ($op == "feeds") {
$subop = $_GET["subop"];
@@ -150,7 +170,7 @@
}
}
- print "<table class=\"headlines\" width=\"100%\">";
+ print "<table class=\"headlinesList\" id=\"headlinesList\" width=\"100%\">";
print "<tr><td class=\"search\" colspan=\"3\">
Search: <input onchange=\"javascript:search($feed,this);\"></td></tr>";
@@ -242,9 +262,11 @@
print "&nbsp;";
print "<a class=\"button\"
href=\"javascript:viewfeed($feed, 0, 'ForceUpdate');\">Update</a>";
+
print "&nbsp;&nbsp;Mark as read: ";
+
print "<a class=\"button\"
- href=\"javascript:viewfeed($feed, $skip, 'MarkPageRead');\">This Page</a>";
+ href=\"javascript:catchupPage($feed);\">This Page</a>";
print "&nbsp;";
print "<a class=\"button\"
href=\"javascript:viewfeed($feed, $skip, 'MarkAllRead');\">All Posts</a>";
diff --git a/prefs.js b/prefs.js
index 192e194fe..6263a6ec0 100644
--- a/prefs.js
+++ b/prefs.js
@@ -39,6 +39,7 @@ function notify_callback() {
}
}
+
function updateFeedList() {
document.getElementById("feeds").innerHTML = "Loading feeds, please wait...";
diff --git a/tt-rss.css b/tt-rss.css
index 0da8b1229..ba1d08a12 100644
--- a/tt-rss.css
+++ b/tt-rss.css
@@ -55,7 +55,7 @@ table.feeds td.footer {
font-size : small;
}
-table.headlines td.search {
+table.headlinesList td.search {
font-size : small;
/* border-width : 0px 0px 1px 0px;
border-color : #d0d0d0;
@@ -63,7 +63,7 @@ table.headlines td.search {
padding-bottom : 3px; */
}
-table.headlines td.title {
+table.headlinesList td.title {
font-weight : bold;
font-size : large;
border-width : 0px 0px 1px 0px;
@@ -73,9 +73,8 @@ table.headlines td.title {
padding-bottom : 3px;
}
-table.headlines td.headlineUpdated {
+table.headlinesList td.headlineUpdated {
width : 200px;
-
}
input {
diff --git a/tt-rss.js b/tt-rss.js
index 7d0972a45..f5721639d 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -26,6 +26,13 @@ if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
+function notify_callback() {
+ var container = document.getElementById('notify');
+ if (xmlhttp.readyState == 4) {
+ container.innerHTML=xmlhttp.responseText;
+ }
+}
+
function feedlist_callback() {
var container = document.getElementById('feeds');
if (xmlhttp.readyState == 4) {
@@ -99,6 +106,42 @@ function updateFeedList(called_from_timer, fetch) {
}
+function catchupPage(feed) {
+
+ var content = document.getElementById("headlinesList");
+
+ var rows = new Array();
+
+ for (i = 0; i < content.rows.length; i++) {
+ var row_id = content.rows[i].id.replace("RROW-", "");
+ if (row_id.length > 0) {
+ rows.push(row_id);
+ content.rows[i].className = content.rows[i].className.replace("Unread", "");
+ }
+ }
+
+ var feedr = document.getElementById("FEEDR-" + feed);
+ var feedu = document.getElementById("FEEDU-" + feed);
+
+ feedu.innerHTML = feedu.innerHTML - rows.length;
+
+ if (feedu.innerHTML > 0 && !feedr.className.match("Unread")) {
+ feedr.className = feedr.className + "Unread";
+ } else if (feedu.innerHTML <= 0) {
+ feedr.className = feedr.className.replace("Unread", "");
+ }
+
+ var query_str = "backend.php?op=rpc&subop=catchupPage&ids=" +
+ param_escape(rows.toString());
+
+ notify("Marking this page as read...");
+
+ xmlhttp.open("GET", query_str, true);
+ xmlhttp.onreadystatechange=notify_callback;
+ xmlhttp.send(null);
+
+}
+
function catchupAllFeeds() {
var query_str = "backend.php?op=feeds&subop=catchupAll";