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;