diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js index daca51a411..d013e1c09d 100644 --- a/public/src/client/topic/move.js +++ b/public/src/client/topic/move.js @@ -15,7 +15,7 @@ define('forum/topic/move', function() { Move.onComplete = onComplete; Move.moveAll = tids ? false : true; - socket.emit('categories.get', onCategoriesLoaded); + socket.emit('categories.getMoveCategories', onCategoriesLoaded); }; function onCategoriesLoaded(err, categories) { @@ -23,8 +23,7 @@ define('forum/topic/move', function() { return app.alertError(err.message); } - parseModal(categories, function(html) { - modal = $(html); + parseModal(categories, function() { modal.on('hidden.bs.modal', function() { modal.remove(); @@ -36,7 +35,7 @@ define('forum/topic/move', function() { modal.find('.modal-header h3').translateText('[[topic:move_topics]]'); } - modal.on('click', '.category-list li[data-cid]', function(e) { + modal.on('click', '.category-list li[data-cid]', function() { selectCategory($(this)); }); @@ -47,8 +46,41 @@ define('forum/topic/move', function() { } function parseModal(categories, callback) { - templates.parse('partials/move_thread_modal', {categories: categories}, function(html) { - translator.translate(html, callback); + templates.parse('partials/move_thread_modal', {categories: []}, function(html) { + translator.translate(html, function(html) { + modal = $(html); + categories.forEach(function(category) { + if (!category.link) { + buildRecursive(modal.find('.category-list'), category, ''); + } + }); + callback(); + }); + }); + } + + function buildRecursive(parentEl, category, level) { + var categoryEl = $('
'); + + if (category.bgColor) { + categoryEl.css('background-color', category.bgColor); + } + if (category.color) { + categoryEl.css('color', category.color); + } + categoryEl.toggleClass('disabled', !!category.disabled); + categoryEl.attr('data-cid', category.cid); + categoryEl.html(' ' + category.name); + + parentEl.append(level); + parentEl.append(categoryEl); + parentEl.append('