closes #6358
parent
df770aed8e
commit
caf43e3025
@ -1,56 +1,95 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
|
||||||
define('forum/topic/move-post', [], function () {
|
define('forum/topic/move-post', ['components', 'postSelect'], function (components, postSelect) {
|
||||||
var MovePost = {};
|
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) {
|
app.parseAndTranslate('partials/move_post_modal', {}, function (html) {
|
||||||
var dialog = bootbox.dialog({
|
moveModal = html;
|
||||||
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);
|
|
||||||
|
|
||||||
dialog.find('#topicId').on('keyup change', function () {
|
moveCommit = moveModal.find('#move_posts_confirm');
|
||||||
dialog.find('.submit-btn').attr('disabled', !dialog.find('#topicId').val());
|
|
||||||
|
$(document.body).append(moveModal);
|
||||||
|
|
||||||
|
moveModal.find('.close,#move_posts_cancel').on('click', closeMoveModal);
|
||||||
|
moveModal.find('#topicId').on('keyup', checkMoveButtonEnable);
|
||||||
|
postSelect.init(onPostToggled);
|
||||||
|
showPostsSelected();
|
||||||
|
|
||||||
|
if (postEl) {
|
||||||
|
postSelect.togglePostSelection(postEl, onPostToggled);
|
||||||
|
}
|
||||||
|
|
||||||
|
moveCommit.on('click', function () {
|
||||||
|
movePosts();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
function movePost(post, pid, tid, callback) {
|
function onPostToggled() {
|
||||||
socket.emit('posts.movePost', { pid: pid, tid: tid }, function (err) {
|
checkMoveButtonEnable();
|
||||||
|
showPostsSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
function movePosts() {
|
||||||
|
var tid = moveModal.find('#topicId').val();
|
||||||
|
socket.emit('posts.movePosts', { pids: postSelect.pids, tid: tid }, function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
app.alertError(err.message);
|
return app.alertError(err.message);
|
||||||
return callback();
|
|
||||||
}
|
}
|
||||||
|
postSelect.pids.forEach(function (pid) {
|
||||||
post.fadeOut(500, function () {
|
components.get('post', 'pid', pid).fadeOut(500, function () {
|
||||||
post.remove();
|
$(this).remove();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.alertSuccess('[[topic:post_moved]]');
|
closeMoveModal();
|
||||||
callback();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function closeMoveModal() {
|
||||||
|
if (moveModal) {
|
||||||
|
moveModal.remove();
|
||||||
|
moveModal = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
postSelect.disable();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return MovePost;
|
return MovePost;
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue