From ff29d0e826d0e2d696ead8e5a824fa7d0eab5c2f Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 24 Sep 2016 14:35:56 +0300 Subject: [PATCH] closes #4290 --- package.json | 4 +-- public/src/client/topic/delete-posts.js | 48 ++++++++++--------------- 2 files changed, 20 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index ec9c793eb6..d1a4724a42 100644 --- a/package.json +++ b/package.json @@ -61,8 +61,8 @@ "nodebb-plugin-spam-be-gone": "0.4.10", "nodebb-rewards-essentials": "0.0.9", "nodebb-theme-lavender": "3.0.14", - "nodebb-theme-persona": "4.1.48", - "nodebb-theme-vanilla": "5.1.32", + "nodebb-theme-persona": "4.1.49", + "nodebb-theme-vanilla": "5.1.33", "nodebb-widget-essentials": "2.0.11", "nodemailer": "2.0.0", "nodemailer-sendmail-transport": "1.0.0", diff --git a/public/src/client/topic/delete-posts.js b/public/src/client/topic/delete-posts.js index a40ef3dbc5..bae1614edd 100644 --- a/public/src/client/topic/delete-posts.js +++ b/public/src/client/topic/delete-posts.js @@ -1,31 +1,33 @@ 'use strict'; -/* globals define, app, ajaxify, socket, templates */ +/* globals define, app, ajaxify, socket */ -define('forum/topic/delete-posts', ['components', 'postSelect', 'translator'], function(components, postSelect, translator) { +define('forum/topic/delete-posts', ['components', 'postSelect'], function(components, postSelect) { - var DeletePosts = {}, - modal, - deleteBtn, - purgeBtn; + var DeletePosts = {}; + var modal; + var deleteBtn; + var purgeBtn; DeletePosts.init = function() { $('.topic').on('click', '[component="topic/delete/posts"]', onDeletePostsClicked); + $(window).on('action:ajaxify.start', onAjaxifyStart); }; + function onAjaxifyStart() { + closeModal(); + $(window).off('action:ajaxify.start', onAjaxifyStart); + } + function onDeletePostsClicked() { - parseModal(function(html) { - modal = $(html); + app.parseAndTranslate('partials/delete_posts_modal', {}, function(html) { + modal = html; - modal.on('hidden.bs.modal', function() { - modal.remove(); - }); + $('body').append(modal); deleteBtn = modal.find('#delete_posts_confirm'); purgeBtn = modal.find('#purge_posts_confirm'); - showModal(); - modal.find('.close,#delete_posts_cancel').on('click', closeModal); postSelect.init(function() { @@ -43,20 +45,6 @@ define('forum/topic/delete-posts', ['components', 'postSelect', 'translator'], f }); } - function parseModal(callback) { - templates.parse('partials/delete_posts_modal', {}, function(html) { - translator.translate(html, callback); - }); - } - - function showModal() { - modal.modal({backdrop: false, show: true}) - .css('position', 'fixed') - .css('left', Math.max(0, (($(window).width() - modal.outerWidth()) / 2) + $(window).scrollLeft()) + 'px') - .css('top', '0px') - .css('z-index', '2000'); - } - function deletePosts(btn, command) { btn.attr('disabled', true); socket.emit(command, { @@ -74,7 +62,7 @@ define('forum/topic/delete-posts', ['components', 'postSelect', 'translator'], f function showPostsSelected() { if (postSelect.pids.length) { - modal.find('#pids').text(postSelect.pids.join(', ')); + modal.find('#pids').translateHtml('[[topic:fork_pid_count, ' + postSelect.pids.length + ']]'); } else { modal.find('#pids').translateHtml('[[topic:fork_no_pids]]'); } @@ -92,10 +80,10 @@ define('forum/topic/delete-posts', ['components', 'postSelect', 'translator'], f function closeModal() { postSelect.pids.forEach(function(pid) { - components.get('post', 'pid', pid).css('opacity', 1); + components.get('post', 'pid', pid).toggleClass('bg-success', false); }); - modal.modal('hide'); + modal.remove(); components.get('topic').off('click', '[data-pid]'); postSelect.enableClicksOnPosts();