diff --git a/demo/src/main/resources/templates/create-recipe.html b/demo/src/main/resources/templates/create-recipe.html index d1321f4..4609977 100644 --- a/demo/src/main/resources/templates/create-recipe.html +++ b/demo/src/main/resources/templates/create-recipe.html @@ -110,7 +110,10 @@ function addIngredient() { const row = document.createElement('div'); row.className = 'dynamic-row'; row.innerHTML = ` - + + + + `; row.querySelector('.btn-remove').addEventListener('click', () => { row.remove(); @@ -148,11 +151,19 @@ function renumberSteps() { // ---- Collecting on submit ---- // Call this wherever you build your POST payload: function getIngredients() { - return [...ingredientContainer.querySelectorAll('input')] - .map((el, i) => ({ order: i + 1, name: el.value.trim() })) - .filter(item => item.name); + return [...ingredientContainer.querySelectorAll('.dynamic-row')].map(row => { + return { + ingredient: { + name: row.querySelector('.ing-name').value.trim() + }, + quantity: row.querySelector('.ing-qty').value.trim(), + unit: row.querySelector('.ing-unit').value.trim(), + notes: row.querySelector('.ing-notes').value.trim() + }; + }).filter(item => item.ingredient.name); } + function getSteps() { return [...stepsContainer.querySelectorAll('textarea')] .map((el, i) => ({ step_number: i + 1, instruction: el.value.trim() }))