mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-07-08 17:01:28 +02:00
closes #5407
This commit is contained in:
@@ -8,7 +8,9 @@ module.exports = function (Plugins) {
|
||||
'filter:user.custom_fields': null, // remove in v1.1.0
|
||||
'filter:post.save': 'filter:post.create',
|
||||
'filter:user.profileLinks': 'filter:user.profileMenu',
|
||||
'action:post.flag': 'action:flag.create'
|
||||
'action:post.flag': 'action:flag.create',
|
||||
'action:plugin.activate': null,
|
||||
'action:plugin.install': null
|
||||
};
|
||||
/*
|
||||
`data` is an object consisting of (* is required):
|
||||
|
||||
@@ -50,8 +50,11 @@ module.exports = function (Plugins) {
|
||||
},
|
||||
function (next) {
|
||||
meta.reloadRequired = true;
|
||||
Plugins.fireHook(isActive ? 'action:plugin.deactivate' : 'action:plugin.activate', {id: id});
|
||||
next();
|
||||
if (isActive) {
|
||||
Plugins.fireHook('action:plugin.deactivate', {id: id});
|
||||
}
|
||||
|
||||
setImmediate(next);
|
||||
}
|
||||
], function (err) {
|
||||
if (err) {
|
||||
@@ -68,7 +71,6 @@ module.exports = function (Plugins) {
|
||||
};
|
||||
|
||||
function toggleInstall(id, version, callback) {
|
||||
var type;
|
||||
var installed;
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
@@ -76,7 +78,6 @@ module.exports = function (Plugins) {
|
||||
},
|
||||
function (_installed, next) {
|
||||
installed = _installed;
|
||||
type = installed ? 'uninstall' : 'install';
|
||||
Plugins.isActive(id, next);
|
||||
},
|
||||
function (active, next) {
|
||||
@@ -86,17 +87,20 @@ module.exports = function (Plugins) {
|
||||
});
|
||||
return;
|
||||
}
|
||||
next();
|
||||
setImmediate(next);
|
||||
},
|
||||
function (next) {
|
||||
runNpmCommand(type, id, version || 'latest', next);
|
||||
runNpmCommand(installed ? 'uninstall' : 'install', id, version || 'latest', next);
|
||||
},
|
||||
function (next) {
|
||||
Plugins.get(id, next);
|
||||
},
|
||||
function (pluginData, next) {
|
||||
Plugins.fireHook('action:plugin.' + type, {id: id, version: version});
|
||||
next(null, pluginData);
|
||||
if (installed) {
|
||||
Plugins.fireHook('action:plugin.uninstall', {id: id, version: version});
|
||||
}
|
||||
|
||||
setImmediate(next, null, pluginData);
|
||||
}
|
||||
], callback);
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ module.exports = function (Plugins) {
|
||||
},
|
||||
function (next) {
|
||||
mapClientModules(pluginData, next);
|
||||
},
|
||||
}
|
||||
], function (err) {
|
||||
if (err) {
|
||||
winston.verbose('[plugins] Could not load plugin : ' + pluginData.id);
|
||||
|
||||
Reference in New Issue
Block a user