fix missing id on first save
This commit is contained in:
parent
f533873b98
commit
f6ef049473
79
main.js
79
main.js
@ -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)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user