source: apps/i2ptunnel/jsp/wizard.jsp @ a314b2a

Last change on this file since a314b2a was a314b2a, checked in by str4d <str4d@…>, 8 years ago

Added a missing quotation mark in a <div>

  • Property mode set to 100644
File size: 29.4 KB
Line 
1<%
2    // NOTE: Do the header carefully so there is no whitespace before the <?xml... line
3
4%><%@page pageEncoding="UTF-8"
5%><%@page contentType="text/html" import="net.i2p.i2ptunnel.web.WizardBean"
6%><?xml version="1.0" encoding="UTF-8"?>
7<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
8<jsp:useBean class="net.i2p.i2ptunnel.web.WizardBean" id="wizardBean" scope="request" />
9<jsp:useBean class="net.i2p.i2ptunnel.web.Messages" id="intl" scope="request" />
10<% String pageStr = request.getParameter("page");
11   /* Get the number of the page we came from */
12   int lastPage = 0;
13   if (pageStr != null) {
14     try {
15       lastPage = Integer.parseInt(pageStr);
16       if (lastPage > 7 || lastPage < 0) {
17         lastPage = 0;
18       }
19     } catch (NumberFormatException nfe) {
20       lastPage = 0;
21     }
22   }
23   /* Determine what page to display now */
24   int curPage = 1;
25   if ("Previous page".equals(request.getParameter("action"))) {
26     curPage = lastPage - 1;
27   } else {
28     curPage = lastPage + 1;
29   }
30   if (curPage > 7 || curPage <= 0) {
31     curPage = 1;
32   }
33   /* Fetch and format a couple of regularly-used values */
34   boolean tunnelIsClient = Boolean.valueOf(request.getParameter("isClient"));
35   String tunnelType = request.getParameter("type");
36   /* Special case - don't display page 4 for server tunnels */
37   if (curPage == 4 && !tunnelIsClient) {
38     if ("Previous page".equals(request.getParameter("action"))) {
39       curPage = curPage - 1;
40     } else {
41       curPage = curPage + 1;
42     }
43   }
44%>
45<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
46<head>
47    <title><%=intl._("I2P Tunnel Manager - Tunnel Creation Wizard")%></title>
48
49    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
50    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
51    <link href="/themes/console/images/favicon.ico" type="image/x-icon" rel="shortcut icon" />
52
53    <% if (wizardBean.allowCSS()) {
54  %><link href="<%=wizardBean.getTheme()%>default.css" rel="stylesheet" type="text/css" />
55    <link href="<%=wizardBean.getTheme()%>i2ptunnel.css" rel="stylesheet" type="text/css" />
56    <% }
57  %>
58</head>
59<body id="tunnelWizardPage">
60    <div id="pageHeader">
61    </div>
62
63    <form method="post" action="<%=(curPage == 7 ? "list" : "wizard") %>">
64
65        <div id="wizardPanel" class="panel">
66            <div class="header">
67                <%
68                if (curPage == 1) {
69                  %><h4><%=intl._("Server or client tunnel?")%></h4><%
70                } else if (curPage == 2) {
71                  %><h4><%=intl._("Tunnel type")%></h4><%
72                } else if (curPage == 3) {
73                  %><h4><%=intl._("Tunnel name and description")%></h4><%
74                } else if (curPage == 4 && tunnelIsClient) {
75                  %><h4><%=intl._("Tunnel destination")%></h4><%
76                } else if (curPage == 5) {
77                  %><h4><%=intl._("Binding address and port")%></h4><%
78                } else if (curPage == 6) {
79                  %><h4><%=intl._("Tunnel auto-start")%></h4><%
80                } else if (curPage == 7) {
81                  %><h4><%=intl._("Wizard completed")%></h4><%
82                } %>
83                <input type="hidden" name="page" value="<%=curPage%>" />
84                <input type="hidden" name="tunnel" value="null" />
85                <input type="hidden" name="nonce" value="<%=wizardBean.getNextNonce()%>" />
86            </div>
87
88            <div class="separator">
89                <hr />
90            </div>
91
92            <% /* Page 1 - Whether to make a client or server tunnel */
93
94            if (curPage == 1) {
95            %><p>
96                <%=intl._("This wizard will take you through the various options available for creating tunnels in I2P.")%>
97            </p>
98            <p>
99                <%=intl._("The first thing to decide is whether you want to create a server or a client tunnel.")%>
100                <%=intl._("If you need to connect to a remote service, such as an IRC server inside I2P or a code repository, then you will require a CLIENT tunnel.")%>
101                <%=intl._("On the other hand, if you wish to host a service for others to connect to you'll need to create a SERVER tunnel.")%>
102            </p>
103            <div id="typeField" class="rowItem">
104                <label><%=intl._("Server Tunnel")%></label>
105                <input value="false" type="radio" id="baseType" name="isClient" class="tickbox" />
106                <label><%=intl._("Client Tunnel")%></label>
107                <input value="true" type="radio" id="baseType" name="isClient" class="tickbox" checked="checked" />
108            </div><%
109            } else {
110            %><input type="hidden" name="isClient" value="<%=tunnelIsClient%>" /><%
111            } /* curPage 1 */
112
113               /* End page 1 */ %>
114
115            <% /* Page 2 - Tunnel type */
116
117            if (curPage == 2) {
118            %><p>
119                <%=intl._("There are several types of tunnels to choose from:")%>
120            </p>
121            <table><%
122                if (tunnelIsClient) {
123                %>
124                <tr><td><%=intl._("Standard")%></td><td>
125                    <%=intl._("Basic tunnel for connecting to a single service inside I2P.")%>
126                    <%=intl._("Try this if none of the tunnel types below fit your requirements, or you don't know what type of tunnel you need.")%>
127                </td></tr>
128                <tr><td>HTTP</td><td>
129                    <%=intl._("Tunnel that acts as an HTTP proxy for reaching eepsites inside I2P.")%>
130                    <%=intl._("Set your browser to use this tunnel as an http proxy, or set your \"http_proxy\" environment variable for command-line applications in GNU/Linux.")%>
131                    <%=intl._("Websites outside I2P can also be reached if an HTTP proxy within I2P is known.")%>
132                </td></tr>
133                <tr><td>IRC</td><td>
134                    <%=intl._("Customised client tunnel specific for IRC connections.")%>
135                    <%=intl._("With this tunnel type, your IRC client will be able to connect to an IRC network inside I2P.")%>
136                    <%=intl._("Each IRC network in I2P that you wish to connect to will require its own tunnel. (See Also, SOCKS IRC)")%>
137                </td></tr>
138                <tr><td>SOCKS 4/4a/5</td><td>
139                    <%=intl._("A tunnel that implements the SOCKS protocol.")%>
140                    <%=intl._("This enables both TCP and UDP connections to be made through a SOCKS outproxy within I2P.")%>
141                </td></tr>
142                <tr><td>SOCKS IRC</td><td>
143                    <%=intl._("A client tunnel implementing the SOCKS protocol, which is customised for connecting to IRC networks.")%>
144                    <%=intl._("With this tunnel type, IRC networks in I2P can be reached by typing the I2P address into your IRC client, and configuring the IRC client to use this SOCKS tunnel.")%>
145                    <%=intl._("This means that only one I2P tunnel is required rather than a separate tunnel per IRC network.")%>
146                    <%=intl._("IRC networks outside I2P can also be reached if a SOCKS outproxy within I2P is known, though it depends on whether or not the outproxy has been blocked by the IRC network.")%>
147                </td></tr>
148                <tr><td>CONNECT</td><td>
149                    <%=intl._("A client tunnel that implements the HTTP CONNECT command.")%>
150                    <%=intl._("This enables TCP connections to be made through an HTTP outproxy, assuming the proxy supports the CONNECT command.")%>
151                </td></tr>
152                <tr><td>Streamr</td><td>
153                    <%=intl._("A customised client tunnel for Streamr.")%><%
154                    //XXX TODO<%=intl._("I have no idea what this is.")%>
155                </td></tr><%
156                } else {
157                %>
158                <tr><td><%=intl._("Standard")%></td><td>
159                    <%=intl._("A basic server tunnel for hosting a generic service inside I2P.")%>
160                    <%=intl._("Try this if none of the tunnel types below fit your requirements, or you don't know what type of tunnel you need.")%>
161                </td></tr>
162                <tr><td>HTTP</td><td>
163                    <%=intl._("A server tunnel that is customised for HTTP connections.")%>
164                    <%=intl._("Use this tunnel type if you want to host an eepsite.")%>
165                </td></tr>
166                <tr><td>HTTP bidir</td><td>
167                    <%=intl._("A customised server tunnel that can both serve HTTP data and connect to other server tunnels.")%>
168                    <%=intl._("This tunnel type is predominantly used when running a Seedless server.")%>
169                </td></tr>
170                <tr><td>IRC</td><td>
171                    <%=intl._("A customised server tunnel for hosting IRC networks inside I2P.")%>
172                    <%=intl._("Usually, a separate tunnel needs to be created for each IRC server that is to be accessible inside I2P.")%>
173                </td></tr>
174                <tr><td>Streamr</td><td>
175                    <%=intl._("A customised server tunnel for Streamr.")%><%
176                    //XXX TODO<%=intl._("I have no idea what this is.")%>
177                </td></tr><%
178                }
179                %>
180            </table>
181            <div id="typeField" class="rowItem">
182                <%
183                if (tunnelIsClient) {
184                %><select name="type">
185                    <option value="client"><%=intl._("Standard")%></option>
186                    <option value="httpclient">HTTP</option>
187                    <option value="ircclient">IRC</option>
188                    <option value="sockstunnel">SOCKS 4/4a/5</option>
189                    <option value="socksirctunnel">SOCKS IRC</option>
190                    <option value="connectclient">CONNECT</option>
191                    <option value="streamrclient">Streamr</option>
192                </select><%
193                } else {
194                %><select name="type">
195                    <option value="server"><%=intl._("Standard")%></option>
196                    <option value="httpserver">HTTP</option>
197                    <option value="httpbidirserver">HTTP bidir</option>
198                    <option value="ircserver">IRC</option>
199                    <option value="streamrserver">Streamr</option>
200                </select><%
201                } /* tunnelIsClient */ %>
202            </div><%
203            } else {
204            %><input type="hidden" name="type" value="<%=tunnelType%>" /><%
205            } /* curPage 2 */
206
207               /* End page 2 */ %>
208
209            <% /* Page 3 - Name and description */
210
211            if (curPage == 3) {
212            %><p>
213                <%=intl._("Choose a name and description for your tunnel.")%>
214                <%=intl._("These can be anything you want - they are just for ease of identifying the tunnel in the routerconsole.")%>
215            </p>
216            <div id="nameField" class="rowItem">
217                <label for="name" accesskey="N">
218                    <%=intl._("Name")%>:(<span class="accessKey">N</span>)
219                </label>
220                <input type="text" size="30" maxlength="50" name="name" id="name" title="Tunnel Name" value="<%=(!"null".equals(request.getParameter("name")) ? request.getParameter("name") : "" ) %>" class="freetext" />
221            </div>
222            <div id="descriptionField" class="rowItem">
223                <label for="description" accesskey="e">
224                    <%=intl._("Description")%>:(<span class="accessKey">E</span>)
225                </label>
226                <input type="text" size="60" maxlength="80" name="description"  id="description" title="Tunnel Description" value="<%=(!"null".equals(request.getParameter("description")) ? request.getParameter("description") : "" ) %>" class="freetext" />
227            </div><%
228            } else {
229            %><input type="hidden" name="name" value="<%=request.getParameter("name")%>" />
230            <input type="hidden" name="description" value="<%=request.getParameter("description")%>" /><%
231            } /* curPage 3 */
232
233               /* End page 3 */ %>
234
235            <% /* Page 4 - Target destination or proxy list */
236
237            if (tunnelIsClient) {
238              if ("httpclient".equals(tunnelType) || "connectclient".equals(tunnelType) || "sockstunnel".equals(tunnelType) || "socksirctunnel".equals(tunnelType)) {
239                if (curPage == 4) {
240          %><p>
241                <%=intl._("If you know of any outproxies for this type of tunnel (either HTTP or SOCKS), fill them in below.")%>
242                <%=intl._("Separate multiple proxies with commas.")%>
243            </p>
244            <div id="destinationField" class="rowItem">
245                <label for="proxyList" accesskey="x">
246                    <%=intl._("Outproxies")%>(<span class="accessKey">x</span>):
247                </label>
248                <input type="text" size="30" id="proxyList" name="proxyList" title="List of Outproxy I2P destinations" value="<%=(!"null".equals(request.getParameter("proxyList")) ? request.getParameter("proxyList") : "" ) %>" class="freetext" />
249            </div><%
250                } else {
251            %><input type="hidden" name="proxyList" value="<%=request.getParameter("proxyList")%>" /><%
252                } /* curPage 4 */
253              } else if ("client".equals(tunnelType) || "ircclient".equals(tunnelType) || "streamrclient".equals(tunnelType)) {
254                if (curPage == 4) {
255          %><p>
256                <%=intl._("Type in the I2P destination of the service that this client tunnel should connect to.")%>
257                <%=intl._("This could be the full base 64 destination key, or an I2P URL from your address book.")%>
258            </p>
259            <div id="destinationField" class="rowItem">
260                <label for="targetDestination" accesskey="T">
261                    <%=intl._("Tunnel Destination")%>(<span class="accessKey">T</span>):
262                </label>
263                <input type="text" size="30" id="targetDestination" name="targetDestination" title="Destination of the Tunnel" value="<%=(!"null".equals(request.getParameter("targetDestination")) ? request.getParameter("targetDestination") : "" ) %>" class="freetext" />
264                <span class="comment">(<%=intl._("name or destination")%>; <%=intl._("b32 not recommended")%>)</span>
265            </div><%
266                } else {
267            %><input type="hidden" name="targetDestination" value="<%=request.getParameter("targetDestination")%>" /><%
268                } /* curPage 4 */
269              }
270            } /* tunnelIsClient */
271
272               /* End page 4 */ %>
273
274            <% /* Page 5 - Binding ports and addresses*/
275
276            if ((tunnelIsClient && "streamrclient".equals(tunnelType)) || (!tunnelIsClient && !"streamrserver".equals(tunnelType))) {
277              if (curPage == 5) {
278            %><p>
279                <%=intl._("This is the IP that your service is running on, this is usually on the same machine so 127.0.0.1 is autofilled.")%><%
280                //XXX TODO<%=intl._("For some reason streamrclient also uses this.")%>
281            </p>
282            <div id="hostField" class="rowItem">
283                <label for="targetHost" accesskey="H">
284                    <%=intl._("Host")%>(<span class="accessKey">H</span>):
285                </label>
286                <input type="text" size="20" id="targetHost" name="targetHost" title="Target Hostname or IP" value="<%=(!"null".equals(request.getParameter("targetHost")) ? request.getParameter("targetHost") : "127.0.0.1" ) %>" class="freetext" />
287            </div><%
288              } else {
289            %><input type="hidden" name="targetHost" value="<%=request.getParameter("targetHost")%>" /><%
290              } /* curPage 5 */
291            } /* streamrclient or !streamrserver */ %>
292            <%
293            if (!tunnelIsClient) {
294              if (curPage == 5) {
295            %><p>
296                <%=intl._("This is the port that the service is accepting connections on.")%>
297            </p>
298            <div id="portField" class="rowItem">
299                <label for="targetPort" accesskey="P">
300                    <%=intl._("Port")%>(<span class="accessKey">P</span>):
301                </label>
302                <input type="text" size="6" maxlength="5" id="targetPort" name="targetPort" title="Target Port Number" value="<%=(!"null".equals(request.getParameter("targetPort")) ? request.getParameter("targetPort") : "" ) %>" class="freetext" />
303            </div><%
304              } else {
305            %><input type="hidden" name="targetPort" value="<%=request.getParameter("targetPort")%>" /><%
306              } /* curPage 5 */
307            } /* !tunnelIsClient */ %>
308            <%
309            if (tunnelIsClient || "httpbidirserver".equals(tunnelType)) {
310              if (curPage == 5) {
311            %><p>
312                <%=intl._("This is the port that the client tunnel will be accessed from locally.")%>
313                <%=intl._("This is also the client port for the HTTPBidir server tunnel.")%>
314            </p>
315            <div id="portField" class="rowItem">
316                <label for="port" accesskey="P">
317                    <span class="accessKey">P</span>ort:
318                </label>
319                <input type="text" size="6" maxlength="5" id="port" name="port" title="Access Port Number" value="<%=(!"null".equals(request.getParameter("port")) ? request.getParameter("port") : "" ) %>" class="freetext" />
320            </div><%
321              } else {
322            %><input type="hidden" name="port" value="<%=request.getParameter("port")%>" /><%
323              } /* curPage 5 */
324            } /* tunnelIsClient or httpbidirserver */ %>
325            <%
326            if ((tunnelIsClient && !"streamrclient".equals(tunnelType)) || "httpbidirserver".equals(tunnelType) || "streamrserver".equals(tunnelType)) {
327              if (curPage == 5) {
328            %><p>
329                <%=intl._("How do you want this tunnel to be accessed? By just this machine, your entire subnet, or external internet?")%>
330                <%=intl._("You will most likely want to just allow 127.0.0.1")%><%
331                //XXX TODO<%=intl._("Note that it is relevant to most Client tunnels, and httpbidirserver and streamrserver tunnels.")%><%
332                //XXX TODO<%=intl._("So the wording may need to change slightly for the client vs. server tunnels.")%>
333            </p>
334            <div id="reachField" class="rowItem">
335                <label for="reachableBy" accesskey="r">
336                    <%=intl._("Reachable by")%>(<span class="accessKey">R</span>):
337                </label>
338                <select id="reachableBy" name="reachableBy" title="IP for Client Access" class="selectbox">
339              <%
340                    String clientInterface = request.getParameter("reachableBy");
341                    if ("null".equals(clientInterface)) {
342                      clientInterface = "127.0.0.1";
343                    }
344                    for (String ifc : wizardBean.interfaceSet()) {
345                        out.write("<option value=\"");
346                        out.write(ifc);
347                        out.write('\"');
348                        if (ifc.equals(clientInterface))
349                            out.write(" selected=\"selected\"");
350                        out.write('>');
351                        out.write(ifc);
352                        out.write("</option>\n");
353                    }
354              %>
355                </select>
356            </div><%
357              } else {
358            %><input type="hidden" name="reachableBy" value="<%=request.getParameter("reachableBy")%>" /><%
359              } /* curPage 5 */
360            } /* (tunnelIsClient && !streamrclient) ||  httpbidirserver || streamrserver */
361
362               /* End page 5 */ %>
363
364            <% /* Page 6 - Automatic start */
365
366            if (curPage == 6) {
367            %><p>
368                <%=intl._("The I2P router can automatically start this tunnel for you when the router is started.")%>
369                <%=intl._("This can be useful for frequently-used tunnels (especially server tunnels), but for tunnels that are only used occassionally it would mean that the I2P router is creating and maintaining unnecessary tunnels.")%>
370            </p>
371            <div id="startupField" class="rowItem">
372                <label for="startOnLoad" accesskey="a">
373                    <%=intl._("Auto Start")%>(<span class="accessKey">A</span>):
374                </label>
375                <input value="1" type="checkbox" id="startOnLoad" name="startOnLoad" title="Start Tunnel Automatically"<%=("1".equals(request.getParameter("startOnLoad")) ? " checked=\"checked\"" : "")%> class="tickbox" />
376                <span class="comment"><%=intl._("(Check the Box for 'YES')")%></span>
377            </div><%
378            } else {
379              if ("1".equals(request.getParameter("startOnLoad"))) {
380            %><input type="hidden" name="startOnLoad" value="<%=request.getParameter("startOnLoad")%>" /><%
381              }
382            } /* curPage 6 */
383
384               /* End page 6 */ %>
385
386            <% /* Page 7 - Wizard complete */
387
388            if (curPage == 7) {
389            %><p>
390                <%=intl._("The wizard has now collected enough information to create your tunnel.")%>
391                <%=intl._("Upon clicking the Save button below, the wizard will set up the tunnel, and take you back to the main I2PTunnel page.")%>
392                <%
393                if ("1".equals(request.getParameter("startOnLoad"))) {
394                %><%=intl._("Because you chose to automatically start the tunnel when the router starts, you don't have to do anything further.")%>
395                <%=intl._("The router will start the tunnel once it has been set up.")%><%
396                } else {
397                %><%=intl._("Because you chose not to automatically start the tunnel, you will have to manually start it.")%>
398                <%=intl._("You can do this by clicking the Start button on the main page which corresponds to the new tunnel.")%><%
399                } %>
400            </p>
401            <p>
402                <%=intl._("Below is a summary of the options you chose:")%>
403            </p>
404            <table>
405                <tr><td><%=intl._("Server or client tunnel?")%></td><td>
406                    <%=(tunnelIsClient ? "Client" : "Server")%>
407                </td></tr>
408                <tr><td><%=intl._("Tunnel type")%></td><td><%
409                if ("client".equals(tunnelType) || "server".equals(tunnelType)) { %>
410                    <%=intl._("Standard")%><%
411                } else if ("httpclient".equals(tunnelType) || "httpserver".equals(tunnelType)) { %>
412                    HTTP<%
413                } else if ("httpbidirserver".equals(tunnelType)) { %>
414                    HTTP bidir<%
415                } else if ("ircclient".equals(tunnelType) || "ircserver".equals(tunnelType)) { %>
416                    IRC<%
417                } else if ("sockstunnel".equals(tunnelType)) { %>
418                    SOCKS 4/4a/5<%
419                } else if ("socksirctunnel".equals(tunnelType)) { %>
420                    SOCKS IRC<%
421                } else if ("connectclient".equals(tunnelType)) { %>
422                    CONNECT<%
423                } else if ("streamrclient".equals(tunnelType) || "streamrserver".equals(tunnelType)) { %>
424                    Streamr<%
425                } %>
426                </td></tr>
427                <tr><td><%=intl._("Tunnel name and description")%></td><td>
428                    <%=request.getParameter("name")%><br>
429                    <%=request.getParameter("description")%>
430                </td></tr><%
431                if (tunnelIsClient) { %>
432                <tr><td><%=intl._("Tunnel destination")%></td><td><%
433                  if ("httpclient".equals(tunnelType) || "connectclient".equals(tunnelType) || "sockstunnel".equals(tunnelType) || "socksirctunnel".equals(tunnelType)) { %>
434                    <%=request.getParameter("proxyList")%><%
435                  } else if ("client".equals(tunnelType) || "ircclient".equals(tunnelType) || "streamrclient".equals(tunnelType)) { %>
436                    <%=request.getParameter("targetDestination")%><%
437                  } %>
438                </td></tr><%
439                } %>
440                <tr><td><%=intl._("Binding address and port")%></td><td><%
441                if ((tunnelIsClient && "streamrclient".equals(tunnelType)) || (!tunnelIsClient && !"streamrserver".equals(tunnelType))) { %>
442                    <%=request.getParameter("targetHost")%><br><%
443                }
444                if (!tunnelIsClient) { %>
445                    <%=request.getParameter("targetPort")%><br><%
446                }
447                if (tunnelIsClient || "httpbidirserver".equals(tunnelType)) { %>
448                    <br><%=request.getParameter("port")%><%
449                }
450                if ((tunnelIsClient && !"streamrclient".equals(tunnelType)) || "httpbidirserver".equals(tunnelType) || "streamrserver".equals(tunnelType)) { %>
451                    <br><%=request.getParameter("reachableBy")%><%
452                } %>
453                </td></tr>
454                <tr><td><%=intl._("Tunnel auto-start")%></td><td><%
455                if ("1".equals(request.getParameter("startOnLoad"))) { %>
456                    Yes<%
457                } else { %>
458                    No<%
459                } %>
460                </td></tr>
461            </table>
462            <p>
463                <%=intl._("Alongside these basic settings, there are a number of advanced options for tunnel configuration.")%>
464                <%=intl._("The wizard will set reasonably sensible default values for these, but you can view and/or edit these by clicking on the tunnel's name in the main I2PTunnel page.")%>
465            </p>
466
467            <input type="hidden" name="tunnelDepth" value="2" />
468            <input type="hidden" name="tunnelVariance" value="0" />
469            <input type="hidden" name="tunnelQuantity" value="2" />
470            <input type="hidden" name="tunnelBackupQuantity" value="0" />
471            <input type="hidden" name="clientHost" value="internal" />
472            <input type="hidden" name="clientport" value="internal" />
473            <input type="hidden" name="customOptions" value="" />
474
475            <%
476              if (!"streamrclient".equals(tunnelType)) {
477            %><input type="hidden" name="profile" value="bulk" />
478            <input type="hidden" name="reduceCount" value="1" />
479            <input type="hidden" name="reduceTime" value="20" /><%
480              } /* !streamrclient */ %>
481
482            <%
483              if (tunnelIsClient) { /* Client-only defaults */
484                if (!"streamrclient".equals(tunnelType)) {
485            %><input type="hidden" name="newDest" value="0" />
486            <input type="hidden" name="closeTime" value="30" /><%
487                }
488                if ("httpclient".equals(tunnelType) || "connectclient".equals(tunnelType) || "sockstunnel".equals(tunnelType) || "socksirctunnel".equals(tunnelType)) {
489            %><input type="hidden" name="proxyUsername" value="" />
490            <input type="hidden" name="proxyPassword" value="" />
491            <input type="hidden" name="outproxyUsername" value="" />
492            <input type="hidden" name="outproxyPassword" value="" /><%
493                }
494                if ("httpclient".equals(tunnelType)) {
495            %><input type="hidden" name="jumpList" value="http://i2host.i2p/cgi-bin/i2hostjump?
496http://stats.i2p/cgi-bin/jump.cgi?a=
497http://i2jump.i2p/" /><%
498                } /* httpclient */
499              } else { /* Server-only defaults */
500            %><input type="hidden" name="encrypt" value="" />
501            <input type="hidden" name="encryptKey" value="" />
502            <input type="hidden" name="accessMode" value="0" />
503            <input type="hidden" name="accessList" value="" />
504            <input type="hidden" name="limitMinute" value="0" />
505            <input type="hidden" name="limitHour" value="0" />
506            <input type="hidden" name="limitDay" value="0" />
507            <input type="hidden" name="totalMinute" value="0" />
508            <input type="hidden" name="totalHour" value="0" />
509            <input type="hidden" name="totalDay" value="0" />
510            <input type="hidden" name="maxStreams" value="0" />
511            <input type="hidden" name="cert" value="0" /><%
512              } /* tunnelIsClient */
513            } /* curPage 7 */
514
515               /* End page 7 */ %>
516        </div>
517
518        <div id="globalOperationsPanel" class="panel">
519            <div class="header"></div>
520            <div class="footer">
521                <div class="toolbox">
522                    <a class="control" href="list"><%=intl._("Cancel")%></a>
523                    <% if (curPage != 1 && curPage != 7) {
524                    %><button id="controlPrevious" accesskey="P" class="control" type="submit" name="action" value="Previous page" title="Previous Page"><%=intl._("Previous")%>(<span class="accessKey">P</span>)</button><%
525                    } %>
526                    <% if (curPage == 7) {
527                    %><button id="controlSave" accesskey="S" class="control" type="submit" name="action" value="Save changes" title="Save Tunnel"><%=intl._("Save Tunnel")%>(<span class="accessKey">S</span>)</button><%
528                    } else if (curPage == 6) {
529                    %><button id="controlFinish" accesskey="F" class="control" type="submit" name="action" value="Next page" title="Finish Wizard"><%=intl._("Finish")%>(<span class="accessKey">F</span>)</button><%
530                    } else {
531                    %><button id="controlNext" accesskey="N" class="control" type="submit" name="action" value="Next page" title="Next Page"><%=intl._("Next")%>(<span class="accessKey">N</span>)</button><%
532                    } %>
533                </div>
534            </div>
535        </div>
536
537    </form>
538
539    <div id="pageFooter">
540    </div>
541</body>
542</html>
Note: See TracBrowser for help on using the repository browser.