Changeset 12756


Ignore:
Timestamp:
Aug 26, 2011, 7:42:07 PM (10 years ago)
Author:
jordan
Message:

(trunk web) simplify the periodic RPC request for info on recently-changed torrents

File:
1 edited

Legend:

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

    r12755 r12756  
    134134                this.loadDaemonStats(async);
    135135                this.initializeAllTorrents();
    136 
    137                 this.togglePeriodicRefresh(true);
     136                this.refreshTorrents();
    138137                this.togglePeriodicSessionRefresh(true);
    139138
     
    647646                var tr = this;
    648647                var rate = parseInt ($('#prefs_form #refresh_rate')[0].value, 10);
    649                 if (rate != tr[Prefs._RefreshRate]) {
     648                if (rate != tr[Prefs._RefreshRate])
    650649                        tr.setPref (Prefs._RefreshRate, rate);
    651                         tr.togglePeriodicRefresh (true);
    652                 }
    653650
    654651                var up_bytes        = parseInt($('#prefs_form #upload_rate').val(), 10);
     
    715712                        interval = min;
    716713                return interval * 1000;
    717         },
    718 
    719         /* Turn the periodic ajax torrents refresh on & off */
    720         togglePeriodicRefresh: function (enabled) {
    721                 clearInterval (this._periodic_refresh);
    722                 delete this._periodic_refresh;
    723                 if (enabled) {
    724                         var tr = this;
    725                         var msec = this.getIntervalMsec(Prefs._RefreshRate, 3);
    726                         this._periodic_refresh = setInterval(function() {tr.refreshTorrents();}, msec);
    727                 }
    728714        },
    729715
     
    10881074        },
    10891075
    1090         refreshTorrents: function(ids) {
    1091                 if (!ids)
    1092                         ids = 'recently-active';
    1093                 var tr = this;
    1094                 this.remote.getTorrentStats(ids, function(a,b){tr.updateFromTorrentGet(a,b);});
     1076        refreshTorrents: function()
     1077        {
     1078                // send a request right now
     1079                var tr = this;
     1080                this.remote.getTorrentStats('recently-active', function(a,b){tr.updateFromTorrentGet(a,b);});
     1081
     1082                // schedule the next request
     1083                clearTimeout(this.refreshTorrentsTimeout);
     1084                this.refreshTorrentsTimeout = setTimeout(tr.refreshTorrents, tr[Prefs._RefreshRate]*1000);
    10951085        },
    10961086        initializeAllTorrents: function() {
     
    11541144        },
    11551145
    1156         deleteTorrents: function(torrent_ids)
    1157         {
    1158                 if (torrent_ids && torrent_ids.length)
     1146        deleteTorrents: function(ids)
     1147        {
     1148                if (ids && ids.length)
    11591149                {
    1160                         for (var i=0, id; id=torrent_ids[i]; ++i)
     1150                        for (var i=0, id; id=ids[i]; ++i)
    11611151                                delete this._torrents[id];
    11621152                        this.refilter();
     
    12091199                                args.dataType = 'xml';
    12101200                                args.iframe = true;
    1211                                 args.success = function() {
    1212                                         tr.refreshTorrents();
    1213                                         tr.togglePeriodicRefresh(true);
    1214                                 };
    1215                                 tr.togglePeriodicRefresh(false);
    12161201                                $('#torrent_upload_form').ajaxSubmit(args);
    12171202                        }
     
    12661251
    12671252        removeTorrents: function(torrents) {
    1268                 var torrent_ids = jQuery.map(torrents, function(t) { return t.getId(); });
    1269                 var tr = this;
    1270                 this.remote.removeTorrents(torrent_ids, function() { tr.refreshTorrents();});
     1253                var tr = this;
     1254                var ids = $.map(torrents, function(t) { return t.getId(); });
     1255                this.remote.removeTorrents(ids, function() { tr.refreshTorrents();});
    12711256        },
    12721257
     
    12931278        },
    12941279        startTorrents: function(torrents, force) {
    1295                 var torrent_ids = jQuery.map(torrents, function(t) { return t.getId(); });
    1296                 var tr = this;
    1297                 this.remote.startTorrents(torrent_ids, force, function() { tr.refreshTorrents(torrent_ids); });
     1280                var tr = this;
     1281                var ids = $.map(torrents, function(t) { return t.getId(); });
     1282                this.remote.startTorrents(ids, force, function() { tr.refreshTorrents(); });
    12981283        },
    12991284        verifyTorrent: function(torrent) {
     
    13021287        verifyTorrents: function(torrents) {
    13031288                var tr = this;
    1304                 var torrent_ids = jQuery.map(torrents, function(t) { return t.getId(); });
    1305                 this.remote.verifyTorrents(torrent_ids, function() { tr.refreshTorrents(torrent_ids); });
     1289                var ids = $.map(torrents, function(t) { return t.getId(); });
     1290                this.remote.verifyTorrents(ids, function() { tr.refreshTorrents(); });
    13061291        },
    13071292
     
    13111296        reannounceTorrents: function(torrents) {
    13121297                var tr = this;
    1313                 var torrent_ids = jQuery.map(torrents, function(t) { return t.getId(); });
    1314                 this.remote.reannounceTorrents(torrent_ids, function() { tr.refreshTorrents(torrent_ids); });
     1298                var ids = $.map(torrents, function(t) { return t.getId(); });
     1299                this.remote.reannounceTorrents(ids, function() { tr.refreshTorrents(); });
    13151300        },
    13161301
     
    13251310        },
    13261311        stopTorrents: function(torrents) {
    1327                 var torrent_ids = jQuery.map(torrents, function(t) { return t.getId(); });
    1328                 var tr = this;
    1329                 this.remote.stopTorrents(torrent_ids,   function() { tr.refreshTorrents(torrent_ids);});
     1312                var tr = this;
     1313                var ids = $.map(torrents, function(t) { return t.getId(); });
     1314                this.remote.stopTorrents(ids,   function() { tr.refreshTorrents();});
    13301315        },
    13311316        changeFileCommand: function(command, rows) {
     
    13511336        moveTop: function() {
    13521337                var tr = this;
    1353                 var torrent_ids = this.getSelectedTorrentIds();
    1354                 this.remote.moveTorrentsToTop(torrent_ids, function() { tr.refreshTorrents(torrent_ids);});
     1338                var ids = this.getSelectedTorrentIds();
     1339                this.remote.moveTorrentsToTop(ids, function() { tr.refreshTorrents();});
    13551340        },
    13561341        moveUp: function() {
    13571342                var tr = this;
    1358                 var torrent_ids = this.getSelectedTorrentIds();
    1359                 this.remote.moveTorrentsUp(torrent_ids, function() { tr.refreshTorrents(torrent_ids);});
     1343                var ids = this.getSelectedTorrentIds();
     1344                this.remote.moveTorrentsUp(ids, function() { tr.refreshTorrents();});
    13601345        },
    13611346        moveDown: function() {
    13621347                var tr = this;
    1363                 var torrent_ids = this.getSelectedTorrentIds();
    1364                 this.remote.moveTorrentsDown(torrent_ids, function() { tr.refreshTorrents(torrent_ids);});
     1348                var ids = this.getSelectedTorrentIds();
     1349                this.remote.moveTorrentsDown(ids, function() { tr.refreshTorrents();});
    13651350        },
    13661351        moveBottom: function() {
    13671352                var tr = this;
    1368                 var torrent_ids = this.getSelectedTorrentIds();
    1369                 this.remote.moveTorrentsToBottom(torrent_ids, function() { tr.refreshTorrents(torrent_ids);});
     1353                var ids = this.getSelectedTorrentIds();
     1354                this.remote.moveTorrentsToBottom(ids, function() { tr.refreshTorrents();});
    13701355        },
    13711356
Note: See TracChangeset for help on using the changeset viewer.