|
1 | 1 | 'use strict';
|
2 | 2 |
|
3 |
| -(() => { |
| 3 | +(function () { |
4 | 4 | function parseURL (text) {
|
5 |
| - const xml = new window.DOMParser().parseFromString(text, 'text/xml') |
6 |
| - const tag = xml.getElementsByTagName('Key')[0] |
| 5 | + var xml = new window.DOMParser().parseFromString(text, 'text/xml') |
| 6 | + var tag = xml.getElementsByTagName('Key')[0] |
7 | 7 | return decodeURI(tag.childNodes[0].nodeValue)
|
8 | 8 | }
|
9 | 9 |
|
10 | 10 | function addHiddenInput (body, name, form) {
|
11 |
| - const key = parseURL(body) |
12 |
| - const input = document.createElement('input') |
| 11 | + var key = parseURL(body) |
| 12 | + var input = document.createElement('input') |
13 | 13 | input.type = 'hidden'
|
14 | 14 | input.value = key
|
15 | 15 | input.name = name
|
|
18 | 18 |
|
19 | 19 | function waitForAllFiles (form) {
|
20 | 20 | if (window.uploading !== 0) {
|
21 |
| - setTimeout(() => { |
| 21 | + setTimeout(function () { |
22 | 22 | waitForAllFiles(form)
|
23 | 23 | }, 100)
|
24 | 24 | } else {
|
|
27 | 27 | }
|
28 | 28 |
|
29 | 29 | function request (method, url, data) {
|
30 |
| - return new Promise((resolve, reject) => { |
31 |
| - const xhr = new window.XMLHttpRequest() |
| 30 | + return new Promise(function (resolve, reject) { |
| 31 | + var xhr = new window.XMLHttpRequest() |
32 | 32 | xhr.open(method, url)
|
33 |
| - xhr.onload = () => { |
| 33 | + |
| 34 | + xhr.onload = function () { |
34 | 35 | if (xhr.status === 201) {
|
35 | 36 | resolve(xhr.responseText)
|
36 | 37 | } else {
|
37 | 38 | reject(xhr.statusText)
|
38 | 39 | }
|
39 | 40 | }
|
40 |
| - xhr.onerror = () => { |
| 41 | + |
| 42 | + xhr.onerror = function () { |
41 | 43 | reject(xhr.statusText)
|
42 | 44 | }
|
43 | 45 | xhr.send(data)
|
44 | 46 | })
|
45 | 47 | }
|
46 | 48 |
|
47 | 49 | function uploadFiles (form, fileInput, name) {
|
48 |
| - const url = fileInput.getAttribute('data-url') |
49 |
| - const promises = Array.from(fileInput.files).map((file) => { |
50 |
| - const s3Form = new window.FormData() |
51 |
| - Array.from(fileInput.attributes).forEach(attr => { |
52 |
| - let name = attr.name |
| 50 | + var url = fileInput.getAttribute('data-url') |
| 51 | + var promises = Array.from(fileInput.files).map(function (file) { |
| 52 | + var s3Form = new window.FormData() |
| 53 | + Array.from(fileInput.attributes).forEach(function (attr) { |
| 54 | + var name = attr.name |
| 55 | + |
53 | 56 | if (name.startsWith('data-fields')) {
|
54 | 57 | name = name.replace('data-fields-', '')
|
55 | 58 | s3Form.append(name, attr.value)
|
|
60 | 63 | s3Form.append('file', file)
|
61 | 64 | return request('POST', url, s3Form)
|
62 | 65 | })
|
63 |
| - Promise.all(promises).then((results) => { |
64 |
| - results.forEach((result) => { |
| 66 | + Promise.all(promises).then(function (results) { |
| 67 | + results.forEach(function (result) { |
65 | 68 | addHiddenInput(result, name, form)
|
66 | 69 | })
|
67 |
| - |
68 |
| - const input = document.createElement('input') |
| 70 | + var input = document.createElement('input') |
69 | 71 | input.type = 'hidden'
|
70 | 72 | input.name = 's3file'
|
71 | 73 | input.value = fileInput.name
|
72 | 74 | fileInput.name = ''
|
73 | 75 | form.appendChild(input)
|
74 | 76 | window.uploading -= 1
|
75 |
| - }, (err) => { |
| 77 | + }, function (err) { |
76 | 78 | console.log(err)
|
77 | 79 | fileInput.setCustomValidity(err)
|
78 | 80 | fileInput.reportValidity()
|
79 | 81 | })
|
80 | 82 | }
|
81 | 83 |
|
82 | 84 | function clickSubmit (e) {
|
83 |
| - let submitButton = e.target |
84 |
| - let form = submitButton.closest('form') |
85 |
| - const submitInput = document.createElement('input') |
| 85 | + var submitButton = e.target |
| 86 | + var form = submitButton.closest('form') |
| 87 | + var submitInput = document.createElement('input') |
86 | 88 | submitInput.type = 'hidden'
|
87 | 89 | submitInput.value = submitButton.value || '1'
|
88 | 90 | submitInput.name = submitButton.name
|
|
91 | 93 |
|
92 | 94 | function uploadS3Inputs (form) {
|
93 | 95 | window.uploading = 0
|
94 |
| - const inputs = form.querySelectorAll('.s3file') |
95 |
| - Array.from(inputs).forEach(input => { |
| 96 | + var inputs = form.querySelectorAll('.s3file') |
| 97 | + Array.from(inputs).forEach(function (input) { |
96 | 98 | window.uploading += 1
|
97 | 99 | uploadFiles(form, input, input.name)
|
98 |
| - } |
99 |
| - ) |
| 100 | + }) |
100 | 101 | waitForAllFiles(form)
|
101 | 102 | }
|
102 | 103 |
|
103 |
| - document.addEventListener('DOMContentLoaded', () => { |
104 |
| - let forms = Array.from(document.querySelectorAll('.s3file')).map(input => { |
| 104 | + document.addEventListener('DOMContentLoaded', function () { |
| 105 | + var forms = Array.from(document.querySelectorAll('.s3file')).map(function (input) { |
105 | 106 | return input.closest('form')
|
106 | 107 | })
|
107 | 108 | forms = new Set(forms)
|
108 |
| - forms.forEach(form => { |
109 |
| - form.addEventListener('submit', (e) => { |
| 109 | + forms.forEach(function (form) { |
| 110 | + form.addEventListener('submit', function (e) { |
110 | 111 | e.preventDefault()
|
111 | 112 | uploadS3Inputs(e.target)
|
112 | 113 | })
|
113 |
| - let submitButtons = form.querySelectorAll('input[type=submit], button[type=submit]') |
114 |
| - Array.from(submitButtons).forEach(submitButton => { |
| 114 | + var submitButtons = form.querySelectorAll('input[type=submit], button[type=submit]') |
| 115 | + Array.from(submitButtons).forEach(function (submitButton) { |
115 | 116 | submitButton.addEventListener('click', clickSubmit)
|
116 |
| - } |
117 |
| - ) |
| 117 | + }) |
118 | 118 | })
|
119 | 119 | })
|
120 | 120 | })()
|
0 commit comments