diff --git a/public/src/forum/pagination.js b/public/src/forum/pagination.js index 3a95d250af..66db32c959 100644 --- a/public/src/forum/pagination.js +++ b/public/src/forum/pagination.js @@ -14,11 +14,11 @@ define(function() { $('.pagination') .on('click', '.previous', function() { - pagination.loadPage(pagination.currentPage - 1); + return pagination.loadPage(pagination.currentPage - 1); }).on('click', '.next', function() { - pagination.loadPage(pagination.currentPage + 1); + return pagination.loadPage(pagination.currentPage + 1); }).on('click', '.page', function() { - pagination.loadPage($(this).attr('data-page')); + return pagination.loadPage($(this).attr('data-page')); }).on('click', '.select_page', function(e) { e.preventDefault(); bootbox.prompt('Enter page number:', function(pageNum) { @@ -58,7 +58,7 @@ define(function() { for(var i=0; i 0) { if (pagesToShow[i] - 1 !== pagesToShow[i-1]) { - html += '
  • |
  • '; + html += '
  • |
  • '; } } html += '
  • ' + pagesToShow[i] + '
  • '; @@ -72,10 +72,11 @@ define(function() { pagination.loadPage = function(page, callback) { page = parseInt(page, 10); if(!utils.isNumber(page) || page < 1 || page > pagination.pageCount) { - return; + return false; } ajaxify.go(window.location.pathname.slice(1) + '?page=' + page); + return true; } function updatePageLinks() { diff --git a/public/src/forum/topic.js b/public/src/forum/topic.js index d83b62218f..99de78753f 100644 --- a/public/src/forum/topic.js +++ b/public/src/forum/topic.js @@ -396,7 +396,7 @@ define(['composer', 'forum/pagination'], function(composer, pagination) { socket.emit('posts.getRawPost', pid, function(err, post) { if(err) { - return app.alert(err.message); + return app.alertError(err.message); } var quoted = ''; if(post) { @@ -895,47 +895,34 @@ define(['composer', 'forum/pagination'], function(composer, pagination) { } function toggle_post_delete_state(pid) { - var postEl = $(document.querySelector('#post-container li[data-pid="' + pid + '"]')); + var postEl = $('#post-container li[data-pid="' + pid + '"]'); - if (postEl[0]) { - quoteEl = postEl.find('.quote'), - favEl = postEl.find('.favourite'), - replyEl = postEl.find('.post_reply'); + if (postEl.length) { + postEl.toggleClass('deleted'); - socket.emit('posts.getPrivileges', pid, function(err, privileges) { - if(err) { - return app.alert(err.message); - } + toggle_post_tools(pid, postEl.hasClass('deleted')); - if (privileges.editable) { - if (!postEl.hasClass('deleted')) { - toggle_post_tools(pid, false); - } else { - toggle_post_tools(pid, true); - } - } - - postEl.toggleClass('deleted'); - - updatePostCount(); - }); + updatePostCount(); } } - function toggle_post_tools(pid, state) { - var postEl = $(document.querySelector('#post-container li[data-pid="' + pid + '"]')), + function toggle_post_tools(pid, isDeleted) { + var postEl = $('#post-container li[data-pid="' + pid + '"]'), quoteEl = $(postEl[0].querySelector('.quote')), favEl = $(postEl[0].querySelector('.favourite')), - replyEl = $(postEl[0].querySelector('.post_reply')); + replyEl = $(postEl[0].querySelector('.post_reply')), + chatEl = $(postEl[0].querySelector('.chat')); - if (state) { - quoteEl.removeClass('none'); - favEl.removeClass('none'); - replyEl.removeClass('none'); - } else { + if (isDeleted) { quoteEl.addClass('none'); favEl.addClass('none'); replyEl.addClass('none'); + chatEl.addClass('none'); + } else { + quoteEl.removeClass('none'); + favEl.removeClass('none'); + replyEl.removeClass('none'); + chatEl.removeClass('none'); } } diff --git a/src/socket.io/posts.js b/src/socket.io/posts.js index 14726ab0cb..cf5c05a444 100644 --- a/src/socket.io/posts.js +++ b/src/socket.io/posts.js @@ -93,7 +93,17 @@ SocketPosts.uploadFile = function(socket, data, callback) { }; SocketPosts.getRawPost = function(socket, pid, callback) { - posts.getPostField(pid, 'content', callback); + posts.getPostFields(pid, ['content', 'deleted'], function(err, data) { + if(err) { + return callback(err); + } + + if(data.deleted === '1') { + return callback(new Error('This post no longer exists')); + } + + callback(null, data.content); + }); }; SocketPosts.edit = function(socket, data, callback) {