mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 20:16:04 +01:00
fixing issue where navigating to a non-existant category_id caused NodeBB
to crash
This commit is contained in:
@@ -11,6 +11,9 @@
|
|||||||
<link href="{cssSrc}" rel="stylesheet" media="screen">
|
<link href="{cssSrc}" rel="stylesheet" media="screen">
|
||||||
<link href="{relative_path}/vendor/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen">
|
<link href="{relative_path}/vendor/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen">
|
||||||
<link rel="stylesheet" href="{relative_path}/vendor/fontawesome/css/font-awesome.min.css">
|
<link rel="stylesheet" href="{relative_path}/vendor/fontawesome/css/font-awesome.min.css">
|
||||||
|
<script>
|
||||||
|
var RELATIVE_PATH = "{relative_path}";
|
||||||
|
</script>
|
||||||
<script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
|
<script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
|
||||||
<script type="text/javascript" src="{relative_path}/vendor/jquery/js/jquery-ui-1.10.3.custom.min.js"></script>
|
<script type="text/javascript" src="{relative_path}/vendor/jquery/js/jquery-ui-1.10.3.custom.min.js"></script>
|
||||||
<script type="text/javascript" src="{relative_path}/vendor/bootstrap/js/bootstrap.min.js"></script>
|
<script type="text/javascript" src="{relative_path}/vendor/bootstrap/js/bootstrap.min.js"></script>
|
||||||
@@ -19,7 +22,6 @@
|
|||||||
<script src="{relative_path}/vendor/requirejs/require.js"></script>
|
<script src="{relative_path}/vendor/requirejs/require.js"></script>
|
||||||
<script src="{relative_path}/vendor/bootbox/bootbox.min.js"></script>
|
<script src="{relative_path}/vendor/bootbox/bootbox.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
var RELATIVE_PATH = "{relative_path}";
|
|
||||||
require.config({
|
require.config({
|
||||||
baseUrl: "{relative_path}/src/modules",
|
baseUrl: "{relative_path}/src/modules",
|
||||||
waitSeconds: 3
|
waitSeconds: 3
|
||||||
|
|||||||
@@ -10,12 +10,8 @@ var RDB = require('./redis.js'),
|
|||||||
Categories.getCategoryById = function(category_id, current_user, callback) {
|
Categories.getCategoryById = function(category_id, current_user, callback) {
|
||||||
|
|
||||||
Categories.getCategoryData(category_id, function(err, categoryData) {
|
Categories.getCategoryData(category_id, function(err, categoryData) {
|
||||||
|
if (err) return callback(err);
|
||||||
if(err) {
|
|
||||||
callback(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var category_name = categoryData.name,
|
var category_name = categoryData.name,
|
||||||
category_slug = categoryData.slug;
|
category_slug = categoryData.slug;
|
||||||
|
|
||||||
@@ -75,7 +71,7 @@ var RDB = require('./redis.js'),
|
|||||||
categoryData.show_sidebar = 'hidden';
|
categoryData.show_sidebar = 'hidden';
|
||||||
categoryData.no_topics_message = 'show';
|
categoryData.no_topics_message = 'show';
|
||||||
|
|
||||||
callback(categoryData);
|
callback(null, categoryData);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
async.parallel([getTopics, getModerators, getActiveUsers], function(err, results) {
|
async.parallel([getTopics, getModerators, getActiveUsers], function(err, results) {
|
||||||
@@ -83,7 +79,7 @@ var RDB = require('./redis.js'),
|
|||||||
categoryData.moderator_block_class = results[1].length > 0 ? '' : 'none';
|
categoryData.moderator_block_class = results[1].length > 0 ? '' : 'none';
|
||||||
categoryData.moderators = results[1];
|
categoryData.moderators = results[1];
|
||||||
categoryData.active_users = results[2];
|
categoryData.active_users = results[2];
|
||||||
callback(categoryData);
|
callback(null, categoryData);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -341,7 +337,10 @@ var RDB = require('./redis.js'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
Categories.getCategoryData = function(cid, callback) {
|
Categories.getCategoryData = function(cid, callback) {
|
||||||
RDB.hgetall('category:' + cid, callback);
|
RDB.exists('category:' + cid, function(err, exists) {
|
||||||
|
if (exists) RDB.hgetall('category:' + cid, callback);
|
||||||
|
else callback(new Error('No category found!'));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Categories.getCategoryFields = function(cid, fields, callback) {
|
Categories.getCategoryFields = function(cid, fields, callback) {
|
||||||
|
|||||||
@@ -67,7 +67,12 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
Feed.updateCategory = function(cid) {
|
Feed.updateCategory = function(cid) {
|
||||||
categories.getCategoryById(cid, 0, function(categoryData) {
|
categories.getCategoryById(cid, 0, function(err, categoryData) {
|
||||||
|
if (err) {
|
||||||
|
console.log('Error: Could not update RSS feed for category ' + cid);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var location = '/category/' + categoryData.category_id + '/' + categoryData.category_name,
|
var location = '/category/' + categoryData.category_id + '/' + categoryData.category_name,
|
||||||
xml_url = '/category' + cid + '.rss';
|
xml_url = '/category' + cid + '.rss';
|
||||||
|
|
||||||
|
|||||||
@@ -209,11 +209,8 @@ var express = require('express'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
var category_url = cid + (req.params.slug ? '/' + req.params.slug : '');
|
var category_url = cid + (req.params.slug ? '/' + req.params.slug : '');
|
||||||
categories.getCategoryById(cid, 0, function(returnData) {
|
categories.getCategoryById(cid, 0, function(err, returnData) {
|
||||||
if(!returnData) {
|
if(err) return res.redirect('404');
|
||||||
res.redirect('404');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
res.send(
|
res.send(
|
||||||
app.build_header(res) +
|
app.build_header(res) +
|
||||||
@@ -379,8 +376,9 @@ var express = require('express'),
|
|||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case 'category' :
|
case 'category' :
|
||||||
categories.getCategoryById(req.params.id, uid, function(data) {
|
categories.getCategoryById(req.params.id, uid, function(err, data) {
|
||||||
res.json(data);
|
if (!err) res.json(data);
|
||||||
|
else res.send(404);
|
||||||
}, req.params.id, uid);
|
}, req.params.id, uid);
|
||||||
break;
|
break;
|
||||||
case 'recent' :
|
case 'recent' :
|
||||||
|
|||||||
Reference in New Issue
Block a user