diff --git a/public/src/helpers.js b/public/src/helpers.js new file mode 100644 index 0000000000..e56450ea31 --- /dev/null +++ b/public/src/helpers.js @@ -0,0 +1,30 @@ +"use strict"; +/*global templates*/ + + +(function(module) { + var helpers = {}, + templates = templates || require('./templates'); + + + helpers.displayUsersLink = function(config) { + return (config.isLoggedIn && !config.privateUserInfo); + }; + + + + + + if ('undefined' !== typeof window) { + $(document).ready(module.exports); + } + + module.exports = function() { + templates.registerHelper('displayUsersLink', helpers.displayUsersLink); + }; + +})('undefined' === typeof module ? { + module: { + exports: {} + } +} : module); \ No newline at end of file diff --git a/public/src/templates.js b/public/src/templates.js index f2833c68d1..9b2d77d27f 100644 --- a/public/src/templates.js +++ b/public/src/templates.js @@ -126,6 +126,16 @@ return template; } + function checkConditionalHelper(template, obj) { + var func = /IF function.([\S]*)/gi.exec(template); + + if (func && helpers[func[1]]) { + template = checkConditional(template, 'function.' + func[1], helpers[func[1]](obj)); + } + + return template; + } + function callMethod(method, parameters) { return method.apply(templates, [parameters.data, parameters.iterator, parameters.numblocks]); } @@ -249,6 +259,9 @@ namespace = namespace || ''; originalObj = originalObj || obj; + + template = checkConditionalHelper(template, obj); + for (var key in obj) { if (obj.hasOwnProperty(key)) { if (typeof obj[key] === 'undefined' || typeof obj[key] === 'function') { diff --git a/src/meta.js b/src/meta.js index b6991b3b72..174aa91796 100644 --- a/src/meta.js +++ b/src/meta.js @@ -246,6 +246,7 @@ var fs = require('fs'), 'src/variables.js', 'src/widgets.js', 'src/translator.js', + 'src/helpers.js', 'src/overrides.js', 'src/utils.js' ], diff --git a/src/webserver.js b/src/webserver.js index debcf669ff..a2410e4e15 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -18,7 +18,9 @@ var path = require('path'), plugins = require('./plugins'), middleware = require('./middleware'), routes = require('./routes'), - emitter = require('./emitter'); + emitter = require('./emitter'), + + helpers = require('./../public/src/helpers')(); if(nconf.get('ssl')) { server = require('https').createServer({