]> git.wh0rd.org - tt-rss.git/blame - modules/popup-dialog.php
pref-feeds: rework external subscription notice
[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
ecace165 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\">";
ef8be8ea 67 print "<input type=\"hidden\" name=\"subop\" value=\"add\">";
442d77f1 68 print "<input type=\"hidden\" name=\"from\" value=\"tt-rss\">";
ef8be8ea 69
ecace165
AD
70 print "<div class=\"dlgSec\">".__("Feed")."</div>";
71 print "<div class=\"dlgSecCont\">";
72
73 print __("URL:") . " ";
74
75 print "<input size=\"40\" onblur=\"javascript:enableHotkeys()\"
18ab3d7a 76 onkeypress=\"return filterCR(event, subscribeToFeed)\"
ef8be8ea 77 onkeyup=\"toggleSubmitNotEmpty(this, 'fadd_submit_btn')\"
b5015f72 78 onchange=\"toggleSubmitNotEmpty(this, 'fadd_submit_btn')\"
ef8be8ea 79 onfocus=\"javascript:disableHotkeys()\" name=\"feed_url\"></td></tr>";
ecace165
AD
80
81 print "<br/>";
82
ef8be8ea 83 if (get_pref($link, 'ENABLE_FEED_CATS')) {
ecace165 84 print __('Place in category:') . " ";
ef8be8ea 85 print_feed_cat_select($link, "cat_id");
ef8be8ea
AD
86 }
87
ecace165
AD
88 print "</div>";
89
90
21f4756a
AD
91/* print "<tr><td colspan='2'><div class='insensitive'>";
92
93 print __("Some feeds require authentication. If you subscribe to such
94 feed, you will have to enter your login and password in Feed Editor");
95
96 print "</div></td></tr>"; */
97
b9073cd9
AD
98/* print "<div id='fadd_login_prompt'><br/>
99 <a href='javascript:appearBlockElement(\"fadd_login_container\",
100 \"fadd_login_prompt\")'>".__('Click here if this feed requires authentication.')."</a></div>"; */
f27de515 101
b9073cd9 102 print "<div id='fadd_login_container' style='display:none'>
ecace165
AD
103
104 <div class=\"dlgSec\">".__("Authentication")."</div>
105 <div class=\"dlgSecCont\">".
106
107 __('Login:') . " <input name='auth_login' size=\"20\"
108 onfocus=\"javascript:disableHotkeys()\"
109 onfocus=\"javascript:disableHotkeys()\"
110 onkeypress=\"return filterCR(event, subscribeToFeed)\"> ".
111 __('Password:') . "<input type='password'
112 name='auth_pass' size=\"20\"
113 onfocus=\"javascript:disableHotkeys()\"
114 onfocus=\"javascript:disableHotkeys()\"
115 onkeypress=\"return filterCR(event, subscribeToFeed)\">
116 </div></div>";
117
118
119 print "<div style=\"clear : both\">
120 <input type=\"checkbox\" id=\"fadd_login_check\"
121 onclick='checkboxToggleElement(this, \"fadd_login_container\")'>
122 <label for=\"fadd_login_check\">".
123 __('This feed requires authentication.')."</div>";
f27de515 124
ef8be8ea
AD
125 print "</form>";
126
ecace165 127 print "<div class=\"dlgButtons\">
ef8be8ea
AD
128 <input class=\"button\"
129 id=\"fadd_submit_btn\" disabled=\"true\"
18ab3d7a 130 type=\"submit\" onclick=\"return subscribeToFeed()\" value=\"".__('Subscribe')."\">
ef8be8ea
AD
131 <input class=\"button\"
132 type=\"submit\" onclick=\"return closeInfoBox()\"
ecace165
AD
133 value=\"".__('Cancel')."\"></div>";
134
5e6f933a 135 return;
ef8be8ea
AD
136 }
137
138 if ($id == "search") {
139
cc17c205 140 print "<div id=\"infoBoxTitle\">".__('Search')."</div>";
ef8be8ea
AD
141 print "<div class=\"infoBoxContents\">";
142
e6312f6c 143 print "<form id='search_form' onsubmit='return false'>";
ef8be8ea
AD
144
145 #$active_feed_id = db_escape_string($_GET["param"]);
146
147 $params = split(":", db_escape_string($_GET["param"]));
148
149 $active_feed_id = sprintf("%d", $params[0]);
150 $is_cat = $params[1] == "true";
151
5bac8c29
AD
152 print "<div class=\"dlgSec\">".__('Search')."</div>";
153
154 print "<div class=\"dlgSecCont\">";
155
156 print "<input name=\"query\" size=\"30\" type=\"search\"
ef8be8ea 157 onkeypress=\"return filterCR(event, search)\"
b5015f72 158 onchange=\"toggleSubmitNotEmpty(this, 'search_submit_btn')\"
ef8be8ea 159 onkeyup=\"toggleSubmitNotEmpty(this, 'search_submit_btn')\"
5bac8c29
AD
160 value=\"\">";
161
162 print " " . __('match on:')." ";
163
164 $search_fields = array(
165 "title" => __("Title"),
166 "content" => __("Content"),
167 "both" => __("Title or content"));
168
169 print_select_hash("match_on", 3, $search_fields);
170
171
172 print "<br/>".__('Limit search to:')." ";
ef8be8ea
AD
173
174 print "<select name=\"search_mode\">
cc17c205 175 <option value=\"all_feeds\">".__('All feeds')."</option>";
ef8be8ea
AD
176
177 $feed_title = getFeedTitle($link, $active_feed_id);
178
179 if (!$is_cat) {
180 $feed_cat_title = getFeedCatTitle($link, $active_feed_id);
181 } else {
182 $feed_cat_title = getCategoryTitle($link, $active_feed_id);
183 }
184
185 if ($active_feed_id && !$is_cat) {
cc17c205 186 print "<option selected value=\"this_feed\">$feed_title</option>";
ef8be8ea 187 } else {
cc17c205 188 print "<option disabled>".__('This feed')."</option>";
ef8be8ea
AD
189 }
190
191 if ($is_cat) {
192 $cat_preselected = "selected";
193 }
194
195 if (get_pref($link, 'ENABLE_FEED_CATS') && ($active_feed_id > 0 || $is_cat)) {
cc17c205 196 print "<option $cat_preselected value=\"this_cat\">$feed_cat_title</option>";
ef8be8ea 197 } else {
c4b0f96c 198 //print "<option disabled>".__('This category')."</option>";
ef8be8ea
AD
199 }
200
5bac8c29 201 print "</select>";
ef8be8ea 202
5bac8c29 203 print "</div>";
ef8be8ea
AD
204
205 print "</form>";
206
5bac8c29 207 print "<div class=\"dlgButtons\">
ef8be8ea
AD
208 <input type=\"submit\"
209 class=\"button\" onclick=\"javascript:search()\"
210 id=\"search_submit_btn\" disabled=\"true\"
cc17c205 211 value=\"".__('Search')."\">
ef8be8ea
AD
212 <input class=\"button\"
213 type=\"submit\" onclick=\"javascript:searchCancel()\"
cc17c205 214 value=\"".__('Cancel')."\"></div>";
ef8be8ea
AD
215
216 print "</div>";
217
5e6f933a
AD
218 return;
219
ef8be8ea
AD
220 }
221
ef8be8ea
AD
222 if ($id == "quickAddFilter") {
223
224 $active_feed_id = db_escape_string($_GET["param"]);
225
ecace165 226 print "<div id=\"infoBoxTitle\">".__('Create Filter')."</div>";
ef8be8ea
AD
227 print "<div class=\"infoBoxContents\">";
228
e6312f6c 229 print "<form id=\"filter_add_form\" onsubmit='return false'>";
ef8be8ea
AD
230
231 print "<input type=\"hidden\" name=\"op\" value=\"pref-filters\">";
232 print "<input type=\"hidden\" name=\"quiet\" value=\"1\">";
233 print "<input type=\"hidden\" name=\"subop\" value=\"add\">";
ef8be8ea
AD
234
235 $result = db_query($link, "SELECT id,description
236 FROM ttrss_filter_types ORDER BY description");
237
238 $filter_types = array();
239
240 while ($line = db_fetch_assoc($result)) {
241 //array_push($filter_types, $line["description"]);
89cb787e 242 $filter_types[$line["id"]] = __($line["description"]);
ef8be8ea
AD
243 }
244
10fa6615
AD
245 print "<div class=\"dlgSec\">".__("Match")."</div>";
246
247 print "<div class=\"dlgSecCont\">";
248
d0da85c2 249 print "<span id=\"filter_dlg_date_mod_box\" style=\"display : none\">";
6e278744 250 print __("Date") . " ";
44d0e774
AD
251
252 $filter_params = array(
253 "before" => __("before"),
254 "after" => __("after"));
255
256 print_select_hash("filter_date_modifier", "before", $filter_params);
257
258 print "&nbsp;</span>";
d0da85c2 259
8df90057 260 print "<input onkeypress=\"return filterCR(event, createFilter)\"
10fa6615
AD
261 onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
262 onchange=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
263 name=\"reg_exp\" size=\"30\" value=\"$reg_exp\">";
264
6e278744 265 print "<span id=\"filter_dlg_date_chk_box\" style=\"display : none\">";
d0da85c2
AD
266 print "&nbsp;<input class=\"button\"
267 type=\"submit\" onclick=\"return filterDlgCheckDate()\"
6e278744 268 value=\"".__('Check it')."\">";
d0da85c2
AD
269 print "</span>";
270
271 print "<br/> " . __("on field") . " ";
272 print_select_hash("filter_type", 1, $filter_types,
273 'onchange="filterDlgCheckType(this)"');
10fa6615
AD
274
275 print "<br/>";
276
277 print __("in") . " ";
278 print_feed_select($link, "feed_id", $active_feed_id);
279
280 print "</div>";
281
ecace165 282 print "<div class=\"dlgSec\">".__("Perform Action")."</div>";
10fa6615
AD
283
284 print "<div class=\"dlgSecCont\">";
285
286 print "<select name=\"action_id\"
287 onchange=\"filterDlgCheckAction(this)\">";
288
289 $result = db_query($link, "SELECT id,description FROM ttrss_filter_actions
290 ORDER BY name");
291
292 while ($line = db_fetch_assoc($result)) {
293 printf("<option value='%d'>%s</option>", $line["id"], __($line["description"]));
294 }
295
296 print "</select>";
297
143a4973
AD
298 print "<span id=\"filter_dlg_param_box\" style=\"display : none\">";
299 print " " . __("with parameters:") . " ";
300 print "<input size=\"20\"
074bf20c 301 onkeypress=\"return filterCR(event, createFilter)\"
143a4973 302 name=\"action_param\">";
6427a306
AD
303
304 print_label_select($link, "action_param_label", $action_param);
305
143a4973 306 print "</span>";
10fa6615 307
143a4973 308 print "&nbsp;"; // tiny layout hack
10fa6615
AD
309
310 print "</div>";
311
312 print "<div class=\"dlgSec\">".__("Options")."</div>";
313 print "<div class=\"dlgSecCont\">";
314
ecace165
AD
315 print "<div style=\"line-height : 100%\">";
316
10fa6615
AD
317 print "<input type=\"checkbox\" name=\"enabled\" id=\"enabled\" checked=\"1\">
318 <label for=\"enabled\">".__('Enabled')."</label><br/>";
319
320 print "<input type=\"checkbox\" name=\"inverse\" id=\"inverse\">
321 <label for=\"inverse\">".__('Inverse match')."</label>";
322
323 print "</div>";
ecace165 324 print "</div>";
10fa6615 325
ef8be8ea
AD
326 print "</form>";
327
10fa6615 328 print "<div class=\"dlgButtons\">";
ef8be8ea
AD
329
330 print "<input type=\"submit\"
331 id=\"infobox_submit\"
18ab3d7a 332 class=\"button\" onclick=\"return createFilter()\"
cc17c205 333 disabled=\"true\" value=\"".__('Create')."\"> ";
ef8be8ea
AD
334
335 print "<input class=\"button\"
336 type=\"submit\" onclick=\"return closeInfoBox()\"
cc17c205 337 value=\"".__('Cancel')."\">";
ef8be8ea
AD
338
339 print "</div>";
340
341// print "</td></tr></table>";
342
5e6f933a 343 return;
ef8be8ea
AD
344 }
345
a3656a41
AD
346 if ($id == "feedUpdateErrors") {
347
cc17c205 348 print "<div id=\"infoBoxTitle\">".__('Update Errors')."</div>";
a3656a41
AD
349 print "<div class=\"infoBoxContents\">";
350
cc17c205 351 print __("These feeds have not been updated because of errors:");
a3656a41
AD
352
353 $result = db_query($link, "SELECT id,title,feed_url,last_error
354 FROM ttrss_feeds WHERE last_error != '' AND owner_uid = ".$_SESSION["uid"]);
355
e8dd519b 356 print "<ul class='feedErrorsList'>";
a3656a41
AD
357
358 while ($line = db_fetch_assoc($result)) {
359 print "<li><b>" . $line["title"] . "</b> (" . $line["feed_url"] . "): " .
360 "<em>" . $line["last_error"] . "</em>";
361 }
362
363 print "</ul>";
a3656a41
AD
364
365 print "<div align='center'>";
366
367 print "<input class=\"button\"
368 type=\"submit\" onclick=\"return closeInfoBox()\"
cc17c205 369 value=\"".__('Close')."\">";
a3656a41
AD
370
371 print "</div>";
372
aa330b93 373 return;
a3656a41
AD
374 }
375
0b126ac2
AD
376 if ($id == "editArticleTags") {
377
cc17c205 378 print "<div id=\"infoBoxTitle\">".__('Edit Tags')."</div>";
0b126ac2
AD
379 print "<div class=\"infoBoxContents\">";
380
e6312f6c 381 print "<form id=\"tag_edit_form\" onsubmit='return false'>";
0b126ac2 382
cc17c205 383 print __("Tags for this article (separated by commas):")."<br>";
0b126ac2
AD
384
385 $tags = get_article_tags($link, $param);
386
387 $tags_str = join(", ", $tags);
388
d62a3b63
AD
389 print "<table width='100%'>";
390
391 print "<tr><td colspan='2'><input type=\"hidden\" name=\"id\" value=\"$param\"></td></tr>";
392
05fcdf52
AD
393 print "<tr><td colspan='2'><textarea rows='4' class='iedit' id='tags_str'
394 name='tags_str'>$tags_str</textarea>
395 <div class=\"autocomplete\" id=\"tags_choices\"
396 style=\"display:none\"></div>
397 </td></tr>";
d62a3b63 398
05fcdf52 399/* print "<tr><td>".__('Add existing tag:')."</td>";
0b126ac2 400
d62a3b63
AD
401 $result = db_query($link, "SELECT DISTINCT tag_name FROM ttrss_tags
402 WHERE owner_uid = '".$_SESSION["uid"]."' ORDER BY tag_name");
403
404 $found_tags = array();
405
406 array_push($found_tags, '');
407
408 while ($line = db_fetch_assoc($result)) {
e4609ea9 409 array_push($found_tags, truncate_string($line["tag_name"], 20));
d62a3b63
AD
410 }
411
412 print "<td align='right'>";
413
414 print_select("found_tags", '', $found_tags, "onchange=\"javascript:editTagsInsert()\"");
415
05fcdf52 416 print "</td>";
d62a3b63 417
05fcdf52 418 print "</tr>"; */
d62a3b63
AD
419
420 print "</table>";
0b126ac2
AD
421
422 print "</form>";
423
424 print "<div align='right'>";
425
426 print "<input class=\"button\"
427 type=\"submit\" onclick=\"return editTagsSave()\"
cc17c205 428 value=\"".__('Save')."\"> ";
0b126ac2
AD
429
430 print "<input class=\"button\"
431 type=\"submit\" onclick=\"return closeInfoBox()\"
cc17c205 432 value=\"".__('Cancel')."\">";
0b126ac2
AD
433
434
435 print "</div>";
436
5e6f933a 437 return;
0b126ac2
AD
438 }
439
0979b696 440 if ($id == "printTagCloud") {
27258a90 441 print "<div id=\"infoBoxTitle\">".__('Tag cloud')."</div>";
0979b696
AD
442 print "<div class=\"infoBoxContents\">";
443
dcac082b 444 print __("Showing most popular tags ")." (<a
ef1ac7c7 445 href='javascript:toggleTags(true)'>".__('browse more')."</a>):<br/>";
0979b696
AD
446
447 print "<div class=\"tagCloudContainer\">";
448
449 printTagCloud($link);
450
451 print "</div>";
452
453 print "<div align='center'>";
454 print "<input class=\"button\"
455 type=\"submit\" onclick=\"return closeInfoBox()\"
3076c7b8 456 value=\"".__('Close this window')."\">";
0979b696
AD
457 print "</div>";
458
459 print "</div>";
460
461 return;
462 }
463
5e6f933a
AD
464 print "<div id='infoBoxTitle'>Internal Error</div>
465 <div id='infoBoxContents'>
466 <p>Unknown dialog <b>$id</b></p>
467 </div></div>";
468
ef8be8ea
AD
469 }
470?>