|
|
@ -23,35 +23,45 @@ block content |
|
|
|
input(type='submit', value='submit') |
|
|
|
input(type='submit', value='submit') |
|
|
|
hr(size=1) |
|
|
|
hr(size=1) |
|
|
|
h4.no-m-p Settings: |
|
|
|
h4.no-m-p Settings: |
|
|
|
.form-wrapper.flexleft.mt-10 |
|
|
|
.form-wrapper.flexleft |
|
|
|
form.form-post(action=`/forms/global/settings`, enctype='application/x-www-form-urlencoded', method='POST') |
|
|
|
form.form-post(action=`/forms/global/settings`, enctype='application/x-www-form-urlencoded', method='POST') |
|
|
|
input(type='hidden' name='_csrf' value=csrf) |
|
|
|
input(type='hidden' name='_csrf' value=csrf) |
|
|
|
input.row(type='submit', value='save settings') |
|
|
|
.mv-10 |
|
|
|
.row.wrap.sb |
|
|
|
.tab#tab-1 |
|
|
|
.col.mr-5 |
|
|
|
.tab#tab-2 |
|
|
|
|
|
|
|
.tab#tab-3 |
|
|
|
.row |
|
|
|
.tab#tab-4 |
|
|
|
h4.mv-5 Security |
|
|
|
.tab#tab-5 |
|
|
|
.row |
|
|
|
.tab#tab-6 |
|
|
|
.label Referer Check |
|
|
|
.tab#tab-7 |
|
|
|
label.postform-style.ph-5 |
|
|
|
.tab#tab-8 |
|
|
|
input(type='checkbox', name='referrer_check', value='true' checked=settings.refererCheck) |
|
|
|
.tab#tab-9 |
|
|
|
.row |
|
|
|
.tab#tab-10 |
|
|
|
.label Allowed Hosts |
|
|
|
.tabbed-area |
|
|
|
textarea(name='allowed_hosts' placeholder='Newline separated') #{settings.allowedHosts.join('\n')} |
|
|
|
ul.tabs.group |
|
|
|
.row |
|
|
|
li |
|
|
|
.label Secure Cookies |
|
|
|
a(href='#tab-1') General |
|
|
|
label.postform-style.ph-5 |
|
|
|
li |
|
|
|
input(type='checkbox', name='secure_cookies', value='true' checked=settings.secureCookies) |
|
|
|
a(href='#tab-2') Security |
|
|
|
.row |
|
|
|
li |
|
|
|
.label Don't store raw IPs |
|
|
|
a(href='#tab-3') Limits |
|
|
|
label.postform-style.ph-5 |
|
|
|
li |
|
|
|
input(type='checkbox', name='dont_store_raw_ips', value='true' checked=settings.dontStoreRawIps) |
|
|
|
a(href='#tab-4') Captcha |
|
|
|
.row |
|
|
|
li |
|
|
|
.label Prune IPs Days |
|
|
|
a(href='#tab-5') Antispam |
|
|
|
input(type='number', name='prune_ips' value=settings.pruneIps) |
|
|
|
li |
|
|
|
.row |
|
|
|
a(href='#tab-6') Style |
|
|
|
h4.mv-5 Server |
|
|
|
li |
|
|
|
|
|
|
|
a(href='#tab-7') Webring |
|
|
|
|
|
|
|
li |
|
|
|
|
|
|
|
a(href='#tab-8') Files & Thumbnails |
|
|
|
|
|
|
|
li |
|
|
|
|
|
|
|
a(href='#tab-9') Frontend Script Defaults |
|
|
|
|
|
|
|
li |
|
|
|
|
|
|
|
a(href='#tab-10') Board Defaults |
|
|
|
|
|
|
|
.box-wrap |
|
|
|
|
|
|
|
.tab-1 |
|
|
|
|
|
|
|
.col |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Global Announcement |
|
|
|
.label Global Announcement |
|
|
|
textarea(name='global_announcement') #{settings.globalAnnouncement.raw} |
|
|
|
textarea(name='global_announcement') #{settings.globalAnnouncement.raw} |
|
|
@ -130,9 +140,30 @@ block content |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Prune Modlogs Days |
|
|
|
.label Prune Modlogs Days |
|
|
|
input(type='number', name='prune_modlogs' value=settings.pruneModlogs) |
|
|
|
input(type='number', name='prune_modlogs' value=settings.pruneModlogs) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.tab-2 |
|
|
|
|
|
|
|
.col |
|
|
|
.row |
|
|
|
.row |
|
|
|
row |
|
|
|
.label Referer Check |
|
|
|
h4.mv-5 Limits |
|
|
|
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 |
|
|
|
|
|
|
|
.label Don't store raw IPs |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='dont_store_raw_ips', value='true' checked=settings.dontStoreRawIps) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Prune IPs Days |
|
|
|
|
|
|
|
input(type='number', name='prune_ips' value=settings.pruneIps) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.tab-3 |
|
|
|
|
|
|
|
.col |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Default Ban Duration |
|
|
|
.label Default Ban Duration |
|
|
|
input(type='text', name='default_ban_duration', placeholder='e.g. 1w', value=settings.defaultBanDuration) |
|
|
|
input(type='text', name='default_ban_duration', placeholder='e.g. 1w', value=settings.defaultBanDuration) |
|
|
@ -170,11 +201,119 @@ block content |
|
|
|
option(value='1', selected=settings.abandonedBoardAction === 1) Lock board |
|
|
|
option(value='1', selected=settings.abandonedBoardAction === 1) Lock board |
|
|
|
option(value='2', selected=settings.abandonedBoardAction === 2) Lock+unlist board |
|
|
|
option(value='2', selected=settings.abandonedBoardAction === 2) Lock+unlist board |
|
|
|
option(value='3', selected=settings.abandonedBoardAction === 3) Delete board |
|
|
|
option(value='3', selected=settings.abandonedBoardAction === 3) Delete board |
|
|
|
|
|
|
|
|
|
|
|
.col.mr-5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.row |
|
|
|
.row |
|
|
|
h4.mv-5 Captcha |
|
|
|
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 |
|
|
|
|
|
|
|
.label Flag File Size Max |
|
|
|
|
|
|
|
input(type='number' name='global_limits_flag_files_size_max' value=settings.globalLimits.flagFilesSize.max) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Flags Per Upload Max |
|
|
|
|
|
|
|
input(type='number' name='global_limits_flag_files_max' value=settings.globalLimits.flagFiles.max) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Total Flags Per Board |
|
|
|
|
|
|
|
input(type='number' name='global_limits_flag_files_total' value=settings.globalLimits.flagFiles.total) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Asset File Size Max |
|
|
|
|
|
|
|
input(type='number' name='global_limits_asset_files_size_max' value=settings.globalLimits.assetFilesSize.max) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Assets Per Upload Max |
|
|
|
|
|
|
|
input(type='number' name='global_limits_asset_files_max' value=settings.globalLimits.assetFiles.max) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Total Assets Per Board |
|
|
|
|
|
|
|
input(type='number' name='global_limits_asset_files_total' value=settings.globalLimits.assetFiles.total) |
|
|
|
|
|
|
|
.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_message' value=settings.globalLimits.fieldLength.log_message) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Board 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) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.tab-4 |
|
|
|
|
|
|
|
.col |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Type |
|
|
|
.label Type |
|
|
|
select(name='captcha_options_type') |
|
|
|
select(name='captcha_options_type') |
|
|
@ -186,6 +325,30 @@ block content |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Generate Limit |
|
|
|
.label Generate Limit |
|
|
|
input(type='number' name='captcha_options_generate_limit' value=settings.captchaOptions.generateLimit) |
|
|
|
input(type='number' name='captcha_options_generate_limit' value=settings.captchaOptions.generateLimit) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
h4.mv-5 Text Captcha Options |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Font |
|
|
|
|
|
|
|
select(name='captcha_options_text_font') |
|
|
|
|
|
|
|
option(value='default' selected=(settings.captchaOptions.text.font === 'default')) Default |
|
|
|
|
|
|
|
each font in fontList |
|
|
|
|
|
|
|
option(value=font.path selected=(settings.captchaOptions.text.font === font.path)) #{font.name} |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Strikethrough Effect |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='captcha_options_text_line', value='true' checked=settings.captchaOptions.text.line) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Wave Effect Strength |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='range' name='captcha_options_text_wave' min='0' max='10' value=settings.captchaOptions.text.wave) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Paint Effect Strength |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='range' name='captcha_options_text_paint' min='0' max='10' value=settings.captchaOptions.text.paint) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Noise Effect Strength |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='range' name='captcha_options_text_noise' min='0' max='10' value=settings.captchaOptions.text.noise) |
|
|
|
.row |
|
|
|
.row |
|
|
|
h4.mv-5 Grid Captcha Options |
|
|
|
h4.mv-5 Grid Captcha Options |
|
|
|
.row |
|
|
|
.row |
|
|
@ -214,30 +377,6 @@ block content |
|
|
|
.label Noise Effect Strength |
|
|
|
.label Noise Effect Strength |
|
|
|
label.postform-style.ph-5 |
|
|
|
label.postform-style.ph-5 |
|
|
|
input(type='range' name='captcha_options_grid_noise' min='0' max='10' value=settings.captchaOptions.grid.noise) |
|
|
|
input(type='range' name='captcha_options_grid_noise' min='0' max='10' value=settings.captchaOptions.grid.noise) |
|
|
|
.row |
|
|
|
|
|
|
|
h4.mv-5 Text Captcha Options |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Font |
|
|
|
|
|
|
|
select(name='captcha_options_text_font') |
|
|
|
|
|
|
|
option(value='default' selected=(settings.captchaOptions.text.font === 'default')) Default |
|
|
|
|
|
|
|
each font in fontList |
|
|
|
|
|
|
|
option(value=font.path selected=(settings.captchaOptions.text.font === font.path)) #{font.name} |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Strikethrough Effect |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='captcha_options_text_line', value='true' checked=settings.captchaOptions.text.line) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Wave Effect Strength |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='range' name='captcha_options_text_wave' min='0' max='10' value=settings.captchaOptions.text.wave) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Paint Effect Strength |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='range' name='captcha_options_text_paint' min='0' max='10' value=settings.captchaOptions.text.paint) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Noise Effect Strength |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='range' name='captcha_options_text_noise' min='0' max='10' value=settings.captchaOptions.text.noise) |
|
|
|
|
|
|
|
.row |
|
|
|
.row |
|
|
|
h4.mv-5 Captcha Distortion |
|
|
|
h4.mv-5 Captcha Distortion |
|
|
|
.row |
|
|
|
.row |
|
|
@ -250,10 +389,10 @@ block content |
|
|
|
.label Distortion Intensity |
|
|
|
.label Distortion Intensity |
|
|
|
input(type='number' name='captcha_options_distortion' value=settings.captchaOptions.distortion) |
|
|
|
input(type='number' name='captcha_options_distortion' value=settings.captchaOptions.distortion) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.tab-5 |
|
|
|
|
|
|
|
.col |
|
|
|
.row |
|
|
|
.row |
|
|
|
h4.mv-5 Block Bypass |
|
|
|
.label Block Bypass |
|
|
|
.row |
|
|
|
|
|
|
|
.label Enabled |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
label.postform-style.ph-5 |
|
|
|
input(type='checkbox', name='block_bypass_enabled', value='true' checked=settings.blockBypass.enabled) |
|
|
|
input(type='checkbox', name='block_bypass_enabled', value='true' checked=settings.blockBypass.enabled) |
|
|
|
.row |
|
|
|
.row |
|
|
@ -270,9 +409,6 @@ block content |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Expire After Time |
|
|
|
.label Expire After Time |
|
|
|
input(type='text' name='block_bypass_expire_after_time' placeholder='e.g. 1d' value=settings.blockBypass.expireAfterTime) |
|
|
|
input(type='text' name='block_bypass_expire_after_time' placeholder='e.g. 1d' value=settings.blockBypass.expireAfterTime) |
|
|
|
|
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
h4.mv-5 Antispam |
|
|
|
|
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Filters |
|
|
|
.label Filters |
|
|
|
textarea(name='filters' placeholder='Newline separated') #{settings.filters.join('\n')} |
|
|
|
textarea(name='filters' placeholder='Newline separated') #{settings.filters.join('\n')} |
|
|
@ -302,11 +438,8 @@ block content |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Any Content Same IP/ID |
|
|
|
.label Any Content Same IP/ID |
|
|
|
input(type='number' name='flood_timers_any_content_same_ip' value=settings.floodTimers.anyContentSameIp) |
|
|
|
input(type='number' name='flood_timers_any_content_same_ip' value=settings.floodTimers.anyContentSameIp) |
|
|
|
|
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
h4.mv-5 DNSBL |
|
|
|
|
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Enabled |
|
|
|
.label DNSBL Enabled |
|
|
|
label.postform-style.ph-5 |
|
|
|
label.postform-style.ph-5 |
|
|
|
input(type='checkbox', name='dnsbl_enabled', value='true' checked=settings.dnsbl.enabled) |
|
|
|
input(type='checkbox', name='dnsbl_enabled', value='true' checked=settings.dnsbl.enabled) |
|
|
|
.row |
|
|
|
.row |
|
|
@ -315,9 +448,6 @@ block content |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Cache Time |
|
|
|
.label Cache Time |
|
|
|
input(type='text' name='dnsbl_cache_time' placeholder='e.g. 1h' value=settings.dnsbl.cacheTime) |
|
|
|
input(type='text' name='dnsbl_cache_time' placeholder='e.g. 1h' value=settings.dnsbl.cacheTime) |
|
|
|
|
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
h4.mv-5 Ratelimit Costs |
|
|
|
|
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Generate Captcha |
|
|
|
.label Generate Captcha |
|
|
|
input(type='number' name='rate_limit_cost_captcha' value=settings.rateLimitCost.captcha) |
|
|
|
input(type='number' name='rate_limit_cost_captcha' value=settings.rateLimitCost.captcha) |
|
|
@ -328,25 +458,8 @@ block content |
|
|
|
.label Edit Post |
|
|
|
.label Edit Post |
|
|
|
input(type='number' name='rate_limit_cost_edit_post' value=settings.rateLimitCost.editPost) |
|
|
|
input(type='number' name='rate_limit_cost_edit_post' value=settings.rateLimitCost.editPost) |
|
|
|
|
|
|
|
|
|
|
|
.col.mr-5 |
|
|
|
.tab-6 |
|
|
|
|
|
|
|
.col |
|
|
|
.row |
|
|
|
|
|
|
|
h4.mv-5 Code Highlighting |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label |
|
|
|
|
|
|
|
| Code Highlighting Auto-Detect Languages |
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
small |
|
|
|
|
|
|
|
| ( |
|
|
|
|
|
|
|
a(rel='nofollow' referrerpolicy='same-origin' target='_blank' 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 |
|
|
|
.row |
|
|
|
.label Allowed Themes |
|
|
|
.label Allowed Themes |
|
|
|
textarea(name='themes' placeholder='Newline separated') #{settings.themes.join('\n')} |
|
|
|
textarea(name='themes' placeholder='Newline separated') #{settings.themes.join('\n')} |
|
|
@ -363,69 +476,93 @@ block content |
|
|
|
select(name='board_defaults_code_theme') |
|
|
|
select(name='board_defaults_code_theme') |
|
|
|
each theme in codeThemes |
|
|
|
each theme in codeThemes |
|
|
|
option(value=theme selected=settings.boardDefaults.codeTheme === theme) #{theme} |
|
|
|
option(value=theme selected=settings.boardDefaults.codeTheme === theme) #{theme} |
|
|
|
|
|
|
|
|
|
|
|
.row |
|
|
|
.row |
|
|
|
h4.mv-5 Custom CSS |
|
|
|
.label |
|
|
|
|
|
|
|
| Code Highlighting Auto-Detect Languages |
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
small |
|
|
|
|
|
|
|
| ( |
|
|
|
|
|
|
|
a(rel='nofollow' referrerpolicy='same-origin' target='_blank' 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 |
|
|
|
.row |
|
|
|
.label Enable |
|
|
|
.label Board Custom CSS |
|
|
|
label.postform-style.ph-5 |
|
|
|
label.postform-style.ph-5 |
|
|
|
input(type='checkbox', name='global_limits_custom_css_enabled' value='true' checked=settings.globalLimits.customCss.enabled) |
|
|
|
input(type='checkbox', name='global_limits_custom_css_enabled' value='true' checked=settings.globalLimits.customCss.enabled) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Filters |
|
|
|
.label Custom CSS Filters |
|
|
|
textarea(name='global_limits_custom_css_filters' placeholder='Newline separated') #{settings.globalLimits.customCss.filters.join('\n')} |
|
|
|
textarea(name='global_limits_custom_css_filters' placeholder='Newline separated') #{settings.globalLimits.customCss.filters.join('\n')} |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Strict Filtering |
|
|
|
.label Strict Filtering |
|
|
|
label.postform-style.ph-5 |
|
|
|
label.postform-style.ph-5 |
|
|
|
input(type='checkbox', name='global_limits_custom_css_strict' value='true' checked=settings.globalLimits.customCss.strict) |
|
|
|
input(type='checkbox', name='global_limits_custom_css_strict' value='true' checked=settings.globalLimits.customCss.strict) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Max Length |
|
|
|
.label Custom CSS Max Length |
|
|
|
input(type='number' name='global_limits_custom_css_max' value=settings.globalLimits.customCss.max) |
|
|
|
input(type='number' name='global_limits_custom_css_max' value=settings.globalLimits.customCss.max) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.tab-7 |
|
|
|
|
|
|
|
.col |
|
|
|
.row |
|
|
|
.row |
|
|
|
h4.mv-5 Field Length Limits |
|
|
|
.label Enable |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='enable_webring' value='true' checked=settings.enableWebring) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Name |
|
|
|
.label Use Socks Proxy |
|
|
|
input(type='number', name='global_limits_field_length_name' value=settings.globalLimits.fieldLength.name) |
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='webring_proxy_enabled', value='true' placeholder='socks5h://127.0.0.1:9050' checked=settings.proxy.enabled) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Email |
|
|
|
.label Proxy Address |
|
|
|
input(type='number', name='global_limits_field_length_email' value=settings.globalLimits.fieldLength.email) |
|
|
|
input(type='text', name='webring_proxy_address', value=settings.proxy.address) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Subject |
|
|
|
.label Following |
|
|
|
input(type='number', name='global_limits_field_length_subject' value=settings.globalLimits.fieldLength.subject) |
|
|
|
textarea(name='webring_following' placeholder='Newline separated') #{settings.following.join('\n')} |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Post Password |
|
|
|
.label Logo URLs |
|
|
|
input(type='number', name='global_limits_field_length_postpassword' value=settings.globalLimits.fieldLength.postpassword) |
|
|
|
textarea(name='webring_logos' placeholder='Newline separated') #{settings.logo.join('\n')} |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Message |
|
|
|
.label Blacklist |
|
|
|
input(type='number', name='global_limits_field_length_message' value=settings.globalLimits.fieldLength.message) |
|
|
|
textarea(name='webring_blacklist' placeholder='Newline separated') #{settings.blacklist.join('\n')} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.tab-8 |
|
|
|
|
|
|
|
.col |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Report Reason |
|
|
|
.label Animated .gif Thumbnails |
|
|
|
input(type='number', name='global_limits_field_length_report_reason' value=settings.globalLimits.fieldLength.report_reason) |
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='animated_gif_thumbnails', value='true' checked=settings.animatedGifThumbnails) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Ban Reason |
|
|
|
.label Audio Thumbnails |
|
|
|
input(type='number', name='global_limits_field_length_ban_reason' value=settings.globalLimits.fieldLength.ban_reason) |
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='audio_thumbnails', value='true' checked=settings.audioThumbnails) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Log Messages |
|
|
|
.label Use ffmpeg For .gif Thumbnails |
|
|
|
input(type='number', name='global_limits_field_length_log_message' value=settings.globalLimits.fieldLength.log_message) |
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='ffmpeg_gif_thumbnails', value='true' checked=settings.ffmpegGifThumbnails) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Board URI |
|
|
|
.label Thumbnail Dimensions |
|
|
|
input(type='number', name='global_limits_field_length_uri' value=settings.globalLimits.fieldLength.uri) |
|
|
|
input(type='number', name='thumb_size', value=settings.thumbSize) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Board Name |
|
|
|
.label Video Thumbnail Percentage |
|
|
|
input(type='number', name='global_limits_field_length_boardname' value=settings.globalLimits.fieldLength.boardname) |
|
|
|
input(type='number', name='video_thumb_percentage', value=settings.videoThumbPercentage) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Board Description |
|
|
|
.label Other Mime Types |
|
|
|
input(type='number', name='global_limits_field_length_description' value=settings.globalLimits.fieldLength.description) |
|
|
|
textarea(name='other_mime_types' placeholder='Newline separated') #{settings.otherMimeTypes.join('\n')} |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Multi Input Form Anon |
|
|
|
.label Validate Mime Types |
|
|
|
input(type='number', name='global_limits_multi_input_posts_anon' value=settings.globalLimits.multiInputs.posts.anon) |
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='check_real_mime_types', value='true' checked=settings.checkRealMimeTypes) |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Multi Input Form Staff |
|
|
|
.label Unknown Types Pass Validation |
|
|
|
input(type='number', name='global_limits_multi_input_posts_staff' value=settings.globalLimits.multiInputs.posts.staff) |
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='allow_mime_no_match', value='true' checked=settings.allowMimeNoMatch) |
|
|
|
.col.mr-5 |
|
|
|
|
|
|
|
.row |
|
|
|
.row |
|
|
|
h4.mv-5 Frontend Script Defaults |
|
|
|
.label Space File Name Replacement |
|
|
|
|
|
|
|
input(type='text', name='space_file_name_replacement', value=settings.spaceFileNameReplacement) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.tab-9 |
|
|
|
|
|
|
|
.col |
|
|
|
.row |
|
|
|
.row |
|
|
|
.label Embeds Enabled |
|
|
|
.label Embeds Enabled |
|
|
|
label.postform-style.ph-5 |
|
|
|
label.postform-style.ph-5 |
|
|
@ -521,141 +658,8 @@ block content |
|
|
|
.label Tegaki Height |
|
|
|
.label Tegaki Height |
|
|
|
input(type='number', name='frontend_script_default_tegaki_height', value=settings.frontendScriptDefault.tegakiHeight) |
|
|
|
input(type='number', name='frontend_script_default_tegaki_height', value=settings.frontendScriptDefault.tegakiHeight) |
|
|
|
|
|
|
|
|
|
|
|
.row |
|
|
|
.tab-10 |
|
|
|
h4.mv-5 Files & Thumbnails |
|
|
|
.col |
|
|
|
.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 |
|
|
|
|
|
|
|
.label Flag File Size Max |
|
|
|
|
|
|
|
input(type='number' name='global_limits_flag_files_size_max' value=settings.globalLimits.flagFilesSize.max) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Flags Per Upload Max |
|
|
|
|
|
|
|
input(type='number' name='global_limits_flag_files_max' value=settings.globalLimits.flagFiles.max) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Total Flags Per Board |
|
|
|
|
|
|
|
input(type='number' name='global_limits_flag_files_total' value=settings.globalLimits.flagFiles.total) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Asset File Size Max |
|
|
|
|
|
|
|
input(type='number' name='global_limits_asset_files_size_max' value=settings.globalLimits.assetFilesSize.max) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Assets Per Upload Max |
|
|
|
|
|
|
|
input(type='number' name='global_limits_asset_files_max' value=settings.globalLimits.assetFiles.max) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Total Assets Per Board |
|
|
|
|
|
|
|
input(type='number' name='global_limits_asset_files_total' value=settings.globalLimits.assetFiles.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 |
|
|
|
|
|
|
|
.label Use Socks Proxy |
|
|
|
|
|
|
|
label.postform-style.ph-5 |
|
|
|
|
|
|
|
input(type='checkbox', name='webring_proxy_enabled', value='true' placeholder='socks5h://127.0.0.1:9050' checked=settings.proxy.enabled) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Proxy Address |
|
|
|
|
|
|
|
input(type='text', name='webring_proxy_address', value=settings.proxy.address) |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Following |
|
|
|
|
|
|
|
textarea(name='webring_following' placeholder='Newline separated') #{settings.following.join('\n')} |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Logo URLs |
|
|
|
|
|
|
|
textarea(name='webring_logos' placeholder='Newline separated') #{settings.logo.join('\n')} |
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
.label Blacklist |
|
|
|
|
|
|
|
textarea(name='webring_blacklist' placeholder='Newline separated') #{settings.blacklist.join('\n')} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.col.mr-5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.row |
|
|
|
|
|
|
|
h4.mv-5 Board Defaults |
|
|
|
|
|
|
|
.row |
|
|
|
.row |
|
|
|
.label SFW |
|
|
|
.label SFW |
|
|
|
label.postform-style.ph-5 |
|
|
|
label.postform-style.ph-5 |
|
|
|