'use strict'; /* globals define, app, translator, socket */ define('forum/topic/fork', function() { var Fork = {}, forkModal, forkCommit, pids = []; Fork.init = function() { $('.fork_thread').on('click', onForkThreadClicked); }; function disableClicks() { return false; } function disableClicksOnPosts() { $('.post-row').on('click', 'button,a', disableClicks); } function enableClicksOnPosts() { $('.post-row').off('click', 'button,a', disableClicks); } function onForkThreadClicked() { forkModal = $('#fork-thread-modal'); forkCommit = forkModal.find('#fork_thread_commit'); pids.length = 0; showForkModal(); showNoPostsSelected(); forkModal.find('.close,#fork_thread_cancel').on('click', closeForkModal); forkModal.find('#fork-title').on('change', checkForkButtonEnable); $('#post-container').on('click', 'li[data-pid]', function() { togglePostSelection($(this)); }); disableClicksOnPosts(); forkCommit.on('click', createTopicFromPosts); } function showForkModal() { forkModal.removeClass('hide') .css('position', 'fixed') .css('left', Math.max(0, (($(window).width() - $(forkModal).outerWidth()) / 2) + $(window).scrollLeft()) + 'px') .css('top', '0px') .css('z-index', '2000'); } function createTopicFromPosts() { socket.emit('topics.createTopicFromPosts', { title: forkModal.find('#fork-title').val(), pids: pids }, function(err, newTopic) { function fadeOutAndRemove(pid) { $('#post-container li[data-pid="' + pid + '"]').fadeOut(500, function() { $(this).remove(); }); } if (err) { return app.alertError(err.message); } app.alert({ timeout: 5000, title: '[[global:alert.success]]', message: '[[topic:fork_success]]', type: 'success', clickfn: function() { ajaxify.go('topic/' + newTopic.slug); } }); for(var i=0; i