]> git.wh0rd.org - tt-rss.git/blame - modules/popup-dialog.php
update_daemon2: don't expect client part to be executable
[tt-rss.git] / modules / popup-dialog.php
CommitLineData
ef8be8ea
AD
1<?php
2 function module_popup_dialog($link) {
3 $id = $_GET["id"];
0b126ac2 4 $param = db_escape_string($_GET["param"]);
ef8be8ea 5
ef16ae37
AD
6 if ($id == "explainError") {
7
cc17c205 8 print "<div id=\"infoBoxTitle\">".__('Notice')."</div>";
ef16ae37
AD
9 print "<div class=\"infoBoxContents\">";
10
11 if ($param == 1) {
cc17c205 12 print __("Update daemon is enabled in configuration, but daemon
ef16ae37
AD
13 process is not running, which prevents all feeds from updating. Please
14 start the daemon process or contact instance owner.");
f6854e44
AD
15
16 $stamp = (int)read_stampfile("update_daemon.stamp");
17
18 print "<p>" . __("Last update:") . " " . date("Y.m.d, G:i", $stamp);
19
ef16ae37
AD
20 }
21
d9fa39f1 22 if ($param == 2) {
4d1d0a45
AD
23 $msg = check_for_update($link, false);
24
25 if (!$msg) {
cc17c205 26 print __("You are running the latest version of Tiny Tiny RSS. The
4d1d0a45
AD
27 fact that you are seeing this dialog is probably a bug.");
28 } else {
29 print $msg;
30 }
d9fa39f1
AD
31
32 }
33
8e00ae9b
AD
34 if ($param == 3) {
35 print __("TT-RSS has detected that update daemon is taking too long to
36 perform a feed update. This could indicate a problem like crash
37 or a hang. Please check the daemon process or contact instance
38 owner.");
f6854e44
AD
39
40 $stamp = (int)read_stampfile("update_daemon.stamp");
41
42 print "<p>" . __("Last update:") . " " . date("Y.m.d, G:i", $stamp);
43
8e00ae9b
AD
44 }
45
ef16ae37
AD
46 print "</div>";
47
48 print "<div align='center'>";
49
50 print "<input class=\"button\"
51 type=\"submit\" onclick=\"return closeInfoBox()\"
cc17c205 52 value=\"".__('Close this window')."\">";
ef16ae37
AD
53
54 print "</div>";
55
5e6f933a 56 return;
ef16ae37
AD
57 }
58
ef8be8ea
AD
59 if ($id == "quickAddFeed") {
60
cc17c205 61 print "<div id=\"infoBoxTitle\">".__('Subscribe to feed')."</div>";
ef8be8ea
AD
62 print "<div class=\"infoBoxContents\">";
63
e6312f6c 64 print "<form id='feed_add_form' onsubmit='return false'>";
ef8be8ea
AD
65
66 print "<input type=\"hidden\" name=\"op\" value=\"pref-feeds\">";
365f95dc 67 /* print "<input type=\"hidden\" name=\"quiet\" value=\"1\">"; */
ef8be8ea 68 print "<input type=\"hidden\" name=\"subop\" value=\"add\">";
442d77f1 69 print "<input type=\"hidden\" name=\"from\" value=\"tt-rss\">";
ef8be8ea
AD
70
71 print "<table width='100%'>
766d42ae 72 <tr><td width='20%'>".__('Feed URL:')."</td><td>
ef8be8ea 73 <input class=\"iedit\" onblur=\"javascript:enableHotkeys()\"
18ab3d7a 74 onkeypress=\"return filterCR(event, subscribeToFeed)\"
ef8be8ea 75 onkeyup=\"toggleSubmitNotEmpty(this, 'fadd_submit_btn')\"
b5015f72 76 onchange=\"toggleSubmitNotEmpty(this, 'fadd_submit_btn')\"
ef8be8ea
AD
77 onfocus=\"javascript:disableHotkeys()\" name=\"feed_url\"></td></tr>";
78
79 if (get_pref($link, 'ENABLE_FEED_CATS')) {
cc17c205 80 print "<tr><td>".__('Category:')."</td><td>";
ef8be8ea
AD
81 print_feed_cat_select($link, "cat_id");
82 print "</td></tr>";
83 }
84
21f4756a
AD
85/* print "<tr><td colspan='2'><div class='insensitive'>";
86
87 print __("Some feeds require authentication. If you subscribe to such
88 feed, you will have to enter your login and password in Feed Editor");
89
90 print "</div></td></tr>"; */
91
ef8be8ea 92 print "</table>";
f27de515 93
b9073cd9
AD
94/* print "<div id='fadd_login_prompt'><br/>
95 <a href='javascript:appearBlockElement(\"fadd_login_container\",
96 \"fadd_login_prompt\")'>".__('Click here if this feed requires authentication.')."</a></div>"; */
f27de515 97
b9073cd9 98 print "<div id='fadd_login_container' style='display:none'>
f27de515 99 <table width='100%'>
18ab3d7a 100 <tr><td width='20%'>".__('Login:')."</td><td><input name='auth_login' class='iedit' onfocus=\"javascript:disableHotkeys()\" onfocus=\"javascript:disableHotkeys()\" onkeypress=\"return filterCR(event, subscribeToFeed)\"></td></tr>
89cb787e 101 <tr><td>".__('Password:')."</td><td><input type='password'
18ab3d7a 102 name='auth_pass' class='iedit' onfocus=\"javascript:disableHotkeys()\" onfocus=\"javascript:disableHotkeys()\" onkeypress=\"return filterCR(event, subscribeToFeed)\"></td></tr>
f27de515
AD
103 </table>
104 </div>";
105
ef8be8ea
AD
106 print "</form>";
107
b9073cd9 108 print "<div style='float : right'>
ef8be8ea
AD
109 <input class=\"button\"
110 id=\"fadd_submit_btn\" disabled=\"true\"
18ab3d7a 111 type=\"submit\" onclick=\"return subscribeToFeed()\" value=\"".__('Subscribe')."\">
ef8be8ea
AD
112 <input class=\"button\"
113 type=\"submit\" onclick=\"return closeInfoBox()\"
b9073cd9
AD
114 value=\"".__('Cancel')."\"></div>
115
116 <div>
117 <input type=\"checkbox\" id=\"fadd_login_check\"
118 onclick='checkboxToggleElement(this, \"fadd_login_container\")'>
119 <label for=\"fadd_login_check\">".
120 __('This feed requires authentication.')."</div>";
5e6f933a
AD
121
122 return;
ef8be8ea
AD
123 }
124
125 if ($id == "search") {
126
cc17c205 127 print "<div id=\"infoBoxTitle\">".__('Search')."</div>";
ef8be8ea
AD
128 print "<div class=\"infoBoxContents\">";
129
e6312f6c 130 print "<form id='search_form' onsubmit='return false'>";
ef8be8ea
AD
131
132 #$active_feed_id = db_escape_string($_GET["param"]);
133
134 $params = split(":", db_escape_string($_GET["param"]));
135
136 $active_feed_id = sprintf("%d", $params[0]);
137 $is_cat = $params[1] == "true";
138
cc17c205 139 print "<table width='100%'><tr><td>".__('Search:')."</td><td>";
ef8be8ea 140
3dc8ee84 141 print "<input name=\"query\" class=\"iedit\" type=\"search\"
ef8be8ea 142 onkeypress=\"return filterCR(event, search)\"
b5015f72 143 onchange=\"toggleSubmitNotEmpty(this, 'search_submit_btn')\"
ef8be8ea
AD
144 onkeyup=\"toggleSubmitNotEmpty(this, 'search_submit_btn')\"
145 value=\"\">
146 </td></tr>";
147
cc17c205 148 print "<tr><td>".__('Where:')."</td><td>";
ef8be8ea
AD
149
150 print "<select name=\"search_mode\">
cc17c205 151 <option value=\"all_feeds\">".__('All feeds')."</option>";
ef8be8ea
AD
152
153 $feed_title = getFeedTitle($link, $active_feed_id);
154
155 if (!$is_cat) {
156 $feed_cat_title = getFeedCatTitle($link, $active_feed_id);
157 } else {
158 $feed_cat_title = getCategoryTitle($link, $active_feed_id);
159 }
160
161 if ($active_feed_id && !$is_cat) {
cc17c205 162 print "<option selected value=\"this_feed\">$feed_title</option>";
ef8be8ea 163 } else {
cc17c205 164 print "<option disabled>".__('This feed')."</option>";
ef8be8ea
AD
165 }
166
167 if ($is_cat) {
168 $cat_preselected = "selected";
169 }
170
171 if (get_pref($link, 'ENABLE_FEED_CATS') && ($active_feed_id > 0 || $is_cat)) {
cc17c205 172 print "<option $cat_preselected value=\"this_cat\">$feed_cat_title</option>";
ef8be8ea 173 } else {
c4b0f96c 174 //print "<option disabled>".__('This category')."</option>";
ef8be8ea
AD
175 }
176
177 print "</select></td></tr>";
178
cc17c205 179 print "<tr><td>".__('Match on:')."</td><td>";
ef8be8ea
AD
180
181 $search_fields = array(
cc17c205
AD
182 "title" => __("Title"),
183 "content" => __("Content"),
184 "both" => __("Title or content"));
ef8be8ea
AD
185
186 print_select_hash("match_on", 3, $search_fields);
187
188 print "</td></tr></table>";
189
190 print "</form>";
191
192 print "<div align=\"right\">
193 <input type=\"submit\"
194 class=\"button\" onclick=\"javascript:search()\"
195 id=\"search_submit_btn\" disabled=\"true\"
cc17c205 196 value=\"".__('Search')."\">
ef8be8ea
AD
197 <input class=\"button\"
198 type=\"submit\" onclick=\"javascript:searchCancel()\"
cc17c205 199 value=\"".__('Cancel')."\"></div>";
ef8be8ea
AD
200
201 print "</div>";
202
5e6f933a
AD
203 return;
204
ef8be8ea
AD
205 }
206
207 if ($id == "quickAddLabel") {
cc17c205 208 print "<div id=\"infoBoxTitle\">".__('Create label')."</div>";
ef8be8ea
AD
209 print "<div class=\"infoBoxContents\">";
210
e6312f6c 211 print "<form id=\"label_edit_form\" onsubmit='return false'>";
ef8be8ea
AD
212
213 print "<input type=\"hidden\" name=\"op\" value=\"pref-labels\">";
214 print "<input type=\"hidden\" name=\"subop\" value=\"add\">";
215
216 print "<table width='100%'>";
217
cc17c205 218 print "<tr><td>".__('Caption:')."</td>
ef8be8ea 219 <td><input onkeypress=\"return filterCR(event, addLabel)\"
b5015f72
AD
220 onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
221 onchange=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
222 name=\"description\" class=\"iedit\">";
ef8be8ea
AD
223
224 print "</td></tr>";
225
226 print "<tr><td colspan=\"2\">
cc17c205 227 <p>".__('SQL Expression:')."</p>";
ef8be8ea
AD
228
229 print "<textarea onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
230 rows=\"4\" name=\"sql_exp\" class=\"iedit\"></textarea>";
ef8be8ea
AD
231 print "</td></tr></table>";
232
233 print "</form>";
234
235 print "<div style=\"display : none\" id=\"label_test_result\"></div>";
236
237 print "<div align='right'>";
238
b44d8c51 239 print "<div style='float : left'>";
6a5efb07
AD
240 print "<input type=\"submit\"
241 class=\"button\" onclick=\"return displayHelpInfobox(1)\"
242 value=\"".__('Help')."\"> ";
b44d8c51 243 print "</div>";
6a5efb07 244
cc17c205 245 print "<input type=\"submit\" onclick=\"labelTest()\" value=\"".__('Test')."\">
ef8be8ea
AD
246 ";
247
248 print "<input type=\"submit\"
249 id=\"infobox_submit\"
250 disabled=\"true\"
251 class=\"button\" onclick=\"return addLabel()\"
cc17c205 252 value=\"".__('Create')."\"> ";
ef8be8ea
AD
253
254 print "<input class=\"button\"
255 type=\"submit\" onclick=\"return labelEditCancel()\"
cc17c205 256 value=\"".__('Cancel')."\">";
5e6f933a
AD
257
258 return;
ef8be8ea
AD
259 }
260
261 if ($id == "quickAddFilter") {
262
263 $active_feed_id = db_escape_string($_GET["param"]);
264
cc17c205 265 print "<div id=\"infoBoxTitle\">".__('Create filter')."</div>";
ef8be8ea
AD
266 print "<div class=\"infoBoxContents\">";
267
e6312f6c 268 print "<form id=\"filter_add_form\" onsubmit='return false'>";
ef8be8ea
AD
269
270 print "<input type=\"hidden\" name=\"op\" value=\"pref-filters\">";
271 print "<input type=\"hidden\" name=\"quiet\" value=\"1\">";
272 print "<input type=\"hidden\" name=\"subop\" value=\"add\">";
273
274// print "<div class=\"notice\"><b>Note:</b> filter will only apply to new articles.</div>";
275
276 $result = db_query($link, "SELECT id,description
277 FROM ttrss_filter_types ORDER BY description");
278
279 $filter_types = array();
280
281 while ($line = db_fetch_assoc($result)) {
282 //array_push($filter_types, $line["description"]);
89cb787e 283 $filter_types[$line["id"]] = __($line["description"]);
ef8be8ea
AD
284 }
285
286 print "<table width='100%'>";
287
cc17c205 288 print "<tr><td>".__('Match:')."</td>
18ab3d7a 289 <td><input onkeypress=\"return filterCR(event, createFilter)\"
b5015f72
AD
290 onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
291 onchange=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
8011ac36
AD
292 name=\"reg_exp\" class=\"iedit\">";
293
cc17c205 294 print "</td></tr><tr><td>".__('On field:')."</td><td>";
8011ac36
AD
295
296 print_select_hash("filter_type", 1, $filter_types, "class=\"_iedit\"");
ef8be8ea
AD
297
298 print "</td></tr>";
cc17c205 299 print "<tr><td>".__('Feed:')."</td><td colspan='2'>";
ef8be8ea
AD
300
301 print_feed_select($link, "feed_id", $active_feed_id);
302
303 print "</td></tr>";
304
cc17c205 305 print "<tr><td>".__('Action:')."</td>";
ef8be8ea 306
073ca0e6
AD
307 print "<td colspan='2'><select name=\"action_id\"
308 onchange=\"filterDlgCheckAction(this)\">";
ef8be8ea
AD
309
310 $result = db_query($link, "SELECT id,description FROM ttrss_filter_actions
311 ORDER BY name");
312
313 while ($line = db_fetch_assoc($result)) {
89cb787e 314 printf("<option value='%d'>%s</option>", $line["id"], __($line["description"]));
ef8be8ea
AD
315 }
316
317 print "</select>";
318
073ca0e6
AD
319 print "</td></tr>";
320
cc17c205 321 print "<tr><td>".__('Params:')."</td>";
073ca0e6
AD
322
323 print "<td><input disabled class='iedit' name='action_param'></td></tr>";
324
cc17c205 325 print "<tr><td valign='top'>".__('Options:')."</td><td>";
3f2ff803
AD
326
327 print "<input type=\"checkbox\" name=\"inverse\" id=\"inverse\">
cc17c205 328 <label for=\"inverse\">".__('Inverse match')."</label></td></tr>";
3f2ff803 329
073ca0e6 330 print "</table>";
ef8be8ea
AD
331
332 print "</form>";
333
334 print "<div align='right'>";
335
336 print "<input type=\"submit\"
337 id=\"infobox_submit\"
18ab3d7a 338 class=\"button\" onclick=\"return createFilter()\"
cc17c205 339 disabled=\"true\" value=\"".__('Create')."\"> ";
ef8be8ea
AD
340
341 print "<input class=\"button\"
342 type=\"submit\" onclick=\"return closeInfoBox()\"
cc17c205 343 value=\"".__('Cancel')."\">";
ef8be8ea
AD
344
345 print "</div>";
346
347// print "</td></tr></table>";
348
5e6f933a 349 return;
ef8be8ea
AD
350 }
351
a3656a41
AD
352 if ($id == "feedUpdateErrors") {
353
cc17c205 354 print "<div id=\"infoBoxTitle\">".__('Update Errors')."</div>";
a3656a41
AD
355 print "<div class=\"infoBoxContents\">";
356
cc17c205 357 print __("These feeds have not been updated because of errors:");
a3656a41
AD
358
359 $result = db_query($link, "SELECT id,title,feed_url,last_error
360 FROM ttrss_feeds WHERE last_error != '' AND owner_uid = ".$_SESSION["uid"]);
361
e8dd519b 362 print "<ul class='feedErrorsList'>";
a3656a41
AD
363
364 while ($line = db_fetch_assoc($result)) {
365 print "<li><b>" . $line["title"] . "</b> (" . $line["feed_url"] . "): " .
366 "<em>" . $line["last_error"] . "</em>";
367 }
368
369 print "</ul>";
370 print "</div>";
371
372 print "<div align='center'>";
373
374 print "<input class=\"button\"
375 type=\"submit\" onclick=\"return closeInfoBox()\"
cc17c205 376 value=\"".__('Close')."\">";
a3656a41
AD
377
378 print "</div>";
379
aa330b93 380 return;
a3656a41
AD
381 }
382
0b126ac2
AD
383 if ($id == "editArticleTags") {
384
cc17c205 385 print "<div id=\"infoBoxTitle\">".__('Edit Tags')."</div>";
0b126ac2
AD
386 print "<div class=\"infoBoxContents\">";
387
e6312f6c 388 print "<form id=\"tag_edit_form\" onsubmit='return false'>";
0b126ac2 389
cc17c205 390 print __("Tags for this article (separated by commas):")."<br>";
0b126ac2
AD
391
392 $tags = get_article_tags($link, $param);
393
394 $tags_str = join(", ", $tags);
395
d62a3b63
AD
396 print "<table width='100%'>";
397
398 print "<tr><td colspan='2'><input type=\"hidden\" name=\"id\" value=\"$param\"></td></tr>";
399
05fcdf52
AD
400 print "<tr><td colspan='2'><textarea rows='4' class='iedit' id='tags_str'
401 name='tags_str'>$tags_str</textarea>
402 <div class=\"autocomplete\" id=\"tags_choices\"
403 style=\"display:none\"></div>
404 </td></tr>";
d62a3b63 405
05fcdf52 406/* print "<tr><td>".__('Add existing tag:')."</td>";
0b126ac2 407
d62a3b63
AD
408 $result = db_query($link, "SELECT DISTINCT tag_name FROM ttrss_tags
409 WHERE owner_uid = '".$_SESSION["uid"]."' ORDER BY tag_name");
410
411 $found_tags = array();
412
413 array_push($found_tags, '');
414
415 while ($line = db_fetch_assoc($result)) {
e4609ea9 416 array_push($found_tags, truncate_string($line["tag_name"], 20));
d62a3b63
AD
417 }
418
419 print "<td align='right'>";
420
421 print_select("found_tags", '', $found_tags, "onchange=\"javascript:editTagsInsert()\"");
422
05fcdf52 423 print "</td>";
d62a3b63 424
05fcdf52 425 print "</tr>"; */
d62a3b63
AD
426
427 print "</table>";
0b126ac2
AD
428
429 print "</form>";
430
431 print "<div align='right'>";
432
433 print "<input class=\"button\"
434 type=\"submit\" onclick=\"return editTagsSave()\"
cc17c205 435 value=\"".__('Save')."\"> ";
0b126ac2
AD
436
437 print "<input class=\"button\"
438 type=\"submit\" onclick=\"return closeInfoBox()\"
cc17c205 439 value=\"".__('Cancel')."\">";
0b126ac2
AD
440
441
442 print "</div>";
443
5e6f933a 444 return;
0b126ac2
AD
445 }
446
0979b696 447 if ($id == "printTagCloud") {
27258a90 448 print "<div id=\"infoBoxTitle\">".__('Tag cloud')."</div>";
0979b696
AD
449 print "<div class=\"infoBoxContents\">";
450
dcac082b 451 print __("Showing most popular tags ")." (<a
ef1ac7c7 452 href='javascript:toggleTags(true)'>".__('browse more')."</a>):<br/>";
0979b696
AD
453
454 print "<div class=\"tagCloudContainer\">";
455
456 printTagCloud($link);
457
458 print "</div>";
459
460 print "<div align='center'>";
461 print "<input class=\"button\"
462 type=\"submit\" onclick=\"return closeInfoBox()\"
3076c7b8 463 value=\"".__('Close this window')."\">";
0979b696
AD
464 print "</div>";
465
466 print "</div>";
467
468 return;
469 }
470
5e6f933a
AD
471 print "<div id='infoBoxTitle'>Internal Error</div>
472 <div id='infoBoxContents'>
473 <p>Unknown dialog <b>$id</b></p>
474 </div></div>";
475
ef8be8ea
AD
476 }
477?>