more guild settings, e.g. force OP file, message, subject, min message length

merge-requests/208/head
fatchan 5 years ago
parent 5158893bbc
commit cca0f4264c
  1. 16
      controllers/forms.js
  2. 15
      views/pages/manage.pug
  3. 12
      wipe.js

@ -174,15 +174,25 @@ router.post('/board/:board/post', Boards.exists, banCheck, paramConverter, verif
if (!req.body.message && numFiles === 0) {
errors.push('Must provide a message or file');
}
if (req.body.message && req.body.message.length > 2000) {
errors.push('Message must be 2000 characters or less');
if (!req.body.thread && (res.locals.board.settings.forceOPFile && res.locals.board.settings.maxFiles > 0)) {
errors.push('Threads must include a file');
}
if (!req.body.thread && (!req.body.message || req.body.message.length === 0)) {
if (!req.body.thread && res.locals.board.settings.forceOPMessage && (!req.body.message || req.body.message.length === 0)) {
errors.push('Threads must include a message');
}
if (req.body.message) {
if (req.body.message.length > 2000) {
errors.push('Message must be 2000 characters or less');
} else if (req.body.message.length < res.locals.board.settings.minMessageLength) {
errors.push(`Message must be at least ${res.locals.board.settings.minMessageLength} characters long`);
}
}
if (req.body.name && req.body.name.length > 50) {
errors.push('Name must be 50 characters or less');
}
if (res.locals.board.settings.forceOPSubject && (!req.body.subject || req.body.subject.length === 0)) {
errors.push('Threads must include a subject');
}
if (req.body.subject && req.body.subject.length > 50) {
errors.push('Subject must be 50 characters or less');
}

@ -21,9 +21,24 @@ block content
label.postform-style.ph-5
input(type='checkbox', name='force_anon', value='true' checked=board.settings.forceAnon)
| Disable names and only allow sage email
section.postform-row
.postform-label Force OP Message
label.postform-style.ph-5
input(type='checkbox', name='force_op_message', value='true' checked=board.settings.forceOPMessage)
section.postform-row
.postform-label Force OP Subject
label.postform-style.ph-5
input(type='checkbox', name='force_op_subject', value='true' checked=board.settings.forceOPSubject)
section.postform-row
.postform-label Force OP File
label.postform-style.ph-5
input(type='checkbox', name='force_op_file', value='true' checked=board.settings.forceOPFile)
section.postform-row
.postform-label Anon Name
input(type='text' name='default_name' placeholder=board.settings.defaultName)
section.postform-row
.postform-label Min Message Length
input(type='text' name='min_message_length' placeholder=board.settings.minMessageLength)
section.postform-row
.postform-label Thread Limit
input(type='text' name='thread_limit' placeholder=board.settings.threadLimit)

@ -47,6 +47,10 @@ const Mongo = require(__dirname+'/db/db.js')
threadLimit: 100,
replyLimit: 300,
maxFiles: 3,
forceOPSubject: false,
forceOPMessage: true,
forceOPFile: true,
minMessageLength: 0,
defaultName: 'Anonymous',
}
})
@ -63,6 +67,10 @@ const Mongo = require(__dirname+'/db/db.js')
threadLimit: 100,
replyLimit: 300,
maxFiles: 3,
forceOPSubject: false,
forceOPMessage: true,
forceOPFile: true,
minMessageLength: 0,
defaultName: 'Anonymous',
}
})
@ -79,6 +87,10 @@ const Mongo = require(__dirname+'/db/db.js')
threadLimit: 100,
replyLimit: 300,
maxFiles: 0,
forceOPSubject: false,
forceOPMessage: true,
forceOPFile: true,
minMessageLength: 0,
defaultName: 'Anonymous',
}
})

Loading…
Cancel
Save