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 subMode = null; // 'de-en', 'start-german', etc.
let mainMode = null;
let subMode = null;
let selectedPages = [];
let currentCard = null;
let stats = { correct: 0, total: 0 };
// --- SETUP LOGIC ---
function selectMainMode(mode) {
mainMode = mode;
subMode = null;
@ -24,13 +22,13 @@ function selectMainMode(mode) {
function selectSubMode(mode) {
subMode = mode;
document.querySelectorAll('.sub-btn').forEach(b => b.classList.remove('active'));
document.getElementById(`btn-sub-${mode}`).classList.add('active');
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) {
@ -40,15 +38,16 @@ function fetchPages(type) {
const list = document.getElementById('page-list');
list.innerHTML = '';
// Standard: Alle auswählen
selectedPages = pages;
updatePageDisplay();
// WICHTIG: selectedPages resetten und KEINE Haken standardmäßig setzen
selectedPages = [];
updatePageDisplay(); // Zeigt "Keine Seiten gewählt!"
pages.forEach(p => {
const div = document.createElement('div');
div.className = 'page-item';
// Hier KEIN 'checked' Attribut mehr
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>
`;
list.appendChild(div);
@ -56,7 +55,6 @@ function fetchPages(type) {
});
}
// --- NEU: FUNKTION FÜR "ALLE AN / ALLE AUS" ---
function toggleAllPages(state) {
const checkboxes = document.querySelectorAll('#page-list input');
checkboxes.forEach(cb => {
@ -73,32 +71,31 @@ function updatePageSelection() {
function updatePageDisplay() {
const d = document.getElementById('selected-pages-display');
const btn = document.getElementById('btn-start');
if (selectedPages.length === 0) {
d.innerText = "Keine Seiten gewählt!";
d.style.color = "red";
document.getElementById('btn-start').disabled = true;
btn.disabled = true;
} else {
d.innerText = `Seiten: ${selectedPages.join(', ')}`;
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() {
stats = { correct: 0, total: 0 };
updateStats();
document.getElementById('setup-screen').style.display = 'none';
document.getElementById('quiz-screen').style.display = 'flex';
document.querySelector('.container').style.justifyContent = 'flex-start'; // Nach oben schieben
document.getElementById('quiz-screen').style.display = 'flex'; // Flex, wegen CSS column
nextQuestion();
}
function stopQuiz() {
document.getElementById('quiz-screen').style.display = 'none';
document.getElementById('setup-screen').style.display = 'block';
document.querySelector('.container').style.justifyContent = 'center'; // Wieder mittig
}
function nextQuestion() {