Baris Usakli 12 years ago
commit fbfdf561fc

@ -13,7 +13,7 @@
"socket.io": "~0.9.16",
"redis": "0.8.3",
"express": "3.2.0",
"express-namespace": "0.1.1",
"express-namespace": "~0.1.1",
"emailjs": "0.3.4",
"cookie": "0.0.6",
"connect-redis": "1.4.5",

@ -158,7 +158,7 @@ var ajaxify = {};
var scripts = [],
script,
children_nodes = body_el.childNodes,
children_nodes = $(body_el).children(),
child,
i;

@ -230,7 +230,7 @@
}
function makeRegex(block) {
return new RegExp("<!-- BEGIN " + block + " -->[^]*<!-- END " + block + " -->", 'g');
return new RegExp("<!-- BEGIN " + block + " -->[\\s\\S]*<!-- END " + block + " -->", 'g');
}
function getBlock(regex, block, template) {
@ -299,7 +299,7 @@
}
if (namespace) {
var regex = new RegExp("{" + namespace + "[^]*?}", 'g');
var regex = new RegExp("{" + namespace + "[\\s\\S]*?}", 'g');
template = template.replace(regex, '');
}

@ -15,7 +15,7 @@
<div class="alert alert-warning">
<p>
<strong>Interesed in writing plugins for NodeBB?</strong>
<strong>Interested in writing plugins for NodeBB?</strong>
</p>
<p>
Full documentation regarding plugin authoring can be found in the <a target="_blank" href="https://github.com/designcreateplay/NodeBB/wiki/Writing-Plugins-for-NodeBB">NodeBB Wiki</a>.

