app/static/script.js aktualisiert
This commit is contained in:
parent
d8a703a07b
commit
a87c472191
@ -1,11 +1,9 @@
|
|||||||
let mainMode = null; // 'vocab' oder 'irregular'
|
let mainMode = null;
|
||||||
let subMode = null; // 'de-en', 'start-german', etc.
|
let subMode = null;
|
||||||
let selectedPages = [];
|
let selectedPages = [];
|
||||||
let currentCard = null;
|
let currentCard = null;
|
||||||
let stats = { correct: 0, total: 0 };
|
let stats = { correct: 0, total: 0 };
|
||||||
|
|
||||||
// --- SETUP LOGIC ---
|
|
||||||
|
|
||||||
function selectMainMode(mode) {
|
function selectMainMode(mode) {
|
||||||
mainMode = mode;
|
mainMode = mode;
|
||||||
subMode = null;
|
subMode = null;
|
||||||
@ -24,13 +22,13 @@ function selectMainMode(mode) {
|
|||||||
|
|
||||||
function selectSubMode(mode) {
|
function selectSubMode(mode) {
|
||||||
subMode = mode;
|
subMode = mode;
|
||||||
|
|
||||||
document.querySelectorAll('.sub-btn').forEach(b => b.classList.remove('active'));
|
document.querySelectorAll('.sub-btn').forEach(b => b.classList.remove('active'));
|
||||||
document.getElementById(`btn-sub-${mode}`).classList.add('active');
|
document.getElementById(`btn-sub-${mode}`).classList.add('active');
|
||||||
|
|
||||||
document.getElementById('page-section').style.display = 'block';
|
document.getElementById('page-section').style.display = 'block';
|
||||||
document.getElementById('btn-start').disabled = false;
|
|
||||||
document.getElementById('btn-start').style.opacity = '1';
|
// Button Check: Nur aktivieren wenn Seiten gewählt sind
|
||||||
|
updatePageDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetchPages(type) {
|
function fetchPages(type) {
|
||||||
@ -40,15 +38,16 @@ function fetchPages(type) {
|
|||||||
const list = document.getElementById('page-list');
|
const list = document.getElementById('page-list');
|
||||||
list.innerHTML = '';
|
list.innerHTML = '';
|
||||||
|
|
||||||
// Standard: Alle auswählen
|
// WICHTIG: selectedPages resetten und KEINE Haken standardmäßig setzen
|
||||||
selectedPages = pages;
|
selectedPages = [];
|
||||||
updatePageDisplay();
|
updatePageDisplay(); // Zeigt "Keine Seiten gewählt!"
|
||||||
|
|
||||||
pages.forEach(p => {
|
pages.forEach(p => {
|
||||||
const div = document.createElement('div');
|
const div = document.createElement('div');
|
||||||
div.className = 'page-item';
|
div.className = 'page-item';
|
||||||
|
// Hier KEIN 'checked' Attribut mehr
|
||||||
div.innerHTML = `
|
div.innerHTML = `
|
||||||
<input type="checkbox" id="p-${p}" value="${p}" checked onchange="updatePageSelection()">
|
<input type="checkbox" id="p-${p}" value="${p}" onchange="updatePageSelection()">
|
||||||
<label for="p-${p}">${p}</label>
|
<label for="p-${p}">${p}</label>
|
||||||
`;
|
`;
|
||||||
list.appendChild(div);
|
list.appendChild(div);
|
||||||
@ -56,7 +55,6 @@ function fetchPages(type) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- NEU: FUNKTION FÜR "ALLE AN / ALLE AUS" ---
|
|
||||||
function toggleAllPages(state) {
|
function toggleAllPages(state) {
|
||||||
const checkboxes = document.querySelectorAll('#page-list input');
|
const checkboxes = document.querySelectorAll('#page-list input');
|
||||||
checkboxes.forEach(cb => {
|
checkboxes.forEach(cb => {
|
||||||
@ -73,32 +71,31 @@ function updatePageSelection() {
|
|||||||
|
|
||||||
function updatePageDisplay() {
|
function updatePageDisplay() {
|
||||||
const d = document.getElementById('selected-pages-display');
|
const d = document.getElementById('selected-pages-display');
|
||||||
|
const btn = document.getElementById('btn-start');
|
||||||
|
|
||||||
if (selectedPages.length === 0) {
|
if (selectedPages.length === 0) {
|
||||||
d.innerText = "Keine Seiten gewählt!";
|
d.innerText = "Keine Seiten gewählt!";
|
||||||
d.style.color = "red";
|
d.style.color = "red";
|
||||||
document.getElementById('btn-start').disabled = true;
|
btn.disabled = true;
|
||||||
} else {
|
} else {
|
||||||
d.innerText = `Seiten: ${selectedPages.join(', ')}`;
|
d.innerText = `Seiten: ${selectedPages.join(', ')}`;
|
||||||
d.style.color = "#555";
|
d.style.color = "#555";
|
||||||
if (subMode) document.getElementById('btn-start').disabled = false;
|
if (subMode) btn.disabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- QUIZ LOGIC ---
|
// --- QUIZ LOGIC (Unverändert) ---
|
||||||
|
|
||||||
function startQuiz() {
|
function startQuiz() {
|
||||||
stats = { correct: 0, total: 0 };
|
stats = { correct: 0, total: 0 };
|
||||||
updateStats();
|
updateStats();
|
||||||
document.getElementById('setup-screen').style.display = 'none';
|
document.getElementById('setup-screen').style.display = 'none';
|
||||||
document.getElementById('quiz-screen').style.display = 'flex';
|
document.getElementById('quiz-screen').style.display = 'flex'; // Flex, wegen CSS column
|
||||||
document.querySelector('.container').style.justifyContent = 'flex-start'; // Nach oben schieben
|
|
||||||
nextQuestion();
|
nextQuestion();
|
||||||
}
|
}
|
||||||
|
|
||||||
function stopQuiz() {
|
function stopQuiz() {
|
||||||
document.getElementById('quiz-screen').style.display = 'none';
|
document.getElementById('quiz-screen').style.display = 'none';
|
||||||
document.getElementById('setup-screen').style.display = 'block';
|
document.getElementById('setup-screen').style.display = 'block';
|
||||||
document.querySelector('.container').style.justifyContent = 'center'; // Wieder mittig
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function nextQuestion() {
|
function nextQuestion() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user