summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-09-12 19:52:15 +0400
committerAndrew Dolgov <[email protected]>2010-09-12 19:52:15 +0400
commitd8ea9902b6d9a8fce00bd826c9b654397a97bd0f (patch)
treeade7e38bda86e86337e0b7184a9e088420dd6853
parent41de9581216a904bd6a99cba5186e6b33bca06c9 (diff)
digest: ajax loading for zoom()
-rw-r--r--digest.js36
-rw-r--r--modules/backend-rpc.php37
2 files changed, 42 insertions, 31 deletions
diff --git a/digest.js b/digest.js
index 4faee1f6c..4183d70c5 100644
--- a/digest.js
+++ b/digest.js
@@ -102,24 +102,28 @@ function set_selected_feed(feed_id) {
}
}
-function zoom(article_id) {
+function zoom(elem, article_id) {
try {
- var elem = $('A-' + article_id);
+ //alert(elem + "/" + article_id);
- if (elem) {
- var divs = elem.getElementsByTagName('DIV');
-
- for (var i = 0; i < divs.length; i++) {
- if (divs[i].className == 'excerpt')
- Element.hide(divs[i]);
+ elem.innerHTML = "<img src='images/indicator_tiny.gif'> " +
+ __("Loading, please wait...");
- if (divs[i].className == 'content')
- Element.show(divs[i]);
- }
- }
+ new Ajax.Request("backend.php", {
+ parameters: "?op=rpc&subop=digest-get-contents&article_id=" +
+ article_id,
+ onComplete: function(transport) {
+ fatal_error_check(transport);
+
+ if (transport.responseXML) {
+ var article = transport.responseXML.getElementsByTagName('article')[0];
+ elem.innerHTML = article.firstChild.nodeValue;
+ } else {
+ elem.innerHTML = __("Error: unable to load article.");
+ }
+
+ } });
- //catchup_article(article_id,
- // function() { update(); });
} catch (e) {
exception_error("zoom", e);
@@ -346,10 +350,8 @@ function add_headline_entry(article, feed, no_effects) {
"onclick=\"return view("+article.id+")\" class='title'>" +
article.title + "</a>" +
"<div class='body'>" +
- "<div title=\""+__("Click to expand article")+"\" onclick=\"zoom("+article.id+")\" class='excerpt'>" +
+ "<div title=\""+__("Click to expand article")+"\" onclick=\"zoom(this, "+article.id+")\" class='excerpt'>" +
article.excerpt + "</div>" +
- "<div style='display : none' class='content'>" +
- article.content + "</div>" +
"<div class='info'><a href=\#\" onclick=\"viewfeed("+feed.id+")\">" +
feed.title + "</a> " + tags_part + " @ " +
new Date(article.updated * 1000) + "</div>" +
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index a0e4e77df..592c8ab28 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -978,6 +978,28 @@
return;
}
+ if ($subop == "digest-get-contents") {
+ $article_id = db_escape_string($_REQUEST['article_id']);
+
+ $result = db_query($link, "SELECT content
+ FROM ttrss_entries, ttrss_user_entries
+ WHERE id = '$article_id' AND ref_id = id AND owner_uid = ".$_SESSION['uid']);
+
+ print "<rpc-reply>";
+
+ print "<article id=\"$article_id\"><![CDATA[";
+
+ $content = sanitize_rss($link, db_fetch_result($result, 0, "content"));
+
+ print $content;
+
+ print "]]></article>";
+
+ print "</rpc-reply>";
+
+ return;
+ }
+
if ($subop == "digest-update") {
$feed_id = db_escape_string($_REQUEST['feed_id']);
$offset = db_escape_string($_REQUEST['offset']);
@@ -987,7 +1009,7 @@
print "<rpc-reply>";
$headlines = api_get_headlines($link, $feed_id, 10, $offset,
- '', ($feed_id == -4), true, true, "unread", "updated DESC");
+ '', ($feed_id == -4), true, false, "unread", "updated DESC");
//function api_get_headlines($link, $feed_id, $limit, $offset,
// $filter, $is_cat, $show_excerpt, $show_content, $view_mode) {
@@ -1011,19 +1033,6 @@
if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f);
}
- function feeds_sort_by_unread_rev($a, $b) {
- $a = $a['unread'];
- $b = $b['unread'];
-
- if ($a == $b) {
- return 0;
- }
- return ($a < $b) ? 1 : -1;
- }
-
- //uasort($feeds, 'feeds_sort_by_unread_rev');
- //$feeds = array_slice($feeds, 0, 10);
-
print "<feeds><![CDATA[" . json_encode($feeds) . "]]></feeds>";
print "</rpc-reply>";