From dd7fe84ffdf89780cf1476e2697d2d5ed3e82222 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Sat, 8 Feb 2020 01:08:03 +0100 Subject: [PATCH] fix(exam-correct): fix usage for non-lecturer --- .../src/utils/exam-correct/exam-correct.js | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/frontend/src/utils/exam-correct/exam-correct.js b/frontend/src/utils/exam-correct/exam-correct.js index a7337c9eb..3daab9761 100644 --- a/frontend/src/utils/exam-correct/exam-correct.js +++ b/frontend/src/utils/exam-correct/exam-correct.js @@ -78,8 +78,10 @@ export class ExamCorrect { this._userInputStatus = document.getElementById(EXAM_CORRECT_USER_INPUT_STATUS_ID); this._userInputCandidates = document.getElementById(EXAM_CORRECT_USER_INPUT_CANDIDATES_ID); this._partInputs = [...this._element.querySelectorAll(`input[${EXAM_CORRECT_PART_INPUT_ATTR}]`)]; - this._resultSelect = document.getElementById('uw-exam-correct__result').querySelector('select'); - this._resultGradeSelect = document.getElementById('uw-exam-correct__result__grade').querySelector('select'); + const resultCell = document.getElementById('uw-exam-correct__result'); + this._resultSelect = resultCell && resultCell.querySelector('select'); + const resultGradeCell = document.getElementById('uw-exam-correct__result__grade'); + this._resultGradeSelect = resultGradeCell && resultGradeCell.querySelector('select'); this._partDeleteBoxes = [...this._element.querySelectorAll('input.uw-exam-correct--delete-exam-part')]; if (this._sendBtn) @@ -114,15 +116,17 @@ export class ExamCorrect { .map((header) => [header.getAttribute('uw-exam-correct-header'), header.cellIndex]) ); - this._resultSelect.addEventListener('change', () => { + if (this._resultSelect && this._resultGradeSelect) { + this._resultSelect.addEventListener('change', () => { + if (this._resultSelect.value !== 'attended') + this._resultGradeSelect.classList.add('grade-hidden'); + else + this._resultGradeSelect.classList.remove('grade-hidden'); + }); + if (this._resultSelect.value !== 'attended') this._resultGradeSelect.classList.add('grade-hidden'); - else - this._resultGradeSelect.classList.remove('grade-hidden'); - }); - - if (this._resultSelect.value !== 'attended') - this._resultGradeSelect.classList.add('grade-hidden'); + } this._lastColumnIndex = this._element.querySelector('thead > tr').querySelectorAll('th').length - 1; @@ -235,7 +239,7 @@ export class ExamCorrect { } let result; - if (this._resultSelect) { + if (this._resultSelect && this._resultGradeSelect) { switch (this._resultSelect.value) { case 'none': result = undefined; @@ -421,7 +425,7 @@ export class ExamCorrect { if (v === null) { resultCell.innerHTML = ''; resultCell.classList.remove('exam-correct--result-unconfirmed'); - } else if (v && v.result) { + } else if (v && v.result !== undefined && v.result !== null) { resultCell.innerHTML = v.result; resultCell.classList.remove('exam-correct--result-unconfirmed'); }