mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2026-01-01 21:28:07 -06:00
- started to remodel the UI to match the new qBT UI
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
*/
|
||||
|
||||
myTable = new dynamicTable();
|
||||
myTableUP = new dynamicTable();
|
||||
ajaxfn = function(){};
|
||||
|
||||
window.addEvent('domready', function(){
|
||||
MochaUI.Desktop = new MochaUI.Desktop();
|
||||
@@ -32,29 +32,27 @@ window.addEvent('domready', function(){
|
||||
'visibility': 'visible'
|
||||
});
|
||||
initializeWindows();
|
||||
// Tabs
|
||||
myTabs1 = new mootabs('myTabs', {
|
||||
width: '100%',
|
||||
height: '100%'
|
||||
});
|
||||
myTable.setup('myTable', 3);
|
||||
myTableUP.setup('myTableUP', -1);
|
||||
var r=0;
|
||||
var waiting=false;
|
||||
var stateToImg = function(state){
|
||||
switch (state)
|
||||
{
|
||||
case 'paused':
|
||||
case 'pausedUP':
|
||||
case 'pausedDL':
|
||||
return '<img src="images/skin/paused.png"/>';
|
||||
case 'seeding':
|
||||
case 'stalledUP':
|
||||
return '<img src="images/skin/seeding.png"/>';
|
||||
case 'checking':
|
||||
case 'checkingUP':
|
||||
case 'checkingDL':
|
||||
return '<img src="images/oxygen/run-build.png"/>';
|
||||
case 'downloading':
|
||||
return '<img src="images/skin/downloading.png"/>';
|
||||
case 'stalled':
|
||||
case 'stalledDL':
|
||||
return '<img src="images/skin/stalled.png"/>';
|
||||
case 'queued':
|
||||
case 'queuedUP':
|
||||
case 'queuedDL':
|
||||
return '<img src="images/oxygen/mail-queue.png"/>';
|
||||
default:
|
||||
return '<img src="images/skin/stalled.png"/>';
|
||||
@@ -90,33 +88,10 @@ window.addEvent('domready', function(){
|
||||
$('error_div').set('html', '');
|
||||
if(events){
|
||||
// Add new torrents or update them
|
||||
unfinished_hashes = myTable.getRowIds();
|
||||
finished_hashes = myTableUP.getRowIds();
|
||||
torrent_hashes = myTable.getRowIds();
|
||||
events_hashes = new Array();
|
||||
events.each(function(event){
|
||||
events_hashes[events_hashes.length] = event.hash;
|
||||
if(event.seed) {
|
||||
var row = new Array();
|
||||
row.length = 4;
|
||||
row[0] = stateToImg(event.state);
|
||||
row[1] = event.name;
|
||||
row[2] = fsize(event.size);
|
||||
row[3] = fspeed(event.upspeed);
|
||||
if(!finished_hashes.contains(event.hash)) {
|
||||
// New finished torrent
|
||||
finished_hashes[finished_hashes.length] = event.hash;
|
||||
myTableUP.insertRow(event.hash, row);
|
||||
if(unfinished_hashes.contains(event.hash)) {
|
||||
// Torrent used to be in unfinished list
|
||||
// Remove it
|
||||
myTable.removeRow(event.hash);
|
||||
unfinished_hashes.erase(event.hash);
|
||||
}
|
||||
} else {
|
||||
// Update torrent data
|
||||
myTableUP.updateRow(event.hash, row);
|
||||
}
|
||||
} else {
|
||||
var row = new Array();
|
||||
row.length = 6;
|
||||
row[0] = stateToImg(event.state);
|
||||
@@ -128,33 +103,21 @@ window.addEvent('domready', function(){
|
||||
row[6] = event.priority
|
||||
if(row[6] != -1)
|
||||
queueing_enabled = true;
|
||||
if(!unfinished_hashes.contains(event.hash)) {
|
||||
if(!torrent_hashes.contains(event.hash)) {
|
||||
// New unfinished torrent
|
||||
unfinished_hashes[unfinished_hashes.length] = event.hash;
|
||||
torrent_hashes[torrent_hashes.length] = event.hash;
|
||||
myTable.insertRow(event.hash, row);
|
||||
if(finished_hashes.contains(event.hash)) {
|
||||
// Torrent used to be in unfinished list
|
||||
// Remove it
|
||||
myTableUP.removeRow(event.hash);
|
||||
finished_hashes.erase(event.hash);
|
||||
}
|
||||
} else {
|
||||
// Update torrent data
|
||||
myTable.updateRow(event.hash, row);
|
||||
myTable.updateRow(event.hash, row, event.state);
|
||||
}
|
||||
}
|
||||
});
|
||||
// Remove deleted torrents
|
||||
unfinished_hashes.each(function(hash){
|
||||
torrent_hashes.each(function(hash){
|
||||
if(!events_hashes.contains(hash)) {
|
||||
myTable.removeRow(hash);
|
||||
}
|
||||
});
|
||||
finished_hashes.each(function(hash){
|
||||
if(!events_hashes.contains(hash)) {
|
||||
myTableUP.removeRow(hash);
|
||||
}
|
||||
});
|
||||
if(queueing_enabled) {
|
||||
$('queueingButtons').removeClass('invisible');
|
||||
myTable.showPriority();
|
||||
@@ -171,6 +134,11 @@ window.addEvent('domready', function(){
|
||||
};
|
||||
ajaxfn();
|
||||
// ajaxfn.periodical(5000);
|
||||
setFilter = function(f) {
|
||||
myTable.setFilter(f);
|
||||
ajaxfn();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// This runs when a person leaves your page.
|
||||
|
||||
@@ -42,6 +42,7 @@ var dynamicTable = new Class ({
|
||||
this.cur = new Array();
|
||||
this.priority_hidden = false;
|
||||
this.progressIndex = progressIndex;
|
||||
this.filter = 'all';
|
||||
},
|
||||
|
||||
altRow: function()
|
||||
@@ -66,6 +67,10 @@ var dynamicTable = new Class ({
|
||||
}.bind(this));
|
||||
this.priority_hidden = true;
|
||||
},
|
||||
|
||||
setFilter: function(f) {
|
||||
this.filter = f;
|
||||
},
|
||||
|
||||
showPriority: function(){
|
||||
if(!this.priority_hidden) return;
|
||||
@@ -77,14 +82,52 @@ var dynamicTable = new Class ({
|
||||
}.bind(this));
|
||||
this.priority_hidden = false;
|
||||
},
|
||||
|
||||
applyFilterOnRow: function(tr, status) {
|
||||
switch(this.filter) {
|
||||
case 'all':
|
||||
tr.removeClass("invisible");
|
||||
return;
|
||||
case 'downloading':
|
||||
if(status == "downloading" || status == "stalledDL" || status == "checkingDL" || status == "pausedDL" || status == "queuedDL") {
|
||||
tr.removeClass("invisible");
|
||||
} else {
|
||||
tr.addClass("invisible");
|
||||
}
|
||||
return;
|
||||
case 'completed':
|
||||
if(status == "seeding" || status == "stalledUP" || status == "checkingUP" || status == "pausedUP" || status == "queuedUP") {
|
||||
tr.removeClass("invisible");
|
||||
} else {
|
||||
tr.addClass("invisible");
|
||||
}
|
||||
return;
|
||||
case 'active':
|
||||
if(status == "downloading" || status == "seeding") {
|
||||
tr.removeClass("invisible");
|
||||
} else {
|
||||
tr.addClass("invisible");
|
||||
}
|
||||
return;
|
||||
case 'inactive':
|
||||
if(status != "downloading" && status != "seeding") {
|
||||
tr.removeClass("invisible");
|
||||
} else {
|
||||
tr.addClass("invisible");
|
||||
}
|
||||
return;
|
||||
}
|
||||
},
|
||||
|
||||
insertRow: function(id, row){
|
||||
insertRow: function(id, row, status){
|
||||
var tr = this.rows[id];
|
||||
if($defined(tr))
|
||||
return;
|
||||
//this.removeRow(id);
|
||||
var tr = new Element('tr');
|
||||
this.rows[id] = tr;
|
||||
// Apply filter
|
||||
this.applyFilterOnRow(tr, status);
|
||||
for(var i=0; i<row.length; i++)
|
||||
{
|
||||
var td = new Element('td');
|
||||
@@ -181,10 +224,12 @@ var dynamicTable = new Class ({
|
||||
}
|
||||
},
|
||||
|
||||
updateRow: function(id, row){
|
||||
updateRow: function(id, row, status){
|
||||
var tr = this.rows[id];
|
||||
if($defined(tr))
|
||||
{
|
||||
// Apply filter
|
||||
this.applyFilterOnRow(tr, status);
|
||||
var tds = tr.getElements('td');
|
||||
for(var i=0; i<row.length; i++) {
|
||||
if(i==this.progressIndex) {
|
||||
|
||||
@@ -63,11 +63,7 @@ initializeWindows = function(){
|
||||
|
||||
addClickEvent('delete', function(e){
|
||||
new Event(e).stop();
|
||||
if($("Tab1").hasClass('active')) {
|
||||
var h = myTable.selectedIds();
|
||||
} else {
|
||||
var h = myTableUP.selectedIds();
|
||||
}
|
||||
var h = myTable.selectedIds();
|
||||
if(h.length && confirm('Are you sure you want to delete the selected item in download list?')) {
|
||||
h.each(function(item, index){
|
||||
new Request({url: '/command/delete', method: 'post', data: {hash: item}}).send();
|
||||
@@ -79,11 +75,7 @@ initializeWindows = function(){
|
||||
|
||||
addClickEvent('deletePerm', function(e){
|
||||
new Event(e).stop();
|
||||
if($("Tab1").hasClass('active')) {
|
||||
var h = myTable.selectedIds();
|
||||
} else {
|
||||
var h = myTableUP.selectedIds();
|
||||
}
|
||||
var h = myTable.selectedIds();
|
||||
if(h.length && confirm('Are you sure you want to delete from hard drive the selected item in download list?')) {
|
||||
h.each(function(item, index){
|
||||
new Request({url: '/command/deletePerm', method: 'post', data: {hash: item}}).send();
|
||||
@@ -94,13 +86,7 @@ initializeWindows = function(){
|
||||
['pause','resume','decreasePrio','increasePrio','recheck'].each(function(item) {
|
||||
addClickEvent(item, function(e){
|
||||
new Event(e).stop();
|
||||
if($("Tab1").hasClass('active')) {
|
||||
var h = myTable.selectedIds();
|
||||
} else {
|
||||
if(item=='decreasePrio' || item=='increasePrio')
|
||||
return;
|
||||
var h = myTableUP.selectedIds();
|
||||
}
|
||||
var h = myTable.selectedIds();
|
||||
if(h.length){
|
||||
h.each(function(hash, index){
|
||||
new Request({url: '/command/'+item, method: 'post', data: {hash: hash}}).send();
|
||||
|
||||
Reference in New Issue
Block a user