Changeset 10788


Ignore:
Timestamp:
Jun 17, 2010, 4:40:06 AM (12 years ago)
Author:
Longinus00
Message:

(web) #3285:Add peer list to inspector

Location:
trunk/web
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/web/index.html

    r10787 r10788  
    7070                                <div class="inspector_tab selected" id="inspector_tab_info"><a href="#info"><img src="images/buttons/info_general.png" alt="Information"/></a></div>
    7171                                <div class="inspector_tab" id="inspector_tab_activity"><a href="#activity"><img src="images/buttons/info_activity.png" alt="Activity"/></a></div>
     72                                <div class="inspector_tab" id="inspector_tab_peers"><a href="#peers"><img src="images/buttons/info_peers.png" alt="Peers"/></a></div>
    7273                                <div class="inspector_tab" id="inspector_tab_trackers"><a href="#trackers"><img src="images/buttons/info_trackers.png" alt="Trackers"/></a></div>
    7374                                <div class="inspector_tab" id="inspector_tab_files"><a href="#files"><img src="images/buttons/info_files.png" alt="Files"/></a></div>
     
    179180                                </div><!-- class="inspector_group"-->
    180181                        </div><!-- id="inspector_tab_activity_container" -->
     182
     183                        <div style="display:none;" class="inspector_container" id="inspector_tab_peers_container">
     184                                <div id="inspector_peers_list">
     185                                </div>
     186                        </div><!-- id="inspector_tab_peers_container" -->
    181187
    182188                        <div style="display:none;" class="inspector_container" id="inspector_tab_trackers_container">
  • trunk/web/javascript/torrent.js

    r10787 r10788  
    4040
    4141Torrent._DynamicFields = [ 'downloadedEver', 'error', 'errorString', 'eta',
    42     'haveUnchecked', 'haveValid', 'leftUntilDone', 'metadataPercentComplete', 'peersConnected',
    43     'peersGettingFromUs', 'peersSendingToUs', 'rateDownload', 'rateUpload',
     42    'haveUnchecked', 'haveValid', 'leftUntilDone', 'metadataPercentComplete', 'peers',
     43    'peersConnected', 'peersGettingFromUs', 'peersSendingToUs', 'rateDownload', 'rateUpload',
    4444    'recheckProgress', 'sizeWhenDone', 'status', 'trackerStats', 'desiredAvailable',
    4545    'uploadedEver', 'uploadRatio', 'seedRatioLimit', 'seedRatioMode', 'downloadDir', 'isFinished' ]
     
    384384                this._download_speed          = data.rateDownload;
    385385                this._upload_speed            = data.rateUpload;
     386                this._peers                   = data.peers;
    386387                this._peers_connected         = data.peersConnected;
    387388                this._peers_getting_from_us   = data.peersGettingFromUs;
  • trunk/web/javascript/transmission.js

    r10787 r10788  
    7878                this._torrent_list             = $('#torrent_list')[0];
    7979                this._inspector_file_list      = $('#inspector_file_list')[0];
     80                this._inspector_peers_list     = $('#inspector_peers_list')[0];
    8081                this._inspector_trackers_list  = $('#inspector_trackers_list')[0];
    8182                this._inspector_tab_files      = $('#inspector_tab_files')[0];
     
    702703       
    703704                this.updateVisibleFileLists();
     705                this.updatePeersLists();
    704706                this.updateTrackersLists();
    705707        },
     
    11921194                        setInnerHTML( tab.error, na );
    11931195                        this.updateVisibleFileLists();
     1196                        this.updatePeersLists();
    11941197                        this.updateTrackersLists();
    11951198                        $("#torrent_inspector_size, .inspector_row > div:contains('N/A')").css('color', '#666');
     
    12681271                setInnerHTML( tab.download_dir, download_dir == na ? download_dir : download_dir.replace(/([\/_\.])/g, "$1&#8203;") );
    12691272                setInnerHTML( tab.error, error );
    1270                
     1273
     1274                this.updatePeersLists();
    12711275                this.updateTrackersLists();
    12721276                $(".inspector_row > div:contains('N/A')").css('color', '#666');
     
    12921296                        }
    12931297                }
     1298        },
     1299
     1300        updatePeersLists: function() {
     1301                var tr = this;
     1302                var html = '';
     1303                var torrents = this.getSelectedTorrents( );
     1304                if( $(this._inspector_peers_list).is(':visible') && torrents.length == 1 ) {
     1305                        html += '<div class="inspector_group"><table class="peer_list">';
     1306                        html += '<tr class="inspector_peer_entry even">';
     1307                        html += '<th class="encryptedCol"></th>';
     1308                        html += '<th class="upCol">Up</th>';
     1309                        html += '<th class="downCol">Down</th>';
     1310                        html += '<th class="percentCol">%</th>';
     1311                        html += '<th class="statusCol">Status</th>';
     1312                        html += '<th class="addressCol">Address</th>';
     1313                        html += '<th class="clientCol">Client</th>';
     1314                        html += '</tr>';
     1315                        for( var i=0, peer; peer=torrents[0]._peers[i]; ++i ) {
     1316                                var parity = ((i+1) % 2 == 0 ? 'even' : 'odd');
     1317                                html += '<tr class="inspector_peer_entry ' + parity + '">';
     1318                                html += '<td>' + (peer.isEncrypted ? '<img src="images/graphics/lock_icon.png" alt="Encrypted"/>' : '') + '</td>';
     1319                                html += '<td>' + (peer.rateToPeer ? Math.formatBytes(peer.rateToPeer) + '/s' : '') + '</td>';
     1320                                html += '<td>' + (peer.rateToClient ? Math.formatBytes(peer.rateToClient) + '/s' : '') + '</td>';
     1321                                html += '<td class="percentCol">' + Math.floor(peer.progress*100) + '%' + '</td>';
     1322                                html += '<td>' + peer.flagStr + '</td>';
     1323                                html += '<td>' + peer.address + '</td>';
     1324                                html += '<td>' + peer.clientName + '</td>';
     1325                                html += '</tr>';
     1326                        }
     1327                        html += '</table></div>';
     1328                }
     1329                setInnerHTML(this._inspector_peers_list, html);
    12941330        },
    12951331
  • trunk/web/stylesheets/common.css

    r10367 r10788  
    526526        bottom: 22px;
    527527        right: 0px;
    528         width: 350px;
     528        width: 500px;
    529529        background-color: #ddd;
    530530        border-left: 1px solid #888;
     
    550550}
    551551div#inspector_tabs {
    552         width: 243px;
     552        width: 303px;
    553553        margin: 0 auto;
    554554        padding-top: 10px;
     
    586586.inspector_row > .inspector_label {
    587587        display: table-cell;
    588         width: 100px; /* this + the next 230 == inspector_container_with */
     588        width: 100px; /* this + the next 380 == inspector_container_with */
    589589}
    590590.inspector_row > div {
    591591        display: table-cell;
    592592        padding-top: 10px;
    593         width: 230px; /* inspector_container_width==330 - inspector_label_width==100 */
     593        width: 380px; /* inspector_container_width==480 - inspector_label_width==100 */
     594}
     595
     596/* Peers Inspector Tab */
     597#inspector_peers_list {
     598        padding: 0 0 0 0;
     599        margin: 0 0 0 0;
     600        text-align: left;
     601        cursor: default;
     602        overflow: hidden;
     603}
     604
     605#inspector_peers_list > div.inspector_group {
     606        padding-bottom: 0;
     607        margin-bottom: 0;
     608}
     609
     610table.peer_list {
     611        width: 100%;
     612        border-collapse: collapse;
     613        text-align: left;
     614        cursor: default;
     615        clear: both;
     616}
     617
     618.peer_list .encryptedCol {
     619        width: 16px;
     620}
     621
     622.peer_list .upCol {
     623        width: 70px;
     624}
     625
     626.peer_list .downCol {
     627        width: 70px;
     628}
     629
     630.peer_list .percentCol {
     631        width: 30px;
     632        padding-right: 5px;
     633}
     634
     635.peer_list td.percentCol {
     636        text-align: right;
     637}
     638
     639.peer_list .statusCol {
     640        width: 40px;
     641        padding-right: 5px;
     642}
     643
     644.peer_list .addressCol {
     645        width: 90px;
     646}
     647
     648.peer_list .clientCol {
     649        text-overflow: ellipsis;
     650}
     651
     652tr.inspector_peer_entry {
     653
     654}
     655
     656tr.inspector_peer_entry.odd {
     657        background-color: #EEEEEE;
    594658}
    595659
     
    626690        float: left;
    627691        color: #666;
    628         width: 200px;
     692        width: 350px;
    629693        display: table;
    630694        margin-top: 1px;
Note: See TracChangeset for help on using the changeset viewer.