Changeset 10114


Ignore:
Timestamp:
Feb 6, 2010, 4:43:48 PM (12 years ago)
Author:
charles
Message:

(trunk web) #2772 "Even after a magnet link gets metainfo, the Web GUI doesn't use that metainfo" -- fixed in trunk for 1.90

Location:
trunk/web/javascript
Files:
3 edited

Legend:

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

    r10061 r10114  
    3434
    3535
    36 Torrent._StaticFields = [ 'addedDate', 'comment', 'creator', 'dateCreated',
    37                 'hashString', 'id', 'isPrivate', 'name', 'totalSize', 'pieceCount', 'pieceSize' ]
     36Torrent._StaticFields = [ 'hashString', 'id' ]
     37
     38Torrent._MetaDataFields = [ 'addedDate', 'comment', 'creator', 'dateCreated',
     39                'isPrivate', 'name', 'totalSize', 'pieceCount', 'pieceSize' ]
     40
    3841Torrent._DynamicFields = [ 'downloadedEver', 'error', 'errorString', 'eta',
    3942    'haveUnchecked', 'haveValid', 'leftUntilDone', 'metadataPercentComplete', 'peersConnected',
     
    4447Torrent.prototype =
    4548{
     49        initMetaData: function( data ) {
     50                this._date          = data.addedDate;
     51                this._comment       = data.comment;
     52                this._creator       = data.creator;
     53                this._creator_date  = data.dateCreated;
     54                this._is_private    = data.isPrivate;
     55                this._name          = data.name;
     56                this._name_lc       = this._name.toLowerCase( );
     57                this._size          = data.totalSize;
     58                this._pieceCount    = data.pieceCount;
     59                this._pieceSize     = data.pieceSize;
     60
     61                if( data.files ) {
     62                        for( var i=0, row; row=data.files[i]; ++i ) {
     63                                this._file_model[i] = {
     64                                        'index': i,
     65                                        'torrent': this,
     66                                        'length': row.length,
     67                                        'name': row.name
     68                                };
     69                        }
     70                }
     71        },
     72
    4673        /*
    4774         * Constructor
     
    4976        initialize: function( transferListParent, fileListParent, controller, data) {
    5077                this._id            = data.id;
    51                 this._is_private    = data.isPrivate;
    5278                this._hashString    = data.hashString;
    53                 this._date          = data.addedDate;
    54                 this._size          = data.totalSize;
    55                 this._pieceCount    = data.pieceCount;
    56                 this._pieceSize     = data.pieceSize;
    57                 this._comment       = data.comment;
    58                 this._creator       = data.creator;
    59                 this._creator_date  = data.dateCreated;
    6079                this._sizeWhenDone  = data.sizeWhenDone;
    61                 this._name          = data.name;
    62                 this._name_lc       = this._name.toLowerCase( );
    6380                this._trackerStats  = this.buildTrackerStats(data.trackerStats);
    6481                this._file_model    = [ ];
    6582                this._file_view     = [ ];
     83                this.initMetaData( data );
    6684
    6785                // Create a new <li> element
     
    129147
    130148                this.initializeTorrentFilesInspectorGroup( fileListParent );
    131 
    132                 if( data.files ) {
    133                         for( var i=0, row; row=data.files[i]; ++i ) {
    134                                 this._file_model[i] = {
    135                                         'index': i,
    136                                         'torrent': this,
    137                                         'length': row.length,
    138                                         'name': row.name
    139                                 };
    140                         }
    141                 }
    142149
    143150                // Update all the labels etc
     
    342349         *
    343350         *--------------------------------------------*/
     351
     352        refreshMetaData: function(data) {
     353                this.initMetaData( data );
     354                this.ensureFileListExists();
     355                this.refreshFileView();
     356                this.refreshHTML( );
     357        },
    344358       
    345359        refresh: function(data) {
     
    351365         * Refresh display
    352366         */
    353         refreshData: function(data) {
     367        refreshData: function(data)
     368        {
     369                if( this.needsMetaData() && ( data.metadataPercentComplete >= 1 ) )
     370                        transmission.refreshMetaData( [ this._id ] );
     371
    354372                this._completed               = data.haveUnchecked + data.haveValid;
    355373                this._verified                = data.haveValid;
  • trunk/web/javascript/transmission.js

    r10061 r10114  
    13591359        },
    13601360
     1361        refreshMetaData: function(ids) {
     1362                var tr = this;
     1363                this.remote.getMetaDataFor(ids, function(active, removed){ tr.updateMetaData(active); });
     1364        },
     1365
     1366        updateMetaData: function( torrents )
     1367        {
     1368                var tr = this;
     1369                var refresh_files_for = [ ];
     1370                jQuery.each( torrents, function( ) {
     1371                        var t = tr._torrents[ this.id ];
     1372                        if( t ) {
     1373                                t.refreshMetaData( this );
     1374                                if( t.isSelected( ) )
     1375                                        refresh_files_for.push( t.id( ) );
     1376                        }
     1377                } );
     1378                if( refresh_files_for.length > 0 )
     1379                        tr.remote.loadTorrentFiles( refresh_files_for );
     1380        },
     1381
    13611382        refreshTorrents: function(ids) {
    13621383                var tr = this;
  • trunk/web/javascript/transmission.remote.js

    r9982 r10114  
    113113                        method: 'torrent-get',
    114114                        arguments: {
    115                         fields: Torrent._StaticFields.concat(Torrent._DynamicFields, [ 'files', 'fileStats' ])
     115                        fields: Torrent._StaticFields.concat( Torrent._MetaDataFields,
     116                                                              Torrent._DynamicFields,
     117                                                              [ 'files', 'fileStats' ] )
     118                        }
     119                };
     120
     121                if(torrent_ids)
     122                        o.arguments.ids = torrent_ids;
     123
     124                this.sendRequest( o, function(data){ callback(data.arguments.torrents)} );
     125        },
     126
     127        getMetaDataFor: function(torrent_ids, callback) {
     128                var o = {
     129                        method: 'torrent-get',
     130                        arguments: {
     131                        fields: Torrent._StaticFields.concat( Torrent._MetaDataFields,
     132                                                              [ 'files', 'fileStats' ] )
    116133                        }
    117134                };
Note: See TracChangeset for help on using the changeset viewer.