clean up & insert new file in the correct place

This commit is contained in:
Zhora Shalyapin 2025-03-13 13:40:26 +00:00
parent cbbbd8e338
commit 047c1046c2

46
main.js
View File

@ -70,7 +70,9 @@
this.content = columns[1].innerHTML this.content = columns[1].innerHTML
.replaceAll("<br>", "") .replaceAll("<br>", "")
.replaceAll(/\s*Перейти к легенде.*$/gs, "") .replaceAll(/\s*Перейти к легенде.*$/gs, "")
.replaceAll("общие (\"c\")", "") .replaceAll(`общие ("c")`, "")
.replaceAll(`("l")`, "")
.replaceAll(`("h")`, "")
.replaceAll("Получить координаты КП из картинки", "") .replaceAll("Получить координаты КП из картинки", "")
.trim() .trim()
} }
@ -371,6 +373,18 @@
return el return el
} }
function getAttachmentIndex(input) {
return input.name.replace(/\D/g, '')
}
function getContainersByVariant(variant, attachmentIndex) {
let from = variant == "l" ? "history" : "legend"
let to = variant == "l" ? "legend" : "history"
let type = attachmentIndex == 1 ? "photo" : "files"
return [document.querySelector(`.${from}-${type}-container`), document.querySelector(`.${to}-${type}-container`)]
}
function makeHandleFilesFunc() { function makeHandleFilesFunc() {
let storedFiles = [] let storedFiles = []
@ -388,7 +402,17 @@
const file = this.files[i] const file = this.files[i]
dt.items.add(file) dt.items.add(file)
let fileListContainer = this.parentElement.parentElement.querySelector(".file-list-container") let variant = this.parentElement.querySelector('input[type="radio"]:checked')?.value
let fileListContainer
if (variant) {
let [_, filesContainer] = getContainersByVariant(variant, getAttachmentIndex(this))
fileListContainer = filesContainer.querySelector(".file-list-container")
}
else {
fileListContainer = this.parentElement.parentElement.querySelector(".file-list-container")
}
let fileContainer = document.createElement("div") let fileContainer = document.createElement("div")
fileContainer.classList.add("file-container", "file-container-new") fileContainer.classList.add("file-container", "file-container-new")
@ -412,7 +436,7 @@
deleteButton.textContent = "x" deleteButton.textContent = "x"
deleteButton.type = "button" deleteButton.type = "button"
deleteButton.addEventListener("click", e => { deleteButton.addEventListener("click", e => {
let index = [...fileListContainer.children].indexOf(fileContainer) let index = [...fileContainer.parentElement.children].indexOf(fileContainer)
if (!confirm("Точно?")) return if (!confirm("Точно?")) return
@ -425,7 +449,7 @@
rdt.items.remove(index) rdt.items.remove(index)
this.files = rdt.files this.files = rdt.files
fileListContainer.removeChild(fileContainer) fileContainer.parentElement.removeChild(fileContainer)
}) })
fileButtonsContainer.appendChild(deleteButton) fileButtonsContainer.appendChild(deleteButton)
@ -550,14 +574,12 @@
function moveNewFilesOnVariantChange() { function moveNewFilesOnVariantChange() {
document.querySelectorAll(`input[name^="new_file_type"]`).forEach(el => el.addEventListener("change", function() { document.querySelectorAll(`input[name^="new_file_type"]`).forEach(el => el.addEventListener("change", function() {
let attachmentIndex = this.name.replace(/\D/g,'') let attachmentIndex = getAttachmentIndex(this)
let from = this.value == "l" ? "history" : "legend" let [from, to] = getContainersByVariant(this.value, attachmentIndex)
let to = this.value == "l" ? "legend" : "history" let newFiles = [...from.querySelectorAll(`.file-container-new`)]
let type = attachmentIndex == 1 ? "photo" : "files"
let newFiles = [...document.querySelectorAll(`.${from}-${type}-container .file-container-new`)]
for (const newFile of newFiles) { for (const newFile of newFiles) {
document.querySelector(`.${to}-${type}-container .file-list-container`).appendChild(newFile) to.querySelector(`.file-list-container`).appendChild(newFile)
} }
})) }))
} }
@ -899,6 +921,10 @@
margin: 0; margin: 0;
} }
input[type=radio] {
margin-right: 5px;
}
input[type="file"] { input[type="file"] {
display: none; display: none;
} }