jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
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.

530 lines
23 KiB

extends ../layout.pug
include ../mixins/globalmanagenav.pug
block head
title Manage
block content
h1.board-title Global Management
br
+globalmanagenav('settings')
hr(size=1)
4 years ago
h4.no-m-p Delete board:
.form-wrapper.flexleft.mt-10
form.form-post(action=`/forms/global/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)
h4.no-m-p Settings:
4 years ago
.form-wrapper.flexleft.mt-10
form.form-post(action=`/forms/global/settings`, enctype='application/x-www-form-urlencoded', method='POST')
input(type='hidden' name='_csrf' value=csrf)
.row.wrap.sb
.col.mr-5
.row
h4.mv-5 Security
.row
.label Referer Check
label.postform-style.ph-5
input(type='checkbox', name='referrer_check', value='true' checked=settings.refererCheck)
.row
.label Allowed Hosts
textarea(name='allowed_hosts' placeholder='Newline separated') #{settings.allowedHosts.join('\n')}
.row
.label Secure Cookies
label.postform-style.ph-5
input(type='checkbox', name='secure_cookies', value='true' checked=settings.secureCookies)
.row
h4.mv-5 Server
.row
.label Country Code Header
input(type='text' name='country_code_header' value=settings.countryCodeHeader)
.row
.label IP Header
input(type='text' name='ip_header' value=settings.ipHeader)
.row
.label Meta Site Name
input(type='text' name='meta_site_name' value=settings.meta.siteName)
.row
.label Meta URL
input(type='text' name='meta_url' value=settings.meta.url)
.row
.label Disable Anonymizer File Posting
label.postform-style.ph-5
input(type='checkbox', name='disable_anonymizer_file_posting', value='true' checked=settings.disableAnonymizerFilePosting)
.row
.label Stats Count Anonymizers
label.postform-style.ph-5
input(type='checkbox', name='stats_count_anonymizers', value='true' checked=settings.statsCountAnonymizers)
.row
.label Prune Files Immediately
label.postform-style.ph-5
input(type='checkbox', name='prune_immediately', value='true' checked=settings.pruneImmediately)
.row
.label Thumbnail File Extension
input(type='text' name='thumb_extension' value=settings.thumbExtension)
.row
.label Hash Images
label.postform-style.ph-5
input(type='checkbox', name='hash_images' value='true' checked=settings.hashImages)
.row
.label Template Cache
label.postform-style.ph-5
input(type='checkbox', name='cache_templates' value='true' checked=settings.cacheTemplates)
.row
.label Template Generation Lock Time
input(type='number' name='lock_wait' value=settings.lockWait)
.row
.label Overboard Index Thread Limit
input(type='number' name='overboard_limit' value=settings.overboardLimit)
.row
.label Overboard Catalog Thread Limit
input(type='number' name='overboard_catalog_limit' value=settings.overboardCatalogLimit)
.row
.label Prune Modlogs Days
input(type='number', name='prune_modlogs' value=settings.pruneModlogs)
.row
.label Prune IPs Days
input(type='number', name='prune_ips' value=settings.pruneIps)
.row
row
h4.mv-5 Permissions
.row
.label Raw IP Perm Level
select(name='ip_hash_perm_level')
option(value='0', selected=settings.ipHashPermLevel === 0) Admin
option(value='1', selected=settings.ipHashPermLevel === 1) Global Staff
option(value='2', selected=settings.ipHashPermLevel === 2) Board Owner
option(value='3', selected=settings.ipHashPermLevel === 3) Board Mod
.row
.label Delete Board Perm Level
select(name='delete_board_perm_level')
option(value='0', selected=settings.deleteBoardPermLevel === 0) Admin
option(value='1', selected=settings.deleteBoardPermLevel === 1) Global Staff
option(value='2', selected=settings.deleteBoardPermLevel === 2) Board Owner
option(value='3', selected=settings.deleteBoardPermLevel === 3) Board Mod
.row
.label Allow User Account Creation
label.postform-style.ph-5
input(type='checkbox', name='enable_user_account_creation' value='true' checked=settings.enableUserAccountCreation)
.row
.label Allow User Board Creation
label.postform-style.ph-5
input(type='checkbox', name='enable_user_board_creation' value='true' checked=settings.enableUserBoardCreation)
.row
.label Default Ban Duration
input(type='number', name='default_ban_duration', placeholder='e.g. 1w', value=settings.defaultBanDuration)
.row
.label Quote Limit
input(type='number', name='quote_limit', value=settings.quoteLimit)
.row
.label Preview Replies
input(type='number', name='preview_replies', value=settings.previewReplies)
.row
.label Sticky Preview Replies
input(type='number', name='sticky_preview_replies', value=settings.stickyPreviewReplies)
.row
.label Early 404 Fraction
input(type='number', name='early_404_fraction', value=settings.early404Fraction)
.row
.label Early 404 Replies
input(type='number', name='early_404_replies', value=settings.early404Replies)
.row
.label Max Homepage News Entries
input(type='number', name='max_recent_news', value=settings.maxRecentNews)
.col.mr-5
.row
h4.mv-5 Captcha
.row
.label Type
select(name='captcha_options_type')
option(value='text', selected=settings.captchaOptions.type === 'text') Text
option(value='grid', selected=settings.captchaOptions.type === 'grid') Grid
option(value='google', selected=settings.captchaOptions.type === 'google') Google
option(value='hcaptcha', selected=settings.captchaOptions.type === 'hcaptcha') Hcaptcha
.row
.label Generate Limit
input(type='number' name='captcha_options_generate_limit' value=settings.captchaOptions.generateLimit)
.row
.label Image Size
input(type='number' name='captcha_options_image_size' value=settings.captchaOptions.grid.imageSize)
.row
.label Grid Size
input(type='number' name='captcha_options_grid_size' value=settings.captchaOptions.grid.size)
.row
.label Grid Icon Offset
input(type='number' name='captcha_options_grid_icon_y_offset' value=settings.captchaOptions.grid.iconYOffset)
.row
.label Minimum Distortions
input(type='number' name='captcha_options_num_distorts_min' value=settings.captchaOptions.numDistorts.min)
.row
.label Maximum Distortions
input(type='number' name='captcha_options_num_distorts_max' value=settings.captchaOptions.numDistorts.max)
.row
.label Distortion Intensity
input(type='number' name='captcha_options_distortion' value=settings.captchaOptions.distortion)
.row
h4.mv-5 Block Bypass
.row
.label Enabled
label.postform-style.ph-5
input(type='checkbox', name='block_bypass_enabled', value='true' checked=settings.blockBypass.enabled)
.row
.label Force Anonymizers
label.postform-style.ph-5
input(type='checkbox', name='block_bypass_force_anonymizers', value='true' checked=settings.blockBypass.forceAnonymizers)
.row
.label Bypass DNSBL
label.postform-style.ph-5
input(type='checkbox', name='block_bypass_bypass_dnsbl', value='true' checked=settings.blockBypass.bypassDnsbl)
.row
.label Expire After Uses
input(type='number' name='captcha_options_expire_after_uses' value=settings.blockBypass.expireAfterUses)
.row
.label Expire After Time
input(type='number' name='captcha_options_expire_after_time' value=settings.blockBypass.expireAfterTime)
.row
h4.mv-5 Antispam
.row
.label Filters
textarea(name='filters' placeholder='Newline separated') #{settings.filters.join('\n')}
.row
.label Strict Filtering
label.postform-style.ph-5
input(type='checkbox', name='strict_filtering', value='true', checked=settings.strictFiltering)
.row
.label Filter Mode
select(name='filter_mode')
option(value='0', selected=settings.filterMode === 0) Do nothing
option(value='1', selected=settings.filterMode === 1) Block post
option(value='2', selected=settings.filterMode === 2) Ban
.row
.label Filter Auto Ban Duration
input(type='text' name='ban_duration' placeholder='e.g. 1w' value=settings.filterBanDuration)
.row
.label Same Content Same IP/ID
input(type='number' name='flood_timers_same_content_same_ip' value=settings.floodTimers.sameContentSameIp)
.row
.label Same Content Any IP/ID
input(type='number' name='flood_timers_same_content_any_ip' value=settings.floodTimers.sameContentAnyIp)
.row
.label Any Content Same IP/ID
input(type='number' name='flood_timers_any_content_same_ip' value=settings.floodTimers.anyContentSameIp)
.row
h4.mv-5 DNSBL
.row
.label Enabled
label.postform-style.ph-5
input(type='checkbox', name='dnsbl_enabled', value='true' checked=settings.dnsbl.enabled)
.row
.label DNSBL Addresses
textarea(name='dnsbl_blacklists' placeholder='Newline separated') #{settings.dnsbl.blacklists.join('\n')}
.row
.label Cache Time
input(type='number' name='dnsbl_cache_time' value=settings.dnsbl.cacheTime)
.row
h4.mv-5 Ratelimit Costs
.row
.label Generate Captcha
input(type='number' name='rate_limit_cost_captcha' value=settings.rateLimitCost.captcha)
.row
.label Change Board Settings
input(type='number' name='rate_limit_cost_board_settings' value=settings.rateLimitCost.boardSettings)
.row
.label Edit Post
input(type='number' name='rate_limit_cost_edit_post' value=settings.rateLimitCost.editPost)
.col.mr-5
.row
h4.mv-5 Code Highlighting
.row
.label
| Code Highlighting Languages
|
small
| (
a(href='https://github.com/highlightjs/highlight.js/blob/master/SUPPORTED_LANGUAGES.md') Supported Languages
| )
textarea(name='highlight_options_language_subset' placeholder='Newline separated') #{settings.highlightOptions.languageSubset.join('\n')}
.row
.label Code Highlight Language Detect Threshold
input(type='number' name='highlight_options_threshold' value=settings.highlightOptions.threshold)
.row
h4.mv-5 Themes
.row
.label Allowed Themes
textarea(name='themes' placeholder='Newline separated') #{settings.themes.join('\n')}
.row
.label Allowed Code Themes
textarea(name='code_themes' placeholder='Newline separated') #{settings.codeThemes.join('\n')}
.row
.label Default Theme
select(name='board_defaults_theme')
each theme in themes
option(value=theme selected=settings.boardDefaults.theme === theme) #{theme}
.row
.label Default Code Theme
select(name='board_defaults_code_theme')
each theme in codeThemes
option(value=theme selected=settings.boardDefaults.codeTheme === theme) #{theme}
.row
h4.mv-5 Custom CSS
.row
.label Enable
label.postform-style.ph-5
input(type='checkbox', name='global_limits_custom_css_enabled' value='true' checked=settings.globalLimits.customCss.enabled)
.row
.label Filters
textarea(name='global_limits_custom_css_filters' placeholder='Newline separated') #{settings.globalLimits.customCss.filters.join('\n')}
.row
.label Strict Filtering
label.postform-style.ph-5
input(type='checkbox', name='global_limits_custom_css_strict' value='true' checked=settings.globalLimits.customCss.strict)
.row
.label Max Length
input(type='number' name='global_limits_custom_css_max' value=settings.globalLimits.customCss.max)
.row
h4.mv-5 Field Length Limits
.row
.label Name
input(type='number', name='global_limits_field_length_name' value=settings.globalLimits.fieldLength.name)
.row
.label Email
input(type='number', name='global_limits_field_length_email' value=settings.globalLimits.fieldLength.email)
.row
.label Subject
input(type='number', name='global_limits_field_length_subject' value=settings.globalLimits.fieldLength.subject)
.row
.label Post Password
input(type='number', name='global_limits_field_length_postpassword' value=settings.globalLimits.fieldLength.postpassword)
.row
.label Message
input(type='number', name='global_limits_field_length_message' value=settings.globalLimits.fieldLength.message)
.row
.label Report Reason
input(type='number', name='global_limits_field_length_report_reason' value=settings.globalLimits.fieldLength.report_reason)
.row
.label Ban Reason
input(type='number', name='global_limits_field_length_ban_reason' value=settings.globalLimits.fieldLength.ban_reason)
.row
.label Log Messages
input(type='number', name='global_limits_field_length_log_mesage' value=settings.globalLimits.fieldLength.log_message)
.row
.label Boar URI
input(type='number', name='global_limits_field_length_uri' value=settings.globalLimits.fieldLength.uri)
.row
.label Board Name
input(type='number', name='global_limits_field_length_boardname' value=settings.globalLimits.fieldLength.boardname)
.row
.label Board Description
input(type='number', name='global_limits_field_length_description' value=settings.globalLimits.fieldLength.description)
.row
.label Multi Input Form Anon
input(type='number', name='global_limits_multi_input_posts_anon' value=settings.globalLimits.multiInputs.posts.anon)
.row
.label Multi Input Form Staff
input(type='number', name='global_limits_multi_input_posts_staff' value=settings.globalLimits.multiInputs.posts.staff)
.col.mr-5
.row
h4.mv-5 Frontend Script Defaults
.row
.label Embeds Enabled
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_embeds_enabled', value='true' checked=settings.frontendScriptDefault.embedsEnabled)
.row
.label Unlimit Media Height
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_height_unlimit', value='true' checked=settings.frontendScriptDefault.heightUnlimit)
.row
.label Recursive Post Hiding
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_hide_recursive', value='true' checked=settings.frontendScriptDefault.hideRecursive)
.row
.label Crisp Image Rendering
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_crisp_images', value='true' checked=settings.frontendScriptDefault.crispImages)
.row
.label Hide Thumbnails
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_hide_thumbnails', value='true' checked=settings.frontendScriptDefault.hideThumbnails)
.row
.label Non-Color IDs
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_non_color_ids', value='true' checked=settings.frontendScriptDefault.nonColorIds)
.row
.label Always Reveal Spoiler Markdown
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_always_show_spoilers', value='true' checked=settings.frontendScriptDefault.alwaysShowSpoilers)
.row
.label Hide Post Stubs
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_hide_post_stubs', value='true' checked=settings.frontendScriptDefault.hidePostStubs)
.row
.label Smooth Scrolling
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_smooth_scrolling', value='true' checked=settings.frontendScriptDefault.smoothScrolling)
.row
.label Default Volume
input(type='number', name='frontend_script_default_volume' value=settings.frontendScriptDefault.defaultVolume)
.row
.label Loop Audio/Video
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_loop', value='true' checked=settings.frontendScriptDefault.loop)
.row
.label Image Loading Bars
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_image_loading_bars', value='true' checked=settings.frontendScriptDefault.imageLoadingBars)
.row
.label Live Posts
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_live', value='true' checked=settings.frontendScriptDefault.live)
.row
.label Scroll To New Posts
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_scroll_to_posts', value='true' checked=settings.frontendScriptDefault.scrollToPosts)
.row
.label Local Time
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_local_time', value='true' checked=settings.frontendScriptDefault.localTime)
.row
.label 24 Hour Time
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_hour_24_time', value='true' checked=settings.frontendScriptDefault.hour24Time)
.row
.label Use Relative Time
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_relative_time', value='true' checked=settings.frontendScriptDefault.relativeTime)
.row
.label Notifications
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_notifications', value='true' checked=settings.frontendScriptDefault.notificationsEnabled)
.row
.label Show (You)s
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_show_yous', value='true' checked=settings.frontendScriptDefault.showYous)
.row
.label Only Notify (You)s
label.postform-style.ph-5
input(type='checkbox', name='frontend_script_default_notifications_yous_only', value='true' checked=settings.frontendScriptDefault.notificationsYousOnly)
.row
h4.mv-5 Files & Thumbnails
.row
.label Animated .gif Thumbnails
label.postform-style.ph-5
input(type='checkbox', name='animated_gif_thumbnails', value='true' checked=settings.animatedGifThumbnails)
.row
.label Audio Thumbnails
label.postform-style.ph-5
input(type='checkbox', name='audio_thumbnails', value='true' checked=settings.audioThumbnails)
.row
.label Use ffmpeg For .gif Thumbnails
label.postform-style.ph-5
input(type='checkbox', name='ffmpeg_gif_thumbnails', value='true' checked=settings.ffmpegGifThumbnails)
.row
.label Thumbnail Dimensions
input(type='number', name='thumb_size', value=settings.thumbSize)
.row
.label Video Thumbnail Percentage
input(type='number', name='video_thumb_percentage', value=settings.videoThumbPercentage)
.row
.label Other Mime Types
textarea(name='other_mime_types' placeholder='Newline separated') #{settings.otherMimeTypes.join('\n')}
.row
.label Validate Mime Types
label.postform-style.ph-5
input(type='checkbox', name='check_real_mime_types', value='true' checked=settings.checkRealMimeTypes)
.row
.label Unknown Types Pass Validation
label.postform-style.ph-5
input(type='checkbox', name='allow_mime_no_match', value='true' checked=settings.allowMimeNoMatch)
.row
.label Space File Name Replacement
input(type='text', name='space_file_name_replacement', value=settings.spaceFileNameReplacement)
.col.mr-5
.row
h4.mv-5 Global Limits
.row
.label Reply Limit Min
input(type='number' name='global_limits_reply_limit_min' value=settings.globalLimits.replyLimit.min)
.row
.label Reply Limit Max
input(type='number' name='global_limits_reply_limit_max' value=settings.globalLimits.replyLimit.max)
.row
.label Thread Limit Min
input(type='number' name='global_limits_thread_limit_min' value=settings.globalLimits.threadLimit.min)
.row
.label Thread Limit Max
input(type='number' name='global_limits_thread_limit_max' value=settings.globalLimits.threadLimit.max)
.row
.label Bump Limit Min
input(type='number' name='global_limits_bump_limit_min' value=settings.globalLimits.bumpLimit.min)
.row
.label Bump Limit Max
input(type='number' name='global_limits_bump_limit_max' value=settings.globalLimits.bumpLimit.max)
.row
.label Files Per Post Max
input(type='number' name='global_limits_post_files_max' value=settings.globalLimits.postFiles.max)
.row
.label Post File Size Max
input(type='number' name='global_limits__post_files_size_max' value=settings.globalLimits.postFilesSize.max)
.row
.label Custom Pages Max Characters
input(type='number' name='global_limits_custom_pages_max_length' value=settings.globalLimits.customPages.maxLength)
.row
.label Total Custom Pages Per Board
input(type='number' name='global_limits_custom_pages_max' value=settings.globalLimits.customPages.max)
.row
.label Banner Width Max
input(type='number' name='global_limits_banner_files_width' value=settings.globalLimits.bannerFiles.width)
.row
.label Banner Height Max
input(type='number' name='global_limits_banner_files_height' value=settings.globalLimits.bannerFiles.height)
.row
.label Force 3:1 Banner Aspect Ratio
label.postform-style.ph-5
input(type='checkbox', name='global_limits_banner_files_force_aspect_ratio' value='true' checked=settings.globalLimits.bannerFiles.forceAspectRatio)
.row
.label Banner File Size Max
input(type='number' name='global_limits_banner_files_size_max' value=settings.globalLimits.bannerFilesSize.max)
.row
.label Banners Per Upload Max
input(type='number' name='global_limits_banner_files_max' value=settings.globalLimits.bannerFiles.max)
.row
.label Total Banners Per Board
input(type='number' name='global_limits_banner_files_total' value=settings.globalLimits.bannerFiles.total)
.row
h4.mv-5 Webring
.row
.label Enable
label.postform-style.ph-5
input(type='checkbox', name='enable_webring' value='true' checked=settings.enableWebring)
.row
p other webring options coming soon
input.row(type='submit', value='save settings')