From 48acb0082e79c4e7b14006d7cca2772f158fc304 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Fri, 26 Dec 2014 19:17:37 -0500 Subject: [PATCH] isActive --- src/plugins/install.js | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/src/plugins/install.js b/src/plugins/install.js index 33ad260d16..3fc5befdb8 100644 --- a/src/plugins/install.js +++ b/src/plugins/install.js @@ -14,31 +14,27 @@ var winston = require('winston'), module.exports = function(Plugins) { Plugins.toggleActive = function(id, callback) { - Plugins.isActive(id, function(err, active) { + callback = callback || function() {}; + var isActive; + async.waterfall([ + function(next) { + Plugins.isActive(id, next); + }, + function(_isActive, next) { + isActive = _isActive; + db[isActive ? 'setRemove' : 'setAdd']('plugins:active', id, next); + }, + function(next) { + meta.reloadRequired = true; + Plugins.fireHook(isActive ? 'action:plugin.deactivate' : 'action:plugin.activate', id); + next(); + } + ], function(err) { if (err) { winston.warn('[plugins] Could not toggle active state on plugin \'' + id + '\''); return callback(err); } - - db[(active ? 'setRemove' : 'setAdd')]('plugins:active', id, function(err, success) { - if (err) { - winston.warn('[plugins] Could not toggle active state on plugin \'' + id + '\''); - return callback(err); - } - - meta.reloadRequired = true; - - if (active) { - Plugins.fireHook('action:plugin.deactivate', id); - } - - if (typeof callback === 'function') { - callback(null, { - id: id, - active: !active - }); - } - }); + callback(null, {id: id, active: !isActive}); }); };