@ -1,17 +1,17 @@
{
"custom_mapping": {
"admin/testing/categories[^]*": "admin/testing/categories",
"admin/topics[^]*": "admin/topics",
"admin/categories[^]*": "admin/categories",
"admin/users[^]*": "admin/users",
"admin/redis[^]*": "admin/redis",
"admin/index[^]*": "admin/index",
"admin/themes[^]*": "admin/themes",
"admin/plugins[^]*": "admin/plugins",
"^admin/settings[^]*": "admin/settings",
"admin/twitter[^]*": "admin/twitter",
"admin/facebook[^]*": "admin/facebook",
"admin/gplus[^]*": "admin/gplus",
"admin/testing/categories.*": "admin/testing/categories",
"admin/topics.*": "admin/topics",
"admin/categories.*": "admin/categories",
"admin/users.*": "admin/users",
"admin/redis.*": "admin/redis",
"admin/index.*": "admin/index",
"admin/themes.*": "admin/themes",
"admin/plugins.*": "admin/plugins",
"^admin/settings.*": "admin/settings",
"admin/twitter.*": "admin/twitter",
"admin/facebook.*": "admin/facebook",
"admin/gplus.*": "admin/gplus",
"admin/motd/?$": "admin/motd",
"admin/groups/?$": "admin/groups",
"install/?$": "install/mail",
@ -22,19 +22,19 @@
"users/latest": "users",
"users/sort-reputation": "users",
"users/search": "users",
"user[^]*edit": "accountedit",
"user[^]*following": "following",
"user[^]*followers": "followers",
"user[^]*settings": "accountsettings",
"user[^]*favourites": "favourites",
"user/[^]*": "account",
"user.*edit": "accountedit",
"user.*following": "following",
"user.*followers": "followers",
"user.*settings": "accountsettings",
"user.*favourites": "favourites",
"user/.*": "account",
"recent": "recent",
"unread": "unread",
"popular": "category",
"active": "category",
"search": "search",
"reset/[^]*": "reset_code",
"reset/.*": "reset_code",
"reset": "reset"
},

@ -53,21 +53,24 @@ var user = require('./../user.js'),
}());
app.get('/admin', Admin.isAdmin, function(req, res) {
app.namespace('/admin', function () {
app.get('/', Admin.isAdmin, function (req, res) {
res.send(Admin.build_header(res) + app.create_route('admin/index') + templates['admin/footer']);
});
app.get('/admin/index', Admin.isAdmin, function(req, res) {
app.get('/index', Admin.isAdmin, function (req, res) {
res.send(Admin.build_header(res) + app.create_route('admin/index') + templates['admin/footer']);
});
});
app.get('/api/admin/index', function(req, res) {
app.namespace('/api/admin', function () {
app.get('/index', function (req, res) {
res.json({
version: pkg.version
});
});
app.get('/api/admin/users/search', function(req, res) {
app.get('/users/search', function (req, res) {
res.json({
search_display: 'block',
loadmore_display: 'none',
@ -75,7 +78,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/admin/users/latest', function(req, res) {
app.get('/users/latest', function (req, res) {
user.getUsers('users:joindate', 0, 49, function (err, data) {
res.json({
search_display: 'none',
@ -86,7 +89,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/admin/users/sort-posts', function(req, res) {
app.get('/users/sort-posts', function (req, res) {
user.getUsers('users:postcount', 0, 49, function (err, data) {
res.json({
search_display: 'none',
@ -97,7 +100,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/admin/users/sort-reputation', function(req, res) {
app.get('/users/sort-reputation', function (req, res) {
user.getUsers('users:reputation', 0, 49, function (err, data) {
res.json({
search_display: 'none',
@ -108,7 +111,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/admin/users', function(req, res) {
app.get('/users', function (req, res) {
user.getUsers('users:joindate', 0, 49, function (err, data) {
res.json({
search_display: 'none',
@ -118,13 +121,13 @@ var user = require('./../user.js'),
});
});
app.get('/api/admin/categories', function(req, res) {
app.get('/categories', function (req, res) {
categories.getAllCategories(function (data) {
res.json(data);
});
});
app.get('/api/admin/categories/active', function(req, res) {
app.get('/categories/active', function (req, res) {
categories.getAllCategories(function (data) {
data.categories = data.categories.filter(function (category) {
return (!category.disabled || category.disabled === "0");
@ -133,7 +136,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/admin/categories/disabled', function(req, res) {
app.get('/categories/disabled', function (req, res) {
categories.getAllCategories(function (data) {
data.categories = data.categories.filter(function (category) {
return category.disabled === "1";
@ -142,7 +145,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/admin/topics', function(req, res) {
app.get('/topics', function (req, res) {
topics.getAllTopics(10, null, function (topics) {
res.json({
topics: topics
@ -150,7 +153,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/admin/redis', function(req, res) {
app.get('/redis', function (req, res) {
RDB.info(function (err, data) {
data = data.split("\r\n");
var finalData = {};
@ -177,7 +180,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/admin/plugins', function(req, res) {
app.get('/plugins', function (req, res) {
plugins.showInstalled(function (err, plugins) {
if (err || !Array.isArray(plugins)) plugins = [];
@ -187,35 +190,35 @@ var user = require('./../user.js'),
});
});
app.get('/api/admin/settings', function(req, res) {
app.get('/settings', function (req, res) {
res.json(200, {});
});
app.get('/api/admin/motd', function(req, res) {
app.get('/motd', function (req, res) {
res.json(200, {});
});
app.get('/api/admin/themes', function(req, res) {
app.get('/themes', function (req, res) {
res.json(200, {});
});
app.get('/api/admin/twitter', function(req, res) {
app.get('/twitter', function (req, res) {
res.json(200, {});
});
app.get('/api/admin/facebook', function(req, res) {
app.get('/facebook', function (req, res) {
res.json(200, {});
});
app.get('/api/admin/gplus', function(req, res) {
app.get('/gplus', function (req, res) {
res.json(200, {});
});
app.get('/api/admin/testing/categories', function(req, res) {
app.get('/testing/categories', function (req, res) {
res.json(200, {});
});
app.get('/api/admin/groups', function(req, res) {
app.get('/groups', function (req, res) {
Groups.list({
expand: true
}, function (err, groups) {
@ -224,6 +227,7 @@ var user = require('./../user.js'),
});
});
});
});
};

@ -11,27 +11,28 @@ var user = require('./../user.js'),
(function (Api) {
Api.create_routes = function (app) {
app.get('/api/get_templates_listing', function(req, res) {
app.namespace('/api', function () {
app.get('/get_templates_listing', function (req, res) {
utils.walk(path.join(__dirname, '../../', 'public/templates'), function (err, data) {
res.json(data);
});
});
app.get('/api/config', function(req, res, next) {
app.get('/config', function (req, res, next) {
var config = require('../../public/config.json');
config['postDelay'] = meta.config['postDelay'];
config['minimumTitleLength'] = meta.config['minimumTitleLength'];
config['minimumPostLength'] = meta.config['minimumPostLength'];
config['imgurClientIDSet'] = !! meta.config['imgurClientID'];
config['minimumUsernameLength'] = meta.config['minimumUsernameLength'];
config['maximumUsernameLength'] = meta.config['maximumUsernameLength'];
config['minimumPasswordLength'] = meta.config['minimumPasswordLength'];
config.postDelay = meta.config.postDelay;
config.minimumTitleLength = meta.config.minimumTitleLength;
config.minimumPostLength = meta.config.minimumPostLength;
config.imgurClientIDSet = !! meta.config.imgurClientID;
config.minimumUsernameLength = meta.config.minimumUsernameLength;
config.maximumUsernameLength = meta.config.maximumUsernameLength;
config.minimumPasswordLength = meta.config.minimumPasswordLength;
res.json(200, config);
});
app.get('/api/home', function(req, res) {
app.get('/home', function (req, res) {
var uid = (req.user) ? req.user.uid : 0;
categories.getAllCategories(function (data) {
data.categories = data.categories.filter(function (category) {
@ -40,8 +41,8 @@ var user = require('./../user.js'),
function iterator(category, callback) {
categories.getRecentReplies(category.cid, 2, function (posts) {
category["posts"] = posts;
category["post_count"] = posts.length > 2 ? 2 : posts.length;
category.posts = posts;
category.post_count = posts.length > 2 ? 2 : posts.length;
callback(null);
});
}
@ -55,7 +56,7 @@ var user = require('./../user.js'),
}, uid);
});
app.get('/api/login', function(req, res) {
app.get('/login', function (req, res) {
var data = {},
login_strategies = auth.get_login_strategies(),
num_strategies = login_strategies.length;
@ -80,7 +81,7 @@ var user = require('./../user.js'),
res.json(data);
});
app.get('/api/register', function(req, res) {
app.get('/register', function (req, res) {
var data = {},
login_strategies = auth.get_login_strategies(),
num_strategies = login_strategies.length;
@ -107,7 +108,7 @@ var user = require('./../user.js'),
res.json(data);
});
app.get('/api/topic/:id/:slug?', function(req, res, next) {
app.get('/topic/:id/:slug?', function (req, res, next) {
var uid = (req.user) ? req.user.uid : 0;
topics.getTopicWithPosts(req.params.id, uid, 0, 10, function (err, data) {
if (!err) {
@ -119,7 +120,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/category/:id/:slug?', function(req, res, next) {
app.get('/category/:id/:slug?', function (req, res, next) {
var uid = (req.user) ? req.user.uid : 0;
categories.getCategoryById(req.params.id, uid, function (err, data) {
if (!err)
@ -129,28 +130,28 @@ var user = require('./../user.js'),
}, req.params.id, uid);
});
app.get('/api/recent', function(req, res) {
app.get('/recent', function (req, res) {
var uid = (req.user) ? req.user.uid : 0;
topics.getLatestTopics(uid, 0, 19, function (data) {
res.json(data);
});
});
app.get('/api/unread', function(req, res) {
app.get('/unread', function (req, res) {
var uid = (req.user) ? req.user.uid : 0;
topics.getUnreadTopics(uid, 0, 19, function (data) {
res.json(data);
});
});
app.get('/api/unread/total', function(req, res) {
app.get('/unread/total', function (req, res) {
var uid = (req.user) ? req.user.uid : 0;
topics.getTotalUnread(uid, function (data) {
res.json(data);
});
});
app.get('/api/confirm/:id', function(req, res) {
app.get('/confirm/:id', function (req, res) {
user.email.confirm(req.params.id, function (data) {
if (data.status === 'ok') {
res.json({
@ -168,7 +169,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/outgoing', function(req, res) {
app.get('/outgoing', function (req, res) {
var url = req.query.url;
if (url) {
@ -182,7 +183,7 @@ var user = require('./../user.js'),
}
});
app.get('/api/search', function(req, res) {
app.get('/search', function (req, res) {
return res.json({
show_no_topics: 'hide',
show_no_posts: 'hide',
@ -193,7 +194,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/search/:term', function(req, res, next) {
app.get('/search/:term', function (req, res, next) {
var reds = require('reds');
var postSearch = reds.createSearch('nodebbpostsearch');
@ -244,22 +245,23 @@ var user = require('./../user.js'),
});
});
app.get('/api/reset', function(req, res) {
app.get('/reset', function (req, res) {
res.json({});
});
app.get('/api/reset/:code', function(req, res) {
app.get('/reset/:code', function (req, res) {
res.json({
reset_code: req.params.code
});
});
app.get('/api/404', function(req, res) {
app.get('/404', function (req, res) {
res.json({});
});
app.get('/api/403', function(req, res) {
app.get('/403', function (req, res) {
res.json({});
});
});
}
}(exports));

@ -27,7 +27,8 @@ var user = require('./../user.js'),
});
});
app.get('/users', function(req, res) {
app.namespace('/users', function () {
app.get('', function (req, res) {
app.build_header({
req: req,
res: res
@ -36,7 +37,7 @@ var user = require('./../user.js'),
});
});
app.get('/users/latest', function(req, res) {
app.get('/latest', function (req, res) {
app.build_header({
req: req,
res: res
@ -45,7 +46,7 @@ var user = require('./../user.js'),
});
});
app.get('/users/sort-posts', function(req, res) {
app.get('/sort-posts', function (req, res) {
app.build_header({
req: req,
res: res
@ -54,7 +55,7 @@ var user = require('./../user.js'),
});
});
app.get('/users/sort-reputation', function(req, res) {
app.get('/sort-reputation', function (req, res) {
app.build_header({
req: req,
res: res
@ -63,7 +64,7 @@ var user = require('./../user.js'),
});
});
app.get('/users/online', function(req, res) {
app.get('/online', function (req, res) {
app.build_header({
req: req,
res: res
@ -72,7 +73,7 @@ var user = require('./../user.js'),
});
});
app.get('/users/search', function(req, res) {
app.get('/search', function (req, res) {
app.build_header({
req: req,
res: res
@ -80,8 +81,10 @@ var user = require('./../user.js'),
res.send(header + app.create_route("users/search", "users") + templates['footer']);
});
});
});
app.get('/user/:userslug', function(req, res, next) {
app.namespace('/user', function () {
app.get('/:userslug', function (req, res, next) {
if (!req.params.userslug) {
next();
@ -103,7 +106,7 @@ var user = require('./../user.js'),
});
});
app.get('/user/:userslug/edit', function(req, res) {
app.get('/:userslug/edit', function (req, res) {
if (!req.user)
return res.redirect('/403');
@ -122,7 +125,7 @@ var user = require('./../user.js'),
});
});
app.get('/user/:userslug/settings', function(req, res) {
app.get('/:userslug/settings', function (req, res) {
if (!req.user)
return res.redirect('/403');
@ -141,7 +144,7 @@ var user = require('./../user.js'),
});
});
app.post('/user/uploadpicture', function(req, res) {
app.post('/uploadpicture', function (req, res) {
if (!req.user)
return res.redirect('/403');
@ -180,6 +183,7 @@ var user = require('./../user.js'),
});
});
});
});
function uploadUserPicture(uid, extension, tempPath, res) {
if (!extension) {

Loading…
Cancel
Save