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';
|
||||
|
||||
let fileInputs = {
|
||||
"attachment1": "legend_photo",
|
||||
"attachment4": "legend_files",
|
||||
"attachment1": {
|
||||
"l": "legend_photo",
|
||||
"h": "history_photo"
|
||||
},
|
||||
"attachment4": {
|
||||
"l": "legend_files",
|
||||
"h": "history_files"
|
||||
},
|
||||
"attachment2": "admin_photo",
|
||||
"attachment3": "admin_files"
|
||||
}
|
||||
|
||||
let fileInpitVariants = {
|
||||
"l": "для легенды",
|
||||
"h": "для ист. справки"
|
||||
}
|
||||
|
||||
const localStorageItems = {
|
||||
NEED_UPDATE_ID: "needUpdateId",
|
||||
JUST_CREATED: "justCreated",
|
||||
@ -231,10 +242,11 @@
|
||||
return downloadLink
|
||||
}
|
||||
|
||||
async function sendFileDeleted(inputName) {
|
||||
async function sendFileDeleted(inputName, fileInputVariant = null) {
|
||||
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[${normalInputName}]`, "-1")
|
||||
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
|
||||
|
||||
let fileListContainer
|
||||
if (purpose !== null) {
|
||||
if (variant !== null) {
|
||||
if (inputName == "attachment1" || inputName == "attachment4") {
|
||||
if (purpose == "для легенды") {
|
||||
let fileContainerClassName = fileInputs[inputName].replace("_", "-")
|
||||
if (variant == "l") {
|
||||
let fileContainerClassName = fileInputs[inputName][variant].replace("_", "-")
|
||||
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`)
|
||||
fileListContainer = filesContainer.querySelector(`.file-list-container`)
|
||||
if (fileListContainer == null) {
|
||||
@ -307,7 +327,7 @@
|
||||
if (!confirm("Точно?")) return
|
||||
|
||||
await fetch(removeLink)
|
||||
await sendFileDeleted(inputName)
|
||||
await sendFileDeleted(inputName, variant)
|
||||
removedFilesLinks.push(removeLink)
|
||||
|
||||
fileListContainer.removeChild(fileContainer)
|
||||
@ -371,7 +391,7 @@
|
||||
|
||||
let fileListContainer = this.parentElement.parentElement.querySelector(".file-list-container")
|
||||
let fileContainer = document.createElement("div")
|
||||
fileContainer.classList.add("file-container")
|
||||
fileContainer.classList.add("file-container", "file-container-new")
|
||||
|
||||
const displayedFile = getHtmlElementByFileType(file)
|
||||
displayedFile.classList.add("preview")
|
||||
@ -522,9 +542,9 @@
|
||||
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) {
|
||||
let formData = new FormData(document.querySelector("form"))
|
||||
|
||||
let fileContainers = [...document.querySelectorAll(".file-list-container")]
|
||||
let fileInputNames = ["legend_photo", "legend_files", "admin_photo", "admin_files"]
|
||||
for (let [i, fileContainer] of fileContainers.entries()) {
|
||||
formData.set(`cp[${fileInputNames[i]}]`, fileContainer.children.length)
|
||||
let fileListContainers = [...document.querySelectorAll(".file-list-container")]
|
||||
let fileInputNames = ["legend_photo", "history_photo", "legend_files", "history_files", "admin_photo", "admin_files"]
|
||||
for (let [i, fileListContainer] of fileListContainers.entries()) {
|
||||
formData.set(`cp[${fileInputNames[i]}]`, [...fileListContainer.children].filter(el => !el.classList.contains("file-container-new")).length)
|
||||
}
|
||||
|
||||
if (formData.get("cp[id]") == '') {
|
||||
@ -770,12 +790,13 @@
|
||||
for (const link of links) {
|
||||
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 fileInputVariant = parsefileInputVariant(document.querySelector(`tr:has(a[href$="${shortHref}"])`))
|
||||
|
||||
link.addEventListener("click", async e => {
|
||||
e.preventDefault()
|
||||
if (!confirm("Точно?")) return
|
||||
|
||||
await sendFileDeleted(fileInput.name.split("[")[0])
|
||||
await sendFileDeleted(fileInput.name.split("[")[0], fileInputVariant)
|
||||
location.href = link.href
|
||||
})
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user