From 080317300a88e7abbcbaab729eb39470f18d8c2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sun, 22 Mar 2020 12:32:12 -0400 Subject: [PATCH] fix: #8221, fix parent selection --- public/src/admin/manage/category.js | 53 ++++++++++++++++------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index 882a860683..15c70655e0 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -281,35 +281,40 @@ define('admin/manage/category', [ } Category.launchParentSelector = function () { - var parents = [parseInt(ajaxify.data.category.cid, 10)]; - var categories = ajaxify.data.allCategories.filter(function (category) { - var isChild = parents.includes(parseInt(category.parentCid, 10)); - if (isChild) { - parents.push(parseInt(category.cid, 10)); + socket.emit('categories.getSelectCategories', {}, function (err, allCategories) { + if (err) { + return app.alertError(err.message); } - return category && !category.disabled && parseInt(category.cid, 10) !== parseInt(ajaxify.data.category.cid, 10) && !isChild; - }); + var parents = [parseInt(ajaxify.data.category.cid, 10)]; + var categories = allCategories.filter(function (category) { + var isChild = parents.includes(parseInt(category.parentCid, 10)); + if (isChild) { + parents.push(parseInt(category.cid, 10)); + } + return category && !category.disabled && parseInt(category.cid, 10) !== parseInt(ajaxify.data.category.cid, 10) && !isChild; + }); - categorySelector.modal(categories, function (parentCid) { - var payload = {}; + categorySelector.modal(categories, function (parentCid) { + var payload = {}; - payload[ajaxify.data.category.cid] = { - parentCid: parentCid, - }; + payload[ajaxify.data.category.cid] = { + parentCid: parentCid, + }; - socket.emit('admin.categories.update', payload, function (err) { - if (err) { - return app.alertError(err.message); - } - var parent = ajaxify.data.allCategories.filter(function (category) { - return category && parseInt(category.cid, 10) === parseInt(parentCid, 10); + socket.emit('admin.categories.update', payload, function (err) { + if (err) { + return app.alertError(err.message); + } + var parent = allCategories.filter(function (category) { + return category && parseInt(category.cid, 10) === parseInt(parentCid, 10); + }); + parent = parent[0]; + + $('button[data-action="removeParent"]').parent().removeClass('hide'); + $('button[data-action="setParent"]').addClass('hide'); + var buttonHtml = ' ' + parent.name; + $('button[data-action="changeParent"]').html(buttonHtml).parent().removeClass('hide'); }); - parent = parent[0]; - - $('button[data-action="removeParent"]').parent().removeClass('hide'); - $('button[data-action="setParent"]').addClass('hide'); - var buttonHtml = ' ' + parent.name; - $('button[data-action="changeParent"]').html(buttonHtml).parent().removeClass('hide'); }); }); };