From 880f706c3af77eebea69c0ea46116ee5cab0f3d9 Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 12 Mar 2022 21:36:30 +0800 Subject: [PATCH] ui: fix submission language selection --- packages/ui-default/package.json | 2 +- .../ui-default/pages/problem_submit.page.js | 26 ++++++++++++------- .../ui-default/templates/problem_submit.html | 2 +- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 55c63f997..979d34744 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.33.6", + "version": "4.33.7", "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 b65ac5e0c..37884287f 100644 --- a/packages/ui-default/pages/problem_submit.page.js +++ b/packages/ui-default/pages/problem_submit.page.js @@ -38,27 +38,35 @@ const page = new NamedPage(['problem_submit', 'contest_detail_problem_submit', ' } } setOptions($('#codelang-main-select'), main); - if (Object.keys(main).length === 1) $('#codelang-main-container').hide(); + let isFallback = false; const current = $('[name="lang"]').val(); if (current.includes('.')) { const [m] = current.split('.'); - $('#codelang-main-select').val(m); - const fallback = onChangeMain.call({ value: m }, false); - $('#codelang-sub-select').val(current); - if (fallback && !$('#codelang-sub-select').val()) { - $('#codelang-sub-select').val(fallback); - $('[name="lang"]').val(fallback); - } - } else { + if (main[m]) { + $('#codelang-main-select').val(m); + const fallback = onChangeMain.call({ value: m }, false); + $('#codelang-sub-select').val(current); + if (fallback && !$('#codelang-sub-select').val()) { + $('#codelang-sub-select').val(fallback); + $('[name="lang"]').val(fallback); + } + } else isFallback = true; + } else if (main[current]) { $('#codelang-main-select').val(current); onChangeMain.call({ value: $('#codelang-main-select').val() }, false); + } else isFallback = true; + + if (isFallback) { + $('#codelang-main-select').val(Object.keys(main)[0]); + onChangeMain.call({ value: Object.keys(main)[0] }, false); } $('#codelang-main-select').on('change', onChangeMain); $('#codelang-sub-select').on('change', function () { $('[name="lang"]').val(this.value); }); + if (Object.keys(main).length === 1) $('#codelang-main-container').hide(); }); export default page; diff --git a/packages/ui-default/templates/problem_submit.html b/packages/ui-default/templates/problem_submit.html index 3447c9d0b..f44af1dc0 100644 --- a/packages/ui-default/templates/problem_submit.html +++ b/packages/ui-default/templates/problem_submit.html @@ -18,7 +18,7 @@ }) }}
-
+