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 @@
+