diff --git a/public/src/client/categoryTools.js b/public/src/client/categoryTools.js index d5e69d1312..348ff684f8 100644 --- a/public/src/client/categoryTools.js +++ b/public/src/client/categoryTools.js @@ -13,38 +13,58 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', topicSelect.init(updateDropdownOptions); - $('.delete_thread').on('click', function(e) { - var tids = topicSelect.getSelectedTids(); - categoryCommand(isAny(isTopicDeleted, tids) ? 'restore' : 'delete', tids); + components.get('topic/delete').on('click', function() { + categoryCommand('delete', topicSelect.getSelectedTids()); return false; }); - $('.purge_thread').on('click', function() { + components.get('topic/restore').on('click', function() { + categoryCommand('restore', topicSelect.getSelectedTids()); + return false; + }); + + components.get('topic/purge').on('click', function() { categoryCommand('purge', topicSelect.getSelectedTids()); return false; }); - $('.lock_thread').on('click', function() { + components.get('topic/lock').on('click', function() { var tids = topicSelect.getSelectedTids(); if (tids.length) { - socket.emit(isAny(isTopicLocked, tids) ? 'topics.unlock' : 'topics.lock', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); + socket.emit('topics.lock', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); } return false; }); - $('.pin_thread').on('click', function() { + components.get('topic/unlock').on('click', function() { var tids = topicSelect.getSelectedTids(); if (tids.length) { - socket.emit(isAny(isTopicPinned, tids) ? 'topics.unpin' : 'topics.pin', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); + socket.emit('topics.unlock', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); } return false; }); - $('.markAsUnreadForAll').on('click', function() { + components.get('topic/pin').on('click', function() { + var tids = topicSelect.getSelectedTids(); + if (tids.length) { + socket.emit('topics.pin', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); + } + return false; + }); + + components.get('topic/unpin').on('click', function() { + var tids = topicSelect.getSelectedTids(); + if (tids.length) { + socket.emit('topics.unpin', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); + } + return false; + }); + + components.get('topic/mark-unread-for-all').on('click', function() { var tids = topicSelect.getSelectedTids(); if (tids.length) { socket.emit('topics.markAsUnreadForAll', tids, function(err) { - if(err) { + if (err) { return app.alertError(err.message); } app.alertSuccess('[[topic:markAsUnreadForAll.success]]'); @@ -56,7 +76,7 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', return false; }); - $('.move_thread').on('click', function() { + components.get('topic/move').on('click', function() { var tids = topicSelect.getSelectedTids(); if (tids.length) { @@ -65,7 +85,7 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', return false; }); - $('.move_all_threads').on('click', function() { + components.get('topic/move-all').on('click', function() { move.init(null, cid, function(err) { ajaxify.refresh(); }); @@ -130,16 +150,22 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', } function updateDropdownOptions() { + var tids = topicSelect.getSelectedTids(); var isAnyDeleted = isAny(isTopicDeleted, tids); var areAllDeleted = areAll(isTopicDeleted, tids); var isAnyPinned = isAny(isTopicPinned, tids); var isAnyLocked = isAny(isTopicLocked, tids); - $('.delete_thread span').translateHtml(' [[topic:thread_tools.' + (isAnyDeleted ? 'restore' : 'delete') + ']]'); - $('.pin_thread').translateHtml(' [[topic:thread_tools.' + (isAnyPinned ? 'unpin' : 'pin') + ']]'); - $('.lock_thread').translateHtml(' [[topic:thread_tools.' + (isAnyLocked ? 'un': '') + 'lock]]'); - $('.purge_thread').toggleClass('hidden', !areAllDeleted); + components.get('topic/delete').toggleClass('hidden', isAnyDeleted); + components.get('topic/restore').toggleClass('hidden', !isAnyDeleted); + components.get('topic/purge').toggleClass('hidden', !areAllDeleted); + + components.get('topic/lock').toggleClass('hidden', isAnyLocked); + components.get('topic/unlock').toggleClass('hidden', !isAnyLocked); + + components.get('topic/pin').toggleClass('hidden', isAnyPinned); + components.get('topic/unpin').toggleClass('hidden', !isAnyPinned); } function isAny(method, tids) { diff --git a/src/socket.io/topics.js b/src/socket.io/topics.js index 61ea05269f..d4bb12a993 100644 --- a/src/socket.io/topics.js +++ b/src/socket.io/topics.js @@ -204,6 +204,7 @@ SocketTopics.markAsUnreadForAll = function(socket, tids, callback) { return callback(err); } topics.pushUnreadCount(socket.uid); + callback(); }); }); };