move over to a more event driven style
This commit is contained in:
parent
9e19ae79c8
commit
ea4f734863
|
@ -1,4 +1,71 @@
|
||||||
Deluge.ToolBar = new Ext.Toolbar({
|
Deluge.ToolBar = {
|
||||||
|
onConnect: function() {
|
||||||
|
Deluge.ToolBar.Bar.items.each(function(bn) {
|
||||||
|
bn.enable();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
onDisconnect: function() {
|
||||||
|
Deluge.ToolBar.items.each(function(bn) {
|
||||||
|
bn.disable();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
onToolbarRender: function(toolbar) {
|
||||||
|
Deluge.Connections.on("connect", this.onConnect.bindWithEvent(this));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function torrentAction(item) {
|
||||||
|
var selection = Deluge.Torrents.getSelectionModel().getSelections();
|
||||||
|
var ids = new Array();
|
||||||
|
$each(selection, function(record) {
|
||||||
|
ids.include(record.id);
|
||||||
|
});
|
||||||
|
|
||||||
|
switch (item.id) {
|
||||||
|
case "remove":
|
||||||
|
Deluge.Client.core.remove_torrent(ids, null, {
|
||||||
|
onSuccess: function() {
|
||||||
|
Deluge.Ui.update();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "pause":
|
||||||
|
Deluge.Client.core.pause_torrent(ids, {
|
||||||
|
onSuccess: function() {
|
||||||
|
Deluge.Ui.update();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "resume":
|
||||||
|
Deluge.Client.core.resume_torrent(ids, {
|
||||||
|
onSuccess: function() {
|
||||||
|
Deluge.Ui.update();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "up":
|
||||||
|
Deluge.Client.core.queue_up(ids, {
|
||||||
|
onSuccess: function() {
|
||||||
|
Deluge.Ui.update();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "down":
|
||||||
|
Deluge.Client.core.queue_down(ids, {
|
||||||
|
onSuccess: function() {
|
||||||
|
Deluge.Ui.update();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "connectionman":
|
||||||
|
Deluge.Connections.Window.show();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Deluge.ToolBar.Bar = new Ext.Toolbar({
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
id: 'create',
|
id: 'create',
|
||||||
|
@ -62,69 +129,11 @@ Deluge.ToolBar = new Ext.Toolbar({
|
||||||
icon: '/icons/16/connection_manager.png',
|
icon: '/icons/16/connection_manager.png',
|
||||||
handler: torrentAction
|
handler: torrentAction
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
listeners: {'render': Deluge.ToolBar.onToolbarRender, scope: Deluge.ToolBar}
|
||||||
});
|
});
|
||||||
|
|
||||||
Deluge.ToolBar.connected = function() {
|
|
||||||
Deluge.ToolBar.items.each(function(bn) {
|
|
||||||
bn.enable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Deluge.ToolBar.disconnected = function() {
|
|
||||||
Deluge.ToolBar.items.each(function(bn) {
|
|
||||||
bn.disable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function torrentAction(item) {
|
|
||||||
var selection = Deluge.Torrents.getSelectionModel().getSelections();
|
|
||||||
var ids = new Array();
|
|
||||||
$each(selection, function(record) {
|
|
||||||
ids.include(record.id);
|
|
||||||
});
|
|
||||||
|
|
||||||
switch (item.id) {
|
|
||||||
case "remove":
|
|
||||||
Deluge.Client.core.remove_torrent(ids, null, {
|
|
||||||
onSuccess: function() {
|
|
||||||
Deluge.Ui.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "pause":
|
|
||||||
Deluge.Client.core.pause_torrent(ids, {
|
|
||||||
onSuccess: function() {
|
|
||||||
Deluge.Ui.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "resume":
|
|
||||||
Deluge.Client.core.resume_torrent(ids, {
|
|
||||||
onSuccess: function() {
|
|
||||||
Deluge.Ui.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "up":
|
|
||||||
Deluge.Client.core.queue_up(ids, {
|
|
||||||
onSuccess: function() {
|
|
||||||
Deluge.Ui.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "down":
|
|
||||||
Deluge.Client.core.queue_down(ids, {
|
|
||||||
onSuccess: function() {
|
|
||||||
Deluge.Ui.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "connectionman":
|
|
||||||
Deluge.Connections.Window.show();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Deluge.SideBar = {
|
Deluge.SideBar = {
|
||||||
region: 'west',
|
region: 'west',
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
Deluge.Connections = {
|
Deluge.Connections = {
|
||||||
connects: new Array(),
|
_events: new Hash(),
|
||||||
disconnects: new Array()
|
|
||||||
|
|
||||||
onClose: function(e) {
|
onClose: function(e) {
|
||||||
$clear(Deluge.Connections.running);
|
$clear(Deluge.Connections.running);
|
||||||
|
@ -17,7 +16,7 @@ Deluge.Connections = {
|
||||||
Deluge.Client = new JSON.RPC('/json', {
|
Deluge.Client = new JSON.RPC('/json', {
|
||||||
methods: methods
|
methods: methods
|
||||||
});
|
});
|
||||||
Deluge.Ui.connected();
|
Deluge.Connections.fire("connect");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -37,19 +36,22 @@ Deluge.Connections = {
|
||||||
Deluge.Connections.runCheck();
|
Deluge.Connections.runCheck();
|
||||||
},
|
},
|
||||||
|
|
||||||
addConnect: function(fn) {
|
fire: function(eventName) {
|
||||||
|
if (!this._events[eventName]) return;
|
||||||
|
$each(this._events[eventName], function(fn) {
|
||||||
|
fn(Deluge.Client);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
removeConnect: function(fn) {
|
on: function(eventName, fn) {
|
||||||
|
var e = $pick(this._events[eventName], new Array());
|
||||||
|
e.include(fn);
|
||||||
|
this._events[eventName] = e;
|
||||||
},
|
},
|
||||||
|
|
||||||
addDisconnect: function(fn) {
|
removeListener: function(eventName, fn) {
|
||||||
|
if (!this._events[eventName]) return;
|
||||||
},
|
this._events[eventName].remove(fn);
|
||||||
|
|
||||||
removeDisconnect: function(fn) {
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
runCheck: function() {
|
runCheck: function() {
|
||||||
|
|
|
@ -6,7 +6,7 @@ Deluge.Ui = {
|
||||||
id: 'mainPanel',
|
id: 'mainPanel',
|
||||||
title: 'Deluge',
|
title: 'Deluge',
|
||||||
layout: 'border',
|
layout: 'border',
|
||||||
tbar: Deluge.ToolBar,
|
tbar: Deluge.ToolBar.Bar,
|
||||||
items: [Deluge.SideBar, Deluge.Details.Panel, Deluge.Torrents],
|
items: [Deluge.SideBar, Deluge.Details.Panel, Deluge.Torrents],
|
||||||
bbar: Deluge.StatusBar
|
bbar: Deluge.StatusBar
|
||||||
});
|
});
|
||||||
|
@ -17,6 +17,7 @@ Deluge.Ui = {
|
||||||
});
|
});
|
||||||
|
|
||||||
Deluge.Login.Window.show();
|
Deluge.Login.Window.show();
|
||||||
|
Deluge.Connections.on("connect", this.onConnect.bindWithEvent(this));
|
||||||
Deluge.Client = new JSON.RPC('/json');
|
Deluge.Client = new JSON.RPC('/json');
|
||||||
|
|
||||||
Deluge.SideBar = this.MainPanel.items.get('sidebar');
|
Deluge.SideBar = this.MainPanel.items.get('sidebar');
|
||||||
|
@ -145,14 +146,13 @@ Deluge.Ui = {
|
||||||
information.
|
information.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
Deluge.UI.connected();
|
Deluge.UI.onConnect();
|
||||||
*/
|
*/
|
||||||
connected: function() {
|
onConnect: function() {
|
||||||
if (!this.running) {
|
if (!this.running) {
|
||||||
this.running = this.update.periodical(2000, this);
|
this.running = this.update.periodical(2000, this);
|
||||||
this.update();
|
this.update();
|
||||||
}
|
}
|
||||||
Deluge.ToolBar.connected();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue