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"
|
"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 ZOOM = 17
|
||||||
const METERS = 510
|
const METERS = 510
|
||||||
|
|
||||||
@ -525,9 +535,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.checked)
|
if (this.checked)
|
||||||
localStorage.setItem("always", "+")
|
localStorage.setItem(localStorageItems.ALWAYS_PRETTIFY, "+")
|
||||||
else
|
else
|
||||||
localStorage.removeItem("always")
|
localStorage.removeItem(localStorageItems.ALWAYS_PRETTIFY)
|
||||||
})
|
})
|
||||||
|
|
||||||
alwaysPrettify.appendChild(alwaysPrettifyCheckbox)
|
alwaysPrettify.appendChild(alwaysPrettifyCheckbox)
|
||||||
@ -623,6 +633,10 @@
|
|||||||
formData.set(`cp[${fileInputNames[i]}]`, fileContainer.children.length)
|
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_\"]");
|
let props = document.querySelectorAll("input[name^=\"prop_\"]");
|
||||||
for (let prop of props) {
|
for (let prop of props) {
|
||||||
let parent = prop.parentElement
|
let parent = prop.parentElement
|
||||||
@ -662,9 +676,9 @@
|
|||||||
let lattitude = document.querySelector(`input[name="cp[lattitude]"]`).value
|
let lattitude = document.querySelector(`input[name="cp[lattitude]"]`).value
|
||||||
let longitude = document.querySelector(`input[name="cp[longitude]"]`).value
|
let longitude = document.querySelector(`input[name="cp[longitude]"]`).value
|
||||||
|
|
||||||
localStorage.setItem("justCreated", cpNumber)
|
localStorage.setItem(localStorageItems.JUST_CREATED, cpNumber)
|
||||||
localStorage.setItem("lattitude", lattitude)
|
localStorage.setItem(localStorageItems.LATTITUDE, lattitude)
|
||||||
localStorage.setItem("longitude", longitude)
|
localStorage.setItem(localStorageItems.LONGITUDE, longitude)
|
||||||
|
|
||||||
document.querySelector("input[name=\"save_go\"]").click()
|
document.querySelector("input[name=\"save_go\"]").click()
|
||||||
})
|
})
|
||||||
@ -676,23 +690,27 @@
|
|||||||
function createSendButtons() {
|
function createSendButtons() {
|
||||||
if (document.querySelector(".pseudo-save")) return
|
if (document.querySelector(".pseudo-save")) return
|
||||||
|
|
||||||
let saveButtons = [
|
let saveAndStayButtons = document.querySelectorAll("input[name=\"save_go\"]")
|
||||||
...document.querySelectorAll("input[name=\"save_go\"]"),
|
let saveAndExitButtons = document.querySelectorAll("input[name=\"save_exit\"]")
|
||||||
...document.querySelectorAll("input[name=\"save_exit\"]")
|
let saveButtons = [...saveAndStayButtons, ...saveAndExitButtons]
|
||||||
]
|
|
||||||
|
|
||||||
for (let saveButton of saveButtons) {
|
for (let saveButton of saveButtons) {
|
||||||
let pseudoSaveButton = document.createElement("button")
|
let pseudoSaveButton = document.createElement("button")
|
||||||
pseudoSaveButton.type = "button"
|
pseudoSaveButton.type = "button"
|
||||||
pseudoSaveButton.textContent = saveButton.value
|
pseudoSaveButton.textContent = saveButton.value
|
||||||
pseudoSaveButton.classList.add("safe-action", "pseudo-save")
|
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.style.display = "none"
|
||||||
saveButton.parentElement.insertBefore(pseudoSaveButton, saveButton)
|
saveButton.parentElement.insertBefore(pseudoSaveButton, saveButton)
|
||||||
}
|
}
|
||||||
|
|
||||||
document.querySelectorAll("input[name=\"save_go\"]").forEach(el => el.after(createSaveAndNewButton()))
|
saveAndStayButtons.forEach(el => el.after(createSaveAndNewButton()))
|
||||||
}
|
}
|
||||||
|
|
||||||
function addUglyDeleteListener() {
|
function addUglyDeleteListener() {
|
||||||
@ -1048,24 +1066,41 @@
|
|||||||
|
|
||||||
/* HEAD */
|
/* HEAD */
|
||||||
|
|
||||||
let justCreated = localStorage.getItem("justCreated")
|
let justCreated = localStorage.getItem(localStorageItems.JUST_CREATED)
|
||||||
let prevCreated = localStorage.getItem("prevCreated")
|
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) {
|
if (justCreated !== null) {
|
||||||
localStorage.setItem("prevCreated", justCreated)
|
localStorage.setItem(localStorageItems.PREV_CREATED, justCreated)
|
||||||
localStorage.removeItem("justCreated")
|
localStorage.removeItem(localStorageItems.JUST_CREATED)
|
||||||
|
|
||||||
window.location.href = "https://rst.runcity.org/msk2025/cp_mgmt/?action=edit"
|
window.location.href = "https://rst.runcity.org/msk2025/cp_mgmt/?action=edit"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (prevCreated !== null) {
|
if (prevCreated !== null) {
|
||||||
document.querySelector(`input[name="cp[number]"]`).value = parseInt(localStorage.getItem("prevCreated")) + 1
|
document.querySelector(`input[name="cp[number]"]`).value = parseInt(localStorage.getItem(localStorageItems.PREV_CREATED)) + 1
|
||||||
document.querySelector(`input[name="cp[lattitude]"]`).value = localStorage.getItem("lattitude")
|
document.querySelector(`input[name="cp[lattitude]"]`).value = localStorage.getItem(localStorageItems.LATTITUDE)
|
||||||
document.querySelector(`input[name="cp[longitude]"]`).value = localStorage.getItem("longitude")
|
document.querySelector(`input[name="cp[longitude]"]`).value = localStorage.getItem(localStorageItems.LONGITUDE)
|
||||||
|
|
||||||
localStorage.removeItem("prevCreated")
|
localStorage.removeItem(localStorageItems.PREV_CREATED)
|
||||||
localStorage.removeItem("lattitude")
|
localStorage.removeItem(localStorageItems.LATTITUDE)
|
||||||
localStorage.removeItem("longitude")
|
localStorage.removeItem(localStorageItems.LONGITUDE)
|
||||||
}
|
}
|
||||||
|
|
||||||
let styleSheet = document.createElement("style")
|
let styleSheet = document.createElement("style")
|
||||||
@ -1375,7 +1410,7 @@
|
|||||||
|
|
||||||
/* PRETTIFY CHECKBOX */
|
/* PRETTIFY CHECKBOX */
|
||||||
|
|
||||||
if (localStorage.getItem("always")) {
|
if (localStorage.getItem(localStorageItems.ALWAYS_PRETTIFY)) {
|
||||||
document.querySelector(`input[name^="always-prettify-0"]`).click()
|
document.querySelector(`input[name^="always-prettify-0"]`).click()
|
||||||
prettify(form, oldTable, container, insertedFileRows)
|
prettify(form, oldTable, container, insertedFileRows)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user