From d8ea9902b6d9a8fce00bd826c9b654397a97bd0f Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 12 Sep 2010 19:52:15 +0400 Subject: [PATCH] digest: ajax loading for zoom() --- digest.js | 36 +++++++++++++++++++----------------- modules/backend-rpc.php | 37 +++++++++++++++++++++++-------------- 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 = " " + + __("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 + "" + "
" + - "
" + + "
" + article.excerpt + "
" + - "" + "
" + feed.title + " " + tags_part + " @ " + new Date(article.updated * 1000) + "
" + 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 ""; + + print "
"; + + print "
"; + + return; + } + if ($subop == "digest-update") { $feed_id = db_escape_string($_REQUEST['feed_id']); $offset = db_escape_string($_REQUEST['offset']); @@ -987,7 +1009,7 @@ print ""; $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 ""; print "";