diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index bc2d297112..ca12c815f4 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -25,14 +25,7 @@ define('forum/topic/posts', [ data.loggedIn = app.user.uid ? true : false; data.privileges = ajaxify.data.privileges; - data.posts.forEach(function (post) { - post.selfPost = !!app.user.uid && parseInt(post.uid, 10) === parseInt(app.user.uid, 10); - post.display_edit_tools = (ajaxify.data.privileges['posts:edit'] && post.selfPost) || ajaxify.data.privileges.isAdminOrMod; - post.display_delete_tools = (ajaxify.data.privileges['posts:delete'] && post.selfPost) || ajaxify.data.privileges.isAdminOrMod; - post.display_moderator_tools = post.display_edit_tools || post.display_delete_tools; - post.display_move_tools = ajaxify.data.privileges.isAdminOrMod; - post.display_post_menu = ajaxify.data.privileges.isAdminOrMod || (post.selfPost && !ajaxify.data.locked) || ((app.user.uid || ajaxify.data.postSharing.length) && !post.deleted); - }); + Posts.modifyPostsByPrivileges(data.posts); updatePostCounts(data.posts); @@ -46,6 +39,17 @@ define('forum/topic/posts', [ } }; + Posts.modifyPostsByPrivileges = function (posts) { + posts.forEach(function (post) { + post.selfPost = !!app.user.uid && parseInt(post.uid, 10) === parseInt(app.user.uid, 10); + post.display_edit_tools = (ajaxify.data.privileges['posts:edit'] && post.selfPost) || ajaxify.data.privileges.isAdminOrMod; + post.display_delete_tools = (ajaxify.data.privileges['posts:delete'] && post.selfPost) || ajaxify.data.privileges.isAdminOrMod; + post.display_moderator_tools = post.display_edit_tools || post.display_delete_tools; + post.display_move_tools = ajaxify.data.privileges.isAdminOrMod; + post.display_post_menu = ajaxify.data.privileges.isAdminOrMod || (post.selfPost && !ajaxify.data.locked) || ((app.user.uid || ajaxify.data.postSharing.length) && !post.deleted); + }); + }; + function updatePostCounts(posts) { for (var i = 0; i < posts.length; ++i) { var cmp = components.get('user/postcount', posts[i].uid); diff --git a/public/src/client/topic/replies.js b/public/src/client/topic/replies.js index 64f5441ecd..ad461430be 100644 --- a/public/src/client/topic/replies.js +++ b/public/src/client/topic/replies.js @@ -1,8 +1,8 @@ 'use strict'; -/* globals define, app, ajaxify, bootbox, socket, templates, utils, config */ +/* globals define, app, ajaxify, socket */ -define('forum/topic/replies', ['navigator', 'components', 'translator'], function (navigator, components, translator) { +define('forum/topic/replies', ['navigator', 'components', 'forum/topic/posts'], function (navigator, components, posts) { var Replies = {}; @@ -19,7 +19,7 @@ define('forum/topic/replies', ['navigator', 'components', 'translator'], functio } function onRepliesClicked(button, tid) { - var post = button.parents('[data-pid]'); + var post = button.closest('[data-pid]'); var pid = post.data('pid'); var open = button.children('[component="post/replies/open"]'); var loading = button.children('[component="post/replies/loading"]'); @@ -40,16 +40,20 @@ define('forum/topic/replies', ['navigator', 'components', 'translator'], functio loading.addClass('hidden'); close.removeClass('hidden'); - templates.parse('partials/posts_list', data, function (html) { - translator.translate(html, function (translated) { - $('