Board default language migration and globalmanage setting addition

merge-requests/341/head
Thomas Lynch 1 year ago
parent 6301a9540e
commit 7a9386102f
  1. 2
      CHANGELOG.md
  2. 3
      controllers/forms/globalsettings.js
  3. 21
      migrations/1.0.5.js
  4. 1
      models/forms/changeglobalsettings.js
  5. 2
      package.json
  6. 5
      views/pages/globalmanagesettings.pug

@ -5,7 +5,9 @@
- Make animated webp thumbnailing at least work and not give the above error (not supporting animated thumbs like .gif yet).
- Add "ttf" extension to nginx snippets because some themes include fonts.
- Reorganize <input> styling, use accent-color property on <input> elements, by @disco.
- Add globalmanage setting for board default language.
- Fix an issue with the referer because of translation, and prevent invalid settings for it from breaking the web panel.
- Fix broken migration for board defaults causing language issues on newly created boards after updating from pre 1.0.0.
- Npm audit.
### 1.0.4

@ -15,7 +15,7 @@ module.exports = {
paramConverter: paramConverter({
timeFields: ['hot_threads_max_age', 'inactive_account_time', 'ban_duration', 'board_defaults_filter_ban_duration', 'default_ban_duration', 'block_bypass_expire_after_time', 'dnsbl_cache_time', 'board_defaults_delete_protection_age'],
trimFields: ['captcha_options_grid_question', 'captcha_options_grid_trues', 'captcha_options_grid_falses', 'captcha_options_font', 'allowed_hosts', 'dnsbl_blacklists', 'other_mime_types',
'highlight_options_language_subset', 'global_limits_custom_css_filters', 'board_defaults_filters', 'filters', 'archive_links', 'reverse_links', 'language'],
'highlight_options_language_subset', 'global_limits_custom_css_filters', 'board_defaults_filters', 'filters', 'archive_links', 'reverse_links', 'language', 'board_defaults_language'],
numberFields: ['inactive_account_action', 'abandoned_board_action', 'filter_mode', 'auth_level', 'captcha_options_text_wave', 'captcha_options_text_paint', 'captcha_options_text_noise',
'captcha_options_grid_noise', 'captcha_options_grid_edge', 'captcha_options_generate_limit', 'captcha_options_grid_size', 'captcha_options_grid_image_size',
'captcha_options_num_distorts_min', 'captcha_options_num_distorts_max', 'captcha_options_distortion', 'captcha_options_grid_icon_y_offset', 'flood_timers_same_content_same_ip', 'flood_timers_same_content_any_ip',
@ -87,6 +87,7 @@ module.exports = {
{ result: lengthBody(req.body.meta_site_name, 0, 100), expected: false, error: __('Meta site name must not exceed 100 characters') },
{ result: lengthBody(req.body.meta_url, 0, 100), expected: false, error: __('Meta url must not exceed 100 characters') },
{ result: inArrayBody(req.body.language, i18n.getLocales()), expected: true, error: __('Invalid language') },
{ result: inArrayBody(req.body.board_defaults_language, i18n.getLocales()), expected: true, error: __('Invalid language') },
{ result: inArrayBody(req.body.captcha_options_type, ['grid', 'grid2', 'text', 'google', 'hcaptcha']), expected: true, error: __('Invalid captcha options type') },
{ result: numberBody(req.body.captcha_options_generate_limit, 1), expected: true, error: __('Captcha options generate limit must be a number > 0') },
{ result: numberBody(req.body.captcha_options_grid_size, 2, 6), expected: true, error: __('Captcha options grid size must be a number from 2-6') },

@ -0,0 +1,21 @@
'use strict';
module.exports = async(db, redis) => {
console.log('Updating db for language settings, fixes broken 1.0.0 migration');
await db.collection('globalsettings').updateOne({ _id: 'globalsettings' }, {
'$set': {
'language': 'en-GB',
'boardDefaults.language': 'en-GB',
},
});
await db.collection('boards').updateMany({}, {
'$set': {
'settings.language': 'en-GB',
},
});
console.log('Clearing globalsettings cache');
await redis.deletePattern('globalsettings');
console.log('Clearing boards cache');
await redis.deletePattern('board:*');
};

@ -273,6 +273,7 @@ module.exports = async (req, res) => {
}
},
boardDefaults: {
language: trimSetting(req.body.board_defaults_language, oldSettings.boardDefaults.language),
theme: trimSetting(req.body.board_defaults_theme, oldSettings.boardDefaults.theme),
codeTheme: trimSetting(req.body.board_defaults_code_theme, oldSettings.boardDefaults.codeTheme),
reverseImageSearchLinks: booleanSetting(req.body.board_defaults_reverse_image_search_links, oldSettings.boardDefaults.reverseImageSearchLinks),

@ -1,7 +1,7 @@
{
"name": "jschan",
"version": "1.0.5",
"migrateVersion": "1.0.0",
"migrateVersion": "1.0.5",
"description": "",
"main": "server.js",
"dependencies": {

@ -759,6 +759,11 @@ block content
.row
.label #{__('Anon Name')}
input(type='text' name='board_defaults_default_name' value=settings.boardDefaults.defaultName)
.row
.label #{__('Language')}
select(name='board_defaults_language')
each language in languages
option(value=language selected=settings.boardDefaults.language === language) #{__(language)} (#{language})
.row
.label #{__('Force Anon')}
label.postform-style.ph-5

Loading…
Cancel
Save