diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js index 200a362b69..99564cd50c 100644 --- a/public/src/client/topic/events.js +++ b/public/src/client/topic/events.js @@ -82,12 +82,14 @@ define('forum/topic/events', [ } function onTopicPurged(data) { - ajaxify.go('category/' + ajaxify.data.cid); + if (ajaxify.data.category && ajaxify.data.category.slug) { + ajaxify.go('category/' + ajaxify.data.category.slug, null, true); + } } function onTopicMoved(data) { - if (data && data.tid > 0) { - ajaxify.go('topic/' + data.tid); + if (data && data.slug) { + ajaxify.go('topic/' + data.slug, null, true); } } diff --git a/src/socket.io/topics.js b/src/socket.io/topics.js index e609629ef0..d99fada364 100644 --- a/src/socket.io/topics.js +++ b/src/socket.io/topics.js @@ -322,7 +322,7 @@ SocketTopics.move = function(socket, data, callback) { } async.eachLimit(data.tids, 10, function(tid, next) { - var oldCid; + var topicData; async.waterfall([ function(next) { privileges.topics.canMove(tid, socket.uid, next); @@ -334,10 +334,10 @@ SocketTopics.move = function(socket, data, callback) { next(); }, function(next) { - topics.getTopicField(tid, 'cid', next); + topics.getTopicFields(tid, ['cid', 'slug'], next); }, - function(cid, next) { - oldCid = cid; + function(_topicData, next) { + topicData = _topicData; threadTools.move(tid, data.cid, socket.uid, next); } ], function(err) { @@ -346,11 +346,13 @@ SocketTopics.move = function(socket, data, callback) { } websockets.in('topic_' + tid).emit('event:topic_moved', { - tid: tid + tid: tid, + slug: topicData.slug }); - websockets.in('category_' + oldCid).emit('event:topic_moved', { - tid: tid + websockets.in('category_' + topicData.cid).emit('event:topic_moved', { + tid: tid, + slug: topicData.slug }); SocketTopics.sendNotificationToTopicOwner(tid, socket.uid, 'notifications:moved_your_topic');