replace self links client side

v1.18.x
barisusakli 11 years ago
parent c8efeb7d7c
commit 63d88957a8

@ -90,6 +90,7 @@ var socket,
socket.on('event:connect', function (data) {
app.username = data.username;
app.userslug = data.userslug;
app.uid = data.uid;
app.isAdmin = data.isAdmin;
@ -285,6 +286,16 @@ var socket,
});
};
app.replaceSelfLinks = function(selector) {
selector = selector || $('a');
selector.each(function() {
var href = $(this).attr('href')
if (href && app.userslug) {
$(this).attr('href', href.replace(/\[self\]/g, app.userslug));
}
});
};
app.processPage = function () {
app.populateOnlineUsers();
@ -299,6 +310,8 @@ var socket,
app.createStatusTooltips();
app.replaceSelfLinks();
setTimeout(function () {
window.scrollTo(0, 1); // rehide address bar on mobile after page load completes.
}, 100);

@ -52,20 +52,6 @@ middleware.redirectToAccountIfLoggedIn = function(req, res, next) {
}
};
middleware.redirectToSelf = function(req, res, next) {
if (req.user && req.params.userslug === '[self]') {
user.getUserField(req.user.uid, 'userslug', function (err, userslug) {
if(res.locals.isAPI) {
res.json(302, '/user/' + userslug + (req.params.section ? '/' + req.params.section : ''));
} else {
res.redirect('/user/' + userslug + (req.params.section ? '/' + req.params.section : ''));
}
});
} else {
next();
}
};
middleware.addSlug = function(req, res, next) {
function redirect(method, id, name) {
method(id, 'slug', function(err, slug) {

@ -73,8 +73,6 @@ function categoryRoutes(app, middleware, controllers) {
}
function accountRoutes(app, middleware, controllers) {
app.get('/user/:userslug/:section?', middleware.redirectToSelf);
app.get('/api/user/:userslug/:section?', middleware.redirectToSelf);
app.get('/user/:userslug', middleware.buildHeader, middleware.checkGlobalPrivacySettings, controllers.accounts.getAccount);
app.get('/api/user/:userslug', middleware.checkGlobalPrivacySettings, controllers.accounts.getAccount);

@ -79,8 +79,8 @@ Sockets.init = function(server) {
socket.join('uid_' + uid);
async.parallel({
username: function(next) {
user.getUserField(uid, 'username', next);
user: function(next) {
user.getUserFields(uid, ['username', 'userslug'], next);
},
isAdmin: function(next) {
user.isAdministrator(uid, next);
@ -88,7 +88,8 @@ Sockets.init = function(server) {
}, function(err, userData) {
socket.emit('event:connect', {
status: 1,
username: userData.username,
username: userData.user.username,
userslug: userData.user.userslug,
isAdmin: userData.isAdmin,
uid: uid
});

Loading…
Cancel
Save