v1.18.x
Baris Usakli 12 years ago
parent 28704a6164
commit 24e4be77d8

@ -275,7 +275,7 @@ var socket,
if (active) {
jQuery('#main-nav li a').each(function() {
var href = this.getAttribute('href');
if (active.match(/^users/))
if (active == "sort-posts" || active == "sort-reputation" || active == "search" || active== "latest")
active = 'users';
if (href && href.match(active)) {
jQuery(this.parentNode).addClass('active');

@ -5,7 +5,7 @@
$(document).ready(function() {
var username = $('.account-username a').html();
app.enter_room('users/' + theirid);
app.enter_room('user/' + theirid);
app.addCommasToNumbers();

@ -6,11 +6,11 @@
function createMenu() {
var userslug = $('.account-username-box').attr('data-userslug');
var links = $('<div class="account-sub-links inline-block pull-right">\
<span id="settingsLink" class="pull-right"><a href="/users/' + userslug + '/settings">settings</a></span>\
<span id="favouritesLink" class="pull-right"><a href="/users/' + userslug + '/favourites">favourites</a></span>\
<span class="pull-right"><a href="/users/' + userslug + '/followers">followers</a></span>\
<span class="pull-right"><a href="/users/' + userslug + '/following">following</a></span>\
<span id="editLink" class="pull-right"><a href="/users/' + userslug + '/edit">edit</a></span>\
<span id="settingsLink" class="pull-right"><a href="/user/' + userslug + '/settings">settings</a></span>\
<span id="favouritesLink" class="pull-right"><a href="/user/' + userslug + '/favourites">favourites</a></span>\
<span class="pull-right"><a href="/user/' + userslug + '/followers">followers</a></span>\
<span class="pull-right"><a href="/user/' + userslug + '/following">following</a></span>\
<span id="editLink" class="pull-right"><a href="/user/' + userslug + '/edit">edit</a></span>\
</div>');
$('.account-username-box').append(links);

@ -85,7 +85,7 @@
li.setAttribute('data-pid', posts[i].pid);
li.innerHTML = '<a href="/users/' + posts[i].userslug + '"><img title="' + posts[i].username + '" style="width: 48px; height: 48px; /*temporary*/" class="img-rounded" src="' + posts[i].picture + '" class="" /></a>' +
li.innerHTML = '<a href="/user/' + posts[i].userslug + '"><img title="' + posts[i].username + '" style="width: 48px; height: 48px; /*temporary*/" class="img-rounded" src="' + posts[i].picture + '" class="" /></a>' +
'<a href="/topic/' + posts[i].topicSlug + '#' + posts[i].pid + '">' +
'<p>' +
posts[i].content +

@ -53,14 +53,14 @@
var userLabel = rightMenu.find('#user_label');
if (userLabel.length) {
if (data['userslug'])
userLabel.attr('href', '/users/' + data['userslug']);
userLabel.attr('href', '/user/' + data['userslug']);
if (data['picture'])
userLabel.find('img').attr('src', data['picture']);
if (data['username'])
userLabel.find('span').html(data['username']);
} else {
var userli = $('<li> \
<a id="user_label" href="/users/' + data['userslug'] + '"> \
<a id="user_label" href="/user/' + data['userslug'] + '"> \
<img src="' + data['picture'] + '"/> \
<span>' + data['username'] + '</span> \
</a> \

@ -3,7 +3,7 @@
<div class="account-username-box" data-userslug="{userslug}">
<span class="account-username">
<a href="/users/{userslug}">{username}</a>
<a href="/user/{userslug}">{username}</a>
</span>
</div>

@ -39,7 +39,7 @@
<h3 id="myModalLabel">Upload Picture</h3>
</div>
<div class="modal-body">
<form id="uploadForm" action="{relative_path}/users/uploadpicture" method="post" enctype="multipart/form-data">
<form id="uploadForm" action="{relative_path}/user/uploadpicture" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="userPhoto">Upload a picture</label>
<input type="file" id="userPhotoInput" name="userPhoto">
@ -66,8 +66,8 @@
<div class="account-username-box" data-userslug="{userslug}">
<span class="account-username">
<a href="/users/{userslug}">{username}</a> <i class="icon-chevron-right"></i>
<a href="/users/{userslug}/edit">edit</a>
<a href="/user/{userslug}">{username}</a> <i class="icon-chevron-right"></i>
<a href="/user/{userslug}/edit">edit</a>
</span>
</div>

@ -3,8 +3,8 @@
<div class="account-username-box" data-userslug="{userslug}">
<span class="account-username">
<a href="/users/{userslug}">{username}</a> <i class="icon-chevron-right"></i>
<a href="/users/{userslug}/settings">settings</a>
<a href="/user/{userslug}">{username}</a> <i class="icon-chevron-right"></i>
<a href="/user/{userslug}/settings">settings</a>
</span>
</div>

@ -17,11 +17,11 @@
<ul id="users-container" class="users">
<!-- BEGIN users -->
<div class="users-box" data-uid="{users.uid}" data-admin="{users.administrator}" data-username="{users.username}" data-banned="{users.banned}">
<a href="/users/{users.userslug}">
<a href="/user/{users.userslug}">
<img src="{users.picture}" class="img-thumbnail"/>
</a>
<br/>
<a href="/users/{users.userslug}">{users.username}</a>
<a href="/user/{users.userslug}">{users.username}</a>
<br/>
<div title="reputation">
<span id='reputation'>{users.reputation}</span>

@ -69,7 +69,7 @@
</div>
<div class="block-content">
<!-- BEGIN active_users -->
<a href="/users/{active_users.userslug}"><img title="{active_users.username}" src="{active_users.picture}" class="img-rounded" /></a>
<a href="/user/{active_users.userslug}"><img title="{active_users.username}" src="{active_users.picture}" class="img-rounded" /></a>
<!-- END active_users -->
</div>
</div>
@ -79,7 +79,7 @@
</div>
<div class="block-content">
<!-- BEGIN moderators -->
<a href="/users/{moderators.userslug}"><img title="{moderators.username}" src="{moderators.picture}" class="img-rounded" /></a>
<a href="/user/{moderators.userslug}"><img title="{moderators.username}" src="{moderators.picture}" class="img-rounded" /></a>
<!-- END moderators -->
</div>
</div>

@ -18,16 +18,16 @@
"install/mail/?": "install/mail",
"install/social/?": "install/social",
"install/privileges/?": "install/privileges",
"users-sort-posts": "users",
"users-latest": "users",
"users-sort-reputation": "users",
"users-search": "users",
"users[^]*edit": "accountedit",
"users[^]*following": "following",
"users[^]*followers": "followers",
"users[^]*settings": "accountsettings",
"users[^]*favourites": "favourites",
"users/[^]*": "account",
"users/sort-posts": "users",
"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",
"recent": "recent",
"unread": "unread",
@ -36,7 +36,7 @@
"search": "search",
"reset/[^]*": "reset_code",
"reset": "reset"
},
"force_refresh": {
"logout": true

@ -1,7 +1,7 @@
<div class="well favourites">
<div class="account-username-box" data-userslug="{userslug}">
<span class="account-username">
<a href="/users/{userslug}">{username}</a>
<a href="/user/{userslug}">{username}</a>
</span>
</div>

@ -3,19 +3,19 @@
<div class="account-username-box" data-userslug="{userslug}">
<span class="account-username">
<a href="/users/{userslug}">{username}</a> <i class="icon-chevron-right"></i>
<a href="/users/{userslug}/followers">followers</a>
<a href="/user/{userslug}">{username}</a> <i class="icon-chevron-right"></i>
<a href="/user/{userslug}/followers">followers</a>
</span>
</div>
<div>
<!-- BEGIN followers -->
<div class="users-box">
<a href="/users/{followers.userslug}">
<a href="/user/{followers.userslug}">
<img src="{followers.picture}" class="img-thumbnail"/>
</a>
<br/>
<a href="/users/{followers.userslug}">{followers.username}</a>
<a href="/user/{followers.userslug}">{followers.username}</a>
<br/>
<div title="reputation">
<span class='formatted-number'>{followers.reputation}</span>

@ -3,19 +3,19 @@
<div class="account-username-box" data-userslug="{userslug}">
<span class="account-username">
<a href="/users/{userslug}">{username}</a> <i class="icon-chevron-right"></i>
<a href="/users/{userslug}/following">following</a>
<a href="/user/{userslug}">{username}</a> <i class="icon-chevron-right"></i>
<a href="/user/{userslug}/following">following</a>
</span>
</div>
<div>
<!-- BEGIN following -->
<div class="users-box">
<a href="/users/{following.userslug}">
<a href="/user/{following.userslug}">
<img src="{following.picture}" class="img-thumbnail"/>
</a>
<br/>
<a href="/users/{following.userslug}">{following.username}</a>
<a href="/user/{following.userslug}">{following.username}</a>
<br/>
<div title="reputation">
<span class='formatted-number'>{following.reputation}</span>

@ -18,7 +18,7 @@
<li class="row post-row main-post" data-pid="{main_posts.pid}" data-uid="{main_posts.uid}" data-username="{main_posts.username}" data-deleted="{main_posts.deleted}">
<div class="col-md-12">
<div class="post-block">
<a class="avatar" href="/users/{main_posts.userslug}">
<a class="avatar" href="/user/{main_posts.userslug}">
<img src="{main_posts.picture}" align="left" class="img-thumbnail" width=150 height=150 /><br />
</a>
<h3>
@ -28,11 +28,11 @@
<div class="topic-buttons">
<div class="btn-group">
<button class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" type="button" title="Posted by {main_posts.username}">
<span class="username-field" href="/users/{main_posts.userslug}">{main_posts.username}&nbsp;</span>
<span class="username-field" href="/user/{main_posts.userslug}">{main_posts.username}&nbsp;</span>
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="/users/{main_posts.userslug}"><i class="icon-user"></i> Profile</a></li>
<li><a href="/user/{main_posts.userslug}"><i class="icon-user"></i> Profile</a></li>
<li><div class="chat"><i class="icon-comment"></i> Chat</div></li>
</ul>
</div>
@ -60,7 +60,7 @@
<div class="post-info">
<span class="pull-right">
posted <span class="relativeTimeAgo">{main_posts.relativeTime} ago</span>
<span class="{main_posts.edited-class}">| last edited by <strong><a href="/users/{main_posts.editorslug}">{main_posts.editorname}</a></strong> {main_posts.relativeEditTime} ago</span>
<span class="{main_posts.edited-class}">| last edited by <strong><a href="/user/{main_posts.editorslug}">{main_posts.editorname}</a></strong> {main_posts.relativeEditTime} ago</span>
</span>
<div style="clear:both;"></div>
</div>
@ -73,7 +73,7 @@
<a id="post_anchor_{posts.pid}" name="{posts.pid}"></a>
<li class="row post-row sub-posts" data-pid="{posts.pid}" data-uid="{posts.uid}" data-username="{posts.username}" data-deleted="{posts.deleted}">
<div class="col-md-1 profile-image-block hidden-xs hidden-sm">
<a href="/users/{posts.userslug}">
<a href="/user/{posts.userslug}">
<img src="{posts.picture}" align="left" class="img-thumbnail" />
</a>
<span class="label label-danger {posts.show_banned}">banned</span>
@ -83,12 +83,12 @@
<div class="topic-buttons">
<div class="btn-group">
<button class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" type="button" title="Posted by {posts.username}">
<span class="username-field" href="/users/{posts.userslug}">{posts.username}&nbsp;</span>
<span class="username-field" href="/user/{posts.userslug}">{posts.username}&nbsp;</span>
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="/users/{posts.userslug}"><i class="icon-user"></i> Profile</a></li>
<li><a href="/user/{posts.userslug}"><i class="icon-user"></i> Profile</a></li>
<li><div class="chat"><i class="icon-comment"></i> Chat</div></li>
</ul>
</div>
@ -115,7 +115,7 @@
<div class="post-info">
<span class="pull-right">
posted <span class="relativeTimeAgo">{posts.relativeTime} ago</span>
<span class="{posts.edited-class}">| last edited by <strong><a href="/users/{posts.editorslug}">{posts.editorname}</a></strong> {posts.relativeEditTime} ago</span>
<span class="{posts.edited-class}">| last edited by <strong><a href="/user/{posts.editorslug}">{posts.editorname}</a></strong> {posts.relativeEditTime} ago</span>
</span>
<div style="clear:both;"></div>
</div>

@ -1,9 +1,9 @@
<div class="users">
<ul class="nav nav-pills">
<li class=''><a href='/users-latest'>Latest Users</a></li>
<li class=''><a href='/users-sort-posts'>Top Posters</a></li>
<li class=''><a href='/users-sort-reputation'>Most Reputation</a></li>
<li class=''><a href='/users-search'>Search</a></li>
<li class=''><a href='/users/latest'>Latest Users</a></li>
<li class=''><a href='/users/sort-posts'>Top Posters</a></li>
<li class=''><a href='/users/sort-reputation'>Most Reputation</a></li>
<li class=''><a href='/users/search'>Search</a></li>
</ul>
<br />
@ -20,11 +20,11 @@
<ul id="users-container" class="users-container">
<!-- BEGIN users -->
<div class="users-box">
<a href="/users/{users.userslug}">
<a href="/user/{users.userslug}">
<img src="{users.picture}" class="img-thumbnail"/>
</a>
<br/>
<a href="/users/{users.userslug}">{users.username}</a>
<a href="/user/{users.userslug}">{users.username}</a>
<br/>
<div title="reputation">
<span class='formatted-number'>{users.reputation}</span>

@ -248,7 +248,7 @@ var RDB = require('./redis.js'),
};
io.sockets. in ('topic_' + tid).emit('event:new_post', socketData);
io.sockets. in ('recent_posts').emit('event:new_post', socketData);
io.sockets. in ('users/' + uid).emit('event:new_post', socketData);
io.sockets. in ('user/' + uid).emit('event:new_post', socketData);
});
callback(null, 'Reply successful');

@ -36,43 +36,43 @@ var user = require('./../user.js'),
});
});
app.get('/users-latest', function(req, res) {
app.get('/users/latest', function(req, res) {
app.build_header({
req: req,
res: res
}, function(err, header) {
res.send(header + app.create_route("users-latest", "users") + templates['footer']);
res.send(header + app.create_route("users/latest", "users") + templates['footer']);
});
});
app.get('/users-sort-posts', function(req, res) {
app.get('/users/sort-posts', function(req, res) {
app.build_header({
req: req,
res: res
}, function(err, header) {
res.send(header + app.create_route("users-sort-posts", "users") + templates['footer']);
res.send(header + app.create_route("users/sort-posts", "users") + templates['footer']);
});
});
app.get('/users-sort-reputation', function(req, res) {
app.get('/users/sort-reputation', function(req, res) {
app.build_header({
req: req,
res: res
}, function(err, header) {
res.send(header + app.create_route("users-sort-reputation", "users") + templates['footer']);
res.send(header + app.create_route("users/sort-reputation", "users") + templates['footer']);
});
});
app.get('/users-search', function(req, res) {
app.get('/users/search', function(req, res) {
app.build_header({
req: req,
res: res
}, function(err, header) {
res.send(header + app.create_route("users-search", "users") + templates['footer']);
res.send(header + app.create_route("users/search", "users") + templates['footer']);
});
});
app.get('/users/:userslug', function(req, res, next) {
app.get('/user/:userslug', function(req, res, next) {
if (!req.params.userslug) {
next();
@ -88,13 +88,13 @@ var user = require('./../user.js'),
req: req,
res: res
}, function(err, header) {
res.send(header + app.create_route('users/' + req.params.userslug, 'account') + templates['footer']);
res.send(header + app.create_route('user/' + req.params.userslug, 'account') + templates['footer']);
});
});
});
app.get('/users/:userslug/edit', function(req, res) {
app.get('/user/:userslug/edit', function(req, res) {
if (!req.user)
return res.redirect('/403');
@ -105,7 +105,7 @@ var user = require('./../user.js'),
req: req,
res: res
}, function(err, header) {
res.send(header + app.create_route('users/' + req.params.userslug + '/edit', 'accountedit') + templates['footer']);
res.send(header + app.create_route('user/' + req.params.userslug + '/edit', 'accountedit') + templates['footer']);
});
} else {
return res.redirect('/404');
@ -113,7 +113,7 @@ var user = require('./../user.js'),
});
});
app.get('/users/:userslug/settings', function(req, res) {
app.get('/user/:userslug/settings', function(req, res) {
if (!req.user)
return res.redirect('/403');
@ -124,7 +124,7 @@ var user = require('./../user.js'),
req: req,
res: res
}, function(err, header) {
res.send(header + app.create_route('users/' + req.params.userslug + '/settings', 'accountsettings') + templates['footer']);
res.send(header + app.create_route('user/' + req.params.userslug + '/settings', 'accountsettings') + templates['footer']);
})
} else {
return res.redirect('/404');
@ -132,7 +132,7 @@ var user = require('./../user.js'),
});
});
app.post('/users/uploadpicture', function(req, res) {
app.post('/user/uploadpicture', function(req, res) {
if (!req.user)
return res.redirect('/403');
@ -218,7 +218,7 @@ var user = require('./../user.js'),
is.pipe(os);
}
app.get('/users/:userslug/following', function(req, res) {
app.get('/user/:userslug/following', function(req, res) {
if (!req.user)
return res.redirect('/403');
@ -233,12 +233,12 @@ var user = require('./../user.js'),
req: req,
res: res
}, function(err, header) {
res.send(header + app.create_route('users/' + req.params.userslug + '/following', 'following') + templates['footer']);
res.send(header + app.create_route('user/' + req.params.userslug + '/following', 'following') + templates['footer']);
});
});
});
app.get('/users/:userslug/followers', function(req, res) {
app.get('/user/:userslug/followers', function(req, res) {
if (!req.user)
return res.redirect('/403');
@ -252,12 +252,12 @@ var user = require('./../user.js'),
req: req,
res: res
}, function(err, header) {
res.send(header + app.create_route('users/' + req.params.userslug + '/followers', 'followers') + templates['footer']);
res.send(header + app.create_route('user/' + req.params.userslug + '/followers', 'followers') + templates['footer']);
});
});
});
app.get('/users/:userslug/favourites', function(req, res) {
app.get('/user/:userslug/favourites', function(req, res) {
if (!req.user)
return res.redirect('/403');
@ -271,12 +271,12 @@ var user = require('./../user.js'),
req: req,
res: res
}, function(err, header) {
res.send(header + app.create_route('users/' + req.params.userslug + '/favourites', 'favourites') + templates['footer']);
res.send(header + app.create_route('user/' + req.params.userslug + '/favourites', 'favourites') + templates['footer']);
});
});
});
app.get('/api/users/:userslug/following', function(req, res) {
app.get('/api/user/:userslug/following', function(req, res) {
var callerUID = req.user ? req.user.uid : 0;
getUserDataByUserSlug(req.params.userslug, callerUID, function(userData) {
@ -295,7 +295,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/users/:userslug/followers', function(req, res) {
app.get('/api/user/:userslug/followers', function(req, res) {
var callerUID = req.user ? req.user.uid : 0;
getUserDataByUserSlug(req.params.userslug, callerUID, function(userData) {
@ -313,7 +313,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/users/:userslug/edit', function(req, res) {
app.get('/api/user/:userslug/edit', function(req, res) {
var callerUID = req.user ? req.user.uid : 0;
getUserDataByUserSlug(req.params.userslug, callerUID, function(userData) {
@ -321,7 +321,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/users/:userslug/settings', function(req, res, next) {
app.get('/api/user/:userslug/settings', function(req, res, next) {
var callerUID = req.user ? req.user.uid : 0;
user.get_uid_by_userslug(req.params.userslug, function(err, uid) {
@ -357,7 +357,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/users/:userslug/favourites', function(req, res, next) {
app.get('/api/user/:userslug/favourites', function(req, res, next) {
var callerUID = req.user ? req.user.uid : 0;
user.get_uid_by_userslug(req.params.userslug, function(err, uid) {
@ -396,7 +396,7 @@ var user = require('./../user.js'),
});
});
app.get('/api/users/:userslug', function(req, res) {
app.get('/api/user/:userslug', function(req, res) {
var callerUID = req.user ? req.user.uid : 0;
getUserDataByUserSlug(req.params.userslug, callerUID, function(userData) {
@ -428,10 +428,10 @@ var user = require('./../user.js'),
});
app.get('/api/users', getUsersSortedByJoinDate);
app.get('/api/users-sort-posts', getUsersSortedByPosts);
app.get('/api/users-sort-reputation', getUsersSortedByReputation);
app.get('/api/users-latest', getUsersSortedByJoinDate);
app.get('/api/users-search', getUsersForSearch);
app.get('/api/users/sort-posts', getUsersSortedByPosts);
app.get('/api/users/sort-reputation', getUsersSortedByReputation);
app.get('/api/users/latest', getUsersSortedByJoinDate);
app.get('/api/users/search', getUsersForSearch);
function getUsersSortedByJoinDate(req, res) {

@ -697,7 +697,7 @@ schema = require('./schema.js'),
Topics.getTopicForCategoryView(tid, uid, function(topicData) {
io.sockets. in ('category_' + category_id).emit('event:new_topic', topicData);
io.sockets. in ('recent_posts').emit('event:new_topic', topicData);
io.sockets. in ('users/' + uid).emit('event:new_post', {
io.sockets. in ('user/' + uid).emit('event:new_post', {
posts: postData
});
});

@ -200,7 +200,7 @@ var express = require('express'),
if ((route === 'login' || route === 'register') && (req.user && req.user.uid > 0)) {
user.getUserField(req.user.uid, 'userslug', function(err, userslug) {
res.redirect('/users/' + userslug);
res.redirect('/user/' + userslug);
});
return;
}

@ -135,7 +135,7 @@ var SocketIO = require('socket.io').listen(global.server, {
var usernames = [];
for (var i = 0, ii = users.length; i < ii; ++i) {
usernames[i] = '<strong>' + '<a href="/users/' + users[i].userslug + '">' + users[i].username + '</a></strong>';
usernames[i] = '<strong>' + '<a href="/user/' + users[i].userslug + '">' + users[i].username + '</a></strong>';
}
var joiner = anonymousCount + userCount == 1 ? 'is' : 'are',

Loading…
Cancel
Save