ui: fix submission language selection

This commit is contained in:
undefined committed 2022-03-12 21:36:30 +08:00
1 parent 46179ab3e5
commit 880f706c3a
3 files changed
+12 -4

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@hydrooj/ui-default", "name": "@hydrooj/ui-default",
"version": "4.33.6", "version": "4.33.7",
"author": "undefined <i@undefined.moe>", "author": "undefined <i@undefined.moe>",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"main": "hydro.js", "main": "hydro.js",
@@ -38,11 +38,12 @@ const page = new NamedPage(['problem_submit', 'contest_detail_problem_submit', '
} }
} }
setOptions($('#codelang-main-select'), main); setOptions($('#codelang-main-select'), main);
if (Object.keys(main).length === 1) $('#codelang-main-container').hide();
let isFallback = false;
const current = $('[name="lang"]').val(); const current = $('[name="lang"]').val();
if (current.includes('.')) { if (current.includes('.')) {
const [m] = current.split('.'); const [m] = current.split('.');
if (main[m]) {
$('#codelang-main-select').val(m); $('#codelang-main-select').val(m);
const fallback = onChangeMain.call({ value: m }, false); const fallback = onChangeMain.call({ value: m }, false);
$('#codelang-sub-select').val(current); $('#codelang-sub-select').val(current);
@@ -50,15 +51,22 @@ const page = new NamedPage(['problem_submit', 'contest_detail_problem_submit', '
$('#codelang-sub-select').val(fallback); $('#codelang-sub-select').val(fallback);
$('[name="lang"]').val(fallback); $('[name="lang"]').val(fallback);
} }
} else { } else isFallback = true;
} else if (main[current]) {
$('#codelang-main-select').val(current); $('#codelang-main-select').val(current);
onChangeMain.call({ value: $('#codelang-main-select').val() }, false); 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-main-select').on('change', onChangeMain);
$('#codelang-sub-select').on('change', function () { $('#codelang-sub-select').on('change', function () {
$('[name="lang"]').val(this.value); $('[name="lang"]').val(this.value);
}); });
if (Object.keys(main).length === 1) $('#codelang-main-container').hide();
}); });
export default page; export default page;
@@ -18,7 +18,7 @@
}) }} }) }}
</div> </div>
<div class="row nojs--hide"> <div class="row nojs--hide">
<div class="medium-5 columns form__item end"> <div class="medium-5 columns form__item end" id="codelang-main-container">
<label> <label>
{{ _('Code language') }} {{ _('Code language') }}
<div name="form_item_lang" class="select-container"> <div name="form_item_lang" class="select-container">