diff --git a/htdocs/js/ProblemSetList/problemsetlist.js b/htdocs/js/ProblemSetList/problemsetlist.js index ca9f334853..42a0afc4a0 100644 --- a/htdocs/js/ProblemSetList/problemsetlist.js +++ b/htdocs/js/ProblemSetList/problemsetlist.js @@ -139,16 +139,22 @@ filter_select?.addEventListener('change', filterElementToggle); // This will make the popup menu alternate between a single selection and a multiple selection menu. - const importAmtSelect = document.getElementById('import_amt_select'); - if (importAmtSelect) { - importAmtSelect.addEventListener('change', () => { - const numSelect = document.problemsetlist['action.import.number']; - const number = parseInt(numSelect.options[numSelect.selectedIndex].value); - document.problemsetlist['action.import.source'].size = number; - document.problemsetlist['action.import.source'].multiple = number > 1 ? true : false; - document.problemsetlist['action.import.name'].value = number > 1 ? '(taken from filenames)' : ''; - document.problemsetlist['action.import.name'].readOnly = number > 1 ? true : false; - document.problemsetlist['action.import.name'].disabled = number > 1 ? true : false; + const numSelect = document.problemsetlist['action.import.number']; + if (numSelect) { + numSelect.addEventListener('change', () => { + const number = parseInt(numSelect.options[numSelect.selectedIndex]?.value ?? '1'); + const importSourceSelect = document.problemsetlist['action.import.source']; + if (importSourceSelect) { + importSourceSelect.size = number; + importSourceSelect.multiple = number > 1 ? true : false; + if (number > 1) importSourceSelect.options[0].selected = false; + } + const importNameInput = document.problemsetlist['action.import.name']; + if (importNameInput) { + importNameInput.value = number > 1 ? '(taken from filenames)' : ''; + importNameInput.readOnly = number > 1 ? true : false; + importNameInput.disabled = number > 1 ? true : false; + } }); }