add history files
This commit is contained in:
parent
4558894282
commit
c455d28735
70
main.js
70
main.js
@ -38,13 +38,12 @@
|
|||||||
let removedFilesLinks = []
|
let removedFilesLinks = []
|
||||||
|
|
||||||
class Property {
|
class Property {
|
||||||
id;
|
|
||||||
name;
|
name;
|
||||||
content;
|
content;
|
||||||
desc;
|
desc;
|
||||||
|
|
||||||
constructor(id, row) {
|
constructor(row = null) {
|
||||||
this.id = id
|
if (row == null) return
|
||||||
|
|
||||||
let columns = [...row.querySelectorAll('td, th')].map(el => el.cloneNode(true))
|
let columns = [...row.querySelectorAll('td, th')].map(el => el.cloneNode(true))
|
||||||
if (columns.length === 1) {
|
if (columns.length === 1) {
|
||||||
@ -60,9 +59,7 @@
|
|||||||
this.content = columns[1].innerHTML
|
this.content = columns[1].innerHTML
|
||||||
.replaceAll("<br>", "")
|
.replaceAll("<br>", "")
|
||||||
.replaceAll(/\s*Перейти к легенде.*$/gs, "")
|
.replaceAll(/\s*Перейти к легенде.*$/gs, "")
|
||||||
.replaceAll("для легенды (\"l\")", "")
|
|
||||||
.replaceAll("общие (\"c\")", "")
|
.replaceAll("общие (\"c\")", "")
|
||||||
.replaceAll("для ист. справки (\"h\")", "")
|
|
||||||
.replaceAll("Получить координаты КП из картинки", "")
|
.replaceAll("Получить координаты КП из картинки", "")
|
||||||
.trim()
|
.trim()
|
||||||
}
|
}
|
||||||
@ -78,7 +75,7 @@
|
|||||||
desc = desc ? "<div class='desc-icon-container' title='" + desc + "'>" +
|
desc = desc ? "<div class='desc-icon-container' title='" + desc + "'>" +
|
||||||
"<img class='desc-icon' src='data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgo8c3ZnIGlkPSJzdmcyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjAwIiB3aWR0aD0iMjAwIiB2ZXJzaW9uPSIxLjAiPgogPHBhdGggaWQ9InBhdGgyMzgyIiBkPSJtMTY1LjMzIDExMy40NGExMDMuNjEgMTAzLjYxIDAgMSAxIC0yMDcuMjIgMCAxMDMuNjEgMTAzLjYxIDAgMSAxIDIwNy4yMiAweiIgdHJhbnNmb3JtPSJtYXRyaXgoLjkzNzM5IDAgMCAuOTM3MzkgNDIuMTQzIC02LjMzOTIpIiBzdHJva2Utd2lkdGg9IjAiIGZpbGw9IiNmZmYiLz4KIDxnIGlkPSJsYXllcjEiPgogIDxwYXRoIGlkPSJwYXRoMjQxMyIgZD0ibTEwMCAwYy01NS4yIDAtMTAwIDQ0LjgtMTAwIDEwMC01LjA0OTVlLTE1IDU1LjIgNDQuOCAxMDAgMTAwIDEwMHMxMDAtNDQuOCAxMDAtMTAwLTQ0LjgtMTAwLTEwMC0xMDB6bTAgMTIuODEyYzQ4LjEzIDAgODcuMTkgMzkuMDU4IDg3LjE5IDg3LjE4OHMtMzkuMDYgODcuMTktODcuMTkgODcuMTktODcuMTg4LTM5LjA2LTg3LjE4OC04Ny4xOSAzOS4wNTgtODcuMTg4IDg3LjE4OC04Ny4xODh6bTEuNDcgMjEuMjVjLTUuNDUgMC4wMy0xMC42NTMgMC43MzctMTUuMjgyIDIuMDYzLTQuNjk5IDEuMzQ2LTkuMTI2IDMuNDg0LTEyLjg3NiA2LjIxOS0zLjIzOCAyLjM2Mi02LjMzMyA1LjM5MS04LjY4NyA4LjUzMS00LjE1OSA1LjU0OS02LjQ2MSAxMS42NTEtNy4wNjMgMTguNjg3LTAuMDQgMC40NjgtMC4wNyAwLjg2OC0wLjA2MiAwLjg3NiAwLjAxNiAwLjAxNiAyMS43MDIgMi42ODcgMjEuODEyIDIuNjg3IDAuMDUzIDAgMC4xMTMtMC4yMzQgMC4yODItMC45MzcgMS45NDEtOC4wODUgNS40ODYtMTMuNTIxIDEwLjk2OC0xNi44MTMgNC4zMi0yLjU5NCA5LjgwOC0zLjYxMiAxNS43NzgtMi45NjkgMi43NCAwLjI5NSA1LjIxIDAuOTYgNy4zOCAyIDIuNzEgMS4zMDEgNS4xOCAzLjM2MSA2Ljk0IDUuODEzIDEuNTQgMi4xNTYgMi40NiA0LjU4NCAyLjc1IDcuMzEyIDAuMDggMC43NTkgMC4wNSAyLjQ4LTAuMDMgMy4yMTktMC4yMyAxLjgyNi0wLjcgMy4zNzgtMS41IDQuOTY5LTAuODEgMS41OTctMS40OCAyLjUxNC0yLjc2IDMuODEyLTIuMDMgMi4wNzctNS4xOCA0LjgyOS0xMC43OCA5LjQwNy0zLjYgMi45NDQtNi4wNCA1LjE1Ni04LjEyIDcuMzQzLTQuOTQzIDUuMTc5LTcuMTkxIDkuMDY5LTguNTY0IDE0LjcxOS0wLjkwNSAzLjcyLTEuMjU2IDcuNTUtMS4xNTYgMTMuMTkgMC4wMjUgMS40IDAuMDYyIDIuNzMgMC4wNjIgMi45N3YwLjQzaDIxLjU5OGwwLjAzLTIuNGMwLjAzLTMuMjcgMC4yMS01LjM3IDAuNTYtNy40MSAwLjU3LTMuMjcgMS40My01IDMuOTQtNy44MSAxLjYtMS44IDMuNy0zLjc2IDYuOTMtNi40NyA0Ljc3LTMuOTkxIDguMTEtNi45OSAxMS4yNi0xMC4xMjUgNC45MS00LjkwNyA3LjQ2LTguMjYgOS4yOC0xMi4xODcgMS40My0zLjA5MiAyLjIyLTYuMTY2IDIuNDYtOS41MzIgMC4wNi0wLjgxNiAwLjA3LTMuMDMgMC0zLjk2OC0wLjQ1LTcuMDQzLTMuMS0xMy4yNTMtOC4xNS0xOS4wMzItMC44LTAuOTA5LTIuNzgtMi44ODctMy43Mi0zLjcxOC00Ljk2LTQuMzk0LTEwLjY5LTcuMzUzLTE3LjU2LTkuMDk0LTQuMTktMS4wNjItOC4yMy0xLjYtMTMuMzUtMS43NS0wLjc4LTAuMDIzLTEuNTktMC4wMzYtMi4zNy0wLjAzMnptLTEwLjkwOCAxMDMuNnYyMmgyMS45OTh2LTIyaC0yMS45OTh6Ii8+CiA8L2c+Cjwvc3ZnPgo='/>" +
|
"<img class='desc-icon' src='data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgo8c3ZnIGlkPSJzdmcyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjAwIiB3aWR0aD0iMjAwIiB2ZXJzaW9uPSIxLjAiPgogPHBhdGggaWQ9InBhdGgyMzgyIiBkPSJtMTY1LjMzIDExMy40NGExMDMuNjEgMTAzLjYxIDAgMSAxIC0yMDcuMjIgMCAxMDMuNjEgMTAzLjYxIDAgMSAxIDIwNy4yMiAweiIgdHJhbnNmb3JtPSJtYXRyaXgoLjkzNzM5IDAgMCAuOTM3MzkgNDIuMTQzIC02LjMzOTIpIiBzdHJva2Utd2lkdGg9IjAiIGZpbGw9IiNmZmYiLz4KIDxnIGlkPSJsYXllcjEiPgogIDxwYXRoIGlkPSJwYXRoMjQxMyIgZD0ibTEwMCAwYy01NS4yIDAtMTAwIDQ0LjgtMTAwIDEwMC01LjA0OTVlLTE1IDU1LjIgNDQuOCAxMDAgMTAwIDEwMHMxMDAtNDQuOCAxMDAtMTAwLTQ0LjgtMTAwLTEwMC0xMDB6bTAgMTIuODEyYzQ4LjEzIDAgODcuMTkgMzkuMDU4IDg3LjE5IDg3LjE4OHMtMzkuMDYgODcuMTktODcuMTkgODcuMTktODcuMTg4LTM5LjA2LTg3LjE4OC04Ny4xOSAzOS4wNTgtODcuMTg4IDg3LjE4OC04Ny4xODh6bTEuNDcgMjEuMjVjLTUuNDUgMC4wMy0xMC42NTMgMC43MzctMTUuMjgyIDIuMDYzLTQuNjk5IDEuMzQ2LTkuMTI2IDMuNDg0LTEyLjg3NiA2LjIxOS0zLjIzOCAyLjM2Mi02LjMzMyA1LjM5MS04LjY4NyA4LjUzMS00LjE1OSA1LjU0OS02LjQ2MSAxMS42NTEtNy4wNjMgMTguNjg3LTAuMDQgMC40NjgtMC4wNyAwLjg2OC0wLjA2MiAwLjg3NiAwLjAxNiAwLjAxNiAyMS43MDIgMi42ODcgMjEuODEyIDIuNjg3IDAuMDUzIDAgMC4xMTMtMC4yMzQgMC4yODItMC45MzcgMS45NDEtOC4wODUgNS40ODYtMTMuNTIxIDEwLjk2OC0xNi44MTMgNC4zMi0yLjU5NCA5LjgwOC0zLjYxMiAxNS43NzgtMi45NjkgMi43NCAwLjI5NSA1LjIxIDAuOTYgNy4zOCAyIDIuNzEgMS4zMDEgNS4xOCAzLjM2MSA2Ljk0IDUuODEzIDEuNTQgMi4xNTYgMi40NiA0LjU4NCAyLjc1IDcuMzEyIDAuMDggMC43NTkgMC4wNSAyLjQ4LTAuMDMgMy4yMTktMC4yMyAxLjgyNi0wLjcgMy4zNzgtMS41IDQuOTY5LTAuODEgMS41OTctMS40OCAyLjUxNC0yLjc2IDMuODEyLTIuMDMgMi4wNzctNS4xOCA0LjgyOS0xMC43OCA5LjQwNy0zLjYgMi45NDQtNi4wNCA1LjE1Ni04LjEyIDcuMzQzLTQuOTQzIDUuMTc5LTcuMTkxIDkuMDY5LTguNTY0IDE0LjcxOS0wLjkwNSAzLjcyLTEuMjU2IDcuNTUtMS4xNTYgMTMuMTkgMC4wMjUgMS40IDAuMDYyIDIuNzMgMC4wNjIgMi45N3YwLjQzaDIxLjU5OGwwLjAzLTIuNGMwLjAzLTMuMjcgMC4yMS01LjM3IDAuNTYtNy40MSAwLjU3LTMuMjcgMS40My01IDMuOTQtNy44MSAxLjYtMS44IDMuNy0zLjc2IDYuOTMtNi40NyA0Ljc3LTMuOTkxIDguMTEtNi45OSAxMS4yNi0xMC4xMjUgNC45MS00LjkwNyA3LjQ2LTguMjYgOS4yOC0xMi4xODcgMS40My0zLjA5MiAyLjIyLTYuMTY2IDIuNDYtOS41MzIgMC4wNi0wLjgxNiAwLjA3LTMuMDMgMC0zLjk2OC0wLjQ1LTcuMDQzLTMuMS0xMy4yNTMtOC4xNS0xOS4wMzItMC44LTAuOTA5LTIuNzgtMi44ODctMy43Mi0zLjcxOC00Ljk2LTQuMzk0LTEwLjY5LTcuMzUzLTE3LjU2LTkuMDk0LTQuMTktMS4wNjItOC4yMy0xLjYtMTMuMzUtMS43NS0wLjc4LTAuMDIzLTEuNTktMC4wMzYtMi4zNy0wLjAzMnptLTEwLjkwOCAxMDMuNnYyMmgyMS45OTh2LTIyaC0yMS45OTh6Ii8+CiA8L2c+Cjwvc3ZnPgo='/>" +
|
||||||
"</div>" : ""
|
"</div>" : ""
|
||||||
div.innerHTML = "<label for=''>" + (altName ?? this.name ?? "") + "</label>" + "<div>" + this.content + "</div>" +
|
div.innerHTML = "<label for=''>" + (altName ?? this.name ?? "") + "</label>" + "<div>" + (this.content ?? "") + "</div>" +
|
||||||
desc
|
desc
|
||||||
return div
|
return div
|
||||||
}
|
}
|
||||||
@ -88,8 +85,16 @@
|
|||||||
let container = document.createElement('div')
|
let container = document.createElement('div')
|
||||||
container.classList.add(...classList.split(" "))
|
container.classList.add(...classList.split(" "))
|
||||||
for (const options of data) {
|
for (const options of data) {
|
||||||
let prop = new Property(options.index, rows[options.index])
|
let div
|
||||||
container.appendChild(prop.toDiv(options.name, options.desc))
|
if (options.index != null) {
|
||||||
|
let prop = new Property(rows[options.index])
|
||||||
|
div = prop.toDiv(options.name, options.desc)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
let prop = new Property()
|
||||||
|
div = prop.toDiv(options.name)
|
||||||
|
}
|
||||||
|
container.appendChild(div)
|
||||||
}
|
}
|
||||||
|
|
||||||
return container
|
return container
|
||||||
@ -241,11 +246,30 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addDisplayedFile(inputName, type, file, preview, removeLink) {
|
function addDisplayedFile(inputName, type, file, preview, removeLink, purpose = null) {
|
||||||
if (!inputName || !file || !removeLink) return
|
if (!inputName || !file || !removeLink) return
|
||||||
|
|
||||||
|
let fileListContainer
|
||||||
|
if (purpose !== null) {
|
||||||
|
if (inputName == "attachment1" || inputName == "attachment4") {
|
||||||
|
if (purpose == "для легенды") {
|
||||||
|
let fileContainerClassName = fileInputs[inputName].replace("_", "-")
|
||||||
|
fileListContainer = document.querySelector(`.${fileContainerClassName}-container .file-list-container`)
|
||||||
|
}
|
||||||
|
else if (purpose == "для ист. справки") {
|
||||||
|
let filesContainer = document.querySelector(inputName == "attachment1" ? `.history-photo-container` : `.history-files-container`)
|
||||||
|
fileListContainer = filesContainer.querySelector(`.file-list-container`)
|
||||||
|
if (fileListContainer == null) {
|
||||||
|
fileListContainer = document.createElement("div")
|
||||||
|
fileListContainer.classList.add("file-list-container")
|
||||||
|
filesContainer.appendChild(fileListContainer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let input = document.querySelector(`input[name="${inputName}\[\]"]`)
|
let input = document.querySelector(`input[name="${inputName}\[\]"]`)
|
||||||
let fileListContainer = input.parentElement.parentElement.querySelector(".file-list-container")
|
fileListContainer ??= input.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")
|
||||||
|
|
||||||
@ -498,7 +522,9 @@
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
addDisplayedFile(fileInput, type, fileUrl, preview, deleteUrl)
|
let purpose = row.querySelector("td:nth-child(2)")?.innerHTML.match(/для[^\|]+/g)[0].trim()
|
||||||
|
|
||||||
|
addDisplayedFile(fileInput, type, fileUrl, preview, deleteUrl, purpose)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1006,7 +1032,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.files-container input[type=radio] {
|
.files-container input[type=radio][value="c"] {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1230,7 +1256,7 @@
|
|||||||
])
|
])
|
||||||
|
|
||||||
let copyLink = document.createElement("div")
|
let copyLink = document.createElement("div")
|
||||||
copyLink.innerHTML = new Property(2, rows[2]).desc
|
copyLink.innerHTML = new Property(rows[2]).desc
|
||||||
headerContainer.append(copyLink)
|
headerContainer.append(copyLink)
|
||||||
|
|
||||||
/* TOP BUTTONS */
|
/* TOP BUTTONS */
|
||||||
@ -1403,27 +1429,37 @@
|
|||||||
let legendFilesContainer = document.createElement("div")
|
let legendFilesContainer = document.createElement("div")
|
||||||
legendFilesContainer.classList.add("legend-container__files")
|
legendFilesContainer.classList.add("legend-container__files")
|
||||||
|
|
||||||
let imagesForLegendContainer = createFrom(rows, "files-container", [
|
let imagesForLegendContainer = createFrom(rows, "files-container legend-photo-container", [
|
||||||
{ index: 23, name: "Фото в легенде" }
|
{ index: 23, name: "Фото в легенде" }
|
||||||
])
|
])
|
||||||
legendFilesContainer.appendChild(imagesForLegendContainer)
|
legendFilesContainer.appendChild(imagesForLegendContainer)
|
||||||
|
|
||||||
let audioForLegendContainer = createFrom(rows, "files-container", [
|
let imagesForHistoryContainer = createFrom(rows, "files-container history-photo-container", [
|
||||||
|
{ name: "Фото для ИС" }
|
||||||
|
])
|
||||||
|
legendFilesContainer.appendChild(imagesForHistoryContainer)
|
||||||
|
|
||||||
|
let audioForLegendContainer = createFrom(rows, "files-container legend-files-container", [
|
||||||
{ index: 27, name: "Файлы в легенде" }
|
{ index: 27, name: "Файлы в легенде" }
|
||||||
])
|
])
|
||||||
legendFilesContainer.appendChild(audioForLegendContainer)
|
legendFilesContainer.appendChild(audioForLegendContainer)
|
||||||
|
|
||||||
|
let audioForHistoryContainer = createFrom(rows, "files-container history-files-container", [
|
||||||
|
{ name: "Файлы для ИС" }
|
||||||
|
])
|
||||||
|
legendFilesContainer.appendChild(audioForHistoryContainer)
|
||||||
|
|
||||||
legendContainer.appendChild(legendFilesContainer)
|
legendContainer.appendChild(legendFilesContainer)
|
||||||
|
|
||||||
let adminFilesContainer = document.createElement('div')
|
let adminFilesContainer = document.createElement('div')
|
||||||
adminFilesContainer.classList.add('admin-files-container')
|
adminFilesContainer.classList.add('admin-files-container')
|
||||||
|
|
||||||
let imagesForAdminContainer = createFrom(rows, "files-container", [
|
let imagesForAdminContainer = createFrom(rows, "files-container admin-photo-container", [
|
||||||
{ index: 31, name: "Фото в админке" }
|
{ index: 31, name: "Фото в админке" }
|
||||||
])
|
])
|
||||||
adminFilesContainer.appendChild(imagesForAdminContainer)
|
adminFilesContainer.appendChild(imagesForAdminContainer)
|
||||||
|
|
||||||
let audioForAdminContainer = createFrom(rows, "files-container", [
|
let audioForAdminContainer = createFrom(rows, "files-container admin-files-container", [
|
||||||
{ index: 35, name: "Файлы в админке" }
|
{ index: 35, name: "Файлы в админке" }
|
||||||
])
|
])
|
||||||
adminFilesContainer.appendChild(audioForAdminContainer)
|
adminFilesContainer.appendChild(audioForAdminContainer)
|
||||||
|
Loading…
Reference in New Issue
Block a user