digest: ajax loading for zoom()

This commit is contained in:
Andrew Dolgov 2010-09-12 19:52:15 +04:00
parent 41de958121
commit d8ea9902b6
2 changed files with 42 additions and 31 deletions

View File

@ -102,24 +102,28 @@ function set_selected_feed(feed_id) {
} }
} }
function zoom(article_id) { function zoom(elem, article_id) {
try { try {
var elem = $('A-' + article_id); //alert(elem + "/" + article_id);
if (elem) { elem.innerHTML = "<img src='images/indicator_tiny.gif'> " +
var divs = elem.getElementsByTagName('DIV'); __("Loading, please wait...");
for (var i = 0; i < divs.length; i++) { new Ajax.Request("backend.php", {
if (divs[i].className == 'excerpt') parameters: "?op=rpc&subop=digest-get-contents&article_id=" +
Element.hide(divs[i]); article_id,
onComplete: function(transport) {
fatal_error_check(transport);
if (divs[i].className == 'content') if (transport.responseXML) {
Element.show(divs[i]); 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) { } catch (e) {
exception_error("zoom", e); exception_error("zoom", e);
@ -346,10 +350,8 @@ function add_headline_entry(article, feed, no_effects) {
"onclick=\"return view("+article.id+")\" class='title'>" + "onclick=\"return view("+article.id+")\" class='title'>" +
article.title + "</a>" + article.title + "</a>" +
"<div class='body'>" + "<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>" + article.excerpt + "</div>" +
"<div style='display : none' class='content'>" +
article.content + "</div>" +
"<div class='info'><a href=\#\" onclick=\"viewfeed("+feed.id+")\">" + "<div class='info'><a href=\#\" onclick=\"viewfeed("+feed.id+")\">" +
feed.title + "</a> " + tags_part + " @ " + feed.title + "</a> " + tags_part + " @ " +
new Date(article.updated * 1000) + "</div>" + new Date(article.updated * 1000) + "</div>" +

View File

@ -978,6 +978,28 @@
return; 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") { if ($subop == "digest-update") {
$feed_id = db_escape_string($_REQUEST['feed_id']); $feed_id = db_escape_string($_REQUEST['feed_id']);
$offset = db_escape_string($_REQUEST['offset']); $offset = db_escape_string($_REQUEST['offset']);
@ -987,7 +1009,7 @@
print "<rpc-reply>"; print "<rpc-reply>";
$headlines = api_get_headlines($link, $feed_id, 10, $offset, $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, //function api_get_headlines($link, $feed_id, $limit, $offset,
// $filter, $is_cat, $show_excerpt, $show_content, $view_mode) { // $filter, $is_cat, $show_excerpt, $show_content, $view_mode) {
@ -1011,19 +1033,6 @@
if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f); 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 "<feeds><![CDATA[" . json_encode($feeds) . "]]></feeds>";
print "</rpc-reply>"; print "</rpc-reply>";