From 80d7ae597b0aa4ebb1cc342522322abd28d71efa Mon Sep 17 00:00:00 2001 From: barisusakli Date: Mon, 24 Nov 2014 13:28:44 -0500 Subject: [PATCH] closes #2451 --- src/meta/configs.js | 33 ++++++++++++++++++++++++++++++--- src/middleware/middleware.js | 22 +++------------------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/meta/configs.js b/src/meta/configs.js index 4b314c758f..ae32d45599 100644 --- a/src/meta/configs.js +++ b/src/meta/configs.js @@ -59,16 +59,43 @@ module.exports = function(Meta) { }; Meta.configs.setMultiple = function(data, callback) { - db.setObject('config', data, function(err) { + processConfig(data, function(err) { if (err) { return callback(err); } + db.setObject('config', data, function(err) { + if (err) { + return callback(err); + } - updateConfig(data); - callback(); + updateConfig(data); + callback(); + }); }); }; + function processConfig(data, callback) { + if (data.customCSS) { + saveRenderedCss(data, callback); + return; + } + callback(); + } + + function saveRenderedCss(data, callback) { + var less = require('less'); + less.render(data.customCSS, { + compress: true + }, function(err, lessObject) { + if (err) { + winston.error('[less] Could not convert custom LESS to CSS! Please check your syntax.'); + return callback(null, ''); + } + data.renderedCustomCSS = lessObject.css; + callback(null, lessObject.css); + }); + } + function updateConfig(data) { var msg = {action: 'config:update', data: data}; if (process.send) { diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index 1d9ae900c6..ad2b6eb408 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -198,7 +198,7 @@ middleware.checkAccountPermissions = function(req, res, next) { middleware.buildHeader = function(req, res, next) { res.locals.renderHeader = true; - + middleware.applyCSRF(req, res, function() { async.parallel({ config: function(next) { @@ -305,26 +305,10 @@ middleware.renderHeader = function(req, res, callback) { async.parallel({ customCSS: function(next) { templateValues.useCustomCSS = parseInt(meta.config.useCustomCSS, 10) === 1; - if (!templateValues.useCustomCSS) { - return next(null, ''); - } - - if (!meta.config.customCSS) { + if (!templateValues.useCustomCSS || !meta.config.customCSS || !meta.config.renderedCustomCSS) { return next(null, ''); } - - var less = require('less'); - - less.render(meta.config.customCSS, { - compress: true - }, function(err, lessObject) { - if (err) { - winston.error('[less] Could not convert custom LESS to CSS! Please check your syntax.'); - return next(null, ''); - } - - next(null, lessObject.css); - }); + next(null, meta.config.renderedCustomCSS); }, customJS: function(next) { templateValues.useCustomJS = parseInt(meta.config.useCustomJS, 10) === 1;