diff --git a/public/templates/cv.html b/public/templates/cv.html
index 0ee4ade..e1fa496 100644
--- a/public/templates/cv.html
+++ b/public/templates/cv.html
@@ -89,8 +89,8 @@
-
Image : NAMTEST.png
-
+
Image : NULL_NAME
+
@@ -120,6 +120,10 @@
const projectAddConfirm = document.getElementById("cv-project-add-confirm")
const projectAddInfo = document.getElementById("cv-project-add-info")
+ const projectUploadFile = document.getElementById("cv-upload-file")
+ const projectUploadBtn = document.getElementById("cv-upload-btn")
+ const projectUploadName = document.getElementById("cv-upload-name")
+
var sectionSelectedMD = null;
var projectSelectedMD = null;
@@ -130,6 +134,8 @@
projectAddInfo.innerHTML = ""
+
+
const refusedChar = ['\\','/' ,':' ,'*','?' ,'"','<','>','|']
var wrongName = true;
@@ -171,12 +177,48 @@
projectDialog.close()
getProjects(projectSelector)
loadText(projectTextArea, projectAddInput.value)
+ projectSelector.value = projectAddInput.value
}
}
}
+ if(projectUploadFile.files.length > 0) {
+
+ const file_acc = new FormData();
+ file_acc.append("apic", projectUploadFile.files[0])
+
+ fetch('/upload', {
+ method: 'POST',
+ mode:"cors",
+ cache:"no-cache",
+ credentials:"same-origin",
+ headers: {
+ "uploadforproject": projectAddInput.value
+
+ },
+ referrerPolicy:"no-referrer",
+ redirect: 'follow',
+ body: file_acc
+ }).then(response => response.json())
+ .then(response => resupload(response))
+
+ function resupload(response) {
+
+
+ if(response.result == "ERROR") {
+ projectInfo.innerHTML = "L'image n'a pas été upload !"
+
+
+ }
+
+
+
+ }
+
+ }
+
@@ -190,6 +232,23 @@
projectDialog.showModal()
+ projectAddInput.value = ""
+ projectUploadName.innerHTML = "Aucune image."
+ projectUploadFile.value = null;
+
+
+ })
+
+ projectUploadFile.addEventListener("change", () => {
+
+ projectUploadName.innerHTML = projectUploadFile.files[0].name
+
+ })
+
+
+ projectUploadBtn.addEventListener("click", () => {
+
+ projectUploadFile.click()
})
projectDelete.addEventListener("click", () => {
diff --git a/routes/cv.js b/routes/cv.js
index 8abeb1e..329caa8 100644
--- a/routes/cv.js
+++ b/routes/cv.js
@@ -428,7 +428,15 @@ router.post("/", function(req, res, next) {
fs.readdirSync("../MD_TEST/project/").forEach((file) => {
- allProject.push((file).replace(".md", ""))
+
+ if(fs.statSync("../MD_TEST/project/" + file).isDirectory()) {
+ console.log(file)
+
+ } else {
+ allProject.push((file).replace(".md", ""))
+ }
+
+
})
@@ -513,7 +521,7 @@ router.post("/", function(req, res, next) {
} else {
- fs.writeFile(projectFolder + bod.value + ".md", "**" + bod.value + "**" ,(err) => {
+ fs.writeFile("../MD_TEST/project/" + bod.value + ".md", "**" + bod.value + "**" ,(err) => {
if(err) {
res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"})
diff --git a/routes/upload.js b/routes/upload.js
index cc75f1f..b98d742 100644
--- a/routes/upload.js
+++ b/routes/upload.js
@@ -164,6 +164,42 @@ router.post("/", function(req, res, next) {
+ } else if(req.headers.uploadforproject != null) {
+
+ const projectFolder = "/home/gitlab-ci/cv/dashboard-raphael/public/images/"
+
+ if(fs.existsSync(projectFolder)) {
+
+ image.mv(projectFolder + req.headers.uploadforproject + ".png", (error) => {
+
+ if(error) {
+ res.send({"result":"ERROR"})
+
+ } else {
+
+ res.send({"result":"SUCCESS"})
+ }
+ })
+
+
+ } else {
+
+ const mdtestfolder = "../MD_TEST/project/image/"
+
+ image.mv(mdtestfolder + req.headers.uploadforproject + ".png", (error) => {
+
+ if(error) {
+ res.send({"result":"ERROR"})
+
+ } else {
+
+ res.send({"result":"SUCCESS"})
+ }
+ })
+
+ }
+
+
} else {
diff --git a/users/0cee5da6-6812-49d8-97f5-2df5c1d78191.json b/users/0cee5da6-6812-49d8-97f5-2df5c1d78191.json
index 7d6dd3b..3f21f41 100644
--- a/users/0cee5da6-6812-49d8-97f5-2df5c1d78191.json
+++ b/users/0cee5da6-6812-49d8-97f5-2df5c1d78191.json
@@ -9,5 +9,5 @@
"livableToken": true,
"createdAt": 1679260759114
},
- "lastconnexion": 1680106107373
+ "lastconnexion": 1680108499963
}
\ No newline at end of file