fix issue in lowering min/max settings conflict in some situations

update settings forms to not allow negatives for some inputs
indiachan-spamvector
Thomas Lynch 3 years ago
parent 325fe0caac
commit a5d1c942b2
  1. 4
      controllers/forms/boardsettings.js
  2. 14
      helpers/schema.js
  3. 8
      views/pages/managesettings.pug

@ -40,6 +40,10 @@ module.exports = {
{ result: numberBody(req.body.bump_limit, globalLimits.bumpLimit.min, globalLimits.bumpLimit.max), expected: true, error: `Bump Limit must be ${globalLimits.bumpLimit.min}-${globalLimits.bumpLimit.max}` },
{ result: numberBody(req.body.thread_limit, globalLimits.threadLimit.min, globalLimits.threadLimit.max), expected: true, error: `Threads Limit must be ${globalLimits.threadLimit.min}-${globalLimits.threadLimit.max}` },
{ result: numberBody(req.body.max_files, 0, globalLimits.postFiles.max), expected: true, error: `Max files must be 0-${globalLimits.postFiles.max}` },
{ result: numberBody(req.body.min_thread_message_length, 0, globalLimits.fieldLength.message), expected: true, error: `Min thread message length must be 0-${globalLimits.fieldLength.message}` },
{ result: numberBody(req.body.min_reply_message_length, 0, globalLimits.fieldLength.message), expected: true, error: `Min reply message length must be 0-${globalLimits.fieldLength.message}` },
{ result: numberBody(req.body.max_thread_message_length, 0, globalLimits.fieldLength.message), expected: true, error: `Max thread message length must be 0-${globalLimits.fieldLength.message}` },
{ result: numberBody(req.body.max_reply_message_length, 0, globalLimits.fieldLength.message), expected: true, error: `Max reply message length must be 0-${globalLimits.fieldLength.message}` },
{ result: minmaxBody(req.body.min_thread_message_length, req.body.max_thread_message_length), expected: true, error: 'Min and max thread message lengths must not violate eachother' },
{ result: minmaxBody(req.body.min_reply_message_length, req.body.max_reply_message_length), expected: true, error: 'Min and max reply message lengths must not violate eachother' },
{ result: numberBodyVariable(req.body.min_thread_message_length, res.locals.board.settings.minThreadMessageLength,

@ -25,14 +25,20 @@ module.exports = {
//same, but with old/new fallbacks for settings that can adjust a dependency at same time
numberBodyVariable: (data, minOld, minNew, maxOld, maxNew) => {
if (!minNew) {
if (minNew == null) {
minNew = minOld;
}
if (!maxNew) {
if (maxNew == null) {
maxNew = maxOld;
}
const varMin = Math.min(minOld, minNew) || minOld;
const varMax = Math.max(maxOld, maxNew) || maxOld;
const varMin = Math.min(minOld, minNew);
if (isNaN(varMin)) {
varMin = minOld;
}
const varMax = Math.max(maxOld, maxNew);
if (isNaN(varMax)) {
varMax = maxOld;
}
return typeof data === 'number' && (varMin <= data && varMax >= data);
},

@ -171,16 +171,16 @@ block content
input(type='checkbox', name='disable_reply_subject', value='true' checked=board.settings.disableReplySubject)
.row
.label Min Thread Message Length
input(type='number' name='min_thread_message_length' value=board.settings.minThreadMessageLength max=globalLimits.fieldLength.message)
input(type='number' name='min_thread_message_length' value=board.settings.minThreadMessageLength min=0 max=globalLimits.fieldLength.message)
.row
.label Min Reply Message Length
input(type='number' name='min_reply_message_length' value=board.settings.minReplyMessageLength max=globalLimits.fieldLength.message)
input(type='number' name='min_reply_message_length' value=board.settings.minReplyMessageLength min=0 max=globalLimits.fieldLength.message)
.row
.label Max Thread Message Length
input(type='number' name='max_thread_message_length' value=board.settings.maxThreadMessageLength max=globalLimits.fieldLength.message)
input(type='number' name='max_thread_message_length' value=board.settings.maxThreadMessageLength min=0 max=globalLimits.fieldLength.message)
.row
.label Max Reply Message Length
input(type='number' name='max_reply_message_length' value=board.settings.maxReplyMessageLength max=globalLimits.fieldLength.message)
input(type='number' name='max_reply_message_length' value=board.settings.maxReplyMessageLength min=0 max=globalLimits.fieldLength.message)
.row
h4.mv-5 Limits:
.row

Loading…
Cancel
Save