diff --git a/frontend/src/upload.js b/frontend/src/upload.js index 39a7437c..ae63be42 100644 --- a/frontend/src/upload.js +++ b/frontend/src/upload.js @@ -55,7 +55,7 @@ $(document).ready(function() { } else { file = event.target.files[0]; } - const expiration = 24 * 60 * 60 * 1000; //will eventually come from a field + const expiration = 2 * 60 * 1000; //will eventually come from a field const fileSender = new FileSender(file); fileSender.on('progress', percentComplete => { @@ -140,7 +140,7 @@ $(document).ready(function() { btn.classList.add('delete-btn'); link.innerHTML = file.url.trim() + `#${file.secretKey}`.trim(); - + file.creationDate = new Date(file.creationDate); const future = new Date(); @@ -152,30 +152,36 @@ $(document).ready(function() { let hours = Math.floor(minutes / 60); let seconds = Math.floor(countdown / 1000 % 60); - if (hours > 0) { - expiry.innerHTML = hours + 'h'; - window.setInterval(() => { - poll(); - expiry.innerHTML = hours + 'h'; - }, 3600000); - } else if (hours === 0) { - expiry.innerHTML = minutes + 'm' + seconds + 's'; - window.setInterval(() => { - poll(); - expiry.innerHTML = minutes + 'm' + seconds + 's'; - }, 1000); - } + poll(); function poll() { countdown = future.getTime() - new Date().getTime(); minutes = Math.floor(countdown / 1000 / 60); hours = Math.floor(minutes / 60); seconds = Math.floor(countdown / 1000 % 60); + let t; + if (hours > 1) { + expiry.innerHTML = hours + 'h'; + t = window.setTimeout(() => { + poll(); + }, 3600000); + } else if (hours === 1) { + expiry.innerHTML = hours + 'h'; + t = window.setTimeout(() => { + poll(); + }, 60000); + } else if (hours === 0) { + expiry.innerHTML = minutes + 'm' + seconds + 's'; + t = window.setTimeout(() => { + poll(); + }, 1000); + } //remove from list when expired - if (hours === 0 && minutes === 0 && seconds === 0) { + if (countdown <= 0) { localStorage.removeItem(file.fileId); $(expiry).parents('tr').remove(); + window.clearTimeout(t); } }