fix missing id on first save

This commit is contained in:
Zhora Shalyapin 2025-02-27 10:24:04 +00:00
parent f533873b98
commit f6ef049473

79
main.js
View File

@ -23,6 +23,16 @@
"attachment3": "admin_files"
}
const localStorageItems = {
NEED_UPDATE_ID: "needUpdateId",
JUST_CREATED: "justCreated",
PREV_CREATED: "prevCreated",
LATTITUDE: "lattitude",
LONGITUDE: "longitude",
ALWAYS_PRETTIFY: "always",
REDIRECT_EXIT: "redirectExit"
}
const ZOOM = 17
const METERS = 510
@ -525,9 +535,9 @@
}
}
if (this.checked)
localStorage.setItem("always", "+")
localStorage.setItem(localStorageItems.ALWAYS_PRETTIFY, "+")
else
localStorage.removeItem("always")
localStorage.removeItem(localStorageItems.ALWAYS_PRETTIFY)
})
alwaysPrettify.appendChild(alwaysPrettifyCheckbox)
@ -623,6 +633,10 @@
formData.set(`cp[${fileInputNames[i]}]`, fileContainer.children.length)
}
if (formData.get("cp[id]") == '') {
localStorage.setItem(localStorageItems.NEED_UPDATE_ID, true)
}
let props = document.querySelectorAll("input[name^=\"prop_\"]");
for (let prop of props) {
let parent = prop.parentElement
@ -662,9 +676,9 @@
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)
localStorage.setItem(localStorageItems.JUST_CREATED, cpNumber)
localStorage.setItem(localStorageItems.LATTITUDE, lattitude)
localStorage.setItem(localStorageItems.LONGITUDE, longitude)
document.querySelector("input[name=\"save_go\"]").click()
})
@ -676,23 +690,27 @@
function createSendButtons() {
if (document.querySelector(".pseudo-save")) return
let saveButtons = [
...document.querySelectorAll("input[name=\"save_go\"]"),
...document.querySelectorAll("input[name=\"save_exit\"]")
]
let saveAndStayButtons = document.querySelectorAll("input[name=\"save_go\"]")
let saveAndExitButtons = document.querySelectorAll("input[name=\"save_exit\"]")
let saveButtons = [...saveAndStayButtons, ...saveAndExitButtons]
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()))
pseudoSaveButton.addEventListener("click", async () => await sendForm(() => {
if (saveButton.name == "save_exit") {
localStorage.setItem(localStorageItems.REDIRECT_EXIT, true)
}
saveAndStayButtons[0].click()
}))
saveButton.style.display = "none"
saveButton.parentElement.insertBefore(pseudoSaveButton, saveButton)
}
document.querySelectorAll("input[name=\"save_go\"]").forEach(el => el.after(createSaveAndNewButton()))
saveAndStayButtons.forEach(el => el.after(createSaveAndNewButton()))
}
function addUglyDeleteListener() {
@ -1048,24 +1066,41 @@
/* HEAD */
let justCreated = localStorage.getItem("justCreated")
let prevCreated = localStorage.getItem("prevCreated")
let justCreated = localStorage.getItem(localStorageItems.JUST_CREATED)
let prevCreated = localStorage.getItem(localStorageItems.PREV_CREATED)
let needUpdateId = localStorage.getItem(localStorageItems.NEED_UPDATE_ID)
let exit = localStorage.getItem(localStorageItems.REDIRECT_EXIT)
if (needUpdateId) {
let formData = new FormData()
formData.set("cp[id]", new URLSearchParams(document.location.search).get("cp_id"))
formData.set("cp[number]", document.querySelector(`input[name="cp[number]"]`).value)
formData.set("update_id", true)
sendData(formData).then(() => localStorage.removeItem(localStorageItems.NEED_UPDATE_ID))
}
if (exit) {
localStorage.removeItem(localStorageItems.REDIRECT_EXIT)
window.location.href = "https://rst.runcity.org/msk2025/cp_mgmt/"
return
}
if (justCreated !== null) {
localStorage.setItem("prevCreated", justCreated)
localStorage.removeItem("justCreated")
localStorage.setItem(localStorageItems.PREV_CREATED, justCreated)
localStorage.removeItem(localStorageItems.JUST_CREATED)
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")
document.querySelector(`input[name="cp[number]"]`).value = parseInt(localStorage.getItem(localStorageItems.PREV_CREATED)) + 1
document.querySelector(`input[name="cp[lattitude]"]`).value = localStorage.getItem(localStorageItems.LATTITUDE)
document.querySelector(`input[name="cp[longitude]"]`).value = localStorage.getItem(localStorageItems.LONGITUDE)
localStorage.removeItem("prevCreated")
localStorage.removeItem("lattitude")
localStorage.removeItem("longitude")
localStorage.removeItem(localStorageItems.PREV_CREATED)
localStorage.removeItem(localStorageItems.LATTITUDE)
localStorage.removeItem(localStorageItems.LONGITUDE)
}
let styleSheet = document.createElement("style")
@ -1375,7 +1410,7 @@
/* PRETTIFY CHECKBOX */
if (localStorage.getItem("always")) {
if (localStorage.getItem(localStorageItems.ALWAYS_PRETTIFY)) {
document.querySelector(`input[name^="always-prettify-0"]`).click()
prettify(form, oldTable, container, insertedFileRows)
}