From 26f492b8f0cc43066df2729fac5d691209f6b6a7 Mon Sep 17 00:00:00 2001 From: Zhora Shalyapin Date: Sat, 28 Dec 2024 15:02:48 +0000 Subject: [PATCH] send data to laravel server --- main.js | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 7 deletions(-) diff --git a/main.js b/main.js index 3a306f6..a3548ff 100644 --- a/main.js +++ b/main.js @@ -444,10 +444,6 @@ dialog.appendChild(swiperDiv) - console.log(src) - console.log(files.map(it => it.src)) - console.log(files.findIndex(el => el.dataset.origin && el.dataset.origin === src || el.src === src)) - new Swiper('.swiper', { initialSlide: files.findIndex(el => el.dataset.origin && el.dataset.origin === src || el.src === src), @@ -458,6 +454,52 @@ }) } + + function createSendButtons() { + let saveButtons = [...document.querySelectorAll("input[name=\"save_go\"]"), ...document.querySelectorAll("input[name=\"save_exit\"]")] + + for (let saveButton of saveButtons) { + let pseudoSaveButton = document.createElement("button") + pseudoSaveButton.type = "button" + pseudoSaveButton.textContent = saveButton.value + pseudoSaveButton.classList.add("safe-action") + pseudoSaveButton.addEventListener("click", async () => { + let formData = new FormData(document.querySelector("form")) + + let props = document.querySelectorAll("input[name^=\"prop_\"]"); + for (let prop of props) { + let parent = prop.parentElement + let propName + + if (parent.tagName === "DIV") { + propName = parent.parentElement.querySelector("label").textContent + } + else if (parent.tagName === "TD") { + propName = parent.parentElement.querySelector("td:first-child").textContent + } + + formData.set(`propname[${prop.name}]`, propName) + } + + let result = await fetch(`https://runcity.geo.rictum.ru/api/competitions/${window.location.pathname.split('/')[1]}/update`, { + method: 'POST', + body: formData + }) + + try { + console.log(result.ok) + } + catch (e) { + console.log(e) + } + finally { + saveButton.click() + } + }) + saveButton.style.display = "none" + saveButton.parentElement.insertBefore(pseudoSaveButton, saveButton) + } + } let styles = ` #content-wrapper { @@ -813,8 +855,8 @@ prettifyButton.addEventListener("click", () => { prettify(form, oldTable, container, insertedFileRows) }) - rowContentWrapper.appendChild(prettifyButton) + rowContentWrapper.appendChild(prettifyButton) rowContentWrapper.appendChild(createAlwaysPrettifyInput(index)) el.appendChild(rowContentWrapper) @@ -827,11 +869,14 @@ unglifyButton.addEventListener("click", () => { moveInputValues(form, container, oldTable) }) - el.querySelector("div > div > div").appendChild(unglifyButton) - el.querySelector("div > div > div").appendChild(createAlwaysPrettifyInput(index)) + let topRowContentWrapper = el.querySelector("div > div > div") + topRowContentWrapper.appendChild(unglifyButton) + topRowContentWrapper.appendChild(createAlwaysPrettifyInput(index)) }) + createSendButtons() + /* OPTIONS */ let firstContainer = createFrom(rows, "options", [