Changeset 10050
- Timestamp:
- Jan 31, 2010, 2:42:48 AM (12 years ago)
- Location:
- trunk/web
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/web/images/buttons/Makefile.am
r9787 r10050 8 8 info_files.png \ 9 9 info_general.png \ 10 info_trackers.png \ 10 11 tab_backgrounds.png \ 11 12 toolbar_buttons.png \ -
trunk/web/index.html
r9936 r10050 69 69 <div class="inspector_tab selected" id="inspector_tab_info"><a href="#info"><img src="images/buttons/info_general.png" alt="Information"/></a></div> 70 70 <div class="inspector_tab" id="inspector_tab_activity"><a href="#activity"><img src="images/buttons/info_activity.png" alt="Activity"/></a></div> 71 <div class="inspector_tab" id="inspector_tab_trackers"><a href="#trackers"><img src="images/buttons/info_trackers.png" alt="Trackers"/></a></div> 71 72 <div class="inspector_tab" id="inspector_tab_files"><a href="#files"><img src="images/buttons/info_files.png" alt="Files"/></a></div> 72 73 </div> … … 173 174 </div><!-- class="inspector_group"--> 174 175 </div><!-- id="inspector_tab_activity_container" --> 176 177 <div style="display:none;" class="inspector_container" id="inspector_tab_trackers_container"> 178 <div id="inspector_trackers_list"> 179 </div> 180 </div><!-- id="inspector_tab_trackers_container" --> 175 181 176 182 <div style="display:none;" class="inspector_container" id="inspector_tab_files_container"> -
trunk/web/javascript/torrent.js
r9741 r10050 33 33 'haveUnchecked', 'haveValid', 'leftUntilDone', 'metadataPercentComplete', 'peersConnected', 34 34 'peersGettingFromUs', 'peersSendingToUs', 'rateDownload', 'rateUpload', 35 'recheckProgress', 'sizeWhenDone', 'status', 35 'recheckProgress', 'sizeWhenDone', 'status', 'trackerStats', 36 36 'uploadedEver', 'uploadRatio', 'seedRatioLimit', 'seedRatioMode', 'downloadDir' ] 37 37 … … 55 55 this._name = data.name; 56 56 this._name_lc = this._name.toLowerCase( ); 57 this._trackerStats = this.buildTrackerStats(data.trackerStats); 57 58 this._file_model = [ ]; 58 59 this._file_view = [ ]; … … 153 154 }, 154 155 156 buildTrackerStats: function(trackerStats) { 157 result = []; 158 for( var i=0, tracker; tracker=trackerStats[i]; ++i ) { 159 tier = result[tracker.tier - 1] || []; 160 tier[tier.length] = { 161 'host': tracker.host, 162 'seederCount': tracker.seederCount, 163 'leecherCount': tracker.leecherCount, 164 'downloadCount': tracker.downloadCount 165 }; 166 result[tracker.tier - 1] = tier; 167 } 168 return result; 169 }, 170 155 171 /*-------------------------------------------- 156 172 * … … 208 224 } 209 225 }, 226 trackerStats: function() { return this._trackerStats; }, 210 227 uploadSpeed: function() { return this._upload_speed; }, 211 228 uploadTotal: function() { return this._upload_total; }, … … 334 351 this._error_string = data.errorString; 335 352 this._eta = data.eta; 353 this._trackerStats = this.buildTrackerStats(data.trackerStats); 336 354 this._state = data.status; 337 355 this._download_dir = data.downloadDir; -
trunk/web/javascript/transmission.js
r9940 r10050 76 76 this._torrent_list = $('#torrent_list')[0]; 77 77 this._inspector_file_list = $('#inspector_file_list')[0]; 78 this._inspector_trackers_list = $('#inspector_trackers_list')[0]; 78 79 this._inspector_tab_files = $('#inspector_tab_files')[0]; 79 80 this._toolbar_buttons = $('#torrent_global_menu ul li'); … … 683 684 684 685 this.updateVisibleFileLists(); 686 this.updateTrackersLists(); 685 687 }, 686 688 … … 1086 1088 setInnerHTML( tab.error, na ); 1087 1089 this.updateVisibleFileLists(); 1090 this.updateTrackersLists(); 1088 1091 $("#torrent_inspector_size, .inspector_row > div:contains('N/A')").css('color', '#666'); 1089 1092 return; … … 1160 1163 setInnerHTML( tab.error, error ); 1161 1164 1165 this.updateTrackersLists(); 1162 1166 $(".inspector_row > div:contains('N/A')").css('color', '#666'); 1163 1167 this.updateVisibleFileLists(); … … 1182 1186 } 1183 1187 } 1188 }, 1189 1190 updateTrackersLists: function() { 1191 // By building up the HTML as as string, then have the browser 1192 // turn this into a DOM tree, this is a fast operation. 1193 var html = ''; 1194 var na = 'N/A'; 1195 var torrents = this.getSelectedTorrents( ); 1196 if( $(this._inspector_trackers_list).is(':visible') && torrents.length == 1 ) { 1197 for( var i=0, tier; tier=torrents[0]._trackerStats[i]; ++i ) { 1198 html += '<div class="inspector_group"><div class="inspector_group_label">'; 1199 html += 'Tier ' + (i + 1) + '</div><ul class="tier_list">'; 1200 for( var j=0, tracker; tracker=tier[j]; ++j ) { 1201 var parity = ((j+1) % 2 == 0 ? 'even' : 'odd'); 1202 html += '<li class="inspector_tracker_entry ' + parity + '"><div class="tracker_host">' 1203 html += tracker.host + '</div><table class="tracker_stats">'; 1204 html += '<tr><th>Seeders:</th><td>' + (tracker.seederCount > -1 ? tracker.seederCount : na) + '</td></tr>'; 1205 html += '<tr><th>Leechers:</th><td>' + (tracker.leecherCount > -1 ? tracker.leecherCount : na) + '</td></tr>'; 1206 html += '<tr><th>Downloads:</th><td>' + (tracker.downloadCount > -1 ? tracker.downloadCount : na)+ '</td></tr>'; 1207 html += '</table></li>'; 1208 } 1209 html += '</ul></div>'; 1210 } 1211 } 1212 setInnerHTML(this._inspector_trackers_list, html); 1184 1213 }, 1185 1214 -
trunk/web/stylesheets/common.css
r9808 r10050 550 550 } 551 551 div#inspector_tabs { 552 width: 189px;552 width: 243px; 553 553 margin: 0 auto; 554 554 padding-top: 10px; … … 592 592 padding-top: 10px; 593 593 width: 230px; /* inspector_container_width==330 - inspector_label_width==100 */ 594 } 595 596 /* Trackers Inspector Tab */ 597 #inspector_trackers_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_trackers_list > div.inspector_group { 606 padding-bottom: 0; 607 margin-bottom: 0; 608 } 609 610 ul.tier_list { 611 width: 100%; 612 margin: 10px 0 0 0; 613 padding-left: 0px; 614 text-align: left; 615 display: block; 616 cursor: default; 617 list-style-type: none; 618 list-style: none; 619 list-style-image: none; 620 clear: both; 621 } 622 .tier_list table{ 623 margin-left: 15px; 624 color: #666; 625 } 626 .tier_list th{ 627 text-align: right; 628 } 629 630 li.inspector_tracker_entry { 631 padding: 3px 0 3px 2px; 632 display: block; 633 } 634 635 li.inspector_tracker_entry.odd { 636 background-color: #EEEEEE; 637 } 638 div.tracker_host { 639 font-size: 1.2em; 640 font-weight: bold; 641 color: #222; 594 642 } 595 643 -
trunk/web/stylesheets/iphone.css
r9983 r10050 591 591 } 592 592 div#inspector_tabs { 593 width: 189px;593 width: 243px; 594 594 margin: 0 auto; 595 595 padding-top: 10px; … … 633 633 padding-top: 10px; 634 634 width: 230px; /* inspector_container_width==330 - inspector_label_width==100 */ 635 } 636 637 /* Trackers Inspector Tab */ 638 #inspector_trackers_list { 639 padding: 0 0 0 0; 640 margin: 0 0 0 0; 641 text-align: left; 642 cursor: default; 643 overflow: hidden; 644 } 645 #inspector_trackers_list > div.inspector_group { 646 padding-bottom: 0; 647 margin-bottom: 0; 648 } 649 ul.tier_list { 650 width: 100%; 651 margin: 10px 0 0 0; 652 padding-left: 0px; 653 text-align: left; 654 display: block; 655 cursor: default; 656 list-style-type: none; 657 list-style: none; 658 list-style-image: none; 659 clear: both; 660 } 661 .tier_list table{ 662 margin-left: 15px; 663 color: #666; 664 } 665 .tier_list th{ 666 text-align: right; 667 } 668 li.inspector_tracker_entry { 669 padding: 3px 0 3px 2px; 670 display: block; 671 } 672 li.inspector_tracker_entry.odd { 673 background-color: #EEEEEE; 674 } 675 div.tracker_host { 676 font-size: 1.2em; 677 font-weight: bold; 678 color: #222; 635 679 } 636 680
Note: See TracChangeset
for help on using the changeset viewer.