delete point from db on delete button pressed
This commit is contained in:
parent
3f0dc94d9f
commit
825ebcc106
104
main.js
104
main.js
@ -7,10 +7,6 @@
|
||||
// @match https://rst.runcity.org/*/cp_mgmt*
|
||||
// @icon https://www.google.com/s2/favicons?sz=64&domain=runcity.org
|
||||
// @grant none
|
||||
// @require https://code.jquery.com/jquery-3.7.1.min.js
|
||||
// @require https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js
|
||||
// @require https://api.mapbox.com/mapbox.js/plugins/leaflet-fullscreen/v1.0.1/Leaflet.fullscreen.min.js
|
||||
// @require https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js
|
||||
// ==/UserScript==
|
||||
|
||||
(function () {
|
||||
@ -113,18 +109,35 @@
|
||||
document.head.appendChild(css)
|
||||
}
|
||||
|
||||
function addJs(link) {
|
||||
let script = document.createElement("script")
|
||||
script.src = link
|
||||
document.head.appendChild(script)
|
||||
}
|
||||
|
||||
function isEditCpPage() {
|
||||
let params = new URLSearchParams(document.location.search)
|
||||
return params.get("action") === "edit"
|
||||
}
|
||||
|
||||
function isDeleteCpPage() {
|
||||
let params = new URLSearchParams(document.location.search)
|
||||
return params.get("action") === "delete"
|
||||
}
|
||||
|
||||
async function sendData(formData) {
|
||||
async function updatePoint(formData) {
|
||||
return await fetch(`https://runcity.geo.rictum.ru/api/competitions/${window.location.pathname.split('/')[1]}/update`, {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
})
|
||||
}
|
||||
|
||||
async function deletePoint() {
|
||||
return await fetch(`https://runcity.geo.rictum.ru/api/points/${new URLSearchParams(location.search).get("cp_id")}`, {
|
||||
method: 'DELETE'
|
||||
})
|
||||
}
|
||||
|
||||
function copyCoordinates() {
|
||||
let copyButton = document.createElement("button")
|
||||
copyButton.addEventListener("click", async event => {
|
||||
@ -214,7 +227,7 @@
|
||||
let normalInputName = fileInputs[inputName]
|
||||
formData.set(`cp[id]`, document.querySelector("input[name='cp[id]']").value)
|
||||
formData.set(`cp[${normalInputName}]`, "-1")
|
||||
let result = await sendData(formData)
|
||||
let result = await updatePoint(formData)
|
||||
try {
|
||||
console.log(result.ok)
|
||||
}
|
||||
@ -652,7 +665,7 @@
|
||||
formData.set(`propname[${prop.name}]`, propName)
|
||||
}
|
||||
|
||||
let result = await sendData(formData)
|
||||
let result = await updatePoint(formData)
|
||||
|
||||
try {
|
||||
console.log(result.ok)
|
||||
@ -1070,7 +1083,7 @@
|
||||
}
|
||||
`
|
||||
|
||||
/* HEAD */
|
||||
/* REDIRECTS */
|
||||
|
||||
let justCreated = localStorage.getItem(localStorageItems.JUST_CREATED)
|
||||
let prevCreated = localStorage.getItem(localStorageItems.PREV_CREATED)
|
||||
@ -1082,7 +1095,7 @@
|
||||
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))
|
||||
updatePoint(formData).then(() => localStorage.removeItem(localStorageItems.NEED_UPDATE_ID))
|
||||
}
|
||||
|
||||
if (exit) {
|
||||
@ -1109,19 +1122,46 @@
|
||||
localStorage.removeItem(localStorageItems.LONGITUDE)
|
||||
}
|
||||
|
||||
/* HEAD */
|
||||
|
||||
let styleSheet = document.createElement("style")
|
||||
styleSheet.textContent = styles
|
||||
document.head.appendChild(styleSheet)
|
||||
|
||||
addCss("https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css")
|
||||
addCss('https://api.mapbox.com/mapbox.js/plugins/leaflet-fullscreen/v1.0.1/leaflet.fullscreen.css')
|
||||
addCss("https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css")
|
||||
/* SWITCH FOR DIFFERENT PAGES */
|
||||
|
||||
if (isDeleteCpPage()) {
|
||||
let deleteButton = document.querySelector(`input[name="delete_go"]`)
|
||||
let pseudoDeleteButton = document.createElement("button")
|
||||
pseudoDeleteButton.type = "button"
|
||||
pseudoDeleteButton.textContent = deleteButton.value
|
||||
pseudoDeleteButton.classList.add("unsafe-action", "pseudo-save")
|
||||
pseudoDeleteButton.addEventListener("click", async () => {
|
||||
await deletePoint()
|
||||
deleteButton.click()
|
||||
})
|
||||
|
||||
deleteButton.style.display = "none"
|
||||
deleteButton.parentElement.insertBefore(pseudoDeleteButton, deleteButton)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
if (!isEditCpPage()) {
|
||||
return
|
||||
}
|
||||
|
||||
/* action=edit HEAD */
|
||||
|
||||
addJs("https://code.jquery.com/jquery-3.7.1.min.js")
|
||||
addJs("https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js")
|
||||
addJs("https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js")
|
||||
addJs('https://api.mapbox.com/mapbox.js/plugins/leaflet-fullscreen/v1.0.1/Leaflet.fullscreen.min.js')
|
||||
|
||||
addCss("https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css")
|
||||
addCss('https://api.mapbox.com/mapbox.js/plugins/leaflet-fullscreen/v1.0.1/leaflet.fullscreen.css')
|
||||
addCss("https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css")
|
||||
|
||||
/* NEW DEFALUT VALUES */
|
||||
|
||||
document.querySelector(`#props input[name="new_file_type1"][value="l"]`).click()
|
||||
@ -1379,25 +1419,27 @@
|
||||
container.appendChild(bottomButtonsContainer)
|
||||
|
||||
/* MAP */
|
||||
let content = document.querySelector("#content")
|
||||
let contentWrapper = document.createElement("div")
|
||||
contentWrapper.id = "content-wrapper"
|
||||
contentWrapper.appendChild(document.querySelector("form"))
|
||||
contentWrapper.appendChild(document.querySelector("#map-wrapper"))
|
||||
content.appendChild(contentWrapper)
|
||||
$(() => {
|
||||
map.addControl(new L.Control.Fullscreen())
|
||||
})
|
||||
|
||||
let panToCenter = document.createElement("button")
|
||||
panToCenter.type = "button"
|
||||
panToCenter.textContent = "В центр"
|
||||
panToCenter.addEventListener("click", () => {
|
||||
let lat = document.querySelector("input[name=\"cp\[lattitude\]\"").value
|
||||
let lon = document.querySelector("input[name=\"cp\[longitude\]\"").value
|
||||
map.setView(new L.LatLng(parseFloat(lat), parseFloat(lon)), 16)
|
||||
})
|
||||
document.querySelector("#map_controls").appendChild(panToCenter)
|
||||
if (map !== undefined && L !== undefined) {
|
||||
let content = document.querySelector("#content")
|
||||
let contentWrapper = document.createElement("div")
|
||||
contentWrapper.id = "content-wrapper"
|
||||
contentWrapper.appendChild(document.querySelector("form"))
|
||||
contentWrapper.appendChild(document.querySelector("#map-wrapper"))
|
||||
content.appendChild(contentWrapper)
|
||||
$(() => {
|
||||
map.addControl(new L.Control.Fullscreen())
|
||||
})
|
||||
|
||||
let panToCenter = document.createElement("button")
|
||||
panToCenter.type = "button"
|
||||
panToCenter.textContent = "В центр"
|
||||
panToCenter.addEventListener("click", () => {
|
||||
let lat = document.querySelector("input[name=\"cp\[lattitude\]\"").value
|
||||
let lon = document.querySelector("input[name=\"cp\[longitude\]\"").value
|
||||
map.setView(new L.LatLng(parseFloat(lat), parseFloat(lon)), 16)
|
||||
})
|
||||
document.querySelector("#map_controls").appendChild(panToCenter)
|
||||
}
|
||||
|
||||
/* DIALOG */
|
||||
let dialog = document.createElement("dialog")
|
||||
|
Loading…
Reference in New Issue
Block a user