]> git.wh0rd.org - tt-rss.git/blob - viewfeed.js
further javascript cleanups
[tt-rss.git] / viewfeed.js
1 var active_feed_id = false;
2 var active_post_id = false;
3 var total_unread = 0;
4
5 var xmlhttp_rpc = false;
6
7 /*@cc_on @*/
8 /*@if (@_jscript_version >= 5)
9 // JScript gives us Conditional compilation, we can cope with old IE versions.
10 // and security blocked creation of the objects.
11 try {
12 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
13 } catch (e) {
14 try {
15 xmlhttp_rpc = new ActiveXObject("Microsoft.XMLHTTP");
16 } catch (E) {
17 xmlhttp_rpc = false;
18 }
19 }
20 @end @*/
21
22 if (!xmlhttp_rpc && typeof XMLHttpRequest!='undefined') {
23 xmlhttp_rpc = new XMLHttpRequest();
24 }
25
26 function view(id, feed_id) {
27
28 enableHotkeys();
29
30 var crow = document.getElementById("RROW-" + id);
31
32 if (crow.className.match("Unread")) {
33 var umark = parent.document.getElementById("FEEDU-" + feed_id);
34 umark.innerHTML = umark.innerHTML - 1;
35 crow.className = crow.className.replace("Unread", "");
36
37 if (umark.innerHTML == "0") {
38 var feedr = parent.document.getElementById("FEEDR-" + feed_id);
39 feedr.className = feedr.className.replace("Unread", "");
40 }
41
42 total_unread--;
43 }
44
45 cleanSelected("headlinesList");
46
47 var upd_img_pic = document.getElementById("FUPDPIC-" + id);
48
49 if (upd_img_pic) {
50 upd_img_pic.innerHTML = "";
51 }
52
53 var unread_rows = getVisibleUnreadHeadlines();
54
55 if (unread_rows.length == 0) {
56 var button = document.getElementById("btnCatchupPage");
57 if (button) {
58 button.className = "disabledButton";
59 button.href = "";
60 }
61 }
62
63 active_post_id = id;
64 active_feed_id = feed_id;
65
66 var content = parent.document.getElementById("content-frame");
67
68 if (content) {
69 content.src = "backend.php?op=view&addheader=true&id=" + param_escape(id);
70 markHeadline(active_post_id);
71 }
72 }
73
74 function toggleMark(id, toggle) {
75
76 // notify("Toggle mark: " + id + ", " + toggle);
77
78 if (!xmlhttp_ready(xmlhttp_rpc)) {
79 printLockingError();
80 return;
81 }
82
83 var mark_img = document.getElementById("FMARKPIC-" + id);
84
85 var query = "backend.php?op=rpc&id=" + id + "&subop=mark";
86
87 if (toggle == true) {
88 mark_img.src = "images/mark_set.png";
89 mark_img.alt = "Reset mark";
90 mark_img.setAttribute('onclick', 'javascript:toggleMark('+id+', false)');
91 query = query + "&mark=1";
92 } else {
93 mark_img.src = "images/mark_unset.png";
94 mark_img.alt = "Set mark";
95 mark_img.setAttribute('onclick', 'javascript:toggleMark('+id+', true)');
96 query = query + "&mark=0";
97 }
98
99 xmlhttp_rpc.open("GET", query, true);
100 xmlhttp_rpc.onreadystatechange=rpc_notify_callback;
101 xmlhttp_rpc.send(null);
102
103 }
104
105 function moveToPost(mode) {
106
107 var rows = getVisibleHeadlineIds();
108
109 var prev_id;
110 var next_id;
111
112 if (active_post_id == false) {
113 next_id = getFirstVisibleHeadlineId();
114 prev_id = getLastVisibleHeadlineId();
115 } else {
116 for (var i = 0; i < rows.length; i++) {
117 if (rows[i] == active_post_id) {
118 prev_id = rows[i-1];
119 next_id = rows[i+1];
120 }
121 }
122 }
123
124 if (mode == "next") {
125 if (next_id != undefined) {
126 view(next_id, active_feed_id);
127 }
128 }
129
130 if (mode == "prev") {
131 if ( prev_id != undefined) {
132 view(prev_id, active_feed_id);
133 }
134 }
135 }
136
137 function localHotkeyHandler(keycode) {
138
139 if (keycode == 78) {
140 return moveToPost('next');
141 }
142
143 if (keycode == 80) {
144 return moveToPost('prev');
145 }
146
147 // FIXME
148 // if (keycode == 85) {
149 // return viewfeed(active_feed_id, active_offset, "ForceUpdate");
150 // }
151
152 // alert("KC: " + keycode);
153
154 }