多时区支持

This commit is contained in:
masnn committed 2020-06-11 13:23:21 +08:00
1 parent d14b63883e
commit 8c20c34d8b
9 files changed
+163 -104

No files matched your search

+1 -1
View File
@@ -227,7 +227,7 @@ function add(domainId, title, content, owner, rule,
* @param {ObjectID} tid
* @param {object} $set
* @param {number} type
* @returns {Tdoc} tdoc after modification
* @returns {Promise<Tdoc>} tdoc after modification
*/
async function edit(domainId, tid, $set, type = document.TYPE_CONTEST) {
if ($set.rule) {
+11 -2
View File
@@ -1,7 +1,16 @@
const moment = require('moment-timezone');
const builtin = require('./builtin');
const options = require('../options');
const i18n = require('../lib/i18n');
const countries = moment.tz.countries();
const tzs = new Set();
for (const country of countries) {
const tz = moment.tz.zonesForCountry(country);
for (const t of tz) tzs.add(t);
}
const timezones = Array.from(tzs).sort().map((tz) => [tz, tz]);
const Setting = (
family, key, range = null,
value = null, ui = 'text', name = '',
@@ -11,9 +20,9 @@ const Setting = (
});
const PREFERENCE_SETTINGS = [
Setting('setting_display', 'viewLang', i18n,
Setting('setting_display', 'viewLang', builtin.VIEW_LANGS.map((i) => [i.code, i.name]),
options.default_locale, 'select', 'UI Language'),
Setting('setting_display', 'timezone', [], // TODO(masnn) timezone
Setting('setting_display', 'timezone', timezones,
'Asia/Shanghai', 'select', 'Timezone'),
Setting('setting_usage', 'codeLang', builtin.LANG_TEXTS,
null, 'select', 'Default Code Language'),
+1
View File
@@ -19,6 +19,7 @@ class USER {
this.salt = () => udoc.salt;
this.hash = () => udoc.hash;
this.priv = udoc.priv;
this.timeZone = udoc.timeZone || 'Asia/Shanghai';
this.viewLang = udoc.viewLang || 'zh_CN';
this.codeLang = udoc.codeLang || 'c';
this.codeTemplate = udoc.codeTemplate || '';