1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-02-19 04:41:11 +00:00

(trunk web) sync the web client's inspector's info tab with the one in the GTK+ and Qt clients. This fixes #4609 and #4608.

This commit is contained in:
Jordan Lee 2011-11-04 21:05:24 +00:00
parent 68a921c40e
commit 69d782c2de
9 changed files with 756 additions and 3003 deletions

View file

@ -179,7 +179,7 @@
<div id="inspector-tabs-wrapper">
<div id="inspector-tabs">
<div class="inspector-tab selected" id="inspector-tab-info" title="Info"><a href="#info"></a></div><div class="inspector-tab" id="inspector-tab-activity" title="Activity"><a href="#activity"></a></div><div class="inspector-tab" id="inspector-tab-peers" title="Peers"><a href="#peers"></a></div><div class="inspector-tab" id="inspector-tab-trackers" title="Trackers"><a href="#trackers"></a></div><div class="inspector-tab" id="inspector-tab-files" title="Files"><a href="#files"></a></div>
<div class="inspector-tab selected" id="inspector-tab-info" title="Info"><a href="#info"></a></div><div class="inspector-tab" id="inspector-tab-peers" title="Peers"><a href="#peers"></a></div><div class="inspector-tab" id="inspector-tab-trackers" title="Trackers"><a href="#trackers"></a></div><div class="inspector-tab" id="inspector-tab-files" title="Files"><a href="#files"></a></div>
</div><!-- inspector-tabs -->
</div><!-- inspector-tabs-wrapper -->
@ -189,106 +189,29 @@
</div>
<div class="inspector-page" id="inspector-page-info">
<div class="inspector_group">
<div class="inspector_group_label">Information</div>
<div class="inspector_row">
<div class="inspector_label">Pieces:</div>
<div id="torrent_inspector_pieces"></div>
</div>
<div class="inspector_row">
<div class="inspector_label">Hash:</div>
<div id="torrent_inspector_hash"></div>
</div>
<div class="inspector_row">
<div class="inspector_label">Secure:</div>
<div id="torrent_inspector_secure"></div>
</div>
<div class="inspector_row">
<div class="inspector_label">Comment:</div>
<div id="torrent_inspector_comment"></div>
</div>
</div><!-- class="inspector_group"-->
<div class="inspector_group">
<div class="inspector_group_label">Created By</div>
<div class="inspector_row">
<div class="inspector_label">Creator:</div>
<div id="torrent_inspector_creator">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">Date:</div>
<div id="torrent_inspector_creator_date">N/A</div>
</div>
</div><!-- class="inspector_group"-->
<div class="inspector_group">
<div class="inspector_group_label">Where</div>
<div class="inspector_row">
<div class="inspector_label">Download Dir:</div>
<div id="torrent_inspector_download_dir">N/A</div>
</div>
</div><!-- class="inspector_group"-->
<div class="prefs-section">
<div class="title">Activity</div>
<div class="row"><div class="key">Have:</div><div class="value" id="inspector-info-have">&nbsp;</div></div>
<div class="row"><div class="key">Availability:</div><div class="value" id="inspector-info-availability">&nbsp;</div></div>
<div class="row"><div class="key">Downloaded:</div><div class="value" id="inspector-info-downloaded">&nbsp;</div></div>
<div class="row"><div class="key">Uploaded:</div><div class="value" id="inspector-info-uploaded">&nbsp;</div></div>
<div class="row"><div class="key">State:</div><div class="value" id="inspector-info-state">&nbsp;</div></div>
<div class="row"><div class="key">Running Time:</div><div class="value" id="inspector-info-running-time">&nbsp;</div></div>
<div class="row"><div class="key">Remaining Time:</div><div class="value" id="inspector-info-remaining-time">&nbsp;</div></div>
<div class="row"><div class="key">Last Activity:</div><div class="value" id="inspector-info-last-activity">&nbsp;</div></div>
<div class="row"><div class="key">Error:</div><div class="value" id="inspector-info-error">&nbsp;</div></div>
</div>
<div class="prefs-section">
<div class="title">Details</div>
<div class="row"><div class="key">Size:</div><div class="value" id="inspector-info-size">&nbsp;</div></div>
<div class="row"><div class="key">Location:</div><div class="value" id="inspector-info-location">&nbsp;</div></div>
<div class="row"><div class="key">Hash:</div><div class="value" id="inspector-info-hash">&nbsp;</div></div>
<div class="row"><div class="key">Privacy:</div><div class="value" id="inspector-info-privacy">&nbsp;</div></div>
<div class="row"><div class="key">Origin:</div><div class="value" id="inspector-info-origin">&nbsp;</div></div>
<div class="row"><div class="key">Comment:</div><div class="value" id="inspector-info-comment">&nbsp;</div></div>
</div>
</div><!-- id="inspector_tab_info_container" -->
<div style="display:none;" class="inspector-page" id="inspector-page-activity">
<div class="inspector_group">
<div class="inspector_group_label">Activity</div>
<div class="inspector_row">
<div class="inspector_label">State:</div>
<div id="torrent_inspector_state">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">Progress:</div>
<div id="torrent_inspector_progress">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">Have:</div>
<div id="torrent_inspector_have">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">Availability:</div>
<div id="torrent_inspector_availability">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">Downloaded:</div>
<div id="torrent_inspector_downloaded">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">Uploaded:</div>
<div id="torrent_inspector_uploaded">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">Ratio:</div>
<div id="torrent_inspector_ratio">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">Error:</div>
<div id="torrent_inspector_error">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">DL Speed:</div>
<div id="torrent_inspector_download_speed">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">UL Speed:</div>
<div id="torrent_inspector_upload_speed">N/A</div>
</div>
</div><!-- class="inspector_group"-->
<div class="inspector_group">
<div class="inspector_group_label">Peers</div>
<div class="inspector_row">
<div class="inspector_label">UL To:</div>
<div id="torrent_inspector_upload_to">N/A</div>
</div>
<div class="inspector_row">
<div class="inspector_label">DL From:</div>
<div id="torrent_inspector_download_from">N/A</div>
</div>
</div><!-- class="inspector_group"-->
</div><!-- id="inspector_tab_activity_container" -->
<div style="display:none;" class="inspector-page" id="inspector-page-peers">
<div id="inspector_peers_list">
</div>

