|
|
|
@ -1,6 +1,5 @@ |
|
|
|
|
extends ../layout.pug |
|
|
|
|
include ../mixins/post.pug |
|
|
|
|
include ../mixins/ban.pug |
|
|
|
|
include ../mixins/managenav.pug |
|
|
|
|
|
|
|
|
|
block head |
|
|
|
|
script(src='/js/all.js') |
|
|
|
@ -9,212 +8,6 @@ block head |
|
|
|
|
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') |
|
|
|
|
+managenav('main') |
|
|
|
|
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 Unlisted |
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
input(type='checkbox', name='unlisted', value='true' checked=board.settings.unlisted) |
|
|
|
|
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') |
|
|
|
|
|
|
|
|
|
p Welcome to the management page. #[a(href=`/{board._id}/index.html`) Return] |
|
|
|
|