use common function

This commit is contained in:
Zhora Shalyapin 2025-03-26 10:34:54 +00:00
parent 3f6daf97eb
commit 3746131d1f

73
main.js
View File

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