v1.18.x
barisusakli 11 years ago
parent 68f985c6da
commit 48acb0082e

@ -14,31 +14,27 @@ var winston = require('winston'),
module.exports = function(Plugins) { module.exports = function(Plugins) {
Plugins.toggleActive = function(id, callback) { Plugins.toggleActive = function(id, callback) {
Plugins.isActive(id, function(err, active) { callback = callback || function() {};
if (err) { var isActive;
winston.warn('[plugins] Could not toggle active state on plugin \'' + id + '\''); async.waterfall([
return callback(err); function(next) {
} Plugins.isActive(id, next);
},
db[(active ? 'setRemove' : 'setAdd')]('plugins:active', id, function(err, success) { function(_isActive, next) {
if (err) { isActive = _isActive;
winston.warn('[plugins] Could not toggle active state on plugin \'' + id + '\''); db[isActive ? 'setRemove' : 'setAdd']('plugins:active', id, next);
return callback(err); },
} function(next) {
meta.reloadRequired = true; meta.reloadRequired = true;
Plugins.fireHook(isActive ? 'action:plugin.deactivate' : 'action:plugin.activate', id);
if (active) { next();
Plugins.fireHook('action:plugin.deactivate', id);
} }
], function(err) {
if (typeof callback === 'function') { if (err) {
callback(null, { winston.warn('[plugins] Could not toggle active state on plugin \'' + id + '\'');
id: id, return callback(err);
active: !active
});
} }
}); callback(null, {id: id, active: !isActive});
}); });
}; };

Loading…
Cancel
Save