From 047c1046c2c47a3b1de3e2bf5f8665a090a0d130 Mon Sep 17 00:00:00 2001 From: Zhora Shalyapin Date: Thu, 13 Mar 2025 13:40:26 +0000 Subject: [PATCH] clean up & insert new file in the correct place --- main.js | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/main.js b/main.js index 777d5a9..2f74267 100644 --- a/main.js +++ b/main.js @@ -70,7 +70,9 @@ this.content = columns[1].innerHTML .replaceAll("
", "") .replaceAll(/\s*Перейти к легенде.*$/gs, "") - .replaceAll("общие (\"c\")", "") + .replaceAll(`общие ("c")`, "") + .replaceAll(`("l")`, "") + .replaceAll(`("h")`, "") .replaceAll("Получить координаты КП из картинки", "") .trim() } @@ -371,6 +373,18 @@ 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() { let storedFiles = [] @@ -388,7 +402,17 @@ const file = this.files[i] 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") fileContainer.classList.add("file-container", "file-container-new") @@ -412,7 +436,7 @@ deleteButton.textContent = "x" deleteButton.type = "button" deleteButton.addEventListener("click", e => { - let index = [...fileListContainer.children].indexOf(fileContainer) + let index = [...fileContainer.parentElement.children].indexOf(fileContainer) if (!confirm("Точно?")) return @@ -425,7 +449,7 @@ rdt.items.remove(index) this.files = rdt.files - fileListContainer.removeChild(fileContainer) + fileContainer.parentElement.removeChild(fileContainer) }) fileButtonsContainer.appendChild(deleteButton) @@ -550,14 +574,12 @@ function moveNewFilesOnVariantChange() { 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 to = this.value == "l" ? "legend" : "history" - let type = attachmentIndex == 1 ? "photo" : "files" - let newFiles = [...document.querySelectorAll(`.${from}-${type}-container .file-container-new`)] + let [from, to] = getContainersByVariant(this.value, attachmentIndex) + let newFiles = [...from.querySelectorAll(`.file-container-new`)] 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; } + input[type=radio] { + margin-right: 5px; + } + input[type="file"] { display: none; }