Skip to content

Commit 4b264ce

Browse files
authored
Merge pull request #17 from sasjs/fix-ui
fix: cancel button should behave as reset when request finishes
2 parents a3c988b + 48a5da7 commit 4b264ce

File tree

6 files changed

+115
-116
lines changed

6 files changed

+115
-116
lines changed

.gitpod.dockerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM gitpod/workspace-full
2+
3+
RUN sudo apt-get update \
4+
&& sudo apt-get install -y \
5+
doxygen \
6+
&& sudo rm -rf /var/lib/apt/lists/*

sasjs/utils/copysas9.sh

100644100755
File mode changed.

src/index.html

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,5 @@ <h1>This is a template <span class="code">SASjs</span> app</h1>
8686
<hr id="horizontalLine" style="display: none" />
8787
<h1 id="logTitle" style="display: none">Logs</h1>
8888
<div id="log" style="display: none"></div>
89-
<button id="clearLog" onclick="clearLog()" style="display: none">
90-
Clear
91-
</button>
9289
</body>
9390
</html>

src/scripts.js

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,12 @@ async function upload() {
6969
const fileUploadStatus = document.getElementById('fileUploadStatus')
7070
fileUploadStatus.innerText = '0%'
7171
progressBar.style.height = '30px'
72-
let completed = true
7372
const file = x.files[0]
7473
if (file) {
7574
const numberOfChunks = Math.ceil(file.size / chunkSize)
7675

7776
for (let i = 0; i < numberOfChunks; i++) {
7877
if (cancelled === true) {
79-
completed = false
80-
alert('Upload cancelled')
8178
break
8279
}
8380
const chunkStart = chunkSize * i
@@ -104,11 +101,13 @@ async function upload() {
104101
displayError(new Error(error))
105102
}
106103
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+
}
112111
} else {
113112
displayError(new Error('Response does not contain dir list'))
114113
}
@@ -139,15 +138,18 @@ async function upload() {
139138
)
140139
}
141140
}
142-
setTimeout(function () {
143-
if (completed) {
144-
alert('Successfully Uploaded')
145-
}
146-
resetPage()
147-
}, 10)
141+
requestFinished()
148142
}
149143
}
150144

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+
151153
function cancel() {
152154
console.log('upload cancelled')
153155
const cancelButton = document.getElementById('cancel')
@@ -156,26 +158,31 @@ function cancel() {
156158
}
157159

158160
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'
159166
document.getElementById('upload').disabled = true
160-
document.getElementById('cancel').disabled = true
161167
document.getElementById('filestatus').innerHTML = 'Select file to upload.'
168+
document.getElementById('filePath').value = ''
162169
document.getElementById('myfile').value = ''
163170
document.getElementById('progressBar').style.height = '0px'
164171
document.getElementById('barStatus').style.width = '0%'
165172
document.getElementById('fileUploadStatus').innerText = ''
166173
document.getElementById('dirlist').style.display = 'none'
167174
document.getElementById('horizontalLine').style.display = 'none'
175+
document.getElementById('logTitle').style.display = 'none'
176+
document.getElementById('log').style.display = 'none'
168177
cancelled = false
169178
}
170179

171180
function displayError(err) {
172-
alert('Error Occurred')
173-
resetPage()
181+
requestFinished()
174182
const requests = sasjs.getSasRequests()
175183
if (requests.length > 0 && requests[0].logFile) {
176184
const logFile = requests[0].logFile.replace(/\n*$/, '')
177185
document.getElementById('horizontalLine').style.display = 'block'
178-
document.getElementById('clearLog').style.display = 'inline-block'
179186
document.getElementById('logTitle').style.display = 'inline-block'
180187
const log = document.getElementById('log')
181188
log.innerHTML = logFile
@@ -184,13 +191,6 @@ function displayError(err) {
184191
throw err
185192
}
186193

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-
194194
function fileChange() {
195195
const uploadButton = document.getElementById('upload')
196196
const filePath = document.getElementById('filePath').value

0 commit comments

Comments
 (0)