closes #6358
parent
df770aed8e
commit
caf43e3025
@ -1,56 +1,95 @@
|
||||
'use strict';
|
||||
|
||||
|
||||
define('forum/topic/move-post', [], function () {
|
||||
define('forum/topic/move-post', ['components', 'postSelect'], function (components, postSelect) {
|
||||
var MovePost = {};
|
||||
|
||||
MovePost.openMovePostModal = function (button) {
|
||||
var moveModal;
|
||||
var moveCommit;
|
||||
|
||||
MovePost.init = function () {
|
||||
$('.topic').on('click', '[component="topic/move-posts"]', onMovePostsClicked);
|
||||
$(window).on('action:ajaxify.start', onAjaxifyStart);
|
||||
};
|
||||
|
||||
function onAjaxifyStart() {
|
||||
closeMoveModal();
|
||||
$(window).off('action:ajaxify.start', onAjaxifyStart);
|
||||
}
|
||||
|
||||
function onMovePostsClicked() {
|
||||
MovePost.openMovePostModal();
|
||||
}
|
||||
|
||||
function showPostsSelected() {
|
||||
if (postSelect.pids.length) {
|
||||
moveModal.find('#pids').translateHtml('[[topic:fork_pid_count, ' + postSelect.pids.length + ']]');
|
||||
} else {
|
||||
moveModal.find('#pids').translateHtml('[[topic:fork_no_pids]]');
|
||||
}
|
||||
}
|
||||
|
||||
function checkMoveButtonEnable() {
|
||||
if (moveModal.find('#topicId').val().length && postSelect.pids.length) {
|
||||
moveCommit.removeAttr('disabled');
|
||||
} else {
|
||||
moveCommit.attr('disabled', true);
|
||||
}
|
||||
}
|
||||
|
||||
MovePost.openMovePostModal = function (postEl) {
|
||||
app.parseAndTranslate('partials/move_post_modal', {}, function (html) {
|
||||
var dialog = bootbox.dialog({
|
||||
title: '[[topic:move_post]]',
|
||||
message: html,
|
||||
show: true,
|
||||
buttons: {
|
||||
submit: {
|
||||
label: '[[topic:confirm_move]]',
|
||||
className: 'btn-primary submit-btn',
|
||||
callback: function () {
|
||||
var topicIdEl = dialog.find('#topicId');
|
||||
if (!topicIdEl.val()) {
|
||||
return;
|
||||
}
|
||||
|
||||
movePost(button.parents('[data-pid]'), button.parents('[data-pid]').attr('data-pid'), topicIdEl.val(), function () {
|
||||
topicIdEl.val('');
|
||||
});
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
dialog.find('.submit-btn').attr('disabled', true);
|
||||
moveModal = html;
|
||||
|
||||
moveCommit = moveModal.find('#move_posts_confirm');
|
||||
|
||||
$(document.body).append(moveModal);
|
||||
|
||||
moveModal.find('.close,#move_posts_cancel').on('click', closeMoveModal);
|
||||
moveModal.find('#topicId').on('keyup', checkMoveButtonEnable);
|
||||
postSelect.init(onPostToggled);
|
||||
showPostsSelected();
|
||||
|
||||
dialog.find('#topicId').on('keyup change', function () {
|
||||
dialog.find('.submit-btn').attr('disabled', !dialog.find('#topicId').val());
|
||||
if (postEl) {
|
||||
postSelect.togglePostSelection(postEl, onPostToggled);
|
||||
}
|
||||
|
||||
moveCommit.on('click', function () {
|
||||
movePosts();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
function movePost(post, pid, tid, callback) {
|
||||
socket.emit('posts.movePost', { pid: pid, tid: tid }, function (err) {
|
||||
if (err) {
|
||||
app.alertError(err.message);
|
||||
return callback();
|
||||
function onPostToggled() {
|
||||
checkMoveButtonEnable();
|
||||
showPostsSelected();
|
||||
}
|
||||
|
||||
post.fadeOut(500, function () {
|
||||
post.remove();
|
||||
function movePosts() {
|
||||
var tid = moveModal.find('#topicId').val();
|
||||
socket.emit('posts.movePosts', { pids: postSelect.pids, tid: tid }, function (err) {
|
||||
if (err) {
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
postSelect.pids.forEach(function (pid) {
|
||||
components.get('post', 'pid', pid).fadeOut(500, function () {
|
||||
$(this).remove();
|
||||
});
|
||||
});
|
||||
|
||||
app.alertSuccess('[[topic:post_moved]]');
|
||||
callback();
|
||||
closeMoveModal();
|
||||
});
|
||||
}
|
||||
|
||||
function closeMoveModal() {
|
||||
if (moveModal) {
|
||||
moveModal.remove();
|
||||
moveModal = null;
|
||||
}
|
||||
|
||||
postSelect.disable();
|
||||
}
|
||||
|
||||
|
||||
return MovePost;
|
||||
});
|
||||
|
Loading…
Reference in New Issue