diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index 3ae7ff7b6..c9677e467 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -178,7 +178,6 @@ const ServerLangSettingNode = { PreferenceSetting( Setting('setting_display', 'viewLang', null, langRange, 'UI Language'), - Setting('setting_display', 'skipAnimate', false, 'boolean', 'Skip Animation'), Setting('setting_display', 'timeZone', 'Asia/Shanghai', timezones, 'Timezone'), LangSettingNode, Setting('setting_usage', 'codeTemplate', '', 'textarea', 'Default Code Template', diff --git a/packages/ui-default/components/time/time.page.js b/packages/ui-default/components/time/time.page.js index dcac7329f..487fc3d4f 100644 --- a/packages/ui-default/components/time/time.page.js +++ b/packages/ui-default/components/time/time.page.js @@ -38,6 +38,7 @@ function cancelRelativeTime($container) { } const relativeTimePage = new AutoloadPage('relativeTimePage', () => { + if (!UserContext.showTimeAgo) return; runRelativeTime($('body')); $(document).on('vjContentNew', (e) => runRelativeTime($(e.target))); $(document).on('vjContentRemove', (e) => cancelRelativeTime($(e.target))); diff --git a/packages/ui-default/index.ts b/packages/ui-default/index.ts index f8eca1459..30bce2338 100644 --- a/packages/ui-default/index.ts +++ b/packages/ui-default/index.ts @@ -1,7 +1,7 @@ /* eslint-disable global-require */ import { ContestModel, Context, Handler, ObjectId, param, PERM, PRIV, ProblemModel, Schema, - SettingModel, SystemModel, SystemSettings, Types, UserModel, + Setting, SettingModel, SystemModel, SystemSettings, Types, UserModel, } from 'hydrooj'; import convert from 'schemastery-jsonschema'; import markdown from './backendlib/markdown'; @@ -165,4 +165,11 @@ export function apply(ctx: Context) { }); ctx.plugin(require('./backendlib/template')); ctx.plugin(require('./backendlib/builder')); + + ctx.inject(['setting'], (c) => { + c.setting.PreferenceSetting( + Setting('setting_display', 'skipAnimate', false, 'boolean', 'Skip Animation'), + Setting('setting_display', 'showTimeAgo', true, 'boolean', 'Enable Time Ago'), + ); + }); }