send history files to server
This commit is contained in:
parent
13ac788635
commit
884fc7088f
57
main.js
57
main.js
@ -16,12 +16,23 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
let fileInputs = {
|
let fileInputs = {
|
||||||
"attachment1": "legend_photo",
|
"attachment1": {
|
||||||
"attachment4": "legend_files",
|
"l": "legend_photo",
|
||||||
|
"h": "history_photo"
|
||||||
|
},
|
||||||
|
"attachment4": {
|
||||||
|
"l": "legend_files",
|
||||||
|
"h": "history_files"
|
||||||
|
},
|
||||||
"attachment2": "admin_photo",
|
"attachment2": "admin_photo",
|
||||||
"attachment3": "admin_files"
|
"attachment3": "admin_files"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let fileInpitVariants = {
|
||||||
|
"l": "для легенды",
|
||||||
|
"h": "для ист. справки"
|
||||||
|
}
|
||||||
|
|
||||||
const localStorageItems = {
|
const localStorageItems = {
|
||||||
NEED_UPDATE_ID: "needUpdateId",
|
NEED_UPDATE_ID: "needUpdateId",
|
||||||
JUST_CREATED: "justCreated",
|
JUST_CREATED: "justCreated",
|
||||||
@ -231,10 +242,11 @@
|
|||||||
return downloadLink
|
return downloadLink
|
||||||
}
|
}
|
||||||
|
|
||||||
async function sendFileDeleted(inputName) {
|
async function sendFileDeleted(inputName, fileInputVariant = null) {
|
||||||
let formData = new FormData()
|
let formData = new FormData()
|
||||||
|
|
||||||
let normalInputName = fileInputs[inputName]
|
console.log(fileInputs[fileInputVariant])
|
||||||
|
let normalInputName = fileInputVariant !== null ? fileInputs[inputName][fileInputVariant] : 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 updatePoint(formData)
|
let result = await updatePoint(formData)
|
||||||
@ -246,17 +258,25 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addDisplayedFile(inputName, type, file, preview, removeLink, purpose = null) {
|
function parsePurpose(cell) {
|
||||||
|
return cell?.querySelector("td:nth-child(2)")?.innerHTML.match(/для[^\|]+/g)?.[0].trim()
|
||||||
|
}
|
||||||
|
|
||||||
|
function parsefileInputVariant(cell) {
|
||||||
|
return Object.keys(fileInpitVariants).find(key => fileInpitVariants[key] === parsePurpose(cell))
|
||||||
|
}
|
||||||
|
|
||||||
|
function addDisplayedFile(inputName, type, file, preview, removeLink, variant = null) {
|
||||||
if (!inputName || !file || !removeLink) return
|
if (!inputName || !file || !removeLink) return
|
||||||
|
|
||||||
let fileListContainer
|
let fileListContainer
|
||||||
if (purpose !== null) {
|
if (variant !== null) {
|
||||||
if (inputName == "attachment1" || inputName == "attachment4") {
|
if (inputName == "attachment1" || inputName == "attachment4") {
|
||||||
if (purpose == "для легенды") {
|
if (variant == "l") {
|
||||||
let fileContainerClassName = fileInputs[inputName].replace("_", "-")
|
let fileContainerClassName = fileInputs[inputName][variant].replace("_", "-")
|
||||||
fileListContainer = document.querySelector(`.${fileContainerClassName}-container .file-list-container`)
|
fileListContainer = document.querySelector(`.${fileContainerClassName}-container .file-list-container`)
|
||||||
}
|
}
|
||||||
else if (purpose == "для ист. справки") {
|
else if (variant == "h") {
|
||||||
let filesContainer = document.querySelector(inputName == "attachment1" ? `.history-photo-container` : `.history-files-container`)
|
let filesContainer = document.querySelector(inputName == "attachment1" ? `.history-photo-container` : `.history-files-container`)
|
||||||
fileListContainer = filesContainer.querySelector(`.file-list-container`)
|
fileListContainer = filesContainer.querySelector(`.file-list-container`)
|
||||||
if (fileListContainer == null) {
|
if (fileListContainer == null) {
|
||||||
@ -307,7 +327,7 @@
|
|||||||
if (!confirm("Точно?")) return
|
if (!confirm("Точно?")) return
|
||||||
|
|
||||||
await fetch(removeLink)
|
await fetch(removeLink)
|
||||||
await sendFileDeleted(inputName)
|
await sendFileDeleted(inputName, variant)
|
||||||
removedFilesLinks.push(removeLink)
|
removedFilesLinks.push(removeLink)
|
||||||
|
|
||||||
fileListContainer.removeChild(fileContainer)
|
fileListContainer.removeChild(fileContainer)
|
||||||
@ -371,7 +391,7 @@
|
|||||||
|
|
||||||
let fileListContainer = this.parentElement.parentElement.querySelector(".file-list-container")
|
let fileListContainer = this.parentElement.parentElement.querySelector(".file-list-container")
|
||||||
let fileContainer = document.createElement("div")
|
let fileContainer = document.createElement("div")
|
||||||
fileContainer.classList.add("file-container")
|
fileContainer.classList.add("file-container", "file-container-new")
|
||||||
|
|
||||||
const displayedFile = getHtmlElementByFileType(file)
|
const displayedFile = getHtmlElementByFileType(file)
|
||||||
displayedFile.classList.add("preview")
|
displayedFile.classList.add("preview")
|
||||||
@ -522,9 +542,9 @@
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let purpose = row.querySelector("td:nth-child(2)")?.innerHTML.match(/для[^\|]+/g)?.[0].trim()
|
let variant = parsefileInputVariant(row)
|
||||||
|
|
||||||
addDisplayedFile(fileInput, type, fileUrl, preview, deleteUrl, purpose)
|
addDisplayedFile(fileInput, type, fileUrl, preview, deleteUrl, variant)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -672,10 +692,10 @@
|
|||||||
async function sendForm(onSend) {
|
async function sendForm(onSend) {
|
||||||
let formData = new FormData(document.querySelector("form"))
|
let formData = new FormData(document.querySelector("form"))
|
||||||
|
|
||||||
let fileContainers = [...document.querySelectorAll(".file-list-container")]
|
let fileListContainers = [...document.querySelectorAll(".file-list-container")]
|
||||||
let fileInputNames = ["legend_photo", "legend_files", "admin_photo", "admin_files"]
|
let fileInputNames = ["legend_photo", "history_photo", "legend_files", "history_files", "admin_photo", "admin_files"]
|
||||||
for (let [i, fileContainer] of fileContainers.entries()) {
|
for (let [i, fileListContainer] of fileListContainers.entries()) {
|
||||||
formData.set(`cp[${fileInputNames[i]}]`, fileContainer.children.length)
|
formData.set(`cp[${fileInputNames[i]}]`, [...fileListContainer.children].filter(el => !el.classList.contains("file-container-new")).length)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (formData.get("cp[id]") == '') {
|
if (formData.get("cp[id]") == '') {
|
||||||
@ -770,12 +790,13 @@
|
|||||||
for (const link of links) {
|
for (const link of links) {
|
||||||
let shortHref = link.href.split("/").at(-1)
|
let shortHref = link.href.split("/").at(-1)
|
||||||
let fileInput = document.querySelector(`tr:has(a[href$="${shortHref}"]) ~ tr:has(input[type="file"]) input[type="file"]`)
|
let fileInput = document.querySelector(`tr:has(a[href$="${shortHref}"]) ~ tr:has(input[type="file"]) input[type="file"]`)
|
||||||
|
let fileInputVariant = parsefileInputVariant(document.querySelector(`tr:has(a[href$="${shortHref}"])`))
|
||||||
|
|
||||||
link.addEventListener("click", async e => {
|
link.addEventListener("click", async e => {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
if (!confirm("Точно?")) return
|
if (!confirm("Точно?")) return
|
||||||
|
|
||||||
await sendFileDeleted(fileInput.name.split("[")[0])
|
await sendFileDeleted(fileInput.name.split("[")[0], fileInputVariant)
|
||||||
location.href = link.href
|
location.href = link.href
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user