mirror of https://gitgud.io/fatchan/jschan.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
330 lines
17 KiB
330 lines
17 KiB
extends ../layout.pug
|
|
include ../mixins/post.pug
|
|
include ../mixins/ban.pug
|
|
include ../mixins/boardheader.pug
|
|
include ../mixins/managenav.pug
|
|
|
|
block head
|
|
title /#{board._id}/ - #{__('Settings')}
|
|
|
|
block content
|
|
+boardheader(__('Settings'))
|
|
br
|
|
+managenav('settings')
|
|
if permissions.get(Permissions.MANAGE_BOARD_OWNER)
|
|
hr(size=1)
|
|
h4.no-m-p #{__('Transfer ownership')}:
|
|
.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)
|
|
.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')}:
|
|
.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)
|
|
.row
|
|
.label #{__('Board URI')}:
|
|
input(type='text' name='uri' required)
|
|
.row
|
|
.label #{__("I'm sure")}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='confirm', value='true' required)
|
|
input(type='submit', value=__('Submit'))
|
|
hr(size=1)
|
|
.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)
|
|
.mv-10
|
|
.sm#tab-1
|
|
.sm#tab-2
|
|
.sm#tab-3
|
|
.sm#tab-4
|
|
.sm#tab-5
|
|
.tabbed-area
|
|
ul.tabs.group
|
|
li
|
|
a(href='#tab-1') #{__('General')}
|
|
li
|
|
a(href='#tab-2') #{__('Posting')}
|
|
li
|
|
a(href='#tab-3') #{__('Files')}
|
|
li
|
|
a(href='#tab-4') #{__('Limits')}
|
|
li
|
|
a(href='#tab-5') #{__('Antispam')}
|
|
.box-wrap
|
|
.tab.tab-1
|
|
.col
|
|
.row
|
|
.label #{__('Board name')}
|
|
input(type='text' name='name' value=board.settings.name)
|
|
.row
|
|
.label #{__('Board Description')}
|
|
input(type='text' name='description' value=board.settings.description)
|
|
.row
|
|
.label #{__('Tags')}
|
|
textarea(name='tags' placeholder=__('Newline separated, max 10')) #{board.tags.join('\n')}
|
|
.row
|
|
.label #{__('Announcement')}
|
|
textarea(name='announcement' placeholder=__('Supports post styling')) #{board.settings.announcement.raw}
|
|
.row
|
|
.label #{__('Language')}
|
|
select(name='language')
|
|
each language in languages
|
|
option(value=language selected=board.settings.language === language) #{__(language)} (#{language})
|
|
.row
|
|
.label #{__('Theme')}
|
|
select(name='theme')
|
|
each theme in themes
|
|
option(value=theme selected=board.settings.theme === theme) #{theme}
|
|
.row
|
|
.label #{__('Code Theme')}
|
|
select(name='code_theme')
|
|
each theme in codeThemes
|
|
option(value=theme selected=board.settings.codeTheme === theme) #{theme}
|
|
if globalLimits.customCss.enabled
|
|
.row
|
|
.label #{__('Custom CSS')}
|
|
textarea(name='custom_css' placeholder=__('Test first in top-right settings if you have javascript enabled') maxlength=globalLimits.customCss.max) #{board.settings.customCss}
|
|
.row
|
|
.label #{__('Hide Banners')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='hide_banners', value='true' checked=board.settings.hideBanners)
|
|
.row
|
|
.label #{__('IDs')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='ids', value='true' checked=board.settings.ids)
|
|
.row
|
|
.label #{__('Geo Flags')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='geo_flags', value='true' checked=board.settings.geoFlags)
|
|
.row
|
|
.label #{__('Custom Flags')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='custom_flags', value='true' checked=board.settings.customFlags)
|
|
.row
|
|
.label #{__('Reverse Image Search Links')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='reverse_image_search_links', value='true' checked=board.settings.reverseImageSearchLinks)
|
|
.row
|
|
.label #{__('External Archive Links')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='archive_links', value='true' checked=board.settings.archiveLinks)
|
|
.row
|
|
.label #{__('Enable Tegaki')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='enable_tegaki', value='true' checked=board.settings.enableTegaki)
|
|
.row
|
|
.label #{__('SFW')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='sfw', value='true' checked=board.settings.sfw)
|
|
.row
|
|
.label #{__('Unlist locally')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='unlisted_local', value='true' checked=board.settings.unlistedLocal)
|
|
.row
|
|
.label #{__('Unlist from webring')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='unlisted_webring', value='true' checked=board.settings.unlistedWebring)
|
|
|
|
.tab.tab-2
|
|
.col
|
|
.row
|
|
.label #{__('Anon Name')}
|
|
input(type='text' name='default_name' value=board.settings.defaultName)
|
|
.row
|
|
.label #{__('User Post Deletion')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='user_post_delete', value='true' checked=board.settings.userPostDelete)
|
|
.row
|
|
.label #{__('Force Anon')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='force_anon', value='true' checked=board.settings.forceAnon)
|
|
.row
|
|
.label #{__('Sage Only Email')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='sage_only_email', value='true' checked=board.settings.sageOnlyEmail)
|
|
.row
|
|
.label #{__('Force Thread Subject')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='force_thread_subject', value='true' checked=board.settings.forceThreadSubject)
|
|
.row
|
|
.label #{__('Force Thread Message')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='force_thread_message', value='true' checked=board.settings.forceThreadMessage)
|
|
.row
|
|
.label #{__('Force Thread File')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='force_thread_file', value='true' checked=board.settings.forceThreadFile)
|
|
.row
|
|
.label #{__('Force Reply Message')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='force_reply_message', value='true' checked=board.settings.forceReplyMessage)
|
|
.row
|
|
.label #{__('Force Reply File')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='force_reply_file', value='true' checked=board.settings.forceReplyFile)
|
|
.row
|
|
.label #{__('Disable Reply Subject')}
|
|
label.postform-style.ph-5
|
|
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 min=0 max=globalLimits.fieldLength.message)
|
|
.row
|
|
.label #{__('Min Reply Message Length')}
|
|
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 min=0 max=globalLimits.fieldLength.message)
|
|
.row
|
|
.label #{__('Max Reply Message Length')}
|
|
input(type='number' name='max_reply_message_length' value=board.settings.maxReplyMessageLength min=0 max=globalLimits.fieldLength.message)
|
|
|
|
.tab.tab-3
|
|
.col
|
|
.row
|
|
.label #{__('Max Files')}
|
|
input(type='number' name='max_files' value=board.settings.maxFiles max=globalLimits.postFiles.max)
|
|
.row
|
|
.label #{__('Allow Video Files')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='files_allow_video', value='true' checked=board.settings.allowedFileTypes.video)
|
|
.row
|
|
.label #{__('Allow Image Files')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='files_allow_image', value='true' checked=board.settings.allowedFileTypes.image)
|
|
.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)
|
|
.row
|
|
.label #{__('Allow Audio Files')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='files_allow_audio', value='true' checked=board.settings.allowedFileTypes.audio)
|
|
.row
|
|
.label #{__('Allow Other Files')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='files_allow_other', value='true' checked=board.settings.allowedFileTypes.other)
|
|
.row
|
|
.label #{__('User File Spoilering')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='user_post_spoiler', value='true' checked=board.settings.userPostSpoiler)
|
|
.row
|
|
.label #{__('User File Unlinking')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='user_post_unlink', value='true' checked=board.settings.userPostUnlink)
|
|
|
|
.tab.tab-4
|
|
.col
|
|
.row
|
|
.label #{__('Thread Limit')}
|
|
input(type='number' name='thread_limit' value=board.settings.threadLimit min=globalLimits.threadLimit.min max=globalLimits.threadLimit.max)
|
|
.row
|
|
.label #{__('Reply Limit')}
|
|
input(type='number' name='reply_limit' value=board.settings.replyLimit min=globalLimits.replyLimit.min max=globalLimits.replyLimit.max)
|
|
.row
|
|
.label #{__('Bump Limit')}
|
|
input(type='number' name='bump_limit' value=board.settings.bumpLimit min=globalLimits.bumpLimit.min max=globalLimits.bumpLimit.max)
|
|
.row
|
|
.label #{__('Enforce Unique Files')}
|
|
select(name='file_r9k_mode')
|
|
option(value='0', selected=board.settings.fileR9KMode === 0) #{__('Off')}
|
|
option(value='1', selected=board.settings.fileR9KMode === 1) #{__('Per Thread')}
|
|
option(value='2', selected=board.settings.fileR9KMode === 2) #{__('Board Wide')}
|
|
.row
|
|
.label #{__('Enforce Unique Messages')}
|
|
select(name='message_r9k_mode')
|
|
option(value='0', selected=board.settings.messageR9KMode === 0) #{__('Off')}
|
|
option(value='1', selected=board.settings.messageR9KMode === 1) #{__('Per Thread')}
|
|
option(value='2', selected=board.settings.messageR9KMode === 2) #{__('Board Wide')}
|
|
.row
|
|
.label #{__('OP Reply Count Delete Protection')}
|
|
input(type='number' name='delete_protection_count' value=board.settings.deleteProtectionCount)
|
|
.row
|
|
.label #{__('OP Thread Age Delete Protection')}
|
|
input(type='text' name='delete_protection_age' placeholder=__('e.g. 1w') value=board.settings.deleteProtectionAge)
|
|
|
|
.tab.tab-5
|
|
.col
|
|
.row
|
|
a.label(href='/faq.html#antispam') #{__('Antispam FAQ')}
|
|
.row
|
|
.label #{__('Lock Mode')}
|
|
select(name='lock_mode')
|
|
option(value='0', selected=board.settings.lockMode === 0) #{__('Unlocked')}
|
|
option(value='1', selected=board.settings.lockMode === 1) #{__('Lock thread creation')}
|
|
option(value='2', selected=board.settings.lockMode === 2) #{__('Lock board')}
|
|
.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')}
|
|
.row
|
|
.label #{__('PPH Trigger Threshold')}
|
|
input(type='number', name='pph_trigger', value=board.settings.pphTrigger)
|
|
.row
|
|
.label #{__('PPH Trigger Action')}
|
|
select(name='pph_trigger_action')
|
|
option(value='0', selected=board.settings.pphTriggerAction === 0) #{__('Do nothing')}
|
|
option(value='1', selected=board.settings.pphTriggerAction === 1) #{__('Enable captcha for new thread')}
|
|
option(value='2', selected=board.settings.pphTriggerAction === 2) #{__('Enable captcha for all posts')}
|
|
option(value='3', selected=board.settings.pphTriggerAction === 3) #{__('Lock thread creation')}
|
|
option(value='4', selected=board.settings.pphTriggerAction === 4) #{__('Lock board')}
|
|
.row
|
|
.label #{__('TPH Trigger Threshold')}
|
|
input(type='number', name='tph_trigger', value=board.settings.tphTrigger)
|
|
.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 thread creation')}
|
|
option(value='4', selected=board.settings.tphTriggerAction === 4) #{__('Lock board')}
|
|
.row
|
|
.label #{__('Trigger Reset Lock Mode')}
|
|
select(name='lock_reset')
|
|
option(value='0', selected=board.settings.lockReset === 0) #{__('No change')}
|
|
option(value='1', selected=board.settings.lockReset === 1) #{__('Unlock board')}
|
|
option(value='2', selected=board.settings.lockReset === 2) #{__('Lock thread creation')}
|
|
.row
|
|
.label #{__('Trigger Reset Captcha Mode')}
|
|
select(name='captcha_reset')
|
|
option(value='0', selected=board.settings.captchaReset === 0) #{__('No change')}
|
|
option(value='1', selected=board.settings.captchaReset === 1) #{__('Captcha disabled')}
|
|
option(value='2', selected=board.settings.captchaReset === 2) #{__('Captcha for new thread')}
|
|
.row
|
|
.label #{__('Early 404')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='early404', value='true' checked=board.settings.early404)
|
|
.row
|
|
.label #{__('Disable anonymizer file posting')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='disable_anonymizer_file_posting', value='true' checked=board.settings.disableAnonymizerFilePosting)
|
|
.row
|
|
.label #{__('Blocked Countries')}
|
|
include ../includes/2charisocountries.pug
|
|
.row
|
|
.label #{__('Filters')}
|
|
textarea(name='filters' placeholder=__('Newline separated')) #{board.settings.filters.join('\n')}
|
|
.row
|
|
.label #{__('Strict Filtering')}
|
|
label.postform-style.ph-5
|
|
input(type='checkbox', name='strict_filtering', value='true' checked=board.settings.strictFiltering)
|
|
.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) #{__('Ban')}
|
|
.row
|
|
.label #{__('Filter Auto Ban Duration')}
|
|
input(type='text' name='ban_duration' placeholder=__('e.g. 1w') value=board.settings.filterBanDuration)
|
|
|
|
input.row(type='submit', value=__('Save settings'))
|
|
|