|
|
|
extends ../layout.pug
|
|
|
|
include ../mixins/post.pug
|
|
|
|
include ../mixins/ban.pug
|
|
|
|
|
|
|
|
block head
|
|
|
|
script(src='/js/all.js')
|
|
|
|
title /#{board._id}/ - Manage
|
|
|
|
|
|
|
|
block content
|
|
|
|
include ../includes/boardheader.pug
|
|
|
|
br
|
|
|
|
h4.no-m-p Transfer ownership:
|
|
|
|
section.form-wrapper.flexleft.mt-10
|
|
|
|
form.form-post(action=`/forms/board/${board._id}/transfer`, enctype='application/x-www-form-urlencoded', method='POST')
|
|
|
|
input(type='hidden' name='_csrf' value=csrf)
|
|
|
|
section.row
|
|
|
|
.label New owner username
|
|
|
|
input(type='text' name='username' placeholder=board.owner required)
|
|
|
|
input(type='submit', value='submit')
|
|
|
|
hr(size=1)
|
|
|
|
h4.no-m-p Delete board:
|
|
|
|
section.form-wrapper.flexleft.mt-10
|
|
|
|
form.form-post(action=`/forms/board/${board._id}/deleteboard`, enctype='application/x-www-form-urlencoded', method='POST')
|
|
|
|
input(type='hidden' name='_csrf' value=csrf)
|
|
|
|
section.row
|
|
|
|
.label I'm sure
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='confirm', value='true' required)
|
|
|
|
section.row
|
|
|
|
.label Board URI
|
|
|
|
input(type='text' name='uri' required)
|
|
|
|
input(type='submit', value='submit')
|
|
|
|
hr(size=1)
|
|
|
|
h4.no-m-p Settings:
|
|
|
|
section.form-wrapper.flexleft.mt-10
|
|
|
|
form.form-post(action=`/forms/board/${board._id}/settings` method='POST' enctype='application/x-www-form-urlencoded')
|
|
|
|
input(type='hidden' name='_csrf' value=csrf)
|
|
|
|
section.row
|
|
|
|
.label Board name
|
|
|
|
input(type='text' name='name' value=board.settings.name)
|
|
|
|
section.row
|
|
|
|
.label Board Description
|
|
|
|
input(type='text' name='description' value=board.settings.description)
|
|
|
|
section.row
|
|
|
|
.label Tags
|
|
|
|
textarea(name='tags' placeholder='newline separated, max 10') #{board.settings.tags.join('\n')}
|
|
|
|
section.row
|
|
|
|
.label Announcement
|
|
|
|
textarea(name='announcement' placeholder='supports post styling') #{board.settings.announcement.raw}
|
|
|
|
section.row
|
|
|
|
.label Anon Name
|
|
|
|
input(type='text' name='default_name' value=board.settings.defaultName)
|
|
|
|
section.row
|
|
|
|
.label Max Files
|
|
|
|
input(type='number' name='max_files' value=board.settings.maxFiles max=globalLimits.postFiles.max)
|
|
|
|
section.row
|
|
|
|
.label Allow Video Files
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='files_allow_video', value='true' checked=board.settings.allowedFileTypes.video)
|
|
|
|
section.row
|
|
|
|
.label Allow Image Files
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='files_allow_image', value='true' checked=board.settings.allowedFileTypes.image)
|
|
|
|
section.row
|
|
|
|
.label Allow Animated Image Files
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='files_allow_animated_image', value='true' checked=board.settings.allowedFileTypes.animatedImage)
|
|
|
|
section.row
|
|
|
|
.label Early 404
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='early404', value='true' checked=board.settings.early404)
|
|
|
|
section.row
|
|
|
|
.label IDs
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='ids', value='true' checked=board.settings.ids)
|
|
|
|
section.row
|
|
|
|
.label Geo Flags
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='flags', value='true' checked=board.settings.flags)
|
|
|
|
section.row
|
|
|
|
.label User Post Deletion
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='user_post_delete', value='true' checked=board.settings.userPostDelete)
|
|
|
|
section.row
|
|
|
|
.label User File Spoilering
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='user_post_spoiler', value='true' checked=board.settings.userPostSpoiler)
|
|
|
|
section.row
|
|
|
|
.label User File Unlinking
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='user_post_unlink', value='true' checked=board.settings.userPostUnlink)
|
|
|
|
section.row
|
|
|
|
.label Force Anon
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='force_anon', value='true' checked=board.settings.forceAnon)
|
|
|
|
section.row
|
|
|
|
.label Force Thread Subject
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='force_thread_subject', value='true' checked=board.settings.forceThreadSubject)
|
|
|
|
section.row
|
|
|
|
.label Force Thread Message
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='force_thread_message', value='true' checked=board.settings.forceThreadMessage)
|
|
|
|
section.row
|
|
|
|
.label Force Thread File
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='force_thread_file', value='true' checked=board.settings.forceThreadFile)
|
|
|
|
section.row
|
|
|
|
.label Force Reply Message
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='force_reply_message', value='true' checked=board.settings.forceReplyMessage)
|
|
|
|
section.row
|
|
|
|
.label Force Reply File
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='force_reply_file', value='true' checked=board.settings.forceReplyFile)
|
|
|
|
section.row
|
|
|
|
.label Min Thread Message Length
|
|
|
|
input(type='number' name='min_thread_message_length' value=board.settings.minThreadMessageLength max=globalLimits.messageLength.max)
|
|
|
|
section.row
|
|
|
|
.label Min Reply Message Length
|
|
|
|
input(type='number' name='min_reply_message_length' value=board.settings.minReplyMessageLength max=globalLimits.messageLength.max)
|
|
|
|
section.row
|
|
|
|
.label Thread Limit
|
|
|
|
input(type='number' name='thread_limit' value=board.settings.threadLimit min=globalLimits.threadLimit.min max=globalLimits.threadLimit.max)
|
|
|
|
section.row
|
|
|
|
.label Reply Limit
|
|
|
|
input(type='number' name='reply_limit' value=board.settings.replyLimit min=globalLimits.replyLimit.min max=globalLimits.replyLimit.max)
|
|
|
|
section.row
|
|
|
|
.label Moderators
|
|
|
|
textarea(name='moderators' placeholder='newline separated, max 10') #{board.settings.moderators.join('\n')}
|
|
|
|
section.row
|
|
|
|
.label Board Locked
|
|
|
|
label.postform-style.ph-5
|
|
|
|
input(type='checkbox', name='locked', value='true' checked=board.settings.locked)
|
|
|
|
section.row
|
|
|
|
.label Theme
|
|
|
|
select(name='theme')
|
|
|
|
each theme in themes
|
|
|
|
option(value=theme selected=board.settings.theme === theme) #{theme}
|
|
|
|
section.row
|
|
|
|
.label Captcha Mode
|
|
|
|
select(name='captcha_mode')
|
|
|
|
option(value='0', selected=board.settings.captchaMode === 0) No Captcha
|
|
|
|
option(value='1', selected=board.settings.captchaMode === 1) Captcha for new thread
|
|
|
|
option(value='2', selected=board.settings.captchaMode === 2) Captcha for all posts
|
|
|
|
section.row
|
|
|
|
.label TPH Trigger Threshold
|
|
|
|
input(type='number', name='tph_trigger', value=board.settings.tphTrigger)
|
|
|
|
section.row
|
|
|
|
.label TPH Trigger Action
|
|
|
|
select(name='tph_trigger_action')
|
|
|
|
option(value='0', selected=board.settings.tphTriggerAction === 0) Do nothing
|
|
|
|
option(value='1', selected=board.settings.tphTriggerAction === 1) Enable captcha for new thread
|
|
|
|
option(value='2', selected=board.settings.tphTriggerAction === 2) Enable captcha for all posts
|
|
|
|
option(value='3', selected=board.settings.tphTriggerAction === 3) Lock Board
|
|
|
|
section.row
|
|
|
|
.label Filters
|
|
|
|
textarea(name='filters' placeholder='newline separated, max 50') #{board.settings.filters.join('\n')}
|
|
|
|
section.row
|
|
|
|
.label Filter Mode
|
|
|
|
select(name='filter_mode')
|
|
|
|
option(value='0', selected=board.settings.filterMode === 0) Do nothing
|
|
|
|
option(value='1', selected=board.settings.filterMode === 1) Block post
|
|
|
|
option(value='2', selected=board.settings.filterMode === 2) Auto ban
|
|
|
|
section.row
|
|
|
|
.label Filter Auto Ban Duration
|
|
|
|
input(type='text' name='ban_duration' placeholder='e.g. 1w' value=board.settings.filterBanDuration)
|
|
|
|
input(type='submit', value='save settings')
|
|
|
|
hr(size=1)
|
|
|
|
h4.no-m-p Add Banners:
|
|
|
|
section.form-wrapper.flexleft.mt-10
|
|
|
|
form.form-post(action=`/forms/board/${board._id}/addbanners`, enctype='multipart/form-data', method='POST')
|
|
|
|
input(type='hidden' name='_csrf' value=csrf)
|
|
|
|
section.row
|
|
|
|
.label Upload
|
|
|
|
.required *
|
|
|
|
input#file(type='file', name='file' multiple required)
|
|
|
|
input(type='submit', value='submit')
|
|
|
|
hr(size=1)
|
|
|
|
if board.banners.length > 0
|
|
|
|
h4.no-m-p Delete Banners:
|
|
|
|
section.form-wrapper.flexleft.mt-10
|
|
|
|
form.form-post(action=`/forms/board/${board._id}/deletebanners`, enctype='application/x-www-form-urlencoded', method='POST')
|
|
|
|
input(type='hidden' name='_csrf' value=csrf)
|
|
|
|
each banner in board.banners
|
|
|
|
label.banner-check
|
|
|
|
input(type='checkbox' name='checkedbanners[]' value=banner)
|
|
|
|
img.board-banner(src=`/banner/${board._id}/${banner}` width='300' height='100')
|
|
|
|
input(type='submit', value='delete')
|
|
|
|
hr(size=1)
|
|
|
|
h4.no-m-p Reports:
|
|
|
|
form(action=`/forms/board/${board._id}/modactions` method='POST' enctype='application/x-www-form-urlencoded')
|
|
|
|
input(type='hidden' name='_csrf' value=csrf)
|
|
|
|
if reports.length === 0
|
|
|
|
p No reports.
|
|
|
|
else
|
|
|
|
for report in reports
|
|
|
|
section.thread
|
|
|
|
+post(report, false, true)
|
|
|
|
hr(size=1)
|
|
|
|
include ../includes/actionfooter_manage.pug
|
|
|
|
hr(size=1)
|
|
|
|
h4.no-m-p Bans & Appeals:
|
|
|
|
form(action=`/forms/board/${board._id}/unban` method='POST' enctype='application/x-www-form-urlencoded')
|
|
|
|
input(type='hidden' name='_csrf' value=csrf)
|
|
|
|
if bans.length === 0
|
|
|
|
p No bans.
|
|
|
|
hr(size=1)
|
|
|
|
else
|
|
|
|
for ban in bans
|
|
|
|
section.thread
|
|
|
|
+ban(ban)
|
|
|
|
hr(size=1)
|
|
|
|
section.action-wrapper
|
|
|
|
input(type='submit', value='unban')
|
|
|
|
|