feat: add filter:categories.getSelectCategories

pass query to emits
This commit is contained in:
Barış Soner Uşaklı
2021-05-28 11:28:44 -04:00
parent a852b374e9
commit d168790612
4 changed files with 12 additions and 6 deletions

View File

@@ -99,7 +99,7 @@ define('admin/manage/categories', [
}
Categories.throwCreateModal = function () {
socket.emit('categories.getSelectCategories', {}, function (err, categories) {
socket.emit('categories.getSelectCategories', { query: utils.params() }, function (err, categories) {
if (err) {
return app.alertError(err.message);
}

View File

@@ -114,7 +114,7 @@ define('admin/manage/category', [
});
$('.copy-settings').on('click', function () {
socket.emit('categories.getSelectCategories', {}, function (err, allCategories) {
socket.emit('categories.getSelectCategories', { query: utils.params() }, function (err, allCategories) {
if (err) {
return app.alertError(err.message);
}
@@ -261,7 +261,7 @@ define('admin/manage/category', [
}
Category.launchParentSelector = function () {
socket.emit('categories.getSelectCategories', {}, function (err, allCategories) {
socket.emit('categories.getSelectCategories', { query: utils.params() }, function (err, allCategories) {
if (err) {
return app.alertError(err.message);
}

View File

@@ -12,7 +12,7 @@ define('forum/topic/move', ['categorySelector', 'alerts'], function (categorySel
Move.onComplete = onComplete;
Move.moveAll = !tids;
socket.emit('categories.getMoveCategories', onCategoriesLoaded);
socket.emit('categories.getMoveCategories', { query: utils.params() }, onCategoriesLoaded);
};
function onCategoriesLoaded(err, categories) {

View File

@@ -6,6 +6,7 @@ const user = require('../user');
const topics = require('../topics');
const api = require('../api');
const sockets = require('.');
const plugins = require('../plugins');
const SocketCategories = module.exports;
@@ -94,12 +95,17 @@ SocketCategories.getMoveCategories = async function (socket, data) {
return await SocketCategories.getSelectCategories(socket, data);
};
SocketCategories.getSelectCategories = async function (socket) {
SocketCategories.getSelectCategories = async function (socket, data) {
const [isAdmin, categoriesData] = await Promise.all([
user.isAdministrator(socket.uid),
categories.buildForSelect(socket.uid, 'find', ['disabled', 'link']),
]);
return categoriesData.filter(category => category && (!category.disabled || isAdmin) && !category.link);
const result = await plugins.hooks.fire('filter:categories.getSelectCategories', {
categories: categoriesData,
isAdmin: isAdmin,
query: data.query || {},
});
return result.categories.filter(category => category && (!category.disabled || isAdmin) && !category.link);
};
SocketCategories.setWatchState = async function (socket, data) {