]>
Commit | Line | Data |
---|---|---|
c01f40f4 AD |
1 | var last_feeds = []; |
2 | ||
1ca8997b AD |
3 | var _active_feed_id = false; |
4 | var _active_feed_offset = false; | |
5 | ||
22933e5e AD |
6 | function view(article_id) { |
7 | try { | |
8 | new Effect.Fade('A-' + article_id, {duration : 0.3}); | |
9 | ||
10 | return true; | |
11 | } catch (e) { | |
12 | exception_error("view", e); | |
13 | } | |
14 | } | |
15 | ||
1ca8997b | 16 | function viewfeed(feed_id, offset) { |
b41c2549 AD |
17 | try { |
18 | ||
1ca8997b AD |
19 | if (!feed_id) feed_id = _active_feed_id; |
20 | ||
21 | if (!offset) | |
22 | offset = 0; | |
23 | else | |
24 | offset = _active_feed_offset + offset; | |
25 | ||
26 | var query = "backend.php?op=rpc&subop=digest-update&feed_id=" + feed_id + | |
27 | "&offset=" + offset; | |
28 | ||
29 | console.log(query); | |
30 | ||
b41c2549 | 31 | new Ajax.Request("backend.php", { |
1ca8997b | 32 | parameters: query, |
b41c2549 AD |
33 | onComplete: function(transport) { |
34 | digest_update(transport); | |
1ca8997b AD |
35 | _active_feed_id = feed_id; |
36 | _active_feed_offset = offset; | |
b41c2549 AD |
37 | } }); |
38 | ||
39 | } catch (e) { | |
40 | exception_error("view", e); | |
41 | } | |
42 | } | |
43 | ||
c01f40f4 AD |
44 | function find_feed(feeds, feed_id) { |
45 | try { | |
46 | for (var i = 0; i < feeds.length; i++) { | |
47 | if (feeds[i].id == feed_id) | |
48 | return feeds[i]; | |
49 | } | |
50 | ||
51 | return false; | |
52 | ||
53 | } catch (e) { | |
54 | exception_error("find_feed", e); | |
55 | } | |
56 | } | |
57 | ||
b41c2549 AD |
58 | function get_feed_icon(feed) { |
59 | try { | |
60 | if (feed.has_icon) | |
61 | return 'icons/' + feed.id + '.ico'; | |
62 | ||
63 | if (feed.id == -1) | |
64 | return 'images/mark_set.png'; | |
65 | ||
66 | if (feed.id == -2) | |
67 | return 'images/pub_set.png'; | |
68 | ||
69 | if (feed.id == -3) | |
70 | return 'images/fresh.png'; | |
71 | ||
72 | if (feed.id == -4) | |
73 | return 'images/tag.png'; | |
74 | ||
75 | if (feed.id < -10) | |
76 | return 'images/label.png'; | |
77 | ||
78 | } catch (e) { | |
79 | exception_error("get_feed_icon", e); | |
80 | } | |
81 | } | |
82 | ||
c01f40f4 AD |
83 | function add_feed_entry(feed) { |
84 | try { | |
85 | var icon_part = ""; | |
86 | ||
b41c2549 | 87 | icon_part = "<img src='" + get_feed_icon(feed) + "'/>"; |
c01f40f4 AD |
88 | |
89 | var tmp_html = "<li>" + | |
90 | icon_part + | |
1ca8997b | 91 | "<a href=\"#\" onclick=\"viewfeed("+feed.id+")\">" + feed.title + |
c01f40f4 AD |
92 | "<div class='unread-ctr'>" + feed.unread + "</div>" + |
93 | "</li>"; | |
94 | ||
95 | $("feeds-content").innerHTML += tmp_html; | |
96 | ||
97 | } catch (e) { | |
98 | exception_error("add_feed_entry", e); | |
99 | } | |
100 | } | |
101 | ||
b41c2549 | 102 | function add_latest_entry(article, feed) { |
c01f40f4 | 103 | try { |
b41c2549 AD |
104 | |
105 | ||
106 | //$("latest-content").innerHTML += "bbb"; | |
c01f40f4 AD |
107 | |
108 | } catch (e) { | |
109 | exception_error("add_latest_entry", e); | |
110 | } | |
111 | } | |
112 | ||
113 | function add_headline_entry(article, feed) { | |
114 | try { | |
115 | ||
116 | var icon_part = ""; | |
117 | ||
118 | if (article.has_icon) | |
1ca8997b | 119 | icon_part = "<img src='icons/" + article.feed_id + ".ico'/>"; |
c01f40f4 | 120 | |
22933e5e | 121 | var tmp_html = "<li id=\"A-"+article.id+"\">" + |
c01f40f4 | 122 | icon_part + |
22933e5e AD |
123 | "<a target=\"_blank\" href=\""+article.link+"\""+ |
124 | "onclick=\"return view("+article.id+")\" class='title'>" + | |
125 | article.title + "</a>" + | |
1ca8997b | 126 | "<div class='body'><div class='excerpt'>" + article.excerpt + "</div>" + |
c01f40f4 | 127 | "<div class='info'><a>" + feed.title + "</a> " + " @ " + |
b41c2549 | 128 | new Date(article.updated * 1000) + "</div>" + |
1ca8997b | 129 | "</div></li>"; |
c01f40f4 AD |
130 | |
131 | $("headlines-content").innerHTML += tmp_html; | |
132 | ||
133 | } catch (e) { | |
134 | exception_error("add_headline_entry", e); | |
135 | } | |
136 | } | |
137 | ||
138 | function digest_update(transport) { | |
139 | try { | |
140 | var feeds = transport.responseXML.getElementsByTagName('feeds')[0]; | |
141 | var headlines = transport.responseXML.getElementsByTagName('headlines')[0]; | |
142 | ||
143 | if (feeds) { | |
c01f40f4 AD |
144 | feeds = eval("(" + feeds.firstChild.nodeValue + ")"); |
145 | ||
1ca8997b AD |
146 | last_feeds = feeds; |
147 | ||
b41c2549 AD |
148 | $('feeds-content').innerHTML = ""; |
149 | ||
c01f40f4 AD |
150 | for (var i = 0; i < feeds.length; i++) { |
151 | add_feed_entry(feeds[i]); | |
152 | } | |
1ca8997b AD |
153 | } else { |
154 | feeds = last_feeds; | |
c01f40f4 AD |
155 | } |
156 | ||
157 | if (headlines) { | |
158 | headlines = eval("(" + headlines.firstChild.nodeValue + ")"); | |
159 | ||
b41c2549 AD |
160 | $('headlines-content').innerHTML = ""; |
161 | ||
1ca8997b AD |
162 | Element.hide('headlines-content'); |
163 | ||
c01f40f4 AD |
164 | for (var i = 0; i < headlines.length; i++) { |
165 | add_headline_entry(headlines[i], find_feed(feeds, headlines[i].feed_id)); | |
166 | } | |
b41c2549 | 167 | |
22933e5e AD |
168 | // $('headlines-content').innerHTML += "<li>" + |
169 | // "<div class='body'><a href=\"#\" onclick=\"viewfeed(false, 10)\">" + | |
170 | // __("More articles...") + "</a></div></li>"; | |
1ca8997b AD |
171 | |
172 | new Effect.Appear('headlines-content'); | |
173 | ||
c01f40f4 AD |
174 | } |
175 | ||
176 | } catch (e) { | |
177 | exception_error("digest_update", e); | |
178 | } | |
179 | } | |
180 | ||
181 | function digest_init() { | |
182 | try { | |
183 | ||
184 | new Ajax.Request("backend.php", { | |
185 | parameters: "backend.php?op=rpc&subop=digest-init", | |
186 | onComplete: function(transport) { | |
187 | digest_update(transport); | |
1ca8997b | 188 | window.setTimeout('viewfeed(-4)', 100); |
c01f40f4 AD |
189 | } }); |
190 | ||
191 | } catch (e) { | |
192 | exception_error("digest_init", e); | |
193 | } | |
194 | } |