v1.18.x
Barış Soner Uşaklı 6 years ago
parent f0dead7aba
commit ac549f8bc7

@ -6,15 +6,19 @@ define('forum/topic/delete-posts', ['components', 'postSelect'], function (compo
var modal; var modal;
var deleteBtn; var deleteBtn;
var purgeBtn; var purgeBtn;
var tid;
DeletePosts.init = function () { DeletePosts.init = function () {
tid = ajaxify.data.tid;
$('.topic').on('click', '[component="topic/delete/posts"]', onDeletePostsClicked); $('.topic').on('click', '[component="topic/delete/posts"]', onDeletePostsClicked);
$(window).on('action:ajaxify.start', onAjaxifyStart); $(window).off('action:ajaxify.end', onAjaxifyEnd).on('action:ajaxify.end', onAjaxifyEnd);
}; };
function onAjaxifyStart() { function onAjaxifyEnd() {
closeModal(); if (ajaxify.data.template.name !== 'topic' || ajaxify.data.tid !== tid) {
$(window).off('action:ajaxify.start', onAjaxifyStart); closeModal();
$(window).off('action:ajaxify.end', onAjaxifyEnd);
}
} }
function onDeletePostsClicked() { function onDeletePostsClicked() {
@ -84,8 +88,8 @@ define('forum/topic/delete-posts', ['components', 'postSelect'], function (compo
if (modal) { if (modal) {
modal.remove(); modal.remove();
modal = null; modal = null;
postSelect.disable();
} }
postSelect.disable();
} }
return DeletePosts; return DeletePosts;

@ -5,15 +5,18 @@ define('forum/topic/fork', ['components', 'postSelect'], function (components, p
var Fork = {}; var Fork = {};
var forkModal; var forkModal;
var forkCommit; var forkCommit;
var fromTid;
Fork.init = function () { Fork.init = function () {
fromTid = ajaxify.data.tid;
$('.topic').on('click', '[component="topic/fork"]', onForkThreadClicked); $('.topic').on('click', '[component="topic/fork"]', onForkThreadClicked);
$(window).on('action:ajaxify.start', onAjaxifyStart); $(window).off('action:ajaxify.end', onAjaxifyEnd).on('action:ajaxify.end', onAjaxifyEnd);
}; };
function onAjaxifyStart() { function onAjaxifyEnd() {
closeForkModal(); if (ajaxify.data.template.name !== 'topic' || ajaxify.data.tid !== fromTid) {
$(window).off('action:ajaxify.start', onAjaxifyStart); closeForkModal();
$(window).off('action:ajaxify.end', onAjaxifyEnd);
}
} }
function onForkThreadClicked() { function onForkThreadClicked() {
@ -46,7 +49,7 @@ define('forum/topic/fork', ['components', 'postSelect'], function (components, p
socket.emit('topics.createTopicFromPosts', { socket.emit('topics.createTopicFromPosts', {
title: forkModal.find('#fork-title').val(), title: forkModal.find('#fork-title').val(),
pids: postSelect.pids, pids: postSelect.pids,
fromTid: ajaxify.data.tid, fromTid: fromTid,
}, function (err, newTopic) { }, function (err, newTopic) {
function fadeOutAndRemove(pid) { function fadeOutAndRemove(pid) {
components.get('post', 'pid', pid).fadeOut(500, function () { components.get('post', 'pid', pid).fadeOut(500, function () {
@ -96,9 +99,8 @@ define('forum/topic/fork', ['components', 'postSelect'], function (components, p
if (forkModal) { if (forkModal) {
forkModal.remove(); forkModal.remove();
forkModal = null; forkModal = null;
postSelect.disable();
} }
postSelect.disable();
} }
return Fork; return Fork;

@ -9,14 +9,8 @@ define('forum/topic/move-post', ['components', 'postSelect'], function (componen
MovePost.init = function () { MovePost.init = function () {
$('.topic').on('click', '[component="topic/move-posts"]', onMovePostsClicked); $('.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() { function onMovePostsClicked() {
MovePost.openMovePostModal(); MovePost.openMovePostModal();
} }
@ -38,6 +32,9 @@ define('forum/topic/move-post', ['components', 'postSelect'], function (componen
} }
MovePost.openMovePostModal = function (postEl) { MovePost.openMovePostModal = function (postEl) {
if (moveModal) {
return;
}
app.parseAndTranslate('partials/move_post_modal', {}, function (html) { app.parseAndTranslate('partials/move_post_modal', {}, function (html) {
moveModal = html; moveModal = html;
@ -85,9 +82,8 @@ define('forum/topic/move-post', ['components', 'postSelect'], function (componen
if (moveModal) { if (moveModal) {
moveModal.remove(); moveModal.remove();
moveModal = null; moveModal = null;
postSelect.disable();
} }
postSelect.disable();
} }

@ -3,26 +3,31 @@
define('postSelect', ['components'], function (components) { define('postSelect', ['components'], function (components) {
var PostSelect = {}; var PostSelect = {};
var onSelect;
PostSelect.pids = []; PostSelect.pids = [];
PostSelect.init = function (onSelect) { PostSelect.init = function (_onSelect) {
PostSelect.pids.length = 0; PostSelect.pids.length = 0;
components.get('topic').on('click', '[data-pid]', function () { onSelect = _onSelect;
PostSelect.togglePostSelection($(this), onSelect); $('#content').on('click', '[component="topic"] [component="post"]', onPostClicked);
});
disableClicksOnPosts(); disableClicksOnPosts();
}; };
function onPostClicked() {
PostSelect.togglePostSelection($(this));
}
PostSelect.disable = function () { PostSelect.disable = function () {
PostSelect.pids.forEach(function (pid) { PostSelect.pids.forEach(function (pid) {
components.get('post', 'pid', pid).toggleClass('bg-success', false); components.get('post', 'pid', pid).toggleClass('bg-success', false);
}); });
components.get('topic').off('click', '[data-pid]');
$('#content').off('click', '[component="topic"] [component="post"]', onPostClicked);
enableClicksOnPosts(); enableClicksOnPosts();
}; };
PostSelect.togglePostSelection = function (post, callback) { PostSelect.togglePostSelection = function (post) {
var newPid = post.attr('data-pid'); var newPid = post.attr('data-pid');
if (parseInt(post.attr('data-index'), 10) === 0) { if (parseInt(post.attr('data-index'), 10) === 0) {
@ -42,7 +47,9 @@ define('postSelect', ['components'], function (components) {
if (PostSelect.pids.length) { if (PostSelect.pids.length) {
PostSelect.pids.sort(function (a, b) { return a - b; }); PostSelect.pids.sort(function (a, b) { return a - b; });
} }
callback(); if (typeof onSelect === 'function') {
onSelect();
}
} }
}; };
@ -52,11 +59,11 @@ define('postSelect', ['components'], function (components) {
} }
function disableClicksOnPosts() { function disableClicksOnPosts() {
components.get('post').on('click', 'button,a', disableClicks); $('#content').on('click', '[component="post"] button, [component="post"] a', disableClicks);
} }
function enableClicksOnPosts() { function enableClicksOnPosts() {
components.get('post').off('click', 'button,a', disableClicks); $('#content').off('click', '[component="post"] button, [component="post"] a', disableClicks);
} }
return PostSelect; return PostSelect;

Loading…
Cancel
Save