From 1006dcb1f5444cc2aff8014fbb67b921cccd169d Mon Sep 17 00:00:00 2001 From: Dinawo Date: Sun, 14 Apr 2024 15:57:58 +0200 Subject: [PATCH] Update DockerCompose.template, Dockerfile, Upload.js, and upload.ejs files --- DockerCompose.template | 13 -------- Dockerfile | 4 +-- docker-compose.yml | 19 ++++++++++++ routes/Dpanel/API/Upload.js | 2 +- views/upload.ejs | 59 +++++++++++++++++++++++++++---------- 5 files changed, 65 insertions(+), 32 deletions(-) delete mode 100644 DockerCompose.template create mode 100644 docker-compose.yml diff --git a/DockerCompose.template b/DockerCompose.template deleted file mode 100644 index 7c0a861..0000000 --- a/DockerCompose.template +++ /dev/null @@ -1,13 +0,0 @@ -version: '3' -services: - app: - image: swiftlogiclabs/cdn-app-insider:latest - ports: - - "5053:5053" - volumes: - - app-data:/app/cdn-app-insider/cdn-files - - app-data:/app/cdn-app-insider/report - - app-data:/app/cdn-app-insider/data - -volumes: - app-data: \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 9f0a578..ecb1282 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM node:14 -WORKDIR /app/cdn-app-insider +WORKDIR /home/cdn-app COPY package*.json ./ @@ -10,4 +10,4 @@ COPY . . EXPOSE 5053 -CMD [ "npm", "start" ] \ No newline at end of file +CMD [ "npm", "start" ] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..fef12ca --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3.8' +services: + cdn-app-insider: + build: + context: . + dockerfile: Dockerfile + restart: unless-stopped + container_name: cdn-app-container + ports: + - "5053:5053" + volumes: + - /home/cdn-app:/home/cdn-app + - cdn-files:/home/cdn-app/cdn-files + - report:/home/cdn-app/report + - data:/home/cdn-app/data +volumes: + cdn-files: + report: + data: \ No newline at end of file diff --git a/routes/Dpanel/API/Upload.js b/routes/Dpanel/API/Upload.js index 2eb9d34..39a8375 100644 --- a/routes/Dpanel/API/Upload.js +++ b/routes/Dpanel/API/Upload.js @@ -84,7 +84,7 @@ router.post('/', authMiddleware, async (req, res) => { await fs.promises.writeFile(path.join(__dirname, '../../../data', 'file_info.json'), JSON.stringify(data, null, 2)); } - res.redirect('/dpanel/dashboard'); + res.status(200).send({ message: 'Votre fichier a été téléchargé avec succès.' }); }); } catch (error) { console.error(error); diff --git a/views/upload.ejs b/views/upload.ejs index d414384..256aa55 100644 --- a/views/upload.ejs +++ b/views/upload.ejs @@ -9,6 +9,7 @@ Upload + @@ -65,19 +66,32 @@ }); uploadForm.addEventListener('submit', (event) => { - event.preventDefault(); + event.preventDefault(); - const fileInput = document.getElementById('fileInput'); - const file = fileInput.files[0]; - const expiryDate = document.getElementById('expiryDate').value; - const password = document.getElementById('password').value; - const formData = new FormData(); - formData.append('file', file); - formData.append('expiryDate', expiryDate); - formData.append('password', password); + const fileInput = document.getElementById('fileInput'); + const file = fileInput.files[0]; - const xhr = new XMLHttpRequest(); - xhr.open('POST', '/api/dpanel/upload', true); + if (!file) { + Swal.fire({ + position: 'top', + icon: 'error', + title: 'Veuillez sélectionner \nun fichier avant de soumettre.', + showConfirmButton: false, + timer: 1800, + toast: true, + }); + return; + } + + const expiryDate = document.getElementById('expiryDate').value; + const password = document.getElementById('password').value; + const formData = new FormData(); + formData.append('file', file); + formData.append('expiryDate', expiryDate); + formData.append('password', password); + + const xhr = new XMLHttpRequest(); + xhr.open('POST', '/api/dpanel/upload', true); xhr.upload.onprogress = (event) => { if (event.lengthComputable) { @@ -88,17 +102,30 @@ }; xhr.onload = () => { if (xhr.status === 200) { - const response = JSON.parse(xhr.responseText); - const fileLink = response.fileLink; - window.location.href = '/dpanel/upload-success'; + Swal.fire({ + position: 'top', + icon: 'success', + title: 'Votre fichier a été téléchargé avec succès.', + showConfirmButton: false, + timer: 1800, + toast: true, + }); } else { - console.error('Erreur lors du téléchargement du fichier.', xhr.status); + Swal.fire({ + position: 'top', + icon: 'error', + title: 'Erreur lors du téléchargement du fichier.', + showConfirmButton: false, + timer: 1800, + toast: true, + }); + console.error('Erreur lors du téléchargement du fichier.', xhr.status, xhr.responseText); } }; xhr.send(formData); }); - + function calculateRemainingTime(loaded, total, timeStamp) { const bytesPerSecond = loaded / (timeStamp / 1000); const remainingBytes = total - loaded;