Cleaning up error handling in CGI functions - they now send back
[privoxy.git] / templates / edit-actions-for-url
1 #
2 #
3 # Available variables:
4 #
5 # deanimate-gifs-param-first
6 # deanimate-gifs-param-last
7 # hide-from-param-block
8 # hide-from-param-custom
9 # hide-from-param
10 # hide-referer-param-forge
11 # hide-referer-param-block
12 # hide-referer-param-custom
13 # hide-referer-param
14 # hide-user-agent-param
15 # image-blocker-param-logo
16 # image-blocker-param-blank
17 # image-blocker-param-custom
18 # image-blocker-param-logo
19 #
20 #
21 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
22 <html>
23
24 <head>
25 <meta http-equiv="Content-Style-Type" content="text/css">
26 <meta http-equiv="Content-Script-Type" content="text/javascript">
27 <meta name="robots" content="noindex,nofollow">
28
29 <title>JunkBuster: Edit actions</title>
30
31 <style type="text/css">
32 body         { font-family: Helvetica, Helv, Arial, Sans-Serif, sans-serif }
33 td.action    { font-weight: bold; font-style: italic; white-space: nowrap }
34 th           { font-weight: bold; background-color: #999999 }
35 # This is the key to the color names below:
36 # bg=background, en="Enable", dis="Disable", noc="No Change"
37 # 1=odd rows, 2=even rows, h=Table header
38 tr.bg1       { background-color: #EEEEEE }
39 td.en1       { background-color: #EEFFEE }
40 td.dis1      { background-color: #FFEEEE }
41 td.noc1      { background-color: #EEEEFF }
42 tr.bg2       { background-color: #DDDDDD }
43 td.en2       { background-color: #DDFFDD }
44 td.dis2      { background-color: #FFDDDD }
45 td.noc2      { background-color: #DDDDFF }
46 th.enh       { background-color: #99FF99 }
47 th.dish      { background-color: #FF9999 }
48 th.noch      { background-color: #9999FF }
49 </style>
50
51 <script type="text/javascript">
52 <!--
53 function show_more(target, checkbox)
54 {
55    if (checkbox.checked)
56    { target.style.display = ""; }
57    else
58    { target.style.display = "none"; }
59 }
60
61 function disable_unless(target, checkbox)
62 {
63    target.disabled = !(checkbox.checked);
64 }
65 //-->
66 </script>
67 </head>
68
69 <body>
70
71 <p>&nbsp;</p>
72 <form method="GET" action="http://i.j.b/edit-actions-submit" id="myform">
73   <input type="hidden" name="filename" value="@filename@">
74   <input type="hidden" name="ver" value="@ver@">
75   <input type="hidden" name="section" value="@section@">
76   <table border="0" width="100%" cellspacing="0">
77     <tr align="left">
78       <th>Action</th>
79       <th>Description</th>
80       <th class="enh" align="center">Enable</th>
81       <th class="dish" align="center">Disable</th>
82       <th class="noch" align="center">No Change</th>
83     </tr>
84     <tr class="bg1" align="left" valign="top">
85       <td class="action">+add-header</td>
86       <td>Adds HTTP headers.</td>
87       <td class="en1" align="center" valign="middle"><input type="radio"
88         name="add-header" id="add_header_y" value="Y" @add-header-y@
89         onclick="show_more(add_header_opts,add_header_y)"></td>
90       <td class="dis1" align="center" valign="middle"><input type="radio"
91         name="add-header" value="N" @add-header-n@
92         onclick="show_more(add_header_opts,add_header_y)"></td>
93       <td class="noc1" align="center" valign="middle"><input type="radio"
94         name="add-header" value="X" @add-header-x@
95         onclick="show_more(add_header_opts,add_header_y)"></td>
96     </tr>
97     <tr class="bg1" align="left" valign="top" id="add_header_opts">
98       <td>&nbsp;</td>
99       <td colspan="4">To edit the settings for this option, <input
100         type="checkbox" name="add-header-edit" id="add_header_edit"
101         value="ON"><label for="add_header_edit">check here</label> and then
102         click &quot;Submit&quot;.</td>
103     </tr>
104     <tr class="bg2" align="left" valign="top">
105       <td class="action">+block</td>
106       <td>Block the request</td>
107       <td class="en2" align="center" valign="middle"><input type="radio"
108         name="block" value="Y" @block-y@
109         ></td>
110       <td class="dis2" align="center" valign="middle"><input type="radio"
111         name="block" value="N" @block-n@
112         ></td>
113       <td class="noc2" align="center" valign="middle"><input type="radio"
114         name="block" value="X" @block-x@
115         ></td>
116     </tr>
117     <tr class="bg1" align="left" valign="top">
118       <td class="action">+deanimate-gifs</td>
119       <td>Replace animated GIFs with their (first/last) frame.</td>
120       <td class="en1" align="center" valign="middle"><input type="radio"
121         name="deanimate-gifs" id="deanimate_gifs_y" value="Y" @deanimate-gifs-y@
122         onclick="show_more(deanimate_opts,deanimate_gifs_y)"></td>
123       <td class="dis1" align="center" valign="middle"><input type="radio"
124         name="deanimate-gifs" value="N" @deanimate-gifs-n@
125         onclick="show_more(deanimate_opts,deanimate_gifs_y)"></td>
126       <td class="noc1" align="center" valign="middle"><input type="radio"
127         name="deanimate-gifs" value="X" @deanimate-gifs-x@
128         onclick="show_more(deanimate_opts,deanimate_gifs_y)"></td>
129     </tr>
130     <tr class="bg1" align="left" valign="top" id="deanimate_opts">
131       <td>&nbsp;</td>
132       <td colspan="4">Use the <input type="radio" name="deanimate-gifs-mode"
133         value="first" id="deanimate_first" @deanimate-gifs-param-first@><label
134         for="deanimate_first">first frame</label>&nbsp;&nbsp; <input
135         type="radio" name="deanimate-gifs-mode" value="last" 
136         id="deanimate_last" @deanimate-gifs-param-last@><label
137         for="deanimate_last">last frame</label></td>
138     </tr>
139     <tr class="bg2" align="left" valign="top">
140       <td class="action">+fast-redirects</td>
141       <td>Bypass some tracking URLs.</td>
142       <td class="en2" align="center" valign="middle"><input type="radio"
143         name="fast-redirects" value="Y" @fast-redirects-y@
144         ></td>
145       <td class="dis2" align="center" valign="middle"><input type="radio"
146         name="fast-redirects" value="N" @fast-redirects-n@
147         ></td>
148       <td class="noc2" align="center" valign="middle"><input type="radio"
149         name="fast-redirects" value="X" @fast-redirects-x@
150         ></td>
151     </tr>
152     <tr class="bg1" align="left" valign="top">
153       <td class="action">+filter</td>
154       <td>Filter the website through the re_filterfile</td>
155       <td class="en1" align="center" valign="middle"><input type="radio"
156         name="filter" value="Y" @filter-y@
157         ></td>
158       <td class="dis1" align="center" valign="middle"><input type="radio"
159         name="filter" value="N" @filter-n@ 
160         ></td>
161       <td class="noc1" align="center" valign="middle"><input type="radio"
162         name="filter" value="X" @filter-x@
163          ></td>
164     </tr>
165     <tr class="bg2" align="left" valign="top">
166       <td class="action">+hide-forwarded</td>
167       <td>Block any existing X-Forwarded-for header, and do not add a new one.</td>
168       <td class="en2" align="center" valign="middle"><input type="radio"
169         name="hide-forwarded" value="Y" @hide-forwarded-y@
170         ></td>
171       <td class="dis2" align="center" valign="middle"><input type="radio"
172         name="hide-forwarded" value="N" @hide-forwarded-n@
173         ></td>
174       <td class="noc2" align="center" valign="middle"><input type="radio"
175         name="hide-forwarded" value="X" @hide-forwarded-x@
176         ></td>
177     </tr>
178     <tr class="bg1" align="left" valign="top">
179       <td class="action">+hide-from</td>
180       <td>Stop old web browsers from sending the user's e-mail address with
181         every request.</td>
182       <td class="en1" align="center" valign="middle"><input type="radio"
183         name="hide-from" id="hide_from_y" value="Y" @hide-from-y@
184         onclick="show_more(hide_from_opts,hide_from_y)"></td>
185       <td class="dis1" align="center" valign="middle"><input type="radio"
186         name="hide-from" value="N" @hide-from-n@
187         onclick="show_more(hide_from_opts,hide_from_y)"></td>
188       <td class="noc1" align="center" valign="middle"><input type="radio"
189         name="hide-from" value="X" @hide-from-x@
190         onclick="show_more(hide_from_opts,hide_from_y)"></td>
191     </tr>
192     <tr class="bg1" align="left" valign="top" id="hide_from_opts">
193       <td>&nbsp;</td>
194       <td colspan="4"><input type="radio" name="hide-from-mode" value="block"
195         onclick="disable_unless(from_param, from_mode_set)"
196         @hide-from-param-block@ id="from_mode_block"><label
197         for="from_mode_block">Remove completely</label><br>
198         <input type="radio" name="hide-from-mode" value="CUSTOM" 
199         onclick="disable_unless(from_param, from_mode_set)"
200         @hide-from-param-custom@ id="from_mode_set"><label
201         for="from_mode_set">Fake e-mail address:</label><br>
202         <input type="text" name="hide-from-param" id="from_param"
203         size="40" value="@hide-from-param@"></td>
204     </tr>
205     <tr class="bg2" align="left" valign="top">
206       <td class="action">+hide-referer</td>
207       <td>Helps prevent tracking by not sending the URL of the previous web
208         page.&nbsp;</td>
209       <td class="en2" align="center" valign="middle"><input type="radio"
210         name="hide-referer" id="hide_referer_y" value="Y" @hide-referer-y@
211         onclick="show_more(hide_referer_opts,hide_referer_y)"></td>
212       <td class="dis2" align="center" valign="middle"><input type="radio"
213         name="hide-referer" id="hide_referer_n" value="N" @hide-referer-n@
214         onclick="show_more(hide_referer_opts,hide_referer_y)"></td>
215       <td class="noc2" align="center" valign="middle"><input type="radio"
216         name="hide-referer" id="hide_referer_x" value="X" @hide-referer-x@
217         onclick="show_more(hide_referer_opts,hide_referer_y)"
218         ></td>
219     </tr>
220     <tr class="bg2" align="left" valign="top" id="hide_referer_opts">
221       <td>&nbsp;</td>
222       <td colspan="4"><input type="radio" name="hide-referer-mode" value="block"
223         onclick="disable_unless(hide_referer_param, referer_mode_set)"
224         @hide-referer-param-block@ id="referer_mode_block"><label
225         for="referer_mode_block">Remove completely</label> (breaks images
226         on some free web hosts).<br>
227         <input type="radio" name="hide-referer-mode" value="forge"
228         onclick="disable_unless(hide_referer_param, referer_mode_set)"
229         @hide-referer-param-forge@ id="referer_mode_forge"><label
230         for="referer_mode_forge">Fake as the root directory of the
231         site</label> (fools checks for in-site links.)<br>
232         <input type="radio" name="hide-referer-mode" value="CUSTOM"
233         onclick="disable_unless(hide_referer_param, referer_mode_set)"
234         @hide-referer-param-custom@ id="referer_mode_set"><label
235         for="referer_mode_set">Fake as this web address:</label><br>
236         <input type="text" name="hide-referer-param" 
237         id="hide_referer_param" size="40"
238         value="@hide-referer-param@"></td>
239     </tr>
240     <tr class="bg1" align="left" valign="top">
241       <td class="action">+hide-user-agent</td>
242       <td>Pretend to be using a different web browser.&nbsp; (Breaks many web
243         sites).</td>
244       <td class="en1" align="center" valign="middle"><input type="radio"
245         name="hide-user-agent" id="hide_user_agent_y" value="Y" @hide-user-agent-y@
246         onclick="show_more(user_agent_opts,hide_user_agent_y)"></td>
247       <td class="dis1" align="center" valign="middle"><input type="radio"
248         name="hide-user-agent" value="N" @hide-user-agent-n@
249         onclick="show_more(user_agent_opts,hide_user_agent_y)"></td>
250       <td class="noc1" align="center" valign="middle"><input type="radio"
251         name="hide-user-agent" value="X" @hide-user-agent-x@
252         onclick="show_more(user_agent_opts,hide_user_agent_y)"></td>
253     </tr>
254     <tr class="bg1" align="left" valign="top" id="user_agent_opts">
255       <td>&nbsp;</td>
256       <td colspan="4">User Agent string to send:<br>
257         <input type="text" name="hide-user-agent-mode" size="40"
258         value="@hide-user-agent-param@"></td>
259     </tr>
260     <tr class="bg2" align="left" valign="top">
261       <td class="action">+image</td>
262       <td>Request is for an image (only useful in conjunction with the <i><b>+block</b></i>
263         and <i><b>+image-blocker</b></i> options).</td>
264       <td class="en2" align="center" valign="middle"><input type="radio"
265         name="image" value="Y" @image-y@
266         ></td>
267       <td class="dis2" align="center" valign="middle"><input type="radio"
268         name="image" value="N" @image-n@
269         ></td>
270       <td class="noc2" align="center" valign="middle"><input type="radio"
271         name="image" value="X" @image-x@
272         ></td>
273     </tr>
274     <tr class="bg1" align="left" valign="top">
275       <td class="action">+image-blocker</td>
276       <td>Specifies how to block images.&nbsp; Disable to always send a HTML
277         &quot;blocked&quot; page.</td>
278       <td class="en1" align="center" valign="middle"><input type="radio"
279         name="image-blocker" id="image_blocker_y" value="Y" @image-blocker-y@
280         onclick="show_more(image_blocker_opts,image_blocker_y)"></td>
281       <td class="dis1" align="center" valign="middle"><input type="radio"
282         name="image-blocker" value="N" @image-blocker-n@
283         onclick="show_more(image_blocker_opts,image_blocker_y)"></td>
284       <td class="noc1" align="center" valign="middle"><input type="radio"
285         name="image-blocker" value="X" @image-blocker-x@
286         onclick="show_more(image_blocker_opts,image_blocker_y)"></td>
287     </tr>
288     <tr class="bg1" align="left" valign="top" id="image_blocker_opts">
289       <td>&nbsp;</td>
290       <td colspan="4"><input type="radio" name="image-blocker-mode"
291         onclick="disable_unless(image_blocker_param, image_blocker_mode_set)"
292         value="logo" id="image_blocker_mode_logo" @image-blocker-param-logo@><label
293         for="image_blocker_mode_logo">Send Junkbuster logo</label><br>
294         <input type="radio" name="image-blocker-mode" value="blank"
295         onclick="disable_unless(image_blocker_param, image_blocker_mode_set)"
296         id="image_blocker_mode_blank" @image-blocker-param-blank@><label 
297         for="image_blocker_mode_blank">Send a 1x1 transparent GIF</label><br>
298         <input type="radio" name="image-blocker-mode" value="CUSTOM"
299         onclick="disable_unless(image_blocker_param, image_blocker_mode_set)"
300         id="image_blocker_mode_set" @image-blocker-param-custom@><label
301         for="image_blocker_mode_set">Redirect
302         the browser to this image URL:</label><br>
303         <input type="text" name="image-blocker-param" id="image_blocker_param"
304         size="40" value="@image-blocker-param@"></td>
305     </tr>
306     <tr class="bg2" align="left" valign="top">
307       <td class="action">+no-cookies-read</td>
308       <td>Prevent the website from reading cookies</td>
309       <td class="en2" align="center" valign="middle"><input type="radio"
310         name="no-cookies-read" value="Y" @no-cookies-read-y@
311         ></td>
312       <td class="dis2" align="center" valign="middle"><input type="radio"
313         name="no-cookies-read" value="N" @no-cookies-read-n@
314         ></td>
315       <td class="noc2" align="center" valign="middle"><input type="radio"
316         name="no-cookies-read" value="X" @no-cookies-read-x@
317         ></td>
318     </tr>
319     <tr class="bg1" align="left" valign="top">
320       <td class="action">+no-cookies-set</td>
321       <td>Prevent the website from setting cookies</td>
322       <td class="en1" align="center" valign="middle"><input type="radio"
323         name="no-cookies-set" value="Y" @no-cookies-set-y@
324         ></td>
325       <td class="dis1" align="center" valign="middle"><input type="radio"
326         name="no-cookies-set" value="N" @no-cookies-set-n@
327         ></td>
328       <td class="noc1" align="center" valign="middle"><input type="radio"
329         name="no-cookies-set" value="X" @no-cookies-set-x@
330         ></td>
331     </tr>
332     <tr class="bg2" align="left" valign="top">
333       <td class="action">+no-popups</td>
334       <td>Filter the website through a built-in filter to disable JavaScript
335         pop-up windows.</td>
336       <td class="en2" align="center" valign="middle"><input type="radio"
337         name="no-popups" value="Y" @no-popups-y@
338         ></td>
339       <td class="dis2" align="center" valign="middle"><input type="radio"
340         name="no-popups" value="N" @no-popups-n@
341         ></td>
342       <td class="noc2" align="center" valign="middle"><input type="radio"
343         name="no-popups" value="X" @no-popups-x@
344         ></td>
345     </tr>
346     <tr class="bg1" align="left" valign="top">
347       <td class="action">+vanilla-wafer</td>
348       <td>If you use a jarfile, automatically adds a special wafer.</td>
349       <td class="en1" align="center" valign="middle"><input type="radio"
350         name="vanilla-wafer" value="Y" @vanilla-wafer-y@
351         ></td>
352       <td class="dis1" align="center" valign="middle"><input type="radio"
353         name="vanilla-wafer" value="N" @vanilla-wafer-n@
354         ></td>
355       <td class="noc1" align="center" valign="middle"><input type="radio"
356         name="vanilla-wafer" value="X" @vanilla-wafer-x@
357         ></td>
358     </tr>
359     <tr class="bg2" align="left" valign="top">
360       <td class="action">+wafer</td>
361       <td>Adds user-specified cookies.</td>
362       <td class="en2" align="center" valign="middle"><input type="radio"
363         name="wafer" id="wafer_y" value="Y" @wafer-y@
364         onclick="show_more(wafer_opts,wafer_y)"></td>
365       <td class="dis2" align="center" valign="middle"><input type="radio"
366         name="wafer" id="wafer_n" value="N" @wafer-n@
367         onclick="show_more(wafer_opts,wafer_y)"></td>
368       <td class="noc2" align="center" valign="middle"><input type="radio"
369         name="wafer" id="wafer_x" value="X" @wafer-x@
370         onclick="show_more(wafer_opts,wafer_y)"></td>
371     </tr>
372     <tr class="bg2" align="left" valign="top" id="wafer_opts">
373       <td>&nbsp;</td>
374       <td colspan="4">To edit the settings for this option, <input
375         type="checkbox" name="wafer-edit" id="wafer_edit" value="ON"><label
376         for="wafer_edit">check here</label> and then click
377         &quot;Submit&quot;.</td>
378     </tr>
379   </table>
380 <script type="text/javascript">
381 <!--
382 disable_unless(myform.from_param,          myform.from_mode_set);
383 disable_unless(myform.hide_referer_param,  myform.referer_mode_set);
384 disable_unless(myform.image_blocker_param, myform.image_blocker_mode_set);
385 show_more(add_header_opts,    myform.add_header_y);
386 show_more(deanimate_opts,     myform.deanimate_gifs_y);
387 show_more(hide_from_opts,     myform.hide_from_y);
388 show_more(hide_referer_opts,  myform.hide_referer_y);
389 show_more(user_agent_opts,    myform.hide_user_agent_y);
390 show_more(image_blocker_opts, myform.image_blocker_y);
391 show_more(wafer_opts,         myform.wafer_y);
392 //-->
393 </script>
394   <p><input type="submit" value="Submit" name="Submit"></p>
395 </form>
396 <p>&nbsp;</p>
397
398 </body>
399
400 </html>