View file

@ -48,7 +48,6 @@ function Inspector(controller) {
$(tab).addClass('selected').siblings().removeClass('selected');
// show this tab and hide the others
console.log('#' + tab.id.replace('tab','page'));
$('#' + tab.id.replace('tab','page')).show().siblings('.inspector-page').hide();
updateInspector();
@ -66,13 +65,11 @@ function Inspector(controller) {
name = torrents[0].getName();
else
name = '' + torrents.length+' Transfers Selected';
setInnerHTML(e.name, name || na);
setInnerHTML(e.name_lb, name || na);
// update the visible page
if ($(e.info_page).is(':visible'))
updateInfoPage();
else if ($(e.activity_page).is(':visible'))
updateActivityPage();
else if ($(e.peers_page).is(':visible'))
updatePeersPage();
else if ($(e.trackers_page).is(':visible'))
@ -97,7 +94,11 @@ function Inspector(controller) {
var torrents = data.torrents,
e = data.elements,
fmt = Transmission.fmt,
na = 'N/A',
none = 'None',
mixed = 'Mixed',
unknown = 'Unknown',
isMixed, allPaused, allFinished,
str,
name = '',
pieceCount = 0,
pieceSize = '',
@ -107,101 +108,349 @@ function Inspector(controller) {
creator = '',
date = '',
directory = '',
s, i, t;
for (i=0; t=torrents[i]; ++i) {
name = accumulateString(name, t.getName());
pieceCount += t.getPieceCount();
pieceSize = accumulateString(pieceSize, fmt.mem(t.getPieceSize()));
hash = accumulateString(hash, t.getHashString());
secure = accumulateString(secure, (t.getPrivateFlag() ? 'Private' : 'Public')+' Torrent');
comment = accumulateString(comment, t.getComment() || 'N/A');
creator = accumulateString(creator, t.getCreator());
date = accumulateString(date, fmt.timestamp(t.getDateCreated()));
directory = accumulateString(directory, t.getDownloadDir());
}
if (!pieceCount)
setInnerHTML(e.pieces, na);
else if (pieceSize == 'Mixed')
setInnerHTML(e.pieces, 'Mixed');
else
setInnerHTML(e.pieces, pieceCount + ' pieces @ ' + pieceSize);
setInnerHTML(e.hash, hash || na);
setInnerHTML(e.secure, secure || na);
setInnerHTML(e.comment, comment.replace(/(https?|ftp):\/\/([\w\-]+(\.[\w\-]+)*(\.[a-z]{2,4})?)(\d{1,5})?(\/([^<>\s]*))?/g, '<a target="_blank" href="$&">$&</a>') || na);
setInnerHTML(e.creator, creator || na);
setInnerHTML(e.date, date || na);
setInnerHTML(e.directory, directory || na);
$("#inspector_tab_info_container .inspector_row > div").css('color', '#222');
$("#inspector_tab_info_container .inspector_row > div:contains('N/A')").css('color', '#666');
},
/****
***** ACTIVITY PAGE
****/
updateActivityPage = function() {
var i, t, l, d, na='N/A',
fmt = Transmission.fmt,
e = data.elements,
torrents = data.torrents,
state = '',
have = 0,
baseline, it, ref, s, i, t,
sizeWhenDone = 0,
progress = '',
have = 0,
verified = 0,
availability = 0,
downloaded = 0,
uploaded = 0,
error = '',
uploadSpeed = 0,
uploadPeers = 0,
downloadSpeed = 0,
downloadPeers = 0,
availability = 0;
leftUntilDone = 0,
available = 0,
haveTotal = 0,
haveVerified = 0,
haveUnverified = 0,
verifiedPieces = 0,
stateString,
latest,
pieces,
size,
pieceSize,
creator, mixed_creator,
date, mixed_date,
v, u, f, d, pct, now;
for (i=0; t=torrents[i]; ++i)
{
l = t.getLeftUntilDone();
d = t.getSizeWhenDone();
//
// state_lb
//
state = accumulateString(state, t.getStateString());
error = accumulateString(error, t.getErrorString());
if(torrents.length <1)
str = none;
else {
isMixed = false;
allPaused = true;
allFinished = true;
have += t.getHave();
verified += t.getHaveValid();
sizeWhenDone += d;
availability += (d - l + t.getDesiredAvailable());
uploaded += t.getUploadedEver();
uploadSpeed += t.getUploadSpeed();
uploadPeers += t.getPeersGettingFromUs();
downloaded += t.getDownloadedEver();
downloadSpeed += t.getDownloadSpeed();
downloadPeers += t.getPeersSendingToUs();
baseline = torrents[0].getStatus();
for(i=0; t=torrents[i]; ++i) {
it = t.getStatus();
if(it != baseline)
isMixed = true;
if(!t.isStopped())
allPaused = allFinished = false;
if(!t.isFinished())
allFinished = false;
}
if( isMixed )
str = mixed;
else if( allFinished )
str = 'Finished';
else if( allPaused )
str = 'Paused';
else
str = torrents[0].getStateString();
}
setInnerHTML(e.state_lb, str);
stateString = str;
setInnerHTML(e.state, state);
setInnerHTML(e.progress, torrents.length ? fmt.percentString(Math.ratio(have*100, sizeWhenDone)) + '%' : na);
setInnerHTML(e.have, torrents.length ? fmt.size(have) + ' (' + fmt.size(verified) + ' verified)' : na);
setInnerHTML(e.availability, torrents.length ? fmt.percentString(Math.ratio(availability*100, sizeWhenDone)) + '%' : na);
setInnerHTML(e.uploaded, torrents.length ? fmt.size(uploaded) : na);
setInnerHTML(e.downloaded, torrents.length ? fmt.size(downloaded) : na);
setInnerHTML(e.ratio, torrents.length ? fmt.ratioString(Math.ratio(uploaded, downloaded)) : na);
setInnerHTML(e.error, error);
setInnerHTML(e.upload_speed, torrents.length ? fmt.speedBps(uploadSpeed) : na);
setInnerHTML(e.download_speed, torrents.length ? fmt.speedBps(downloadSpeed) : na);
setInnerHTML(e.upload_to, torrents.length ? uploadPeers : na);
setInnerHTML(e.download_from, torrents.length ? downloadPeers : na);
//
// have_lb
//
$("#inspector_tab_activity_container .inspector_row > div").css('color', '#222');
$("#inspector_tab_activity_container .inspector_row > div:contains('N/A')").css('color', '#666');
if(torrents.length < 1)
str = none;
else {
baseline = torrents[0].getStatus();
for(i=0; t=torrents[i]; ++i) {
if(!t.needsMetaData()) {
haveTotal += t.getHave();
haveUnverified += t.getHaveUnchecked();
v = t.getHaveValid();
haveVerified += v;
if(t.getPieceSize())
verifiedPieces += v / t.getPieceSize();
sizeWhenDone += t.getSizeWhenDone();
leftUntilDone += t.getLeftUntilDone();
available += (t.getHave()) + t.getDesiredAvailable();
}
}
d = 100.0 * ( sizeWhenDone ? ( sizeWhenDone - leftUntilDone ) / sizeWhenDone : 1 );
str = fmt.percentString( d );
if( !haveUnverified && !leftUntilDone )
str = fmt.size(haveVerified) + ' (100%)';
else if( !haveUnverified )
str = fmt.size(haveVerified) + ' of ' + fmt.size(sizeWhenDone) + ' (' + str +'%)';
else
str = fmt.size(haveVerified) + ' of ' + fmt.size(sizeWhenDone) + ' (' + str +'%), ' + fmt.size(haveUnverified) + ' Unverified';
}
setInnerHTML(e.have_lb, str);
//
// availability_lb
//
if(torrents.length < 1)
str = none;
else if( sizeWhenDone == 0 )
str = none;
else
str = '' + fmt.percentString( ( 100.0 * available ) / sizeWhenDone ) + '%';
setInnerHTML(e.availability_lb, str);
//
// downloaded_lb
//
if(torrents.length < 1)
str = none;
else {
d = f = 0;
for(i=0; t=torrents[i]; ++i) {
d = t.getDownloadedEver();
f = t.getFailedEver();
}
if(f)
str = fmt.size(d) + ' (' + fmt.size(f) + ' corrupt)';
else
str = fmt.size(d);
}
setInnerHTML(e.downloaded_lb, str);
//
// uploaded_lb
//
if(torrents.length < 1)
str = none;
else {
d = u = 0;
for(i=0; t=torrents[i]; ++i) {
d = t.getDownloadedEver();
u = t.getUploadedEver();
}
str = fmt.size(u) + ' (Ratio: ' + fmt.ratioString( Math.ratio(u,d))+')';
}
setInnerHTML(e.uploaded_lb, str);
//
// running time
//
if(torrents.length < 1)
str = none;
else {
allPaused = true;
baseline = torrents[0].getStartDate();
for(i=0; t=torrents[i]; ++i) {
if(baseline != t.getStartDate())
baseline = 0;
if(!t.isStopped())
allPaused = false;
}
if(allPaused)
str = stateString; // paused || finished
else if(!baseline)
str = mixed;
else
str = fmt.timeInterval(Date.now()/1000 - baseline);
}
setInnerHTML(e.running_time_lb, str);
//
// remaining time
//
str = '';
if(torrents.length < 1)
str = none;
else {
baseline = torrents[0].getETA();
for(i=0; t=torrents[i]; ++i) {
if(baseline != t.getETA()) {
str = mixed;
break;
}
}
}
if(!str.length) {
if(baseline < 0)
str = unknown;
else
str = fmt.timeInterval(baseline);
}
setInnerHTML(e.remaining_time_lb, str);
//
// last activity
//
latest = -1;
if(torrents.length < 1)
str = none;
else {
baseline = torrents[0].getLastActivity();
for(i=0; t=torrents[i]; ++i) {
d = t.getLastActivity();
if(latest < d)
latest = d;
}
d = Date.now()/1000 - latest; // seconds since last activity
if(d < 0)
str = none;
else if(d < 5)
str = 'Active now';
else
str = fmt.timeInterval(d) + ' ago';
}
setInnerHTML(e.last_activity_lb, str);
//
// error
//
if(torrents.length < 1)
str = none;
else {
str = torrents[0].getErrorString();
for(i=0; t=torrents[i]; ++i) {
if(str != t.getErrorString()) {
str = mixed;
break;
}
}
}
setInnerHTML(e.error_lb, str || none);
//
// size
//
if(torrents.length < 1)
str = none;
else {
pieces = 0;
size = 0;
pieceSize = torrents[0].getPieceSize();
for(i=0; t=torrents[i]; ++i) {
pieces += t.getPieceCount();
size += t.getTotalSize();
if(pieceSize != t.getPieceSize())
pieceSize = 0;
}
if(!size)
str = none;
else if(pieceSize > 0)
str = fmt.size(size) + ' (' + pieces.toStringWithCommas() + ' pieces @ ' + fmt.mem(pieceSize) + ')';
else
str = fmt.size(size) + ' (' + pieces.toStringWithCommas() + ' pieces)';
}
setInnerHTML(e.size_lb, str);
//
// hash
//
if(torrents.length < 1)
str = none;
else {
str = torrents[0].getHashString();
for(i=0; t=torrents[i]; ++i) {
if(str != t.getHashString()) {
str = mixed;
break;
}
}
}
setInnerHTML(e.hash_lb, str);
//
// privacy
//
if(torrents.length < 1)
str = none;
else {
baseline = torrents[0].getPrivateFlag();
str = baseline ? 'Private to this tracker -- DHT and PEX disabled' : 'Public torrent';
for(i=0; t=torrents[i]; ++i) {
if(baseline != t.getPrivateFlag()) {
str = mixed;
break;
}
}
}
setInnerHTML(e.privacy_lb, str);
//
// comment
//
if(torrents.length < 1)
str = none;
else {
str = torrents[0].getComment();
for(i=0; t=torrents[i]; ++i) {
if(str != t.getComment()) {
str = mixed;
break;
}
}
}
if(!str)
str = none;
setInnerHTML(e.comment_lb, str.replace(/(https?|ftp):\/\/([\w\-]+(\.[\w\-]+)*(\.[a-z]{2,4})?)(\d{1,5})?(\/([^<>\s]*))?/g, '<a target="_blank" href="$&">$&</a>'));
//
// origin
//
if(torrents.length < 1)
str = none;
else {
mixed_creator = false;
mixed_date = false;
creator = torrents[0].getCreator();
date = torrents[0].getDateCreated();
for(i=0; t=torrents[i]; ++i) {
if(creator != t.getCreator())
mixed_creator = true;
if(date != t.getDateCreated())
mixed_date = true;
}
if(mixed_creator && mixed_date)
str = mixed;
else if(mixed_date && creator.length)
str = 'Created by ' + creator;
else if(mixed_creator && date)
str = 'Created on ' + (new Date(date*1000)).toDateString();
else
str = 'Created by ' + creator + ' on ' + (new Date(date*1000)).toDateString();
}
setInnerHTML(e.origin_lb, str);
//
// foldername
//
if(torrents.length < 1)
str = none;
else {
str = torrents[0].getDownloadDir();
for(i=0; t=torrents[i]; ++i) {
if(str != t.getDownloadDir()) {
str = mixed;
break;
}
}
}
setInnerHTML(e.foldername_lb, str);
},
/****
@ -453,38 +702,31 @@ function Inspector(controller) {
data.elements.files_page = $('#inspector-page-files')[0];
data.elements.peers_page = $('#inspector-page-peers')[0];
data.elements.trackers_page = $('#inspector-page-trackers')[0];
data.elements.activity_page = $('#inspector-page-activity')[0];
data.elements.file_list = $('#inspector_file_list')[0];
data.elements.peers_list = $('#inspector_peers_list')[0];
data.elements.trackers_list = $('#inspector_trackers_list')[0];
data.elements.availability = $(ti+'availability')[0];
data.elements.comment = $(ti+'comment')[0];
data.elements.date = $(ti+'creator_date')[0];
data.elements.creator = $(ti+'creator')[0];
data.elements.directory = $(ti+'download_dir')[0];
data.elements.downloaded = $(ti+'downloaded')[0];
data.elements.download_from = $(ti+'download_from')[0];
data.elements.download_speed = $(ti+'download_speed')[0];
data.elements.error = $(ti+'error')[0];
data.elements.hash = $(ti+'hash')[0];
data.elements.have = $(ti+'have')[0];
data.elements.name = $(ti+'name')[0];
data.elements.progress = $(ti+'progress')[0];
data.elements.ratio = $(ti+'ratio')[0];
data.elements.secure = $(ti+'secure')[0];
data.elements.size = $(ti+'size')[0];
data.elements.state = $(ti+'state')[0];
data.elements.pieces = $(ti+'pieces')[0];
data.elements.uploaded = $(ti+'uploaded')[0];
data.elements.upload_speed = $(ti+'upload_speed')[0];
data.elements.upload_to = $(ti+'upload_to')[0];
data.elements.have_lb = $('#inspector-info-have')[0];
data.elements.availability_lb = $('#inspector-info-availability')[0];
data.elements.downloaded_lb = $('#inspector-info-downloaded')[0];
data.elements.uploaded_lb = $('#inspector-info-uploaded')[0];
data.elements.state_lb = $('#inspector-info-state')[0];
data.elements.running_time_lb = $('#inspector-info-running-time')[0];
data.elements.remaining_time_lb = $('#inspector-info-remaining-time')[0];
data.elements.last_activity_lb = $('#inspector-info-last-activity')[0];
data.elements.error_lb = $('#inspector-info-error')[0];
data.elements.size_lb = $('#inspector-info-size')[0];
data.elements.foldername_lb = $('#inspector-info-location')[0];
data.elements.hash_lb = $('#inspector-info-hash')[0];
data.elements.privacy_lb = $('#inspector-info-privacy')[0];
data.elements.origin_lb = $('#inspector-info-origin')[0];
data.elements.comment_lb = $('#inspector-info-comment')[0];
data.elements.name_lb = $('#torrent_inspector_name')[0];
// force initial 'N/A' updates on all the pages
updateInspector();
updateInfoPage();
updateActivityPage();
updatePeersPage();
updateTrackersPage();
updateFilesPage();

View file

@ -93,6 +93,8 @@ Torrent.Fields.InfoExtra = [
// fields used in the inspector which need to be periodically refreshed
Torrent.Fields.StatsExtra = [
'activityDate',
'corruptEver',
'desiredAvailable',
'downloadDir',
'downloadedEver',
@ -101,6 +103,7 @@ Torrent.Fields.StatsExtra = [
'haveValid',
'peers',
'seedRatioLimit',
'startDate',
'trackerStats',
'webseedsSendingToUs'
];
@ -203,12 +206,15 @@ Torrent.prototype =
getError: function() { return this.fields.error; },
getErrorString: function() { return this.fields.errorString; },
getETA: function() { return this.fields.eta; },
getFailedEver: function(i) { return this.fields.corruptEver; },
getFile: function(i) { return this.fields.files[i]; },
getFileCount: function() { return this.fields.files ? this.fields.files.length : 0; },
getHashString: function() { return this.fields.hashString; },
getHave: function() { return this.getHaveValid() + this.getHaveUnchecked() },
getHaveUnchecked: function() { return this.fields.haveUnchecked; },
getHaveValid: function() { return this.fields.haveValid; },
getHave: function() { return this.getHaveValid() + this.fields.haveUnchecked; },
getId: function() { return this.fields.id; },
getLastActivity: function() { return this.fields.activityDate; },
getLeftUntilDone: function() { return this.fields.leftUntilDone; },
getMetadataPercentComplete: function() { return this.fields.metadataPercentComplete; },
getName: function() { return this.fields.name || 'Unknown'; },
@ -224,6 +230,7 @@ Torrent.prototype =
getSeedRatioLimit: function() { return this.fields.seedRatioLimit; },
getSeedRatioMode: function() { return this.fields.seedRatioMode; },
getSizeWhenDone: function() { return this.fields.sizeWhenDone; },
getStartDate: function() { return this.fields.startDate; },
getStatus: function() { return this.fields.status; },
getTotalSize: function() { return this.fields.totalSize; },
getTrackers: function() { return this.fields.trackers; },

File diff suppressed because it is too large Load diff

View file

@ -514,6 +514,7 @@ ul.torrent_list
.title {
font-weight: bold;
font-size: larger;
padding-left: 0px;
}
@ -594,10 +595,6 @@ div#torrent_inspector
border-left-width: 1px;
}
> #inspector-tab-activity {
@include buttonImage('images/inspector-activity.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
}
> #inspector-tab-peers {
@include buttonImage('images/inspector-peers.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
}
@ -624,51 +621,6 @@ div#torrent_inspector
}
}
.inspector_group
{
display: table;
width: 100%;
border-top: 1px solid #888;
margin: 10px 0px;
padding: 10px 0px;
.inspector_group_label
{
display: table-header-group;
font-weight: bold;
}
.inspector_row
{
display: table-row;
> .inspector_label {
display: table-cell;
width: 100px; /* this + the next 380 == inspector_container_with */
}
> div {
padding-top: 10px;
width: 380px; /* inspector_container_width==480 - inspector_label_width==100 */
}
}
/* Trackers Inspector Tab */
#inspector_trackers_list
{
padding: 0 0 0 0;
margin: 0 0 0 0;
text-align: left;
cursor: default;
overflow: hidden;
& > div.inspector_group {
padding-bottom: 0;
margin-bottom: 0;
}
}
}
ul.tier_list
{
margin: 2px 0 8px 0;

View file

@ -11,7 +11,6 @@ dist_data_DATA = \
file-priority-normal.png \
filter_bar.png \
filter_icon.png \
inspector-activity.png \
inspector-files.png \
inspector-info.png \
inspector-peers.png \

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 B

File diff suppressed because it is too large Load diff

View file

@ -458,6 +458,7 @@ ul.torrent_list
.title {
font-weight: bold;
font-size: larger;
padding-left: 0px;
}
@ -529,10 +530,6 @@ div#torrent_inspector
border-left-width: 1px;
}
> #inspector-tab-activity {
@include buttonImage('images/inspector-activity.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
}
> #inspector-tab-peers {
@include buttonImage('images/inspector-peers.png', $idle-color-top, $idle-color-bottom, $active-color-top, $active-color-bottom);
}
@ -559,51 +556,6 @@ div#torrent_inspector
}
}
.inspector_group
{
display: table;
width: 100%;
border-top: 1px solid #888;
margin: 10px 0px;
padding: 10px 0px;
.inspector_group_label
{
display: table-header-group;
font-weight: bold;
}
.inspector_row
{
display: table-row;
> .inspector_label {
display: table-cell;
width: 100px; /* this + the next 230 == inspector_container_with */
}
> div {
padding-top: 10px;
width: 230px; /* inspector_container_width==330 - inspector_label_width==100 */
}
}
/* Trackers Inspector Tab */
#inspector_trackers_list
{
padding: 0 0 0 0;
margin: 0 0 0 0;
text-align: left;
cursor: default;
overflow: hidden;
& > div.inspector_group {
padding-bottom: 0;
margin-bottom: 0;
}
}
}
ul.tier_list
{
margin: 2px 0 8px 0;