Fausto Busuito
commited on
Commit
·
57819f8
1
Parent(s):
1677ecc
Application changes
Browse files- app/static/script.js +37 -7
- app/templates/index.html +1 -1
app/static/script.js
CHANGED
@@ -29,15 +29,42 @@ function startQuiz() {
|
|
29 |
function displayQuestion() {
|
30 |
const question = questions[currentIndex];
|
31 |
document.getElementById('question').innerText = question.question;
|
|
|
|
|
32 |
const optionsDiv = document.getElementById('options');
|
33 |
optionsDiv.innerHTML = '';
|
|
|
|
|
|
|
|
|
34 |
question.options.forEach((option, i) => {
|
35 |
-
const
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
});
|
|
|
|
|
41 |
}
|
42 |
|
43 |
function selectAnswer(optionIndex) {
|
@@ -74,5 +101,8 @@ document.getElementById('end-session').addEventListener('click', async () => {
|
|
74 |
|
75 |
function updateTimer() {
|
76 |
const elapsedTime = Math.floor((Date.now() - startTime) / 1000);
|
77 |
-
|
78 |
-
|
|
|
|
|
|
|
|
29 |
function displayQuestion() {
|
30 |
const question = questions[currentIndex];
|
31 |
document.getElementById('question').innerText = question.question;
|
32 |
+
|
33 |
+
const isMultipleChoice = /Select TWO|Choose two/i.test(question.question);
|
34 |
const optionsDiv = document.getElementById('options');
|
35 |
optionsDiv.innerHTML = '';
|
36 |
+
|
37 |
+
const ul = document.createElement('ul');
|
38 |
+
ul.style.listStyleType = 'disc';
|
39 |
+
|
40 |
question.options.forEach((option, i) => {
|
41 |
+
const li = document.createElement('li');
|
42 |
+
li.style.cursor = 'pointer';
|
43 |
+
li.style.marginBottom = '10px';
|
44 |
+
li.className = userAnswers[currentIndex].includes(i) ? 'selected' : '';
|
45 |
+
|
46 |
+
li.innerText = option;
|
47 |
+
|
48 |
+
li.addEventListener('click', () => {
|
49 |
+
if (isMultipleChoice) {
|
50 |
+
// Allow multiple selections
|
51 |
+
const currentAnswers = userAnswers[currentIndex];
|
52 |
+
if (currentAnswers.includes(i)) {
|
53 |
+
userAnswers[currentIndex] = currentAnswers.filter(j => j !== i);
|
54 |
+
} else {
|
55 |
+
userAnswers[currentIndex].push(i);
|
56 |
+
}
|
57 |
+
} else {
|
58 |
+
// Allow only one selection
|
59 |
+
userAnswers[currentIndex] = [i];
|
60 |
+
}
|
61 |
+
displayQuestion();
|
62 |
+
});
|
63 |
+
|
64 |
+
ul.appendChild(li);
|
65 |
});
|
66 |
+
|
67 |
+
optionsDiv.appendChild(ul);
|
68 |
}
|
69 |
|
70 |
function selectAnswer(optionIndex) {
|
|
|
101 |
|
102 |
function updateTimer() {
|
103 |
const elapsedTime = Math.floor((Date.now() - startTime) / 1000);
|
104 |
+
const hours = String(Math.floor(elapsedTime / 3600)).padStart(2, '0');
|
105 |
+
const minutes = String(Math.floor((elapsedTime % 3600) / 60)).padStart(2, '0');
|
106 |
+
const seconds = String(elapsedTime % 60).padStart(2, '0');
|
107 |
+
document.getElementById('timer').innerText = `Time: ${hours}:${minutes}:${seconds}`;
|
108 |
+
}
|
app/templates/index.html
CHANGED
@@ -22,7 +22,7 @@
|
|
22 |
<div id="quiz-container" style="display: none;">
|
23 |
<div id="question-container">
|
24 |
<p id="timer">Time: 0s</p>
|
25 |
-
<h2 id="question"></h2>
|
26 |
<div id="options"></div>
|
27 |
<div id="navigation">
|
28 |
<button id="prev">Previous</button>
|
|
|
22 |
<div id="quiz-container" style="display: none;">
|
23 |
<div id="question-container">
|
24 |
<p id="timer">Time: 0s</p>
|
25 |
+
<h2 id="question" style="font-weight: normal;"></h2>
|
26 |
<div id="options"></div>
|
27 |
<div id="navigation">
|
28 |
<button id="prev">Previous</button>
|