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');