diff options
author | xengineering <me@xengineering.eu> | 2024-05-12 20:06:17 +0200 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2024-05-12 20:06:17 +0200 |
commit | f2800e8289e9637bb3227a5f9622edabf6529b0f (patch) | |
tree | 826dfa8b2cb5e68fca4c5cbabb8402688beebf51 /view/static | |
parent | cfeff398f0ad7e4205dc26b66ca2b46ebca24606 (diff) | |
download | ceres-f2800e8289e9637bb3227a5f9622edabf6529b0f.tar ceres-f2800e8289e9637bb3227a5f9622edabf6529b0f.tar.zst ceres-f2800e8289e9637bb3227a5f9622edabf6529b0f.zip |
view: Move all JS code to static/ceres.js
Diffstat (limited to 'view/static')
-rw-r--r-- | view/static/ceres.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/view/static/ceres.js b/view/static/ceres.js index a8326da..abd5f30 100644 --- a/view/static/ceres.js +++ b/view/static/ceres.js @@ -49,3 +49,50 @@ function filter() { } } } + +function updateRecipe(event) { + event.preventDefault(); + + const form = event.target; + const url = form.getAttribute('action'); + const data = new FormData(form); + let obj = Object.fromEntries(data.entries()); + + obj.steps = []; + const steps = document.querySelectorAll('form section textarea'); + steps.forEach(step => { + let s = {}; + s.text = step.value; + obj.steps.push(s); + }); + + fetch(url, { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify(obj) + }) + .then(response => { + if (response.ok) { + console.log('Form submitted successfully'); + } else { + console.error('Form submission failed'); + } + if (response.redirected) { + window.location.href = response.url; + } + }) + .catch(error => { + console.error('Network error:', error); + }); +} + +function addNewStep() { + var newStep = document.createElement("section"); + newStep.innerHTML = ` + <textarea rows="4" cols="50" placeholder="Step description"></textarea> + <button type="button" onclick="parentNode.remove();">remove</button> + `; + + var steps = document.querySelector("#steps"); + steps.appendChild(newStep); +} |