]>
Commit | Line | Data |
---|---|---|
6101b0e1 AD |
1 | var backend = "backend.php"; |
2 | ||
3 | function toggleMarked(id, elem) { | |
4 | ||
5 | var toggled = false; | |
6 | ||
7 | if (elem.getAttribute("toggled") == "true") { | |
8 | toggled = 1; | |
9 | } else { | |
10 | toggled = 0; | |
11 | } | |
12 | ||
13 | var query = "?op=toggleMarked&id=" + id + "&mark=" + toggled; | |
14 | ||
15 | new Ajax.Request(backend, { | |
16 | parameters: query, | |
17 | onComplete: function (transport) { | |
18 | // | |
19 | } }); | |
20 | } | |
21 | ||
22 | function togglePublished(id, elem) { | |
23 | ||
24 | var toggled = false; | |
25 | ||
26 | if (elem.getAttribute("toggled") == "true") { | |
27 | toggled = 1; | |
28 | } else { | |
29 | toggled = 0; | |
30 | } | |
31 | ||
513ebe42 | 32 | var query = "?op=togglePublished&id=" + id + "&pub=" + toggled; |
6101b0e1 AD |
33 | |
34 | new Ajax.Request(backend, { | |
35 | parameters: query, | |
36 | onComplete: function (transport) { | |
37 | // | |
38 | } }); | |
39 | ||
40 | } | |
41 | ||
b9fca867 AD |
42 | function toggleUnread(id, elem) { |
43 | ||
44 | var toggled = false; | |
45 | ||
46 | if (elem.getAttribute("toggled") == "true") { | |
47 | toggled = 1; | |
48 | } else { | |
49 | toggled = 0; | |
50 | } | |
51 | ||
52 | var query = "?op=toggleUnread&id=" + id + "&unread=" + toggled; | |
53 | ||
54 | new Ajax.Request(backend, { | |
55 | parameters: query, | |
56 | onComplete: function (transport) { | |
57 | // | |
58 | } }); | |
59 | ||
60 | } | |
61 | ||
f0a0c1ff AD |
62 | function setPref(elem) { |
63 | var toggled = false; | |
64 | var id = elem.id; | |
65 | ||
66 | if (elem.getAttribute("toggled") == "true") { | |
67 | toggled = 1; | |
68 | } else { | |
69 | toggled = 0; | |
70 | } | |
71 | ||
72 | var query = "?op=setPref&id=" + id + "&to=" + toggled; | |
73 | ||
74 | new Ajax.Request(backend, { | |
75 | parameters: query, | |
76 | onComplete: function (transport) { | |
77 | // | |
78 | } }); | |
79 | ||
80 | } | |
a6d56d81 AD |
81 | |
82 | // Go directly to another item in the same feed | |
83 | function goToSibling(article_id, feed_id, link, step) { | |
84 | var links = linksInFeed(feed_id); | |
85 | for (var i=0 ; i<links.length ; i++) { | |
86 | var re = new RegExp(".*article\\.php\\?id="+article_id+"&.*"); | |
87 | if (!re.test(links[i].href)) continue; | |
88 | // here, we've found the current article | |
89 | var index = i + step; | |
90 | if (index < 0) { | |
91 | markAsRead(feed_id); | |
92 | iui.showPage($("feed-"+feed_id), true); | |
93 | return false; | |
94 | } | |
95 | if (index >= links.length) { | |
96 | showRestOfFeed(feed_id); | |
97 | return false; | |
98 | } | |
99 | console.log(links[index]); | |
100 | var match = links[index].href.match(/.*article\.php\?(.*)/); | |
101 | var qs = match[1]; | |
102 | var backwards = false; | |
103 | if (step < 0) backwards = true; | |
104 | link.setAttribute("selected", "progress"); | |
105 | function unselect() { link.removeAttribute("selected"); } | |
106 | iui.showPageByHref("article.php?"+qs, null, null, null, unselect, backwards); | |
107 | return false; | |
108 | } | |
109 | return false; | |
110 | } | |
111 | function goPrev(article_id, feed_id, link) { | |
112 | return goToSibling(article_id, feed_id, link, -1); | |
113 | } | |
114 | function goNext(article_id, feed_id, link) { | |
115 | return goToSibling(article_id, feed_id, link, 1); | |
116 | } | |
117 | ||
118 | // Get all the links in the feed. The all_links variable includes the "get more article" link | |
119 | function linksInFeed(feed_id, all_links) { | |
120 | var feed_content = $("feed-"+feed_id); | |
121 | var links_raw = feed_content.getElementsByTagName("a"); | |
122 | if (all_links) return links_raw; | |
123 | var links = []; | |
124 | // filter the array to remove the "get more articles" link | |
125 | // and the "search" link (which is always first) | |
126 | for (var i=1 ; i<links_raw.length ; i++) { | |
127 | if (links_raw[i].href.match(/.*article\.php\?id=.*/)) { | |
128 | links.push(links_raw[i]); | |
129 | } | |
130 | } | |
131 | return links; | |
132 | } | |
133 | ||
134 | // Adds the "read" class to all read links in the feed | |
135 | function markAsRead(feed_id) { | |
136 | var links = linksInFeed(feed_id); | |
137 | for (var j=0 ; j<links.length ; j++) { | |
138 | var match = links[j].href.match(/.*article\.php\?id=(\d+)&.*/); | |
139 | if ($("article-"+match[1])) { | |
140 | links[j].className = "read"; | |
141 | } | |
142 | } | |
143 | } | |
144 | ||
145 | // Go the the articles list and expand the "get more articles" link | |
146 | function showRestOfFeed(feed_id) { | |
147 | var links_raw = linksInFeed(feed_id, true); | |
148 | var lastlink = links_raw[links_raw.length - 1]; | |
149 | if (lastlink.target == "_replace") { | |
150 | // It's a "get more articles" link | |
151 | iui.showPage($("feed-"+feed_id), true); | |
152 | // Mark old items a "read" | |
153 | markAsRead(feed_id); | |
154 | // Simulate click on the "get more articles" link | |
155 | lastlink.setAttribute("selected", "progress"); | |
156 | function unselect() { lastlink.removeAttribute("selected"); } | |
157 | setTimeout(window.scrollTo, 0, 0, 1000); | |
158 | iui.showPageByHref(lastlink.href, null, null, lastlink, unselect); | |
159 | } else { | |
160 | iui.showPage($("home"), true); | |
161 | } | |
162 | } | |
cfad9259 | 163 |