|
2 | 2 |
|
3 | 3 | (function () {
|
4 | 4 | function parseURL (text) {
|
5 |
| - var xml = new window.DOMParser().parseFromString(text, 'text/xml') |
6 |
| - var tag = xml.getElementsByTagName('Key')[0] |
| 5 | + const xml = new window.DOMParser().parseFromString(text, 'text/xml') |
| 6 | + const tag = xml.getElementsByTagName('Key')[0] |
7 | 7 | return decodeURI(tag.childNodes[0].nodeValue)
|
8 | 8 | }
|
9 | 9 |
|
|
20 | 20 | function request (method, url, data, fileInput, file, form) {
|
21 | 21 | file.loaded = 0
|
22 | 22 | return new Promise(function (resolve, reject) {
|
23 |
| - var xhr = new window.XMLHttpRequest() |
| 23 | + const xhr = new window.XMLHttpRequest() |
24 | 24 |
|
25 | 25 | xhr.onload = function () {
|
26 | 26 | if (xhr.status === 201) {
|
|
31 | 31 | }
|
32 | 32 |
|
33 | 33 | xhr.upload.onprogress = function (e) {
|
34 |
| - var diff = e.loaded - file.loaded |
| 34 | + const diff = e.loaded - file.loaded |
35 | 35 | form.loaded += diff
|
36 | 36 | fileInput.loaded += diff
|
37 | 37 | file.loaded = e.loaded
|
38 |
| - var defaultEventData = { |
| 38 | + const defaultEventData = { |
39 | 39 | currentFile: file,
|
40 | 40 | currentFileName: file.name,
|
41 | 41 | currentFileProgress: Math.min(e.loaded / e.total, 1),
|
|
67 | 67 | }
|
68 | 68 |
|
69 | 69 | function uploadFiles (form, fileInput, name) {
|
70 |
| - var url = fileInput.getAttribute('data-url') |
| 70 | + const url = fileInput.getAttribute('data-url') |
71 | 71 | fileInput.loaded = 0
|
72 | 72 | fileInput.total = 0
|
73 |
| - var promises = Array.from(fileInput.files).map(function (file) { |
| 73 | + const promises = Array.from(fileInput.files).map(function (file) { |
74 | 74 | form.total += file.size
|
75 | 75 | fileInput.total += file.size
|
76 |
| - var s3Form = new window.FormData() |
| 76 | + const s3Form = new window.FormData() |
77 | 77 | Array.from(fileInput.attributes).forEach(function (attr) {
|
78 |
| - var name = attr.name |
| 78 | + let name = attr.name |
79 | 79 |
|
80 | 80 | if (name.startsWith('data-fields')) {
|
81 | 81 | name = name.replace('data-fields-', '')
|
|
89 | 89 | })
|
90 | 90 | Promise.all(promises).then(function (results) {
|
91 | 91 | results.forEach(function (result) {
|
92 |
| - var hiddenFileInput = document.createElement('input') |
| 92 | + const hiddenFileInput = document.createElement('input') |
93 | 93 | hiddenFileInput.type = 'hidden'
|
94 | 94 | hiddenFileInput.name = name
|
95 | 95 | hiddenFileInput.value = parseURL(result)
|
|
105 | 105 | }
|
106 | 106 |
|
107 | 107 | function uploadS3Inputs (event) {
|
108 |
| - |
109 | 108 | event.preventDefault()
|
110 | 109 |
|
111 |
| - var form = event.target |
112 |
| - var submitter = event.submitter |
| 110 | + const form = event.target |
| 111 | + const submitter = event.submitter |
113 | 112 |
|
114 | 113 | window.uploading = 0
|
115 | 114 | form.loaded = 0
|
116 | 115 | form.total = 0
|
117 |
| - var inputs = Array.from(form.querySelectorAll('input[type=file].s3file')) |
| 116 | + const inputs = Array.from(form.querySelectorAll('input[type=file].s3file')) |
118 | 117 |
|
119 | 118 | inputs.forEach(function (input) {
|
120 |
| - var hiddenS3Input = document.createElement('input') |
| 119 | + const hiddenS3Input = document.createElement('input') |
121 | 120 | hiddenS3Input.type = 'hidden'
|
122 | 121 | hiddenS3Input.name = 's3file'
|
123 | 122 | hiddenS3Input.value = input.name
|
124 | 123 | form.appendChild(hiddenS3Input)
|
125 |
| - var hiddenSignatureInput = document.createElement('input') |
| 124 | + const hiddenSignatureInput = document.createElement('input') |
126 | 125 | hiddenSignatureInput.type = 'hidden'
|
127 | 126 | hiddenSignatureInput.name = input.name + '-s3f-signature'
|
128 | 127 | hiddenSignatureInput.value = input.dataset.s3fSignature
|
|
134 | 133 | })
|
135 | 134 |
|
136 | 135 | if (submitter) {
|
137 |
| - // override form attributes with submit button attributes |
138 |
| - form.action = submitter.getAttribute('formaction') || form.action |
139 |
| - form.method = submitter.getAttribute('formmethod') || form.method |
140 |
| - form.enctype = submitter.getAttribute('formEnctype') || form.enctype |
141 |
| - form.novalidate = submitter.getAttribute('formnovalidate') || form.novalidate |
142 |
| - form.target = submitter.getAttribute('formtarget') || form.target |
143 |
| - // add submit button value to form |
144 |
| - var submitInput = document.createElement('input') |
145 |
| - submitInput.type = 'hidden' |
146 |
| - submitInput.value = submitter.value || '1' |
147 |
| - submitInput.name = submitter.name |
148 |
| - form.appendChild(submitInput) |
| 136 | + // override form attributes with submit button attributes |
| 137 | + form.action = submitter.getAttribute('formaction') || form.action |
| 138 | + form.method = submitter.getAttribute('formmethod') || form.method |
| 139 | + form.enctype = submitter.getAttribute('formEnctype') || form.enctype |
| 140 | + form.novalidate = submitter.getAttribute('formnovalidate') || form.novalidate |
| 141 | + form.target = submitter.getAttribute('formtarget') || form.target |
| 142 | + // add submit button value to form |
| 143 | + const submitInput = document.createElement('input') |
| 144 | + submitInput.type = 'hidden' |
| 145 | + submitInput.value = submitter.value || '1' |
| 146 | + submitInput.name = submitter.name |
| 147 | + form.appendChild(submitInput) |
149 | 148 | }
|
150 | 149 |
|
151 | 150 | waitForAllFiles(form)
|
152 | 151 | }
|
153 | 152 |
|
154 | 153 | document.addEventListener('DOMContentLoaded', function () {
|
155 |
| - var forms = Array.from(document.querySelectorAll('input[type=file].s3file')).map(function (input) { |
| 154 | + let forms = Array.from(document.querySelectorAll('input[type=file].s3file')).map(function (input) { |
156 | 155 | return input.closest('form')
|
157 | 156 | })
|
158 | 157 | forms = new Set(forms)
|
|
0 commit comments