3 var _active_feed_id = false;
4 var _active_feed_offset = false;
6 function viewfeed(feed_id, offset) {
9 if (!feed_id) feed_id = _active_feed_id;
14 offset = _active_feed_offset + offset;
16 var query = "backend.php?op=rpc&subop=digest-update&feed_id=" + feed_id +
21 new Ajax.Request("backend.php", {
23 onComplete: function(transport) {
24 digest_update(transport);
25 _active_feed_id = feed_id;
26 _active_feed_offset = offset;
30 exception_error("view", e);
34 function find_feed(feeds, feed_id) {
36 for (var i = 0; i < feeds.length; i++) {
37 if (feeds[i].id == feed_id)
44 exception_error("find_feed", e);
48 function get_feed_icon(feed) {
51 return 'icons/' + feed.id + '.ico';
54 return 'images/mark_set.png';
57 return 'images/pub_set.png';
60 return 'images/fresh.png';
63 return 'images/tag.png';
66 return 'images/label.png';
69 exception_error("get_feed_icon", e);
73 function add_feed_entry(feed) {
77 icon_part = "<img src='" + get_feed_icon(feed) + "'/>";
79 var tmp_html = "<li>" +
81 "<a href=\"#\" onclick=\"viewfeed("+feed.id+")\">" + feed.title +
82 "<div class='unread-ctr'>" + feed.unread + "</div>" +
85 $("feeds-content").innerHTML += tmp_html;
88 exception_error("add_feed_entry", e);
92 function add_latest_entry(article, feed) {
96 //$("latest-content").innerHTML += "bbb";
99 exception_error("add_latest_entry", e);
103 function add_headline_entry(article, feed) {
108 if (article.has_icon)
109 icon_part = "<img src='icons/" + article.feed_id + ".ico'/>";
111 var tmp_html = "<li>" +
113 "<a class='title'>" + article.title + "</a>" +
114 "<div class='body'><div class='excerpt'>" + article.excerpt + "</div>" +
115 "<div class='info'><a>" + feed.title + "</a> " + " @ " +
116 new Date(article.updated * 1000) + "</div>" +
119 $("headlines-content").innerHTML += tmp_html;
122 exception_error("add_headline_entry", e);
126 function digest_update(transport) {
128 var feeds = transport.responseXML.getElementsByTagName('feeds')[0];
129 var headlines = transport.responseXML.getElementsByTagName('headlines')[0];
132 feeds = eval("(" + feeds.firstChild.nodeValue + ")");
136 $('feeds-content').innerHTML = "";
138 for (var i = 0; i < feeds.length; i++) {
139 add_feed_entry(feeds[i]);
146 headlines = eval("(" + headlines.firstChild.nodeValue + ")");
148 $('headlines-content').innerHTML = "";
150 Element.hide('headlines-content');
152 for (var i = 0; i < headlines.length; i++) {
153 add_headline_entry(headlines[i], find_feed(feeds, headlines[i].feed_id));
156 $('headlines-content').innerHTML += "<li>" +
157 "<div class='body'><a href=\"#\" onclick=\"viewfeed(false, 10)\">" +
158 __("More articles...") + "</a></div></li>";
160 new Effect.Appear('headlines-content');
165 exception_error("digest_update", e);
169 function digest_init() {
172 new Ajax.Request("backend.php", {
173 parameters: "backend.php?op=rpc&subop=digest-init",
174 onComplete: function(transport) {
175 digest_update(transport);
176 window.setTimeout('viewfeed(-4)', 100);
180 exception_error("digest_init", e);