From e6f993bb0a26d9e0455645a94f30daf5da577d85 Mon Sep 17 00:00:00 2001 From: Sven Lubenau Date: Fri, 12 Sep 2025 17:36:30 +0200 Subject: [PATCH] Test: Lokale Entwicklungsumgebung eingerichtet --- www/.DS_Store | Bin 0 -> 6148 bytes www/Bundeslaender-repo | 1 + www/Bundeslaender/1_BW/AUSBILDUNG.md | 2 + www/Bundeslaender/1_BW/HS-BA-1F.md | 6 + www/Bundeslaender/1_BW/HS-BA-2F.md | 4 + www/Bundeslaender/1_BW/HS-MA-0F.md | 1 + www/Bundeslaender/1_BW/HS-MA-1F.md | 6 + www/Bundeslaender/1_BW/HS-MA-2F.md | 6 + www/Bundeslaender/1_BW/HSREIFE.md | 3 + www/Bundeslaender/1_BW/LA-BA.md | 2 + www/Bundeslaender/1_BW/LA-EX.md | 3 + www/Bundeslaender/1_BW/LA-MA.md | 4 + www/Steuerungsdateien/finder.js | 478 +++++++++++++++++++++++++ www/Steuerungsdateien/finder.yml | 100 ++++++ www/Steuerungsdateien/fonts.css | 27 ++ www/Steuerungsdateien/fonts/font.woff2 | Bin 0 -> 44824 bytes www/Steuerungsdateien/styles.css | 416 +++++++++++++++++++++ www/index.html | 425 ++-------------------- 18 files changed, 1094 insertions(+), 390 deletions(-) create mode 100644 www/.DS_Store create mode 120000 www/Bundeslaender-repo create mode 100644 www/Bundeslaender/1_BW/AUSBILDUNG.md create mode 100644 www/Bundeslaender/1_BW/HS-BA-1F.md create mode 100644 www/Bundeslaender/1_BW/HS-BA-2F.md create mode 100644 www/Bundeslaender/1_BW/HS-MA-0F.md create mode 100644 www/Bundeslaender/1_BW/HS-MA-1F.md create mode 100644 www/Bundeslaender/1_BW/HS-MA-2F.md create mode 100644 www/Bundeslaender/1_BW/HSREIFE.md create mode 100644 www/Bundeslaender/1_BW/LA-BA.md create mode 100644 www/Bundeslaender/1_BW/LA-EX.md create mode 100644 www/Bundeslaender/1_BW/LA-MA.md create mode 100644 www/Steuerungsdateien/finder.js create mode 100644 www/Steuerungsdateien/finder.yml create mode 100644 www/Steuerungsdateien/fonts.css create mode 100644 www/Steuerungsdateien/fonts/font.woff2 create mode 100644 www/Steuerungsdateien/styles.css diff --git a/www/.DS_Store b/www/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9fd810b75b89801928c66031fd14a00fabe2cc3e GIT binary patch literal 6148 zcmeHKy-veG47N*$075Dguw`bVJ41*9FOZD|D5(lk(o{fZ@*oT>JOm>X?}1o(2R@%q zZKLqhN(dojOTO>UXWyN_t8z6Faa?76q83La9^yq6xUwap2k__^40I%Tg>E&&I=lS5f zh-}G-$;JGM?y)>=Qc5>CZ6zmmnT(J}hToxBFQMZ`9=!FsSk!zz$F~oUC%Z161@=$X7b2ITt?LIop_wW9lUpm8MtunV&j z^re=Nn9yV7u~x(kgf$eXq3lZx)^ONE?-zNj6*ZjL7a#0*W?!MO+a2qN&Yd_?wAL6f z2AT}4=&&d6|KaELe>2EN#(**KuNdHNk|r@y@^5P^IeBYC=qXf0{A$H%2s-X5hOa!u c+fXO4htdH?9&1HdAofSV(O``+@T&~G13hMG%m4rY literal 0 HcmV?d00001 diff --git a/www/Bundeslaender-repo b/www/Bundeslaender-repo new file mode 120000 index 0000000..dd025dc --- /dev/null +++ b/www/Bundeslaender-repo @@ -0,0 +1 @@ +../Bundeslaender \ No newline at end of file diff --git a/www/Bundeslaender/1_BW/AUSBILDUNG.md b/www/Bundeslaender/1_BW/AUSBILDUNG.md new file mode 100644 index 0000000..e391d09 --- /dev/null +++ b/www/Bundeslaender/1_BW/AUSBILDUNG.md @@ -0,0 +1,2 @@ +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_SM-1.md +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_SM-2.md \ No newline at end of file diff --git a/www/Bundeslaender/1_BW/HS-BA-1F.md b/www/Bundeslaender/1_BW/HS-BA-1F.md new file mode 100644 index 0000000..d16ecbc --- /dev/null +++ b/www/Bundeslaender/1_BW/HS-BA-1F.md @@ -0,0 +1,6 @@ +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-1.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-3.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-4.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-5.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-6.md +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_SM-1.md \ No newline at end of file diff --git a/www/Bundeslaender/1_BW/HS-BA-2F.md b/www/Bundeslaender/1_BW/HS-BA-2F.md new file mode 100644 index 0000000..be9402b --- /dev/null +++ b/www/Bundeslaender/1_BW/HS-BA-2F.md @@ -0,0 +1,4 @@ +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-4.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-5.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-6.md +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_SM-1.md \ No newline at end of file diff --git a/www/Bundeslaender/1_BW/HS-MA-0F.md b/www/Bundeslaender/1_BW/HS-MA-0F.md new file mode 100644 index 0000000..4e6c4e6 --- /dev/null +++ b/www/Bundeslaender/1_BW/HS-MA-0F.md @@ -0,0 +1 @@ +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-4.md \ No newline at end of file diff --git a/www/Bundeslaender/1_BW/HS-MA-1F.md b/www/Bundeslaender/1_BW/HS-MA-1F.md new file mode 100644 index 0000000..eaea42a --- /dev/null +++ b/www/Bundeslaender/1_BW/HS-MA-1F.md @@ -0,0 +1,6 @@ +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-4.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-5.md +/Bundeslaender/1_BW_Baden-Württemberg/2_ Vorbereitungsdienst/Texte/BW_VD_SM-1.md +/Bundeslaender/1_BW_Baden-Württemberg/2_ Vorbereitungsdienst/Texte/BW_VD_SM-2.md +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_SM-1.md +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_VL.md \ No newline at end of file diff --git a/www/Bundeslaender/1_BW/HS-MA-2F.md b/www/Bundeslaender/1_BW/HS-MA-2F.md new file mode 100644 index 0000000..eaea42a --- /dev/null +++ b/www/Bundeslaender/1_BW/HS-MA-2F.md @@ -0,0 +1,6 @@ +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-4.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-5.md +/Bundeslaender/1_BW_Baden-Württemberg/2_ Vorbereitungsdienst/Texte/BW_VD_SM-1.md +/Bundeslaender/1_BW_Baden-Württemberg/2_ Vorbereitungsdienst/Texte/BW_VD_SM-2.md +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_SM-1.md +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_VL.md \ No newline at end of file diff --git a/www/Bundeslaender/1_BW/HSREIFE.md b/www/Bundeslaender/1_BW/HSREIFE.md new file mode 100644 index 0000000..5ae5fa0 --- /dev/null +++ b/www/Bundeslaender/1_BW/HSREIFE.md @@ -0,0 +1,3 @@ +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_GS.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SO.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_DF.md \ No newline at end of file diff --git a/www/Bundeslaender/1_BW/LA-BA.md b/www/Bundeslaender/1_BW/LA-BA.md new file mode 100644 index 0000000..b8f4f45 --- /dev/null +++ b/www/Bundeslaender/1_BW/LA-BA.md @@ -0,0 +1,2 @@ +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_DF.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-2.md \ No newline at end of file diff --git a/www/Bundeslaender/1_BW/LA-EX.md b/www/Bundeslaender/1_BW/LA-EX.md new file mode 100644 index 0000000..38c310c --- /dev/null +++ b/www/Bundeslaender/1_BW/LA-EX.md @@ -0,0 +1,3 @@ +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_WB_1.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_DF.md +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_VL.md \ No newline at end of file diff --git a/www/Bundeslaender/1_BW/LA-MA.md b/www/Bundeslaender/1_BW/LA-MA.md new file mode 100644 index 0000000..91ec5c3 --- /dev/null +++ b/www/Bundeslaender/1_BW/LA-MA.md @@ -0,0 +1,4 @@ +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_DF.md +/Bundeslaender/1_BW_Baden-Württemberg/1_Studium/Texte/BW_HS_SM-2.md +/Bundeslaender/1_BW_Baden-Württemberg/2_ Vorbereitungsdienst/Texte/BW_VD_RE.md +/Bundeslaender/1_BW_Baden-Württemberg/3_Schuldienst/Texte/BW_SD_VL.md \ No newline at end of file diff --git a/www/Steuerungsdateien/finder.js b/www/Steuerungsdateien/finder.js new file mode 100644 index 0000000..29a79ec --- /dev/null +++ b/www/Steuerungsdateien/finder.js @@ -0,0 +1,478 @@ +// finder.js – Logik für den Step-basierten Finder im Tab 2 mit YAML-Ausgabe + +let steps = []; // Alle geladenen Schritte aus structure.yml +let answers = []; // User-Antworten +let selectedBundesland = ''; // Aktuelles Bundesland +let currentPath = []; // Aktueller Pfad durch den Entscheidungsbaum + +// Lädt Finderstruktur aus YML und speichert sie global +async function loadFinderStructure() { + try { + const response = await fetch('Steuerungsdateien/finder.yml'); + const text = await response.text(); + const data = jsyaml.load(text); + steps = data.steps; + console.log('[DEBUG] Finderstruktur geladen:', steps); + resetFinder(); + renderBundeslandStep(); + } catch (err) { + console.error("Fehler beim Laden der structure.yml:", err); + } +} + +// Setzt den Finder zurück +function resetFinder() { + answers = []; + selectedBundesland = ''; + currentPath = ['step1']; + document.getElementById('result').style.display = 'none'; + document.getElementById('dynamic-steps').innerHTML = ''; +} + +// Baut das initiale Bundesland-Auswahlfeld mit Arrow und Styling + function renderBundeslandStep() { + const step1 = steps.find(s => s.id === 'step1'); + if (!step1) return; + + const container = document.getElementById('dynamic-steps'); + container.innerHTML = ''; // Reset + + const div = document.createElement('div'); + div.className = 'step active'; + div.id = 'step1'; + + const label = document.createElement('label'); + label.textContent = step1.frage; + div.appendChild(label); + + // Erstelle den wrapper mit Klasse für bessere Auswählbarkeit + const wrapper = document.createElement('div'); + wrapper.className = 'select-wrapper'; // NEU + wrapper.style.position = 'relative'; + wrapper.style.display = 'inline-block'; // NEU + + const select = document.createElement('select'); + select.className = 'select purple auto-width'; + select.id = 'bundesland-steps'; + select.name = 'bundesland'; + + const defaultOpt = document.createElement('option'); + defaultOpt.textContent = 'Bitte wählen'; + defaultOpt.value = ''; + select.appendChild(defaultOpt); + + step1.options.forEach(opt => { + const option = document.createElement('option'); + option.value = opt.value; + option.textContent = opt.label; + select.appendChild(option); + }); + + // Vorauswahl des Bundeslandes, falls vorhanden + if (selectedBundesland) { + select.value = selectedBundesland; + } + + select.addEventListener('change', (e) => { + const val = e.target.value; + if (val !== '') { + // Wenn Bundesland geändert wird, Pfad neu berechnen und alle nachfolgenden Steps entfernen + recalculatePathFrom('step1', val); + onBundeslandSelected(val); + } + }); + + const arrow = document.createElement('div'); + arrow.className = 'select-arrow'; + + wrapper.appendChild(select); + wrapper.appendChild(arrow); + div.appendChild(wrapper); + + const info = document.createElement('div'); + info.className = 'info'; + info.textContent = step1.info; + div.appendChild(info); + + container.appendChild(div); + + setTimeout(() => { + resizeSelect(select); + }, 0); + } + +// Wird aufgerufen, wenn das Bundesland gewählt wurde (step1) +function onBundeslandSelected(value) { + selectedBundesland = value; + answers[0] = value; + document.getElementById('result').style.display = 'none'; + + // Alle nachfolgenden Steps entfernen + removeStepsAfter('step1'); + + // Step 2 rendern + const step2 = steps.find(s => s.id === 'step2'); + if (step2) renderStep(step2); +} + +// Rendert einen Step (Frage + Optionen) +function renderStep(step) { + const container = document.getElementById('dynamic-steps'); + + // Prüfen, ob dieser Step bereits existiert + let stepElement = document.getElementById(step.id); + if (stepElement) { + // Falls der Step bereits existiert, nur Info anzeigen + const info = stepElement.querySelector('.info'); + if (info) info.style.display = 'block'; + + // Falls der Step bereits existiert und eine Antwort hat, markiere den Button + const stepIndex = steps.findIndex(s => s.id === step.id); + const selectedValue = answers[stepIndex]; + if (selectedValue) { + const buttons = stepElement.querySelectorAll('button'); + buttons.forEach(btn => { + if (btn.dataset.value === selectedValue) { + btn.classList.add('selected'); + } else { + btn.classList.remove('selected'); + } + }); + } + + stepElement.scrollIntoView({ behavior: 'smooth' }); + return; + } + + // Neuen Step erstellen + const div = document.createElement('div'); + div.className = 'step active'; + div.id = step.id; + + const frage = document.createElement('label'); + frage.textContent = step.frage; + div.appendChild(frage); + + const buttonGroup = document.createElement('div'); + buttonGroup.className = 'button-group'; + + step.options.forEach(opt => { + const btn = document.createElement('button'); + btn.type = 'button'; + btn.className = 'button'; + btn.textContent = opt.label; + btn.dataset.value = opt.value; + + // Wenn bereits eine Antwort ausgewählt ist, markieren + const stepIndex = steps.findIndex(s => s.id === step.id); + if (answers[stepIndex] === opt.value) { + btn.classList.add('selected'); + } + + btn.onclick = () => { + // Vorher ausgewählte Buttons deselektieren + buttonGroup.querySelectorAll('button').forEach(b => b.classList.remove('selected')); + btn.classList.add('selected'); + + // Antwort speichern + const stepIndex = steps.findIndex(s => s.id === step.id); + answers[stepIndex] = opt.value; + + // Info ausblenden + div.querySelector('.info').style.display = 'none'; + + // Pfad neu berechnen und alle nachfolgenden Steps entfernen + recalculatePathFrom(step.id, opt.value); + removeStepsAfter(step.id); + + // Abhängig von der Option weitergehen oder Ergebnis anzeigen + if (opt.result) { + // Am Ende des Pfades - Ergebnis anzeigen + const code = buildResultCode(); + loadResult(code); + } else if (opt.next) { + // Nächsten Step anzeigen + const nextStep = steps.find(s => s.id === opt.next); + if (nextStep) renderStep(nextStep); + } + }; + + buttonGroup.appendChild(btn); + }); + + div.appendChild(buttonGroup); + + const info = document.createElement('div'); + info.className = 'info'; + info.textContent = step.info; + div.appendChild(info); + + container.appendChild(div); + div.scrollIntoView({ behavior: 'smooth' }); + + // Step zum aktiven Pfad hinzufügen + if (!currentPath.includes(step.id)) { + currentPath.push(step.id); + } +} + +// Berechnet den Pfad ausgehend von einem bestimmten Step neu +function recalculatePathFrom(stepId, selectedValue) { + const stepIndex = steps.findIndex(s => s.id === stepId); + + // Aktualisiere den aktuellen Pfad (entferne alle nach dem geänderten Step) + currentPath = currentPath.slice(0, currentPath.indexOf(stepId) + 1); + + // Aktualisiere die Antworten (behalte nur Antworten bis zum aktuellen Step) + answers = answers.slice(0, stepIndex + 1); + + // Setze die ausgewählte Antwort + answers[stepIndex] = selectedValue; + + console.log('[DEBUG] Neuer Pfad berechnet ab', stepId, 'Pfad:', currentPath, 'Antworten:', answers); + + // Ergebnis ausblenden, da sich der Pfad geändert hat + document.getElementById('result').style.display = 'none'; +} + +// Entfernt alle Steps nach dem angegebenen Step aus dem DOM +function removeStepsAfter(stepId) { + const container = document.getElementById('dynamic-steps'); + const stepElements = container.querySelectorAll('.step'); + + let removeFlag = false; + + stepElements.forEach(el => { + if (removeFlag) { + container.removeChild(el); + } + + if (el.id === stepId) { + removeFlag = true; + } + }); + + // Ergebnis ausblenden + document.getElementById('result').style.display = 'none'; +} + +// Generiert den Code für das Ergebnis aus den Antworten +function buildResultCode() { + // Bundesland-Code mapping + const bundeslandMapping = { + 'BW': '1_BW', // Baden-Württemberg + 'BY': '2_BY', // Bayern + 'BE': '3_BE', // Berlin + 'BB': '4_BB', // Brandenburg + 'HB': '5_HB', // Bremen + 'HH': '6_HH', // Hamburg + 'HE': '7_HE', // Hessen + 'MV': '8_MV', // Mecklenburg-Vorpommern + 'NI': '9_NI', // Niedersachsen + 'NW': '10_NW', // Nordrhein-Westfalen + 'RP': '11_RP', // Rheinland-Pfalz + 'SL': '12_SL', // Saarland + 'SN': '13_SN', // Sachsen + 'ST': '14_ST', // Sachsen-Anhalt + 'SH': '15_SH', // Schleswig-Holstein + 'TH': '16_TH' // Thüringen + }; + + console.log('[DEBUG] Alle Antworten vor Filterung:', answers); + + // Stelle sicher, dass answers ein Array ist und alle Elemente definiert sind + const cleanAnswers = answers.filter(answer => answer !== undefined && answer !== null && answer !== ''); + + console.log('[DEBUG] Bereinigte Antworten:', cleanAnswers); + + if (cleanAnswers.length === 0) { + console.error('[ERROR] Keine gültigen Antworten gefunden'); + return 'error/no-answers'; + } + + const bundesland = bundeslandMapping[cleanAnswers[0]] || cleanAnswers[0]; + + // Spezielle Behandlung für HS (Hochschulstudium) + let restCode; + if (cleanAnswers[1] === 'HS') { + // Bei HS: HS-BA-1F oder HS-MA-2F + restCode = cleanAnswers.slice(1).join('-'); + } else { + // Bei LA: LA-BA-1F oder LA-MA-2F + restCode = cleanAnswers.slice(1).join('-'); + } + + const code = `${bundesland}/${restCode}`; + + console.log('[DEBUG] Finaler Code:', code); + return code; +} + +// Ergebnis anzeigen am Ende des Flows +async function loadResult(code) { + // 1. Ermittle den Pfad zur .md-Datei-Liste (z.B. Bundeslaender/1_BW/BA-2F.md) + // 2. Lade die Datei mit den Pfaden zu den eigentlichen Texten + // 3. Lade alle .md-Dateien in der Reihenfolge, parse sie und zeige sie als
an + + let codeFile = `Bundeslaender/${code}.md`; + + const resultContainer = document.getElementById('result'); + const mainSection = resultContainer.querySelector('.main-section'); + mainSection.innerHTML = ''; + + // Hilfsfunktion: Markdown-Abschnitt parsen und als Article rendern + function renderMarkdownArticle(mdText) { + // Splitte in Abschnitte nach ## + const sections = mdText.split(/\n(?=## )/); + return sections.map(section => { + let lines = section.trim().split('\n'); + if (!lines[0].startsWith('##')) return ''; + let headline = lines[0].replace(/^## /, ''); + let marginal = ''; + let textStart = 1; + + // Prüfe zweite Zeile auf Link + if (lines[1] && lines[1].startsWith('http')) { + const linkLine = lines[1]; + + // Prüfe ob es ein Markdown-Link mit Text ist: [Text](URL) + const markdownLinkMatch = linkLine.match(/^\[([^\]]+)\]\(([^)]+)\)$/); + if (markdownLinkMatch) { + // Markdown-Link gefunden: [Text](URL) + const linkText = markdownLinkMatch[1]; + const linkUrl = markdownLinkMatch[2]; + marginal = `
${linkText}
`; + } else { + // Nur URL ohne Text - Fallback verwenden + marginal = `
Externer Link
`; + } + textStart = 2; + } + + let text = lines.slice(textStart).join('\n'); + return `
+
+
+

${headline}

+
${marked.parse(text)}
+
+ +
+
`; + }).join(''); + } + + // Lade die Datei mit den Pfaden zu den eigentlichen Texten + try { + const pfadRes = await fetch(codeFile); + if (!pfadRes.ok) throw new Error('Datei nicht gefunden: ' + codeFile); + const pfadText = await pfadRes.text(); + const mdFiles = pfadText.split('\n').map(l => l.trim()).filter(l => l && !l.startsWith('#')); + let allArticles = ''; + for (const mdFile of mdFiles) { + try { + // Pfad für TYPO3 fileadmin - verwende den Symlink + // Entferne führenden Slash falls vorhanden + const cleanPath = mdFile.startsWith('/') ? mdFile.substring(1) : mdFile; + // Ersetze Bundeslaender durch den Symlink + const fullPath = cleanPath.replace(/^Bundeslaender\//, 'Bundeslaender-repo/'); + const mdRes = await fetch(fullPath); + if (!mdRes.ok) throw new Error('Datei nicht gefunden: ' + fullPath); + const mdText = await mdRes.text(); + allArticles += renderMarkdownArticle(mdText); + } catch (err) { + allArticles += `

Datei nicht gefunden

${mdFile}
`; + } + } + mainSection.innerHTML = allArticles; + resultContainer.style.display = 'block'; + resultContainer.scrollIntoView({ behavior: 'smooth' }); + } catch (err) { + mainSection.innerHTML = `

Fehler

${err.message}
`; + resultContainer.style.display = 'block'; + } +} + +// Lädt und zeigt die zusätzlichen Abschnitte an +function loadAdditionalSections(sections, resultContainer) { + if (!resultContainer) { + console.error('[ERROR] Kein gültiger Container für zusätzliche Abschnitte'); + return; + } + + // Trennlinie hinzufügen vor den zusätzlichen Abschnitten + const divider = document.createElement('hr'); + divider.className = 'section-divider'; + resultContainer.appendChild(divider); + + // Jeden zusätzlichen Abschnitt laden + sections.forEach((sectionCode, index) => { + const path = `data/finder/texte/${sectionCode}.yml`; + console.log(`[DEBUG] Lade zusätzlichen Abschnitt ${index + 1} von:`, path); + + fetch(path) + .then(res => res.ok ? res.text() : null) + .then(txt => txt ? jsyaml.load(txt) : null) + .then(data => { + if (!data) { + console.warn(`[WARN] Zusätzlicher Abschnitt ${sectionCode} konnte nicht geladen werden.`); + return; + } + + // Zusätzlichen Abschnitt hinzufügen + appendAdditionalSection(data, index + 1, sectionCode, resultContainer); + }) + .catch(err => { + console.error(`[ERROR] Fehler beim Laden des zusätzlichen Abschnitts ${sectionCode}:`, err); + }); + }); +} + +// Fügt einen zusätzlichen Abschnitt zum DOM hinzu +function appendAdditionalSection(data, index, sectionCode, resultContainer) { + if (!resultContainer) { + console.error('[ERROR] Kein gültiger Container zum Anhängen des zusätzlichen Abschnitts'); + return; + } + + // Neuen Abschnitt erstellen + const section = document.createElement('div'); + section.className = 'additional-section'; + section.id = `section-${sectionCode}`; + + section.innerHTML = ` +

${data.Headline || `Zusätzliche Information ${index}`}

+
${data.Text || '...'}
+
${data.Tags || ''}
+
${data.Marginal || ''}
+ `; + + resultContainer.appendChild(section); +} + +// Fügt einen Reset-Button hinzu (optional) +function addResetButton() { + const container = document.getElementById('dynamic-steps').parentElement; + + let resetBtn = document.getElementById('reset-finder'); + if (!resetBtn) { + resetBtn = document.createElement('button'); + resetBtn.id = 'reset-finder'; + resetBtn.className = 'button secondary'; + resetBtn.textContent = 'Neu starten'; + resetBtn.onclick = () => { + resetFinder(); + renderBundeslandStep(); + if (typeof showTab === 'function') showTab('tab2'); + }; + + container.appendChild(resetBtn); + } +} + +// Initialisierung beim Seitenladen +window.addEventListener('DOMContentLoaded', () => { + loadFinderStructure(); + addResetButton(); // Optional + observeSelectChanges(); +}); \ No newline at end of file diff --git a/www/Steuerungsdateien/finder.yml b/www/Steuerungsdateien/finder.yml new file mode 100644 index 0000000..8de4084 --- /dev/null +++ b/www/Steuerungsdateien/finder.yml @@ -0,0 +1,100 @@ +steps: + - id: step1 + frage: Bundesland wählen + info: Wähle dein Bundesland für die passende Empfehlung. Jedes Bundesland hat eigene Regelungen für Lehrerausbildung und -einstellung. Manche Bundesländer haben höheren Bedarf an Informatiklehrern. Informiere dich über spezifische Voraussetzungen in deinem Wunschbundesland. + code_digit: true + options: + - label: Baden-Württemberg + value: BW + - label: Bayern + value: BY + - label: Berlin + value: BE + - label: Brandenburg + value: BB + - label: Bremen + value: HB + - label: Hamburg + value: HH + - label: Hessen + value: HE + - label: Mecklenburg-Vorpommern + value: MV + - label: Niedersachsen + value: NI + - label: Nordrhein-Westfalen + value: NW + - label: Rheinland-Pfalz + value: RP + - label: Saarland + value: SL + - label: Sachsen + value: SN + - label: Sachsen-Anhalt + value: ST + - label: Schleswig-Holstein + value: SH + - label: Thüringen + value: TH + + - id: step2 + frage: Was bringst du mit? + info: Dein bisheriger Bildungsweg entscheidet über den Weg zum Informatiklehrer. Ein Hochschulstudium oder Lehramtstudium eröffnet den direktesten Weg. Aber auch mit Abitur oder Berufsausbildung gibt es Möglichkeiten durch Quer- oder Seiteneinstieg. + code_digit: true + options: + - label: Abgeschlossenes Hochschulstudium + value: HS + next: step3 + - label: Lehramtstudium + value: LA + next: step4 + - label: Allgemeine Hochschulreife (Abitur) + value: HSREIFE + result: true + - label: Abgeschlossene Berufsausbildung + value: AUSBILDUNG + result: true + + - id: step3 + frage: Hast du einen Bachelor- oder Masterabschluss? + info: Der Grad deines Hochschulabschlusses beeinflusst deine Einstiegsmöglichkeiten als Informatiklehrer. Mit einem Master hast du oft bessere Chancen und höhere Einstufung im Beamtenverhältnis. Ein Bachelor reicht für den Quereinstieg meist aus, ein Master wird aber bevorzugt. + code_digit: true + options: + - label: Bachelor (oder gleichwertig) + value: BA + next: step5 + - label: Master (oder gleichwertig) + value: MA + next: step5 + + - id: step4 + frage: Der Lehramtabschluss ist ein Bachelor- oder Masterabschluss oder das 2. Staatsexamen? + info: Der Grad deines Lehramtstudiums bestimmt deine Einstiegsmöglichkeiten. Mit einem Master oder 2. Staatsexamen hast du bessere Chancen auf eine direkte Einstellung. Ein Bachelor im Lehramt ermöglicht oft den Quereinstieg, erfordert aber möglicherweise zusätzliche Qualifikationen. + code_digit: true + options: + - label: Bachelor (oder gleichwertig) + value: BA + next: step5 + - label: Master (oder gleichwertig) + value: MA + next: step5 + - label: 2. Staatsexamen + value: EX + next: step5 + + - id: step5 + frage: Weiviel Fächer studierst du? + info: Die Anzahl deiner studierten Fächer bestimmt den Weg ins Lehramt. Mit zwei Fächern bist du optimal aufgestellt für reguläres Lehramt. Ein Fach ermöglicht Quereinstieg, oft mit Nachqualifikation im zweiten Fach. Ohne passende Fächer sind Umwege über Weiterbildungen oder Zusatzstudium nötig. + code_digit: true + options: + - label: kein Fach + value: 0F + result: true + - label: ein Fach + value: 1F + result: true + - label: zwei Fächer + value: 2F + result: true + + diff --git a/www/Steuerungsdateien/fonts.css b/www/Steuerungsdateien/fonts.css new file mode 100644 index 0000000..724fec6 --- /dev/null +++ b/www/Steuerungsdateien/fonts.css @@ -0,0 +1,27 @@ +/** + * @license + * MyFonts Webfont Build ID 4697673, 2022-04-13T08:44:55-0400 + * + * The fonts listed in this notice are subject to the End User License + * Agreement(s) entered into by the website owner. All other parties are + * explicitly restricted from using the Licensed Webfonts(s). + * + * You may obtain a valid license at the URLs below. + * + * Webfont: CalebGrotesk-Medium by Brenners Template + * URL: https://www.myfonts.com/fonts/brenners-template/caleb-grotesk/medium/ + * Copyright: Copylight(c)2021, Brenners Template All rights reserved + * + * + * + * © 2022 MyFonts Inc +*/ + +/* @import must be at top of file, otherwise CSS will not work */ +@import url("//hello.myfonts.net/count/47ae49"); + +@font-face { + font-family: "CalebGrotesk-Medium"; + src: url('webFonts/CalebGroteskMedium/font.woff2') format('woff2'), url('webFonts/CalebGroteskMedium/font.woff') format('woff'); +} + diff --git a/www/Steuerungsdateien/fonts/font.woff2 b/www/Steuerungsdateien/fonts/font.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..099a8138d53bf0f51845a972bc44b96cebaef891 GIT binary patch literal 44824 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 U9Yff(AX(6Cu(U`KF2@J}02-QkO8@`> literal 0 HcmV?d00001 diff --git a/www/Steuerungsdateien/styles.css b/www/Steuerungsdateien/styles.css new file mode 100644 index 0000000..2e4c14e --- /dev/null +++ b/www/Steuerungsdateien/styles.css @@ -0,0 +1,416 @@ + + +.container { + +} + +.step { + font-family: sans-serif; + display: none; + background: #eeeeee; + padding: 15px; + border-radius: 0px; + font-size: 1rem; + opacity: 1; + transition: opacity 0.4s ease; +} + +.step.active { + display: block; + background: #f4f4f4; + opacity: 1; + border-bottom: 5px solid white; +} + +.step.completed { + /* Stil für abgeschlossene Steps, z.B. grüner Rand oder Haken-Icon */ + display: block; +} + +.step.inactive { + /* Abgedunkelter Stil für inaktive Steps */ + opacity: 0.6; +} + +.step { + transition: all 0.3s ease-in-out; + opacity: 1; + max-height: 500px; + overflow: hidden; +} + +.step.removing { + opacity: 0; + max-height: 0; + margin: 0; + padding: 0; +} + +button.selected { + /* Markierter Button */ + background-color: #007bff; + color: white; +} + +button[disabled] { + /* Deaktivierte Buttons */ + cursor: not-allowed; + opacity: 0.5; +} + +button.secondary { + font-size: 0.75rem; + color: grey; + border-color: grey; + padding: 5px 7px; +} + +.step .info { + padding: 7px; + margin-top: 10px; +} + +label { + margin-bottom: 10px; + display: block; + padding: 7px; +} + +.button { + font-size: 1rem; + padding: 15px 22px; + margin: 5px; + cursor: pointer; + border: 1px solid #e07047; + color: #e07047; + background: none; + display: inline-block; + border-radius: 3px; +} + +.button.selected, +.button.active { + background: #e07047; + color: white; +} + +body { + -webkit-text-size-adjust: 100%; + font-size: 16px; +} + +.content-article { + margin-bottom: 2em; + padding: 1em; + background: white; + font-family: 'Fira Sans', sans-serif; + font-weight: 300; /* Light */ + font-size: 1.2em; /* Reduziert von 1.556em */ + line-height: 1.5; +} + +.content-article:last-child { + margin-bottom: 0; +} + +.content-article h2 { + font-family: 'CalebGrotesk-Medium', sans-serif; + font-weight: 500; +} + +.content-article a { + color: rgb(172, 112, 195); + text-decoration: none; + transition: color 0.3s ease; + position: relative; + padding-left: 1.2em; +} + +.content-article a::before { + content: "↗"; + position: absolute; + left: 0; + top: 0; + font-size: 0.7em; + opacity: 0.6; + transition: opacity 0.3s ease; +} + +.content-article a:hover { + color: #5a4c9; + text-decoration: underline; +} + +.content-article a:hover::before { + opacity: 1; +} + +.layout { + display: flex; + gap: 20px; + background: white !important; +} + +.main-content { + flex: 2; +} + +.sidebar { + flex: 1; + padding: 10px; + border-radius: 5px; +} + +select { + font-size: 1rem; + border: none; + padding: 5px 10px 5px 10px; + color: white; + cursor: pointer; + outline: none; + appearance: none; + -webkit-appearance: none; + position: relative; +} + +select.select { + display: inline-flex; +} + +select.auto-width { + width: auto; + min-width: 50px; + display: inline-block; +} + +.select.purple { + background-color: #ab70c1; + border-radius: 0px; +} + +.select.orange { + background-color: #e27046; + border-radius: 9999px; +} + +.select.blue { + background: #527fe2; + border-radius: 50px; + color: white; +} + +.select.green { + background: #31a46e; + color: white; + clip-path: polygon(0 0, 95% 0, 100% 50%, 95% 100%, 0 100%); + border: none; +} + +.select-finder { + font-size: 1rem; + border: none; + padding: 5px 10px 5px 10px; + color: white; + cursor: pointer; + outline: none; + appearance: none; + -webkit-appearance: none; + position: relative; + background-color: #ab70c1; + border-radius: 0px; +} + +.select-arrow::after { + content: ""; + position: absolute; + pointer-events: none; + top: 50%; + right: 10px; + transform: translate(0, -50%); + width: 12px; + height: 12px; + background-color: #fff; + clip-path: polygon(50% 80%, 0 20%, 100% 20%); +} + +.tab { + background-color: #f1f1f1; + display: none; +} + +.tab.active { + display: block; +} + +.meta { + font-size: 1rem !important; + font-weight: 500; +} + +.personas-tableau { + display: grid; + grid-template-columns: 1fr 212px; + gap: 20px; + align-items: start; + font-family: sans-serif; +} + +.personas-portrait { + display: grid; + grid-template-columns: 180px 1fr; + gap: 20px; + padding: 15px 15px 15px 0px; +} + +.portrait-left img { + width: 100%; + max-width: 200px; + border-radius: 10px; +} + +.info-right { + flex: 1; +} + +.persona-head h2 { + font-size: 1.8rem; + margin: 0 0 0.3em; +} + +.persona-head .subline { + font-style: italic; + color: #777; +} + +.text { + margin-top: 1em; + line-height: 1.5; +} + +.persona-list { + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: repeat(3, auto); + gap: 5px; + background-color: white; + border-left: 5px solid white; + max-height: 3965px; + overflow-y: auto; + border-bottom: 5px solid white; +} + +.persona { + text-align: center; + cursor: pointer; + transition: opacity 0.3s; + background-color: #f1f1f1; + padding: 10px; +} + +.persona img { + width: 80px; + filter: grayscale(100%); + transition: filter 0.3s ease; +} + +.persona:hover img { + filter: none; +} + +.persona span { + display: block; + margin-top: 0.5em; + font-size: 0.9rem; + color: #333; +} + +.recommendation { + padding: 15px; + border-radius: 4px; + border-top: 5px solid white; + background-color: white; +} + +.recommendation .distinction { + font-weight: bold; + color: #e07047; +} + +.tab-buttons { + display: flex; + background-color: white; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom: 2px solid #f1f1f1; + font-size: 1rem; +} + +.button-tab { + padding: 10px 20px; + margin: 0; + border: none; + background-color: white; + cursor: pointer; + border-right: 4px solid white; + font-weight: bold; + color: #333; + transition: background 0.2s ease; + border-radius: 3px; +} + +.button-tab:last-child { + border-right: none; +} + +.button-tab:hover { + font-weight: 700; + background-color: #e07047; + color: white; +} + +.button-tab.active { + background-color: #f1f1f1; + border-bottom: 2px solid #f1f1f1; + color: #e07047; +} + +.section-divider { + margin: 2rem 0; + border: 0; + height: 1px; + background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0)); +} + +.additional-section { + margin-top: 1.5rem; + padding-top: 1rem; +} + +.additional-section h2 { + font-size: 1.5rem; + margin-bottom: 1rem; + color: #333; +} + +.additional-section .text-content { + margin-bottom: 1rem; + line-height: 1.6; +} + +.additional-section .tags { + margin-bottom: 0.5rem; + font-size: 0.9rem; + color: #666; +} + +.additional-section .tags:not(:empty)::before { + content: "Tags: "; + font-weight: bold; +} + +.additional-section .marginal { + font-size: 0.9rem; + color: #666; + padding-top: 0.5rem; + border-top: 1px solid #eee; +} diff --git a/www/index.html b/www/index.html index 28d5756..fec3b29 100644 --- a/www/index.html +++ b/www/index.html @@ -1,382 +1,15 @@ - - - Schrittweiser Auswahlprozess - - + + + Werde Informatiklehrerin - Beratungstool + + + + + +
@@ -419,23 +52,25 @@ select.auto-width {
-
-
+ + +
+ - - + + - - \ No newline at end of file +