From bdefebeea086dc841e519d7241ff722222ad76f4 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 2 Apr 2014 13:58:10 -0400 Subject: [PATCH] reverting some of my code and fixed #1322 properly --- public/src/forum/topic.js | 21 +++++++++++++++------ src/socket.io/posts.js | 10 ++++++++++ src/topics/create.js | 4 ++-- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/public/src/forum/topic.js b/public/src/forum/topic.js index 3b27079dd7..8188654401 100644 --- a/public/src/forum/topic.js +++ b/public/src/forum/topic.js @@ -755,9 +755,18 @@ define(['forum/pagination', 'forum/topic/threadTools', 'forum/topic/postTools'], } function onNewPostsLoaded(html, posts) { - for (var x = 0, numPosts = posts.length; x < numPosts; x++) { - toggle_mod_tools(posts[x].pid, posts[x].display_moderator_tools); - } + function getPostPrivileges(pid) { + socket.emit('posts.getPrivileges', pid, function(err, privileges) { + if(err) { + return app.alertError(err.message); + } + toggle_mod_tools(html, privileges); + }); + } + + for (var x = 0, numPosts = posts.length; x < numPosts; x++) { + getPostPrivileges(posts[x].pid); + } infiniteLoaderActive = false; @@ -771,9 +780,9 @@ define(['forum/pagination', 'forum/topic/threadTools', 'forum/topic/postTools'], showBottomPostBar(); } - - function toggle_mod_tools(pid, editable) { - $('#post-container li[data-pid="' + pid + '"]').find('.edit, .delete').toggleClass('none', !editable); + function toggle_mod_tools(postHtml, privileges) { + postHtml.find('.edit, .delete').toggleClass('none', !privileges.editable); + postHtml.find('.move').toggleClass('none', !privileges.move); } function updatePostCount() { diff --git a/src/socket.io/posts.js b/src/socket.io/posts.js index ad38842402..1f1d84c136 100644 --- a/src/socket.io/posts.js +++ b/src/socket.io/posts.js @@ -219,6 +219,16 @@ function deleteOrRestore(command, socket, data, callback) { }); } +SocketPosts.getPrivileges = function(socket, pid, callback) { + postTools.privileges(pid, socket.uid, function(err, privileges) { + if(err) { + return callback(err); + } + privileges.pid = parseInt(pid, 10); + callback(null, privileges); + }); +}; + SocketPosts.getFavouritedUsers = function(socket, pid, callback) { favourites.getFavouritedUidsByPids([pid], function(err, data) { diff --git a/src/topics/create.js b/src/topics/create.js index a2ff056d69..23f3496251 100644 --- a/src/topics/create.js +++ b/src/topics/create.js @@ -222,8 +222,8 @@ module.exports = function(Topics) { postData.index = index; postData.favourited = false; postData.votes = 0; - postData.display_moderator_tools = false; - postData.display_move_tools = false; + postData.display_moderator_tools = true; + postData.display_move_tools = privileges.admin || privileges.moderator; postData.relativeTime = utils.toISOString(postData.timestamp); next(null, postData);