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*
|
// @match https://rst.runcity.org/*/cp_mgmt*
|
||||||
// @icon https://www.google.com/s2/favicons?sz=64&domain=runcity.org
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=runcity.org
|
||||||
// @grant none
|
// @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==
|
// ==/UserScript==
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
@ -113,18 +109,35 @@
|
|||||||
document.head.appendChild(css)
|
document.head.appendChild(css)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addJs(link) {
|
||||||
|
let script = document.createElement("script")
|
||||||
|
script.src = link
|
||||||
|
document.head.appendChild(script)
|
||||||
|
}
|
||||||
|
|
||||||
function isEditCpPage() {
|
function isEditCpPage() {
|
||||||
let params = new URLSearchParams(document.location.search)
|
let params = new URLSearchParams(document.location.search)
|
||||||
return params.get("action") === "edit"
|
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`, {
|
return await fetch(`https://runcity.geo.rictum.ru/api/competitions/${window.location.pathname.split('/')[1]}/update`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: formData
|
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() {
|
function copyCoordinates() {
|
||||||
let copyButton = document.createElement("button")
|
let copyButton = document.createElement("button")
|
||||||
copyButton.addEventListener("click", async event => {
|
copyButton.addEventListener("click", async event => {
|
||||||
@ -214,7 +227,7 @@
|
|||||||
let normalInputName = fileInputs[inputName]
|
let normalInputName = fileInputs[inputName]
|
||||||
formData.set(`cp[id]`, document.querySelector("input[name='cp[id]']").value)
|
formData.set(`cp[id]`, document.querySelector("input[name='cp[id]']").value)
|
||||||
formData.set(`cp[${normalInputName}]`, "-1")
|
formData.set(`cp[${normalInputName}]`, "-1")
|
||||||
let result = await sendData(formData)
|
let result = await updatePoint(formData)
|
||||||
try {
|
try {
|
||||||
console.log(result.ok)
|
console.log(result.ok)
|
||||||
}
|
}
|
||||||
@ -652,7 +665,7 @@
|
|||||||
formData.set(`propname[${prop.name}]`, propName)
|
formData.set(`propname[${prop.name}]`, propName)
|
||||||
}
|
}
|
||||||
|
|
||||||
let result = await sendData(formData)
|
let result = await updatePoint(formData)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
console.log(result.ok)
|
console.log(result.ok)
|
||||||
@ -1070,7 +1083,7 @@
|
|||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
/* HEAD */
|
/* REDIRECTS */
|
||||||
|
|
||||||
let justCreated = localStorage.getItem(localStorageItems.JUST_CREATED)
|
let justCreated = localStorage.getItem(localStorageItems.JUST_CREATED)
|
||||||
let prevCreated = localStorage.getItem(localStorageItems.PREV_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[id]", new URLSearchParams(document.location.search).get("cp_id"))
|
||||||
formData.set("cp[number]", document.querySelector(`input[name="cp[number]"]`).value)
|
formData.set("cp[number]", document.querySelector(`input[name="cp[number]"]`).value)
|
||||||
formData.set("update_id", true)
|
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) {
|
if (exit) {
|
||||||
@ -1109,19 +1122,46 @@
|
|||||||
localStorage.removeItem(localStorageItems.LONGITUDE)
|
localStorage.removeItem(localStorageItems.LONGITUDE)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* HEAD */
|
||||||
|
|
||||||
let styleSheet = document.createElement("style")
|
let styleSheet = document.createElement("style")
|
||||||
styleSheet.textContent = styles
|
styleSheet.textContent = styles
|
||||||
document.head.appendChild(styleSheet)
|
document.head.appendChild(styleSheet)
|
||||||
|
|
||||||
addCss("https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css")
|
/* SWITCH FOR DIFFERENT PAGES */
|
||||||
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")
|
|
||||||
|
|
||||||
|
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()) {
|
if (!isEditCpPage()) {
|
||||||
return
|
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 */
|
/* NEW DEFALUT VALUES */
|
||||||
|
|
||||||
document.querySelector(`#props input[name="new_file_type1"][value="l"]`).click()
|
document.querySelector(`#props input[name="new_file_type1"][value="l"]`).click()
|
||||||
@ -1379,25 +1419,27 @@
|
|||||||
container.appendChild(bottomButtonsContainer)
|
container.appendChild(bottomButtonsContainer)
|
||||||
|
|
||||||
/* MAP */
|
/* MAP */
|
||||||
let content = document.querySelector("#content")
|
if (map !== undefined && L !== undefined) {
|
||||||
let contentWrapper = document.createElement("div")
|
let content = document.querySelector("#content")
|
||||||
contentWrapper.id = "content-wrapper"
|
let contentWrapper = document.createElement("div")
|
||||||
contentWrapper.appendChild(document.querySelector("form"))
|
contentWrapper.id = "content-wrapper"
|
||||||
contentWrapper.appendChild(document.querySelector("#map-wrapper"))
|
contentWrapper.appendChild(document.querySelector("form"))
|
||||||
content.appendChild(contentWrapper)
|
contentWrapper.appendChild(document.querySelector("#map-wrapper"))
|
||||||
$(() => {
|
content.appendChild(contentWrapper)
|
||||||
map.addControl(new L.Control.Fullscreen())
|
$(() => {
|
||||||
})
|
map.addControl(new L.Control.Fullscreen())
|
||||||
|
})
|
||||||
let panToCenter = document.createElement("button")
|
|
||||||
panToCenter.type = "button"
|
let panToCenter = document.createElement("button")
|
||||||
panToCenter.textContent = "В центр"
|
panToCenter.type = "button"
|
||||||
panToCenter.addEventListener("click", () => {
|
panToCenter.textContent = "В центр"
|
||||||
let lat = document.querySelector("input[name=\"cp\[lattitude\]\"").value
|
panToCenter.addEventListener("click", () => {
|
||||||
let lon = document.querySelector("input[name=\"cp\[longitude\]\"").value
|
let lat = document.querySelector("input[name=\"cp\[lattitude\]\"").value
|
||||||
map.setView(new L.LatLng(parseFloat(lat), parseFloat(lon)), 16)
|
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)
|
})
|
||||||
|
document.querySelector("#map_controls").appendChild(panToCenter)
|
||||||
|
}
|
||||||
|
|
||||||
/* DIALOG */
|
/* DIALOG */
|
||||||
let dialog = document.createElement("dialog")
|
let dialog = document.createElement("dialog")
|
||||||
|
Loading…
Reference in New Issue
Block a user