mirror of
https://git.deluge-torrent.org/deluge
synced 2025-08-02 22:48:40 +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() {
|
reloadMethods: function() {
|
||||||
Ext.each(this._components, function(component) {
|
|
||||||
delete this[component];
|
|
||||||
}, this);
|
|
||||||
this._execute('system.listMethods', {
|
this._execute('system.listMethods', {
|
||||||
success: this._setMethods,
|
success: this._setMethods,
|
||||||
scope: this
|
scope: this
|
||||||
|
@ -180,7 +177,7 @@ Ext.ux.util.RpcClient = Ext.extend(Ext.util.Observable, {
|
||||||
var fn = function() {
|
var fn = function() {
|
||||||
var options = self._parseArgs(arguments);
|
var options = self._parseArgs(arguments);
|
||||||
return self._execute(method, options);
|
return self._execute(method, options);
|
||||||
}
|
};
|
||||||
component[parts[1]] = fn;
|
component[parts[1]] = fn;
|
||||||
components[parts[0]] = component;
|
components[parts[0]] = component;
|
||||||
});
|
});
|
||||||
|
@ -188,7 +185,11 @@ Ext.ux.util.RpcClient = Ext.extend(Ext.util.Observable, {
|
||||||
for (var name in components) {
|
for (var name in components) {
|
||||||
self[name] = components[name];
|
self[name] = components[name];
|
||||||
}
|
}
|
||||||
|
Ext.each(this._components, function(component) {
|
||||||
|
if (!component in components) {
|
||||||
|
delete this[component];
|
||||||
|
}
|
||||||
|
}, this);
|
||||||
this._components = Ext.keys(components);
|
this._components = Ext.keys(components);
|
||||||
this.fireEvent('connected', this);
|
this.fireEvent('connected', this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,13 +91,15 @@ Deluge.EventsManager = Ext.extend(Ext.util.Observable, {
|
||||||
},
|
},
|
||||||
|
|
||||||
onGetEventsSuccess: function(events) {
|
onGetEventsSuccess: function(events) {
|
||||||
if (!events) return;
|
if (!this.running) return;
|
||||||
Ext.each(events, function(event) {
|
if (events) {
|
||||||
var name = event[0], args = event[1];
|
Ext.each(events, function(event) {
|
||||||
args.splice(0, 0, name);
|
var name = event[0], args = event[1];
|
||||||
this.fireEvent.apply(this, args);
|
args.splice(0, 0, name);
|
||||||
}, this);
|
this.fireEvent.apply(this, args);
|
||||||
if (this.running) this.getEvents();
|
}, this);
|
||||||
|
}
|
||||||
|
this.getEvents();
|
||||||
},
|
},
|
||||||
|
|
||||||
// private
|
// private
|
||||||
|
|
|
@ -76,6 +76,7 @@ Deluge.Plugin = Ext.extend(Ext.util.Observable, {
|
||||||
* then executes the plugins setup method, onEnabled.
|
* then executes the plugins setup method, onEnabled.
|
||||||
*/
|
*/
|
||||||
enable: function() {
|
enable: function() {
|
||||||
|
deluge.client.reloadMethods();
|
||||||
this.fireEvent("enable", this);
|
this.fireEvent("enable", this);
|
||||||
if (this.onEnable) this.onEnable();
|
if (this.onEnable) this.onEnable();
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue