app/static/script.js aktualisiert

This commit is contained in:
sascha 2026-01-28 18:40:24 +00:00
parent d8a703a07b
commit a87c472191

View File

@ -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() {