diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index e2b5a8f408..fdd63556e4 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -28,7 +28,7 @@ define('admin/manage/users', ['admin/modules/selectable'], function(selectable) } function removeSelected() { - $('#users-container .users-box .selected').remove(); + $('#users-container .users-box .selected').parents('.users-box').remove(); } function done(successMessage, className, flag) { diff --git a/src/plugins/install.js b/src/plugins/install.js index e9882cc449..55723f79b5 100644 --- a/src/plugins/install.js +++ b/src/plugins/install.js @@ -64,7 +64,7 @@ module.exports = function(Plugins) { if (err) { return callback(err); } - + var type = installed ? 'uninstall' : 'install'; async.waterfall([ function(next) { Plugins.isActive(id, next); @@ -82,10 +82,14 @@ module.exports = function(Plugins) { npm.load({}, next); }, function(res, next) { - npm.commands[installed ? 'uninstall' : 'install'](installed ? id : [id + '@' + (version || 'latest')], next); + npm.commands[type](installed ? id : [id + '@' + (version || 'latest')], next); } ], function(err) { - callback(err, {id: id, installed: !installed}); + if (err) { + return callback(err); + } + plugins.fireHook('action:plugin.' + type, id); + callback(null, {id: id, installed: !installed}); }); }); } diff --git a/src/views/admin/extend/widgets.tpl b/src/views/admin/extend/widgets.tpl index 62ea972ea9..3e172566b2 100644 --- a/src/views/admin/extend/widgets.tpl +++ b/src/views/admin/extend/widgets.tpl @@ -3,29 +3,31 @@