diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index d8e1b56f66b3..713bb96bc1d4 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -11,13 +11,7 @@ define('admin/manage/categories', [ var sortables; Categories.init = function () { - socket.emit('admin.categories.getAll', function (err, payload) { - if (err) { - return app.alertError(err.message); - } - - Categories.render(payload); - }); + Categories.render(ajaxify.data.categories); $('button[data-action="create"]').on('click', Categories.throwCreateModal); diff --git a/src/controllers/admin/categories.js b/src/controllers/admin/categories.js index c944c649430d..bbe2104c8ab4 100644 --- a/src/controllers/admin/categories.js +++ b/src/controllers/admin/categories.js @@ -43,9 +43,19 @@ categoriesController.get = async function (req, res, next) { }); }; -categoriesController.getAll = function (req, res) { +categoriesController.getAll = async function (req, res) { // Categories list will be rendered on client side with recursion, etc. - res.render('admin/manage/categories', {}); + const cids = await categories.getAllCidsFromSet('categories:cid'); + const fields = [ + 'cid', 'name', 'level', 'icon', 'parentCid', 'disabled', 'link', + 'color', 'bgColor', 'backgroundImage', 'imageClass', + ]; + const categoriesData = await categories.getCategoriesFields(cids, fields); + const result = await plugins.fireHook('filter:admin.categories.get', { categories: categoriesData, fields: fields }); + const tree = categories.getTree(result.categories, 0); + res.render('admin/manage/categories', { + categories: tree, + }); }; categoriesController.getAnalytics = async function (req, res) { diff --git a/src/socket.io/admin/categories.js b/src/socket.io/admin/categories.js index 50e61f94bcc6..7c621c9fa92e 100644 --- a/src/socket.io/admin/categories.js +++ b/src/socket.io/admin/categories.js @@ -1,5 +1,7 @@ 'use strict'; +const winston = require('winston'); + const groups = require('../../groups'); const user = require('../../user'); const categories = require('../../categories'); @@ -18,9 +20,14 @@ Categories.create = async function (socket, data) { }; Categories.getAll = async function () { + winston.warn('[deprecated] admin.categories.getAll deprecated, data is returned in the api route'); const cids = await categories.getAllCidsFromSet('categories:cid'); - const categoriesData = await categories.getCategoriesData(cids); - const result = await plugins.fireHook('filter:admin.categories.get', { categories: categoriesData }); + const fields = [ + 'cid', 'name', 'level', 'icon', 'parentCid', 'disabled', 'link', + 'color', 'bgColor', 'backgroundImage', 'imageClass', + ]; + const categoriesData = await categories.getCategoriesFields(cids, fields); + const result = await plugins.fireHook('filter:admin.categories.get', { categories: categoriesData, fields: fields }); return categories.getTree(result.categories, 0); };