From 89e255e2000f93c0fd2201b0ea3f93a167662b33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?cl=C3=A9ment?= Date: Wed, 23 Nov 2022 14:27:54 +0100 Subject: [PATCH 1/6] Modif sur le bouton modifier page Compte --- src/pages/Compte.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/pages/Compte.js b/src/pages/Compte.js index d69edc4..c9ac993 100644 --- a/src/pages/Compte.js +++ b/src/pages/Compte.js @@ -1,13 +1,18 @@ import { Component } from '@fullcalendar/core'; -import React, { useState } from 'react'; +import userEvent from '@testing-library/user-event'; +import React, { useEffect, useState } from 'react'; import NavigationDashboard from '../components/NavigationDashboard'; import img1 from '../img/logo_personEntouré.svg'; +import axios from 'axios' - +const api = axios.create({ + baseURL: 'http://localhost:8080' + }) function Compte() { - const [theme, setTheme] = useState("light"); + const [theme, setTheme] = useState("light"); + const [modification, setModification] = useState(false); if (localStorage.getItem('theme') && localStorage.getItem("theme") !== '' && localStorage.getItem("theme") !== theme) { setTheme(localStorage.getItem("theme")) } @@ -18,6 +23,11 @@ function Compte() { setFile(URL.createObjectURL(e.target.files[0])); } + const modificationHandler = () => { + setModification((modification) => !modification) + console.log(modification) + } + return ( @@ -58,10 +68,11 @@ function Compte() {

Nom Complet :

+

{}

Mateo Centeno

- +
From 2ae20c4acce0d18b8c2773d39ba294224742935c Mon Sep 17 00:00:00 2001 From: Jeremy DUCOURTHIAL Date: Wed, 23 Nov 2022 15:12:27 +0100 Subject: [PATCH 2/6] =?UTF-8?q?Ajout=20de=20la=20page=20admin=20op=C3=A9ra?= =?UTF-8?q?tionnelle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Admin_create.js | 1 - src/pages/Admin_modif.js | 21 ++++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/pages/Admin_create.js b/src/pages/Admin_create.js index da1c961..b9d2528 100644 --- a/src/pages/Admin_create.js +++ b/src/pages/Admin_create.js @@ -36,7 +36,6 @@ function Admin_create() { const formData = new FormData(event.currentTarget); const values = Object.fromEntries(formData.entries()); - {/* Verif value login exist déja */} console.log(values.firstname); api.get('/User/Exist/'+ values.login).then((response) => { const login = response.data; diff --git a/src/pages/Admin_modif.js b/src/pages/Admin_modif.js index 5ef1fa3..d04aeb7 100644 --- a/src/pages/Admin_modif.js +++ b/src/pages/Admin_modif.js @@ -2,10 +2,11 @@ import axios from 'axios' import React, { useState, useEffect } from 'react'; import NavigationAdmin from '../components/NavigationAdmin.js'; import Admin from './Admin_create.js'; -import { useLocation } from "react-router-dom" +import { useLocation } from "react-router-dom"; import Select, { SelectChangeEvent } from '@mui/material/Select'; import MenuItem from '@mui/material/MenuItem'; import { NavLink } from 'react-router-dom'; +import { useNavigate } from "react-router-dom"; const api = axios.create({ baseURL: 'http://localhost:8080' @@ -24,6 +25,8 @@ function Admin_modif() { const [mail, setMail] = useState(); const [login, setLogin] = useState(); + const navigate = useNavigate(); + useEffect(() =>{ api.get('/Role/All/').then((response) => { setRoles(response.data); @@ -38,9 +41,9 @@ function Admin_modif() { setLastName(response.data[0].lastname); setFirstName(response.data[0].firstname); + setLogin(response.data[0].login); setPhone(response.data[0].phone); setMail(response.data[0].mail); - setLogin(response.data[0].login); }); }, []); @@ -81,12 +84,13 @@ function Admin_modif() { api.put(apiString, values).then((response) => { console.log(response.data); }); + + navigate("/Admin_list"); } return (
- {/* Create a admin page */}

Admin

Modification d'utilisateur

@@ -97,15 +101,16 @@ function Admin_modif() {

Nom :

Prénom :

+

Login :

Rôle :

-

Identifiant :

-

Identifiant :

-

Mot de passe :

+

Téléphone :

+

Mail :

+ - - - -
@@ -48,29 +56,24 @@ const Admin_supp = () => { Identifiant Téléphone Email - Rôle - {users.map((user) => ( - handleClick(event, user.iduser)} - selected={user.iduser === selectedIdUser} - > - {user.lastname} - {user.firstname} - {user.login} - {user.phone} - {user.mail} - {user.name} - - ))} + + {selectedUser.lastname} + {selectedUser.firstname} + {selectedUser.login} + {selectedUser.phone} + {selectedUser.mail} +
+
+ + Retour +
); diff --git a/src/pages/RestartPassword.js b/src/pages/RestartPassword.js new file mode 100644 index 0000000..0fac4bf --- /dev/null +++ b/src/pages/RestartPassword.js @@ -0,0 +1,105 @@ +import axios from 'axios' +import React, { useState, useEffect } from 'react'; +import NavigationAdmin from '../components/NavigationAdmin.js'; +import Admin from './Admin_create.js'; +import { useLocation } from "react-router-dom"; +import Select, { SelectChangeEvent } from '@mui/material/Select'; +import MenuItem from '@mui/material/MenuItem'; +import { NavLink } from 'react-router-dom'; +import CryptoJS from 'crypto-js'; +import { useNavigate } from "react-router-dom"; + + +const api = axios.create({ + baseURL: 'http://localhost:8080' + }) + +function RestartPassword() { + const location = useLocation(); + const { iduser } = location.state; + console.log(iduser); + + const [password, setPassword] = useState(""); + const [confPassword, setConfPassword] = useState(""); + const [newPassword, setNewPassword] = useState(""); + + const navigate = useNavigate(); + + function handleChangePassword(event){ + setPassword(event.target.value); + }; + + function handleChangeConfPassword(event){ + setConfPassword(event.target.value); + }; + + function handleChangeNewPassword(event){ + setNewPassword(event.target.value); + }; + + function checkRestartPassword(event){ + + const formData = new FormData(event.currentTarget); + const values = Object.fromEntries(formData.entries()); + + event.preventDefault(); + + if(password === confPassword) + { + const apiString = '/User/Auth/Password/' + iduser + "/" + CryptoJS.SHA256(confPassword).toString(CryptoJS.enc.Hex); + api.get(apiString).then((response) => { + const login = response.data; + if (login.length > 0){ + console.log(values.newPassword); + + values.newPassword = CryptoJS.SHA256(newPassword).toString(CryptoJS.enc.Hex); + + const apiStringUpdate = '/User/Update/Password/' + iduser; + api.put(apiStringUpdate, values).then((response) => { + console.log(response.data); + }); + + navigate("/Admin_list"); + } + else{ + console.log("trt"); + } + }); + } + } + + return ( +
+ + {/* Create a admin page */} +
+

Admin

+

Modification d'utilisateur

+
+
+ + +
+

Mot de passe :

+

Confirmation mot de passe :

+

Nouveau mot de passe :

+
+ + + + + + +
+
+ + Retour +
+
+
+
+
+ ); +}; + +export default RestartPassword; \ No newline at end of file From 38b80c3118b81efdf20ce3f10d1e46d77a940818 Mon Sep 17 00:00:00 2001 From: Maxence LANONE Date: Fri, 25 Nov 2022 14:59:34 +0100 Subject: [PATCH 4/6] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 5b89ad8..72a1067 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ [![Quality Gate Status](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=jtt_crm&metric=alert_status&token=4e704a73064f9dd9388eb33b182fcfe6f8aed2a4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=jtt_crm) [![Code Smells](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=jtt_crm&metric=code_smells&token=4e704a73064f9dd9388eb33b182fcfe6f8aed2a4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=jtt_crm) [![Lines of Code](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=jtt_crm&metric=ncloc&token=4e704a73064f9dd9388eb33b182fcfe6f8aed2a4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=jtt_crm) -[![Quality Gate Status](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=jtt_crm&metric=alert_status&token=4e704a73064f9dd9388eb33b182fcfe6f8aed2a4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=jtt_crm) [![Bugs](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=jtt_crm&metric=bugs&token=4e704a73064f9dd9388eb33b182fcfe6f8aed2a4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=jtt_crm) From 3db1522c5a2759f1d736101b6fbb6e5af34d3833 Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Fri, 25 Nov 2022 19:25:36 +0100 Subject: [PATCH 5/6] =?UTF-8?q?Ajout=20d'un=20syst=C3=A8me=20de=20chargeme?= =?UTF-8?q?nt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 16 +++++++++++ package.json | 1 + src/App.js | 37 ++++++++++++++------------ src/pages/Chargement.js | 13 +++++++++ src/pages/Compte.js | 10 ++++++- src/styles/components/_chargement.scss | 6 +++++ src/styles/index.scss | 3 ++- 7 files changed, 67 insertions(+), 19 deletions(-) create mode 100644 src/pages/Chargement.js create mode 100644 src/styles/components/_chargement.scss diff --git a/package-lock.json b/package-lock.json index c4893b7..0af3c07 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,6 +32,7 @@ "react-big-calendar": "^1.5.0", "react-datepicker": "^4.8.0", "react-dom": "^18.2.0", + "react-loading": "^2.0.3", "react-router-dom": "^6.4.2", "react-scripts": "^5.0.1", "sass": "^1.55.0", @@ -14941,6 +14942,15 @@ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, + "node_modules/react-loading": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/react-loading/-/react-loading-2.0.3.tgz", + "integrity": "sha512-Vdqy79zq+bpeWJqC+xjltUjuGApyoItPgL0vgVfcJHhqwU7bAMKzysfGW/ADu6i0z0JiOCRJjo+IkFNkRNbA3A==", + "peerDependencies": { + "prop-types": "^15.6.0", + "react": ">=0.14.0" + } + }, "node_modules/react-onclickoutside": { "version": "6.12.2", "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.2.tgz", @@ -28394,6 +28404,12 @@ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, + "react-loading": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/react-loading/-/react-loading-2.0.3.tgz", + "integrity": "sha512-Vdqy79zq+bpeWJqC+xjltUjuGApyoItPgL0vgVfcJHhqwU7bAMKzysfGW/ADu6i0z0JiOCRJjo+IkFNkRNbA3A==", + "requires": {} + }, "react-onclickoutside": { "version": "6.12.2", "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.2.tgz", diff --git a/package.json b/package.json index 1babbb6..0965eb6 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "react-big-calendar": "^1.5.0", "react-datepicker": "^4.8.0", "react-dom": "^18.2.0", + "react-loading": "^2.0.3", "react-router-dom": "^6.4.2", "react-scripts": "^5.0.1", "sass": "^1.55.0", diff --git a/src/App.js b/src/App.js index 8d212c1..1b97d3b 100644 --- a/src/App.js +++ b/src/App.js @@ -11,28 +11,31 @@ import Admin_create from './pages/Admin_create'; import Calendrier from './pages/Calendrier'; import Repertoire from './pages/Repertoire'; import Parametres from './pages/Parametres'; +import Chargement from './pages/Chargement'; +import { Component } from 'fullcalendar'; const App = () => { - return ( - - - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - - - ); + return ( + + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + ); } diff --git a/src/pages/Chargement.js b/src/pages/Chargement.js new file mode 100644 index 0000000..04ef0b3 --- /dev/null +++ b/src/pages/Chargement.js @@ -0,0 +1,13 @@ +import React, {Component} from 'react'; +import ReactLoading from 'react-loading'; + +const Chargement = () => { + + return ( +
+ +
+ ); +} + +export default Chargement; \ No newline at end of file diff --git a/src/pages/Compte.js b/src/pages/Compte.js index d69edc4..71f3f7a 100644 --- a/src/pages/Compte.js +++ b/src/pages/Compte.js @@ -18,6 +18,14 @@ function Compte() { setFile(URL.createObjectURL(e.target.files[0])); } + const [modification, setModification] = useState(false); + + const modificationHandler = () => { + setModification((modification) => !modification) + console.log("modificationHandler") + console.log(modification) + } + return ( @@ -61,7 +69,7 @@ function Compte() {

Mateo Centeno

- +
diff --git a/src/styles/components/_chargement.scss b/src/styles/components/_chargement.scss new file mode 100644 index 0000000..102e780 --- /dev/null +++ b/src/styles/components/_chargement.scss @@ -0,0 +1,6 @@ +.chargement { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; +} \ No newline at end of file diff --git a/src/styles/index.scss b/src/styles/index.scss index 625c18a..ac6a812 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -6,4 +6,5 @@ @import "./components/analyse"; @import "./components/calendrier"; @import "./components/parametre"; -@import "./components/repertoire" \ No newline at end of file +@import "./components/repertoire"; +@import "./components/chargement" \ No newline at end of file From 365af695a8fa4af2a8ea6980f3a712e1caab7d4a Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Sat, 26 Nov 2022 13:11:19 +0100 Subject: [PATCH 6/6] =?UTF-8?q?Syst=C3=A8me=20de=20chargement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.js | 2 ++ src/pages/Chargement.js | 9 ++++++--- src/pages/Connexion.js | 16 ++++++++++++++-- src/styles/components/_chargement.scss | 6 ++++++ 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/App.js b/src/App.js index 94bb84f..f2910b2 100644 --- a/src/App.js +++ b/src/App.js @@ -21,6 +21,8 @@ import RestartPassword from './pages/RestartPassword'; const App = () => { + + return ( diff --git a/src/pages/Chargement.js b/src/pages/Chargement.js index 04ef0b3..b8556dc 100644 --- a/src/pages/Chargement.js +++ b/src/pages/Chargement.js @@ -1,11 +1,14 @@ -import React, {Component} from 'react'; +import React from 'react'; import ReactLoading from 'react-loading'; + + const Chargement = () => { - return ( + return(
- + +
); } diff --git a/src/pages/Connexion.js b/src/pages/Connexion.js index 343fdcd..8ce50c5 100644 --- a/src/pages/Connexion.js +++ b/src/pages/Connexion.js @@ -1,9 +1,10 @@ import axios from 'axios' -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import CryptoJS from 'crypto-js'; import Admin from './Admin_create.js' import Dashboard from './Dashboard.js' import Admin_list from './Admin_list.js'; +import Chargement from './Chargement.js'; const api = axios.create({ baseURL: 'http://localhost:8080' @@ -58,6 +59,15 @@ function Connexion() { }); } + const [loader, setLoader] = useState(true); + + useEffect(() => { + setTimeout(() => { + setLoader(false); + }, 3000) + }, []) + + if (auth === "Succeed") { const apiString = '/User/role/' + login; api.get(apiString).then((response) => { @@ -77,7 +87,9 @@ function Connexion() { return (); } else { - return ( + return loader ?( + + ) : (
diff --git a/src/styles/components/_chargement.scss b/src/styles/components/_chargement.scss index 102e780..64dc2f2 100644 --- a/src/styles/components/_chargement.scss +++ b/src/styles/components/_chargement.scss @@ -1,6 +1,12 @@ .chargement { display: flex; + flex-direction: column; justify-content: center; align-items: center; height: 100vh; +} + +.logo{ + height: 200px; + width:200px; } \ No newline at end of file