Changeset 017f66a


Ignore:
Timestamp:
Jun 3, 2017 2:10:08 PM (3 years ago)
Author:
str4d <str4d@…>
Branches:
master
Children:
6acca289
Parents:
ff400c9
Message:

i2ptunnel:

  • Remove redundant labels and spans for keyaccess
  • Edit Server:
    • Shift Local Destination / Private Key file to share table row
      • Reduces spread of Local Destination textarea
    • Move "Use SSL to connect to target" to Target Port column
  • Add translation tagging for title tags
  • Remove redundant title tags and provide enhanced strings for features that benefit from clarification
  • Move title tags to <label> where applicable
  • Fixed Cancel button on registration so it now jumps back to the list page
  • textareas for registration page and local destination on edit server page changed to divs
    • Scrollbars hidden until mouseover, 1 click to select content
    • Responsive width, tabindex="0"
      • Fixes text breaking out of textarea bounding box issue in chrome/blink
  • Fix overflow issue on select dropdowns (edit server/client → tunnel options) in Chrome / Blink
  • More generous vertical padding for th (responsive)
  • Larger h2/h3s (responsive)
  • Increase spacing between panels in iframe mode
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • apps/i2ptunnel/jsp/editClient.jsp

    rff400c9 r017f66a  
    8989        <tr>
    9090            <td>
    91                 <input type="text" size="30" maxlength="50" name="name" title="Tunnel Name" value="<%=editBean.getTunnelName(curTunnel)%>" class="freetext tunnelName" />
     91                <input type="text" size="30" maxlength="50" name="name" title="<%=intl._t("Name of tunnel to be displayed on Tunnel Manager home page and the router console sidebar")%>" value="<%=editBean.getTunnelName(curTunnel)%>" class="freetext tunnelName" />
    9292            </td>
    9393            <td>
     
    108108        <tr>
    109109            <td>
    110                 <input type="text" size="60" maxlength="80" name="nofilter_description" title="Tunnel Description" value="<%=editBean.getTunnelDescription(curTunnel)%>" class="freetext tunnelDescription" />
    111             </td>
    112 
    113             <td>
    114                 <label><input value="1" type="checkbox" name="startOnLoad" title="Start Tunnel Automatically"<%=(editBean.startAutomatically(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     110                <input type="text" size="60" maxlength="80" name="nofilter_description" title="<%=intl._t("Description of tunnel to be displayed on Tunnel Manager home page")%>" value="<%=editBean.getTunnelDescription(curTunnel)%>" class="freetext tunnelDescription" />
     111            </td>
     112
     113            <td>
     114                <label title="<%=intl._t("Enable this option to ensure this service is available when the router starts")%>"><input value="1" type="checkbox" name="startOnLoad"<%=(editBean.startAutomatically(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    115115                <%=intl._t("Automatically start tunnel when router starts")%></label>
    116116            </td>
     
    136136                       }
    137137                     %>
    138                 <input type="text" size="6" maxlength="5" name="port" title="Access Port Number" value="<%=editBean.getClientPort(curTunnel)%>" class="freetext port" placeholder="required" />
     138                <input type="text" size="6" maxlength="5" name="port" title="<%=intl._t("Specify the local port this service should be accessible from")%>" value="<%=editBean.getClientPort(curTunnel)%>" class="freetext port" placeholder="required" />
    139139            </td>
    140140
     
    152152          %>
    153153
    154                 <input type="text" size="20" id="targetHost" name="targetHost" title="Target Hostname or IP" value="<%=targetHost%>" class="freetext host" placeholder="required" />
     154                <input type="text" size="20" id="targetHost" name="targetHost" title="<%=intl._t("Hostname or IP address of the target server")%>" value="<%=targetHost%>" class="freetext host" placeholder="required" />
    155155            </td>
    156156         <% } else { %>
     
    159159                <b><%=intl._t("Reachable by")%>:</b>
    160160
    161                 <select id="reachableBy" name="reachableBy" title="IP for Client Access" class="selectbox">
     161                <select id="reachableBy" name="reachableBy" title="<%=intl._t("Local interface (ip address) the client tunnel will be reachable from")%>" class="selectbox")%>">
    162162              <%
    163163                    String clientInterface = editBean.getClientInterface(curTunnel);
     
    187187        <tr>
    188188            <td colspan="2">
    189                 <label><input value="1" type="checkbox" name="useSSL" title="Clients use SSL to connect" <%=(editBean.isSSLEnabled(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     189                <label title="<%=intl._t("If you are accessing a service on a remote I2P router, you may wish to connect with SSL to avoid traffic interception. The client application should be also be configured to use SSL.")%>"><input value="1" type="checkbox" name="useSSL" <%=(editBean.isSSLEnabled(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    190190                <%=intl._t("Clients use SSL to connect to tunnel")%></label>
    191191            </td>
     
    202202        <tr>
    203203            <td colspan="2">
    204                 <input type="text" size="30" name="proxyList" title="List of Outproxy I2P destinations" value="<%=editBean.getClientDestination(curTunnel)%>" class="freetext proxyList" />&nbsp;(<%=intl._t("comma separated eg. proxy1.i2p,proxy2.i2p")%>)
     204                <input type="text" size="30" name="proxyList" title="<%=intl._t("Specify the .i2p address or destination (b32 or b64) of the outproxy here.")%>&nbsp;<%=intl._t("For a random selection from a pool, separate with commas e.g. server1.i2p,server2.i2p")%>" value="<%=editBean.getClientDestination(curTunnel)%>" class="freetext proxyList" />
    205205            </td>
    206206        </tr>
     
    215215        <tr>
    216216            <td colspan="2">
    217                    <input type="text" size="30" name="sslProxies" title="List of Outproxy I2P destinations" value="<%=editBean.getSslProxies(curTunnel)%>" class="freetext proxyList" />
     217                   <input type="text" size="30" name="sslProxies" title="<%=intl._t("Specify the .i2p address or destination (b32 or b64) of the outproxy here.")%>&nbsp;<%=intl._t("For a random selection from a pool, separate with commas e.g. server1.i2p,server2.i2p")%>" value="<%=editBean.getSslProxies(curTunnel)%>" class="freetext proxyList" />
    218218            </td>
    219219        </tr>
     
    229229            <td colspan="2">
    230230
    231                 <label><input value="1" type="checkbox" name="useOutproxyPlugin" <%=(editBean.getUseOutproxyPlugin(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     231                <label title="<%=intl._t("If an outproxy plugin is installed (e.g. Orchid), use this instead of any configured outproxies to access websites outside of I2P")%>"><input value="1" type="checkbox" name="useOutproxyPlugin" <%=(editBean.getUseOutproxyPlugin(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    232232<%=intl._t("Use plugin instead of above-listed proxies if available")%></label>
    233233            </td>
     
    250250                     %>
    251251
    252                 <input type="text" size="30" id="targetDestination" name="targetDestination" title="Destination of the Tunnel" value="<%=editBean.getClientDestination(curTunnel)%>" class="freetext destination" placeholder="required" />
     252                <input type="text" size="30" id="targetDestination" name="targetDestination" title="<%=intl._t("Specify the .i2p address or destination (b32 or b64) of the tunnel here.")%>&nbsp;<%=intl._t("For a random selection from a pool, separate with commas e.g. server1.i2p,server2.i2p")%>" value="<%=editBean.getClientDestination(curTunnel)%>" class="freetext destination" placeholder="required" />
    253253                (<%=intl._t("name, name:port, or destination")%>
    254254                     <% if ("streamrclient".equals(tunnelType)) { /* deferred resolution unimplemented in streamr client */ %>
     
    268268        <tr>
    269269            <td colspan="2">
    270                 <label><input value="true" type="checkbox" name="shared" title="Share tunnels with other clients"<%=(editBean.isSharedClient(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     270                <label title="<%=intl._t("Traffic from all clients with this feature enabled will be routed over the same set of tunnels. This will make profiling the tunnels by an adversary more difficult, but will link the clients together.")%>"><input value="true" type="checkbox" name="shared"<%=(editBean.isSharedClient(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    271271                <%=intl._t("Share tunnels with other clients and irc/httpclients? (Change requires restart of client proxy tunnel)")%></label>
    272272            </td>
     
    283283        <tr>
    284284            <td colspan="2">
    285                 <label><input value="1" type="checkbox" name="DCC" title="Enable DCC"<%=(editBean.getDCC(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     285                <label title="<%=intl._t("Enables direct chat and file transfers, bypassing I2P")%>"><input value="1" type="checkbox" name="DCC"<%=(editBean.getDCC(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    286286                <%=intl._t("Enable Direct Client-to-Client protocol. Note that this will compromise your anonymity and is <i>not</i> recommended.")%></label>
    287287            </td>
     
    320320        <tr>
    321321            <td>
    322                 <select id="tunnelDepth" name="tunnelDepth" title="Length of each Tunnel" class="selectbox">
     322                <select id="tunnelDepth" name="tunnelDepth" title="<%=intl._t("Length of each Tunnel")%>" class="selectbox">
    323323                    <% int tunnelDepth = editBean.getTunnelDepth(curTunnel, 3);
    324324                  %><option value="0"<%=(tunnelDepth == 0 ? " selected=\"selected\"" : "") %>><%=intl._t("0 hop tunnel (no anonymity)")%></option>
     
    338338
    339339            <td>
    340                 <select id="tunnelVariance" name="tunnelVariance" title="Level of Randomization for Tunnel Length" class="selectbox">
     340                <select id="tunnelVariance" name="tunnelVariance" title="<%=intl._t("Level of Randomization for Tunnel Length")%>" class="selectbox">
    341341                    <% int tunnelVariance = editBean.getTunnelVariance(curTunnel, 0);
    342342                  %><option value="0"<%=(tunnelVariance  ==  0 ? " selected=\"selected\"" : "") %>><%=intl._t("0 hop variance (no randomization, consistent performance)")%></option>
     
    363363        <tr>
    364364            <td>
    365                 <select id="tunnelQuantity" name="tunnelQuantity" title="Number of Tunnels in Group" class="selectbox">
     365                <select id="tunnelQuantity" name="tunnelQuantity" title="<%=intl._t("Number of Tunnels in Group")%>" class="selectbox">
    366366                    <%=editBean.getQuantityOptions(curTunnel)%>
    367367                </select>
     
    369369
    370370            <td>
    371                 <select id="tunnelBackupQuantity" name="tunnelBackupQuantity" title="Number of Reserve Tunnels" class="selectbox">
     371                <select id="tunnelBackupQuantity" name="tunnelBackupQuantity" title="<%=intl._t("Number of Reserve Tunnels")%>" class="selectbox">
    372372                    <% int tunnelBackupQuantity = editBean.getTunnelBackupQuantity(curTunnel, 0);
    373373                  %><option value="0"<%=(tunnelBackupQuantity == 0 ? " selected=\"selected\"" : "") %>><%=intl._t("0 backup tunnels (0 redundancy, no added resource usage)")%></option>
     
    397397        <tr>
    398398            <td>
    399                 <select id="connectionProfile" name="profile" title="Connection Profile" class="selectbox">
     399                <select id="connectionProfile" name="profile" title="<%=intl._t("Connection Profile")%>" class="selectbox">
    400400                    <% boolean interactiveProfile = editBean.isInteractive(curTunnel);
    401401                  %><option <%=(interactiveProfile == true  ? "selected=\"selected\" " : "")%>value="interactive"><%=intl._t("interactive connection")%> </option>
     
    405405
    406406            <td>
    407                 <label><input value="1000" type="checkbox" name="connectDelay" title="Delay Connection"<%=(editBean.shouldDelay(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    408                 (<%=intl._t("for request/response connections")%>)</label>
     407                <label title="<%=intl._t("Delay Connection")%>"><input value="1000" type="checkbox" name="connectDelay"<%=(editBean.shouldDelay(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     408                (<%=intl._t("for request/response connections")%>)</label> <% // TODO: Convey to users: Where is the (1s) delay introduced? What is the difference between delay connect and delay open? %>
    409409            </td>
    410410        </tr>
     
    420420            <td>
    421421                <b><%=intl._t("Host")%>:</b>
    422                 <input type="text" name="clientHost" size="20" title="I2CP Hostname or IP" value="<%=editBean.getI2CPHost(curTunnel)%>" class="freetext host" <% if (editBean.isRouterContext()) { %> readonly="readonly" <% } %> />
     422                <input type="text" name="clientHost" size="20" title="<%=intl._t("I2CP Hostname or IP")%>" value="<%=editBean.getI2CPHost(curTunnel)%>" class="freetext host" <% if (editBean.isRouterContext()) { %> readonly="readonly" <% } %> />
    423423            </td>
    424424
     
    426426            <td>
    427427                <b><%=intl._t("Port")%>:</b>
    428                 <input type="text" name="clientport" size="20" title="I2CP Port Number" value="<%=editBean.getI2CPPort(curTunnel)%>" class="freetext port" <% if (editBean.isRouterContext()) { %> readonly="readonly" <% } %> />
     428                <input type="text" name="clientport" size="20" title="<%=intl._t("I2CP Port Number")%>" value="<%=editBean.getI2CPPort(curTunnel)%>" class="freetext port" <% if (editBean.isRouterContext()) { %> readonly="readonly" <% } %> />
    429429            </td>
    430430        </tr>
     
    440440        <tr>
    441441            <td colspan="2">
    442                 <label><input value="1" type="checkbox" name="delayOpen" title="Delay Tunnel Open"<%=(editBean.getDelayOpen(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     442                <label title="<%=intl._t("Conserve resources by only creating tunnels when required")%>"><input value="1" type="checkbox" name="delayOpen"<%=(editBean.getDelayOpen(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    443443                <%=intl._t("Delay opening client tunnel until activity is detected on the configured tunnel port")%></label>
    444444            </td>
     
    455455        <tr>
    456456            <td colspan="2">
    457                 <label><input value="1" type="checkbox" name="reduce" title="Reduce Tunnels"<%=(editBean.getReduce(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     457                <label title="<%=intl._t("Reduce tunnel count when idle but keep tunnel open (to ensure immediate availability)")%>"><input value="1" type="checkbox" name="reduce"<%=(editBean.getReduce(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    458458                <%=intl._t("Reduce tunnel quantity when idle to conserve resources")%></label>
    459459            </td>
     
    463463            <td>
    464464                <b><%=intl._t("Reduced tunnel count")%>:</b>
    465                 <input type="text" id="reducedTunnelCount" name="reduceCount" size="1" maxlength="1" title="Reduced Tunnel Count" value="<%=editBean.getReduceCount(curTunnel)%>" class="freetext quantity" />
     465                <input type="text" id="reducedTunnelCount" name="reduceCount" size="1" maxlength="1" title="<%=intl._t("Reduced Tunnel Count")%>" value="<%=editBean.getReduceCount(curTunnel)%>" class="freetext quantity" />
    466466            </td>
    467467
    468468            <td>
    469469                <b><%=intl._t("Idle period")%>:</b>
    470                 <input type="text" name="reduceTime" size="4" maxlength="4" title="Reduced Tunnel Idle Time" value="<%=editBean.getReduceTime(curTunnel)%>" class="freetext period" />
     470                <input type="text" name="reduceTime" size="4" maxlength="4" title="<%=intl._t("Reduced Tunnel Idle Time")%>" value="<%=editBean.getReduceTime(curTunnel)%>" class="freetext period" />
    471471                minutes
    472472            </td>
     
    481481        <tr>
    482482            <td>
    483                 <label><input value="1" type="checkbox" name="close" title="Close Tunnels"<%=(editBean.getClose(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     483                <label title="<%=intl._t("To conserve resources, close tunnels when not in use")%>"><input value="1" type="checkbox" name="close"<%=(editBean.getClose(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    484484                <%=intl._t("Close client tunnels after specified idle period")%></label>
    485485            </td>
     
    487487            <td>
    488488                <b><%=intl._t("Idle period")%>:</b>
    489                 <input type="text" name="closeTime" size="4" maxlength="4" title="Close Tunnel Idle Time" value="<%=editBean.getCloseTime(curTunnel)%>" class="freetext period" />
     489                <input type="text" name="closeTime" size="4" maxlength="4" title="<%=intl._t("Close Tunnel Idle Time")%>" value="<%=editBean.getCloseTime(curTunnel)%>" class="freetext period" />
    490490                minutes
    491491            </td>
     
    496496                <b><%=intl._t("New Keys on Reopen")%>:</b>
    497497                <span class="multiOption">
    498                     <label><input value="1" type="radio" name="newDest" title="New Destination"
     498                    <label title="<%=intl._t("Change tunnel identity (destination) when tunnels reopen")%>"><input value="1" type="radio" name="newDest"
    499499                        <%=(editBean.getNewDest(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    500500                    <%=intl._t("Enable")%></label>
    501501                </span>
    502502                <span class="multiOption">
    503                     <label><input value="0" type="radio" name="newDest" title="New Destination"
     503                    <label title="<%=intl._t("Retain tunnel identity (destination) when tunnels reopen")%>"><input value="0" type="radio" name="newDest"
    504504                        <%=(editBean.getNewDest(curTunnel) || editBean.getPersistentClientKey(curTunnel) ? "" : " checked=\"checked\"")%> class="tickbox" />
    505505                    <%=intl._t("Disable")%></label>
     
    517517        <tr>
    518518            <td>
    519                 <label><input value="2" type="radio" name="newDest" title="New Destination"
     519                <label title="<%=intl._t("Enabling this feature will ensure your tunnel identity (destination) remains static, for services offering features based on destination e.g. IRC user authentication")%>"><input value="2" type="radio" name="newDest"
    520520                     <%=(editBean.getPersistentClientKey(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    521521                <%=intl._t("Generate key to enable persistent client tunnel identity")%></label>
     
    523523            <td>
    524524                <b><%=intl._t("File")%>:</b>
    525                 <input type="text" size="30" id="privKeyFile" name="privKeyFile" title="Path to Private Key File" value="<%=editBean.getPrivateKeyFile(curTunnel)%>" class="freetext" />
     525                <input type="text" size="30" id="privKeyFile" name="privKeyFile" title="<%=intl._t("Path to Private Key File")%>" value="<%=editBean.getPrivateKeyFile(curTunnel)%>" class="freetext" />
    526526            </td>
    527527        </tr>
     
    538538        <tr>
    539539            <td colspan="2">
    540                     <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" id="localDestination" title="Read Only: Local Destination (if known)" wrap="off" spellcheck="false"><%=destb64%></textarea>
     540                    <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" id="localDestination" title="<%=intl._t("Read Only: Local Destination (if known)")%>" wrap="off" spellcheck="false"><%=destb64%></textarea>
    541541            </td>
    542542        </tr>
     
    561561        <tr>
    562562            <td>
    563                 <label><input value="1" type="checkbox" name="allowUserAgent" title="Do not spoof user agent string when checked"<%=(editBean.getAllowUserAgent(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     563                <label title="<%=intl._t("When enabled, the user agent of your web browser or http client will not be spoofed, potentially reducing your anonymity")%>"><input value="1" type="checkbox" name="allowUserAgent"<%=(editBean.getAllowUserAgent(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    564564                <%=intl._t("Do not spoof User-Agent header")%></label>
    565565            </td>
    566566            <td>
    567                 <label><input value="1" type="checkbox" name="allowReferer" title="Do not block referer header when checked"<%=(editBean.getAllowReferer(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     567                <label title="<%=intl._t("When enabled, the referer (originating page) of your web requests will not be filtered, potentially reducing your anonymity")%>"><input value="1" type="checkbox" name="allowReferer"<%=(editBean.getAllowReferer(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    568568                <%=intl._t("Do not block Referer header")%></label>
    569569            </td>
     
    572572        <tr>
    573573            <td>
    574                 <label><input value="1" type="checkbox" name="allowAccept" title="Do not block accept headers when checked"<%=(editBean.getAllowAccept(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     574                <label title="<%=intl._t("When enabled, the accept headers (mime types support) broadcast by your web browser will not be filtered, potentially reducing your anonymity")%>"><input value="1" type="checkbox" name="allowAccept"<%=(editBean.getAllowAccept(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    575575<%=intl._t("Do not block Accept headers")%></label>
    576576            </td>
    577577
    578578            <td>
    579                 <label><input value="1" type="checkbox" name="allowInternalSSL" title="Allow SSL to I2P addresses when checked"<%=(editBean.getAllowInternalSSL(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     579                <label title="<%=intl._t("Allow SSL to I2P addresses when enabled")%>"><input value="1" type="checkbox" name="allowInternalSSL"<%=(editBean.getAllowInternalSSL(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    580580                <%=intl._t("Allow SSL to I2P addresses")%></label>
    581581            </td>
     
    595595            <td colspan="2">
    596596                <span class="multiOption">
    597                     <label><input value="0" type="radio" name="sigType" title="Default"<%=(currentSigType==0 ? " checked=\"checked\"" : "")%> class="tickbox" />
     597                    <label><input value="0" type="radio" name="sigType"<%=(currentSigType==0 ? " checked=\"checked\"" : "")%> class="tickbox" />
    598598                    DSA-SHA1</label>
    599599                </span>
     
    603603
    604604                <span class="multiOption">
    605                     <label><input value="1" type="radio" name="sigType" title="Advanced users only"<%=(currentSigType==1 ? " checked=\"checked\"" : "")%> class="tickbox" />
     605                    <label><input value="1" type="radio" name="sigType"<%=(currentSigType==1 ? " checked=\"checked\"" : "")%> class="tickbox" />
    606606                    ECDSA-P256</label>
    607607                </span>
     
    613613
    614614                <span class="multiOption">
    615                     <label><input value="2" type="radio" name="sigType" title="Advanced users only"<%=(currentSigType==2 ? " checked=\"checked\"" : "")%> class="tickbox" />
     615                    <label><input value="2" type="radio" name="sigType"<%=(currentSigType==2 ? " checked=\"checked\"" : "")%> class="tickbox" />
    616616                    ECDSA-P384</label>
    617617                </span>
     
    621621
    622622                <span class="multiOption">
    623                     <label><input value="3" type="radio" name="sigType" title="Advanced users only"<%=(currentSigType==3 ? " checked=\"checked\"" : "")%> class="tickbox" />
     623                    <label><input value="3" type="radio" name="sigType"<%=(currentSigType==3 ? " checked=\"checked\"" : "")%> class="tickbox" />
    624624                    ECDSA-P521</label>
    625625                </span>
     
    630630
    631631                <span class="multiOption">
    632                     <label><input value="7" type="radio" name="sigType" title="Advanced users only"<%=(currentSigType==7 ? " checked=\"checked\"" : "")%> class="tickbox" />
     632                    <label><input value="7" type="radio" name="sigType"<%=(currentSigType==7 ? " checked=\"checked\"" : "")%> class="tickbox" />
    633633                    Ed25519-SHA-512</label>
    634634                </span>
     
    636636        </tr>
    637637           <% }   // isAvailable %>
    638          
     638
    639639         <% } // isAdvanced %>
    640640
     
    647647        <tr>
    648648            <td colspan="2">
    649                 <label><input value="1" type="checkbox" name="proxyAuth" title="Check to require authorization for this service"<%=(editBean.getProxyAuth(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     649                <label title="<%=intl._t("Enable to require a username and password to access this local service (for example if hosting on a LAN)")%>"><input value="1" type="checkbox" name="proxyAuth"<%=(editBean.getProxyAuth(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    650650                <%=intl._t("Require local authorization for this service")%></label>
    651651            </td>
     
    655655            <td>
    656656                <b><%=intl._t("Username")%>:</b>
    657                 <input type="text" name="proxyUsername" title="Set username for this service" value="" class="freetext username" />
     657                <input type="text" name="proxyUsername" title="<%=intl._t("Set username required to access this service")%>" value="" class="freetext username" />
    658658            </td>
    659659            <td>
    660660                <b><%=intl._t("Password")%>:</b>
    661                 <input type="password" name="nofilter_proxyPassword" title="Set password for this service" value="" class="freetext password" />
     661                <input type="password" name="nofilter_proxyPassword" title="<%=intl._t("Set password required to access this service")%>" value="" class="freetext password" />
    662662            </td>
    663663        </tr>
     
    670670        <tr>
    671671            <td colspan="2">
    672                 <label><input value="1" type="checkbox" id="startOnLoad" name="outproxyAuth" title="Check if the outproxy requires authorization"<%=(editBean.getOutproxyAuth(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     672                <label title="<%=intl._t("Enable if the outproxy a username and password to access")%>"><input value="1" type="checkbox" id="startOnLoad" name="outproxyAuth"<%=(editBean.getOutproxyAuth(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    673673                <%=intl._t("Outproxy requires authorization")%></label>
    674674            </td>
     
    678678            <td>
    679679                <b><%=intl._t("Username")%>:</b>
    680                 <input type="text" name="outproxyUsername" title="Enter username required by outproxy" value="<%=editBean.getOutproxyUsername(curTunnel)%>" class="freetext username" />
     680                <input type="text" name="outproxyUsername" title="<%=intl._t("Enter username required by outproxy")%>" value="<%=editBean.getOutproxyUsername(curTunnel)%>" class="freetext username" />
    681681            </td>
    682682
    683683            <td>
    684684                <b><%=intl._t("Password")%>:</b>
    685                 <input type="password" name="nofilter_outproxyPassword" title="Enter password required by outproxy" value="<%=editBean.getOutproxyPassword(curTunnel)%>" class="freetext password" />
     685                <input type="password" name="nofilter_outproxyPassword" title="<%=intl._t("Enter password required by outproxy")%>" value="<%=editBean.getOutproxyPassword(curTunnel)%>" class="freetext password" />
    686686            </td>
    687687        </tr>
     
    698698        <tr>
    699699            <td colspan="2">
    700                 <textarea rows="2" style="height: 8em;" cols="60" id="hostField" name="jumpList" title="List of helper URLs to offer when a host is not found in your addressbook" wrap="off" spellcheck="false"><%=editBean.getJumpList(curTunnel)%></textarea>
     700                <textarea rows="2" style="height: 8em;" cols="60" id="hostField" name="jumpList" title="<%=intl._t("List of helper URLs to offer jumplinks from the web proxy error page when a host is not found in your addressbook")%>" wrap="off" spellcheck="false"><%=editBean.getJumpList(curTunnel)%></textarea>
    701701            </td>
    702702        </tr>
     
    712712        <tr>
    713713            <td colspan="2">
    714                 <input type="text" id="customOptions" name="nofilter_customOptions" size="60" title="Custom Options" value="<%=editBean.getCustomOptions(curTunnel)%>" class="freetext" spellcheck="false"/>
     714                <input type="text" id="customOptions" name="nofilter_customOptions" size="60" title="<%=intl._t("Advanced options to control tunnel priority etc")%>" value="<%=editBean.getCustomOptions(curTunnel)%>" class="freetext" spellcheck="false"/>
    715715            </td>
    716716        </tr>
     
    719719            <td class="buttons" colspan="2">
    720720                    <input type="hidden" value="true" name="removeConfirm" />
    721                     <button id="controlCancel" class="control" type="submit" name="action" value="" title="Cancel"><%=intl._t("Cancel")%></button>
    722                     <button id="controlDelete" <%=(editBean.allowJS() ? "onclick=\"if (!confirm('Are you sure you want to delete?')) { return false; }\" " : "")%>accesskey="D" class="control" type="submit" name="action" value="Delete this proxy" title="Delete this Proxy"><%=intl._t("Delete")%></button>
    723                     <button id="controlSave" accesskey="S" class="control" type="submit" name="action" value="Save changes" title="Save Changes"><%=intl._t("Save")%></button>
     721                    <button id="controlCancel" class="control" type="submit" name="action" value=""><%=intl._t("Cancel")%></button>
     722                    <button id="controlDelete" <%=(editBean.allowJS() ? "onclick=\"if (!confirm('Are you sure you want to delete?')) { return false; }\" " : "")%>class="control" type="submit" name="action" value="Delete this proxy" title="<%=intl._t("Delete this Proxy (cannot be undone)")%>"><%=intl._t("Delete")%></button>
     723                    <button id="controlSave" class="control" type="submit" name="action" value="Save changes"><%=intl._t("Save")%></button>
    724724            </td>
    725725        </tr>
     
    731731
    732732  } else {
    733      %><div id="notReady"><%=intl._t("Tunnels are not initialized yet, please reload in two minutes.")%></div><%
     733     %><div id="notReady"><%=intl._t("Tunnels not initialized yet; please retry in a few moments.")%></div><%
    734734  }  // isInitialized()
    735735
  • apps/i2ptunnel/jsp/editServer.jsp

    rff400c9 r017f66a  
    9191        <tr>
    9292            <td>
    93                 <input type="text" size="30" maxlength="50" name="name" title="Tunnel Name" value="<%=editBean.getTunnelName(curTunnel)%>" class="freetext tunnelName" />
     93                <input type="text" size="30" maxlength="50" name="name" title="<%=intl._t("Name of tunnel to be displayed on Tunnel Manager home page and the router console sidebar")%>" value="<%=editBean.getTunnelName(curTunnel)%>" class="freetext tunnelName" />
    9494            </td>
    9595            <td>
     
    110110        <tr>
    111111            <td>
    112                 <input type="text" size="60" maxlength="80" name="nofilter_description"  title="Tunnel Description" value="<%=editBean.getTunnelDescription(curTunnel)%>" class="freetext tunnelDescription" />
    113             </td>
    114 
    115             <td>
    116                 <label><input value="1" type="checkbox" name="startOnLoad" title="Start Tunnel Automatically"<%=(editBean.startAutomatically(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     112                <input type="text" size="60" maxlength="80" name="nofilter_description" title="<%=intl._t("Description of tunnel to be displayed on Tunnel Manager home page")%>" value="<%=editBean.getTunnelDescription(curTunnel)%>" class="freetext tunnelDescription" />
     113            </td>
     114
     115            <td>
     116                <label title="<%=intl._t("Enable this option to ensure this service is available when the router starts")%>"><input value="1" type="checkbox" name="startOnLoad"<%=(editBean.startAutomatically(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    117117                <%=intl._t("Automatically start tunnel when router starts")%></label>
    118118            </td>
     
    133133            <td>
    134134                <b><%=intl._t("Host")%>:</b>
    135                 <input type="text" size="20" name="targetHost" title="Target Hostname or IP" value="<%=editBean.getTargetHost(curTunnel)%>" class="freetext host" />
     135                <input type="text" size="20" name="targetHost" title="<%=intl._t("Hostname or IP address of the target server")%>" value="<%=editBean.getTargetHost(curTunnel)%>" class="freetext host" />
    136136            </td>
    137137         <% } /* !streamrserver */ %>
     
    146146                       }
    147147                     %>
    148                 <input type="text" size="6" maxlength="5" id="targetPort" name="targetPort" title="Target Port Number" value="<%=editBean.getTargetPort(curTunnel)%>" class="freetext port" placeholder="required" />
    149             </td>
    150 
     148                <input type="text" size="6" maxlength="5" id="targetPort" name="targetPort" title="<%=intl._t("Specify the port the server is running on")%>" value="<%=editBean.getTargetPort(curTunnel)%>" class="freetext port" placeholder="required" />
    151149         <% if (!"streamrserver".equals(tunnelType)) { %>
    152         </tr>
    153 
    154         <tr>
    155             <td colspan="2">
    156                 <label><input value="1" type="checkbox" name="useSSL" title="Use SSL to connect to target" <%=(editBean.isSSLEnabled(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     150                <label title="<%=intl._t("To avoid traffic sniffing if connecting to a remote server, you can enable an SSL connection. Note that the target server must be configured to accept SSL connections.")%>"><input value="1" type="checkbox" name="useSSL"<%=(editBean.isSSLEnabled(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    157151                <%=intl._t("Use SSL to connect to target")%></label>
    158152         <% } /* !streamrserver */ %>
     
    179173                      %>
    180174
    181                  <input type="text" size="6" maxlength="5" name="port" title="Access Port Number" value="<%=editBean.getClientPort(curTunnel)%>" class="freetext port" placeholder="required" />
     175                 <input type="text" size="6" maxlength="5" name="port" title="<%=intl._t("Port required to access service (this can be a different port to the port the service is hosted on)")%>" value="<%=editBean.getClientPort(curTunnel)%>" class="freetext port" placeholder="required" />
    182176            </td>
    183177         <% } /* httpbidirserver */ %>
     
    187181                <b><%=intl._t("Reachable by")%>:</b>
    188182
    189                 <select id="reachableBy" name="reachableBy" title="IP for Client Access" class="selectbox">
     183                <select id="reachableBy" name="reachableBy" title="<%=intl._t("Listening interface (IP address) for client access (normally 127.0.0.1)")%>" class="selectbox">
    190184              <%
    191185                    String clientInterface = editBean.getClientInterface(curTunnel);
     
    219213        <tr>
    220214            <td colspan="2">
    221                 <input type="text" size="20" id="websiteName" name="spoofedHost" title="Website Hostname" value="<%=editBean.getSpoofedHost(curTunnel)%>" class="freetext" />
     215                <input type="text" size="20" id="websiteName" name="spoofedHost" title="<%=intl._t("Website Hostname e.g. mysite.i2p")%>" value="<%=editBean.getSpoofedHost(curTunnel)%>" class="freetext" />
    222216                <%=intl._t("(leave blank for outproxies)")%>
    223217            </td>
     
    227221
    228222        <tr>
    229             <th colspan="2">
     223            <th>
     224                <%=intl._t("Local destination")%>
     225            </th>
     226            <th>
    230227                <%=intl._t("Private key file")%>
    231228            </th>
     
    233230
    234231        <tr>
    235             <td colspan="2">
     232            <td>
     233                <div class="displayText" title="<%=intl._t("Read Only: Local Destination (if known)")%>" tabindex="0"><%=editBean.getDestinationBase64(curTunnel)%></div>
     234            </td>
     235            <td>
    236236                    <% String value3 = editBean.getPrivateKeyFile(curTunnel);
    237237                       if (value3 == null || "".equals(value3.trim())) {
     
    241241                       }
    242242                     %>
    243                 <input type="text" size="30" id="privKeyFile" name="privKeyFile" title="Path to Private Key File" value="<%=editBean.getPrivateKeyFile(curTunnel)%>" class="freetext" placeholder="required" />
    244             </td>
    245         </tr>
    246 
    247         <tr>
    248             <th colspan="2">
    249                 <%=intl._t("Local destination")%>
    250             </th>
    251         </tr>
    252 
    253         <tr>
    254             <td colspan="2">
    255                 <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" id="localDestination" title="Read Only: Local Destination (if known)" wrap="off" spellcheck="false"><%=editBean.getDestinationBase64(curTunnel)%></textarea>
     243                <input type="text" size="30" id="privKeyFile" name="privKeyFile" title="<%=intl._t("Path to Private Key File")%>" value="<%=editBean.getPrivateKeyFile(curTunnel)%>" class="freetext" placeholder="required" />
    256244            </td>
    257245        </tr>
     
    264252                   if (sig.length() > 0) {
    265253          %><div id="sigField" class="rowItem">
    266                 <label for="signature">
    267254                    <%=intl._t("Hostname Signature")%>
    268                 </label>
    269                 <input type="text" size="30" readonly="readonly" title="Use to prove that the website name is for this destination" value="<%=sig%>" wrap="off" class="freetext" />
     255                <input type="text" size="30" readonly="readonly" title="<%=intl._t("Use to prove that the website name is for this destination")%>" value="<%=sig%>" wrap="off" class="freetext" />
    270256            </div>
    271257         <%
     
    289275
    290276            <td class="buttons" colspan="2">
    291               <a class="control" title="<%=intl._t("Generate QR Code")%>" href="/imagegen/qr?s=320&amp;t=<%=name%>&amp;c=http%3a%2f%2f<%=name%>%2f%3fi2paddresshelper%3d<%=b64%>" target="_top"><%=intl._t("Generate QR Code")%></a>
    292               <a class="control" href="/susidns/addressbook.jsp?book=private&amp;hostname=<%=name%>&amp;destination=<%=b64%>#add"><%=intl._t("Add to local addressbook")%></a>   
    293               <a class="control" href="register?tunnel=<%=curTunnel%>"><%=intl._t("Registration Authentication")%></a>
     277              <a class="control" title="<%=intl._t("Generate a QR Code for this domain")%>" href="/imagegen/qr?s=320&amp;t=<%=name%>&amp;c=http%3a%2f%2f<%=name%>%2f%3fi2paddresshelper%3d<%=b64%>" target="_top"><%=intl._t("Generate QR Code")%></a>
     278              <a class="control" title="<%=intl._t("Add to Private addressbook")%>" href="/susidns/addressbook.jsp?book=private&amp;hostname=<%=name%>&amp;destination=<%=b64%>#add"><%=intl._t("Add to local addressbook")%></a>
     279              <a class="control" title="<%=intl._t("Register, unregister or change details for hostname")%>" href="register?tunnel=<%=curTunnel%>"><%=intl._t("Registration Authentication")%></a>
    294280            </td>
    295281        <%
     
    297283          %>
    298284            <td class="infohelp" colspan="2">
    299                 <%=intl._t("Note: In order to enable QR code generation or registration authentication, configure the Name field above with .i2p suffix eg. mynewserver.i2p")%>
     285                <%=intl._t("Note: In order to enable QR code generation or registration authentication, configure the Website Hostname field (for websites) or the Name field (everything else) above with an .i2p suffixed hostname e.g. mynewserver.i2p")%>
    300286            </td>
    301287        <%
     
    331317        <tr>
    332318            <td>
    333                 <select id="tunnelDepth" name="tunnelDepth" title="Length of each Tunnel" class="selectbox">
     319                <select id="tunnelDepth" name="tunnelDepth" title="<%=intl._t("Length of each Tunnel")%>" class="selectbox">
    334320                    <% int tunnelDepth = editBean.getTunnelDepth(curTunnel, 3);
    335321                  %><option value="0"<%=(tunnelDepth == 0 ? " selected=\"selected\"" : "") %>><%=intl._t("0 hop tunnel (no anonymity)")%></option>
     
    349335
    350336            <td>
    351                 <select id="tunnelVariance" name="tunnelVariance" title="Level of Randomization for Tunnel Depth" class="selectbox">
     337                <select id="tunnelVariance" name="tunnelVariance" title="<%=intl._t("Level of Randomization for Tunnel Depth")%>" class="selectbox">
    352338                    <% int tunnelVariance = editBean.getTunnelVariance(curTunnel, 0);
    353339                  %><option value="0"<%=(tunnelVariance  ==  0 ? " selected=\"selected\"" : "") %>><%=intl._t("0 hop variance (no randomization, consistent performance)")%></option>
     
    375361        <tr>
    376362            <td>
    377                 <select id="tunnelQuantity" name="tunnelQuantity" title="Number of Tunnels in Group" class="selectbox">
     363                <select id="tunnelQuantity" name="tunnelQuantity" title="<%=intl._t("Number of Tunnels in Group")%>" class="selectbox">
    378364                    <%=editBean.getQuantityOptions(curTunnel)%>
    379365                </select>
     
    381367
    382368            <td>
    383                 <select id="tunnelBackupQuantity" name="tunnelBackupQuantity" title="Number of Reserve Tunnels" class="selectbox">
     369                <select id="tunnelBackupQuantity" name="tunnelBackupQuantity" title="<%=intl._t("Number of Reserve Tunnels")%>" class="selectbox">
    384370                    <% int tunnelBackupQuantity = editBean.getTunnelBackupQuantity(curTunnel, 0);
    385371                  %><option value="0"<%=(tunnelBackupQuantity == 0 ? " selected=\"selected\"" : "") %>><%=intl._t("0 backup tunnels (0 redundancy, no added resource usage)")%></option>
     
    404390        <tr>
    405391            <td colspan="2">
    406                 <select id="profile" name="profile" title="Connection Profile" class="selectbox">
     392                <select id="profile" name="profile" title="<%=intl._t("Connection Profile")%>" class="selectbox">
    407393                    <% boolean interactiveProfile = editBean.isInteractive(curTunnel);
    408394                  %><option <%=(interactiveProfile == true  ? "selected=\"selected\" " : "")%>value="interactive"><%=intl._t("interactive connection")%> </option>
     
    422408            <td>
    423409                <b><%=intl._t("Host")%>:</b>
    424                 <input type="text" id="clientHost" name="clientHost" size="20" title="I2CP Hostname or IP" value="<%=editBean.getI2CPHost(curTunnel)%>" class="freetext" <% if (editBean.isRouterContext()) { %> readonly="readonly" <% } %> />
     410                <input type="text" id="clientHost" name="clientHost" size="20" title="<%=intl._t("I2CP Hostname or IP")%>" value="<%=editBean.getI2CPHost(curTunnel)%>" class="freetext" <% if (editBean.isRouterContext()) { %> readonly="readonly" <% } %> />
    425411            </td>
    426412            <td>
    427413                <b><%=intl._t("Port")%>:</b>
    428                 <input type="text" id="clientPort" name="clientport" size="20" title="I2CP Port Number" value="<%=editBean.getI2CPPort(curTunnel)%>" class="freetext" <% if (editBean.isRouterContext()) { %> readonly="readonly" <% } %> />
     414                <input type="text" id="clientPort" name="clientport" size="20" title="<%=intl._t("I2CP Port Number")%>" value="<%=editBean.getI2CPPort(curTunnel)%>" class="freetext" <% if (editBean.isRouterContext()) { %> readonly="readonly" <% } %> />
    429415            </td>
    430416        </tr>
     
    438424        <tr>
    439425            <td colspan="2">
    440                 <label><input value="1" type="checkbox" id="startOnLoad" name="encrypt" title="ONLY clients with the encryption key will be able to connect"<%=(editBean.getEncrypt(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     426                <label title="<%=intl._t("Only clients with the encryption key will be able to connect")%>"><input value="1" type="checkbox" id="startOnLoad" name="encrypt"<%=(editBean.getEncrypt(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    441427                <%=intl._t("Only allow clients with the encryption key to connect to this server")%></label>
    442428            </td>
     
    455441        <tr>
    456442            <td>
    457                 <textarea rows="1" style="height: 3em;" cols="44" id="leasesetKey" name="encryptKey" title="Encrypt Key" wrap="off" spellcheck="false"><%=editBean.getEncryptKey(curTunnel)%></textarea>
    458             </td>
    459 
    460             <td>
    461                 <button class="control" type="submit" name="action" value="Generate" title="Generate New Key Now"><%=intl._t("Generate")%></button>
     443                <textarea rows="1" style="height: 3em;" cols="44" id="leasesetKey" name="encryptKey" title="<%=intl._t("Encryption key required to access this service")%>" wrap="off" spellcheck="false"><%=editBean.getEncryptKey(curTunnel)%></textarea>
     444            </td>
     445
     446            <td>
     447                <button class="control" type="submit" name="action" value="Generate" title="<%=intl._t("Generate new encryption key")%>"><%=intl._t("Generate")%></button>
    462448            </td>
    463449        </tr>
     
    471457        <tr>
    472458            <td colspan="2">
    473                 <% /* can't use <label> here */ %>
    474                 <span class="multiOption"><label><input value="0" type="radio" name="accessMode" title="<%=intl._t("Allow all clients")%>"<%=(editBean.getAccessMode(curTunnel).equals("0") ? " checked=\"checked\"" : "")%> class="tickbox" />
     459                <span class="multiOption"><label title="<%=intl._t("Allow all clients to connect to this service")%>"><input value="0" type="radio" name="accessMode"<%=(editBean.getAccessMode(curTunnel).equals("0") ? " checked=\"checked\"" : "")%> class="tickbox" />
    475460                    <%=intl._t("Disable")%></label></span>
    476                 <span class="multiOption"><label><input value="2" type="radio" name="accessMode" title="<%=intl._t("Reject listed clients")%>"<%=(editBean.getAccessMode(curTunnel).equals("2") ? " checked=\"checked\"" : "")%> class="tickbox" />
     461                <span class="multiOption"><label title="<%=intl._t("Prevent listed clients from connecting to this service")%>"><input value="2" type="radio" name="accessMode"<%=(editBean.getAccessMode(curTunnel).equals("2") ? " checked=\"checked\"" : "")%> class="tickbox" />
    477462                    <%=intl._t("Blacklist")%></label></span>
    478                 <span class="multiOption"><label><input value="1" type="radio" name="accessMode" title="<%=intl._t("Allow listed clients only")%>"<%=(editBean.getAccessMode(curTunnel).equals("1") ? " checked=\"checked\"" : "")%> class="tickbox" />
     463                <span class="multiOption"><label title="<%=intl._t("Only allow listed clients to connect to this service")%>"><input value="1" type="radio" name="accessMode"<%=(editBean.getAccessMode(curTunnel).equals("1") ? " checked=\"checked\"" : "")%> class="tickbox" />
    479464                    <%=intl._t("Whitelist")%></label></span>
    480465            </td>
     
    489474        <tr>
    490475            <td colspan="2">
    491                 <textarea rows="2" style="height: 8em;" cols="60" name="accessList" title="Access List" wrap="off" spellcheck="false"><%=editBean.getAccessList(curTunnel)%></textarea>
     476                <textarea rows="2" style="height: 8em;" cols="60" name="accessList" title="<%=intl._t("Control access to this service")%>" wrap="off" spellcheck="false"><%=editBean.getAccessList(curTunnel)%></textarea>
    492477            </td>
    493478        </tr>
     
    504489        <tr>
    505490            <td>
    506                 <label><input value="1" type="checkbox" name="rejectInproxy" title="<%=intl._t("Deny inproxy access when enabled")%>" <%=(editBean.isRejectInproxy(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     491                <label title="<%=intl._t("Prevent clients from accessing this service via an inproxy")%>"><input value="1" type="checkbox" name="rejectInproxy"<%=(editBean.isRejectInproxy(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    507492                <%=intl._t("Block Access via Inproxies")%></label>
    508493            </td>
    509494
    510495            <td>
    511                 <label><input value="1" type="checkbox" name="rejectReferer" title="<%=intl._t("Deny accesseses with referers (probably from inproxies)")%>" <%=(editBean.isRejectReferer(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     496                <label title="<%=intl._t("Deny accesseses with referers (probably from inproxies)")%>"><input value="1" type="checkbox" name="rejectReferer"<%=(editBean.isRejectReferer(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    512497                <%=intl._t("Block Accesses containing Referers")%></label>
    513498            </td>
     
    516501        <tr>
    517502            <td>
    518                 <label><input value="1" type="checkbox" name="rejectUserAgents" title="<%=intl._t("Deny User-Agents matching these strings (probably from inproxies)")%>" <%=(editBean.isRejectUserAgents(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     503                <label title="<%=intl._t("Deny User-Agents matching these strings (probably from inproxies)")%>"><input value="1" type="checkbox" name="rejectUserAgents"<%=(editBean.isRejectUserAgents(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    519504                <%=intl._t("Block these User-Agents")%></label>
    520505            </td>
     
    529514        <tr>
    530515            <td>
    531                 <label><input value="1" type="checkbox" name="uniqueLocal" title="<%=intl._t("Use unique IP addresses for each connecting client (local non-SSL servers only)")%>" <%=(editBean.getUniqueLocal(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     516                <label title="<%=intl._t("Use unique IP addresses for each connecting client (local non-SSL servers only)")%>"><input value="1" type="checkbox" name="uniqueLocal"<%=(editBean.getUniqueLocal(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    532517                <%=intl._t("Unique Local Address per Client")%></label>
    533518            </td>
    534519
    535520            <td>
    536                 <label><input value="1" type="checkbox" name="multihome" title="<%=intl._t("Only enable if you are hosting this service on multiple routers")%>" <%=(editBean.getMultihome(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     521                <label title="<%=intl._t("Only enable if you are hosting this service on multiple routers")%>"><input value="1" type="checkbox" name="multihome"<%=(editBean.getMultihome(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    537522                <%=intl._t("Optimize for Multihoming")%></label>
    538523            </td>
     
    563548                        <td><b><%=intl._t("Per Client")%></b></td>
    564549                        <td>
    565                             <input type="text" name="limitMinute" value="<%=editBean.getLimitMinute(curTunnel)%>" class="freetext" />
    566                         </td>
    567                         <td>
    568                             <input type="text" name="limitHour" value="<%=editBean.getLimitHour(curTunnel)%>" class="freetext" />
    569                         </td>
    570                         <td>
    571                             <input type="text" name="limitDay" value="<%=editBean.getLimitDay(curTunnel)%>" class="freetext" />
     550                            <input type="text" name="limitMinute" title="<%=intl._t("Maximum number of web page requests per minute for a unique client before access to the server is blocked")%>" value="<%=editBean.getLimitMinute(curTunnel)%>" class="freetext" />
     551                        </td>
     552                        <td>
     553                            <input type="text" name="limitHour" title="<%=intl._t("Maximum number of web page requests per hour for a unique client before access to the server is blocked")%>" value="<%=editBean.getLimitHour(curTunnel)%>" class="freetext" />
     554                        </td>
     555                        <td>
     556                            <input type="text" name="limitDay" title="<%=intl._t("Maximum number of web page requests per day for a unique client before access to the server is blocked")%>" value="<%=editBean.getLimitDay(curTunnel)%>" class="freetext" />
    572557                        </td>
    573558                        <td class="blankColumn"></td>
     
    576561                        <td><b><%=intl._t("Total")%></b></td>
    577562                        <td>
    578                             <input type="text" name="totalMinute" value="<%=editBean.getTotalMinute(curTunnel)%>" class="freetext" />
    579                         </td>
    580                         <td>
    581                             <input type="text" name="totalHour" value="<%=editBean.getTotalHour(curTunnel)%>" class="freetext" />
    582                         </td>
    583                         <td>
    584                             <input type="text" name="totalDay" value="<%=editBean.getTotalDay(curTunnel)%>" class="freetext" />
     563                            <input type="text" name="totalMinute" title="<%=intl._t("Total number of web page requests per minute before access to the server is blocked")%>" value="<%=editBean.getTotalMinute(curTunnel)%>" class="freetext" />
     564                        </td>
     565                        <td>
     566                            <input type="text" name="totalHour" title="<%=intl._t("Total number of web page requests per hour before access to the server is blocked")%>" value="<%=editBean.getTotalHour(curTunnel)%>" class="freetext" />
     567                        </td>
     568                        <td>
     569                            <input type="text" name="totalDay" title="<%=intl._t("Total number of web page requests per day before access to the server is blocked")%>" value="<%=editBean.getTotalDay(curTunnel)%>" class="freetext" />
    585570                        </td>
    586571                        <td class="blankColumn"></td>
     
    592577                        <td></td>
    593578                        <td>
    594                             <input type="text" name="maxStreams" value="<%=editBean.getMaxStreams(curTunnel)%>" class="freetext" />
     579                            <input type="text" name="maxStreams" title="<%=intl._t("Maximum number of simultaneous client connections")%>" value="<%=editBean.getMaxStreams(curTunnel)%>" class="freetext" />
    595580                        </td>
    596581                        <td></td>
     
    623608                        </td>
    624609                        <td>
    625                             <input type="text" name="postMax" value="<%=editBean.getPostMax(curTunnel)%>" class="freetext quantity"/>
     610                            <input type="text" name="postMax" title="<%=intl._t("Maximum number of post requests permitted for a unique client for the configured timespan")%>" value="<%=editBean.getPostMax(curTunnel)%>" class="freetext quantity"/>
    626611                        </td>
    627612                        <td colspan="2">
    628                             <input type="text" name="postBanTime" value="<%=editBean.getPostBanTime(curTunnel)%>" class="freetext period"/>
     613                            <input type="text" name="postBanTime" title="<%=intl._t("If a client exceeds the maximum number of post requests per allocated period, enforce a ban for this number of minutes")%>" value="<%=editBean.getPostBanTime(curTunnel)%>" class="freetext period"/>
    629614                            <%=intl._t("minutes")%>
    630615                        </td>
     
    637622                        </td>
    638623                        <td>
    639                             <input type="text" name="postTotalMax" value="<%=editBean.getPostTotalMax(curTunnel)%>" class="freetext quantity"/>
     624                            <input type="text" name="postTotalMax" title="<%=intl._t("Total number of post requests permitted for the configured timespan")%>" value="<%=editBean.getPostTotalMax(curTunnel)%>" class="freetext quantity"/>
    640625                        </td>
    641626                        <td colspan="2">
    642                             <input type="text" name="postTotalBanTime" value="<%=editBean.getPostTotalBanTime(curTunnel)%>" class="freetext period"/>
     627                            <input type="text" name="postTotalBanTime" title="<%=intl._t("If the maximum number of post requests per allocated period is exceeded, enforce a global access ban for this number of minutes")%>" value="<%=editBean.getPostTotalBanTime(curTunnel)%>" class="freetext period"/>
    643628                            <%=intl._t("minutes")%>
    644629                        </td>
     
    651636                        </td>
    652637                        <td colspan="2">
    653                             <input type="text" name="postCheckTime" value="<%=editBean.getPostCheckTime(curTunnel)%>" class="freetext period"/>
     638                            <input type="text" name="postCheckTime" title="<%=intl._t("Timespan for the maximum number of post requests to be reached before a ban is triggered")%>" value="<%=editBean.getPostCheckTime(curTunnel)%>" class="freetext period"/>
    654639                            <%=intl._t("minutes")%>
    655640                        </td>
     
    661646          %>
    662647
    663 
    664648                </table>
    665649            </td>
     
    674658        <tr>
    675659            <td colspan="2">
    676                 <label><input value="1" type="checkbox" id="startOnLoad" name="reduce" title="Reduce Tunnels"<%=(editBean.getReduce(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
     660                <label><input value="1" type="checkbox" id="startOnLoad" name="reduce" <%=(editBean.getReduce(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
    677661                <%=intl._t("Reduce tunnel quantity when idle to conserve resources")%></label>
    678662            </td>
     
    681665            <td>
    682666                <b><%=intl._t("Reduced tunnel count")%>:</b>
    683                 <input type="text" id="reduceCount" name="reduceCount" size="1" maxlength="1" title="Reduced Tunnel Count" value="<%=editBean.getReduceCount(curTunnel)%>" class="freetext quantity" />
     667                <input type="text" id="reduceCount" name="reduceCount" size="1" maxlength="1" title="<%=intl._t("Number of tunnels to keep open to maintain availability of service")%>" value="<%=editBean.getReduceCount(curTunnel)%>" class="freetext quantity" />
    684668            </td>
    685669
    686670            <td>
    687671                <b><%=intl._t("Idle period")%>:</b>
    688                 <input type="text" id="reduceTime" name="reduceTime" size="4" maxlength="4" title="Reduced Tunnel Idle Time" value="<%=editBean.getReduceTime(curTunnel)%>" class="freetext period" />
     672                <input type="text" id="reduceTime" name="reduceTime" size="4" maxlength="4" title="<%=intl._t("Period of inactivity before tunnel number is reduced")%>" value="<%=editBean.getReduceTime(curTunnel)%>" class="freetext period" />
    689673                <%=intl._t("minutes")%>
    690674            </td>
     
    692676
    693677<% /***************** %>
    694             <div id="tunnelOptionsField" class="rowItem">
    695                 <label for="cert" accesskey="c">
    696                     <%=intl._t("New Certificate type")%>(<span class="accessKey">C</span>):
    697                 </label>
    698             </div>
    699             <div id="hostField" class="rowItem">
    700               <div id="portField" class="rowItem">
    701                 <label><%=intl._t("None")%></label>
    702                 <input value="0" type="radio" id="startOnLoad" name="cert" title="No Certificate"<%=(editBean.getCert(curTunnel)==0 ? " checked=\"checked\"" : "")%> class="tickbox" />
    703               </div>
    704               <div id="portField" class="rowItem">
    705                 <label><%=intl._t("Hashcash (effort)")%></label>
    706                 <input value="1" type="radio" id="startOnLoad" name="cert" title="Hashcash Certificate"<%=(editBean.getCert(curTunnel)==1 ? " checked=\"checked\"" : "")%> class="tickbox" />
    707                 <input type="text" id="port" name="effort" size="2" maxlength="2" title="Hashcash Effort" value="<%=editBean.getEffort(curTunnel)%>" class="freetext" />
    708               </div>
    709             </div>
    710             <div id="portField" class="rowItem">
    711                 <label for="force" accesskey="c">
    712                     <%=intl._t("Hashcash Calc Time")%>:
    713                 </label>
    714                 <button accesskey="S" class="control" type="submit" name="action" value="Estimate" title="Estimate Calculation Time"><%=intl._t("Estimate")%></button>
    715             </div>
    716             <div id="hostField" class="rowItem">
    717               <div id="portField" class="rowItem">
    718                 <label><%=intl._t("Hidden")%></label>
    719                 <input value="2" type="radio" id="startOnLoad" name="cert" title="Hidden Certificate"<%=(editBean.getCert(curTunnel)==2 ? " checked=\"checked\"" : "")%> class="tickbox" />
    720               </div>
    721               <div id="portField" class="rowItem">
    722                 <label for="signer" accesskey="c">
    723                     <%=intl._t("Signed (signed by)")%>:
    724                 </label>
    725                 <input value="3" type="radio" id="startOnLoad" name="cert" title="Signed Certificate"<%=(editBean.getCert(curTunnel)==3 ? " checked=\"checked\"" : "")%> class="tickbox" />
    726                 <input type="text" id="port" name="signer" size="50" title="Cert Signer" value="<%=editBean.getSigner(curTunnel)%>" class="freetext" />
    727               </div>
    728             </div>
    729             <div id="portField" class="rowItem">
    730                 <label for="force" accesskey="c">
    731                     <%=intl._t("Modify Certificate")%>:
    732                 </label>
    733                 <button accesskey="S" class="control" type="submit" name="action" value="Modify" title="Force New Cert Now"><%=intl._t("Modify")%></button>
    734                 <span class="comment"><%=intl._t("(Tunnel must be stopped first)")%></span>
    735             </div>
     678
     679        <tr>
     680            <th colspan="2">
     681                <%=intl._t("New Certificate type")%>
     682            </th>
     683        </tr>
     684
     685        <tr>
     686            <td colspan="2">
     687                <span class="multiOption"><label title="<%=intl._t("No Certificate")%>"><%=intl._t("None")%>
     688                <input value="0" type="radio" id="startOnLoad" name="cert"<%=(editBean.getCert(curTunnel)==0 ? " checked=\"checked\"" : "")%> class="tickbox" /></label></span>
     689                <span class="multiOption"><label title="<%=intl._t("Hashcash Certificate")%>"><%=intl._t("Hashcash (effort)")%>
     690                <input value="1" type="radio" id="startOnLoad" name="cert"<%=(editBean.getCert(curTunnel)==1 ? " checked=\"checked\"" : "")%> class="tickbox" /></label>
     691                <input type="text" id="port" name="effort" size="2" maxlength="2" title="<%=intl._t("Hashcash Effort")%>" value="<%=editBean.getEffort(curTunnel)%>" class="freetext" /></span>
     692            </td>
     693        </tr>
     694
     695        <tr>
     696            <th>
     697                <%=intl._t("Hashcash Calc Time")%>
     698            </th>
     699            <th>
     700                <%=intl._t("Hidden")%>
     701            </th>
     702        </tr>
     703
     704        <tr>
     705            <td>
     706                <button class="control" type="submit" name="action" value="Estimate" title="<%=intl._t("Estimate Calculation Time")%>"><%=intl._t("Estimate")%></button>
     707            </td>
     708            <td>
     709                <input value="2" type="radio" id="startOnLoad" name="cert" title="<%=intl._t("Hidden Certificate")%>"<%=(editBean.getCert(curTunnel)==2 ? " checked=\"checked\"" : "")%> class="tickbox" />
     710            </td>
     711        </tr>
     712
     713        <tr>
     714            <th colspan="2">
     715                <%=intl._t("Signed Certificate")%>
     716            </th>
     717        </tr>
     718
     719        <tr>
     720            <td colspan="2">
     721                <label title="<%=intl._t("Signed Certificate")%>"><%=intl._t("Signed (signed by)")%>:
     722                <input value="3" type="radio" id="startOnLoad" name="cert"<%=(editBean.getCert(curTunnel)==3 ? " checked=\"checked\"" : "")%> class="tickbox" /></label>
     723                <input type="text" id="port" name="signer" size="50" title="<%=intl._t("Cert Signer")%>" value="<%=editBean.getSigner(curTunnel)%>" class="freetext" />
     724            </td>
     725        </tr>
     726
     727        <tr>
     728            <th colspan="2">
     729                <%=intl._t("Modify Certificate")%>&nbsp;<%=intl._t("(Tunnel must be stopped first)")%>
     730            </th>
     731        </tr>
     732
     733        <tr>
     734            <td colspan="2">
     735                <button class="control" type="submit" name="action" value="Modify" title="<%=intl._t("Force new Certificate now")%>"><%=intl._t("Modify")%></button>
     736            </td>
     737        </tr>
     738
    736739<% **********************/ %>
    737740
     
    748751            <td colspan="2">
    749752                <span class="multiOption">
    750                     <label><input value="0" type="radio" id="startOnLoad" name="sigType" title="Default"<%=(currentSigType==0 ? " checked=\"checked\"" : "")%> class="tickbox" />
     753                    <label title="<%=intl._t("Legacy option (deprecated), provided for backward compatibility")%>"><input value="0" type="radio" id="startOnLoad" name="sigType"<%=(currentSigType==0 ? " checked=\"checked\"" : "")%> class="tickbox" />
    751754                    DSA-SHA1</label>
    752755                </span>
    753756           <% if (editBean.isSigTypeAvailable(1)) { %>
    754757                <span class="multiOption">
    755                     <label><input value="1" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==1 ? " checked=\"checked\"" : "")%> class="tickbox" />
     758                    <label><input value="1" type="radio" id="startOnLoad" name="sigType"<%=(currentSigType==1 ? " checked=\"checked\"" : "")%> class="tickbox" />
    756759                    ECDSA-P256</label>
    757760                </span>
     
    759762              if (editBean.isSigTypeAvailable(2)) { %>
    760763                <span class="multiOption">
    761                     <label><input value="2" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==2 ? " checked=\"checked\"" : "")%> class="tickbox" />
     764                    <label><input value="2" type="radio" id="startOnLoad" name="sigType"<%=(currentSigType==2 ? " checked=\"checked\"" : "")%> class="tickbox" />
    762765                    ECDSA-P384</label>
    763766                </span>
     
    765768              if (editBean.isSigTypeAvailable(3)) { %>
    766769                <span class="multiOption">
    767                     <label><input value="3" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==3 ? " checked=\"checked\"" : "")%> class="tickbox" />
     770                    <label><input value="3" type="radio" id="startOnLoad" name="sigType"<%=(currentSigType==3 ? " checked=\"checked\"" : "")%> class="tickbox" />
    768771                    ECDSA-P521</label>
    769772                </span>
     
    771774              if (editBean.isSigTypeAvailable(7)) { %>
    772775                <span class="multiOption">
    773                     <label><input value="7" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==7 ? " checked=\"checked\"" : "")%> class="tickbox" />
     776                    <label title="<%=intl._t("This is the default, recommended option")%>"><input value="7" type="radio" id="startOnLoad" name="sigType"<%=(currentSigType==7 ? " checked=\"checked\"" : "")%> class="tickbox" />
    774777                    Ed25519-SHA-512</label>
    775778                </span>
     
    785788
    786789            if (currentSigType == 0 && !"".equals(b64) && !"streamrserver".equals(tunnelType)) {
    787           %><div id="privKeyField" class="rowItem">
    788                 <label for="privKeyFile"><%=intl._t("Alternate private key file")%> (Ed25519-SHA-512):</label>
    789                 <input type="text" size="30" id="privKeyFile" name="altPrivKeyFile" title="Path to Private Key File" value="<%=editBean.getAltPrivateKeyFile(curTunnel)%>" class="freetext" />               
    790             </div>
     790          %>
     791
     792        <tr>
     793            <th colspan="2">
     794                <%=intl._t("Alternate private key file")%> (Ed25519-SHA-512)
     795            </th>
     796        </tr>
     797
     798        <tr>
     799            <td colspan="2">
     800                <input type="text" class="freetext" size="30" id="altPrivKeyFile" name="altPrivKeyFile" title="<%=intl._t("Path to Private Key File")%>" value="<%=editBean.getAltPrivateKeyFile(curTunnel)%>" />
     801            </td>
     802        </tr>
    791803
    792804         <%
    793805              String ab64 = editBean.getAltDestinationBase64(curTunnel);
    794806              if (!"".equals(ab64)) {
    795           %><div id="destinationField" class="rowItem">
    796                 <label for="localDestination"><%=intl._t("Alternate local destination")%>:</label>
    797                 <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" id="localDestination" title="Read Only: Alternate Local Destination" wrap="off" spellcheck="false"><%=ab64%></textarea>               
    798             </div>
    799             <div id="destinationField" class="rowItem">
    800                 <label> </label>
    801                 <span class="comment"><%=editBean.getAltDestHashBase32(curTunnel)%></span>
    802             </div>
    803             <div id="destinationField" class="rowItem">
     807          %>
     808
     809        <tr>
     810            <th colspan="2">
     811                <%=intl._t("Alternate local destination")%>
     812            </th>
     813        </tr>
     814
     815        <tr>
     816            <td colspan="2">
     817                <div class="displayText" title="<%=intl._t("Read Only: Alternate Local Destination")%>"><%=ab64%></div>
     818            </td>
     819        </tr>
     820
     821        <tr>
     822            <td colspan="2">
     823                <%=editBean.getAltDestHashBase32(curTunnel)%>
     824            </td>
     825        </tr>
     826
    804827        <%
    805828                ab64 = ab64.replace("=", "%3d");
     
    809832                // mysite.i2p is set in the installed i2ptunnel.config
    810833                if (name != null && !name.equals("") && !name.equals("mysite.i2p") && !name.contains(" ") && name.endsWith(".i2p")) {
    811            %><label>
     834           %>
     835
     836        <tr>
     837            <td class="buttons" colspan="2">
    812838              <a class="control" title="<%=intl._t("Generate QR Code")%>" href="/imagegen/qr?s=320&amp;t=<%=name%>&amp;c=http%3a%2f%2f<%=name%>%2f%3fi2paddresshelper%3d<%=ab64%>" target="_top"><%=intl._t("Generate QR Code")%></a>
    813               </label>
    814               <a class="control" href="/susidns/addressbook.jsp?book=private&amp;hostname=<%=name%>&amp;destination=<%=ab64%>#add"><%=intl._t("Add to local addressbook")%></a>
     839              <a class="control" title="<%=intl._t("Add to Private addressbook")%>" href="/susidns/addressbook.jsp?book=private&amp;hostname=<%=name%>&amp;destination=<%=ab64%>#add"><%=intl._t("Add to local addressbook")%></a>
    815840        <%
    816841                } else {
    817             %><label> </label>
    818               <span class="comment"><%=intl._t("Set name with .i2p suffix to enable QR code generation")%></span>
     842            %>
     843
     844        <tr>
     845            <td colspan="2">
     846                <%=intl._t("Note: In order to enable QR code generation or registration authentication, configure the Website Hostname field (for websites) or the Name field (everything else) above with an .i2p suffixed hostname e.g. mynewserver.i2p")%>
     847            </td>
     848        </tr>
     849
    819850        <%
    820851                }  // name
    821           %></div>
     852            %>
    822853        <%
    823854              }  // ab64
    824           %><div class="subdivider"><hr /></div>
     855            %>
    825856         <% } // currentSigType %>
    826857
     
    832863        <tr>
    833864            <td colspan="2">
    834                 <input type="text" id="customOptions" name="nofilter_customOptions" size="60" title="Custom Options" value="<%=editBean.getCustomOptions(curTunnel)%>" class="freetext" spellcheck="false"/>
     865                <input type="text" class="freetext" id="customOptions" name="nofilter_customOptions" size="60" title="<%=intl._t("Advanced options to control tunnel priority etc")%>" value="<%=editBean.getCustomOptions(curTunnel)%>" />
    835866            </td>
    836867        </tr>
     
    839870            <td class="buttons" colspan="2">
    840871                    <input type="hidden" value="true" name="removeConfirm" />
    841                     <button id="controlCancel" class="control" type="submit" name="action" value="" title="Cancel"><%=intl._t("Cancel")%></button>
    842                     <button id="controlDelete" <%=(editBean.allowJS() ? "onclick=\"if (!confirm('Are you sure you want to delete?')) { return false; }\" " : "")%>accesskey="D" class="control" type="submit" name="action" value="Delete this proxy" title="Delete this Proxy"><%=intl._t("Delete")%></button>
    843                     <button id="controlSave" accesskey="S" class="control" type="submit" name="action" value="Save changes" title="Save Changes"><%=intl._t("Save")%></button>
     872                    <button id="controlCancel" class="control" type="submit" name="action" value=""><%=intl._t("Cancel")%></button>
     873                    <button id="controlDelete" <%=(editBean.allowJS() ? "onclick=\"if (!confirm('Are you sure you want to delete?')) { return false; }\" " : "")%>class="control" type="submit" name="action" value="Delete this proxy" title="<%=intl._t("Delete this Proxy (cannot be undone)")%>"><%=intl._t("Delete")%></button>
     874                    <button id="controlSave" class="control" type="submit" name="action" value="Save changes"><%=intl._t("Save")%></button>
    844875            </td>
    845876        </tr>
     
    851882
    852883  } else {
    853      %><div id="notReady"><%=intl._t("Tunnels are not initialized yet, please reload in two minutes.")%></div><%
     884     %><div id="notReady"><%=intl._t("Tunnels not initialized yet; please retry in a few moments.")%></div><%
    854885  }  // isInitialized()
    855886
  • apps/i2ptunnel/jsp/register.jsp

    rff400c9 r017f66a  
    6969                <input type="submit" class="default" name="action" value="Save changes" />
    7070<%
    71     if (!"new".equals(tunnelType)) {     
     71    if (!"new".equals(tunnelType)) {
    7272%>
    7373
     
    8484    </tr>
    8585
    86 <%           
     86<%
    8787      if (("httpserver".equals(tunnelType)) || ("httpbidirserver".equals(tunnelType))) {
    8888          %>
     
    132132    <tr>
    133133        <td>
    134             <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" title="Copy and paste this to the registration site" wrap="off" spellcheck="false" class="authentication"><% he.write(out); %></textarea>
     134            <div class="displayText" tabindex="0" title="<%=intl._t("Copy and paste this to the registration site")%>"><% he.write(out); %></div>
    135135        </td>
    136136    </tr>
     
    144144               he.signRemove(spk);
    145145          %>
    146          
     146
    147147<table>
    148148    <tr>
     
    153153    <tr>
    154154        <td>
    155             <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" title="Copy and paste this to the registration site" wrap="off" spellcheck="false" class="authentication"><% he.writeRemove(out); %></textarea>
     155            <div class="displayText" tabindex="0" title="<%=intl._t("Copy and paste this to the registration site")%>"><% he.writeRemove(out); %></div>
    156156        </td>
    157157    </tr>
     
    193193    <tr>
    194194        <td>
    195             <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" title="Copy and paste this to the registration site" wrap="off" spellcheck="false" class="authentication"><% he.write(out); %></textarea>
     195            <div class="displayText" tabindex="0" title="<%=intl._t("Copy and paste this to the registration site")%>"><% he.write(out); %></div>
    196196        </td>
    197197    </tr>
     
    226226    <tr>
    227227        <td>
    228             <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" title="Copy and paste this to the registration site" wrap="off" spellcheck="false" class="authentication"><% he.write(out); %></textarea>
     228            <div class="displayText" tabindex="0" title="<%=intl._t("Copy and paste this to the registration site")%>"><% he.write(out); %></div>
    229229        </td>
    230230    </tr>
     
    241241               }
    242242          %>
    243          
     243
    244244<%
    245245               props.remove(HostTxtEntry.PROP_SIG);
     
    263263    <tr>
    264264        <td>
    265             <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" title="Copy and paste this to the registration site" wrap="off" spellcheck="false" class="authentication"><% he.write(out); %></textarea>
     265            <div class="displayText" tabindex="0" title="<%=intl._t("Copy and paste this to the registration site")%>"><% he.write(out); %></div>
    266266        </td>
    267267    </tr>
     
    284284               props.remove(HostTxtEntry.PROP_OLDSIG);
    285285          %>
    286          
     286
    287287    <tr>
    288288        <th>
     
    300300    <tr>
    301301        <td>
    302             <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" title="Copy and paste this to the registration site" wrap="off" spellcheck="false" class="authentication"><% he.write(out); %></textarea>
     302            <div class="displayText" tabindex="0" title="<%=intl._t("Copy and paste this to the registration site")%>"><% he.write(out); %></div>
    303303        </td>
    304304    </tr>
     
    333333                       he2.signInner(spk);
    334334                       he2.sign(spk3);
    335                 %><tr><td><textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" id="localDestination" title="Copy and paste this to the registration site" wrap="off" spellcheck="false"><% he2.write(out); %></textarea></td></tr>
     335                %><tr><td><div class="displayText" tabindex="0" title="<%=intl._t("Copy and paste this to the registration site")%>"><% he2.write(out); %></div></td></tr>
    336336                <tr><td class="infohelp"><%=intl._t("This will add an alternate destination for {0}", name)%></td></tr>
    337337<%
     
    364364                   he.sign(spk);
    365365                %>
    366                
    367     <tr>
    368         <td>
    369             <textarea rows="1" style="height: 3em;" cols="60" readonly="readonly" title="Copy and paste this to the registration site" wrap="off" spellcheck="false" class="authentication"><% he.write(out); %></textarea>
     366
     367    <tr>
     368        <td>
     369            <div class="displayText" tabindex="0" title="<%=intl._t("Copy and paste this to the registration site")%>"><% he.write(out); %></div>
    370370        </td>
    371371    </tr>
     
    427427        <td>
    428428            <b><%=intl._t("Old Hostname")%>:</b>
    429             <input type="text" size="30" maxlength="50" name="oldname" id="oldName" title="Old Hostname" value="<%=oldname%>" class="freetext" />
     429            <input type="text" size="30" maxlength="50" name="oldname" id="oldName" value="<%=oldname%>" class="freetext" />
    430430        </td>
    431431    </tr>
     
    439439        <td class="buttons">
    440440                    <input type="hidden" value="true" name="removeConfirm" />
    441                     <button id="controlCancel" class="control" type="submit" name="action" value="" title="Cancel"><%=intl._t("Cancel")%></button>
    442                     <button id="controlSave" accesskey="S" class="control" type="submit" name="action" value="authenticate" title="Generate Authentication"><%=intl._t("Generate")%></button>
     441                    <a class="control" href="list"><%=intl._t("Cancel")%></a>
     442                    <button id="controlSave" class="control" type="submit" name="action" value="authenticate"  title="<%=intl._t("Generate Authentication")%>"><%=intl._t("Generate")%></button>
    443443        </td>
    444444    </tr>
  • apps/i2ptunnel/jsp/wizard.jsp

    rff400c9 r017f66a  
    258258        <td>
    259259            <span class="tag"><%=intl._t("Name")%>:</span>
    260                 <input type="text" size="30" maxlength="50" name="name" id="name" placeholder="New Tunnel" title="Tunnel Name" value="<%=(!"null".equals(request.getParameter("name")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("name")) : "" ) %>" class="freetext" />
     260                <input type="text" size="30" maxlength="50" name="name" id="name" placeholder="New Tunnel" title="<%=intl._t("Name of tunnel to be displayed on Tunnel Manager home page and the router console sidebar")%>" value="<%=(!"null".equals(request.getParameter("name")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("name")) : "" ) %>" class="freetext" />
    261261        </td>
    262262    </tr>
     
    264264        <td>
    265265            <span class="tag"><%=intl._t("Description")%>:</span>
    266                 <input type="text" size="60" maxlength="80" name="nofilter_description"  id="description" title="Tunnel Description" value="<%=(!"null".equals(request.getParameter("nofilter_description")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("nofilter_description")) : "" ) %>" class="freetext" />
     266                <input type="text" size="60" maxlength="80" name="nofilter_description"  id="description" title="<%=intl._t("Description of tunnel to be displayed on Tunnel Manager home page")%>" value="<%=(!"null".equals(request.getParameter("nofilter_description")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("nofilter_description")) : "" ) %>" class="freetext" />
    267267        </td>
    268268    </tr>
     
    292292        <td>
    293293            <span class="tag"><%=intl._t("Outproxies")%>:</span>
    294                 <input type="text" size="30" id="proxyList" name="proxyList" title="List of Outproxy I2P destinations" value="<%=(!"null".equals(request.getParameter("proxyList")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("proxyList")) : "" ) %>" class="freetext" />
     294                <input type="text" size="30" id="proxyList" name="proxyList" title="<%=intl._t("List of I2P outproxy destinations, separated with commas (e.g. proxy1.i2p,proxy2.i2p)")%>" value="<%=(!"null".equals(request.getParameter("proxyList")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("proxyList")) : "" ) %>" class="freetext" />
    295295        </td>
    296296    </tr>
     
    313313        <td>
    314314            <span class="tag"><%=intl._t("Tunnel Destination")%>:</span>
    315                 <input type="text" size="30" id="targetDestination" name="targetDestination" title="Destination of the Tunnel" value="<%=(!"null".equals(request.getParameter("targetDestination")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("targetDestination")) : "" ) %>" class="freetext" />
     315                <input type="text" size="30" id="targetDestination" name="targetDestination" title="<%=intl._t("Enter a b64 or .i2p address here")%>" value="<%=(!"null".equals(request.getParameter("targetDestination")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("targetDestination")) : "" ) %>" class="freetext" />
    316316            &nbsp;(<%=intl._t("name, name:port, or destination")%>
    317317                     <% if ("streamrclient".equals(tunnelType)) { /* deferred resolution unimplemented in streamr client */ %>
     
    345345        <td>
    346346            <span class="tag"><%=intl._t("Host")%>:</span>
    347                 <input type="text" size="20" id="targetHost" name="targetHost" title="Target Hostname or IP" placeholder="127.0.0.1" value="<%=(!"null".equals(request.getParameter("targetHost")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("targetHost")) : "127.0.0.1" ) %>" class="freetext" />
     347                <input type="text" size="20" id="targetHost" name="targetHost" title="<%=intl._t("Hostname or IP address of the target server")%>" placeholder="127.0.0.1" value="<%=(!"null".equals(request.getParameter("targetHost")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("targetHost")) : "127.0.0.1" ) %>" class="freetext" />
    348348        </td>
    349349    </tr>
     
    367367        <td>
    368368            <span class="tag"><%=intl._t("Port")%>:</span>
    369                 <input type="text" size="6" maxlength="5" id="targetPort" name="targetPort" title="Target Port Number" value="<%=(!"null".equals(request.getParameter("targetPort")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("targetPort")) : "" ) %>" class="freetext" />
     369                <input type="text" size="6" maxlength="5" id="targetPort" name="targetPort" title="<%=intl._t("Specify the port the server is running on")%>" value="<%=(!"null".equals(request.getParameter("targetPort")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("targetPort")) : "" ) %>" class="freetext" />
    370370        </td>
    371371    </tr>
     
    390390        <td>
    391391            <span class="tag"><%=intl._t("Port")%>:</span>
    392                 <input type="text" size="6" maxlength="5" id="port" name="port" title="Access Port Number" value="<%=(!"null".equals(request.getParameter("port")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("port")) : "" ) %>" class="freetext" />
     392                <input type="text" size="6" maxlength="5" id="port" name="port" title="<%=intl._t("Specify the local port this service should be accessible from")%>" value="<%=(!"null".equals(request.getParameter("port")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("port")) : "" ) %>" class="freetext" />
    393393        </td>
    394394    </tr>
     
    415415        <td>
    416416            <span class="tag"><%=intl._t("Reachable by")%>:</span>
    417                 <select id="reachableBy" name="reachableBy" title="IP for Client Access" class="selectbox">
     417                <select id="reachableBy" name="reachableBy" title="<%=intl._t("Listening interface (IP address) for client access (normally 127.0.0.1)")%>" class="selectbox">
    418418              <%
    419419                    String clientInterface = request.getParameter("reachableBy");
     
    457457    <tr>
    458458        <td class="options">
    459                 <label><input value="1" type="checkbox" id="startOnLoad" name="startOnLoad" title="Start Tunnel Automatically"<%=("1".equals(request.getParameter("startOnLoad")) ? " checked=\"checked\"" : "")%> class="tickbox" />
     459                <label title="<%=intl._t("Enable this option to ensure this service is available when the router starts")%>"><input value="1" type="checkbox" id="startOnLoad" name="startOnLoad" <%=("1".equals(request.getParameter("startOnLoad")) ? " checked=\"checked\"" : "")%> class="tickbox" />
    460460            &nbsp;<%=intl._t("Automatically start tunnel when router starts")%></label>
    461461        </td>
     
    617617    <tr>
    618618        <td class="buttons">
    619                     <a class="control" href="list"><%=intl._t("Cancel")%></a>
     619                    <a class="control" title="<%=intl._t("Cancel the wizard and return to Tunnel Manager home page")%>" href="list"><%=intl._t("Cancel")%></a>
    620620                    <% if (curPage != 1 && curPage != 7) {
    621                     %><button id="controlPrevious" class="control" type="submit" name="action" value="Previous page" title="Previous Page"><%=intl._t("Previous")%></button><%
     621                    %><button id="controlPrevious" class="control" type="submit" name="action" value="Previous page" title="<%=intl._t("Return to previous page")%>"><%=intl._t("Previous")%></button><%
    622622                    } %>
    623623                    <% if (curPage == 7) {
    624                     %><button id="controlSave" class="control" type="submit" name="action" value="Save changes" title="Save Tunnel"><%=intl._t("Save Tunnel")%></button><%
     624                    %><button id="controlSave" class="control" type="submit" name="action" value="Save changes" title="<%=intl._t("Save tunnel configuration")%>"><%=intl._t("Save Tunnel")%></button><%
    625625                    } else if (curPage == 6) {
    626                     %><button id="controlFinish" class="control" type="submit" name="action" value="Next page" title="Finish Wizard"><%=intl._t("Finish")%></button><%
     626                    %><button id="controlFinish" class="control" type="submit" name="action" value="Next page" title="<%=intl._t("Finish Wizard and review tunnel settings")%>"><%=intl._t("Finish")%></button><%
    627627                    } else {
    628                     %><button id="controlNext" class="control" type="submit" name="action" value="Next page" title="Next Page"><%=intl._t("Next")%></button><%
     628                    %><button id="controlNext" class="control" type="submit" name="action" value="Next page" title="<%=intl._t("Advance to next page")%>"><%=intl._t("Next")%></button><%
    629629                    } %>
    630630        </td>
  • history.txt

    rff400c9 r017f66a  
    4545     - Change sidebar snark icon to match homepage icon
    4646     - Bump div.main text color from #222 to #333 (reduce contrast)
    47    * i2ptunnel: Increase vertical spacing of H2/H3's
     47   * i2ptunnel:
     48     - Remove redundant labels and spans for keyaccess
     49     - Edit Server:
     50       - Shift Local Destination / Private Key file to share table row
     51       - Move "Use SSL to connect to target" to Target Port column
     52     - Add translation tagging for title tags
     53     - Remove redundant title tags and provide enhanced strings for features
     54       that benefit from clarification
     55     - Move title tags to <label> where applicable
     56     - Fixed Cancel button on registration so it now jumps back to the list page
     57     - textareas for registration page and local destination on edit server page
     58       changed to divs
     59       - Scrollbars hidden until mouseover, 1 click to select content
     60       - Responsive width, tabindex="0"
     61     - Fix overflow issue on select dropdowns (edit server/client -> tunnel
     62       options) in Chrome / Blink
     63     - More generous vertical padding for th (responsive)
     64     - Larger h2/h3s (responsive)
     65     - Increase spacing between panels in iframe mode
    4866   * SusiDNS: Change address helper icon to add book icon
    4967   * i2psnark:
  • installer/resources/themes/console/classic/i2ptunnel.css

    rff400c9 r017f66a  
    261261}
    262262
     263.iframed h2, .iframed h3 {
     264     margin-top: 12px;
     265}
     266
    263267/* title images */
    264268
     
    296300
    297301.iframed #globalTunnelControl h2 {
    298      margin-top: 2px;
     302     margin-top: 4px;
    299303}
    300304
     
    315319     background: #fff url(/themes/console/classic/images/tinytitle.png) repeat-x center center;
    316320     background: linear-gradient(to bottom, #fff, #eff2ff) !important;
    317      padding: 5px;
     321     padding: 7px 5px;
    318322     text-align: left;
    319323     border-top: 1px solid #89f;
     
    967971
    968972/* end Edge/IE tweaks */
     973
     974
     975/* TO DO: merge with main classes */
     976
     977.panel {
     978     min-width: 700px;
     979}
     980
     981@media screen and (-webkit-min-device-pixel-ratio:0) { /* fixes chrome/blinkoverflow issue */
     982select {
     983     white-space: normal;
     984}
     985}
     986
     987label {
     988     vertical-align: sub;
     989}
     990
     991input[type="text"] + label {
     992     white-space: nowrap;
     993}
     994
     995#targetPort {
     996     margin-right: 10px !important;
     997}
     998
     999#privKeyFile {
     1000     min-width: 200px;
     1001     width: 200px;
     1002     width: calc(100% - 20px);
     1003}
     1004
     1005.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1006     font-family: "Droid Sans Mono", "Noto Mono", "Lucida Console", "DejaVu Sans Mono", monospace;
     1007     width: calc(100% - 10px);
     1008     width: 290px;
     1009     overflow: hidden;
     1010     text-overflow: ellipsis;
     1011     white-space: nowrap;
     1012     word-break: break-all;
     1013     margin: 5px;
     1014     padding: 4px;
     1015     -moz-user-select: all;
     1016     -webkit-user-select: all;
     1017     user-select: all;
     1018     border: 1px solid #999;
     1019     background: #fff;
     1020     border-radius: 2px;
     1021     box-shadow: inset 1px 1px 1px #ddd;
     1022}
     1023
     1024.displayText:hover, .displayText:focus {
     1025     overflow: auto;
     1026     text-overflow: clip;
     1027     margin: 0.5px 5px;
     1028     padding: 2px 4px;
     1029     box-shadow: 0 0 1px #89f;
     1030     background: #ffe;
     1031     outline: none;
     1032}
     1033
     1034.displayText:empty, .displayText:empty:hover, .displayText:empty:focus {
     1035     background: #ddd;
     1036     box-shadow: inset 2px 2px 1px #ccc;
     1037}
     1038
     1039.displayText:empty::before {
     1040     content: "";
     1041     display: inline-block;
     1042     min-height: 9px;
     1043}
     1044
     1045#registration .displayText {
     1046     width: 500px;
     1047}
     1048
     1049#registration td {
     1050     padding: 8px;
     1051}
     1052
     1053#registration .infohelp {
     1054     padding-top: 15px !important;
     1055     padding-bottom: 15px !important;
     1056}
     1057
     1058#registration input[type="file"] {
     1059     margin-top: 5px;
     1060     margin-bottom: 5px;
     1061}
     1062
     1063#oldName, #altPrivKeyFile {
     1064     width: 45% !important;
     1065}
     1066
     1067@media screen and (max-width: 800px) {
     1068.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1069     width: 260px;
     1070     font-size: 8pt;
     1071}
     1072}
     1073
     1074@media screen and (min-width: 1000px) {
     1075.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1076     width: 386px;
     1077}
     1078
     1079#registration .displayText {
     1080     width: 600px;
     1081}
     1082}
     1083
     1084@media screen and (min-width: 1500px) {
     1085.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1086     width: 552px;
     1087}
     1088
     1089#registration .displayText {
     1090     width: 800px;
     1091}
     1092}
     1093
  • installer/resources/themes/console/dark/i2ptunnel.css

    rff400c9 r017f66a  
    33
    44body {
    5      margin: 0;
     5     margin: 3px 0 12px;
    66     padding: 0;
    77     text-align: center;
     
    1414body.iframed {
    1515     background: transparent url(/themes/console/images/transparent.gif) !important;
     16     margin: 0;
    1617     padding: 0;
    1718     overflow: hidden;
     
    165166
    166167h2, h3 {
    167      padding: 8px 10px;
     168     padding: 8px 10px 8px 34px;
    168169     border: 1px solid #494;
    169170     background: linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
     
    172173     letter-spacing: 0.08em;
    173174     word-spacing: 0.1em;
    174      margin: 5px 0 -1px;
     175     margin: 10px 0 -1px;
    175176     color: #ee9;
    176177     box-shadow: inset 0 0 0 1px #000;
     
    179180/* title images */
    180181
    181 h2, h3 {
    182      padding-left: 32px;
    183 }
    184 
    185182#messages h2 {
    186      background: url(/themes/console/images/info/logs.png) left 6px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
     183     background: url(/themes/console/images/info/logs.png) left 8px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
    187184     background-size: 20px auto, 100% 100%, 100% 100% !important;
    188185}
    189186
    190187#globalTunnelControl h2 {
    191      background: url(/themes/console/images/info/control.png) left 6px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
     188     background: url(/themes/console/images/info/control.png) left 8px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
    192189     background-size: 20px auto, 100% 100%, 100% 100% !important;
    193190}
    194191
    195192#servers h2 {
    196      background: url(/themes/console/images/info/server.png) left 6px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
     193     background: url(/themes/console/images/info/server.png) left 8px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
    197194     background-size: 20px auto, 100% 100%, 100% 100% !important;
    198195}
    199196
    200197#clients h2 {
    201      background: url(/themes/console/images/info/client.png) left 6px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
     198     background: url(/themes/console/images/info/client.png) left 8px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
    202199     background-size: 20px auto, 100% 100%, 100% 100% !important;
    203200}
    204201
    205202#tunnelEditPage h2, #tunnelEditPage h3, #registration h2, #registration h3 {
    206      background: url(/themes/console/images/info/configure.png) left 6px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
     203     background: url(/themes/console/images/info/configure.png) left 8px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
    207204     background-size: 20px auto, 100% 100%, 100% 100% !important;
    208205}
    209206
    210207#wizardPanel h2 {
    211      background: url(/themes/console/images/info/wizard.png) left 6px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
     208     background: url(/themes/console/images/info/wizard.png) left 8px center no-repeat, linear-gradient(to bottom, #1a261a 50%, #000 50%) !important;
    212209     background-size: 20px auto, 100% 100%, 100% 100% !important;
    213210}
     
    216213
    217214.iframed h2 {
    218      margin: 10px 0 -1px;
     215     margin: 14px 0 -1px;
    219216}
    220217
    221218h3 {
    222219     border-radius: 0;
    223      margin-top: 10px;
     220     margin-top: 14px;
    224221}
    225222
    226223.iframed #globalTunnelControl h2 {
    227      margin-top: 2px;
     224     margin-top: 6px;
    228225}
    229226
     
    238235     background: #000;
    239236     background: linear-gradient(to bottom, #1a261a 0%, #223022 7%, #212f21 9%, #172317 21%, #091109 49%, #050d05 50%, #020602 51%, #010301 53%, #000000 56%, #000000 100%);
    240      padding: 6px 5px;
     237     padding: 7px 5px;
    241238     border-top: 1px solid #494;
    242239     border-bottom: 1px solid #494;
     
    819816table {
    820817     background: #000 url(images/camotile2.png);
     818     background: linear-gradient(to bottom, rgba(0,0,0,0.5),rgba(0,0,0,0.7)), url(images/camotile2.png);
    821819}
    822820
     
    10931091
    10941092@media screen and (max-width: 1400px) {
    1095 h2,h3 {
    1096      font-size: 10.5pt;
     1093h2, h3 {
     1094     font-size: 11.5pt;
    10971095}
    10981096}
     
    11031101     font-size: 10pt;
    11041102}
    1105 }
     1103
     1104h2, h3 {
     1105     font-size: 12pt;
     1106}
     1107}
     1108
     1109/* TO DO: merge with main classes */
     1110
     1111.panel {
     1112     min-width: 700px;
     1113}
     1114
     1115@media screen and (-webkit-min-device-pixel-ratio:0) { /* fixes chrome/blinkoverflow issue */
     1116select {
     1117     white-space: normal;
     1118}
     1119}
     1120
     1121label {
     1122     vertical-align: sub;
     1123}
     1124
     1125input[type="text"] + label {
     1126     white-space: nowrap;
     1127     vertical-align: unset;
     1128}
     1129
     1130#targetPort {
     1131     margin-right: 10px !important;
     1132}
     1133
     1134#privKeyFile {
     1135     min-width: 200px;
     1136     width: 200px;
     1137     width: calc(100% - 20px);
     1138}
     1139
     1140.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1141     font-family: "Droid Sans Mono", "Noto Mono", "Lucida Console", "DejaVu Sans Mono", monospace;
     1142     width: calc(100% - 10px);
     1143     width: 290px;
     1144     overflow: hidden;
     1145     text-overflow: ellipsis;
     1146     white-space: nowrap;
     1147     word-break: break-all;
     1148     margin: 5px;
     1149     padding: 4px;
     1150     -moz-user-select: all;
     1151     -webkit-user-select: all;
     1152     user-select: all;
     1153     border: 1px solid #494;
     1154     background: #000;
     1155     background: linear-gradient(to bottom, #000 0%, #010 100%);
     1156     border-radius: 2px;
     1157     box-shadow: inset 0 0 0 1px #000;
     1158}
     1159
     1160.displayText:hover, .displayText:focus {
     1161     overflow: auto;
     1162     text-overflow: clip;
     1163     margin: 0.5px 5px;
     1164     padding: 2px 4px;
     1165     box-shadow: 0 0 1px #494;
     1166     background: #000;
     1167     color: #ff0;
     1168     outline: none;
     1169}
     1170
     1171.displayText:empty, .displayText:empty:hover, .displayText:empty:focus {
     1172     background: #000;
     1173     box-shadow: inset 0 0 0 1px #000;
     1174     color: #885;
     1175     opacity: 0.8;
     1176}
     1177
     1178.displayText:empty::before {
     1179     content: "";
     1180     display: inline-block;
     1181     min-height: 11px;
     1182}
     1183
     1184#registration .displayText {
     1185     width: 500px;
     1186}
     1187
     1188#registration .infohelp {
     1189     padding-top: 15px !important;
     1190     padding-bottom: 15px !important;
     1191}
     1192
     1193#registration input[type="file"] {
     1194     margin-top: 5px;
     1195     margin-bottom: 5px;
     1196}
     1197
     1198#registration td {
     1199     padding: 8px;
     1200}
     1201
     1202#oldName, #altPrivKeyFile {
     1203     width: 45% !important;
     1204}
     1205
     1206@media screen and (max-width: 800px) {
     1207.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1208     width: 260px;
     1209     font-size: 8pt;
     1210}
     1211}
     1212
     1213@media screen and (min-width: 1000px) {
     1214.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1215     width: 386px;
     1216}
     1217
     1218#registration .displayText {
     1219     width: 600px;
     1220}
     1221}
     1222
     1223@media screen and (min-width: 1500px) {
     1224.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1225     width: 552px;
     1226}
     1227
     1228#registration .displayText {
     1229     width: 800px;
     1230}
     1231}
     1232
  • installer/resources/themes/console/light/i2ptunnel.css

    rff400c9 r017f66a  
    1616body.iframed {
    1717     background: transparent url(/themes/console/images/transparent.gif) !important;
    18      padding-top: 5px;
     18     padding: 5px 5px 10px;
    1919}
    2020
     
    9595     box-shadow: inset 0 0 0 1px #89f;
    9696     color: #111;
    97      font-weight: bold;
    98 }
    99 
    100 textarea[readonly]:focus {
    101      font-weight: normal;
    10297}
    10398
     
    166161     box-shadow: 0 0 1px #89f;
    167162     color: #111;
    168      font-weight: bold;
    169163}
    170164
     
    173167     box-shadow: inset 2px 2px 1px rgba(204, 204, 204, 0.6);
    174168     color: #333;
    175      font-weight: normal;
    176169}
    177170
     
    334327
    335328h2, h3 {
    336      padding: 6px 10px;
    337329     padding: 9px 10px 7px 30px;
    338330     border: 1px solid #7778bf;
    339331     border-radius: 2px 2px 0 0;
    340      background: linear-gradient(to bottom, #fff 50%, #eef 50%) !important;
    341332     background: linear-gradient(to bottom, #fff 50%, rgba(255,255,255,0.6) 50%, rgba(240,240,240,0.4)), linear-gradient(to right, #fff 5%, rgba(231, 231, 255, 0.8) 15%) #fff !important;
    342      font-size: 11pt;
     333     font-size: 11.5pt;
    343334     text-transform: uppercase;
    344335     letter-spacing: 0.08em;
     
    350341}
    351342
     343.iframed h2, .iframed h3 {
     344     margin-top: 14px;
     345}
     346
    352347/* title images */
    353 
    354 h2, h3 {
    355      padding-left: 30px;
    356 }
    357348
    358349#messages h2 {
    359350     background: url(/themes/console/images/info/logs.png) left 5px center no-repeat, linear-gradient(to bottom, #fff 50%, rgba(255,255,255,0.6) 50%, rgba(240,240,240,0.4)), linear-gradient(to right, #fff 15%, rgba(231, 231, 255, 0.8) 35%) #fff !important;
    360      background-size: 20px auto, 100% 100%, 100% 100% !important;
    361351}
    362352
    363353#globalTunnelControl h2 {
    364354     background: url(/themes/console/images/info/control.png) left 5px center no-repeat, linear-gradient(to bottom, #fff 50%, rgba(255,255,255,0.6) 50%, rgba(240,240,240,0.4)), linear-gradient(to right, #fff 15%, rgba(231, 231, 255, 0.8) 35%) #fff !important;
    365      background-size: 20px auto, 100% 100%, 100% 100% !important;
    366355}
    367356
    368357#servers h2 {
    369358     background: url(/themes/console/images/info/server.png) left 5px center no-repeat, linear-gradient(to bottom, #fff 50%, rgba(255,255,255,0.6) 50%, rgba(240,240,240,0.4)), linear-gradient(to right, #fff 15%, rgba(231, 231, 255, 0.8) 35%) #fff !important;
    370      background-size: 20px auto, 100% 100%, 100% 100% !important;
    371359}
    372360
    373361#clients h2 {
    374362     background: url(/themes/console/images/info/client.png) left 5px center no-repeat, linear-gradient(to bottom, #fff 50%, rgba(255,255,255,0.6) 50%, rgba(240,240,240,0.4)), linear-gradient(to right, #fff 15%, rgba(231, 231, 255, 0.8) 35%) #fff !important;
    375      background-size: 20px auto, 100% 100%, 100% 100% !important;
    376363}
    377364
    378365#tunnelEditPage h2, #tunnelEditPage h3, #registration h2, #registration h3 {
    379366     background: url(/themes/console/images/info/configure.png) left 5px center no-repeat, linear-gradient(to bottom, #fff 50%, rgba(255,255,255,0.6) 50%, rgba(240,240,240,0.4)), linear-gradient(to right, #fff 15%, rgba(231, 231, 255, 0.8) 35%) #fff !important;
    380      background-size: 20px auto, 100% 100%, 100% 100% !important;
    381367}
    382368
    383369#wizardPanel h2 {
    384      background: url(/themes/console/images/info/wizard.png) left 6px center no-repeat, linear-gradient(to bottom, #fff 50%, rgba(255,255,255,0.6) 50%, rgba(240,240,240,0.4)), linear-gradient(to right, #fff 15%, rgba(231, 231, 255, 0.8) 35%) #fff !important;
    385      background-size: 20px auto, 100% 100%, 100% 100% !important;
     370     background: url(/themes/console/images/info/wizard.png) left 5px center no-repeat, linear-gradient(to bottom, #fff 50%, rgba(255,255,255,0.6) 50%, rgba(240,240,240,0.4)), linear-gradient(to right, #fff 15%, rgba(231, 231, 255, 0.8) 35%) #fff !important;
     371}
     372
     373#messages h2, #globalTunnelControl h2, #servers h2, #clients h2, #tunnelEditPage h2, #tunnelEditPage h3, #registration h2, #registration h3, #wizardPanel h2 {
     374     background-size: 18px auto, 100% 100%, 100% 100% !important;
     375     background-position: 7px center, center center, center center !important;
     376     background-position: 7px 60%, center center, center center !important;
    386377}
    387378
     
    389380
    390381.iframed #globalTunnelControl h2 {
    391      margin-top: 2px;
     382     margin-top: 6px;
    392383}
    393384
     
    401392     border: 1px solid #7778bf;
    402393     margin: 0;
     394     background: repeating-linear-gradient(135deg, rgba(255,255,255,0.5) 2px, rgba(240, 240, 255, 0.3) 3px, #fff 5px) #fff;
    403395}
    404396
     
    407399     background: linear-gradient(to bottom, #fff 50%, rgba(238, 238, 255, 0.2) 50%, #eef 100%) !important;
    408400     color: #333;
    409      padding: 5px;
     401     padding: 6px 5px;
    410402     text-align: left;
    411403     border-top: 1px solid #7778bf;
     
    431423}
    432424
    433 .tunnelConfig tr, #wizardPanel tr {
    434      background: repeating-linear-gradient(135deg, rgba(255,255,255,0.5) 2px, rgba(240, 240, 255, 0.3) 3px, #fff 5px);
     425.tunnelConfig tr, #wizardPanel tr, #registration tr {
     426     background: repeating-linear-gradient(135deg, rgba(255,255,255,0.5) 2px, rgba(240, 240, 255, 0.3) 3px, #fff 5px) #fff;
    435427}
    436428
     
    911903
    912904td.tunnelDestination, td.tunnelDescription {
    913      background: linear-gradient(to right, #fff 50%, #eef);
     905     background: linear-gradient(to right, #fff, rgba(255,255,255,0.1) 50%, #eef);
    914906}
    915907
     
    964956}
    965957
    966 @media screen and (max-width: 1500px) {
     958@media screen and (min-width: 1000px) {
     959#messages h2, #globalTunnelControl h2, #servers h2, #clients h2, #tunnelEditPage h2, #tunnelEditPage h3, #registration h2, #registration h3, #wizardPanel h2 {
     960     background-position: 7px 58%, center center, center center !important;
     961}
     962}
     963
     964@media screen and (min-width: 1200px) {
    967965h2, h3 {
    968      font-size: 10.5pt !important;
     966     padding: 10px 10px 8px 30px;
     967     font-size: 12pt;
     968}
     969
     970#messages h2, #globalTunnelControl h2, #servers h2, #clients h2, #tunnelEditPage h2, #tunnelEditPage h3, #registration h2, #registration h3, #wizardPanel h2 {
     971     background-size: 20px auto, 100% 100%, 100% 100% !important;
     972     padding-left: 33px !important;
     973}
     974
     975th {
     976     padding-top: 7px;
     977     padding-bottom: 7px;
    969978}
    970979}
     
    976985
    977986h2, h3 {
    978      padding: 10px 10px 8px 30px;
     987     font-size: 12.5pt;
    979988}
    980989
     
    10091018
    10101019/* end Edge/IE tweaks */
     1020
     1021/* TO DO: merge with main classes */
     1022
     1023.panel {
     1024     min-width: 650px;
     1025}
     1026
     1027@media screen and (-webkit-min-device-pixel-ratio:0) { /* fixes chrome/blinkoverflow issue */
     1028select {
     1029     white-space: normal;
     1030}
     1031}
     1032
     1033label {
     1034     vertical-align: sub;
     1035}
     1036
     1037input[type="text"] + label {
     1038     white-space: nowrap;
     1039}
     1040
     1041#targetPort {
     1042     margin-right: 10px !important;
     1043}
     1044
     1045#privKeyFile {
     1046     min-width: 200px;
     1047     max-width: 400px;
     1048     width: 200px;
     1049     width: calc(100% - 100px);
     1050}
     1051
     1052#oldName, #altPrivKeyFile {
     1053     width: 45% !important;
     1054}
     1055
     1056.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1057     font-family: "Droid Sans Mono", "Noto Mono", "Lucida Console", "DejaVu Sans Mono", monospace;
     1058     width: calc(100% - 10px);
     1059     width: 290px;
     1060     overflow: hidden;
     1061     text-overflow: ellipsis;
     1062     white-space: nowrap;
     1063     word-break: break-all;
     1064     margin: 5px;
     1065     padding: 4px;
     1066     -moz-user-select: all;
     1067     -webkit-user-select: all;
     1068     user-select: all;
     1069     border: 1px solid #999;
     1070     background: #fff;
     1071     border-radius: 2px;
     1072     box-shadow: inset 2px 2px 1px rgba(204, 204, 204, 0.6);
     1073}
     1074
     1075.displayText:empty, .displayText:empty:hover, .displayText:empty:focus {
     1076     background: #e9e9e9;
     1077}
     1078
     1079.displayText:empty::before {
     1080     content: "";
     1081     display: inline-block;
     1082     min-height: 11px;
     1083}
     1084
     1085.displayText:hover, .displayText:focus {
     1086     overflow: auto;
     1087     text-overflow: clip;
     1088     margin: 0.5px 5px;
     1089     padding: 2px 4px;
     1090     box-shadow: 0 0 1px #89f;
     1091     background: #ffe;
     1092     outline: none;
     1093}
     1094
     1095#registration .displayText {
     1096     width: 500px;
     1097}
     1098
     1099#registration .infohelp {
     1100     padding-top: 15px !important;
     1101     padding-bottom: 15px !important;
     1102}
     1103
     1104#registration input[type="file"] {
     1105     margin-top: 5px;
     1106     margin-bottom: 5px;
     1107}
     1108
     1109@media screen and (max-width: 800px) {
     1110.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1111     width: 260px;
     1112     font-size: 8pt;
     1113}
     1114}
     1115
     1116@media screen and (min-width: 1000px) {
     1117.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1118     width: 386px;
     1119}
     1120
     1121#registration .displayText {
     1122     width: 600px;
     1123}
     1124}
     1125
     1126@media screen and (min-width: 1500px) {
     1127.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1128     width: 552px;
     1129}
     1130
     1131#registration .displayText {
     1132     width: 800px;
     1133}
     1134}
     1135
  • installer/resources/themes/console/midnight/i2ptunnel.css

    rff400c9 r017f66a  
    33
    44body {
    5      margin: 0;
     5     margin: 5px 0 15px;
    66     padding: 0;
    77     text-align: center;
     
    1414body.iframed {
    1515     background: transparent url(/themes/console/images/transparent.gif) !important;
     16     margin: 0 5px;
    1617     padding: 0;
    1718     overflow: hidden;
     
    138139
    139140.iframed .panel.iframed {
    140      margin: 0 auto -8px auto !important;
     141     margin: 0 auto -8px !important;
    141142}
    142143
    143144.iframed .panel {
    144      margin: 16px auto -8px auto !important;
     145     margin: 16px auto -8px !important;
    145146     width: 100%;
    146147}
     
    159160
    160161h2, h3 {
    161      padding: 7px 10px;
     162     padding: 8px 10px;
    162163     border: 1px solid #2d295f;
    163164     background: linear-gradient(to bottom, #191729 50%, #000 50%) !important;
     
    166167     letter-spacing: 0.08em;
    167168     word-spacing: 0.1em;
    168      margin: 5px 0 -1px;
     169     margin: 12px 0 -1px;
    169170     color: #c9ceff;
    170171     box-shadow: inset 0 0 0 1px #000;
    171172}
    172173
    173 h3 {
    174      margin-top: 10px;
    175 }
    176 
    177 .iframed h2 {
    178      margin: 10px 0 -1px;
     174.iframed h2, .iframed h3 {
     175     margin: 14px 0 -1px;
    179176}
    180177
     
    223220
    224221.iframed #globalTunnelControl h2 {
    225      margin-top: 2px;
     222     margin-top: 6px;
    226223}
    227224
     
    10341031}
    10351032
     1033@media screen and (min-width: 1000px) {
     1034th {
     1035     padding: 7px 5px;
     1036}
     1037}
     1038
    10361039@media screen and (min-width: 1300px) {
    10371040body, td, .control, select, input, textarea {
     
    10491052
    10501053/* end responsive layout */
     1054
     1055/* TO DO: merge with main classes */
     1056
     1057.panel {
     1058     min-width: 600px;
     1059}
     1060
     1061@media screen and (-webkit-min-device-pixel-ratio:0) { /* fixes chrome/blinkoverflow issue */
     1062select {
     1063     white-space: normal;
     1064}
     1065}
     1066
     1067label {
     1068     vertical-align: sub;
     1069}
     1070
     1071input[type="text"] + label {
     1072     white-space: nowrap;
     1073     vertical-align: unset;
     1074}
     1075
     1076#targetPort {
     1077     margin-right: 10px !important;
     1078}
     1079
     1080#privKeyFile {
     1081     min-width: 200px;
     1082     width: 200px;
     1083     width: calc(100% - 20px);
     1084}
     1085
     1086#oldName, #altPrivKeyFile {
     1087     width: 45% !important;
     1088}
     1089
     1090.displayText {
     1091     font-family: "Droid Sans Mono", "Noto Mono", "Lucida Console", "DejaVu Sans Mono", monospace;
     1092     width: calc(100% - 10px);
     1093     width: 290px;
     1094     overflow: hidden;
     1095     text-overflow: ellipsis;
     1096     white-space: nowrap;
     1097     word-break: break-all;
     1098     margin: 5px;
     1099     padding: 4px;
     1100     -moz-user-select: all;
     1101     -webkit-user-select: all;
     1102     user-select: all;
     1103     border: 1px solid #443da0;
     1104     background: #000;
     1105     background: linear-gradient(to bottom, #000 0%, #000019 100%);
     1106     color: #7670c2;
     1107     border-radius: 2px;
     1108     box-shadow: inset 0 0 0 1px #000;
     1109}
     1110
     1111.displayText:hover, .displayText:focus {
     1112     overflow: auto;
     1113     text-overflow: clip;
     1114     margin: 0.5px 5px;
     1115     padding: 2px 4px;
     1116     background: #000;
     1117     color: #dd0;
     1118     outline: none;
     1119}
     1120
     1121.displayText:focus {
     1122     box-shadow: 0 0 0 1px rgba(101, 39, 135, 0.5);
     1123     filter: drop-shadow(0px 0 1px #99f);
     1124     transition: ease filter 0.3s;
     1125}
     1126
     1127.displayText:empty, .displayText:empty:hover, .displayText:empty:focus {
     1128     margin: 5px;
     1129     padding: 4px;
     1130     background: #000;
     1131     box-shadow: inset 0 0 0 1px #000 !important;
     1132     filter: none !important;
     1133     color: #669;
     1134     opacity: 0.8;
     1135}
     1136
     1137.displayText:empty::before, .displayText:hover:empty::before, .displayText:focus:empty::before {
     1138     content: "";
     1139     display: inline-block;
     1140     min-height: 11px;
     1141     overflow: hidden;
     1142}
     1143
     1144#registration .displayText {
     1145     width: 500px;
     1146}
     1147
     1148#registration .infohelp {
     1149     padding-top: 15px !important;
     1150     padding-bottom: 15px !important;
     1151}
     1152
     1153#registration input[type="file"] {
     1154     margin-top: 5px;
     1155     margin-bottom: 5px;
     1156}
     1157
     1158#registration td {
     1159     padding: 8px;
     1160}
     1161
     1162@media screen and (max-width: 800px) {
     1163.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1164     width: 260px;
     1165     font-size: 8pt;
     1166}
     1167}
     1168
     1169@media screen and (min-width: 1000px) {
     1170.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1171     width: 386px;
     1172}
     1173
     1174#registration .displayText {
     1175     width: 600px;
     1176}
     1177}
     1178
     1179@media screen and (min-width: 1500px) {
     1180.displayText, .displayText:empty:hover, .displayText:empty:focus {
     1181     width: 552px;
     1182}
     1183
     1184#registration .displayText {
     1185     width: 800px;
     1186}
     1187}
     1188
Note: See TracChangeset for help on using the changeset viewer.