Changeset 10823


Ignore:
Timestamp:
Jun 22, 2010, 10:32:44 PM (12 years ago)
Author:
Longinus00
Message:

(web) #3331:Tracker and peer lists should work when more than one torrent is selected

Location:
trunk/web
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/web/javascript/transmission.js

    r10822 r10823  
    13111311                var html = '';
    13121312                var torrents = this.getSelectedTorrents( );
    1313                 if( $(this._inspector_peers_list).is(':visible') && torrents.length == 1 ) {
    1314                         html += '<div class="inspector_group"><table class="peer_list">';
    1315                         html += '<tr class="inspector_peer_entry even">';
    1316                         html += '<th class="encryptedCol"></th>';
    1317                         html += '<th class="upCol">Up</th>';
    1318                         html += '<th class="downCol">Down</th>';
    1319                         html += '<th class="percentCol">%</th>';
    1320                         html += '<th class="statusCol">Status</th>';
    1321                         html += '<th class="addressCol">Address</th>';
    1322                         html += '<th class="clientCol">Client</th>';
    1323                         html += '</tr>';
    1324                         for( var i=0, peer; peer=torrents[0]._peers[i]; ++i ) {
    1325                                 var parity = ((i+1) % 2 == 0 ? 'even' : 'odd');
    1326                                 html += '<tr class="inspector_peer_entry ' + parity + '">';
    1327                                 html += '<td>' + (peer.isEncrypted ? '<img src="images/graphics/lock_icon.png" alt="Encrypted"/>' : '') + '</td>';
    1328                                 html += '<td>' + Transmission.fmt.speed(peer.rateToPeer) + '</td>';
    1329                                 html += '<td>' + Transmission.fmt.speed(peer.rateToClient) + '</td>';
    1330                                 html += '<td class="percentCol">' + Math.floor(peer.progress*100) + '%' + '</td>';
    1331                                 html += '<td>' + peer.flagStr + '</td>';
    1332                                 html += '<td>' + peer.address + '</td>';
    1333                                 html += '<td>' + peer.clientName + '</td>';
     1313                if( $(this._inspector_peers_list).is(':visible') ) {
     1314                        for( var k=0, torrent; torrent=torrents[k]; ++k ) {
     1315                                html += '<div class="inspector_group">';
     1316                                if( torrents.length > 1 ) {
     1317                                        html += '<div class="inspector_torrent_label">';
     1318                                        html += torrent._name + '</div>';
     1319                                }
     1320                                if( torrent._peers.length == 0 ) {
     1321                                        html += '<br></div>'; // firefox won't paint the top border if the div is empty
     1322                                        continue;
     1323                                }
     1324                                html += '<table class="peer_list">';
     1325                                html += '<tr class="inspector_peer_entry even">';
     1326                                html += '<th class="encryptedCol"></th>';
     1327                                html += '<th class="upCol">Up</th>';
     1328                                html += '<th class="downCol">Down</th>';
     1329                                html += '<th class="percentCol">%</th>';
     1330                                html += '<th class="statusCol">Status</th>';
     1331                                html += '<th class="addressCol">Address</th>';
     1332                                html += '<th class="clientCol">Client</th>';
    13341333                                html += '</tr>';
     1334                                for( var i=0, peer; peer=torrent._peers[i]; ++i ) {
     1335                                        var parity = ((i+1) % 2 == 0 ? 'even' : 'odd');
     1336                                        html += '<tr class="inspector_peer_entry ' + parity + '">';
     1337                                        html += '<td>' + (peer.isEncrypted ? '<img src="images/graphics/lock_icon.png" alt="Encrypted"/>' : '') + '</td>';
     1338                                        html += '<td>' + Transmission.fmt.speed(peer.rateToPeer) + '</td>';
     1339                                        html += '<td>' + Transmission.fmt.speed(peer.rateToClient) + '</td>';
     1340                                        html += '<td class="percentCol">' + Math.floor(peer.progress*100) + '%' + '</td>';
     1341                                        html += '<td>' + peer.flagStr + '</td>';
     1342                                        html += '<td>' + peer.address + '</td>';
     1343                                        html += '<td>' + peer.clientName + '</td>';
     1344                                        html += '</tr>';
     1345                                }
     1346                                html += '</table></div>';
    13351347                        }
    1336                         html += '</table></div>';
    13371348                }
    13381349                setInnerHTML(this._inspector_peers_list, html);
     
    13461357                var na = 'N/A';
    13471358                var torrents = this.getSelectedTorrents( );
    1348                 if( $(this._inspector_trackers_list).is(':visible') && torrents.length == 1 ) {
    1349                         for( var i=0, tier; tier=torrents[0]._trackerStats[i]; ++i ) {
    1350                                 html += '<div class="inspector_group"><div class="inspector_group_label">';
    1351                                 html += 'Tier ' + (i + 1) + '</div><ul class="tier_list">';
    1352                                 for( var j=0, tracker; tracker=tier[j]; ++j ) {
    1353                                         var lastAnnounceStatusHash = tr.lastAnnounceStatus(tracker);
    1354                                         var announceState = tr.announceState(tracker);
    1355                                         var lastScrapeStatusHash = tr.lastScrapeStatus(tracker);
    1356 
    1357                                         // Display construction
    1358                                         var parity = ((j+1) % 2 == 0 ? 'even' : 'odd');
    1359                                         html += '<li class="inspector_tracker_entry ' + parity + '"><div class="tracker_host" title="' + tracker.announce + '">';
    1360                                         html += tracker.host + '</div>';
    1361                                         html += '<div class="tracker_activity">';
    1362                                         html += '<div>' + lastAnnounceStatusHash['label'] + ': ' + lastAnnounceStatusHash['value'] + '</div>';
    1363                                         html += '<div>' + announceState + '</div>';
    1364                                         html += '<div>' + lastScrapeStatusHash['label'] + ': ' + lastScrapeStatusHash['value'] + '</div>';
    1365                                         html += '</div><table class="tracker_stats">';
    1366                                         html += '<tr><th>Seeders:</th><td>' + (tracker.seederCount > -1 ? tracker.seederCount : na) + '</td></tr>';
    1367                                         html += '<tr><th>Leechers:</th><td>' + (tracker.leecherCount > -1 ? tracker.leecherCount : na) + '</td></tr>';
    1368                                         html += '<tr><th>Downloads:</th><td>' + (tracker.downloadCount > -1 ? tracker.downloadCount : na)+ '</td></tr>';
    1369                                         html += '</table></li>';
     1359                if( $(this._inspector_trackers_list).is(':visible') ) {
     1360                        for( var k=0, torrent; torrent = torrents[k]; ++k ) {
     1361                                html += '<div class="inspector_group">';
     1362                                if( torrents.length > 1 ) {
     1363                                        html += '<div class="inspector_torrent_label">';
     1364                                        html += torrent._name + '</div>';
    13701365                                }
    1371                                 html += '</ul></div>';
     1366                                for( var i=0, tier; tier=torrent._trackerStats[i]; ++i ) {
     1367                                        html += '<div class="inspector_group_label">';
     1368                                        html += 'Tier ' + (i + 1) + '</div>';
     1369                                        html += '<ul class="tier_list">';
     1370                                        for( var j=0, tracker; tracker=tier[j]; ++j ) {
     1371                                                var lastAnnounceStatusHash = tr.lastAnnounceStatus(tracker);
     1372                                                var announceState = tr.announceState(tracker);
     1373                                                var lastScrapeStatusHash = tr.lastScrapeStatus(tracker);
     1374
     1375                                                // Display construction
     1376                                                var parity = ((j+1) % 2 == 0 ? 'even' : 'odd');
     1377                                                html += '<li class="inspector_tracker_entry ' + parity + '"><div class="tracker_host" title="' + tracker.announce + '">';
     1378                                                html += tracker.host + '</div>';
     1379                                                html += '<div class="tracker_activity">';
     1380                                                html += '<div>' + lastAnnounceStatusHash['label'] + ': ' + lastAnnounceStatusHash['value'] + '</div>';
     1381                                                html += '<div>' + announceState + '</div>';
     1382                                                html += '<div>' + lastScrapeStatusHash['label'] + ': ' + lastScrapeStatusHash['value'] + '</div>';
     1383                                                html += '</div><table class="tracker_stats">';
     1384                                                html += '<tr><th>Seeders:</th><td>' + (tracker.seederCount > -1 ? tracker.seederCount : na) + '</td></tr>';
     1385                                                html += '<tr><th>Leechers:</th><td>' + (tracker.leecherCount > -1 ? tracker.leecherCount : na) + '</td></tr>';
     1386                                                html += '<tr><th>Downloads:</th><td>' + (tracker.downloadCount > -1 ? tracker.downloadCount : na)+ '</td></tr>';
     1387                                                html += '</table></li>';
     1388                                        }
     1389                                        html += '</ul>';
     1390                                }
     1391                                html += '</div>';
    13721392                        }
    13731393                }
  • trunk/web/stylesheets/common.css

    r10812 r10823  
    609609        padding: 10px 0px;
    610610}
     611.inspector_torrent_label {
     612        display: table-caption;
     613        font-size: 1.2em;
     614        font-weight: bold;
     615}
    611616.inspector_group_label {
    612617        display: table-header-group;
     
    706711ul.tier_list {
    707712        width: 100%;
    708         margin: 10px 0 0 0;
     713        margin: 2px 0 8px 0;
    709714        padding-left: 0px;
    710715        text-align: left;
Note: See TracChangeset for help on using the changeset viewer.