const urlParams = new URLSearchParams(window.location.search); const recipeId = urlParams.get('id'); if (!recipeId) { window.location.href = '/index.html'; } async function loadRecipe() { try { const response = await fetch(`/api/recipes/${recipeId}`); if (!response.ok) throw new Error('Rezept nicht gefunden'); const recipe = await response.json(); displayRecipe(recipe); } catch (error) { console.error('Fehler:', error); alert('Fehler beim Laden des Rezepts'); window.location.href = '/index.html'; } } function displayRecipe(recipe) { const rNummer = 'R' + String(recipe.rezeptnummer).padStart(3, '0'); document.getElementById('rezeptnummer').textContent = rNummer; document.getElementById('bezeichnung').textContent = recipe.bezeichnung; document.getElementById('beschreibung').innerHTML = makeClickableLinks(recipe.beschreibung || ''); if (recipe.bilder && recipe.bilder.length > 0) { document.getElementById('hauptbild').innerHTML = `Rezeptbild`; } if (recipe.vorbereitung && recipe.vorbereitung.trim()) { document.getElementById('vorbereitung').innerHTML = `
Vorbereitung: ${makeClickableLinks(recipe.vorbereitung)}`; } if (recipe.zutaten && recipe.zutaten.trim()) { let header = '
Zutaten'; if (recipe.anzahl) { header += ` für ${recipe.anzahl} Personen:`; } document.getElementById('zutatenHeader').innerHTML = header; document.getElementById('zutaten').textContent = recipe.zutaten; } else { document.getElementById('zutatenContainer').style.display = 'none'; } if (recipe.zubereitung && recipe.zubereitung.length > 0) { const maxSteps = Math.max(recipe.zubereitung.length, recipe.bilder ? recipe.bilder.length - 1 : 0); let html = ''; for (let i = 0; i < maxSteps; i++) { const step = recipe.zubereitung[i]; const bild = recipe.bilder && recipe.bilder[i + 1] ? recipe.bilder[i + 1] : null; html += ''; if (bild) { html += `Schritt ${i+1}`; } else { html += ''; } html += `${step ? escapeHtml(step.text) : ' '}`; html += ''; } document.getElementById('zubereitungSteps').innerHTML = html; } else { document.getElementById('zubereitungContainer').style.display = 'none'; } if (recipe.kommentar && recipe.kommentar.trim()) { document.getElementById('kommentarContainer').innerHTML = `


Kommentar

${makeClickableLinks(recipe.kommentar)}
`; } document.getElementById('editBtn').onclick = () => { window.location.href = `/edit.html?id=${recipeId}`; }; } function makeClickableLinks(text) { const urlPattern = /(?:(?:https?:\/\/)|(?:www\.))[^\s<>"'()]+/gi; return text.replace(urlPattern, url => `${url}`); } function escapeHtml(text) { const div = document.createElement('div'); div.textContent = text; return div.innerHTML; } function openLightbox(src) { document.getElementById('lightbox').style.display = 'block'; document.getElementById('lightbox-img').src = src; } function closeLightbox() { document.getElementById('lightbox').style.display = 'none'; } loadRecipe();