Changeset 12119


Ignore:
Timestamp:
Mar 10, 2011, 1:37:58 AM (11 years ago)
Author:
livings124
Message:

#4093 Peer and network settings accessible through the Web Client

Location:
trunk/web
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/web/index.html

    r11317 r12119  
    230230                                                        <li id="prefs_tab_general_tab" class="prefs_tab_enabled">General</li>
    231231                                                        <li id="prefs_tab_speed_tab" class="prefs_tab_disabled">Speed</li>
     232                                                        <li id="prefs_tab_peers_tab" class="prefs_tab_disabled">Peers</li>
     233                                                        <li id="prefs_tab_network_tab" class="prefs_tab_disabled">Network</li>
    232234                                                </ul>
    233235                                                <div id="prefs_tab_general" class="prefs_tab">
     
    241243                                                                        <input type="checkbox" name="auto_start" id="auto_start"/>
    242244                                                                        <label for="auto_start" class="item">Start transfers when added</label>
    243                                                                 </div>
    244                                                         </div>
    245                                                         <div class="preference port">
    246                                                                 <label class="category">Network:</label>
    247                                                                 <div class="formdiv">
    248                                                                         <label for="port" class="item">Incoming TCP Port:</label>
    249                                                                         <input type="text" id="port" name="port"/>
    250245                                                                </div>
    251246                                                        </div>
     
    318313                                                                                <option value="64">Saturday</option>
    319314                                                                        </select>
     315                                                                </div>
     316                                                        </div>
     317                                                        <div style="clear: both; visibility: hidden;"></div>
     318                                                </div>
     319                                                <div id="prefs_tab_peers" class="prefs_tab" style="display: none;">
     320                                                        <div class="preference peers_conn">
     321                                                                <label class="category">Connections:</label>
     322                                                                <div class="formdiv">
     323                                                                        <label for="conn_global" class="item">Global maximum connections:</label>
     324                                                                        <input type="text" name="conn_global" id="conn_global"/>
     325                                                                        <label class="suffix">peers</label>
     326                                                                </div>
     327                                                                <div class="formdiv">
     328                                                                        <label for="conn_torrent" class="item">Maximum connections for new transfers:</label>
     329                                                                        <input type="text" name="conn_torrent" id="conn_torrent"/>
     330                                                                        <label class="suffix">peers</label>
     331                                                                </div>
     332                                                                <div class="formdiv checkbox">
     333                                                                        <input type="checkbox" name="conn_pex" id="conn_pex"/>
     334                                                                        <label for="conn_pex" class="item">Use peer exchange (PEX) for public torrents</label>
     335                                                                </div>
     336                                                                <div class="formdiv checkbox">
     337                                                                        <input type="checkbox" name="conn_dht" id="conn_dht"/>
     338                                                                        <label for="conn_dht" class="item">Use distributed hash table (DHT) for public torrents</label>
     339                                                                </div>
     340                                                                <div class="formdiv checkbox">
     341                                                                        <input type="checkbox" name="conn_lpd" id="conn_lpd"/>
     342                                                                        <label for="conn_lpd" class="item">Use local peer discovery for public torrents</label>
     343                                                                </div>
     344                                                        </div>
     345                                                        <div class="preference block_conn">
     346                                                                <label class="category">Blocklist:</label>
     347                                                                <div class="formdiv checkbox">
     348                                                                        <input type="checkbox" name="block_enable" id="block_enable"/>
     349                                                                        <label for="block_enable" class="item">Prevent peers in blocklist from connecting</label>
     350                                                                </div>
     351                                                                <div class="formdiv block_url">
     352                                                                        <label for="block_url" class="item">URL:</label>
     353                                                                        <input type="text" name="block_url" id="block_url"/>
     354                                                                </div>
     355                                                                <div class="formdiv">
     356                                                                        <input type="button" name="block_update_button" id="block_update_button" value="Update"/>
     357                                                                        <label class="suffix" id="block_size">IP rules in the list</label>
     358                                                                </div>
     359                                                        </div>
     360                                                        <div style="clear: both; visibility: hidden;"></div>
     361                                                </div>
     362                                                <div id="prefs_tab_network" class="prefs_tab" style="display: none;">
     363                                                        <div class="preference utp">
     364                                                                <label class="category">Peer communication:</label>
     365                                                                <div class="formdiv checkbox">
     366                                                                        <input type="checkbox" name="network_utp" id="network_utp"/>
     367                                                                        <label for="network_utp" class="item">Enable Micro Transport Protocol (µTP)</label>
     368                                                                </div>
     369                                                        </div>
     370                                                        <div class="preference port">
     371                                                                <label class="category">Peer listening port:</label>
     372                                                                <div class="formdiv">
     373                                                                        <label for="port" class="item">Incoming TCP Port:</label>
     374                                                                        <input type="text" id="port" name="port"/>
     375                                                                        <label class="suffix" id="port_test"></label>
     376                                                                </div>
     377                                                                <div class="formdiv checkbox">
     378                                                                        <input type="checkbox" name="port_rand" id="port_rand"/>
     379                                                                        <label for="port_rand" class="item">Randomize port on launch</label>
     380                                                                </div>
     381                                                                <div class="formdiv checkbox">
     382                                                                        <input type="checkbox" name="port_forward" id="port_forward"/>
     383                                                                        <label for="port_forward" class="item">Automatically map port</label>
    320384                                                                </div>
    321385                                                        </div>
  • trunk/web/javascript/transmission.js

    r11524 r12119  
    11/*
    2  *      Copyright © Dave Perrett and Malcolm Jarvis
     2 *      Copyright © Dave Perrett, Malcolm Jarvis and Bruno Bierbaumer
    33 *      This code is licensed under the GPL version 2.
    44 *      For details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
     
    4949                $('#prefs_save_button').bind('click', function(e) { tr.savePrefsClicked(e); return false;});
    5050                $('#prefs_cancel_button').bind('click', function(e){ tr.cancelPrefsClicked(e); return false; });
     51                $('#block_update_button').bind('click', function(e){ tr.blocklistUpdateClicked(e); return false; });
    5152                $('#stats_close_button').bind('click', function(e){ tr.closeStatsClicked(e); return false; });
    5253                $('.inspector_tab').bind('click', function(e){ tr.inspectorTabClicked(e, this); });
     
    6162                $('#prefs_tab_general_tab').click(function(e){ changeTab(this, 'prefs_tab_general') });
    6263                $('#prefs_tab_speed_tab').click(function(e){ changeTab(this, 'prefs_tab_speed') });
     64                $('#prefs_tab_peers_tab').click(function(e){ changeTab(this, 'prefs_tab_peers') });
     65                $('#prefs_tab_network_tab').click(function(e){ changeTab(this, 'prefs_tab_network');});
    6366        $('#torrent_upload_form').submit(function(){ $('#upload_confirm_button').click(); return false; });
     67                $('#torrent_upload_form').submit(function(){ $('#upload_confirm_button').click(); return false; });
    6468
    6569                if (iPhone) {
     
    149153                        tr.updateStats( o );
    150154                }, async );
     155        },
     156        checkPort: function( async ){
     157                $('#port_test').text('checking ...')
     158                var tr = this;
     159                this.remote.checkPort( function(data){
     160                        var o = data.arguments;
     161                        tr.updatePortStatus( o );
     162                }, async );             
    151163        },
    152164
     
    190202        setupPrefConstraints: function() {
    191203                // only allow integers for speed limit & port options
    192                 $('div.preference input[@type=text]:not(#download_location)').blur( function() {
     204                $('div.preference input[@type=text]:not(#download_location,#block_url)').blur( function() {
    193205                        this.value = this.value.replace(/[^0-9]/gi, '');
    194206                        if (this.value == '') {
     
    637649        savePrefsClicked: function(event)
    638650        {
     651               
    639652                // handle the clutch prefs locally
    640653                var tr = this;
     
    670683                o[RPC._TurtleTimeDay]        = parseInt( $('#prefs_form #turtle_days').val() );
    671684
     685
     686                o[RPC._PeerLimitGlobal]      = parseInt( $('#prefs_form #conn_global').val() );
     687                o[RPC._PeerLimitPerTorrent]  = parseInt( $('#prefs_form #conn_torrent').val() );
     688                o[RPC._PexEnabled]           = $('#prefs_form #conn_pex')[0].checked;
     689                o[RPC._DhtEnabled]           = $('#prefs_form #conn_dht')[0].checked;
     690                o[RPC._LpdEnabled]           = $('#prefs_form #conn_lpd')[0].checked;
     691                o[RPC._BlocklistEnabled]     = $('#prefs_form #block_enable')[0].checked;
     692                o[RPC._BlocklistURL]         = $('#prefs_form #block_url').val();
     693                o[RPC._UtpEnabled]                       = $('#prefs_form #network_utp')[0].checked;
     694                o[RPC._PeerPortRandom]           = $('#prefs_form #port_rand')[0].checked;
     695                o[RPC._PortForwardingEnabled]= $('#prefs_form #port_forward')[0].checked;
     696
     697       
     698
    672699                tr.remote.savePrefs( o );
    673700
    674701                tr.hidePrefsDialog( );
     702        },
     703        blocklistUpdateClicked: function(event){
     704                var tr = this;
     705                tr.remote.updateBlocklist();   
    675706        },
    676707
     
    949980
    950981        showPrefsDialog: function( ) {
     982                this.checkPort(true);
    951983                $('body').addClass('prefs_showing');
    952984                $('#prefs_container').show();
     
    10091041                $('#transmission_version').text(            prefs[RPC._DaemonVersion] );
    10101042
     1043                $('#conn_global').val(                                          prefs[RPC._PeerLimitGlobal] );
     1044                $('#conn_torrent').val(                                         prefs[RPC._PeerLimitPerTorrent] );
     1045                $('#conn_pex')[0].checked                                 = prefs[RPC._PexEnabled];
     1046                $('#conn_dht')[0].checked                                 = prefs[RPC._DhtEnabled];
     1047                $('#conn_lpd')[0].checked                                 = prefs[RPC._LpdEnabled];
     1048                $('#block_enable')[0].checked                     = prefs[RPC._BlocklistEnabled];
     1049                $('#block_url').val(                                        prefs[RPC._BlocklistURL]);
     1050                $('#block_size').text(                                      prefs[RPC._BlocklistSize] + ' IP rules in the list' );
     1051                $('#network_utp')[0].checked                      = prefs[RPC._UtpEnabled];
     1052                $('#port_rand')[0].checked                                = prefs[RPC._PeerPortRandom];
     1053                $('#port_forward')[0].checked                     = prefs[RPC._PortForwardingEnabled];
     1054
     1055
    10111056                if (!iPhone)
    10121057                {
     
    10241069                this[Prefs._TurtleState] = prefs[RPC._TurtleState];
    10251070                this.updateTurtleButton();
     1071        },
     1072
     1073        updatePortStatus: function( status ){
     1074                if(status['port-is-open'])
     1075                        $('#port_test').text('Port is open');
     1076                else
     1077                        $('#port_test').text('Port is closed');
    10261078        },
    10271079
  • trunk/web/javascript/transmission.remote.js

    r11524 r12119  
    11/*
    2  * Copyright © Dave Perrett and Malcolm Jarvis
     2 * Copyright © Dave Perrett, Malcolm Jarvis and Bruno Bierbaumer
    33 * This code is licensed under the GPL version 2.
    44 * For details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
     
    2929RPC._TurtleTimeEnd          = 'alt-speed-time-end';
    3030RPC._TurtleTimeDay          = 'alt-speed-time-day';
     31RPC._PeerLimitGlobal            = 'peer-limit-global';
     32RPC._PeerLimitPerTorrent        = 'peer-limit-per-torrent';
     33RPC._PexEnabled                         = 'pex-enabled';
     34RPC._DhtEnabled                         = 'dht-enabled';
     35RPC._LpdEnabled                         = 'lpd-enabled';
     36RPC._BlocklistEnabled           = 'blocklist-enabled';
     37RPC._BlocklistURL                       = 'blocklist-url';
     38RPC._BlocklistSize                      = 'blocklist-size';
     39RPC._UtpEnabled                         = 'utp-enabled';
     40RPC._PeerPortRandom                     = 'peer-port-random-on-start';
     41RPC._PortForwardingEnabled      = 'port-forwarding-enabled';
    3142RPC._StartAddedTorrent      = 'start-added-torrents';
    3243
     
    109120                this.sendRequest( o, callback, async );
    110121        },
    111 
     122       
     123        checkPort: function( callback, async ) {
     124                var tr = this._controller;
     125                var o = { method: 'port-test' };
     126                this.sendRequest( o, callback, async );
     127        },
     128       
    112129        loadDaemonStats: function( callback, async ) {
    113130                var tr = this._controller;
     
    251268                } );
    252269        },
     270        updateBlocklist: function() {
     271                var remote = this;
     272                var o = {
     273                        method: 'blocklist-update',
     274                };
     275                this.sendRequest( o, function() {
     276                        remote._controller.loadDaemonPrefs();
     277                } );
     278        },
    253279        filesSelectAll: function( torrent_ids, files, callback ) {
    254280                this.sendTorrentSetRequests( 'torrent-set', torrent_ids, { 'files-wanted': files }, callback );
  • trunk/web/stylesheets/common.css

    r11346 r12119  
    12211221}
    12221222
     1223div#prefs_container div.block_url input {
     1224        width: 256px !important;
     1225}
     1226
    12231227div#prefs_container div.download_location input {
    12241228        width: 256px !important;
Note: See TracChangeset for help on using the changeset viewer.