From 85def7213b0ab52420e320eb634743e66896911c Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 12 Jun 2021 16:19:41 +0800 Subject: [PATCH] =?UTF-8?q?ui:=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=83=85=E5=86=B5=E4=B8=8B=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E9=A2=98=E7=9B=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/scratchpad/ScratchpadToolbarContainer.jsx | 2 ++ packages/ui-default/components/zipDownloader/index.js | 8 ++++---- packages/ui-default/handler.js | 4 ++-- packages/ui-default/package.json | 2 +- packages/ui-default/pages/problem_submit.page.js | 3 ++- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/ui-default/components/scratchpad/ScratchpadToolbarContainer.jsx b/packages/ui-default/components/scratchpad/ScratchpadToolbarContainer.jsx index 13771e5f4..7038c1000 100644 --- a/packages/ui-default/components/scratchpad/ScratchpadToolbarContainer.jsx +++ b/packages/ui-default/components/scratchpad/ScratchpadToolbarContainer.jsx @@ -80,7 +80,9 @@ export default connect(mapStateToProps, mapDispatchToProps)(class ScratchpadTool render() { const LANGS = {}; + const prefix = new Set(Object.keys(window.LANGS).filter((i) => i.includes('.')).map((i) => i.split('.')[0])); for (const key in window.LANGS) { + if (prefix.has(key)) continue; if (UiContext.pdoc.config.langs && !UiContext.pdoc.config.langs.includes(key)) continue; LANGS[key] = window.LANGS[key]; } diff --git a/packages/ui-default/components/zipDownloader/index.js b/packages/ui-default/components/zipDownloader/index.js index 3fd598bf0..398d7301a 100644 --- a/packages/ui-default/components/zipDownloader/index.js +++ b/packages/ui-default/components/zipDownloader/index.js @@ -78,20 +78,20 @@ export async function downloadProblemSet(pids, name = 'Export') { tag: pdoc.tag, nSubmit: pdoc.nSubmit, nAccept: pdoc.nAccept, - data: pdoc.data.map((i) => pick(i, ['name', 'lastModified', 'etag', 'size', '_id'])), - additional_file: pdoc.additional_file.map((i) => pick(i, ['name', 'lastModified', 'etag', 'size', '_id'])), + data: (pdoc.data || []).map((i) => pick(i, ['name', 'lastModified', 'etag', 'size', '_id'])), + additional_file: (pdoc.additional_file || []).map((i) => pick(i, ['name', 'lastModified', 'etag', 'size', '_id'])), difficulty: pdoc.difficulty, }), }); let { links } = await request.post( `/d/${UiContext.domainId}/p/${pid}/files`, - { operation: 'get_links', files: pdoc.data.map((i) => i.name), type: 'testdata' } + { operation: 'get_links', files: (pdoc.data || []).map((i) => i.name), type: 'testdata' } ); for (const filename of Object.keys(links)) { targets.push({ filename: `${pid}/testdata/${filename}`, url: links[filename] }); } ({ links } = await request.post(`/d/${UiContext.domainId}/p/${pid}/files`, { - operation: 'get_links', files: pdoc.additional_file.map((i) => i.name), type: 'additional_file', + operation: 'get_links', files: (pdoc.additional_file || []).map((i) => i.name), type: 'additional_file', })); for (const filename of Object.keys(links)) { targets.push({ filename: `${pid}/additional_file/${filename}`, url: links[filename] }); diff --git a/packages/ui-default/handler.js b/packages/ui-default/handler.js index 1cdcb8f03..c874fb770 100644 --- a/packages/ui-default/handler.js +++ b/packages/ui-default/handler.js @@ -4,7 +4,7 @@ const { join } = require('path'); const crypto = require('crypto'); const { tmpdir } = require('os'); const bus = require('hydrooj/dist/service/bus'); -const markdown = require('./backendlib/markdown.js'); +const markdown = require('./backendlib/markdown'); const { system, domain, user, setting, @@ -18,7 +18,7 @@ class WikiHelpHandler extends Handler { } async get() { - const LANGS = system.get('hydrooj.langs'); + const LANGS = setting.langs; const languages = {}; // eslint-disable-next-line guard-for-in for (const key in LANGS) { diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 6324e8c9a..41b5f86d2 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.11.15", + "version": "4.11.16", "author": "undefined ", "license": "AGPL-3.0", "main": "hydro.js", diff --git a/packages/ui-default/pages/problem_submit.page.js b/packages/ui-default/pages/problem_submit.page.js index 6fe8052b7..be6490c02 100644 --- a/packages/ui-default/pages/problem_submit.page.js +++ b/packages/ui-default/pages/problem_submit.page.js @@ -32,8 +32,9 @@ const page = new NamedPage(['problem_submit', 'contest_detail_problem_submit', ' $('[name="lang"]').val(this.value); }); const main = {}; + const prefix = new Set(Object.keys(window.LANGS).filter((i) => i.includes('.')).map((i) => i.split('.')[0])); for (const key in window.LANGS) { - if (UiContext.pdocConfig.langs && !UiContext.pdocConfig.langs.includes(key)) continue; + if (UiContext.pdocConfig.langs && !prefix.has(key) && !UiContext.pdocConfig.langs.includes(key)) continue; if (!key.includes('.')) main[key] = window.LANGS[key].display; } setOptions($('#codelang-main-select'), main);