Changeset 10061


Ignore:
Timestamp:
Feb 1, 2010, 1:08:17 AM (12 years ago)
Author:
kjg
Message:

(trunk web) mjpieters' patch for adding announce and scrape status to the trackers tab with some code cleanup and style adjustments

Location:
trunk/web
Files:
4 edited

Legend:

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

    r10050 r10061  
    2727Torrent._ErrTrackerError       = 2;
    2828Torrent._ErrLocalError         = 3;
     29
     30Torrent._TrackerInactive         = 0;
     31Torrent._TrackerWaiting          = 1;
     32Torrent._TrackerQueued           = 2;
     33Torrent._TrackerActive           = 3;
     34
    2935
    3036Torrent._StaticFields = [ 'addedDate', 'comment', 'creator', 'dateCreated',
     
    160166                        tier[tier.length] = {
    161167                                'host': tracker.host,
     168                                'announce': tracker.announce,
     169                                'hasAnnounced': tracker.hasAnnounced,
     170                                'lastAnnounceTime': tracker.lastAnnounceTime,
     171                                'lastAnnounceSucceeded': tracker.lastAnnounceSucceeded,
     172                                'lastAnnounceResult': tracker.lastAnnounceResult,
     173                                'lastAnnouncePeerCount': tracker.lastAnnouncePeerCount,
     174                                'announceState': tracker.announceState,
     175                                'nextAnnounceTime': tracker.nextAnnounceTime,
     176                                'isBackup': tracker.isBackup,
     177                                'hasScraped': tracker.hasScraped,
     178                                'lastScrapeTime': tracker.lastScrapeTime,
     179                                'lastScrapeSucceeded': tracker.lastScrapeSucceeded,
     180                                'lastScrapeResult': tracker.lastScrapeResult,
    162181                                'seederCount': tracker.seederCount,
    163182                                'leecherCount': tracker.leecherCount,
  • trunk/web/javascript/transmission.js

    r10050 r10061  
    11911191                // By building up the HTML as as string, then have the browser
    11921192                // turn this into a DOM tree, this is a fast operation.
     1193                var tr = this;
    11931194                var html = '';
    11941195                var na = 'N/A';
     
    11991200                                html += 'Tier ' + (i + 1) + '</div><ul class="tier_list">';
    12001201                                for( var j=0, tracker; tracker=tier[j]; ++j ) {
     1202                                        var lastAnnounceStatusHash = tr.lastAnnounceStatus(tracker);
     1203                                        var announceState = tr.announceState(tracker);
     1204                                        var lastScrapeStatusHash = tr.lastScrapeStatus(tracker);
     1205
     1206                                        // Display construction
    12011207                                        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">';
     1208                                        html += '<li class="inspector_tracker_entry ' + parity + '"><div class="tracker_host" title="' + tracker.announce + '">';
     1209                                        html += tracker.host + '</div>';
     1210                                        html += '<div class="tracker_activity">';
     1211                                        html += '<div>' + lastAnnounceStatusHash['label'] + ': ' + lastAnnounceStatusHash['value'] + '</div>';
     1212                                        html += '<div>' + announceState + '</div>';
     1213                                        html += '<div>' + lastScrapeStatusHash['label'] + ': ' + lastScrapeStatusHash['value'] + '</div>';
     1214                                        html += '</div><table class="tracker_stats">';
    12041215                                        html += '<tr><th>Seeders:</th><td>' + (tracker.seederCount > -1 ? tracker.seederCount : na) + '</td></tr>';
    12051216                                        html += '<tr><th>Leechers:</th><td>' + (tracker.leecherCount > -1 ? tracker.leecherCount : na) + '</td></tr>';
     
    12111222                }
    12121223                setInnerHTML(this._inspector_trackers_list, html);
     1224        },
     1225
     1226        lastAnnounceStatus: function(tracker){
     1227                var lastAnnounceLabel = 'Last Announce';
     1228                var lastAnnounce = 'N/A';
     1229                if (tracker.hasAnnounced) {
     1230                        var lastAnnounceTime = Math.formatTimestamp(tracker.lastAnnounceTime);
     1231                        if (tracker.lastAnnounceSucceeded) {
     1232                                lastAnnounce = lastAnnounceTime;
     1233                                lastAnnounce += ' (got ' + tracker.lastAnnouncePeerCount + ' peer';
     1234                                if (tracker.lastAnnouncePeerCount != 1){ lastAnnounce += 's'; }
     1235                                lastAnnounce += ')';
     1236                        } else {
     1237                                lastAnnounceLabel = 'Announce error';
     1238                                lastAnnounce = (tracker.lastAnnounceResult ? tracker.lastAnnounceResult + ' - ' : '') + lastAnnounceTime;
     1239                        }
     1240                }
     1241                return {'label':lastAnnounceLabel, 'value':lastAnnounce};
     1242        },
     1243
     1244        announceState: function(tracker){
     1245                var announceState = '';
     1246                switch (tracker.announceState) {
     1247                        case Torrent._TrackerActive:
     1248                                announceState = 'Announce in progress';
     1249                                break;
     1250                        case Torrent._TrackerWaiting:
     1251                                var timeUntilAnnounce = tracker.nextAnnounceTime - ((new Date()).getTime() / 1000);
     1252                                if(timeUntilAnnounce < 0){
     1253                                        timeUntilAnnounce = 0;
     1254                                }
     1255                                announceState = 'Next announce in ' + Math.formatSeconds(timeUntilAnnounce);
     1256                                break;
     1257                        case Torrent._TrackerQueued:
     1258                                announceState = 'Announce is queued';
     1259                                break;
     1260                        case Torrent._TrackerInactive:
     1261                                announceState = tracker.isBackup ?
     1262                                        'Tracker will be used as a backup' :
     1263                                        'Announce not scheduled';
     1264                                break;
     1265                        default:
     1266                                announceState = 'unknown announce state: ' + tracker.announceState;
     1267                }
     1268                return announceState;
     1269        },
     1270
     1271        lastScrapeStatus: function(tracker){
     1272                var lastScrapeLabel = 'Last Scrape';
     1273                var lastScrape = 'N/A';
     1274                if (tracker.hasScraped) {
     1275                        var lastScrapeTime = Math.formatTimestamp(tracker.lastScrapeTime);
     1276                        if (tracker.lastScrapeSucceeded) {
     1277                                lastScrape = lastScrapeTime;
     1278                        } else {
     1279                                lastScrapeLabel = 'Scrape error';
     1280                                lastScrape = (tracker.lastScrapeResult ? tracker.lastScrapeResult + ' - ' : '') + lastScrapeTime;
     1281                        }
     1282                }
     1283                return {'label':lastScrapeLabel, 'value':lastScrape}
    12131284        },
    12141285
  • trunk/web/stylesheets/common.css

    r10050 r10061  
    620620        clear: both;
    621621}
     622.tier_list li{
     623        overflow: hidden;
     624}
     625.tier_list .tracker_activity{
     626        float: left;
     627        color: #666;
     628        width: 200px;
     629        display: table;
     630        margin-top: 1px;
     631}
     632.tier_list .tracker_activity div{
     633        padding: 2px;
     634}
    622635.tier_list table{
    623   margin-left: 15px;
    624   color: #666;
     636        float: right;
     637        color: #666;
    625638}
    626639.tier_list th{
    627   text-align: right;
     640        text-align: right;
    628641}
    629642
  • trunk/web/stylesheets/iphone.css

    r10050 r10061  
    643643        overflow: hidden;
    644644}
     645
    645646#inspector_trackers_list > div.inspector_group {
    646647        padding-bottom: 0;
    647648        margin-bottom: 0;
    648649}
     650
    649651ul.tier_list {
    650652        width: 100%;
     
    659661        clear: both;
    660662}
     663.tier_list li{
     664        overflow: hidden;
     665}
     666.tier_list .tracker_activity{
     667        float: left;
     668        color: #666;
     669        width: 200px;
     670        display: table;
     671        margin-top: 1px;
     672}
     673.tier_list .tracker_activity div{
     674        padding: 2px;
     675}
    661676.tier_list table{
    662   margin-left: 15px;
    663   color: #666;
     677        float: right;
     678        color: #666;
    664679}
    665680.tier_list th{
    666   text-align: right;
    667 }
     681        text-align: right;
     682}
     683
    668684li.inspector_tracker_entry {
    669685        padding: 3px 0 3px 2px;
    670686        display: block;
    671687}
     688
    672689li.inspector_tracker_entry.odd {
    673690        background-color: #EEEEEE;
Note: See TracChangeset for help on using the changeset viewer.