1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-02-20 21:26:53 +00:00

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

This commit is contained in:
Jordan Lee 2011-08-26 19:42:07 +00:00
parent c113975ec9
commit 57962e7a60

View file

@ -133,8 +133,7 @@ Transmission.prototype =
this.loadDaemonPrefs(async); this.loadDaemonPrefs(async);
this.loadDaemonStats(async); this.loadDaemonStats(async);
this.initializeAllTorrents(); this.initializeAllTorrents();
this.refreshTorrents();
this.togglePeriodicRefresh(true);
this.togglePeriodicSessionRefresh(true); this.togglePeriodicSessionRefresh(true);
this.filterSetup(); this.filterSetup();
@ -646,10 +645,8 @@ Transmission.prototype =
// handle the clutch prefs locally // handle the clutch prefs locally
var tr = this; var tr = this;
var rate = parseInt ($('#prefs_form #refresh_rate')[0].value, 10); var rate = parseInt ($('#prefs_form #refresh_rate')[0].value, 10);
if (rate != tr[Prefs._RefreshRate]) { if (rate != tr[Prefs._RefreshRate])
tr.setPref (Prefs._RefreshRate, rate); tr.setPref (Prefs._RefreshRate, rate);
tr.togglePeriodicRefresh (true);
}
var up_bytes = parseInt($('#prefs_form #upload_rate').val(), 10); var up_bytes = parseInt($('#prefs_form #upload_rate').val(), 10);
var dn_bytes = parseInt($('#prefs_form #download_rate').val(), 10); var dn_bytes = parseInt($('#prefs_form #download_rate').val(), 10);
@ -716,17 +713,6 @@ Transmission.prototype =
return interval * 1000; return interval * 1000;
}, },
/* Turn the periodic ajax torrents refresh on & off */
togglePeriodicRefresh: function (enabled) {
clearInterval (this._periodic_refresh);
delete this._periodic_refresh;
if (enabled) {
var tr = this;
var msec = this.getIntervalMsec(Prefs._RefreshRate, 3);
this._periodic_refresh = setInterval(function() {tr.refreshTorrents();}, msec);
}
},
/* Turn the periodic ajax session refresh on & off */ /* Turn the periodic ajax session refresh on & off */
togglePeriodicSessionRefresh: function(enabled) { togglePeriodicSessionRefresh: function(enabled) {
clearInterval(this._periodic_session_refresh); clearInterval(this._periodic_session_refresh);
@ -1087,11 +1073,15 @@ Transmission.prototype =
} }
}, },
refreshTorrents: function(ids) { refreshTorrents: function()
if (!ids) {
ids = 'recently-active'; // send a request right now
var tr = this; var tr = this;
this.remote.getTorrentStats(ids, function(a,b){tr.updateFromTorrentGet(a,b);}); this.remote.getTorrentStats('recently-active', function(a,b){tr.updateFromTorrentGet(a,b);});
// schedule the next request
clearTimeout(this.refreshTorrentsTimeout);
this.refreshTorrentsTimeout = setTimeout(tr.refreshTorrents, tr[Prefs._RefreshRate]*1000);
}, },
initializeAllTorrents: function() { initializeAllTorrents: function() {
var tr = this; var tr = this;
@ -1153,11 +1143,11 @@ Transmission.prototype =
this._last_torrent_clicked = row.getTorrentId(); this._last_torrent_clicked = row.getTorrentId();
}, },
deleteTorrents: function(torrent_ids) deleteTorrents: function(ids)
{ {
if (torrent_ids && torrent_ids.length) if (ids && ids.length)
{ {
for (var i=0, id; id=torrent_ids[i]; ++i) for (var i=0, id; id=ids[i]; ++i)
delete this._torrents[id]; delete this._torrents[id];
this.refilter(); this.refilter();
} }
@ -1208,11 +1198,6 @@ Transmission.prototype =
args.data = { 'X-Transmission-Session-Id' : tr.remote._token }; args.data = { 'X-Transmission-Session-Id' : tr.remote._token };
args.dataType = 'xml'; args.dataType = 'xml';
args.iframe = true; args.iframe = true;
args.success = function() {
tr.refreshTorrents();
tr.togglePeriodicRefresh(true);
};
tr.togglePeriodicRefresh(false);
$('#torrent_upload_form').ajaxSubmit(args); $('#torrent_upload_form').ajaxSubmit(args);
} }
} }
@ -1265,9 +1250,9 @@ Transmission.prototype =
}, },
removeTorrents: function(torrents) { removeTorrents: function(torrents) {
var torrent_ids = jQuery.map(torrents, function(t) { return t.getId(); });
var tr = this; var tr = this;
this.remote.removeTorrents(torrent_ids, function() { tr.refreshTorrents();}); var ids = $.map(torrents, function(t) { return t.getId(); });
this.remote.removeTorrents(ids, function() { tr.refreshTorrents();});
}, },
removeTorrentsAndData: function(torrents) { removeTorrentsAndData: function(torrents) {
@ -1292,17 +1277,17 @@ Transmission.prototype =
this.startTorrents([ torrent ], false); this.startTorrents([ torrent ], false);
}, },
startTorrents: function(torrents, force) { startTorrents: function(torrents, force) {
var torrent_ids = jQuery.map(torrents, function(t) { return t.getId(); });
var tr = this; var tr = this;
this.remote.startTorrents(torrent_ids, force, function() { tr.refreshTorrents(torrent_ids); }); var ids = $.map(torrents, function(t) { return t.getId(); });
this.remote.startTorrents(ids, force, function() { tr.refreshTorrents(); });
}, },
verifyTorrent: function(torrent) { verifyTorrent: function(torrent) {
this.verifyTorrents([ torrent ]); this.verifyTorrents([ torrent ]);
}, },
verifyTorrents: function(torrents) { verifyTorrents: function(torrents) {
var tr = this; var tr = this;
var torrent_ids = jQuery.map(torrents, function(t) { return t.getId(); }); var ids = $.map(torrents, function(t) { return t.getId(); });
this.remote.verifyTorrents(torrent_ids, function() { tr.refreshTorrents(torrent_ids); }); this.remote.verifyTorrents(ids, function() { tr.refreshTorrents(); });
}, },
reannounceTorrent: function(torrent) { reannounceTorrent: function(torrent) {
@ -1310,8 +1295,8 @@ Transmission.prototype =
}, },
reannounceTorrents: function(torrents) { reannounceTorrents: function(torrents) {
var tr = this; var tr = this;
var torrent_ids = jQuery.map(torrents, function(t) { return t.getId(); }); var ids = $.map(torrents, function(t) { return t.getId(); });
this.remote.reannounceTorrents(torrent_ids, function() { tr.refreshTorrents(torrent_ids); }); this.remote.reannounceTorrents(ids, function() { tr.refreshTorrents(); });
}, },
stopSelectedTorrents: function() { stopSelectedTorrents: function() {
@ -1324,9 +1309,9 @@ Transmission.prototype =
this.stopTorrents([ torrent ]); this.stopTorrents([ torrent ]);
}, },
stopTorrents: function(torrents) { stopTorrents: function(torrents) {
var torrent_ids = jQuery.map(torrents, function(t) { return t.getId(); });
var tr = this; var tr = this;
this.remote.stopTorrents(torrent_ids, function() { tr.refreshTorrents(torrent_ids);}); var ids = $.map(torrents, function(t) { return t.getId(); });
this.remote.stopTorrents(ids, function() { tr.refreshTorrents();});
}, },
changeFileCommand: function(command, rows) { changeFileCommand: function(command, rows) {
this.remote.changeFileCommand(command, rows); this.remote.changeFileCommand(command, rows);
@ -1350,23 +1335,23 @@ Transmission.prototype =
// Queue // Queue
moveTop: function() { moveTop: function() {
var tr = this; var tr = this;
var torrent_ids = this.getSelectedTorrentIds(); var ids = this.getSelectedTorrentIds();
this.remote.moveTorrentsToTop(torrent_ids, function() { tr.refreshTorrents(torrent_ids);}); this.remote.moveTorrentsToTop(ids, function() { tr.refreshTorrents();});
}, },
moveUp: function() { moveUp: function() {
var tr = this; var tr = this;
var torrent_ids = this.getSelectedTorrentIds(); var ids = this.getSelectedTorrentIds();
this.remote.moveTorrentsUp(torrent_ids, function() { tr.refreshTorrents(torrent_ids);}); this.remote.moveTorrentsUp(ids, function() { tr.refreshTorrents();});
}, },
moveDown: function() { moveDown: function() {
var tr = this; var tr = this;
var torrent_ids = this.getSelectedTorrentIds(); var ids = this.getSelectedTorrentIds();
this.remote.moveTorrentsDown(torrent_ids, function() { tr.refreshTorrents(torrent_ids);}); this.remote.moveTorrentsDown(ids, function() { tr.refreshTorrents();});
}, },
moveBottom: function() { moveBottom: function() {
var tr = this; var tr = this;
var torrent_ids = this.getSelectedTorrentIds(); var ids = this.getSelectedTorrentIds();
this.remote.moveTorrentsToBottom(torrent_ids, function() { tr.refreshTorrents(torrent_ids);}); this.remote.moveTorrentsToBottom(ids, function() { tr.refreshTorrents();});
}, },