|
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