diff --git a/public/src/app.js b/public/src/app.js index bf5ec32941..7e1160dee1 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -568,8 +568,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/modules/helpers.js similarity index 65% rename from public/src/helpers.js rename to public/src/modules/helpers.js index 38875ea8b8..da4eaccaae 100644 --- a/public/src/helpers.js +++ b/public/src/modules/helpers.js @@ -1,8 +1,12 @@ -"use strict"; -/*global templates*/ +;(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*/; + } -(function(module) { var helpers = {}; helpers.displayUsersLink = function(config) { @@ -30,20 +34,27 @@ } }; - if ('undefined' !== typeof window) { - $(document).ready(module.exports); - } + exports.register = function() { + var templates; - module.exports = function() { - var templates = templates || require('templates.js'); + if (typeof module === 'object') { + templates = require('templates.js'); + } else { + templates = window.templates; + } templates.registerHelper('displayUsersLink', helpers.displayUsersLink); templates.registerHelper('buildMetaTag', helpers.buildMetaTag); templates.registerHelper('membershipBtn', helpers.membershipBtn); }; -})('undefined' === typeof module ? { - module: { - exports: {} + // Use the define() function if we're in AMD land + if (typeof define === 'function' && define.amd) { + define('helpers', exports); } -} : module); + +})( + typeof exports === 'object' ? exports : + typeof define === 'function' && define.amd ? {} : + helpers = {} +); \ No newline at end of file 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');