From 74c53426333d8c8ac0bcb4b9ae6e79972e4e8f3a Mon Sep 17 00:00:00 2001 From: Raphix Date: Mon, 27 Mar 2023 21:55:47 +0200 Subject: [PATCH] First Upload of DEV_6 --- app.js | 3 + package.json | 2 +- public/javascripts/dashboard.js | 8 +- public/stylesheets/style.css | 16 +- public/templates/cv.html | 410 ++++++++++++++++++ public/templates/files.html | 1 + public/templates/panel.html | 57 +++ routes/cv.js | 356 +++++++++++++++ routes/upload.js | 3 +- .../0cee5da6-6812-49d8-97f5-2df5c1d78191.json | 2 +- views/index.ejs | 4 + 11 files changed, 852 insertions(+), 10 deletions(-) create mode 100644 public/templates/cv.html create mode 100644 public/templates/panel.html create mode 100644 routes/cv.js diff --git a/app.js b/app.js index 82806d4..df915a3 100644 --- a/app.js +++ b/app.js @@ -21,6 +21,8 @@ var userManagerRouter = require('./routes/usermanager'); var linkRouter = require('./routes/link'); var fileRouter = require("./routes/filemanager") var downloadRouter = require("./routes/download") +var cvRouter = require("./routes/cv") + var app = express(); @@ -49,6 +51,7 @@ app.use('/usermanager', userManagerRouter) app.use('/link', linkRouter) app.use("/filemanager", fileRouter) app.use("/download", downloadRouter) +app.use("/cv", cvRouter) // catch 404 and forward to error handler diff --git a/package.json b/package.json index de13695..d524231 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "neutral", - "version": "DEV_5", + "version": "DEV_6", "private": true, "nodemonConfig": { "ext": "js, html", diff --git a/public/javascripts/dashboard.js b/public/javascripts/dashboard.js index 8a06d9f..0caa336 100644 --- a/public/javascripts/dashboard.js +++ b/public/javascripts/dashboard.js @@ -1,5 +1,3 @@ - - const account = document.getElementById("account") const menu = document.getElementById("accmenu") const sidebar = document.getElementById("sidebar") @@ -145,6 +143,7 @@ const b4 = document.getElementById("s-moni") const b5 = document.getElementById("s-device") const b6 = document.getElementById("s-cv") const b7 = document.getElementById("s-link") +const b8 = document.getElementById("s-admin") const settings = document.getElementById("settingsBtn") b1.addEventListener("click", () => { @@ -183,6 +182,11 @@ b7.addEventListener("click", () => { }) +b8.addEventListener("click", () => { + getPage("panel.html") + +}) + settings.addEventListener("click", () => { getPage("settings.html") diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 6f87300..07dd00f 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -299,7 +299,11 @@ body { display: flex; justify-content: start; flex-direction: column; - + gap: 1vw; + } + + .sidebar:hover .middle{ + gap: 0; } .sidebar:hover .middle { @@ -358,6 +362,8 @@ body { -webkit-user-select: none; /* Chrome, Safari, Opéra depuis la version 15 */ -ms-user-select: none; /* Internet explorer depuis la version 10 et Edge */ user-select: none; /* Propriété standard */ + margin-left: 2%; + text-align: center; } .username { @@ -398,9 +404,9 @@ body { .sidebar-item { transition: all 0.2s ease 0s; - padding: 5%; - margin-top: 5%; - margin-bottom: 5%; + padding: 10%; + width: 100%; + } .sidebar-item:hover { @@ -408,7 +414,7 @@ body { background-color: white; color: black; cursor: pointer; - + } diff --git a/public/templates/cv.html b/public/templates/cv.html new file mode 100644 index 0000000..66ce008 --- /dev/null +++ b/public/templates/cv.html @@ -0,0 +1,410 @@ +
+

Mon CV

+ +
+
+
+
+

Sections

+
+ +
+ +
+
+ +
+ +
+ +
+
+ +

+
+ +
+
+
+ + +

Projets

+
+ +
+ + +
+ +
+ +
+ +
+ + +
+ +
+

Uploader une image : NAMTEST.png

+ + +
+ +
+ +
+ + +
+
+
+ + +

Statistiques

+

Coming soon ...

+ +
+
+ + +
+ +
+ + + + + + + \ No newline at end of file diff --git a/public/templates/files.html b/public/templates/files.html index 5602d96..d433aeb 100644 --- a/public/templates/files.html +++ b/public/templates/files.html @@ -202,6 +202,7 @@ } else { getDirectory(currentDir.value) + fiInfo.innerHTML = "Le fichier " + file.name + " a été upload !" } } diff --git a/public/templates/panel.html b/public/templates/panel.html new file mode 100644 index 0000000..adcebec --- /dev/null +++ b/public/templates/panel.html @@ -0,0 +1,57 @@ +
+

Administration

+
+
+
+
+ + +

Administration

