From: Andrew Dolgov Date: Wed, 7 Oct 2009 10:22:44 +0000 (+0400) Subject: fix view() being called twice on every headline click, experimental progress indicato... X-Git-Tag: 1.3.4~28 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=6e35a862dd7c2f292ab805cf5a0d5bf8770a6525;p=tt-rss.git fix view() being called twice on every headline click, experimental progress indicators for feedlist/headlines --- diff --git a/feedlist.js b/feedlist.js index 05109ad2..37c80001 100644 --- a/feedlist.js +++ b/feedlist.js @@ -315,7 +315,17 @@ function viewfeed(feed, subop, is_cat, subop_param, skip_history, offset) { } else { if (!page_offset) { - notify_progress("Loading, please wait...", true); + var feedr = $('FEEDR-' + feed); + + if (feedr) { + var ll = document.createElement('img'); + + ll.src = 'images/indicator_tiny.gif'; + ll.className = 'hlLoading'; + ll.id = 'FLL-' + feed; + + feedr.appendChild(ll); + } } new Ajax.Request(query, { diff --git a/functions.php b/functions.php index effd2000..2c2a81c5 100644 --- a/functions.php +++ b/functions.php @@ -5119,11 +5119,11 @@ # truncate_string($line["feed_title"],30)." "; # } else { - print ""; + print ""; print "" . + onclick=\"return false\">" . $line["title"]; if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) { @@ -5147,6 +5147,10 @@ "; } } + +// print ""; + print ""; # } diff --git a/images/indicator_tiny.gif b/images/indicator_tiny.gif new file mode 100644 index 00000000..09d621ed Binary files /dev/null and b/images/indicator_tiny.gif differ diff --git a/tt-rss.css b/tt-rss.css index 598f0c74..021af11d 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -105,6 +105,12 @@ div.postReply span.author { font-size : 12px; } +ul.feedList img.hlLoading { + margin-left : 5px; + vertical-align : middle; + height : 10px; +} + ul.feedList { list-style-type : none; margin : 5px 5px 5px 0px; @@ -915,6 +921,11 @@ table.headlinesList span.hlLabelRef, div.cdmHeader span.hlLabelRef { white-space: nowrap; } +table.headlinesList img.hlLoading { + margin-left : 5px; + vertical-align : middle; +} + table.headlinesList td.hlFeedIcon { width : 25px; text-align : center; diff --git a/viewfeed.js b/viewfeed.js index 227aa87a..7a614f78 100644 --- a/viewfeed.js +++ b/viewfeed.js @@ -106,18 +106,23 @@ function headlines_callback2(transport, feed_cur_page) { } } + var ll = $('FLL-' + feed_id); + if (!is_cat) { var feedr = $("FEEDR-" + feed_id); if (feedr && !feedr.className.match("Selected")) { feedr.className = feedr.className + "Selected"; } + if (feedr && ll) feedr.removeChild(ll); } else { var feedr = $("FCAT-" + feed_id); if (feedr && !feedr.className.match("Selected")) { feedr.className = feedr.className + "Selected"; } + if (feedr && ll) feedr.removeChild(ll); + } - + var f = $("headlines-frame"); try { if (feed_cur_page == 0) { @@ -363,6 +368,19 @@ function article_callback2(transport, id, feed_id) { if (!transport_error_check(transport)) return; + var ll = $('LL-' + id); + var content = $('HLC-' + id); + + if (ll && content) content.removeChild(ll); + + if (id != last_requested_article) { + debug("requested article id is out of sequence, aborting"); + return; + } + + active_real_feed_id = feed_id; + active_post_id = id; + debug("looking for articles to cache..."); var articles = transport.responseXML.getElementsByTagName("article"); @@ -380,13 +398,6 @@ function article_callback2(transport, id, feed_id) { cache_inject(a_id, articles[i].firstChild.nodeValue); } - if (id != last_requested_article) { - debug("requested article id is out of sequence, aborting"); - return; - } - - active_real_feed_id = feed_id; - active_post_id = id; showArticleInHeadlines(id); @@ -491,7 +502,20 @@ function view(id, feed_id, skip_history) { if (!cached_article) { - notify_progress("Loading, please wait...", true); +// notify_progress("Loading, please wait...", true); + + var content = $('HLC-' + id); + + if (content && !$('LL-' + id)) { + var ll = document.createElement('img'); + + ll.src = 'images/indicator_tiny.gif'; + ll.className = 'hlLoading'; + ll.id = 'LL-' + id; + + content.appendChild(ll); + + } } else if (cached_article && article_is_unread) {