mirror of
https://git.deluge-torrent.org/deluge
synced 2025-04-20 11:35:49 +00:00
Fix issues with js eventmanager. refs #2046
Fix plugin methods not being available when enabled until refresh. refs #2125
This commit is contained in:
parent
782b39c90d
commit
e865180e83
3 changed files with 16 additions and 12 deletions
|
@ -69,9 +69,6 @@ Ext.ux.util.RpcClient = Ext.extend(Ext.util.Observable, {
|
|||
},
|
||||
|
||||
reloadMethods: function() {
|
||||
Ext.each(this._components, function(component) {
|
||||
delete this[component];
|
||||
}, this);
|
||||
this._execute('system.listMethods', {
|
||||
success: this._setMethods,
|
||||
scope: this
|
||||
|
@ -180,7 +177,7 @@ Ext.ux.util.RpcClient = Ext.extend(Ext.util.Observable, {
|
|||
var fn = function() {
|
||||
var options = self._parseArgs(arguments);
|
||||
return self._execute(method, options);
|
||||
}
|
||||
};
|
||||
component[parts[1]] = fn;
|
||||
components[parts[0]] = component;
|
||||
});
|
||||
|
@ -188,7 +185,11 @@ Ext.ux.util.RpcClient = Ext.extend(Ext.util.Observable, {
|
|||
for (var name in components) {
|
||||
self[name] = components[name];
|
||||
}
|
||||
|
||||
Ext.each(this._components, function(component) {
|
||||
if (!component in components) {
|
||||
delete this[component];
|
||||
}
|
||||
}, this);
|
||||
this._components = Ext.keys(components);
|
||||
this.fireEvent('connected', this);
|
||||
}
|
||||
|
|
|
@ -91,13 +91,15 @@ Deluge.EventsManager = Ext.extend(Ext.util.Observable, {
|
|||
},
|
||||
|
||||
onGetEventsSuccess: function(events) {
|
||||
if (!events) return;
|
||||
Ext.each(events, function(event) {
|
||||
var name = event[0], args = event[1];
|
||||
args.splice(0, 0, name);
|
||||
this.fireEvent.apply(this, args);
|
||||
}, this);
|
||||
if (this.running) this.getEvents();
|
||||
if (!this.running) return;
|
||||
if (events) {
|
||||
Ext.each(events, function(event) {
|
||||
var name = event[0], args = event[1];
|
||||
args.splice(0, 0, name);
|
||||
this.fireEvent.apply(this, args);
|
||||
}, this);
|
||||
}
|
||||
this.getEvents();
|
||||
},
|
||||
|
||||
// private
|
||||
|
|
|
@ -76,6 +76,7 @@ Deluge.Plugin = Ext.extend(Ext.util.Observable, {
|
|||
* then executes the plugins setup method, onEnabled.
|
||||
*/
|
||||
enable: function() {
|
||||
deluge.client.reloadMethods();
|
||||
this.fireEvent("enable", this);
|
||||
if (this.onEnable) this.onEnable();
|
||||
},
|
||||
|
|
Loading…
Add table
Reference in a new issue