diff --git a/public/language/en-GB/topic.json b/public/language/en-GB/topic.json index 0ecc3cbb74..94a3b5db3f 100644 --- a/public/language/en-GB/topic.json +++ b/public/language/en-GB/topic.json @@ -140,7 +140,7 @@ "post_moved": "Post moved!", "fork_topic": "Fork Topic", "enter-new-topic-title": "Enter new topic title", - "fork_topic_instruction": "Click the posts you want to fork", + "fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic", "fork_no_pids": "No posts selected!", "no-posts-selected": "No posts selected!", "x-posts-selected": "%1 post(s) selected", @@ -155,6 +155,7 @@ "merge-new-title-for-topic": "New title for topic", "topic-id": "Topic ID", "move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic", + "move_topic_instruction": "Select the target category and then click move", "change_owner_instruction": "Click the posts you want to assign to another user", "composer.title_placeholder": "Enter your topic title here...", diff --git a/public/scss/generics.scss b/public/scss/generics.scss index 426b816fc0..12be1f0854 100644 --- a/public/scss/generics.scss +++ b/public/scss/generics.scss @@ -3,18 +3,29 @@ @include pointer; } -#move_thread_modal .category-list { - height: 500px; - overflow-y: auto; - overflow-x: hidden; -} - .topic-watch-dropdown { .help-text { margin-left: 20px; } } +[component="category-selector"], .category-dropdown-container { + #category-dropdown-check:checked + .dropdown-menu { + display: block; + } +} + +.category-dropdown-container.right .category-dropdown-menu { + --bs-position: end; +} + +.category-dropdown-menu { + max-height: 500px; + min-height: 300px; + overflow-y: auto; + overflow-x: hidden; +} + .category-list { padding: 0; diff --git a/public/src/client/topic/change-owner.js b/public/src/client/topic/change-owner.js index 09c875d2f4..725080db6f 100644 --- a/public/src/client/topic/change-owner.js +++ b/public/src/client/topic/change-owner.js @@ -15,14 +15,14 @@ define('forum/topic/change-owner', [ if (modal) { return; } - app.parseAndTranslate('partials/change_owner_modal', {}, function (html) { + app.parseAndTranslate('modals/change-owner', {}, function (html) { modal = html; commit = modal.find('#change_owner_commit'); $('body').append(modal); - modal.find('.close,#change_owner_cancel').on('click', closeModal); + modal.find('#change_owner_cancel').on('click', closeModal); modal.find('#username').on('keyup', checkButtonEnable); postSelect.init(onPostToggled, { allowMainPostSelect: true, diff --git a/public/src/client/topic/delete-posts.js b/public/src/client/topic/delete-posts.js index 93d3e0259e..49361c4c25 100644 --- a/public/src/client/topic/delete-posts.js +++ b/public/src/client/topic/delete-posts.js @@ -18,7 +18,7 @@ define('forum/topic/delete-posts', [ return; } - app.parseAndTranslate('partials/delete_posts_modal', {}, function (html) { + app.parseAndTranslate('modals/delete-posts', {}, function (html) { modal = html; $('body').append(modal); @@ -26,7 +26,7 @@ define('forum/topic/delete-posts', [ deleteBtn = modal.find('#delete_posts_confirm'); purgeBtn = modal.find('#purge_posts_confirm'); - modal.find('.close,#delete_posts_cancel').on('click', closeModal); + modal.find('#delete_posts_cancel').on('click', closeModal); postSelect.init(function () { checkButtonEnable(); diff --git a/public/src/client/topic/fork.js b/public/src/client/topic/fork.js index 28d2573fc8..c0e67b6adf 100644 --- a/public/src/client/topic/fork.js +++ b/public/src/client/topic/fork.js @@ -16,14 +16,14 @@ define('forum/topic/fork', ['components', 'postSelect', 'alerts'], function (com return; } - app.parseAndTranslate('partials/fork_thread_modal', {}, function (html) { + app.parseAndTranslate('modals/fork-topic', {}, function (html) { forkModal = html; forkCommit = forkModal.find('#fork_thread_commit'); $('body').append(forkModal); - forkModal.find('.close,#fork_thread_cancel').on('click', closeForkModal); + forkModal.find('#fork_thread_cancel').on('click', closeForkModal); forkModal.find('#fork-title').on('keyup', checkForkButtonEnable); postSelect.init(function () { diff --git a/public/src/client/topic/merge.js b/public/src/client/topic/merge.js index 2be7e35378..1dce760c1b 100644 --- a/public/src/client/topic/merge.js +++ b/public/src/client/topic/merge.js @@ -13,14 +13,14 @@ define('forum/topic/merge', ['search', 'alerts', 'api'], function (search, alert if (modal) { return; } - app.parseAndTranslate('partials/merge_topics_modal', {}, function (html) { + app.parseAndTranslate('modals/merge-topic', {}, function (html) { modal = html; $('body').append(modal); mergeBtn = modal.find('#merge_topics_confirm'); - modal.find('.close,#merge_topics_cancel').on('click', closeModal); + modal.find('#merge_topics_cancel').on('click', closeModal); $('#content').on('click', '[component="topic/select"]', onTopicClicked); @@ -111,7 +111,7 @@ define('forum/topic/merge', ['search', 'alerts', 'api'], function (search, alert }); if (tids.length) { - app.parseAndTranslate('partials/merge_topics_modal', { + app.parseAndTranslate('modals/merge-topic', { config: config, topics: topics, }, function (html) { diff --git a/public/src/client/topic/move-post.js b/public/src/client/topic/move-post.js index 707c99d449..5d02be63ee 100644 --- a/public/src/client/topic/move-post.js +++ b/public/src/client/topic/move-post.js @@ -22,7 +22,7 @@ define('forum/topic/move-post', [ $('body').append(moveModal); - moveModal.find('.close,#move_posts_cancel').on('click', closeMoveModal); + moveModal.find('#move_posts_cancel').on('click', closeMoveModal); moveModal.find('#topicId').on('keyup', utils.debounce(checkMoveButtonEnable, 200)); postSelect.init(onPostToggled); showPostsSelected(); diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js index a22ff6ef25..c856c8a27b 100644 --- a/public/src/client/topic/move.js +++ b/public/src/client/topic/move.js @@ -1,12 +1,17 @@ 'use strict'; -define('forum/topic/move', ['categorySelector', 'alerts', 'hooks'], function (categorySelector, alerts, hooks) { +define('forum/topic/move', [ + 'categorySelector', 'alerts', 'hooks', +], function (categorySelector, alerts, hooks) { const Move = {}; let modal; let selectedCategory; Move.init = function (tids, currentCid, onComplete) { + if (modal) { + return; + } Move.tids = tids; Move.currentCid = currentCid; Move.onComplete = onComplete; @@ -16,16 +21,12 @@ define('forum/topic/move', ['categorySelector', 'alerts', 'hooks'], function (ca }; function showModal() { - app.parseAndTranslate('partials/move_thread_modal', {}, function (html) { + app.parseAndTranslate('modals/move-topic', {}, function (html) { modal = html; - modal.on('hidden.bs.modal', function () { - modal.remove(); - }); - - modal.find('#move-confirm').addClass('hide'); + $('body').append(modal); if (Move.moveAll || (Move.tids && Move.tids.length > 1)) { - modal.find('.modal-header h3').translateText('[[topic:move_topics]]'); + modal.find('.card-header').translateText('[[topic:move_topics]]'); } categorySelector.init(modal.find('[component="category-selector"]'), { @@ -34,8 +35,7 @@ define('forum/topic/move', ['categorySelector', 'alerts', 'hooks'], function (ca }); modal.find('#move_thread_commit').on('click', onCommitClicked); - - modal.modal('show'); + modal.find('#move_topic_cancel').on('click', closeMoveModal); }); } @@ -49,8 +49,7 @@ define('forum/topic/move', ['categorySelector', 'alerts', 'hooks'], function (ca if (!commitEl.prop('disabled') && selectedCategory && selectedCategory.cid) { commitEl.prop('disabled', true); - - modal.modal('hide'); + closeMoveModal(); let message = '[[topic:topic_move_success, ' + selectedCategory.name + ']]'; if (Move.tids && Move.tids.length > 1) { message = '[[topic:topic_move_multiple_success, ' + selectedCategory.name + ']]'; @@ -98,5 +97,12 @@ define('forum/topic/move', ['categorySelector', 'alerts', 'hooks'], function (ca }); } + function closeMoveModal() { + if (modal) { + modal.remove(); + modal = null; + } + } + return Move; }); diff --git a/public/src/modules/search.js b/public/src/modules/search.js index fec4d874b5..1fa83e10d1 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -171,7 +171,7 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla }, 500)); let mousedownOnResults = false; - quickSearchResults.on('mousedown', function () { + quickSearchResults.on('mousedown', '.quick-search-results > *', function () { $(window).one('mouseup', function () { quickSearchResults.addClass('hidden'); }); diff --git a/src/topics/events.js b/src/topics/events.js index 1d6e67fd11..8e2b8e04e1 100644 --- a/src/topics/events.js +++ b/src/topics/events.js @@ -28,7 +28,7 @@ Events._types = { text: '[[topic:pinned-by]]', }, unpin: { - icon: 'fa-thumb-tack', + icon: 'fa-thumb-tack fa-rotate-90', text: '[[topic:unpinned-by]]', }, lock: { diff --git a/src/views/modals/change-owner.tpl b/src/views/modals/change-owner.tpl new file mode 100644 index 0000000000..08471fca26 --- /dev/null +++ b/src/views/modals/change-owner.tpl @@ -0,0 +1,24 @@ +
+
[[topic:thread_tools.change_owner]]
+
+

