add button for save and new

This commit is contained in:
Zhora Shalyapin 2025-02-26 10:16:06 +00:00
parent 9d09389203
commit debdf611dc

74
main.js
View File

@ -614,17 +614,7 @@
}) })
} }
function createSendButtons() { async function sendForm(onSend) {
if (document.querySelector("button.safe-action")) return
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 formData = new FormData(document.querySelector("form"))
let fileContainers = [...document.querySelectorAll(".file-list-container")] let fileContainers = [...document.querySelectorAll(".file-list-container")]
@ -657,12 +647,52 @@
console.log(e) console.log(e)
} }
finally { finally {
saveButton.click() onSend()
} }
}
function createSaveAndNewButton() {
let saveAndNewButton = document.createElement("button")
saveAndNewButton.textContent = "+"
saveAndNewButton.type = "button"
saveAndNewButton.classList.add("safe-action")
saveAndNewButton.addEventListener("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
localStorage.setItem("justCreated", cpNumber)
localStorage.setItem("lattitude", lattitude)
localStorage.setItem("longitude", longitude)
document.querySelector("input[name=\"save_go\"]").click()
}) })
})
return saveAndNewButton
}
function createSendButtons() {
if (document.querySelector(".pseudo-save")) return
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", "pseudo-save")
pseudoSaveButton.addEventListener("click", async () => await sendForm(() => saveButton.click()))
saveButton.style.display = "none" saveButton.style.display = "none"
saveButton.parentElement.insertBefore(pseudoSaveButton, saveButton) saveButton.parentElement.insertBefore(pseudoSaveButton, saveButton)
} }
document.querySelectorAll("input[name=\"save_go\"]").forEach(el => el.after(createSaveAndNewButton()))
} }
function addUglyDeleteListener() { function addUglyDeleteListener() {
@ -1018,6 +1048,26 @@
/* HEAD */ /* HEAD */
let justCreated = localStorage.getItem("justCreated")
let prevCreated = localStorage.getItem("prevCreated")
if (justCreated !== null) {
localStorage.setItem("prevCreated", justCreated)
localStorage.removeItem("justCreated")
window.location.href = "https://rst.runcity.org/msk2025/cp_mgmt/?action=edit"
return
}
if (prevCreated !== null) {
document.querySelector(`input[name="cp[number]"]`).value = parseInt(localStorage.getItem("prevCreated")) + 1
document.querySelector(`input[name="cp[lattitude]"]`).value = localStorage.getItem("lattitude")
document.querySelector(`input[name="cp[longitude]"]`).value = localStorage.getItem("longitude")
localStorage.removeItem("prevCreated")
localStorage.removeItem("lattitude")
localStorage.removeItem("longitude")
}
let styleSheet = document.createElement("style") let styleSheet = document.createElement("style")
styleSheet.textContent = styles styleSheet.textContent = styles
document.head.appendChild(styleSheet) document.head.appendChild(styleSheet)