diff --git a/public/src/forum/admin/settings.js b/public/src/forum/admin/settings.js index 777b82bb9f..6fec309ead 100644 --- a/public/src/forum/admin/settings.js +++ b/public/src/forum/admin/settings.js @@ -5,7 +5,7 @@ define(['uploader'], function(uploader) { Settings.prepare(); }; - Settings.prepare = function() { + Settings.prepare = function(callback) { // Come back in 125ms if the config isn't ready yet if (!app.config) { setTimeout(function() { @@ -117,6 +117,10 @@ define(['uploader'], function(uploader) { $(this).tab('show'); return false; }); + + if (typeof callback === 'function') { + callback(); + } }; Settings.remove = function(key) { diff --git a/src/routes/plugins.js b/src/routes/plugins.js index f767107a5c..8e18f28cf1 100644 --- a/src/routes/plugins.js +++ b/src/routes/plugins.js @@ -20,8 +20,15 @@ var nconf = require('nconf'), app.put('/plugins/fireHook', function(req, res) { // PUT = action - plugins.fireHook('action:' + req.body.hook, req.body.args); - res.send(200); + var hook = 'action:' + req.body.hook; + if (plugins.hasListeners(hook)) { + // Hook executes + plugins.fireHook(hook, req.body.args); + res.send(200); + } else { + // No listeners for this hook + res.send(404); + } }); // Static Assets