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