diff --git a/public/src/app.js b/public/src/app.js index 026c66496c..6728b2a805 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -279,8 +279,8 @@ var socket, app.process_page = function () { app.populate_online_users(); - var url = window.location.href, - parts = url.split('/'), + var path = window.location.pathname, + parts = path.split('/'), active = parts[parts.length - 1]; jQuery('#main-nav li').removeClass('active'); diff --git a/src/routes/debug.js b/src/routes/debug.js index 807b85eb78..2d19bc11ea 100644 --- a/src/routes/debug.js +++ b/src/routes/debug.js @@ -1,5 +1,35 @@ var DebugRoute = function(app) { app.namespace('/debug', function() { + app.get('/cid/:cid', function (req, res) { + categories.getCategoryData(req.params.cid, function (err, data) { + if (data) { + res.send(data); + } else { + res.send(404, "Category doesn't exist!"); + } + }); + }); + + app.get('/tid/:tid', function (req, res) { + topics.getTopicData(req.params.tid, function (data) { + if (data) { + res.send(data); + } else { + res.send(404, "Topic doesn't exist!"); + } + }); + }); + + app.get('/pid/:pid', function (req, res) { + posts.getPostData(req.params.pid, function (data) { + if (data) { + res.send(data); + } else { + res.send(404, "Post doesn't exist!"); + } + }); + }); + app.get('/prune', function(req, res) { var Notifications = require('../notifications'); diff --git a/src/webserver.js b/src/webserver.js index aae015447d..6b94186235 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -318,7 +318,7 @@ var express = require('express'), }; app.create_route = function (url, tpl) { // to remove - return ''; + return ''; }; app.namespace(nconf.get('relative_path'), function () { @@ -331,29 +331,29 @@ var express = require('express'), // Basic Routes (entirely client-side parsed, goal is to move the rest of the crap in this file into this one section) (function () { - var routes = ['login', 'register', 'account', 'recent', 'unread', 'notifications', '403', '404']; + var routes = ['login', 'register', 'account', 'recent', '403', '404'], + loginRequired = ['unread', 'search', 'notifications']; - for (var i = 0, ii = routes.length; i < ii; i++) { - (function (route) { + async.each(routes.concat(loginRequired), function(route, next) { + app.get('/' + route, function (req, res) { + if ((route === 'login' || route === 'register') && (req.user && req.user.uid > 0)) { - app.get('/' + route, function (req, res) { - if ((route === 'login' || route === 'register') && (req.user && req.user.uid > 0)) { - - user.getUserField(req.user.uid, 'userslug', function (err, userslug) { - res.redirect('/user/' + userslug); - }); - return; - } - - app.build_header({ - req: req, - res: res - }, function (err, header) { - res.send((isNaN(parseInt(route, 10)) ? 200 : parseInt(route, 10)), header + app.create_route(route) + templates.footer); + user.getUserField(req.user.uid, 'userslug', function (err, userslug) { + res.redirect('/user/' + userslug); }); + return; + } else if (loginRequired.indexOf(route) !== -1 && !req.user) { + return res.redirect('/403'); + } + + app.build_header({ + req: req, + res: res + }, function (err, header) { + res.send((isNaN(parseInt(route, 10)) ? 200 : parseInt(route, 10)), header + app.create_route(route) + templates.footer); }); - }(routes[i])); - } + }); + }); }()); @@ -516,7 +516,7 @@ var express = require('express'), res.send( data.header + '\n\t' + - '\n\t' + + '\n\t' + templates.footer ); }); @@ -609,7 +609,7 @@ var express = require('express'), res.send( data.header + '\n\t' + - '\n\t' + + '\n\t' + templates.footer ); }); @@ -620,7 +620,7 @@ var express = require('express'), req: req, res: res }, function (err, header) { - res.send(header + '' + templates.footer); + res.send(header + '' + templates.footer); }); }); @@ -639,26 +639,6 @@ var express = require('express'), "Sitemap: " + nconf.get('url') + "sitemap.xml"); }); - app.get('/cid/:cid', function (req, res) { - categories.getCategoryData(req.params.cid, function (err, data) { - if (data) { - res.send(data); - } else { - res.send(404, "Category doesn't exist!"); - } - }); - }); - - app.get('/tid/:tid', function (req, res) { - topics.getTopicData(req.params.tid, function (data) { - if (data) { - res.send(data); - } else { - res.send(404, "Topic doesn't exist!"); - } - }); - }); - app.get('/recent/:term?', function (req, res) { // TODO consolidate with /recent route as well -> that can be combined into this area. See "Basic Routes" near top. app.build_header({ @@ -670,16 +650,6 @@ var express = require('express'), }); - app.get('/pid/:pid', function (req, res) { - posts.getPostData(req.params.pid, function (data) { - if (data) { - res.send(data); - } else { - res.send(404, "Post doesn't exist!"); - } - }); - }); - app.get('/outgoing', function (req, res) { if (!req.query.url) { return res.redirect('/404'); @@ -697,7 +667,7 @@ var express = require('express'), }); }); - app.get('/search', function (req, res) { +/* app.get('/search', function (req, res) { if (!req.user) { return res.redirect('/403'); } @@ -708,7 +678,7 @@ var express = require('express'), }, function (err, header) { res.send(header + app.create_route("search", null, "search") + templates.footer); }); - }); + });*/ app.get('/search/:term', function (req, res) { if (!req.user) {