diff --git a/main.js b/main.js index 567d582..2153fdd 100644 --- a/main.js +++ b/main.js @@ -348,7 +348,7 @@ return `https://${adminSite}/competitions/${getCompetition()}/relations` } - function createPseudoButton(button, callback) { + function createPseudoButton(button, callback, clickAfter = true) { let pseudoButton = Tag.button({ type: "button", textContent: button.value, @@ -356,7 +356,9 @@ on: { click: async () => { await callback() - button.click() + if (clickAfter) { + button.click() + } } } }) @@ -968,7 +970,7 @@ }) } - async function sendForm(onSend) { + async function sendForm() { let formData = new FormData(document.querySelector("form")) let fileInputNames = Object.values(fileInputs).reduce((res, el) => typeof el == "string" ? [...res, el] : [...res, ...Object.values(el)], []) @@ -1007,9 +1009,6 @@ catch (e) { console.log(e) } - finally { - onSend() - } } function createSaveAndNewButton() { @@ -1018,18 +1017,18 @@ type: "button", classes: "safe-action", on: { - click: () => { - sendForm(() => { - let cpNumber = document.querySelector(`input[name="cp[number]"]`).value - let lattitude = document.querySelector(`input[name="cp[lattitude]"]`).value - let longitude = document.querySelector(`input[name="cp[longitude]"]`).value + click: async () => { + await sendForm() + + let cpNumber = document.querySelector(`input[name="cp[number]"]`).value + let lattitude = document.querySelector(`input[name="cp[lattitude]"]`).value + let longitude = document.querySelector(`input[name="cp[longitude]"]`).value - localStorage.setItem(localStorageItems.JUST_CREATED, cpNumber) - localStorage.setItem(localStorageItems.LATTITUDE, lattitude) - localStorage.setItem(localStorageItems.LONGITUDE, longitude) + localStorage.setItem(localStorageItems.JUST_CREATED, cpNumber) + localStorage.setItem(localStorageItems.LATTITUDE, lattitude) + localStorage.setItem(localStorageItems.LONGITUDE, longitude) - document.querySelector(`input[name="save_go"]`).click() - }) + document.querySelector(`input[name="save_go"]`).click() } } }) @@ -1043,30 +1042,20 @@ let saveAndStayButtons = document.querySelectorAll(`input[name="save_go"]`) let saveAndExitButtons = document.querySelectorAll(`input[name="save_exit"]`) let saveButtons = [...saveAndStayButtons, ...saveAndExitButtons] + let cpIsKnown = document.querySelector(`input[name="cp[id]"]`).value != '' for (let saveButton of saveButtons) { - let pseudoSaveButton = Tag.button({ - type: "button", - textContent: saveButton.value, - classes: "safe-action pseudo-save", - on: { - click: async () => await sendForm(() => { - if (document.querySelector(`input[name="cp[id]"]`).value != '') { - saveButton.click() - return - } + createPseudoButton(saveButton, async () => { + await sendForm() - if (saveButton.name == "save_exit") { - localStorage.setItem(localStorageItems.REDIRECT_EXIT, true) - } + if (cpIsKnown) return - saveAndStayButtons[0].click() - }) + if (saveButton.name == "save_exit") { + localStorage.setItem(localStorageItems.REDIRECT_EXIT, true) } - }) - saveButton.style.display = "none" - saveButton.parentElement.insertBefore(pseudoSaveButton, saveButton) + saveAndStayButtons[0].click() + }, cpIsKnown) } saveAndStayButtons.forEach(el => el.after(createSaveAndNewButton())) @@ -1346,21 +1335,7 @@ } function bindDeleteButton() { - let deleteButton = document.querySelector(`input[name="delete_go"]`) - let pseudoDeleteButton = Tag.button({ - type: "button", - textContent: deleteButton.value, - classes: "unsafe-action pseudo-save", - on: { - click: async () => { - await deletePoint() - deleteButton.click() - } - } - }) - - deleteButton.style.display = "none" - deleteButton.parentElement.insertBefore(pseudoDeleteButton, deleteButton) + createPseudoButton(document.querySelector(`input[name="delete_go"]`), deletePoint) } function makeTopAndBottomButtons(rows, form, oldTable, container, insertedFileRows) {