Ticket #4093: svn.patch

File svn.patch, 14.4 KB (added by bb, 11 years ago)

new patch, I hope this one is OK

Line 
1Only in web: .DS_Store
2Only in web: .svn
3Only in web/images: .svn
4Only in web/images/buttons: .svn
5Only in web/images/graphics: .svn
6Only in web/images/progress: .svn
7diff -crB web/index.html web.new/index.html
8*** web/index.html      2011-03-09 00:36:55.000000000 +0100
9--- web.new/index.html  2011-03-08 14:24:54.000000000 +0100
10***************
11*** 229,234 ****
12--- 229,236 ----
13                                                <ul>
14                                                        <li id="prefs_tab_general_tab" class="prefs_tab_enabled">General</li>
15                                                        <li id="prefs_tab_speed_tab" class="prefs_tab_disabled">Speed</li>
16+                                                       <li id="prefs_tab_peers_tab" class="prefs_tab_disabled">Peers</li>
17+                                                       <li id="prefs_tab_network_tab" class="prefs_tab_disabled">Network</li>
18                                                </ul>
19                                                <div id="prefs_tab_general" class="prefs_tab">
20                                                        <div class="preference download_location">
21***************
22*** 242,254 ****
23                                                                        <label for="auto_start" class="item">Start transfers when added</label>
24                                                                </div>
25                                                        </div>
26-                                                       <div class="preference port">
27-                                                               <label class="category">Network:</label>
28-                                                               <div class="formdiv">
29-                                                                       <label for="port" class="item">Incoming TCP Port:</label>
30-                                                                       <input type="text" id="port" name="port"/>
31-                                                               </div>
32-                                                       </div>
33                                                        <div class="preference encryption">
34                                                                <label class="category">Encryption:</label>
35                                                                <div class="formdiv checkbox">
36--- 244,249 ----
37***************
38*** 321,326 ****
39--- 316,390 ----
40                                                        </div>
41                                                        <div style="clear: both; visibility: hidden;"></div>
42                                                </div>
43+                                               <div id="prefs_tab_peers" class="prefs_tab" style="display: none;">
44+                                                       <div class="preference peers_conn">
45+                                                               <label class="category">Connections:</label>
46+                                                               <div class="formdiv">
47+                                                                       <label for="conn_global" class="item">Global maximum connections:</label>
48+                                                                       <input type="text" name="conn_global" id="conn_global"/>
49+                                                                       <label class="suffix">peers</label>
50+                                                               </div>
51+                                                               <div class="formdiv">
52+                                                                       <label for="conn_torrent" class="item">Maximum connections for new transfers:</label>
53+                                                                       <input type="text" name="conn_torrent" id="conn_torrent"/>
54+                                                                       <label class="suffix">peers</label>
55+                                                               </div>
56+                                                               <div class="formdiv checkbox">
57+                                                                       <input type="checkbox" name="conn_pex" id="conn_pex"/>
58+                                                                       <label for="conn_pex" class="item">Use peer exchange (PEX) for public torrents</label>
59+                                                               </div>
60+                                                               <div class="formdiv checkbox">
61+                                                                       <input type="checkbox" name="conn_dht" id="conn_dht"/>
62+                                                                       <label for="conn_dht" class="item">Use distributed hash table (DHT) for public torrents</label>
63+                                                               </div>
64+                                                               <div class="formdiv checkbox">
65+                                                                       <input type="checkbox" name="conn_lpd" id="conn_lpd"/>
66+                                                                       <label for="conn_lpd" class="item">Use local peer discovery for public torrents</label>
67+                                                               </div>
68+                                                       </div>
69+                                                       <div class="preference block_conn">
70+                                                               <label class="category">Blocklist:</label>
71+                                                               <div class="formdiv checkbox">
72+                                                                       <input type="checkbox" name="block_enable" id="block_enable"/>
73+                                                                       <label for="block_enable" class="item">Prevent peers in blocklist from connecting</label>
74+                                                               </div>
75+                                                               <div class="formdiv block_url">
76+                                                                       <label for="block_url" class="item">URL:</label>
77+                                                                       <input type="text" name="block_url" id="block_url"/>
78+                                                               </div>
79+                                                               <div class="formdiv">
80+                                                                       <input type="button" name="block_update_button" id="block_update_button" value="Update"/>
81+                                                                       <label class="suffix" id="block_size">IP rules in the list</label>
82+                                                               </div>
83+                                                       </div>
84+                                                       <div style="clear: both; visibility: hidden;"></div>
85+                                               </div>
86+                                               <div id="prefs_tab_network" class="prefs_tab" style="display: none;">
87+                                                       <div class="preference utp">
88+                                                               <label class="category">Peer communication:</label>
89+                                                               <div class="formdiv checkbox">
90+                                                                       <input type="checkbox" name="network_utp" id="network_utp"/>
91+                                                                       <label for="network_utp" class="item">Enable Micro Transport Protocol (µTP)</label>
92+                                                               </div>
93+                                                       </div>
94+                                                       <div class="preference port">
95+                                                               <label class="category">Peer listening port:</label>
96+                                                               <div class="formdiv">
97+                                                                       <label for="port" class="item">Incoming TCP Port:</label>
98+                                                                       <input type="text" id="port" name="port"/>
99+                                                                       <label class="suffix" id="port_test"></label>
100+                                                               </div>
101+                                                               <div class="formdiv checkbox">
102+                                                                       <input type="checkbox" name="port_rand" id="port_rand"/>
103+                                                                       <label for="port_rand" class="item">Randomize port on launch</label>
104+                                                               </div>
105+                                                               <div class="formdiv checkbox">
106+                                                                       <input type="checkbox" name="port_forward" id="port_forward"/>
107+                                                                       <label for="port_forward" class="item">Automatically map port</label>
108+                                                               </div>
109+                                                       </div>
110+                                                       <div style="clear: both; visibility: hidden;"></div>
111+                                               </div>
112                                        </div>
113                                        <span id="transmission_version"></span>
114                                        <a href="#save" id="prefs_save_button">Save</a>
115Only in web/javascript: .svn
116Only in web/javascript/jquery: .svn
117diff -crB web/javascript/transmission.js web.new/javascript/transmission.js
118*** web/javascript/transmission.js      2011-03-09 00:36:55.000000000 +0100
119--- web.new/javascript/transmission.js  2011-03-08 14:21:51.000000000 +0100
120***************
121*** 1,5 ****
122  /*
123!  *    Copyright © Dave Perrett and Malcolm Jarvis
124   *    This code is licensed under the GPL version 2.
125   *    For details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
126   *
127--- 1,5 ----
128  /*
129!  *    Copyright © Dave Perrett, Malcolm Jarvis and Bruno Bierbaumer
130   *    This code is licensed under the GPL version 2.
131   *    For details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
132   *
133***************
134*** 48,53 ****
135--- 48,54 ----
136                  $('#filter_finished_link').parent().bind('click', function(e){ tr.showFinishedClicked(e); });
137                $('#prefs_save_button').bind('click', function(e) { tr.savePrefsClicked(e); return false;});
138                $('#prefs_cancel_button').bind('click', function(e){ tr.cancelPrefsClicked(e); return false; });
139+               $('#block_update_button').bind('click', function(e){ tr.blocklistUpdateClicked(e); return false; });
140                $('#stats_close_button').bind('click', function(e){ tr.closeStatsClicked(e); return false; });
141                $('.inspector_tab').bind('click', function(e){ tr.inspectorTabClicked(e, this); });
142                $('.file_wanted_control').live('click', function(e){ tr.fileWantedClicked(e, this); });
143***************
144*** 60,66 ****
145--- 61,70 ----
146                $('#turtle_button').bind('click', function(e){ tr.toggleTurtleClicked(e); return false; });
147                $('#prefs_tab_general_tab').click(function(e){ changeTab(this, 'prefs_tab_general') });
148                $('#prefs_tab_speed_tab').click(function(e){ changeTab(this, 'prefs_tab_speed') });
149+               $('#prefs_tab_peers_tab').click(function(e){ changeTab(this, 'prefs_tab_peers') });
150+               $('#prefs_tab_network_tab').click(function(e){ changeTab(this, 'prefs_tab_network');});
151          $('#torrent_upload_form').submit(function(){ $('#upload_confirm_button').click(); return false; });
152+               $('#torrent_upload_form').submit(function(){ $('#upload_confirm_button').click(); return false; });
153 
154                if (iPhone) {
155                        $('#inspector_close').bind('click', function(e){ tr.hideInspector(); });
156***************
157*** 149,154 ****
158--- 153,166 ----
159                        tr.updateStats( o );
160                }, async );
161        },
162+       checkPort: function( async ){
163+               $('#port_test').text('checking ...')
164+               var tr = this;
165+               this.remote.checkPort( function(data){
166+                       var o = data.arguments;
167+                       tr.updatePortStatus( o );
168+               }, async );             
169+       },
170 
171        preloadImages: function() {
172                if (iPhone) {
173***************
174*** 189,195 ****
175         */
176        setupPrefConstraints: function() {
177                // only allow integers for speed limit & port options
178!               $('div.preference input[@type=text]:not(#download_location)').blur( function() {
179                        this.value = this.value.replace(/[^0-9]/gi, '');
180                        if (this.value == '') {
181                                if ($(this).is('#refresh_rate')) {
182--- 201,207 ----
183         */
184        setupPrefConstraints: function() {
185                // only allow integers for speed limit & port options
186!               $('div.preference input[@type=text]:not(#download_location,#block_url)').blur( function() {
187                        this.value = this.value.replace(/[^0-9]/gi, '');
188                        if (this.value == '') {
189                                if ($(this).is('#refresh_rate')) {
190***************
191*** 636,641 ****
192--- 648,654 ----
193 
194        savePrefsClicked: function(event)
195        {
196+               
197                // handle the clutch prefs locally
198                var tr = this;
199                var rate = parseInt( $('#prefs_form #refresh_rate')[0].value );
200***************
201*** 669,678 ****
202--- 682,709 ----
203                o[RPC._TurtleTimeEnd]        = parseInt( $('#prefs_form #turtle_end_time').val() );
204                o[RPC._TurtleTimeDay]        = parseInt( $('#prefs_form #turtle_days').val() );
205 
206+
207+               o[RPC._PeerLimitGlobal]      = parseInt( $('#prefs_form #conn_global').val() );
208+               o[RPC._PeerLimitPerTorrent]  = parseInt( $('#prefs_form #conn_torrent').val() );
209+               o[RPC._PexEnabled]           = $('#prefs_form #conn_pex')[0].checked;
210+               o[RPC._DhtEnabled]           = $('#prefs_form #conn_dht')[0].checked;
211+               o[RPC._LpdEnabled]           = $('#prefs_form #conn_lpd')[0].checked;
212+               o[RPC._BlocklistEnabled]     = $('#prefs_form #block_enable')[0].checked;
213+               o[RPC._BlocklistURL]         = $('#prefs_form #block_url').val();
214+               o[RPC._UtpEnabled]                       = $('#prefs_form #network_utp')[0].checked;
215+               o[RPC._PeerPortRandom]           = $('#prefs_form #port_rand')[0].checked;
216+               o[RPC._PortForwardingEnabled]= $('#prefs_form #port_forward')[0].checked;
217+
218+       
219+
220                tr.remote.savePrefs( o );
221 
222                tr.hidePrefsDialog( );
223        },
224+       blocklistUpdateClicked: function(event){
225+               var tr = this;
226+               tr.remote.updateBlocklist();   
227+       },
228 
229        closeStatsClicked: function(event) {
230                this.hideStatsDialog( );
231***************
232*** 948,953 ****
233--- 979,985 ----
234         *--------------------------------------------*/
235 
236        showPrefsDialog: function( ) {
237+               this.checkPort(true);
238                $('body').addClass('prefs_showing');
239                $('#prefs_container').show();
240                this.hideiPhoneAddressbar();
241***************
242*** 1008,1013 ****
243--- 1040,1058 ----
244                $('select#turtle_days').val(                prefs[RPC._TurtleTimeDay] );
245                $('#transmission_version').text(            prefs[RPC._DaemonVersion] );
246 
247+               $('#conn_global').val(                                          prefs[RPC._PeerLimitGlobal] );
248+               $('#conn_torrent').val(                                         prefs[RPC._PeerLimitPerTorrent] );
249+               $('#conn_pex')[0].checked                                 = prefs[RPC._PexEnabled];
250+               $('#conn_dht')[0].checked                                 = prefs[RPC._DhtEnabled];
251+               $('#conn_lpd')[0].checked                                 = prefs[RPC._LpdEnabled];
252+               $('#block_enable')[0].checked                     = prefs[RPC._BlocklistEnabled];
253+               $('#block_url').val(                                        prefs[RPC._BlocklistURL]);
254+               $('#block_size').text(                                      prefs[RPC._BlocklistSize] + ' IP rules in the list' );
255+               $('#network_utp')[0].checked                      = prefs[RPC._UtpEnabled];
256+               $('#port_rand')[0].checked                                = prefs[RPC._PeerPortRandom];
257+               $('#port_forward')[0].checked                     = prefs[RPC._PortForwardingEnabled];
258+
259+
260                if (!iPhone)
261                {
262                        setInnerHTML( $('#limited_download_rate')[0], [ 'Limit (', Transmission.fmt.speed(dn_limit_k), ')' ].join('') );
263***************
264*** 1025,1030 ****
265--- 1070,1082 ----
266                this.updateTurtleButton();
267        },
268 
269+       updatePortStatus: function( status ){
270+               if(status['port-is-open'])
271+                       $('#port_test').text('Port is open');
272+               else
273+                       $('#port_test').text('Port is closed');
274+       },
275+
276        showStatsDialog: function( ) {
277                this.loadDaemonStats();
278                $('body').addClass('stats_showing');
279diff -crB web/javascript/transmission.remote.js web.new/javascript/transmission.remote.js
280*** web/javascript/transmission.remote.js       2011-03-09 00:36:55.000000000 +0100
281--- web.new/javascript/transmission.remote.js   2011-03-08 14:02:27.000000000 +0100
282***************
283*** 1,5 ****
284  /*
285!  * Copyright © Dave Perrett and Malcolm Jarvis
286   * This code is licensed under the GPL version 2.
287   * For details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
288   *
289--- 1,5 ----
290  /*
291!  * Copyright © Dave Perrett, Malcolm Jarvis and Bruno Bierbaumer
292   * This code is licensed under the GPL version 2.
293   * For details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
294   *
295***************
296*** 28,33 ****
297--- 28,44 ----
298  RPC._TurtleTimeBegin        = 'alt-speed-time-begin';
299  RPC._TurtleTimeEnd          = 'alt-speed-time-end';
300  RPC._TurtleTimeDay          = 'alt-speed-time-day';
301+ RPC._PeerLimitGlobal          = 'peer-limit-global';
302+ RPC._PeerLimitPerTorrent      = 'peer-limit-per-torrent';
303+ RPC._PexEnabled                               = 'pex-enabled';
304+ RPC._DhtEnabled                               = 'dht-enabled';
305+ RPC._LpdEnabled                               = 'lpd-enabled';
306+ RPC._BlocklistEnabled         = 'blocklist-enabled';
307+ RPC._BlocklistURL                     = 'blocklist-url';
308+ RPC._BlocklistSize                    = 'blocklist-size';
309+ RPC._UtpEnabled                               = 'utp-enabled';
310+ RPC._PeerPortRandom                   = 'peer-port-random-on-start';
311+ RPC._PortForwardingEnabled    = 'port-forwarding-enabled';
312  RPC._StartAddedTorrent      = 'start-added-torrents';
313 
314  function TransmissionRemote( controller )
315***************
316*** 108,114 ****
317                var o = { method: 'session-get' };
318                this.sendRequest( o, callback, async );
319        },
320!
321        loadDaemonStats: function( callback, async ) {
322                var tr = this._controller;
323                var o = { method: 'session-stats' };
324--- 119,131 ----
325                var o = { method: 'session-get' };
326                this.sendRequest( o, callback, async );
327        },
328!       
329!       checkPort: function( callback, async ) {
330!               var tr = this._controller;
331!               var o = { method: 'port-test' };
332!               this.sendRequest( o, callback, async );
333!       },
334!       
335        loadDaemonStats: function( callback, async ) {
336                var tr = this._controller;
337                var o = { method: 'session-stats' };
338***************
339*** 250,255 ****
340--- 267,281 ----
341                        remote._controller.loadDaemonPrefs();
342                } );
343        },
344+       updateBlocklist: function() {
345+               var remote = this;
346+               var o = {
347+                       method: 'blocklist-update',
348+               };
349+               this.sendRequest( o, function() {
350+                       remote._controller.loadDaemonPrefs();
351+               } );
352+       },
353        filesSelectAll: function( torrent_ids, files, callback ) {
354                this.sendTorrentSetRequests( 'torrent-set', torrent_ids, { 'files-wanted': files }, callback );
355        },
356Only in web/stylesheets: .svn
357diff -crB web/stylesheets/common.css web.new/stylesheets/common.css
358*** web/stylesheets/common.css  2011-03-09 00:36:55.000000000 +0100
359--- web.new/stylesheets/common.css      2011-03-07 11:32:18.000000000 +0100
360***************
361*** 1220,1225 ****
362--- 1220,1229 ----
363        float: left;
364  }
365 
366+ div#prefs_container div.block_url input {
367+       width: 256px !important;
368+ }
369+
370  div#prefs_container div.download_location input {
371        width: 256px !important;
372  }