summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2009-10-07 14:22:44 +0400
committerAndrew Dolgov <[email protected]>2009-10-07 14:22:44 +0400
commit6e35a862dd7c2f292ab805cf5a0d5bf8770a6525 (patch)
tree6017125f1d3bdf5e2c0dbe2391df068a63040f42
parent449cba7c38acd2abefaf127c7ce40ebda8b07c13 (diff)
fix view() being called twice on every headline click, experimental progress indicators for feedlist/headlines
-rw-r--r--feedlist.js12
-rw-r--r--functions.php8
-rw-r--r--images/indicator_tiny.gifbin0 -> 723 bytes
-rw-r--r--tt-rss.css11
-rw-r--r--viewfeed.js42
5 files changed, 61 insertions, 12 deletions
diff --git a/feedlist.js b/feedlist.js
index 05109ad23..37c80001a 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 effd20005..2c2a81c56 100644
--- a/functions.php
+++ b/functions.php
@@ -5119,11 +5119,11 @@
# truncate_string($line["feed_title"],30)."</a>&nbsp;</td>";
# } else {
- print "<td onclick='view($id,$feed_id)' class='hlContent$hlc_suffix' valign='middle'>";
+ print "<td onclick='view($id,$feed_id)' class='hlContent$hlc_suffix' valign='middle' id='HLC-$id'>";
print "<a id=\"RTITLE-$id\"
href=\"" . htmlspecialchars($line["link"]) . "\"
- onclick=\"return view($id,$feed_id);\">" .
+ onclick=\"return false\">" .
$line["title"];
if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) {
@@ -5147,6 +5147,10 @@
</span>";
}
}
+
+// print "<img id='HLL-$id' class='hlLoading'
+// src='images/indicator_tiny.gif' style='display : none'>";
+
print "</td>";
# }
diff --git a/images/indicator_tiny.gif b/images/indicator_tiny.gif
new file mode 100644
index 000000000..09d621ede
--- /dev/null
+++ b/images/indicator_tiny.gif
Binary files differ
diff --git a/tt-rss.css b/tt-rss.css
index 598f0c749..021af11d8 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 227aa87a5..7a614f783 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) {