etherpad-lite/static/js/plugins.js
Dominik Rodler 65ec8a1b47 UI refactoring and code clean-up
- Improved maintainability of UI (very much work still remaining)
- Improved performance of UI
- Consistent coding style
2012-02-20 23:16:25 +01:00

38 lines
No EOL
1.2 KiB
JavaScript

/**
* This code is mostly from the old Etherpad. Please help us to comment this code.
* This helps other people to understand this code better and helps them to improve it.
* TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED
*/
var plugins = {
callHook: function(hookName, args) {
var global = (function() {return this;}()),
hook = ((global.clientVars || {}).hooks || {})[hookName],
res = [];
if (hook === undefined)
return [];
for (var i = 0, N = hook.length; i < N; i++) {
var plugin = hook[i],
pluginRes = eval(plugin.plugin)[plugin.original || hookName](args);
if (pluginRes != undefined && pluginRes != null)
res = res.concat(pluginRes);
}
return res;
},
callHookStr: function(hookName, args, sep, pre, post) {
if (sep == undefined)
sep = '';
if (pre == undefined)
pre = '';
if (post == undefined)
post = '';
var newCallhooks = [],
callhooks = plugins.callHook(hookName, args);
for (var i=0, ii=callhooks.length; i < ii; i++) {
newCallhooks[i] = pre + callhooks[i] + post;
}
return newCallhooks.join(sep || '');
}
};
exports.plugins = plugins;