From c3719ea5b515d27606047fda73544215b2224312 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Fri, 28 Aug 2015 15:08:21 -0400 Subject: [PATCH] closes #3519 --- public/src/ajaxify.js | 2 +- src/middleware/maintenance.js | 44 ++++++++++++-------------- src/views/{maintenance.tpl => 503.tpl} | 0 3 files changed, 22 insertions(+), 24 deletions(-) rename src/views/{maintenance.tpl => 503.tpl} (100%) diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index ee37ad0288..4412d185b1 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -112,7 +112,7 @@ $(document).ready(function() { if (data) { data.responseJSON.config = config; var status = parseInt(data.status, 10); - if (status === 403 || status === 404 || status === 500 || status === 502) { + if (status === 403 || status === 404 || status === 500 || status === 502 || status === 503) { if (status === 502) { status = 500; } diff --git a/src/middleware/maintenance.js b/src/middleware/maintenance.js index 1df24a5f86..f03a804bb9 100644 --- a/src/middleware/maintenance.js +++ b/src/middleware/maintenance.js @@ -1,5 +1,6 @@ 'use strict'; +var nconf = require('nconf'); var meta = require('../meta'); var user = require('../user'); var translator = require('../../public/src/modules/translator'); @@ -8,39 +9,36 @@ var translator = require('../../public/src/modules/translator'); module.exports = function(middleware) { middleware.maintenanceMode = function(req, res, next) { - console.log(req.path, meta.config.maintenanceMode) if (parseInt(meta.config.maintenanceMode, 10) !== 1) { return next(); } + var url = req.url.replace(nconf.get('relative_path'), ''); var allowedRoutes = [ - '/login', - '/stylesheet.css', - '/nodebb.min.js', - '/vendor/fontawesome/fonts/fontawesome-webfont.woff', - '/src/(modules|client)/[\\w/]+.js', - '/templates/[\\w/]+.tpl', - '/api/login', - '/api/?', - '/language/.+', - '/uploads/system/site-logo.png' + '^/login', + '^/stylesheet.css', + '^/favicon', + '^/nodebb.min.js', + '^/vendor/fontawesome/fonts/fontawesome-webfont.woff', + '^/src/(modules|client)/[\\w/]+.js', + '^/templates/[\\w/]+.tpl', + '^/api/login', + '^/api/widgets/render', + '^/language/.+', + '^/uploads/system/site-logo.png' ], render = function() { res.status(503); - - if (!isApiRoute.test(req.url)) { + var data = { + site_title: meta.config.title || 'NodeBB', + message: meta.config.maintenanceModeMessage + }; + if (!isApiRoute.test(url)) { middleware.buildHeader(req, res, function() { - res.render('maintenance', { - site_title: meta.config.title || 'NodeBB', - message: meta.config.maintenanceModeMessage - }); + res.render('503', data); }); } else { - translator.translate('[[pages:maintenance.text, ' + meta.config.title + ']]', meta.config.defaultLang || 'en_GB', function(translated) { - res.json({ - error: translated - }); - }); + res.json(data); } }, isAllowed = function(url) { @@ -54,7 +52,7 @@ module.exports = function(middleware) { }, isApiRoute = /^\/api/; - if (isAllowed(req.url)) { + if (isAllowed(url)) { return next(); } diff --git a/src/views/maintenance.tpl b/src/views/503.tpl similarity index 100% rename from src/views/maintenance.tpl rename to src/views/503.tpl