+ + +
+ +
+ + +
+ +
+ + + + \ No newline at end of file diff --git a/routes/cv.js b/routes/cv.js new file mode 100644 index 0000000..664a709 --- /dev/null +++ b/routes/cv.js @@ -0,0 +1,356 @@ +var express = require('express'); +var router = express.Router(); +var ntr = require("../neutral-functions.js") +var fs = require("fs") +var path = require("path") +var mime = require('mime-types'); +const { compileString } = require('sass'); +const { response } = require('../app.js'); + +/* GET home page. */ +router.get('/', function(req, res, next) { + + + var check = ntr.checkToken(req, res) + + if(check.name != false) { + + res.redirect(302, "/") + + } else { + + res.render('login', {error: ""}); + } + +}); + +router.post("/", function(req, res, next) { + + var check = ntr.checkToken(req, res) + + if(check.name == false) { + + res.send({"result":"failed", "content":"ERROR_TOKEN_NOT_VALID"}) + + + } else { + + if(check.permLevel >= 2) { + + const bod = req.body + + if(bod.request == "get") { + + const markdownFolder = "/home/gitlab-ci/cv/dashboard-raphael/markdown" + + if(bod.value == "WHOAMI") { + + var fileData = null; + + if(fs.existsSync(markdownFolder)) { + fileData = fs.readFileSync(markdownFolder + "whoami.md") + + } else { + fileData = fs.readFileSync("../MD_TEST/whoami.md") + + } + + + + res.send({"result":"success", "content":fileData.toString()}) + } else if(bod.value == "CONTACT") { + + var fileData = null; + + if(fs.existsSync(markdownFolder)) { + fileData = fs.readFileSync(markdownFolder + "info.md") + + } else { + fileData = fs.readFileSync("../MD_TEST/info.md") + + } + + + + res.send({"result":"success", "content":fileData.toString()}) + } else if(bod.value == "FORMATION") { + + var fileData = null; + + if(fs.existsSync(markdownFolder)) { + fileData = fs.readFileSync(markdownFolder + "formation.md") + + } else { + fileData = fs.readFileSync("../MD_TEST/formation.md") + + } + + + + res.send({"result":"success", "content":fileData.toString()}) + } else if(bod.value == "DIPLOME") { + + var fileData = null; + + if(fs.existsSync(markdownFolder)) { + fileData = fs.readFileSync("/home/gitlab-ci/cv/markdown/certif.md") + + } else { + fileData = fs.readFileSync("../MD_TEST/certif.md") + + } + + + + res.send({"result":"success", "content":fileData.toString()}) + } else if(bod.value == "LOBBIES") { + + var fileData = null; + + if(fs.existsSync(markdownFolder)) { + fileData = fs.readFileSync("/home/gitlab-ci/cv/markdown/passions.md") + + } else { + fileData = fs.readFileSync("../MD_TEST/passions.md") + + } + + + + res.send({"result":"success", "content":fileData.toString()}) + } else if(bod.value == "FIND") { + + var fileData = null; + + if(fs.existsSync(markdownFolder)) { + fileData = fs.readFileSync("/home/gitlab-ci/cv/markdown/find.md") + + } else { + fileData = fs.readFileSync("../MD_TEST/find.md") + + } + + + + res.send({"result":"success", "content":fileData.toString()}) + } else { + + res.send({"result":"failed", "content":"ERROR_NOT_VALID_REQUEST"}) + } + + + + } else if(bod.request == "set") { + + const markdownFolder = "/home/gitlab-ci/cv/dashboard-raphael/markdown" + + if(bod.type == "WHOAMI") { + + + + if(fs.existsSync(markdownFolder)) { + fs.writeFile(markdownFolder + "whoami.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } else { + fs.writeFile("../MD_TEST/whoami.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } + + } else if(bod.type == "CONTACT") { + + + + if(fs.existsSync(markdownFolder)) { + fs.writeFile(markdownFolder + "info.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } else { + fs.writeFile("../MD_TEST/info.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } + + + + res.send({"result":"success", "content":fileData.toString()}) + } else if(bod.type == "FORMATION") { + + + + if(fs.existsSync(markdownFolder)) { + fs.writeFile(markdownFolder + "formation.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } else { + fs.writeFile("../MD_TEST/formation.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } + + + + + } else if(bod.type == "DIPLOME") { + + + if(fs.existsSync(markdownFolder)) { + fs.writeFile(markdownFolder + "certif.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } else { + fs.writeFile("../MD_TEST/certif.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } + + + + + } else if(bod.type == "LOBBIES") { + + + if(fs.existsSync(markdownFolder)) { + fs.writeFile(markdownFolder + "passions.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } else { + fs.writeFile("../MD_TEST/passions.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } + + + + } else if(bod.type == "FIND") { + + if(fs.existsSync(markdownFolder)) { + fs.writeFile(markdownFolder + "find.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } else { + fs.writeFile("../MD_TEST/find.md", bod.value, (err) => { + if(err) { + res.send({"result":"success", "content":"ERROR_NOT_PERMITTED"}) + + } else { + + res.send({"result":"success", "content":"NO_PROBLEM"}) + } + + }) + + } + + + + + } else { + + res.send({"result":"failed", "content":"ERROR_NOT_VALID_REQUEST"}) + } + + + } + + + } else { + + res.send({"result":"failed", "content":"ERROR_USER_PERMISSION_TOO_LOW"}) + } + + + } + +}) + +module.exports = router; diff --git a/routes/upload.js b/routes/upload.js index 1f08744..cc75f1f 100644 --- a/routes/upload.js +++ b/routes/upload.js @@ -7,6 +7,7 @@ var uuid = require("uuid") var ntr = require("../neutral-functions.js"); const Jimp = require("jimp"); const { compileString } = require('sass'); +const { exec } = require('child_process'); /* GET home page. */ router.get('/', function(req, res, next) { @@ -92,7 +93,7 @@ router.post("/", function(req, res, next) { - + } else if(req.files.apic.mimetype == "image/png") { Jimp.read(uploadDir + uploadPath, function (err, image) { image.resize(200,200, function(err){ diff --git a/users/0cee5da6-6812-49d8-97f5-2df5c1d78191.json b/users/0cee5da6-6812-49d8-97f5-2df5c1d78191.json index 536801c..b14ce69 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": 1679595671060 + "lastconnexion": 1679946924306 } \ No newline at end of file diff --git a/views/index.ejs b/views/index.ejs index 5f4ed6c..4510ee3 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -38,6 +38,10 @@ +