- Optimize Web UI to use less CPU

* Do not refresh filtered torrents since they are not visible
  * Do not refresh torrent name in list since it connot change
- Fixed unitialized torrent status when it was added to the list (it did not cause any issue but it was not optimal)
This commit is contained in:
Christophe Dumez 2009-11-26 11:01:21 +00:00
parent d99dc65b19
commit d22e932ef7
2 changed files with 19 additions and 17 deletions

View file

@ -135,7 +135,7 @@ window.addEvent('domready', function(){
// New unfinished torrent
torrent_hashes[torrent_hashes.length] = event.hash;
//alert("Inserting row");
myTable.insertRow(event.hash, row);
myTable.insertRow(event.hash, row, event.state);
} else {
// Update torrent data
myTable.updateRow(event.hash, row, event.state);

View file

@ -94,36 +94,36 @@ var dynamicTable = new Class ({
switch(this.filter) {
case 'all':
tr.removeClass("invisible");
return;
break;
case 'downloading':
if(status == "downloading" || status == "stalledDL" || status == "checkingDL" || status == "pausedDL" || status == "queuedDL") {
tr.removeClass("invisible");
} else {
tr.addClass("invisible");
}
return;
break;
case 'completed':
if(status == "seeding" || status == "stalledUP" || status == "checkingUP" || status == "pausedUP" || status == "queuedUP") {
tr.removeClass("invisible");
} else {
tr.addClass("invisible");
}
return;
break;
case 'active':
if(status == "downloading" || status == "seeding") {
tr.removeClass("invisible");
} else {
tr.addClass("invisible");
}
return;
break;
case 'inactive':
if(status != "downloading" && status != "seeding") {
tr.removeClass("invisible");
} else {
tr.addClass("invisible");
}
return;
}
return !tr.hasClass('invisible');
},
insertRow: function(id, row, status){
@ -257,19 +257,21 @@ var dynamicTable = new Class ({
}
var tr = this.rows.get(id);
// Apply filter
this.applyFilterOnRow(tr, status);
var tds = tr.getElements('td');
for(var i=0; i<row.length; i++) {
if(i==this.progressIndex) {
$('pb_'+id).setValue(row[i].toFloat());
} else {
if(i==0) {
tds[i].getChildren('img')[0].set('src', row[i]);
if(this.applyFilterOnRow(tr, status)) {
var tds = tr.getElements('td');
for(var i=0; i<row.length; i++) {
if(i==1) continue; // Do not refresh name
if(i==this.progressIndex) {
$('pb_'+id).setValue(row[i].toFloat());
} else {
tds[i].set('html', row[i]);
if(i==0) {
tds[i].getChildren('img')[0].set('src', row[i]);
} else {
tds[i].set('html', row[i]);
}
}
}
};
};
}
return true;
},