@@ -69,15 +69,12 @@ async function upload() {
69
69
const fileUploadStatus = document . getElementById ( 'fileUploadStatus' )
70
70
fileUploadStatus . innerText = '0%'
71
71
progressBar . style . height = '30px'
72
- let completed = true
73
72
const file = x . files [ 0 ]
74
73
if ( file ) {
75
74
const numberOfChunks = Math . ceil ( file . size / chunkSize )
76
75
77
76
for ( let i = 0 ; i < numberOfChunks ; i ++ ) {
78
77
if ( cancelled === true ) {
79
- completed = false
80
- alert ( 'Upload cancelled' )
81
78
break
82
79
}
83
80
const chunkStart = chunkSize * i
@@ -104,11 +101,13 @@ async function upload() {
104
101
displayError ( new Error ( error ) )
105
102
}
106
103
if ( typeof res ?. dirlist === 'object' ) {
107
- fileUploadStatus . innerText = `Uploaded: ${ bytesToSize (
108
- chunkEnd
109
- ) } (${ status } )`
110
- barStatus . style . width = status
111
- populateTable ( res . dirlist )
104
+ if ( ! cancelled ) {
105
+ fileUploadStatus . innerText = `Uploaded: ${ bytesToSize (
106
+ chunkEnd
107
+ ) } (${ status } )`
108
+ barStatus . style . width = status
109
+ populateTable ( res . dirlist )
110
+ }
112
111
} else {
113
112
displayError ( new Error ( 'Response does not contain dir list' ) )
114
113
}
@@ -139,15 +138,18 @@ async function upload() {
139
138
)
140
139
}
141
140
}
142
- setTimeout ( function ( ) {
143
- if ( completed ) {
144
- alert ( 'Successfully Uploaded' )
145
- }
146
- resetPage ( )
147
- } , 10 )
141
+ requestFinished ( )
148
142
}
149
143
}
150
144
145
+ function requestFinished ( ) {
146
+ const cancelButton = document . getElementById ( 'cancel' )
147
+ cancelButton . innerText = 'Reset'
148
+ cancelButton . removeEventListener ( 'click' , cancel )
149
+ cancelButton . addEventListener ( 'click' , resetPage )
150
+ cancelButton . disabled = false
151
+ }
152
+
151
153
function cancel ( ) {
152
154
console . log ( 'upload cancelled' )
153
155
const cancelButton = document . getElementById ( 'cancel' )
@@ -156,26 +158,31 @@ function cancel() {
156
158
}
157
159
158
160
function resetPage ( ) {
161
+ const cancelButton = document . getElementById ( 'cancel' )
162
+ cancelButton . disabled = true
163
+ cancelButton . removeEventListener ( 'click' , resetPage )
164
+ cancelButton . addEventListener ( 'click' , cancel )
165
+ cancelButton . innerText = 'Cancel'
159
166
document . getElementById ( 'upload' ) . disabled = true
160
- document . getElementById ( 'cancel' ) . disabled = true
161
167
document . getElementById ( 'filestatus' ) . innerHTML = 'Select file to upload.'
168
+ document . getElementById ( 'filePath' ) . value = ''
162
169
document . getElementById ( 'myfile' ) . value = ''
163
170
document . getElementById ( 'progressBar' ) . style . height = '0px'
164
171
document . getElementById ( 'barStatus' ) . style . width = '0%'
165
172
document . getElementById ( 'fileUploadStatus' ) . innerText = ''
166
173
document . getElementById ( 'dirlist' ) . style . display = 'none'
167
174
document . getElementById ( 'horizontalLine' ) . style . display = 'none'
175
+ document . getElementById ( 'logTitle' ) . style . display = 'none'
176
+ document . getElementById ( 'log' ) . style . display = 'none'
168
177
cancelled = false
169
178
}
170
179
171
180
function displayError ( err ) {
172
- alert ( 'Error Occurred' )
173
- resetPage ( )
181
+ requestFinished ( )
174
182
const requests = sasjs . getSasRequests ( )
175
183
if ( requests . length > 0 && requests [ 0 ] . logFile ) {
176
184
const logFile = requests [ 0 ] . logFile . replace ( / \n * $ / , '' )
177
185
document . getElementById ( 'horizontalLine' ) . style . display = 'block'
178
- document . getElementById ( 'clearLog' ) . style . display = 'inline-block'
179
186
document . getElementById ( 'logTitle' ) . style . display = 'inline-block'
180
187
const log = document . getElementById ( 'log' )
181
188
log . innerHTML = logFile
@@ -184,13 +191,6 @@ function displayError(err) {
184
191
throw err
185
192
}
186
193
187
- function clearLog ( ) {
188
- document . getElementById ( 'horizontalLine' ) . style . display = 'none'
189
- document . getElementById ( 'logTitle' ) . style . display = 'none'
190
- document . getElementById ( 'log' ) . style . display = 'none'
191
- document . getElementById ( 'clearLog' ) . style . display = 'none'
192
- }
193
-
194
194
function fileChange ( ) {
195
195
const uploadButton = document . getElementById ( 'upload' )
196
196
const filePath = document . getElementById ( 'filePath' ) . value
0 commit comments