diff --git a/backend.php b/backend.php
index 89e517160..325c367eb 100644
--- a/backend.php
+++ b/backend.php
@@ -194,13 +194,11 @@
WHERE id = '$id'");
if ($addheader) {
-
- print "
-
+ print "
| ";
+
+ $next_skip = $skip + HEADLINES_PER_PAGE;
+ $prev_skip = $skip - HEADLINES_PER_PAGE;
- print "All Posts";
+ print "Navigate: ";
+
+ if ($prev_skip >= 0) {
+ print "Previous Page";
+ } else {
+ print "Previous Page";
+ }
+ print " ";
+
+ if ($next_skip < $total_entries) {
+ print "Next Page";
+ } else {
+ print "Next Page";
+ }
+ print " Feed: ";
+
+ print "Update";
+
+ print " Mark as read: ";
+
+ if ($num_unread > 0) {
+ print "This Page";
+ print " ";
+ } else {
+ print "This Page";
+ print " ";
+ }
+
+ print "All Posts";
+
+ }
/* print " Unmark: ";
@@ -464,6 +486,10 @@
print " $total ";
print "$unread ";
+ if ($addheader) {
+ print "";
+ }
+
}
if ($op == "pref-rpc") {
diff --git a/config.php-dist b/config.php-dist
index 0860c8f7f..dfcc952af 100644
--- a/config.php-dist
+++ b/config.php-dist
@@ -23,8 +23,5 @@
define(ENABLE_PREFS_CATCHUP_UNCATCHUP, false);
// enable "Mark as read/unread" buttons in preferences dialog
- define(ENABLE_CONTENT_IFRAME, true);
- // show article in an iframe to mitigate scrolling UI issues
-
?>
diff --git a/functions.js b/functions.js
index d7f0ec750..cb241ada6 100644
--- a/functions.js
+++ b/functions.js
@@ -54,6 +54,8 @@ function notify(msg) {
var n = document.getElementById("notify");
+ if (!n) return;
+
n.innerHTML = msg;
if (msg.length == 0) {
@@ -65,8 +67,7 @@ function notify(msg) {
}
function printLockingError() {
- notify("Please wait until operation finishes");
-}
+ notify("Please wait until operation finishes");}
var seq = "";
@@ -102,5 +103,76 @@ function hotkey_handler(e) {
}
+function cleanSelected(element) {
+ var content = document.getElementById(element);
+
+ var rows = new Array();
+
+ for (i = 0; i < content.rows.length; i++) {
+ content.rows[i].className = content.rows[i].className.replace("Selected", "");
+ }
+
+}
+
+function getVisibleUnreadHeadlines() {
+ 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 && content.rows[i].className.match("Unread")) {
+ rows.push(row_id);
+ }
+ }
+ return rows;
+}
+
+function getVisibleHeadlineIds() {
+
+ 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);
+ }
+ }
+ return rows;
+}
+
+function getFirstVisibleHeadlineId() {
+ var rows = getVisibleHeadlineIds();
+ return rows[0];
+}
+
+function getLastVisibleHeadlineId() {
+ var rows = getVisibleHeadlineIds();
+ return rows[rows.length-1];
+}
+
+function markHeadline(id) {
+ var row = document.getElementById("RROW-" + id);
+ if (row) {
+ row.className = row.className + "Selected";
+ }
+}
+
+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;
+}
diff --git a/tt-rss.css b/tt-rss.css
index 3c3dae031..26d2d98a6 100644
--- a/tt-rss.css
+++ b/tt-rss.css
@@ -42,10 +42,6 @@ table.feedOverview {
font-size : small;
}
-td.headlineToolbar {
- padding-top : 10px;
-}
-
table.feeds {
font-size : small;
}
@@ -67,7 +63,17 @@ table.headlinesList td.search {
padding-bottom : 3px; */
}
-table.headlinesList td.title {
+td.headlinesToolbar {
+ padding : 10px;
+}
+
+td.headlinesTitle {
+ text-align : right;
+ font-size : large;
+ font-weight : bold;
+}
+
+table.headlinesList td.title, table.headlinesHeader td.title {
font-weight : bold;
font-size : large;
border-width : 0px 0px 1px 0px;
@@ -135,13 +141,18 @@ table.main td.feeds {
padding : 10px;
}
-table.main td.headlines {
- height : 10%;
- padding : 10px;
+div.headlineToolbar {
+ border-width : 1px 0px 0px 0px;
+ border-color : #c0c0c0;
+ border-style : solid;
+ padding : 10px;
+}
+
+table.main td.headlines {
+ height : 25%;
border-width : 1px 0px 0px 0px;
border-color : #c0c0c0;
border-style : solid;
- overflow : scroll;
}
table.main td.prefContent {
@@ -152,6 +163,14 @@ table.main td.prefContent {
}
+table.main td.headlinesToolbarBox {
+ padding : 0px;
+ height : 20px;
+ border-width : 1px 0px 0px 0px;
+ border-color : #c0c0c0;
+ border-style : solid;
+}
+
table.main td.content {
padding : 0px;
border-width : 1px 0px 0px 0px;
@@ -375,10 +394,11 @@ div.expPane {
margin : 15px;
}
-iframe.contentFrame {
+iframe.contentFrame, iframe.headlinesFrame {
width : 100%;
border-width : 0px;
padding : 0px;
margin : 0px;
height : 100%;
}
+
diff --git a/tt-rss.js b/tt-rss.js
index de262f91c..06c249167 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -16,12 +16,6 @@ var active_offset = false;
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 @*/
@@ -63,14 +57,7 @@ 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) {
@@ -121,15 +108,7 @@ function viewfeed_callback() {
notify("");
}
-}
-
-function view_callback() {
- var container = document.getElementById('content');
- if (xmlhttp_view.readyState == 4) {
- container.innerHTML=xmlhttp_view.responseText;
- markHeadline(active_post_id);
- }
-}
+} */
function refetch_callback() {
@@ -155,16 +134,6 @@ function updateFeed(feed_id) {
}
-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...");
@@ -207,6 +176,7 @@ function updateFeedList(silent, fetch) {
}
}
+/*
function catchupPage(feed) {
if (!xmlhttp_ready(xmlhttp)) {
@@ -266,7 +236,7 @@ function catchupPage(feed) {
notify("No unread items on this page.");
}
-}
+} */
function catchupAllFeeds() {
@@ -284,6 +254,12 @@ function catchupAllFeeds() {
}
+function viewCurrentFeed(skip, subop) {
+ if (active_feed_id) {
+ viewfeed(active_feed_id, skip, subop);
+ }
+}
+
function viewfeed(feed, skip, subop) {
enableHotkeys();
@@ -306,11 +282,6 @@ function viewfeed(feed, skip, subop) {
view_mode = "All Posts";
}
-/* if (active_feed_id == feed && subop != "ForceUpdate") {
- notify("This feed is currently selected.");
- return;
- } */
-
if (skip < 0 || skip > total_feed_entries) {
return;
}
@@ -327,6 +298,19 @@ function viewfeed(feed, skip, subop) {
active_feed_id = feed;
active_offset = skip;
+ if (subop == "MarkAllRead") {
+
+ var feedr = document.getElementById("FEEDR-" + feed);
+ var feedt = document.getElementById("FEEDT-" + feed);
+ var feedu = document.getElementById("FEEDU-" + feed);
+
+ feedu.innerHTML = "0";
+
+ if (feedr.className.match("Unread")) {
+ feedr.className = feedr.className.replace("Unread", "");
+ }
+ }
+
var query = "backend.php?op=viewfeed&feed=" + param_escape(feed) +
"&skip=" + param_escape(skip) + "&subop=" + param_escape(subop) +
"&view=" + param_escape(view_mode);
@@ -335,47 +319,25 @@ function viewfeed(feed, skip, subop) {
query = query + "&search=" + param_escape(search_query);
}
- xmlhttp.open("GET", query, true);
- xmlhttp.onreadystatechange=viewfeed_callback;
- xmlhttp.send(null);
+ var headlines_frame = document.getElementById("headlines-frame");
+
+ headlines_frame.src = query + "&addheader=true";
- notify("Loading headlines...");
-
-}
-
-function markHeadline(id) {
- var row = document.getElementById("RROW-" + id);
- if (row) {
- row.className = row.className + "Selected";
- }
-}
-
-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);
-
- var rows = new Array();
-
- for (i = 0; i < content.rows.length; i++) {
- content.rows[i].className = content.rows[i].className.replace("Selected", "");
- }
+ var feedr = document.getElementById("FEEDR-" + feed);
+
+ cleanSelected("feedsList");
+ feedr.className = feedr.className + "Selected";
+
+ var ftitle_d = document.getElementById("headlinesTitle");
+ var ftitle_s = document.getElementById("FEEDN-" + feed);
+
+ ftitle_d.innerHTML = ftitle_s.innerHTML;
+
+ notify("");
}
+/*
function view(id,feed_id) {
enableHotkeys();
@@ -425,15 +387,11 @@ function view(id,feed_id) {
var content = document.getElementById("content-frame");
- if (content) {
- content.src = "backend.php?op=view&addheader=true&id=" + param_escape(id);
- markHeadline(active_post_id);
- } else {
- xmlhttp_view.open("GET", "backend.php?op=view&id=" + param_escape(id), true);
- xmlhttp_view.onreadystatechange=view_callback;
- xmlhttp_view.send(null);
- }
+ content.src = "backend.php?op=view&addheader=true&id=" + param_escape(id);
+ markHeadline(active_post_id);
+
}
+*/
function timeout() {
scheduleFeedUpdate(true);
@@ -445,8 +403,12 @@ function resetSearch() {
viewfeed(active_feed_id, 0, "");
}
-function search(feed) {
- viewfeed(feed, 0, "");
+function search() {
+ if (active_feed_id) {
+ viewfeed(active_feed_id, 0, "");
+ } else {
+ notify("Please select some feed first.");
+ }
}
function localPiggieFunction(enable) {
@@ -462,53 +424,7 @@ function localPiggieFunction(enable) {
}
}
-function relativeid_callback() {
-
- if (xmlhttp_rpc.readyState == 4) {
- notify(xmlhttp_rpc.responseText);
- }
-
-}
-
-function getVisibleUnreadHeadlines() {
- 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 && content.rows[i].className.match("Unread")) {
- rows.push(row_id);
- }
- }
- return rows;
-}
-
-function getVisibleHeadlineIds() {
-
- 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);
- }
- }
- return rows;
-}
-
-function getFirstVisibleHeadlineId() {
- var rows = getVisibleHeadlineIds();
- return rows[0];
-}
-
-function getLastVisibleHeadlineId() {
- var rows = getVisibleHeadlineIds();
- return rows[rows.length-1];
-}
-
+/*
function moveToPost(mode) {
var rows = getVisibleHeadlineIds();
@@ -547,16 +463,17 @@ function moveToPost(mode) {
}
}
+*/
function localHotkeyHandler(keycode) {
- if (keycode == 78) {
+/* if (keycode == 78) {
return moveToPost('next');
}
if (keycode == 80) {
return moveToPost('prev');
- }
+ } */
if (keycode == 82) {
return scheduleFeedUpdate(true);
@@ -570,37 +487,6 @@ function localHotkeyHandler(keycode) {
}
-function toggleMark(id, toggle) {
-
-// notify("Toggle mark: " + id + ", " + toggle);
-
- if (!xmlhttp_ready(xmlhttp_rpc)) {
- printLockingError();
- return;
- }
-
- var mark_img = document.getElementById("FMARKPIC-" + id);
-
- var query = "backend.php?op=rpc&id=" + id + "&subop=mark";
-
- if (toggle == true) {
- mark_img.src = "images/mark_set.png";
- mark_img.alt = "Reset mark";
- mark_img.setAttribute('onclick', 'javascript:toggleMark('+id+', false)');
- query = query + "&mark=1";
- } else {
- mark_img.src = "images/mark_unset.png";
- mark_img.alt = "Set mark";
- mark_img.setAttribute('onclick', 'javascript:toggleMark('+id+', true)');
- query = query + "&mark=0";
- }
-
- xmlhttp_rpc.open("GET", query, true);
- xmlhttp_rpc.onreadystatechange=rpc_notify_callback;
- xmlhttp_rpc.send(null);
-
-}
-
function init() {
// IE kludge
diff --git a/tt-rss.php b/tt-rss.php
index 87061338a..ec4e8b6ef 100644
--- a/tt-rss.php
+++ b/tt-rss.php
@@ -28,7 +28,7 @@
|