add required fields in html forms and add * to labels according to board settings for required OP subject, message or file.

merge-requests/208/head
fatchan 5 years ago
parent 3a03351a80
commit 2c6ee4d9ee
  1. 9
      gulp/res/css/style.css
  2. 2
      helpers/files/deletetempfiles.js
  3. 3
      models/pages/captcha.js
  4. 6
      views/includes/actionfooter.pug
  5. 4
      views/includes/catalogheader.pug
  6. 36
      views/includes/postform.pug
  7. 2
      views/pages/catalog.pug
  8. 15
      views/pages/changepassword.pug
  9. 6
      views/pages/login.pug
  10. 3
      views/pages/manage.pug
  11. 12
      views/pages/register.pug

@ -174,11 +174,15 @@ object {
border-style: solid none;
}
.title {
.title, .required {
color: maroon;
font-weight: bold;
}
.required {
margin-left: 5px;
}
.pinktext {
color: #E0727F;
}
@ -546,8 +550,7 @@ input[type="file"] {
min-width: 80px;
background: #98E;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
font-weight: bold;
margin-right: 1px;
}

@ -2,7 +2,7 @@
const remove = require('fs-extra').remove;
module.exports = async (req) => {
module.exports = (req) => {
if (req.files != null) {
let files = [];

@ -21,7 +21,8 @@ module.exports = async (req, res, next) => {
.cookie('captchaid', captchaId.toString(), {
'maxAge': 5*60*1000, //5 minute cookie
'httpOnly': true,
'secure': true
'secure': true,
'sameSite': 'lax'
})
.redirect(`/captcha/${captchaId}.jpg`);

@ -24,8 +24,8 @@ details.toggle-label
| Global Report
label
input#report(type='text', name='report_reason', placeholder='report reason' autocomplete='off')
.actions
h4.no-m-p Staff Actions:
details.actions
summary(style='font-weight: bold') Staff Actions:
label
input.post-check(type='checkbox', name='delete_ip_board' value=1)
| Delete from IP on board
@ -58,5 +58,5 @@ details.toggle-label
.actions
h4.no-m-p Captcha:
iframe.captcha(src='/captcha.html' width=200 height=110 scrolling='no')
input#captcha(type='text', name='captcha', autocomplete='off' placeholder='captcha text' maxlength='6')
input#captcha(type='text', name='captcha', autocomplete='off' placeholder='captcha text' maxlength='6' required)
input(type='submit', value='submit')

@ -0,0 +1,4 @@
section.board-header
img.board-banner(src=`/banners?board=${board._id}` width='300' height='100')
br
h1.board-title Catalog (#[a.no-decoration(href=`/${board._id}/index.html`) /#{board._id}/])

@ -1,48 +1,58 @@
- const isThread = thread != null
section.form-wrapper.flex-center
a.toggle-summary(href='#postform') Show Post Form
form.form-post#postform(action=`/forms/board/${board._id}/post`, enctype='multipart/form-data', method='POST')
input(type='hidden' name='thread' value=thread != null ? thread.postId : null)
input(type='hidden' name='thread' value=isThread ? thread.postId : null)
unless board.settings.forceAnon
section.postform-row
.postform-label Name
input#name(type='text', name='name', placeholder=board.settings.defaultName autocomplete='off' maxlength='50')
input(type='text', name='name', placeholder=board.settings.defaultName autocomplete='off' maxlength='50')
a.close.postform-style.ml-1(href='#!') X
section.postform-row
.postform-label Subject
input#title(type='text', name='subject', autocomplete='off' maxlength='50')
if !isThread && board.settings.forceOPSubject
.required *
input(type='text', name='subject', autocomplete='off' maxlength='50' required=!isThread && board.settings.forceOPSubject)
section.postform-row
.postform-label Email
input#name(type='text', name='email', autocomplete='off' maxlength='50')
input(type='text', name='email', autocomplete='off' maxlength='50')
else
section.postform-row
.postform-label Sage
label.postform-style.ph-5
input#spoiler(type='checkbox', name='email', value='sage')
input(type='checkbox', name='email', value='sage')
| Sage
a.close.postform-style.ml-1(href='#!') X
if !thread
if !isThread
section.postform-row
.postform-label Subject
input#title(type='text', name='subject', autocomplete='off' maxlength='50')
if board.settings.forceOPSubject
.required *
input(type='text', name='subject', autocomplete='off' maxlength='50' required=board.settings.forceOPSubject)
section.postform-row
.postform-label Message
textarea#message(name='message', rows='5', autocomplete='off' maxlength='4000')
if !isThread && board.settings.forceOPMessage
.required *
textarea(name='message', rows='5', autocomplete='off' maxlength='4000' required=!isThread && board.settings.forceOPMessage)
if board.settings.maxFiles !== 0
section.postform-row
.postform-label Files
input#file(type='file', name='file' multiple)
if !isThread && board.settings.forceOPFile
.required *
input(type='file', name='file' multiple required=!isThread && board.settings.forceOPFile)
if board.settings.userPostSpoiler
label.postform-style.ph-5.ml-1
input#spoiler(type='checkbox', name='spoiler', value='true')
input(type='checkbox', name='spoiler', value='true')
| Spoiler
if board.settings.userPostSpoiler || board.settings.userPostDelete || board.settings.userPostUnlink
section.postform-row
.postform-label Password
input#password(type='password', name='password', autocomplete='off' placeholder='password to delete/spoiler/unlink later' maxlength='50')
input(type='password', name='password', autocomplete='off' placeholder='password to delete/spoiler/unlink later' maxlength='50')
if board.settings.captcha
section.postform-row
.postform-label Captcha
.required *
.postform-col
iframe.captcha(src='/captcha.html' width=200 height=110 scrolling='no')
input#captcha(type='text', name='captcha', autocomplete='off' placeholder='captcha text' maxlength='6')
input(type='submit', value=`New ${threads ? 'Thread' : 'Reply'}`)
input(type='text', name='captcha', autocomplete='off' placeholder='captcha text' maxlength='6' required)
input(type='submit', value=`New ${isThread ? 'Reply' : 'Thread'}`)

@ -5,7 +5,7 @@ block head
title /#{board._id}/ - Catalog
block content
include ../includes/boardheader.pug
include ../includes/catalogheader.pug
br
include ../includes/postform.pug
br

@ -9,19 +9,24 @@ block content
//input(type='hidden' name='_csrf' value=csrf)
section.postform-row
.postform-label Username
input#username(type='text', name='username', maxlength='50')
.required *
input#username(type='text', name='username', maxlength='50' required)
section.postform-row
.postform-label Existing Password
input#password(type='password', name='password', maxlength='100')
.required *
input#password(type='password', name='password', maxlength='100' required)
section.postform-row
.postform-label New Password
input#password(type='password', name='newpassword', maxlength='100')
.required *
input#password(type='password', name='newpassword', maxlength='100' required)
section.postform-row
.postform-label Confirm New Password
input#password(type='password', name='newpasswordconfirm', maxlength='100')
.required *
input#password(type='password', name='newpasswordconfirm', maxlength='100' required)
section.postform-row
.postform-label Captcha
.required *
span.postform-col
iframe.captcha(src='/captcha.html' width=200 height=110 scrolling='no')
input#captcha(type='text', name='captcha', autocomplete='off' placeholder='captcha text' maxlength='6')
input#captcha(type='text', name='captcha', autocomplete='off' placeholder='captcha text' maxlength='6' required)
input(type='submit', value='Change Password')

@ -9,10 +9,12 @@ block content
//input(type='hidden' name='_csrf' value=csrf)
section.postform-row
.postform-label Username
input#username(type='text', name='username', maxlength='50')
.required *
input#username(type='text', name='username', maxlength='50' required)
section.postform-row
.postform-label Password
input#password(type='password', name='password', maxlength='100')
.required *
input#password(type='password', name='password', maxlength='100' required)
input(type='submit', value='submit')
p No account? #[a(href='/register.html') Register]

@ -71,7 +71,8 @@ block content
input(type='hidden' name='_csrf' value=csrf)
section.postform-row
.postform-label Upload
input#file(type='file', name='file' multiple)
.required *
input#file(type='file', name='file' multiple required)
input(type='submit', value='submit')
hr(size=1)
if board.banners.length > 0

@ -9,17 +9,21 @@ block content
//input(type='hidden' name='_csrf' value=csrf)
section.postform-row
.postform-label Username
input#username(type='text', name='username', maxlength='50')
.required *
input#username(type='text', name='username', maxlength='50' required)
section.postform-row
.postform-label Password
input#password(type='password', name='password', maxlength='100')
.required *
input#password(type='password', name='password', maxlength='100' required)
section.postform-row
.postform-label Confirm Password
input#password(type='password', name='passwordconfirm', maxlength='100')
.required *
input#password(type='password', name='passwordconfirm', maxlength='100' required)
section.postform-row
.postform-label Captcha
.required *
span.postform-col
iframe.captcha(src='/captcha.html' width=200 height=110 scrolling='no')
input#captcha(type='text', name='captcha', autocomplete='off' placeholder='captcha text' maxlength='6')
input#captcha(type='text', name='captcha', autocomplete='off' placeholder='captcha text' maxlength='6' required)
input(type='submit', value='Register')
p Already have an account? #[a(href='/login.html') Login]

Loading…
Cancel
Save