diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 84a6e6591d..057847351b 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -214,8 +214,10 @@ $(document).ready(function() { if (!data) { return; } + ajaxify.data = data; - data.relative_path = RELATIVE_PATH; + data.config = config; + $(window).trigger('action:ajaxify.dataLoaded', {url: url, data: data}); if (callback) { diff --git a/public/src/app.js b/public/src/app.js index 6fb289b041..8b83c5a3c1 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -406,18 +406,6 @@ app.cacheBuster = null; } }; - app.exposeConfigToTemplates = function() { - $(document).ready(function() { - templates.setGlobal('loggedIn', config.loggedIn); - templates.setGlobal('relative_path', RELATIVE_PATH); - for(var key in config) { - if (config.hasOwnProperty(key)) { - templates.setGlobal('config.' + key, config[key]); - } - } - }); - }; - function createHeaderTooltips() { var env = utils.findBootstrapEnvironment(); if (env === 'xs' || env === 'sm') { @@ -651,8 +639,6 @@ app.cacheBuster = null; showWelcomeMessage = window.location.href.indexOf('loggedin') !== -1; - app.exposeConfigToTemplates(); - socketIOConnect(); app.cacheBuster = config['cache-buster']; diff --git a/src/controllers/api.js b/src/controllers/api.js index ed0be22efe..9bbb6dc5d7 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -70,8 +70,8 @@ apiController.getConfig = function(req, res, next) { config.environment = process.env.NODE_ENV; config.loggedIn = !!req.user; config['cache-buster'] = meta.config['cache-buster'] || ''; - config['script-buster'] = meta.js.hash; - config['css-buster'] = meta.css.hash; + config['script-buster'] = meta.js.hash || ''; + config['css-buster'] = meta.css.hash || ''; config.requireEmailConfirmation = parseInt(meta.config.requireEmailConfirmation, 10) === 1; config.topicPostSort = meta.config.topicPostSort || 'oldest_to_newest'; config.categoryTopicSort = meta.config.categoryTopicSort || 'newest_to_oldest'; diff --git a/src/middleware/admin.js b/src/middleware/admin.js index cba2bc8bec..db4116adc6 100644 --- a/src/middleware/admin.js +++ b/src/middleware/admin.js @@ -93,15 +93,16 @@ middleware.renderHeader = function(req, res, data, next) { res.locals.config = results.config; var templateValues = { - relative_path: nconf.get('relative_path'), + config: results.config, configJSON: JSON.stringify(results.config), + relative_path: results.config.relative_path, user: userData, userJSON: JSON.stringify(userData).replace(/'/g, "\\'"), plugins: results.custom_header.plugins, authentication: results.custom_header.authentication, scripts: results.scripts, 'cache-buster': meta.config['cache-buster'] ? 'v=' + meta.config['cache-buster'] : '', - env: process.env.NODE_ENV ? true : false, + env: process.env.NODE_ENV ? true : false }; templateValues.template = {name: res.locals.template}; diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index a94fd55038..df6f0a79ff 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -214,15 +214,11 @@ middleware.renderHeader = function(req, res, data, callback) { 'brand:logo:alt': meta.config['brand:logo:alt'] || '', 'brand:logo:display': meta.config['brand:logo']?'':'hide', allowRegistration: registrationType === 'normal' || registrationType === 'admin-approval', - searchEnabled: plugins.hasListeners('filter:search.query') + searchEnabled: plugins.hasListeners('filter:search.query'), + config: res.locals.config, + relative_path: res.locals.config.relative_path }; - for (var key in res.locals.config) { - if (res.locals.config.hasOwnProperty(key)) { - templateValues[key] = res.locals.config[key]; - } - } - templateValues.configJSON = JSON.stringify(res.locals.config); async.parallel({ @@ -337,6 +333,7 @@ middleware.processRender = function(req, res, next) { } options.loggedIn = req.user ? parseInt(req.user.uid, 10) !== 0 : false; + options.relative_path = nconf.get('relative_path'); options.template = {name: template}; options.template[template] = true; res.locals.template = template;