+ [[topic:change_owner_instruction]] +

+
+ +
+ + + + +
+
+

+ +

+
+ +
diff --git a/src/views/modals/delete-posts.tpl b/src/views/modals/delete-posts.tpl new file mode 100644 index 0000000000..d585d99607 --- /dev/null +++ b/src/views/modals/delete-posts.tpl @@ -0,0 +1,16 @@ +
+
+ [[topic:thread_tools.delete-posts]] +
+
+

+ [[topic:delete_posts_instruction]] +

+

+
+ +
\ No newline at end of file diff --git a/src/views/modals/fork-topic.tpl b/src/views/modals/fork-topic.tpl new file mode 100644 index 0000000000..5fce825aa8 --- /dev/null +++ b/src/views/modals/fork-topic.tpl @@ -0,0 +1,19 @@ +
+
+ [[topic:fork_topic]] +
+
+

+ [[topic:fork_topic_instruction]] +

+
+ + +
+ +
+ +
\ No newline at end of file diff --git a/src/views/modals/merge-topic.tpl b/src/views/modals/merge-topic.tpl new file mode 100644 index 0000000000..aaeefb6a6e --- /dev/null +++ b/src/views/modals/merge-topic.tpl @@ -0,0 +1,55 @@ +
+
+ +
+ +
+
[[topic:thread_tools.merge_topics]]
+
+

+ [[topic:merge_topics_instruction]] +

+

+

+ + +
+

+ +

[[topic:merge-topic-list-title]]

+ +

+ [[topic:merge-options]] +

+
+

+ [[topic:merge-select-main-topic]] +

+

+ +

+

+ [[topic:merge-new-title-for-topic]] +

+

+ +

+
+
+ +
+
\ No newline at end of file diff --git a/src/views/modals/move-post.tpl b/src/views/modals/move-post.tpl index 1c08be1bfe..7880825b54 100644 --- a/src/views/modals/move-post.tpl +++ b/src/views/modals/move-post.tpl @@ -3,21 +3,19 @@ [[topic:thread_tools.move-posts]]
+

+ [[topic:move_posts_instruction]] +

- +

-

- [[topic:move_posts_instruction]] -

\ No newline at end of file diff --git a/src/views/modals/move-topic.tpl b/src/views/modals/move-topic.tpl new file mode 100644 index 0000000000..1d7cb24883 --- /dev/null +++ b/src/views/modals/move-topic.tpl @@ -0,0 +1,15 @@ +
+
+ [[topic:move_topic]] +
+
+

+ [[topic:move_topic_instruction]] +

+ +
+ +
\ No newline at end of file