small digest page improvements
This commit is contained in:
parent
c01f40f4d9
commit
b41c254984
|
@ -126,6 +126,14 @@ a:hover {
|
||||||
padding : 0px;
|
padding : 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#feeds ul#feeds-content li a {
|
||||||
|
color : #659a4c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#feeds ul#feeds-content li a:hover {
|
||||||
|
color : gray;
|
||||||
|
}
|
||||||
|
|
||||||
#headlines {
|
#headlines {
|
||||||
padding : 5px;
|
padding : 5px;
|
||||||
font-size : 14px;
|
font-size : 14px;
|
||||||
|
|
57
digest.js
57
digest.js
|
@ -1,5 +1,19 @@
|
||||||
var last_feeds = [];
|
var last_feeds = [];
|
||||||
|
|
||||||
|
function view(feed_id) {
|
||||||
|
try {
|
||||||
|
|
||||||
|
new Ajax.Request("backend.php", {
|
||||||
|
parameters: "backend.php?op=rpc&subop=digest-init&feed_id=" + feed_id,
|
||||||
|
onComplete: function(transport) {
|
||||||
|
digest_update(transport);
|
||||||
|
} });
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("view", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function find_feed(feeds, feed_id) {
|
function find_feed(feeds, feed_id) {
|
||||||
try {
|
try {
|
||||||
for (var i = 0; i < feeds.length; i++) {
|
for (var i = 0; i < feeds.length; i++) {
|
||||||
|
@ -14,16 +28,40 @@ function find_feed(feeds, feed_id) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_feed_icon(feed) {
|
||||||
|
try {
|
||||||
|
if (feed.has_icon)
|
||||||
|
return 'icons/' + feed.id + '.ico';
|
||||||
|
|
||||||
|
if (feed.id == -1)
|
||||||
|
return 'images/mark_set.png';
|
||||||
|
|
||||||
|
if (feed.id == -2)
|
||||||
|
return 'images/pub_set.png';
|
||||||
|
|
||||||
|
if (feed.id == -3)
|
||||||
|
return 'images/fresh.png';
|
||||||
|
|
||||||
|
if (feed.id == -4)
|
||||||
|
return 'images/tag.png';
|
||||||
|
|
||||||
|
if (feed.id < -10)
|
||||||
|
return 'images/label.png';
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("get_feed_icon", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function add_feed_entry(feed) {
|
function add_feed_entry(feed) {
|
||||||
try {
|
try {
|
||||||
var icon_part = "";
|
var icon_part = "";
|
||||||
|
|
||||||
if (feed.has_icon)
|
icon_part = "<img src='" + get_feed_icon(feed) + "'/>";
|
||||||
icon_part = "<img alt='zz' src='icons/" + feed.id + ".ico'/>";
|
|
||||||
|
|
||||||
var tmp_html = "<li>" +
|
var tmp_html = "<li>" +
|
||||||
icon_part +
|
icon_part +
|
||||||
feed.title +
|
"<a href=\"#\" onclick=\"view("+feed.id+")\">" + feed.title +
|
||||||
"<div class='unread-ctr'>" + feed.unread + "</div>" +
|
"<div class='unread-ctr'>" + feed.unread + "</div>" +
|
||||||
"</li>";
|
"</li>";
|
||||||
|
|
||||||
|
@ -34,9 +72,12 @@ function add_feed_entry(feed) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_latest_entry(article) {
|
function add_latest_entry(article, feed) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
|
||||||
|
//$("latest-content").innerHTML += "bbb";
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
exception_error("add_latest_entry", e);
|
exception_error("add_latest_entry", e);
|
||||||
}
|
}
|
||||||
|
@ -55,7 +96,7 @@ function add_headline_entry(article, feed) {
|
||||||
"<a class='title'>" + article.title + "</a>" +
|
"<a class='title'>" + article.title + "</a>" +
|
||||||
"<div class='excerpt'>" + article.excerpt + "</div>" +
|
"<div class='excerpt'>" + article.excerpt + "</div>" +
|
||||||
"<div class='info'><a>" + feed.title + "</a> " + " @ " +
|
"<div class='info'><a>" + feed.title + "</a> " + " @ " +
|
||||||
article.updated + "</div>" +
|
new Date(article.updated * 1000) + "</div>" +
|
||||||
"</li>";
|
"</li>";
|
||||||
|
|
||||||
$("headlines-content").innerHTML += tmp_html;
|
$("headlines-content").innerHTML += tmp_html;
|
||||||
|
@ -75,6 +116,8 @@ function digest_update(transport) {
|
||||||
|
|
||||||
feeds = eval("(" + feeds.firstChild.nodeValue + ")");
|
feeds = eval("(" + feeds.firstChild.nodeValue + ")");
|
||||||
|
|
||||||
|
$('feeds-content').innerHTML = "";
|
||||||
|
|
||||||
for (var i = 0; i < feeds.length; i++) {
|
for (var i = 0; i < feeds.length; i++) {
|
||||||
add_feed_entry(feeds[i]);
|
add_feed_entry(feeds[i]);
|
||||||
}
|
}
|
||||||
|
@ -83,9 +126,13 @@ function digest_update(transport) {
|
||||||
if (headlines) {
|
if (headlines) {
|
||||||
headlines = eval("(" + headlines.firstChild.nodeValue + ")");
|
headlines = eval("(" + headlines.firstChild.nodeValue + ")");
|
||||||
|
|
||||||
|
$('headlines-content').innerHTML = "";
|
||||||
|
|
||||||
for (var i = 0; i < headlines.length; i++) {
|
for (var i = 0; i < headlines.length; i++) {
|
||||||
add_headline_entry(headlines[i], find_feed(feeds, headlines[i].feed_id));
|
add_headline_entry(headlines[i], find_feed(feeds, headlines[i].feed_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$('headlines-content').innerHTML += "<li><a>More articles...</a></li>";
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -39,7 +39,6 @@
|
||||||
<script type="text/javascript" src="lib/prototype.js"></script>
|
<script type="text/javascript" src="lib/prototype.js"></script>
|
||||||
<script type="text/javascript" src="lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"></script>
|
<script type="text/javascript" src="lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"></script>
|
||||||
<script type="text/javascript" charset="utf-8" src="localized_js.php?<?php echo $dt_add ?>"></script>
|
<script type="text/javascript" charset="utf-8" src="localized_js.php?<?php echo $dt_add ?>"></script>
|
||||||
<script type="text/javascript" charset="utf-8" src="tt-rss.js?<?php echo $dt_add ?>"></script>
|
|
||||||
<script type="text/javascript" charset="utf-8" src="functions.js?<?php echo $dt_add ?>"></script>
|
<script type="text/javascript" charset="utf-8" src="functions.js?<?php echo $dt_add ?>"></script>
|
||||||
|
|
||||||
<script type="text/javascript" src="digest.js"></script>
|
<script type="text/javascript" src="digest.js"></script>
|
||||||
|
|
|
@ -6653,51 +6653,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function api_get_feeds($link, $cat_id, $unread_only, $limit, $offset) {
|
function api_get_feeds($link, $cat_id, $unread_only, $limit, $offset) {
|
||||||
if ($limit) {
|
|
||||||
$limit_qpart = "LIMIT $limit OFFSET $offset";
|
|
||||||
} else {
|
|
||||||
$limit_qpart = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$cat_id) {
|
|
||||||
$result = db_query($link, "SELECT
|
|
||||||
id, feed_url, cat_id, title, ".
|
|
||||||
SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
|
|
||||||
FROM ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"] .
|
|
||||||
" ORDER BY cat_id, title " . $limit_qpart);
|
|
||||||
} else {
|
|
||||||
$result = db_query($link, "SELECT
|
|
||||||
id, feed_url, cat_id, title, ".
|
|
||||||
SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
|
|
||||||
FROM ttrss_feeds WHERE
|
|
||||||
cat_id = '$cat_id' AND owner_uid = " . $_SESSION["uid"] .
|
|
||||||
" ORDER BY cat_id, title " . $limit_qpart);
|
|
||||||
}
|
|
||||||
|
|
||||||
$feeds = array();
|
$feeds = array();
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
|
||||||
|
|
||||||
$unread = getFeedUnread($link, $line["id"]);
|
|
||||||
|
|
||||||
$has_icon = feed_has_icon($line['id']);
|
|
||||||
|
|
||||||
if ($unread || !$unread_only) {
|
|
||||||
|
|
||||||
$row = array(
|
|
||||||
"feed_url" => $line["feed_url"],
|
|
||||||
"title" => $line["title"],
|
|
||||||
"id" => (int)$line["id"],
|
|
||||||
"unread" => (int)$unread,
|
|
||||||
"has_icon" => $has_icon,
|
|
||||||
"cat_id" => (int)$line["cat_id"],
|
|
||||||
"last_updated" => strtotime($line["last_updated"])
|
|
||||||
);
|
|
||||||
|
|
||||||
array_push($feeds, $row);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Labels */
|
/* Labels */
|
||||||
|
|
||||||
if (!$cat_id || $cat_id == -2) {
|
if (!$cat_id || $cat_id == -2) {
|
||||||
|
@ -6741,6 +6699,52 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Real feeds */
|
||||||
|
|
||||||
|
if ($limit) {
|
||||||
|
$limit_qpart = "LIMIT $limit OFFSET $offset";
|
||||||
|
} else {
|
||||||
|
$limit_qpart = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$cat_id) {
|
||||||
|
$result = db_query($link, "SELECT
|
||||||
|
id, feed_url, cat_id, title, ".
|
||||||
|
SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
|
||||||
|
FROM ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"] .
|
||||||
|
" ORDER BY cat_id, title " . $limit_qpart);
|
||||||
|
} else {
|
||||||
|
$result = db_query($link, "SELECT
|
||||||
|
id, feed_url, cat_id, title, ".
|
||||||
|
SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
|
||||||
|
FROM ttrss_feeds WHERE
|
||||||
|
cat_id = '$cat_id' AND owner_uid = " . $_SESSION["uid"] .
|
||||||
|
" ORDER BY cat_id, title " . $limit_qpart);
|
||||||
|
}
|
||||||
|
|
||||||
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
|
||||||
|
$unread = getFeedUnread($link, $line["id"]);
|
||||||
|
|
||||||
|
$has_icon = feed_has_icon($line['id']);
|
||||||
|
|
||||||
|
if ($unread || !$unread_only) {
|
||||||
|
|
||||||
|
$row = array(
|
||||||
|
"feed_url" => $line["feed_url"],
|
||||||
|
"title" => $line["title"],
|
||||||
|
"id" => (int)$line["id"],
|
||||||
|
"unread" => (int)$unread,
|
||||||
|
"has_icon" => $has_icon,
|
||||||
|
"cat_id" => (int)$line["cat_id"],
|
||||||
|
"last_updated" => strtotime($line["last_updated"])
|
||||||
|
);
|
||||||
|
|
||||||
|
array_push($feeds, $row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $feeds;
|
return $feeds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -979,13 +979,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($subop == "digest-init") {
|
if ($subop == "digest-init") {
|
||||||
|
$feed_id = db_escape_string($_REQUEST['feed_id']);
|
||||||
|
|
||||||
|
if (!$feed_id) $feed_id = -4;
|
||||||
|
|
||||||
print "<rpc-reply>";
|
print "<rpc-reply>";
|
||||||
|
|
||||||
$tmp_feeds = api_get_feeds($link, false, true, false, 0);
|
$tmp_feeds = api_get_feeds($link, false, true, false, 0);
|
||||||
$feeds = array();
|
$feeds = array();
|
||||||
|
|
||||||
foreach ($tmp_feeds as $f) {
|
foreach ($tmp_feeds as $f) {
|
||||||
if ($f['id'] > 0) array_push($feeds, $f);
|
if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f);
|
||||||
}
|
}
|
||||||
|
|
||||||
function feeds_sort_by_unread_rev($a, $b) {
|
function feeds_sort_by_unread_rev($a, $b) {
|
||||||
|
@ -998,13 +1002,13 @@
|
||||||
return ($a < $b) ? 1 : -1;
|
return ($a < $b) ? 1 : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// uasort($feeds, 'feeds_sort_by_unread_rev');
|
//uasort($feeds, 'feeds_sort_by_unread_rev');
|
||||||
// $feeds = array_slice($feeds, 0, 10);
|
//$feeds = array_slice($feeds, 0, 10);
|
||||||
|
|
||||||
print "<feeds><![CDATA[" . json_encode($feeds) . "]]></feeds>";
|
print "<feeds><![CDATA[" . json_encode($feeds) . "]]></feeds>";
|
||||||
|
|
||||||
$headlines = api_get_headlines($link, -4, 20, 0,
|
$headlines = api_get_headlines($link, $feed_id, 10, 0,
|
||||||
'', true, true, false, "all_articles", "updated DESC");
|
'', ($feed_id == -4), true, false, "all_articles", "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) {
|
||||||
|
|
Loading…
Reference in New Issue