feat: #3783, min/max tags per category

This commit is contained in:
Barış Soner Uşaklı
2020-06-24 16:02:57 -04:00
parent ed4b5caf2c
commit c718b7293e
11 changed files with 130 additions and 12 deletions

View File

@@ -1,12 +1,14 @@
'use strict';
var validator = require('validator');
const validator = require('validator');
var db = require('../database');
const db = require('../database');
const meta = require('../meta');
const intFields = [
'cid', 'parentCid', 'disabled', 'isSection', 'order',
'topic_count', 'post_count', 'numRecentReplies',
'minTags', 'maxTags',
];
module.exports = function (Categories) {
@@ -59,6 +61,21 @@ function modifyCategory(category, fields) {
return;
}
if (!fields.length || fields.includes('minTags')) {
const useDefault = !category.hasOwnProperty('minTags') ||
category.minTags === null ||
category.minTags === '' ||
!parseInt(category.minTags, 10);
category.minTags = useDefault ? meta.config.minimumTagsPerTopic : category.minTags;
}
if (!fields.length || fields.includes('maxTags')) {
const useDefault = !category.hasOwnProperty('maxTags') ||
category.maxTags === null ||
category.maxTags === '' ||
!parseInt(category.maxTags, 10);
category.maxTags = useDefault ? meta.config.maximumTagsPerTopic : category.maxTags;
}
db.parseIntFields(category, intFields, fields);
if (category.hasOwnProperty('name')) {