From cca5cb895ea220eddd4471e1c7b75b6eab7a4b1d Mon Sep 17 00:00:00 2001 From: undefined Date: Tue, 10 Jan 2023 05:20:23 +0800 Subject: [PATCH] ui: allow manually set legacy mode --- packages/ui-default/index.ts | 21 ++++++++++++++----- packages/ui-default/package.json | 5 +++-- .../templates/components/noscript_note.html | 2 +- .../ui-default/templates/layout/html5.html | 6 +++--- .../ui-default/templates/partials/footer.html | 1 + packages/ui-default/utils/loadReactRedux.ts | 15 ++++++------- 6 files changed, 32 insertions(+), 18 deletions(-) diff --git a/packages/ui-default/index.ts b/packages/ui-default/index.ts index 30ba83b48..dbff7cec6 100644 --- a/packages/ui-default/index.ts +++ b/packages/ui-default/index.ts @@ -3,8 +3,8 @@ import crypto from 'crypto'; import esbuild from 'esbuild'; import { - ContestModel, Context, fs, Handler, Logger, ObjectID, PERM, PRIV, ProblemModel, Schema, - SettingModel, SystemModel, SystemSettings, UiContextBase, UserModel, + ContestModel, Context, fs, Handler, Logger, ObjectID, param, PERM, PRIV, ProblemModel, Schema, + SettingModel, SystemModel, SystemSettings, Types, UiContextBase, UserModel, } from 'hydrooj'; import { debounce } from 'lodash'; import { tmpdir } from 'os'; @@ -135,13 +135,23 @@ class SetThemeHandler extends Handler { } } +class LegacyModeHandler extends Handler { + noCheckPermView = true; + + @param('legacy', Types.Boolean) + async get(domainId: string, legacy = false) { + this.session.legacy = legacy; + this.back(); + } +} + class MarkdownHandler extends Handler { noCheckPermView = true; - async post({ text, html = false, inline = false }) { + async post({ text, inline = false }) { this.response.body = inline - ? markdown.renderInline(text, html) - : markdown.render(text, html); + ? markdown.renderInline(text) + : markdown.render(text); this.response.type = 'text/html'; this.response.status = 200; } @@ -247,6 +257,7 @@ export function apply(ctx: Context) { ctx.Route('wiki_help', '/wiki/help', WikiHelpHandler); ctx.Route('wiki_about', '/wiki/about', WikiAboutHandler); ctx.Route('set_theme', '/set_theme/:theme', SetThemeHandler); + ctx.Route('set_legacy', '/legacy', LegacyModeHandler); ctx.Route('constant', '/constant/:version', UiConstantsHandler); ctx.Route('markdown', '/markdown', MarkdownHandler); ctx.Route('config_schema', '/manage/config/schema.json', SystemConfigSchemaHandler, PRIV.PRIV_EDIT_SYSTEM); diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 843c38a5c..0884227bc 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -10,9 +10,11 @@ "scripts": { "lint": "eslint" }, + "hydro": { + "cli": false + }, "devDependencies": { "@blueprintjs/core": "4.13.0", - "@blueprintjs/select": "4.8.12", "@fontsource/dm-mono": "^4.5.10", "@fontsource/fira-code": "^4.5.12", "@fontsource/inconsolata": "^4.5.9", @@ -118,7 +120,6 @@ "markdown-it-mark": "^3.0.1", "markdown-it-merge-cells": "^2.0.0", "markdown-it-table-of-contents": "^0.6.0", - "mongodb": "^3.7.3", "nunjucks": "^3.2.3", "schemastery-jsonschema": "^1.0.3", "streamsaver": "^2.0.6", diff --git a/packages/ui-default/templates/components/noscript_note.html b/packages/ui-default/templates/components/noscript_note.html index 8f4e1c3bb..514cc556f 100644 --- a/packages/ui-default/templates/components/noscript_note.html +++ b/packages/ui-default/templates/components/noscript_note.html @@ -1,5 +1,5 @@ {% macro render() %} -{% if not isIE(handler.request.headers['user-agent']) %} +{% if not isIE(handler.request.headers['user-agent']) and not handler.session.legacy %}