diff --git a/public/src/app.js b/public/src/app.js index 1664a251d5..d894551064 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -566,8 +566,11 @@ app.uid = null; } }); - require(['taskbar'], function(taskbar) { + require(['taskbar', 'helpers'], function(taskbar, helpers) { taskbar.init(); + + // templates.js helpers + helpers.register(); }); }); }; diff --git a/public/src/helpers.js b/public/src/helpers.js deleted file mode 100644 index a89aeae0e2..0000000000 --- a/public/src/helpers.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -/*global templates*/ - - -(function(module) { - var helpers = {}; - - helpers.displayUsersLink = function(config) { - return (config.loggedIn || !config.privateUserInfo); - }; - - helpers.buildMetaTag = function(tag) { - var name = tag.name ? 'name="' + tag.name + '" ' : '', - property = tag.property ? 'property="' + tag.property + '" ' : '', - content = tag.content ? 'content="' + tag.content.replace(/\n/g, ' ') + '" ' : ''; - - return ''; - }; - - if ('undefined' !== typeof window) { - $(document).ready(module.exports); - } - - module.exports = function() { - var templates = templates || require('templates.js'); - - templates.registerHelper('displayUsersLink', helpers.displayUsersLink); - templates.registerHelper('buildMetaTag', helpers.buildMetaTag); - }; - -})('undefined' === typeof module ? { - module: { - exports: {} - } -} : module); diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js new file mode 100644 index 0000000000..1d13f93bf7 --- /dev/null +++ b/public/src/modules/helpers.js @@ -0,0 +1,59 @@ +;(function(exports) { + "use strict"; + /* globals define */ + + // export the class if we are in a Node-like system. + if (typeof module === 'object' && module.exports === exports) { + exports = module.exports/* = SemVer*/; + } + + var helpers = {}; + + helpers.displayUsersLink = function(config) { + return (config.loggedIn || !config.privateUserInfo); + }; + + helpers.buildMetaTag = function(tag) { + var name = tag.name ? 'name="' + tag.name + '" ' : '', + property = tag.property ? 'property="' + tag.property + '" ' : '', + content = tag.content ? 'content="' + tag.content.replace(/\n/g, ' ') + '" ' : ''; + + return ''; + }; + + // Groups helpers + helpers.membershipBtn = function(groupObj) { + if (groupObj.isMember) { + return ''; + } else { + if (groupObj.pending) { + return ''; + } else { + return ''; + } + } + }; + + exports.register = function() { + var templates; + + if (typeof module === 'object') { + templates = require('templates.js'); + } else { + templates = window.templates; + } + + templates.registerHelper('displayUsersLink', helpers.displayUsersLink); + templates.registerHelper('buildMetaTag', helpers.buildMetaTag); + }; + + // Use the define() function if we're in AMD land + if (typeof define === 'function' && define.amd) { + define('helpers', exports); + } + +})( + typeof exports === 'object' ? exports : + typeof define === 'function' && define.amd ? {} : + helpers = {} +); diff --git a/src/meta/js.js b/src/meta/js.js index c653a15de9..a960d108ee 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -45,7 +45,6 @@ module.exports = function(Meta) { 'public/src/variables.js', 'public/src/widgets.js', 'public/src/translator.js', - 'public/src/helpers.js', 'public/src/overrides.js' ], rjs: [] diff --git a/src/webserver.js b/src/webserver.js index 8d905b99b6..01dee2b91c 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -18,7 +18,7 @@ var path = require('path'), routes = require('./routes'), emitter = require('./emitter'), - helpers = require('./../public/src/helpers')(), + helpers = require('./../public/src/modules/helpers'), net; if(nconf.get('ssl')) { @@ -48,6 +48,9 @@ if(nconf.get('ssl')) { middleware = middleware(app); routes(app, middleware); + // Load server-side template helpers + helpers.register(); + // Cache static files on production if (global.env !== 'development') { app.enable('cache');