mirror of
https://github.com/transmission/transmission.git
synced 2025-12-24 04:18:39 +00:00
(trunk) #3547 "Wrong speed display in web UI" -- fixed
This commit is contained in:
@@ -400,47 +400,58 @@
|
|||||||
|
|
||||||
4.1. Session Arguments
|
4.1. Session Arguments
|
||||||
|
|
||||||
string | value type & description
|
string | value type | description
|
||||||
---------------------------------+-------------------------------------------------
|
---------------------------------+------------+-------------------------------------
|
||||||
"alt-speed-down" | number max global download speed (KBps)
|
"alt-speed-down" | number | max global download speed (KBps)
|
||||||
"alt-speed-enabled" | boolean true means use the alt speeds
|
"alt-speed-enabled" | boolean | true means use the alt speeds
|
||||||
"alt-speed-time-begin" | number when to turn on alt speeds (units: minutes after midnight)
|
"alt-speed-time-begin" | number | when to turn on alt speeds (units: minutes after midnight)
|
||||||
"alt-speed-time-enabled" | boolean true means the scheduled on/off times are used
|
"alt-speed-time-enabled" | boolean | true means the scheduled on/off times are used
|
||||||
"alt-speed-time-end" | number when to turn off alt speeds (units: same)
|
"alt-speed-time-end" | number | when to turn off alt speeds (units: same)
|
||||||
"alt-speed-time-day" | number what day(s) to turn on alt speeds (look at tr_sched_day)
|
"alt-speed-time-day" | number | what day(s) to turn on alt speeds (look at tr_sched_day)
|
||||||
"alt-speed-up" | number max global upload speed (KBps)
|
"alt-speed-up" | number | max global upload speed (KBps)
|
||||||
"blocklist-enabled" | boolean true means enabled
|
"blocklist-enabled" | boolean | true means enabled
|
||||||
"blocklist-size" | number number of rules in the blocklist
|
"blocklist-size" | number | number of rules in the blocklist
|
||||||
"cache-size" | number maximum size of the disk cache (MB)
|
"cache-size" | number | maximum size of the disk cache (MB)
|
||||||
"config-dir" | string location of transmission's configuration directory
|
"config-dir" | string | location of transmission's configuration directory
|
||||||
"download-dir" | string default path to download torrents
|
"download-dir" | string | default path to download torrents
|
||||||
"dht-enabled" | boolean true means allow dht in public torrents
|
"dht-enabled" | boolean | true means allow dht in public torrents
|
||||||
"encryption" | string "required", "preferred", "tolerated"
|
"encryption" | string | "required", "preferred", "tolerated"
|
||||||
"idle-seeding-limit" | number the default seed inactivity limit for torrents to use
|
"idle-seeding-limit" | number | the default seed inactivity limit for torrents to use
|
||||||
"idle-seeding-limit-enabled" | boolean true if the seeding inactivity limit is honored by default
|
"idle-seeding-limit-enabled" | boolean | true if the seeding inactivity limit is honored by default
|
||||||
"incomplete-dir" | string path for incomplete torrents, when enabled
|
"incomplete-dir" | string | path for incomplete torrents, when enabled
|
||||||
"incomplete-dir-enabled" | boolean true means keep torrents in incomplete-dir until done
|
"incomplete-dir-enabled" | boolean | true means keep torrents in incomplete-dir until done
|
||||||
"lpd-enabled" | boolean true means allow Local Peer Discovery in public torrents
|
"lpd-enabled" | boolean | true means allow Local Peer Discovery in public torrents
|
||||||
"peer-limit-global" | number maximum global number of peers
|
"peer-limit-global" | number | maximum global number of peers
|
||||||
"peer-limit-per-torrent" | number maximum global number of peers
|
"peer-limit-per-torrent" | number | maximum global number of peers
|
||||||
"pex-enabled" | boolean true means allow pex in public torrents
|
"pex-enabled" | boolean | true means allow pex in public torrents
|
||||||
"peer-port" | number port number
|
"peer-port" | number | port number
|
||||||
"peer-port-random-on-start" | boolean true means pick a random peer port on launch
|
"peer-port-random-on-start" | boolean | true means pick a random peer port on launch
|
||||||
"port-forwarding-enabled" | boolean true means enabled
|
"port-forwarding-enabled" | boolean | true means enabled
|
||||||
"rename-partial-files" | boolean true means append ".part" to incomplete files
|
"rename-partial-files" | boolean | true means append ".part" to incomplete files
|
||||||
"rpc-version" | number the current RPC API version
|
"rpc-version" | number | the current RPC API version
|
||||||
"rpc-version-minimum" | number the minimum RPC API version supported
|
"rpc-version-minimum" | number | the minimum RPC API version supported
|
||||||
"script-torrent-done-filename" | string filename of the script to run
|
"script-torrent-done-filename" | string | filename of the script to run
|
||||||
"script-torrent-done-enabled" | boolean whether or not to call the "done" script
|
"script-torrent-done-enabled" | boolean | whether or not to call the "done" script
|
||||||
"seedRatioLimit" | double the default seed ratio for torrents to use
|
"seedRatioLimit" | double | the default seed ratio for torrents to use
|
||||||
"seedRatioLimited" | boolean true if seedRatioLimit is honored by default
|
"seedRatioLimited" | boolean | true if seedRatioLimit is honored by default
|
||||||
"speed-limit-down" | number max global download speed (KBps)
|
"speed-limit-down" | number | max global download speed (KBps)
|
||||||
"speed-limit-down-enabled" | boolean true means enabled
|
"speed-limit-down-enabled" | boolean | true means enabled
|
||||||
"speed-limit-up" | number max global upload speed (KBps)
|
"speed-limit-up" | number | max global upload speed (KBps)
|
||||||
"speed-limit-up-enabled" | boolean true means enabled
|
"speed-limit-up-enabled" | boolean | true means enabled
|
||||||
"start-added-torrents" | boolean true means added torrents will be started right away
|
"start-added-torrents" | boolean | true means added torrents will be started right away
|
||||||
"trash-original-torrent-files" | boolean true means the .torrent file of added torrents will be deleted
|
"trash-original-torrent-files" | boolean | true means the .torrent file of added torrents will be deleted
|
||||||
"version" | string long version string "$version ($revision)"
|
"units" | object | see below
|
||||||
|
"version" | string | long version string "$version ($revision)"
|
||||||
|
---------------------------------+------------+-----------------------------+
|
||||||
|
units | object containing: |
|
||||||
|
+--------------+--------+------------------+
|
||||||
|
| speed-units | array | 4 strings: KB/s, MB/s, GB/s, TB/s
|
||||||
|
| speed-bytes | number | number of bytes in a KB (1000 for kB; 1024 for KiB)
|
||||||
|
| size-units | array | 4 strings: KB/s, MB/s, GB/s, TB/s
|
||||||
|
| size-bytes | number | number of bytes in a KB (1000 for kB; 1024 for KiB)
|
||||||
|
| memory-units | array | 4 strings: KB/s, MB/s, GB/s, TB/s
|
||||||
|
| memory-bytes | number | number of bytes in a KB (1000 for kB; 1024 for KiB)
|
||||||
|
+--------------+--------+------------------+
|
||||||
|
|
||||||
"rpc-version" indicates the RPC interface version supported by the RPC server.
|
"rpc-version" indicates the RPC interface version supported by the RPC server.
|
||||||
It is incremented when a new version of Transmission changes the RPC interface.
|
It is incremented when a new version of Transmission changes the RPC interface.
|
||||||
@@ -622,5 +633,6 @@
|
|||||||
| | yes | session-set | new arg "idle-seeding-limit-enabled"
|
| | yes | session-set | new arg "idle-seeding-limit-enabled"
|
||||||
| | yes | session-get | new arg "idle-seeding-limit"
|
| | yes | session-get | new arg "idle-seeding-limit"
|
||||||
| | yes | session-get | new arg "idle-seeding-limit-enabled"
|
| | yes | session-get | new arg "idle-seeding-limit-enabled"
|
||||||
|
| | yes | session-get | new arg "units"
|
||||||
| | yes | torrent-set | new arg "seedIdleLimit"
|
| | yes | torrent-set | new arg "seedIdleLimit"
|
||||||
| | yes | torrent-set | new arg "seedIdleMode"
|
| | yes | torrent-set | new arg "seedIdleMode"
|
||||||
|
|||||||
@@ -1560,6 +1560,7 @@ sessionGet( tr_session * s,
|
|||||||
tr_bencDictAddBool( d, TR_PREFS_KEY_DSPEED_ENABLED, tr_sessionIsSpeedLimited( s, TR_DOWN ) );
|
tr_bencDictAddBool( d, TR_PREFS_KEY_DSPEED_ENABLED, tr_sessionIsSpeedLimited( s, TR_DOWN ) );
|
||||||
tr_bencDictAddStr ( d, TR_PREFS_KEY_SCRIPT_TORRENT_DONE_FILENAME, tr_sessionGetTorrentDoneScript( s ) );
|
tr_bencDictAddStr ( d, TR_PREFS_KEY_SCRIPT_TORRENT_DONE_FILENAME, tr_sessionGetTorrentDoneScript( s ) );
|
||||||
tr_bencDictAddBool( d, TR_PREFS_KEY_SCRIPT_TORRENT_DONE_ENABLED, tr_sessionIsTorrentDoneScriptEnabled( s ) );
|
tr_bencDictAddBool( d, TR_PREFS_KEY_SCRIPT_TORRENT_DONE_ENABLED, tr_sessionIsTorrentDoneScriptEnabled( s ) );
|
||||||
|
tr_formatter_get_units( tr_bencDictAddDict( d, "units", 0 ) );
|
||||||
tr_bencDictAddStr ( d, "version", LONG_VERSION_STRING );
|
tr_bencDictAddStr ( d, "version", LONG_VERSION_STRING );
|
||||||
switch( tr_sessionGetEncryption( s ) ) {
|
switch( tr_sessionGetEncryption( s ) ) {
|
||||||
case TR_CLEAR_PREFERRED: str = "tolerated"; break;
|
case TR_CLEAR_PREFERRED: str = "tolerated"; break;
|
||||||
|
|||||||
@@ -50,6 +50,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "transmission.h"
|
#include "transmission.h"
|
||||||
|
#include "bencode.h"
|
||||||
#include "fdlimit.h"
|
#include "fdlimit.h"
|
||||||
#include "ConvertUTF.h"
|
#include "ConvertUTF.h"
|
||||||
#include "list.h"
|
#include "list.h"
|
||||||
@@ -1686,3 +1687,25 @@ tr_formatter_mem_B( char * buf, uint64_t bytes_per_second, size_t buflen )
|
|||||||
{
|
{
|
||||||
return formatter_get_size_str( &mem_units, buf, bytes_per_second, buflen );
|
return formatter_get_size_str( &mem_units, buf, bytes_per_second, buflen );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
tr_formatter_get_units( tr_benc * d )
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
tr_benc * l;
|
||||||
|
|
||||||
|
tr_bencDictReserve( d, 6 );
|
||||||
|
|
||||||
|
tr_bencDictAddInt( d, "memory-bytes", mem_units.units[TR_FMT_KB].value );
|
||||||
|
l = tr_bencDictAddList( d, "memory-units", 4 );
|
||||||
|
for( i=0; i<4; i++ ) tr_bencListAddStr( l, mem_units.units[i].name );
|
||||||
|
|
||||||
|
tr_bencDictAddInt( d, "size-bytes", size_units.units[TR_FMT_KB].value );
|
||||||
|
l = tr_bencDictAddList( d, "size-units", 4 );
|
||||||
|
for( i=0; i<4; i++ ) tr_bencListAddStr( l, size_units.units[i].name );
|
||||||
|
|
||||||
|
tr_bencDictAddInt( d, "speed-bytes", speed_units.units[TR_FMT_KB].value );
|
||||||
|
l = tr_bencDictAddList( d, "speed-units", 4 );
|
||||||
|
for( i=0; i<4; i++ ) tr_bencListAddStr( l, speed_units.units[i].name );
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -590,6 +590,7 @@ static inline char* tr_formatter_mem_MB( char * buf, double MBps, size_t buflen
|
|||||||
/* format a file size from bytes into a user-readable string. */
|
/* format a file size from bytes into a user-readable string. */
|
||||||
char* tr_formatter_size_B( char * buf, uint64_t bytes, size_t buflen );
|
char* tr_formatter_size_B( char * buf, uint64_t bytes, size_t buflen );
|
||||||
|
|
||||||
|
void tr_formatter_get_units( struct tr_benc * dict );
|
||||||
|
|
||||||
/***
|
/***
|
||||||
****
|
****
|
||||||
|
|||||||
@@ -9,27 +9,47 @@ Transmission.fmt = (function()
|
|||||||
{
|
{
|
||||||
var speed_K = 1000;
|
var speed_K = 1000;
|
||||||
var speed_B_str = 'B';
|
var speed_B_str = 'B';
|
||||||
var speed_K_str = 'kB/s';
|
var speed_K_str = 'KB/s';
|
||||||
var speed_M_str = 'MB/s';
|
var speed_M_str = 'MB/s';
|
||||||
var speed_G_str = 'GB/s';
|
var speed_G_str = 'GB/s';
|
||||||
var speed_T_str = 'TB/s';
|
var speed_T_str = 'TB/s';
|
||||||
|
|
||||||
var size_K = 1024;
|
var size_K = 1024;
|
||||||
var size_B_str = 'B';
|
var size_B_str = 'B';
|
||||||
var size_K_str = 'KiB';
|
var size_K_str = 'KB';
|
||||||
var size_M_str = 'MiB';
|
var size_M_str = 'MB';
|
||||||
var size_G_str = 'GiB';
|
var size_G_str = 'GB';
|
||||||
var size_T_str = 'TiB';
|
var size_T_str = 'TB';
|
||||||
|
|
||||||
var mem_K = 1024;
|
var mem_K = 1024;
|
||||||
var mem_B_str = 'B';
|
var mem_B_str = 'B';
|
||||||
var mem_K_str = 'KiB';
|
var mem_K_str = 'KB';
|
||||||
var mem_M_str = 'MiB';
|
var mem_M_str = 'MB';
|
||||||
var mem_G_str = 'GiB';
|
var mem_G_str = 'GB';
|
||||||
var mem_T_str = 'TiB';
|
var mem_T_str = 'TB';
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
||||||
|
updateUnits: function( u )
|
||||||
|
{
|
||||||
|
speed_K = u['speed-bytes'];
|
||||||
|
speed_K_str = u['speed-units'][0];
|
||||||
|
speed_M_str = u['speed-units'][1];
|
||||||
|
speed_G_str = u['speed-units'][2];
|
||||||
|
speed_T_str = u['speed-units'][3];
|
||||||
|
|
||||||
|
size_K = u['size-bytes'];
|
||||||
|
size_K_str = u['size-units'][0];
|
||||||
|
size_M_str = u['size-units'][1];
|
||||||
|
size_G_str = u['size-units'][2];
|
||||||
|
size_T_str = u['size-units'][3];
|
||||||
|
|
||||||
|
mem_K = u['memory-bytes'];
|
||||||
|
mem_K_str = u['memory-units'][0];
|
||||||
|
mem_M_str = u['memory-units'][1];
|
||||||
|
mem_G_str = u['memory-units'][2];
|
||||||
|
mem_T_str = u['memory-units'][3];
|
||||||
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Format a percentage to a string
|
* Format a percentage to a string
|
||||||
|
|||||||
@@ -987,6 +987,9 @@ Transmission.prototype =
|
|||||||
var turtle_up_limit_k = prefs[RPC._TurtleUpSpeedLimit];
|
var turtle_up_limit_k = prefs[RPC._TurtleUpSpeedLimit];
|
||||||
var turtle_dn_limit_k = prefs[RPC._TurtleDownSpeedLimit];
|
var turtle_dn_limit_k = prefs[RPC._TurtleDownSpeedLimit];
|
||||||
|
|
||||||
|
if( prefs.units )
|
||||||
|
Transmission.fmt.updateUnits( prefs.units );
|
||||||
|
|
||||||
$('div.download_location input')[0].value = prefs[RPC._DownloadDir];
|
$('div.download_location input')[0].value = prefs[RPC._DownloadDir];
|
||||||
$('div.port input')[0].value = prefs[RPC._PeerPort];
|
$('div.port input')[0].value = prefs[RPC._PeerPort];
|
||||||
$('div.auto_start input')[0].checked = prefs[RPC._StartAddedTorrent];
|
$('div.auto_start input')[0].checked = prefs[RPC._StartAddedTorrent];
|
||||||
@@ -1055,18 +1058,19 @@ Transmission.prototype =
|
|||||||
// can't think of a reason to remember this
|
// can't think of a reason to remember this
|
||||||
//this._stats = stats;
|
//this._stats = stats;
|
||||||
|
|
||||||
|
var fmt = Transmission.fmt;
|
||||||
var session = stats["current-stats"];
|
var session = stats["current-stats"];
|
||||||
var total = stats["cumulative-stats"];
|
var total = stats["cumulative-stats"];
|
||||||
|
|
||||||
setInnerHTML( $('#stats_session_uploaded')[0], Transmission.fmt.size(session["uploadedBytes"]) );
|
setInnerHTML( $('#stats_session_uploaded')[0], fmt.size(session["uploadedBytes"]) );
|
||||||
setInnerHTML( $('#stats_session_downloaded')[0], Transmission.fmt.size(session["downloadedBytes"]) );
|
setInnerHTML( $('#stats_session_downloaded')[0], fmt.size(session["downloadedBytes"]) );
|
||||||
setInnerHTML( $('#stats_session_ratio')[0], Transmission.fmt.ratioString(Math.ratio(session["uploadedBytes"],session["downloadedBytes"])));
|
setInnerHTML( $('#stats_session_ratio')[0], fmt.ratioString(Math.ratio(session["uploadedBytes"],session["downloadedBytes"])));
|
||||||
setInnerHTML( $('#stats_session_duration')[0], Transmission.fmt.timeInterval(session["secondsActive"]) );
|
setInnerHTML( $('#stats_session_duration')[0], fmt.timeInterval(session["secondsActive"]) );
|
||||||
setInnerHTML( $('#stats_total_count')[0], total["sessionCount"] + " times" );
|
setInnerHTML( $('#stats_total_count')[0], total["sessionCount"] + " times" );
|
||||||
setInnerHTML( $('#stats_total_uploaded')[0], Transmission.fmt.size(total["uploadedBytes"]) );
|
setInnerHTML( $('#stats_total_uploaded')[0], fmt.size(total["uploadedBytes"]) );
|
||||||
setInnerHTML( $('#stats_total_downloaded')[0], Transmission.fmt.size(total["downloadedBytes"]) );
|
setInnerHTML( $('#stats_total_downloaded')[0], fmt.size(total["downloadedBytes"]) );
|
||||||
setInnerHTML( $('#stats_total_ratio')[0], Transmission.fmt.ratioString(Math.ratio(total["uploadedBytes"],total["downloadedBytes"])));
|
setInnerHTML( $('#stats_total_ratio')[0], fmt.ratioString(Math.ratio(total["uploadedBytes"],total["downloadedBytes"])));
|
||||||
setInnerHTML( $('#stats_total_duration')[0], Transmission.fmt.timeInterval(total["secondsActive"]) );
|
setInnerHTML( $('#stats_total_duration')[0], fmt.timeInterval(total["secondsActive"]) );
|
||||||
},
|
},
|
||||||
|
|
||||||
setSearch: function( search ) {
|
setSearch: function( search ) {
|
||||||
@@ -1311,27 +1315,28 @@ Transmission.prototype =
|
|||||||
}
|
}
|
||||||
|
|
||||||
var private_string = '';
|
var private_string = '';
|
||||||
|
var fmt = Transmission.fmt;
|
||||||
if( have_private && have_public ) private_string = 'Mixed';
|
if( have_private && have_public ) private_string = 'Mixed';
|
||||||
else if( have_private ) private_string = 'Private Torrent';
|
else if( have_private ) private_string = 'Private Torrent';
|
||||||
else if( have_public ) private_string = 'Public Torrent';
|
else if( have_public ) private_string = 'Public Torrent';
|
||||||
|
|
||||||
setInnerHTML( tab.name, name );
|
setInnerHTML( tab.name, name );
|
||||||
setInnerHTML( tab.size, torrents.length ? Transmission.fmt.size( total_size ) : na );
|
setInnerHTML( tab.size, torrents.length ? fmt.size( total_size ) : na );
|
||||||
setInnerHTML( tab.pieces, pieces );
|
setInnerHTML( tab.pieces, pieces );
|
||||||
setInnerHTML( tab.hash, hash );
|
setInnerHTML( tab.hash, hash );
|
||||||
setInnerHTML( tab.state, total_state );
|
setInnerHTML( tab.state, total_state );
|
||||||
setInnerHTML( tab.download_speed, torrents.length ? Transmission.fmt.speedBps( total_download_speed ) : na );
|
setInnerHTML( tab.download_speed, torrents.length ? fmt.speedBps( total_download_speed ) : na );
|
||||||
setInnerHTML( tab.upload_speed, torrents.length ? Transmission.fmt.speedBps( total_upload_speed ) : na );
|
setInnerHTML( tab.upload_speed, torrents.length ? fmt.speedBps( total_upload_speed ) : na );
|
||||||
setInnerHTML( tab.uploaded, torrents.length ? Transmission.fmt.size( total_upload ) : na );
|
setInnerHTML( tab.uploaded, torrents.length ? fmt.size( total_upload ) : na );
|
||||||
setInnerHTML( tab.downloaded, torrents.length ? Transmission.fmt.size( total_download ) : na );
|
setInnerHTML( tab.downloaded, torrents.length ? fmt.size( total_download ) : na );
|
||||||
setInnerHTML( tab.availability, torrents.length ? Transmission.fmt.percentString(Math.ratio( total_availability*100, sizeWhenDone )) + '%' : na );
|
setInnerHTML( tab.availability, torrents.length ? fmt.percentString(Math.ratio( total_availability*100, sizeWhenDone )) + '%' : na );
|
||||||
setInnerHTML( tab.ratio, torrents.length ? Transmission.fmt.ratioString(Math.ratio( total_upload, total_download )) : na );
|
setInnerHTML( tab.ratio, torrents.length ? fmt.ratioString(Math.ratio( total_upload, total_download )) : na );
|
||||||
setInnerHTML( tab.have, torrents.length ? Transmission.fmt.size(total_completed) + ' (' + Transmission.fmt.size(total_verified) + ' verified)' : na );
|
setInnerHTML( tab.have, torrents.length ? fmt.size(total_completed) + ' (' + fmt.size(total_verified) + ' verified)' : na );
|
||||||
setInnerHTML( tab.upload_to, torrents.length ? total_upload_peers : na );
|
setInnerHTML( tab.upload_to, torrents.length ? total_upload_peers : na );
|
||||||
setInnerHTML( tab.download_from, torrents.length ? total_download_peers : na );
|
setInnerHTML( tab.download_from, torrents.length ? total_download_peers : na );
|
||||||
setInnerHTML( tab.secure, private_string );
|
setInnerHTML( tab.secure, private_string );
|
||||||
setInnerHTML( tab.creator_date, date_created );
|
setInnerHTML( tab.creator_date, date_created );
|
||||||
setInnerHTML( tab.progress, torrents.length ? Transmission.fmt.percentString(Math.ratio( sizeDone*100, sizeWhenDone )) + '%' : na );
|
setInnerHTML( tab.progress, torrents.length ? fmt.percentString(Math.ratio( sizeDone*100, sizeWhenDone )) + '%' : na );
|
||||||
setInnerHTML( tab.comment, comment == na ? comment : comment.replace(/\//g, '/​') );
|
setInnerHTML( tab.comment, comment == na ? comment : comment.replace(/\//g, '/​') );
|
||||||
setInnerHTML( tab.creator, creator );
|
setInnerHTML( tab.creator, creator );
|
||||||
setInnerHTML( tab.download_dir, download_dir == na ? download_dir : download_dir.replace(/([\/_\.])/g, "$1​") );
|
setInnerHTML( tab.download_dir, download_dir == na ? download_dir : download_dir.replace(/([\/_\.])/g, "$1​") );
|
||||||
@@ -1366,6 +1371,7 @@ Transmission.prototype =
|
|||||||
updatePeersLists: function() {
|
updatePeersLists: function() {
|
||||||
var tr = this;
|
var tr = this;
|
||||||
var html = [ ];
|
var html = [ ];
|
||||||
|
var fmt = Transmission.fmt;
|
||||||
var torrents = this.getSelectedTorrents( );
|
var torrents = this.getSelectedTorrents( );
|
||||||
if( $(this._inspector_peers_list).is(':visible') ) {
|
if( $(this._inspector_peers_list).is(':visible') ) {
|
||||||
for( var k=0, torrent; torrent=torrents[k]; ++k ) {
|
for( var k=0, torrent; torrent=torrents[k]; ++k ) {
|
||||||
@@ -1391,8 +1397,8 @@ Transmission.prototype =
|
|||||||
var parity = ((i+1) % 2 == 0 ? 'even' : 'odd');
|
var parity = ((i+1) % 2 == 0 ? 'even' : 'odd');
|
||||||
html.push( '<tr class="inspector_peer_entry ', parity, '">',
|
html.push( '<tr class="inspector_peer_entry ', parity, '">',
|
||||||
'<td>', (peer.isEncrypted ? '<img src="images/graphics/lock_icon.png" alt="Encrypted"/>' : ''), '</td>',
|
'<td>', (peer.isEncrypted ? '<img src="images/graphics/lock_icon.png" alt="Encrypted"/>' : ''), '</td>',
|
||||||
'<td>', ( peer.rateToPeer ? Transmission.fmt.speedBps(peer.rateToPeer) : '' ), '</td>',
|
'<td>', ( peer.rateToPeer ? fmt.speedBps(peer.rateToPeer) : '' ), '</td>',
|
||||||
'<td>', ( peer.rateToClient ? Transmission.fmt.speedBps(peer.rateToClient) : '' ), '</td>',
|
'<td>', ( peer.rateToClient ? fmt.speedBps(peer.rateToClient) : '' ), '</td>',
|
||||||
'<td class="percentCol">', Math.floor(peer.progress*100), '%', '</td>',
|
'<td class="percentCol">', Math.floor(peer.progress*100), '%', '</td>',
|
||||||
'<td>', peer.flagStr, '</td>',
|
'<td>', peer.flagStr, '</td>',
|
||||||
'<td>', peer.address, '</td>',
|
'<td>', peer.address, '</td>',
|
||||||
|
|||||||
Reference in New Issue
Block a user