diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index d8ae5bfc52..a57fc06701 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -17,11 +17,16 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri // Enable/Disable toggle events $('.categories').on('click', 'button[data-action="toggle"]', function() { - var rowEl = $(this).parents('li'), - cid = rowEl.attr('data-cid'), - disabled = rowEl.hasClass('disabled'); + var $this = $(this), + cid = $this.attr('data-cid'), + parentEl = $this.parents('li[data-cid="' + cid + '"]'), + disabled = parentEl.hasClass('disabled'); - Categories.toggle(cid, !disabled); + var children = parentEl.find('li[data-cid]').map(function() { + return $(this).attr('data-cid'); + }).get(); + + Categories.toggle([cid].concat(children), !disabled); return false; }); }; @@ -94,12 +99,14 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri } }; - Categories.toggle = function(cid, disabled) { + Categories.toggle = function(cids, disabled) { var payload = {}; - payload[cid] = { - disabled: disabled ? 1 : 0 - }; + cids.forEach(function(cid) { + payload[cid] = { + disabled: disabled ? 1 : 0 + }; + }); socket.emit('admin.categories.update', payload, function(err) { if (err) { diff --git a/src/views/admin/partials/categories/category-rows.tpl b/src/views/admin/partials/categories/category-rows.tpl index 715427c34e..3f16bedd42 100644 --- a/src/views/admin/partials/categories/category-rows.tpl +++ b/src/views/admin/partials/categories/category-rows.tpl @@ -16,7 +16,7 @@