From 7f74c11bbd00e40a52b12901492085ddee0372b2 Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 11 Dec 2021 18:16:44 +0800 Subject: [PATCH] core: add server lang setting node --- packages/hydrooj/locales/zh.yaml | 1 - packages/hydrooj/package.json | 2 +- packages/hydrooj/src/model/setting.ts | 16 +++++++++++++++- packages/hydrooj/src/model/user.ts | 4 ++-- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/hydrooj/locales/zh.yaml b/packages/hydrooj/locales/zh.yaml index 9f5ba9e57..e749d1d02 100644 --- a/packages/hydrooj/locales/zh.yaml +++ b/packages/hydrooj/locales/zh.yaml @@ -306,7 +306,6 @@ End Date: 结束日期 End Time: 结束时间 EndPoint for judge: 提供给评测机的 EndPoint EndPoint for user: 提供给用户的 EndPoint -English: 英文 Enroll Training: 参加训练 Enrolled: 已参加 Enrollees: 参加人数 diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index cba56e74c..2995a24e0 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.2.14", + "version": "3.2.15", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index f490fb1ed..60b858286 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -104,7 +104,7 @@ export const SystemSetting = (...settings: _Setting[]) => { const LangSettingNode = { family: 'setting_usage', key: 'codeLang', - value: 'c', + value: '', name: 'codeLang', desc: 'Default Code Language', flag: 0, @@ -112,6 +112,17 @@ const LangSettingNode = { type: 'select', range: {}, }; +const ServerLangSettingNode = { + family: 'setting_server', + key: 'preference.codeLang', + value: '', + name: 'preference.codeLang', + desc: 'Default Code Language', + flag: 0, + subType: '', + type: 'select', + range: {}, +}; PreferenceSetting( Setting('setting_display', 'viewLang', null, langRange, 'UI Language'), @@ -191,6 +202,7 @@ SystemSetting( Setting('setting_server', 'server.login', true, 'boolean', 'server.login', 'Allow builtin-login', FLAG_PRO), Setting('setting_server', 'server.message', true, 'boolean', 'server.message', 'Allow users send messages'), Setting('setting_server', 'server.ignoreUA', ignoreUA, 'textarea', 'server.ignoreUA', 'ignoredUA'), + ServerLangSettingNode, Setting('setting_limits', 'limit.problem_files_max', 100, 'number', 'limit.problem_files_max', 'Max files per problem'), Setting('setting_limits', 'limit.problem_files_max_size', 256 * 1024 * 1024, 'number', 'limit.problem_files_max_size', 'Max files size per problem'), Setting('setting_limits', 'limit.user_files', 100, 'number', 'limit.user_files', 'Max files for user'), @@ -237,6 +249,7 @@ bus.once('app/started', async () => { const range = {}; for (const key in langs) range[key] = langs[key].display; LangSettingNode.range = range; + ServerLangSettingNode.range = range; } catch (e) { /* Ignore */ } }); @@ -247,6 +260,7 @@ bus.on('system/setting', (args) => { const range = {}; for (const key in langs) range[key] = langs[key].display; LangSettingNode.range = range; + ServerLangSettingNode.range = range; } }); diff --git a/packages/hydrooj/src/model/user.ts b/packages/hydrooj/src/model/user.ts index ebbd0997e..34e75c9a8 100644 --- a/packages/hydrooj/src/model/user.ts +++ b/packages/hydrooj/src/model/user.ts @@ -92,11 +92,11 @@ class User implements _User { this.tfa = !!udoc.tfa; for (const key in setting.SETTINGS_BY_KEY) { - this[key] = udoc[key] ?? setting.SETTINGS_BY_KEY[key].value; + this[key] = udoc[key] ?? (setting.SETTINGS_BY_KEY[key].value || system.get(`preference.${key}`)); } for (const key in setting.DOMAIN_USER_SETTINGS_BY_KEY) { - this[key] = dudoc[key] ?? setting.DOMAIN_USER_SETTINGS_BY_KEY[key].value; + this[key] = dudoc[key] ?? (setting.DOMAIN_USER_SETTINGS_BY_KEY[key].value || system.get(`preference.${key}`)); } }