From abb5e81d0d8cf886d4aa7e0ab3c807f4bac89d54 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 25 Aug 2020 21:43:05 -0400 Subject: [PATCH] feat: allow undo of topic move --- public/language/en-GB/topic.json | 3 ++- public/src/client/topic/move.js | 21 +++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/public/language/en-GB/topic.json b/public/language/en-GB/topic.json index 805ceb40cb..b8979e92d0 100644 --- a/public/language/en-GB/topic.json +++ b/public/language/en-GB/topic.json @@ -93,7 +93,8 @@ "thread_tools.merge_topics": "Merge Topics", "thread_tools.merge": "Merge", - "topic_move_success": "This topic has been successfully moved to %1", + "topic_move_success": "This topic has been successfully moved to %1. Click here to undo.", + "topic_move_undone": "Topic move undone", "post_delete_confirm": "Are you sure you want to delete this post?", "post_restore_confirm": "Are you sure you want to restore this post?", diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js index b29ae964e0..4b22ad5666 100644 --- a/public/src/client/topic/move.js +++ b/public/src/client/topic/move.js @@ -1,7 +1,7 @@ 'use strict'; -define('forum/topic/move', ['categorySelector'], function (categorySelector) { +define('forum/topic/move', ['categorySelector', 'alerts'], function (categorySelector, alerts) { var Move = {}; var modal; var selectedCategory; @@ -58,7 +58,22 @@ define('forum/topic/move', ['categorySelector'], function (categorySelector) { if (!commitEl.prop('disabled') && selectedCategory && selectedCategory.cid) { commitEl.prop('disabled', true); - moveTopics(); + modal.modal('hide'); + + alerts.alert({ + alert_id: 'tids_move_' + Move.tids.join(';'), + title: '[[topic:thread_tools.move]]', + message: '[[topic:topic_move_success, ' + selectedCategory.name + ']]', + type: 'success', + timeout: 5000, + timeoutfn: function () { + moveTopics(); + }, + clickfn: function (alert, params) { + delete params.timeoutfn; + app.alertSuccess('[[topic:topic_move_undone]]'); + }, + }); } } @@ -72,8 +87,6 @@ define('forum/topic/move', ['categorySelector'], function (categorySelector) { $(window).trigger('action:topic.move', data); socket.emit(Move.moveAll ? 'topics.moveAll' : 'topics.move', data, function (err) { - modal.modal('hide'); - if (err) { return app.alertError(err.message); }