From 18eb64a8a1658c5c730fb81e3044ca6577b46192 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 3 Aug 2011 18:36:08 +0400 Subject: allow marking last headline as read automatically by scrolling below content --- tt-rss.css | 7 +++++++ viewfeed.js | 40 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/tt-rss.css b/tt-rss.css index 28c9e9a1d..2f227595e 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -1543,3 +1543,10 @@ a.bookmarklet { cursor : pointer; } +#headlines-spacer { + height : 100%; + margin-left : 1px; + text-align : center; + padding : 1em; + color : gray; +} diff --git a/viewfeed.js b/viewfeed.js index 552e42d03..9d5af3adf 100644 --- a/viewfeed.js +++ b/viewfeed.js @@ -72,6 +72,17 @@ function headlines_callback2(transport, feed_cur_page) { dijit.byId("headlines-toolbar").attr('content', reply['headlines']['toolbar']); + var hsp = $("headlines-spacer"); + if (!hsp) hsp = document.createElement("DIV"); + + hsp.id = "headlines-spacer"; + + if (!_infscroll_disable) + hsp.innerHTML = " " + + __("Loading, please wait..."); + + dijit.byId('headlines-frame').domNode.appendChild(hsp); + initHeadlinesMenu(); } else { @@ -83,10 +94,25 @@ function headlines_callback2(transport, feed_cur_page) { $("headlines-tmp").innerHTML = reply['headlines']['content']; + var hsp = $("headlines-spacer"); + + if (hsp) + c.domNode.removeChild(hsp); + $$("#headlines-tmp > div").each(function(row) { c.domNode.appendChild(row); }); + if (!hsp) hsp = document.createElement("DIV"); + + hsp.id = "headlines-spacer"; + + if (!_infscroll_disable) + hsp.innerHTML = " " + + __("Loading, please wait..."); + + c.domNode.appendChild(hsp); + console.log("restore selected ids: " + ids); for (var i = 0; i < ids.length; i++) { @@ -97,6 +123,10 @@ function headlines_callback2(transport, feed_cur_page) { } else { console.log("no new headlines received"); + + var hsp = $("headlines-spacer"); + + if (hsp) hsp.innerHTML = ""; } } @@ -1306,14 +1336,18 @@ function postMouseOut(id) { function headlines_scroll_handler(e) { try { + var hsp = $("headlines-spacer"); + + if (!_infscroll_disable) { + if (hsp && (e.scrollTop + e.offsetHeight > hsp.offsetTop) || + e.scrollTop + e.offsetHeight > e.scrollHeight - 100) { - if (e.scrollTop + e.offsetHeight > e.scrollHeight - 100) { - if (!_infscroll_disable) { viewNextFeedPage(); } + } else { + if (hsp) hsp.innerHTML = ""; } - if (getInitParam("cdm_auto_catchup") == 1) { var ids = []; -- cgit v1.2.3