diff --git a/packages/fps-importer/index.ts b/packages/fps-importer/index.ts index 4a2386600..85a93924b 100644 --- a/packages/fps-importer/index.ts +++ b/packages/fps-importer/index.ts @@ -47,7 +47,7 @@ class FpsProblemImportHandler extends Handler { // `filename` attribute introduced by winterant/OnlineJudge // PLEASE, respect the spec const filename = node.$?.filename || `${id}.${ext}`; - const c = node._ || node; + const c = node._ || (typeof node === 'string' ? node : ''); tasks.push(ProblemModel.addTestdata(domainId, pid, filename, Buffer.from(c))); }; if (p.test_output) { diff --git a/packages/ui-default/pages/problem_files.page.tsx b/packages/ui-default/pages/problem_files.page.tsx index 93682098e..3d1532ce6 100644 --- a/packages/ui-default/pages/problem_files.page.tsx +++ b/packages/ui-default/pages/problem_files.page.tsx @@ -366,7 +366,7 @@ const page = new NamedPage('problem_files', () => { } } - if (UiContext.pdoc) { + if (UiContext.pdoc && $('[name="generate_testdata"]').length) { FileSelectAutoComplete.getOrConstruct($('[name=gen]'), { data: UiContext.pdoc.data }); FileSelectAutoComplete.getOrConstruct($('[name=std]'), { data: UiContext.pdoc.data }); $('[name="generate_testdata"]').on('click', handleGenerateTestdata); diff --git a/packages/ui-default/templates/partials/nav.html b/packages/ui-default/templates/partials/nav.html index cd241d190..c71be3926 100644 --- a/packages/ui-default/templates/partials/nav.html +++ b/packages/ui-default/templates/partials/nav.html @@ -106,13 +106,14 @@ {% endif %} {% if ui.getNodes('UserDropdown').length %}
- {%- for item in ui.getNodes('UserDropdown') -%} + {%- for item in ui.getNodes('UserDropdown') -%} {% if item.checker(handler) %}