From a46c189cd84631d6aef6f11f83012ce776575797 Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Thu, 27 Oct 2022 13:27:38 +0200 Subject: [PATCH 01/27] Ajout de cursor pointer sur la page Account --- src/styles/components/_compte.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/styles/components/_compte.scss b/src/styles/components/_compte.scss index 6ea9d69..57d859c 100644 --- a/src/styles/components/_compte.scss +++ b/src/styles/components/_compte.scss @@ -110,6 +110,7 @@ body { object-fit: cover; background-color: transparent; border: none; + cursor: pointer; .logo_nav_bar{ display: flex; @@ -167,6 +168,7 @@ body { display: flex; margin-left: 30px; align-items: center; + cursor: pointer; .bouton_ajoutPhoto { height: 40px; @@ -175,6 +177,7 @@ body { border-radius: 5px; border: 1px solid black; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + cursor: pointer; &:hover{ background-color: lightgrey; @@ -215,6 +218,7 @@ body { border-radius: 5px; border-radius: 5px; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + cursor: pointer; &:hover{ background-color: lightgrey; From 0e295faae6a9db99933f3ad7877facb4b59ed0d1 Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Fri, 28 Oct 2022 17:02:45 +0200 Subject: [PATCH 02/27] =?UTF-8?q?Cr=C3=A9ation=20page=20Analyse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 11 ++ package.json | 1 + src/App.js | 8 +- src/components/NavigationDashboard.js | 13 +++ src/pages/Analyse.js | 70 +++++++++++++ src/styles/components/_analyse.scss | 143 ++++++++++++++++++++++++++ src/styles/index.scss | 10 +- 7 files changed, 249 insertions(+), 7 deletions(-) create mode 100644 src/components/NavigationDashboard.js create mode 100644 src/pages/Analyse.js create mode 100644 src/styles/components/_analyse.scss diff --git a/package-lock.json b/package-lock.json index 3e50602..b01b54f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "axios": "^1.1.3", + "chart.js": "^3.9.1", "crypto-js": "^4.1.1", "pg": "^8.8.0", "react": "^18.2.0", @@ -5596,6 +5597,11 @@ "node": ">=10" } }, + "node_modules/chart.js": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", + "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==" + }, "node_modules/check-types": { "version": "11.1.2", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", @@ -20976,6 +20982,11 @@ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" }, + "chart.js": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", + "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==" + }, "check-types": { "version": "11.1.2", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", diff --git a/package.json b/package.json index 6381b45..b5df2c0 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "axios": "^1.1.3", + "chart.js": "^3.9.1", "crypto-js": "^4.1.1", "pg": "^8.8.0", "react": "^18.2.0", diff --git a/src/App.js b/src/App.js index ab22e69..ebde1e4 100644 --- a/src/App.js +++ b/src/App.js @@ -2,10 +2,11 @@ import React from 'react'; import { BrowserRouter, Routes, Route } from 'react-router-dom'; import Compte from './pages/Compte'; import Connexion from './pages/Connexion'; -import Admin from './pages/Admin.js'; -import Admin_modif from './pages/Admin_modif.js'; -import Admin_supp from './pages/Admin_supp.js'; +import Admin from './pages/Admin'; +import Admin_modif from './pages/Admin_modif'; +import Admin_supp from './pages/Admin_supp'; import Dashboard from './pages/Dashboard'; +import Analyse from './pages/Analyse'; const App = () => { return ( @@ -17,6 +18,7 @@ const App = () => { } /> } /> } /> + } /> ); diff --git a/src/components/NavigationDashboard.js b/src/components/NavigationDashboard.js new file mode 100644 index 0000000..152f4a6 --- /dev/null +++ b/src/components/NavigationDashboard.js @@ -0,0 +1,13 @@ +import React from 'react'; +import { NavLink } from 'react-router-dom'; + + +const NavigationDashboard = () => { + return ( +
+ +
+ ); +}; + +export default NavigationDashboard; \ No newline at end of file diff --git a/src/pages/Analyse.js b/src/pages/Analyse.js new file mode 100644 index 0000000..c376c2f --- /dev/null +++ b/src/pages/Analyse.js @@ -0,0 +1,70 @@ +import React from 'react'; +import axios from 'axios' +import Chart from 'chart.js/auto' +window.Chart = Chart + +const api = axios.create({ + baseURL: 'http://localhost:8080' + }) + + +const Analyse = () => { + return ( +
+ {/* Create an analysis page */} +
+

Analyse

+
+
+ + + + +
+ +
+
+ +
+
+
+ +
+
+ + + +
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ ); +}; + + + + +export default Analyse; \ No newline at end of file diff --git a/src/styles/components/_analyse.scss b/src/styles/components/_analyse.scss new file mode 100644 index 0000000..ca2783c --- /dev/null +++ b/src/styles/components/_analyse.scss @@ -0,0 +1,143 @@ +.page_analyse { + display: flex; + flex-direction: column; + //justify-content: space-evenly; + width: auto; + height: 100vh; + + background: rgba(255, 255, 255, 0.143); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + .haut_de_page { + display: flex; + flex-direction: row; + justify-content: space-between; + padding: 50px; + width: auto; + height: 10%; + align-items: center; + margin: 10px 10px 5px 10px; + + background: rgba(255, 255, 255, 0.143); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + .titre { + font-size: 40px; + } + + .rechLogo { + display: flex; + flex-direction: row; + justify-content: space-between; + + .input_box { + display: flex; + justify-content: center; + align-items: center; + position: relative; + height: 40px; + max-width: 350px; + width: 100%; + margin: 30px 30px; + border-radius: 25px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + + input { + position: relative; + width: 100%; + height: 100%; + padding: 0 15px 0 65px; + outline: none; + border: none; + border-radius: 25px; + font-size: 16px; + font-weight: 400; + color: #333; + } + + .search { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 60px; + border-radius: 25px 0 0 25px; + + .search-icon { + font-size: 30px; + color: black; + } + } + } + + .logo { + display: flex; + width: 100px; + height: 100px; + } + } + } + + .bas_de_page { + display: flex; + flex-direction: row; + //justify-content: space-between; + width: auto; + height: 86%; + + .nav_bar_verticale { + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; + width: 5%; + margin: 5px 5px 10px 10px; + + background: rgba(255, 255, 255, 0.143); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + .button { + display: flex; + object-fit: cover; + background-color: transparent; + border: none; + cursor: pointer; + + .logo_nav_bar{ + display: flex; + margin: 10px; + height: 50px; + width: 50px; + } + } + } + + .statistiques_1 { + display: flex; + flex-direction: column; + justify-content: space-evenly; + padding: 50px; + width: 1423px; + height: 627px; + margin: 5px 5px 10px 10px; + + background: rgba(255, 255, 255, 0.143); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + } +} diff --git a/src/styles/index.scss b/src/styles/index.scss index 2105f87..0551ad6 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -1,4 +1,6 @@ -@import "./settings.scss"; -@import "./components/connexion.scss"; -@import "./components/admin.scss"; -@import "./components/compte.scss"; \ No newline at end of file +@import "./settings"; +@import "./components/connexion"; +@import "./components/admin"; +@import "./components/compte"; +@import "./components/dashboard"; +@import "./components/analyse"; \ No newline at end of file From 64905cd93e584722780964218bce02fc7f76b568 Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Fri, 28 Oct 2022 17:35:40 +0200 Subject: [PATCH 03/27] =?UTF-8?q?Cr=C3=A9ation=20page=20NavigationDashboar?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/NavigationDashboard.js | 45 +++++++++++++++++++++++++-- src/pages/Analyse.js | 30 ++---------------- src/pages/Compte.js | 30 ++---------------- 3 files changed, 47 insertions(+), 58 deletions(-) diff --git a/src/components/NavigationDashboard.js b/src/components/NavigationDashboard.js index 152f4a6..c39d0be 100644 --- a/src/components/NavigationDashboard.js +++ b/src/components/NavigationDashboard.js @@ -4,8 +4,49 @@ import { NavLink } from 'react-router-dom'; const NavigationDashboard = () => { return ( -
- +
+ +
+ +
+
+ +
+ + +
+ +
+
+ +
+ +
+
+
+
+ +
+ +
+
+ +
+ +
+
); }; diff --git a/src/pages/Analyse.js b/src/pages/Analyse.js index c376c2f..c757bf7 100644 --- a/src/pages/Analyse.js +++ b/src/pages/Analyse.js @@ -1,6 +1,7 @@ import React from 'react'; import axios from 'axios' import Chart from 'chart.js/auto' +import NavigationDashboard from '../components/NavigationDashboard'; window.Chart = Chart const api = axios.create({ @@ -26,34 +27,7 @@ const Analyse = () => {
-
-
- -
-
- - - -
-
- -
-
- -
-
+
diff --git a/src/pages/Compte.js b/src/pages/Compte.js index 00015cc..e6674d7 100644 --- a/src/pages/Compte.js +++ b/src/pages/Compte.js @@ -1,4 +1,5 @@ import React from 'react'; +import NavigationDashboard from '../components/NavigationDashboard'; const Compte = () => { @@ -22,34 +23,7 @@ const Compte = () => {
-
-
- -
-
- - - -
-
- -
-
- -
-
+
From ef294ed4e075a1d344aae1cc538faecb19e13364 Mon Sep 17 00:00:00 2001 From: Tristan Barlet Date: Tue, 1 Nov 2022 17:38:52 +0100 Subject: [PATCH 04/27] =?UTF-8?q?Mise=20en=20place=20de=20la=20redirection?= =?UTF-8?q?=20apr=C3=A8s=20la=20connexion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 133 +++++++++++++++++++++++++++++++++++++++++ package.json | 1 + server-api/api.js | 13 ++++ src/pages/Connexion.js | 21 ++++++- 4 files changed, 165 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b01b54f..f76a822 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "axios": "^1.1.3", + "chart": "^0.1.2", "chart.js": "^3.9.1", "crypto-js": "^4.1.1", "pg": "^8.8.0", @@ -5597,6 +5598,16 @@ "node": ">=10" } }, + "node_modules/chart": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/chart/-/chart-0.1.2.tgz", + "integrity": "sha512-MSiVzAd3qUEXv54k9KGe1oIoC7WG32W9wtjpovlTGlzo2ue/fRiHf7kJAK1zmD736jH/0fVWNCQLh41btfAEZQ==", + "dependencies": { + "hashish": "", + "hat": "", + "mrcolor": "https://github.com/rook2pawn/mrcolor/archive/master.tar.gz" + } + }, "node_modules/chart.js": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", @@ -5891,6 +5902,26 @@ "node": ">= 0.6" } }, + "node_modules/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "dependencies": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-parser/node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -8552,6 +8583,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hashish": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz", + "integrity": "sha512-xyD4XgslstNAs72ENaoFvgMwtv8xhiDtC2AtzCG+8yF7W/Knxxm9BX+e2s25mm+HxMKh0rBmXVOEGF3zNImXvA==", + "dependencies": { + "traverse": ">=0.2.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/hat": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", + "integrity": "sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug==", + "engines": { + "node": "*" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -11852,6 +11902,23 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mrcolor": { + "version": "0.0.1", + "resolved": "https://github.com/rook2pawn/mrcolor/archive/master.tar.gz", + "integrity": "sha512-feteSepg0FRp0fW3RafigAjU7gXiiaa4OlMW39FEmcvQPbD7Zlpc2PSu4hVBPSBR4XNee8n6EjCTfK0O37DL5A==", + "license": "MIT/X11", + "dependencies": { + "color-convert": "0.2.x" + } + }, + "node_modules/mrcolor/node_modules/color-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.2.1.tgz", + "integrity": "sha512-FWbwpCgyRV41Vml0iKU9UmL0dVTKORnm7ZC8h8cdfvutk2bU7ZcMLtSleggScK/IpUVXILg9Pw86LhPUQyTaVg==", + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -15816,6 +15883,14 @@ "node": ">=8" } }, + "node_modules/traverse": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", + "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", @@ -20982,6 +21057,16 @@ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" }, + "chart": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/chart/-/chart-0.1.2.tgz", + "integrity": "sha512-MSiVzAd3qUEXv54k9KGe1oIoC7WG32W9wtjpovlTGlzo2ue/fRiHf7kJAK1zmD736jH/0fVWNCQLh41btfAEZQ==", + "requires": { + "hashish": "", + "hat": "", + "mrcolor": "https://github.com/rook2pawn/mrcolor/archive/master.tar.gz" + } + }, "chart.js": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", @@ -21213,6 +21298,22 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, + "cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "requires": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + }, + "dependencies": { + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + } + } + }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -23111,6 +23212,19 @@ "has-symbols": "^1.0.2" } }, + "hashish": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz", + "integrity": "sha512-xyD4XgslstNAs72ENaoFvgMwtv8xhiDtC2AtzCG+8yF7W/Knxxm9BX+e2s25mm+HxMKh0rBmXVOEGF3zNImXvA==", + "requires": { + "traverse": ">=0.2.4" + } + }, + "hat": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", + "integrity": "sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug==" + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -25505,6 +25619,20 @@ "minimist": "^1.2.6" } }, + "mrcolor": { + "version": "https://github.com/rook2pawn/mrcolor/archive/master.tar.gz", + "integrity": "sha512-feteSepg0FRp0fW3RafigAjU7gXiiaa4OlMW39FEmcvQPbD7Zlpc2PSu4hVBPSBR4XNee8n6EjCTfK0O37DL5A==", + "requires": { + "color-convert": "0.2.x" + }, + "dependencies": { + "color-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.2.1.tgz", + "integrity": "sha512-FWbwpCgyRV41Vml0iKU9UmL0dVTKORnm7ZC8h8cdfvutk2bU7ZcMLtSleggScK/IpUVXILg9Pw86LhPUQyTaVg==" + } + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -28206,6 +28334,11 @@ "punycode": "^2.1.1" } }, + "traverse": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", + "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==" + }, "tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", diff --git a/package.json b/package.json index b5df2c0..c6a0687 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "axios": "^1.1.3", + "chart": "^0.1.2", "chart.js": "^3.9.1", "crypto-js": "^4.1.1", "pg": "^8.8.0", diff --git a/server-api/api.js b/server-api/api.js index 8257a57..5edb389 100644 --- a/server-api/api.js +++ b/server-api/api.js @@ -72,6 +72,19 @@ app.get('/User/Auth/:login/:pwd', (req, res) => { }); }); +app.get('/User/role/:login', (req, res) => { + + const login = req.params.login; + let sql = 'SELECT idRole FROM users WHERE login = ?'; + + db.query(sql, [login], (err, result) => { + if (err) throw err; + + console.log(result); + res.send(result); + }); +}); + app.post('/User/Add', (req, res) => { let form = req.body; diff --git a/src/pages/Connexion.js b/src/pages/Connexion.js index 4776347..010c294 100644 --- a/src/pages/Connexion.js +++ b/src/pages/Connexion.js @@ -2,6 +2,7 @@ import axios from 'axios' import React, { useState } from 'react'; import CryptoJS from 'crypto-js'; import Admin from './Admin.js' +import Dashboard from './Dashboard.js'; const api = axios.create({ baseURL: 'http://localhost:8080' @@ -12,6 +13,7 @@ function Connexion() { const [auth, setAuth] = useState(""); const [login, setLogin] = useState(""); const [password, setPassword] = useState(""); + const [roleUser, setRole] = useState(""); function changeLogin(event) { setLogin(event.target.value); @@ -52,9 +54,22 @@ function Connexion() { } if (auth === "Succeed") { - return( - - ); + const apiString = '/User/role/' + login; + api.get(apiString).then((response) => { + const role = response.data; + console.log("Role: " + role[0].idRole); + console.log("longueur role: " + role.length); + if (role.length > 0){ + setRole(role[0].idRole); + } + else + setRole(-1); + }); + console.log("RoleUser: " + roleUser); + if (roleUser === 4) + return (); + else if (roleUser === 1) + return (); } else { return ( From e7fe063334765e298ea463344c48bd81440b058a Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Fri, 4 Nov 2022 17:14:07 +0100 Subject: [PATCH 05/27] Ajout de sous-titres page admin --- src/pages/Admin.js | 1 + src/pages/Admin_modif.js | 1 + src/pages/Admin_supp.js | 1 + src/styles/components/_admin.scss | 40 +++++++++++++++++++++++++------ 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/pages/Admin.js b/src/pages/Admin.js index e2a7605..d5bb895 100644 --- a/src/pages/Admin.js +++ b/src/pages/Admin.js @@ -30,6 +30,7 @@ function Admin() { {/* Create a admin page */}

Admin

+

Création d'utilisateur

diff --git a/src/pages/Admin_modif.js b/src/pages/Admin_modif.js index 86041b9..a636e26 100644 --- a/src/pages/Admin_modif.js +++ b/src/pages/Admin_modif.js @@ -9,6 +9,7 @@ const Admin_modif = () => { {/* Create a admin page */}

Admin

+

Modification d'utilisateur

diff --git a/src/pages/Admin_supp.js b/src/pages/Admin_supp.js index 78f418a..072cdcd 100644 --- a/src/pages/Admin_supp.js +++ b/src/pages/Admin_supp.js @@ -9,6 +9,7 @@ const Admin_supp = () => {

Admin

+

Supression d'utilisateur

diff --git a/src/styles/components/_admin.scss b/src/styles/components/_admin.scss index 08d6be8..1d4128e 100644 --- a/src/styles/components/_admin.scss +++ b/src/styles/components/_admin.scss @@ -95,6 +95,18 @@ font-size: 70px; font-weight: bold; } + + .Sous-titre { + display: flex; + /*background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px);*/ + margin: 10px; + font-size: 40px; + font-weight: bold; + } .Formulaire{ @@ -231,37 +243,51 @@ display: flex; flex-direction: column; flex-basis: 100%; - /*background: rgba(255, 255, 255, 0.3); + background: rgba(255, 255, 255, 0.3); border-radius: 15px; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px);*/ + -webkit-backdrop-filter: blur(15px); margin: 10px; + padding: 10px; .Titre { display: flex; - background: rgba(255, 255, 255, 0.3); + /*background: rgba(255, 255, 255, 0.3); border-radius: 15px; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px); - //margin: 10px; + -webkit-backdrop-filter: blur(15px);*/ + margin: 10px; font-size: 70px; font-weight: bold; } + .Sous-titre { + display: flex; + /*background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px);*/ + margin: 10px; + font-size: 40px; + font-weight: bold; + } + .rechLogo { display: flex; flex-direction: column; flex-basis: 100%; - background: rgba(255, 255, 255, 0.3); + /*background: rgba(255, 255, 255, 0.3); border-radius: 15px; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px); + -webkit-backdrop-filter: blur(15px);*/ //margin: 10px; //padding: 10px; align-items: center; + margin-top: 5%; .input_box { display: flex; From ab591634e120bed91f29f2201d3b60461c98a31f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?cl=C3=A9ment?= Date: Sat, 5 Nov 2022 11:45:28 +0100 Subject: [PATCH 06/27] Merge branch 'master' of https://codefirst.iut.uca.fr/git/maxence.lanone/JTT_CrM --- package-lock.json | 36 ----- src/pages/Dashboard.js | 77 +++++++-- src/styles/components/_dashboard.scss | 216 +++++++++++++++++++++++++- 3 files changed, 274 insertions(+), 55 deletions(-) diff --git a/package-lock.json b/package-lock.json index f76a822..850c3b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5902,26 +5902,6 @@ "node": ">= 0.6" } }, - "node_modules/cookie-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", - "dependencies": { - "cookie": "0.4.1", - "cookie-signature": "1.0.6" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/cookie-parser/node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -21298,22 +21278,6 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, - "cookie-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", - "requires": { - "cookie": "0.4.1", - "cookie-signature": "1.0.6" - }, - "dependencies": { - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - } - } - }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", diff --git a/src/pages/Dashboard.js b/src/pages/Dashboard.js index 439e19a..1139e12 100644 --- a/src/pages/Dashboard.js +++ b/src/pages/Dashboard.js @@ -1,28 +1,75 @@ import React from 'react'; +import NavigationDashboard from '../components/NavigationDashboard'; const Dashboard = () => { return ( - + - - -
- {/* Create a principal page */} -
-

Dashboard

-
-
- - - - -
+ + +
+ {/* Create an account page */} +
+

Dashboard

+
+
+ + + +
- +
+ +
+
+
+
+ Mes infos +
+
+ Alertes +
+
+
+
+ Mes prochaines activités +
+
+
+
+ Chiffre_clés +
+
+ Chiffre_clés +
+
+
+
+ Chiffre_clés +
+
+ Chiffre_clés +
+
+
+
+
+
+
+ clients important +
+
+ contacts ajouté récemment +
+
+
+
+
+ ); }; diff --git a/src/styles/components/_dashboard.scss b/src/styles/components/_dashboard.scss index 50ff578..9684cfc 100644 --- a/src/styles/components/_dashboard.scss +++ b/src/styles/components/_dashboard.scss @@ -1,8 +1,7 @@ -.corps_page_dashboard{ +body { background-image: url("../../../public/fond_page_connexion.png"); - - .page_principale { + .page_dashboard { display: flex; flex-direction: column; justify-content: space-evenly; @@ -84,5 +83,214 @@ } } } + + .bas_de_page { + display: flex; + flex-direction: row; + justify-content: space-between; + width: auto; + height: 86%; + + .nav_bar_verticale { + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; + width: 5%; + margin: 5px 5px 10px 10px; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + .button { + display: flex; + object-fit: cover; + background-color: transparent; + border: none; + cursor: pointer; + + .logo_nav_bar{ + display: flex; + margin: 10px; + height: 50px; + width: 50px; + } + } + } + + .Dashboard { + display: flex; + flex-direction: row; + justify-content: space-between; + width: 93%; + height: auto; + margin: 5px 10px 10px 5px; + + ._gauche { + display: flex; + flex-direction: column; + justify-content: space-between; + width: 76%; + + ._haut { + display: flex; + flex-direction: row; + justify-content: space-between; + width: auto; + height: 40%; + + .Mes_infos { + display: flex; + width: 40%; + height: auto; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + + .Alertes { + display: flex; + width: 58.5%; + height: auto; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + } + + ._bas { + display: flex; + flex-direction: row; + justify-content: space-between; + width: auto; + height: 58%; + + .Mes_prochaines_activités { + display: flex; + width: 45%; + height: auto; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + + .Chiffre_clés { + display: flex; + flex-direction: row; + justify-content: space-between; + width: 53%; + height: auto; + + .Ch_Clé_gauche { + display: flex; + flex-direction: column; + justify-content: space-between; + width: 45%; + height: auto; + + .Ch_Clé_gauche_haut { + display: flex; + width: auto; + height: 53%; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + + .Ch_Clé_gauche_bas { + display: flex; + width: auto; + height: 42%; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + } + + .Ch_Clé_droite { + display: flex; + flex-direction: column; + justify-content: space-between; + width: 51%; + height: auto; + + .Ch_Clé_droite_haut { + display: flex; + width: auto; + height: 46%; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + + .Ch_Clé_droite_bas { + display: flex; + width: auto; + height: 49%; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + } + } + } + } + + ._droite { + display: flex; + flex-direction: column; + justify-content: space-between; + width: 23%; + + .clients_important { + display: flex; + width: auto; + height: 64%; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + + .contacts_ajouté_récemment { + display: flex; + width: auto; + height: 34%; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + } + } + } } -} \ No newline at end of file +} From c7900491c7ee08267e6ed475aa76c6c13f4931f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?cl=C3=A9ment?= Date: Sat, 5 Nov 2022 13:06:55 +0100 Subject: [PATCH 07/27] =?UTF-8?q?Cr=C3=A9ation=20de=20la=20page=20Analyse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Analyse.js | 46 ++++++++++------- src/styles/components/_analyse.scss | 77 ++++++++++++++++++----------- 2 files changed, 74 insertions(+), 49 deletions(-) diff --git a/src/pages/Analyse.js b/src/pages/Analyse.js index c757bf7..64e4d05 100644 --- a/src/pages/Analyse.js +++ b/src/pages/Analyse.js @@ -11,30 +11,38 @@ const api = axios.create({ const Analyse = () => { return ( -
- {/* Create an analysis page */} -
-

Analyse

-
-
- - - - + + + + +
+ {/* Create an analysis page */} +
+

Analyse

+
+
+ + + + +
+
-
-
-
- -
-
- -
+
+ +
+
+ Tendances des ventes +
+
+ Statistique n°2 +
+
-
+ ); }; diff --git a/src/styles/components/_analyse.scss b/src/styles/components/_analyse.scss index ca2783c..3114325 100644 --- a/src/styles/components/_analyse.scss +++ b/src/styles/components/_analyse.scss @@ -1,16 +1,13 @@ -.page_analyse { - display: flex; - flex-direction: column; - //justify-content: space-evenly; - width: auto; - height: 100vh; - - background: rgba(255, 255, 255, 0.143); - border-radius: 15px; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px); +body { + background-image: url("../../../public/fond_page_connexion.png"); + .page_analyse { + display: flex; + flex-direction: column; + justify-content: space-evenly; + width: auto; + height: 100vh; + .haut_de_page { display: flex; flex-direction: row; @@ -20,8 +17,8 @@ height: 10%; align-items: center; margin: 10px 10px 5px 10px; - - background: rgba(255, 255, 255, 0.143); + + background: rgba(255, 255, 255, 0.3); border-radius: 15px; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); backdrop-filter: blur(3px); @@ -30,7 +27,7 @@ .titre { font-size: 40px; } - + .rechLogo { display: flex; flex-direction: row; @@ -86,11 +83,11 @@ } } } - + .bas_de_page { display: flex; flex-direction: row; - //justify-content: space-between; + justify-content: space-between; width: auto; height: 86%; @@ -102,7 +99,7 @@ width: 5%; margin: 5px 5px 10px 10px; - background: rgba(255, 255, 255, 0.143); + background: rgba(255, 255, 255, 0.3); border-radius: 15px; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); backdrop-filter: blur(3px); @@ -124,20 +121,40 @@ } } - .statistiques_1 { + .Analyse { display: flex; flex-direction: column; justify-content: space-evenly; - padding: 50px; - width: 1423px; - height: 627px; - margin: 5px 5px 10px 10px; - - background: rgba(255, 255, 255, 0.143); - border-radius: 15px; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px); + height: auto; + width: 93%; + margin: 5px 10px 10px 5px; + + .Stat_1 { + display: flex; + width: auto; + height: 50%; + margin: 50px 50px 8px 50px; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + + .Stat_2 { + display: flex; + width: auto; + height: 50%; + margin: 8px 50px 50px 50px; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } } } -} + } +} \ No newline at end of file From 6e38a074dd92a08f789f3f2844ee3497e017cabd Mon Sep 17 00:00:00 2001 From: "jeremy.ducourthial" Date: Sun, 6 Nov 2022 10:16:28 +0100 Subject: [PATCH 08/27] =?UTF-8?q?Ajout=20de=20material=20UI=20pour=20Selec?= =?UTF-8?q?t=20et=20Table=20+=20control=20cr=C3=A9ation=20user=20+=20Selec?= =?UTF-8?q?t=20role=20+=20table=20des=20Users?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 826 ++++++++++++++++++++++++++++++++++++++-- package.json | 3 + server-api/api.js | 39 +- src/pages/Admin.js | 61 ++- src/pages/Admin_supp.js | 57 ++- 5 files changed, 937 insertions(+), 49 deletions(-) diff --git a/package-lock.json b/package-lock.json index f76a822..d5b3ecc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "sae3.01", "version": "0.1.0", "dependencies": { + "@emotion/react": "^11.10.5", + "@emotion/styled": "^11.10.5", + "@mui/material": "^5.10.12", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -2142,6 +2145,170 @@ "postcss-selector-parser": "^6.0.10" } }, + "node_modules/@emotion/babel-plugin": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz", + "integrity": "sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.1.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", + "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", + "dependencies": { + "@emotion/memoize": "^0.8.0", + "@emotion/sheet": "^1.2.1", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "stylis": "4.1.3" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "dependencies": { + "@emotion/memoize": "^0.8.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "node_modules/@emotion/react": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.5.tgz", + "integrity": "sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/cache": "^11.10.5", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/unitless": "^0.8.0", + "@emotion/utils": "^1.2.0", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + }, + "node_modules/@emotion/styled": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.5.tgz", + "integrity": "sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/is-prop-valid": "^1.2.0", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" + }, "node_modules/@eslint/eslintrc": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", @@ -2995,6 +3162,237 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, + "node_modules/@mui/base": { + "version": "5.0.0-alpha.104", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.104.tgz", + "integrity": "sha512-tQPxZTzfYMwxYfKhEwufbTfdLpNjFdW7bXq6dK0j8651AAyZL4M8wynWUQ98hH1362R26mZFhVxHB2UD9t7VuA==", + "dependencies": { + "@babel/runtime": "^7.19.0", + "@emotion/is-prop-valid": "^1.2.0", + "@mui/types": "^7.2.0", + "@mui/utils": "^5.10.9", + "@popperjs/core": "^2.11.6", + "clsx": "^1.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/base/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.10.12", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.12.tgz", + "integrity": "sha512-cR8lOS606G++iVHR8I6ySgMAEiPoA3DxO/nLeqiv7w7d1707kvKoV4/7SWjh4ui+kHb052xlf/G196q2EKx31w==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + } + }, + "node_modules/@mui/material": { + "version": "5.10.12", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.12.tgz", + "integrity": "sha512-rG9ZTkG9qUwujyAY1I+uQAa9pkGdsWY3KN+wvS/6H6ZbYIA06QRwmig6ySC6LbeB3WL/I/1ngwJqWX7nfINSbA==", + "dependencies": { + "@babel/runtime": "^7.19.0", + "@mui/base": "5.0.0-alpha.104", + "@mui/core-downloads-tracker": "^5.10.12", + "@mui/system": "^5.10.12", + "@mui/types": "^7.2.0", + "@mui/utils": "^5.10.9", + "@types/react-transition-group": "^4.4.5", + "clsx": "^1.2.1", + "csstype": "^3.1.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/private-theming": { + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.9.tgz", + "integrity": "sha512-BN7/CnsVPVyBaQpDTij4uV2xGYHHHhOgpdxeYLlIu+TqnsVM7wUeF+37kXvHovxM6xmL5qoaVUD98gDC0IZnHg==", + "dependencies": { + "@babel/runtime": "^7.19.0", + "@mui/utils": "^5.10.9", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.10.8", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.8.tgz", + "integrity": "sha512-w+y8WI18EJV6zM/q41ug19cE70JTeO6sWFsQ7tgePQFpy6ToCVPh0YLrtqxUZXSoMStW5FMw0t9fHTFAqPbngw==", + "dependencies": { + "@babel/runtime": "^7.19.0", + "@emotion/cache": "^11.10.3", + "csstype": "^3.1.1", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.10.12", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.12.tgz", + "integrity": "sha512-9DcN3hF2KTTTpZ0K5Tn20B+Tz7tIqDmJLk1M6P0CYoAGUN/xrcF/6dn1zZ829rxE5tmauoDUekTfomrvPsvlSQ==", + "dependencies": { + "@babel/runtime": "^7.19.0", + "@mui/private-theming": "^5.10.9", + "@mui/styled-engine": "^5.10.8", + "@mui/types": "^7.2.0", + "@mui/utils": "^5.10.9", + "clsx": "^1.2.1", + "csstype": "^3.1.1", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz", + "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==", + "peerDependencies": { + "@types/react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.9.tgz", + "integrity": "sha512-2tdHWrq3+WCy+G6TIIaFx3cg7PorXZ71P375ExuX61od1NOAJP1mK90VxQ8N4aqnj2vmO3AQDkV4oV2Ktvt4bA==", + "dependencies": { + "@babel/runtime": "^7.19.0", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0" + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -3104,6 +3502,15 @@ } } }, + "node_modules/@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@remix-run/router": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.2.tgz", @@ -4119,6 +4526,22 @@ "@types/react": "*" } }, + "node_modules/@types/react-is": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", + "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -5702,6 +6125,14 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -5902,26 +6333,6 @@ "node": ">= 0.6" } }, - "node_modules/cookie-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", - "dependencies": { - "cookie": "0.4.1", - "cookie-signature": "1.0.6" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/cookie-parser/node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -6642,6 +7053,15 @@ "utila": "~0.4" } }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -8007,6 +8427,11 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -8610,6 +9035,19 @@ "he": "bin/he" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -14358,6 +14796,21 @@ } } }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -15489,6 +15942,11 @@ "postcss": "^8.2.15" } }, + "node_modules/stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -18498,6 +18956,133 @@ "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", "requires": {} }, + "@emotion/babel-plugin": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz", + "integrity": "sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.1.3" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + } + } + }, + "@emotion/cache": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", + "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", + "requires": { + "@emotion/memoize": "^0.8.0", + "@emotion/sheet": "^1.2.1", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "stylis": "4.1.3" + } + }, + "@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + }, + "@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "requires": { + "@emotion/memoize": "^0.8.0" + } + }, + "@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "@emotion/react": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.5.tgz", + "integrity": "sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/cache": "^11.10.5", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", + "requires": { + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/unitless": "^0.8.0", + "@emotion/utils": "^1.2.0", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + }, + "@emotion/styled": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.5.tgz", + "integrity": "sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/is-prop-valid": "^1.2.0", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0" + } + }, + "@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "requires": {} + }, + "@emotion/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" + }, + "@emotion/weak-memoize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" + }, "@eslint/eslintrc": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", @@ -19128,6 +19713,120 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, + "@mui/base": { + "version": "5.0.0-alpha.104", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.104.tgz", + "integrity": "sha512-tQPxZTzfYMwxYfKhEwufbTfdLpNjFdW7bXq6dK0j8651AAyZL4M8wynWUQ98hH1362R26mZFhVxHB2UD9t7VuA==", + "requires": { + "@babel/runtime": "^7.19.0", + "@emotion/is-prop-valid": "^1.2.0", + "@mui/types": "^7.2.0", + "@mui/utils": "^5.10.9", + "@popperjs/core": "^2.11.6", + "clsx": "^1.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, + "@mui/core-downloads-tracker": { + "version": "5.10.12", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.12.tgz", + "integrity": "sha512-cR8lOS606G++iVHR8I6ySgMAEiPoA3DxO/nLeqiv7w7d1707kvKoV4/7SWjh4ui+kHb052xlf/G196q2EKx31w==" + }, + "@mui/material": { + "version": "5.10.12", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.12.tgz", + "integrity": "sha512-rG9ZTkG9qUwujyAY1I+uQAa9pkGdsWY3KN+wvS/6H6ZbYIA06QRwmig6ySC6LbeB3WL/I/1ngwJqWX7nfINSbA==", + "requires": { + "@babel/runtime": "^7.19.0", + "@mui/base": "5.0.0-alpha.104", + "@mui/core-downloads-tracker": "^5.10.12", + "@mui/system": "^5.10.12", + "@mui/types": "^7.2.0", + "@mui/utils": "^5.10.9", + "@types/react-transition-group": "^4.4.5", + "clsx": "^1.2.1", + "csstype": "^3.1.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, + "@mui/private-theming": { + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.9.tgz", + "integrity": "sha512-BN7/CnsVPVyBaQpDTij4uV2xGYHHHhOgpdxeYLlIu+TqnsVM7wUeF+37kXvHovxM6xmL5qoaVUD98gDC0IZnHg==", + "requires": { + "@babel/runtime": "^7.19.0", + "@mui/utils": "^5.10.9", + "prop-types": "^15.8.1" + } + }, + "@mui/styled-engine": { + "version": "5.10.8", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.8.tgz", + "integrity": "sha512-w+y8WI18EJV6zM/q41ug19cE70JTeO6sWFsQ7tgePQFpy6ToCVPh0YLrtqxUZXSoMStW5FMw0t9fHTFAqPbngw==", + "requires": { + "@babel/runtime": "^7.19.0", + "@emotion/cache": "^11.10.3", + "csstype": "^3.1.1", + "prop-types": "^15.8.1" + } + }, + "@mui/system": { + "version": "5.10.12", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.12.tgz", + "integrity": "sha512-9DcN3hF2KTTTpZ0K5Tn20B+Tz7tIqDmJLk1M6P0CYoAGUN/xrcF/6dn1zZ829rxE5tmauoDUekTfomrvPsvlSQ==", + "requires": { + "@babel/runtime": "^7.19.0", + "@mui/private-theming": "^5.10.9", + "@mui/styled-engine": "^5.10.8", + "@mui/types": "^7.2.0", + "@mui/utils": "^5.10.9", + "clsx": "^1.2.1", + "csstype": "^3.1.1", + "prop-types": "^15.8.1" + } + }, + "@mui/types": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz", + "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==", + "requires": {} + }, + "@mui/utils": { + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.9.tgz", + "integrity": "sha512-2tdHWrq3+WCy+G6TIIaFx3cg7PorXZ71P375ExuX61od1NOAJP1mK90VxQ8N4aqnj2vmO3AQDkV4oV2Ktvt4bA==", + "requires": { + "@babel/runtime": "^7.19.0", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, "@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -19191,6 +19890,11 @@ "source-map": "^0.7.3" } }, + "@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" + }, "@remix-run/router": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.2.tgz", @@ -19957,6 +20661,22 @@ "@types/react": "*" } }, + "@types/react-is": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", + "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", + "requires": { + "@types/react": "*" + } + }, + "@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "requires": { + "@types/react": "*" + } + }, "@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -21142,6 +21862,11 @@ "wrap-ansi": "^7.0.0" } }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -21298,22 +22023,6 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, - "cookie-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", - "requires": { - "cookie": "0.4.1", - "cookie-signature": "1.0.6" - }, - "dependencies": { - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - } - } - }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -21817,6 +22526,15 @@ "utila": "~0.4" } }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -22826,6 +23544,11 @@ "pkg-dir": "^4.1.0" } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -23230,6 +23953,21 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -27208,6 +27946,17 @@ "workbox-webpack-plugin": "^6.4.1" } }, + "react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -28039,6 +28788,11 @@ "postcss-selector-parser": "^6.0.4" } }, + "stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", diff --git a/package.json b/package.json index c6a0687..3831570 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,9 @@ "version": "0.1.0", "private": true, "dependencies": { + "@emotion/react": "^11.10.5", + "@emotion/styled": "^11.10.5", + "@mui/material": "^5.10.12", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/server-api/api.js b/server-api/api.js index 5edb389..11dc8dc 100644 --- a/server-api/api.js +++ b/server-api/api.js @@ -72,7 +72,7 @@ app.get('/User/Auth/:login/:pwd', (req, res) => { }); }); -app.get('/User/role/:login', (req, res) => { +app.get('/User/Role/:login', (req, res) => { const login = req.params.login; let sql = 'SELECT idRole FROM users WHERE login = ?'; @@ -85,6 +85,43 @@ app.get('/User/role/:login', (req, res) => { }); }); +app.get('/Role/All/', (req, res) => { + + let sql = 'SELECT idRole,name FROM roles ORDER BY idRole'; + + db.query(sql, (err, result) => { + if (err) throw err; + + console.log(result); + res.send(result); + }); +}); + +app.get('/User/All', (req, res) => { + + let sql = 'SELECT iduser,lastname,firstname,login,phone,mail,roles.name FROM users,roles where users.idrole = roles.idrole Order by roles.idrole,lastname,firstname;'; + + db.query(sql, (err, result) => { + if (err) throw err; + + console.log(result); + res.send(result); + }); +}); + +app.get('/User/Exist/:login', (req, res) => { + + const login = req.params.login; + let sql = 'SELECT idUser FROM users WHERE login = ?'; + + db.query(sql, [login], (err, result) => { + if (err) throw err; + + console.log(result); + res.send(result); + }); +}); + app.post('/User/Add', (req, res) => { let form = req.body; diff --git a/src/pages/Admin.js b/src/pages/Admin.js index e2a7605..04fd571 100644 --- a/src/pages/Admin.js +++ b/src/pages/Admin.js @@ -1,6 +1,9 @@ -import React from 'react'; +import React, { useState, useEffect } from 'react'; import axios from 'axios' import NavigationAdmin from '../components/NavigationAdmin.js'; +import CryptoJS from 'crypto-js'; +import Select, { SelectChangeEvent } from '@mui/material/Select'; +import MenuItem from '@mui/material/MenuItem'; const api = axios.create({ baseURL: 'http://localhost:8080' @@ -8,19 +11,41 @@ const api = axios.create({ function Admin() { + const [loginError, setLoginError] = useState(false); + const [roles, setRoles] = useState([]); + const [selectedIdRole, setSelectedIdRole] = useState(1); + + useEffect(() =>{ + api.get('/Role/All/').then((response) => { + setRoles(response.data); + }); + }, []); + + function handleChangeRole(event){ + setSelectedIdRole(event.target.value); + }; + function checkAdd(event){ event.preventDefault(); 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; + if (login.length > 0){ + setLoginError(true); + } + else { + setLoginError(false); + values.password = CryptoJS.SHA256(values.password).toString(CryptoJS.enc.Hex); - - - api.post('/User/Add', values).then (function(response) { - console.log(response.data); + api.post('/User/Add', values).then (function(response) { + console.log(response.data); + }); + } }); }; @@ -37,19 +62,33 @@ function Admin() {

Nom :

Prénom :

+

Téléphone :

+

Email :

Rôle :

Identifiant :

Mot de passe :

- - - - - + + + + + + +
+

{loginError === true?"L'identifiant existe déja":''}

diff --git a/src/pages/Admin_supp.js b/src/pages/Admin_supp.js index 78f418a..ed53efd 100644 --- a/src/pages/Admin_supp.js +++ b/src/pages/Admin_supp.js @@ -1,7 +1,29 @@ -import React from 'react'; +import React, { useState, useEffect } from 'react'; +import axios from 'axios' import NavigationAdmin from '../components/NavigationAdmin.js'; +import { TableContainer,Table,TableHead,TableBody,TableRow,TableCell } from '@mui/material'; +import { Paper } from '@mui/material'; + +const api = axios.create({ + baseURL: 'http://localhost:8080' + }) const Admin_supp = () => { + + const [users, setUsers] = useState([]); + const [selectedIdUser, setSelectedIdUser] = useState(); + + useEffect(() =>{ + api.get('/User/All/').then((response) => { + setUsers(response.data); + setSelectedIdUser(response.data[0].iduser); + }); + }, []); + + const handleClick = (event, iduser) => { + setSelectedIdUser(iduser); + }; + return (
@@ -16,6 +38,7 @@ const Admin_supp = () => {
+ {/* @@ -36,6 +59,38 @@ const Admin_supp = () => {
+ */} + + + + + Nom + Prénom + 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} + + ))} + +
+
From 16421face4f7faa055131cc7bab875cffe6d8046 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?cl=C3=A9ment?= Date: Sun, 6 Nov 2022 12:32:19 +0100 Subject: [PATCH 09/27] =?UTF-8?q?D=C3=A9finiton=20page=20calendrier,=20rep?= =?UTF-8?q?ertoire=20et=20parametre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.js | 6 ++++++ src/components/NavigationDashboard.js | 4 ++-- src/pages/Calendrier.js | 13 +++++++++++++ src/pages/Parametres.js | 13 +++++++++++++ src/pages/Repertoire.js | 13 +++++++++++++ 5 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/pages/Calendrier.js create mode 100644 src/pages/Parametres.js create mode 100644 src/pages/Repertoire.js diff --git a/src/App.js b/src/App.js index ebde1e4..3f66629 100644 --- a/src/App.js +++ b/src/App.js @@ -7,6 +7,9 @@ import Admin_modif from './pages/Admin_modif'; import Admin_supp from './pages/Admin_supp'; import Dashboard from './pages/Dashboard'; import Analyse from './pages/Analyse'; +import Calendrier from './pages/Calendrier'; +import Repertoire from './pages/Repertoire'; +import Parametres from './pages/Parametres'; const App = () => { return ( @@ -19,6 +22,9 @@ const App = () => { } /> } /> } /> + } /> + } /> + } /> ); diff --git a/src/components/NavigationDashboard.js b/src/components/NavigationDashboard.js index c39d0be..cef9944 100644 --- a/src/components/NavigationDashboard.js +++ b/src/components/NavigationDashboard.js @@ -33,14 +33,14 @@ const NavigationDashboard = () => {
- +
- +
- + diff --git a/src/pages/Admin.js b/src/pages/Admin_create.js similarity index 89% rename from src/pages/Admin.js rename to src/pages/Admin_create.js index da4c60b..ba02f93 100644 --- a/src/pages/Admin.js +++ b/src/pages/Admin_create.js @@ -4,16 +4,21 @@ import NavigationAdmin from '../components/NavigationAdmin.js'; import CryptoJS from 'crypto-js'; 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"; +import { Button } from '@mui/material'; const api = axios.create({ baseURL: 'http://localhost:8080' }) -function Admin() { +function Admin_create() { const [loginError, setLoginError] = useState(false); const [roles, setRoles] = useState([]); const [selectedIdRole, setSelectedIdRole] = useState(1); + + const navigate = useNavigate(); useEffect(() =>{ api.get('/Role/All/').then((response) => { @@ -45,13 +50,15 @@ function Admin() { api.post('/User/Add', values).then (function(response) { console.log(response.data); }); + + navigate("/Admin_list"); } }); }; return (
- + {/**/} {/* Create a admin page */}

Admin

@@ -92,7 +99,9 @@ function Admin() {

{loginError === true?"L'identifiant existe déja":''}

- + + +
@@ -101,4 +110,4 @@ function Admin() { ); }; -export default Admin; \ No newline at end of file +export default Admin_create; \ No newline at end of file diff --git a/src/pages/Admin_list.js b/src/pages/Admin_list.js new file mode 100644 index 0000000..d31c28a --- /dev/null +++ b/src/pages/Admin_list.js @@ -0,0 +1,101 @@ +import React, { useState, useEffect } from 'react'; +import axios from 'axios' +import NavigationAdmin from '../components/NavigationAdmin.js'; +import { TableContainer,Table,TableHead,TableBody,TableRow,TableCell } from '@mui/material'; +import { Paper } from '@mui/material'; + +const api = axios.create({ + baseURL: 'http://localhost:8080' + }) + +function Admin_list() { + + const [users, setUsers] = useState([]); + const [selectedIdUser, setSelectedIdUser] = useState(); + + useEffect(() =>{ + api.get('/User/All/').then((response) => { + setUsers(response.data); + setSelectedIdUser(response.data[0].iduser); + }); + }, []); + + const handleClick = (event, iduser) => { + setSelectedIdUser(iduser); + }; + + return ( +
+ + {/* Create a page to delete an user in the admin page*/} + +
+

Admin

+

Liste des utilisateurs

+
+
+ + + + +
+ {/* +
+ + +
+

+ Dupont Jacques +

+

+ Carreau Alexis +

+
+ + +
+ + +
+ +
+
+ */} + + + + + Nom + Prénom + 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} + + ))} + +
+
+
+
+
+ ); +}; + +export default Admin_list; \ No newline at end of file diff --git a/src/pages/Admin_modif.js b/src/pages/Admin_modif.js index a636e26..6642cf2 100644 --- a/src/pages/Admin_modif.js +++ b/src/pages/Admin_modif.js @@ -1,8 +1,42 @@ -import React from 'react'; +import axios from 'axios' +import React, { useState, useEffect } from 'react'; import NavigationAdmin from '../components/NavigationAdmin.js'; -import Admin from './Admin.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'; + +const api = axios.create({ + baseURL: 'http://localhost:8080' + }) + +function Admin_modif() { + const location = useLocation(); + const { iduser } = location.state; + + const [currentUser, setCurrentUser] = useState([]); + const [roles, setRoles] = useState([]); + const [selectedIdRole, setSelectedIdRole] = useState(1); + + useEffect(() =>{ + const apiString = '/User/Id/' + iduser; + api.get(apiString).then((response) => { + console.log(response.data); + setCurrentUser(response.data); + setSelectedIdRole(response.data[0].idrole); + }); + }); + + useEffect(() =>{ + api.get('/Role/All/').then((response) => { + setRoles(response.data); + }); + }, []); + + function handleChangeRole(event){ + setSelectedIdRole(event.target.value); + }; -const Admin_modif = () => { return (
@@ -23,11 +57,25 @@ const Admin_modif = () => {
- - - - - + + {/* + + + + */} + + {/* + + */}
diff --git a/src/pages/Connexion.js b/src/pages/Connexion.js index 010c294..59f3eb9 100644 --- a/src/pages/Connexion.js +++ b/src/pages/Connexion.js @@ -1,8 +1,9 @@ import axios from 'axios' import React, { useState } from 'react'; import CryptoJS from 'crypto-js'; -import Admin from './Admin.js' +import Admin from './Admin_create.js' import Dashboard from './Dashboard.js'; +import Admin_list from './Admin_list.js'; const api = axios.create({ baseURL: 'http://localhost:8080' @@ -67,7 +68,7 @@ function Connexion() { }); console.log("RoleUser: " + roleUser); if (roleUser === 4) - return (); + return (); else if (roleUser === 1) return (); } From 845c40b2166770cfd242b94d9f38964e51ce6030 Mon Sep 17 00:00:00 2001 From: "jeremy.ducourthial" Date: Sun, 6 Nov 2022 19:28:43 +0100 Subject: [PATCH 11/27] Correction Bug : Attention name= avec des guillemets --- src/pages/Admin_modif.js | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/pages/Admin_modif.js b/src/pages/Admin_modif.js index 6642cf2..f3243cf 100644 --- a/src/pages/Admin_modif.js +++ b/src/pages/Admin_modif.js @@ -21,8 +21,7 @@ function Admin_modif() { useEffect(() =>{ const apiString = '/User/Id/' + iduser; api.get(apiString).then((response) => { - console.log(response.data); - setCurrentUser(response.data); + setCurrentUser(response.data[0]); setSelectedIdRole(response.data[0].idrole); }); }); @@ -53,17 +52,13 @@ function Admin_modif() {

Prénom :

Rôle :

Identifiant :

+

Identifiant :

Mot de passe :

- - {/* - - - - */} + + - {/* - - */} + + +
From 9f5eb502f89fb75886a2c331d4d8a4f60b8199c8 Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Mon, 7 Nov 2022 23:22:24 +0100 Subject: [PATCH 12/27] Ajout du calendrier dans la page calendrier --- package-lock.json | 532 +++++++++++++++++++++++++ package.json | 9 + src/App.js | 8 +- src/components/NavigationDashboard.js | 3 +- src/pages/Calendrier.js | 68 +++- src/styles/components/_calendrier.scss | 137 +++++++ src/styles/index.scss | 3 +- 7 files changed, 754 insertions(+), 6 deletions(-) create mode 100644 src/styles/components/_calendrier.scss diff --git a/package-lock.json b/package-lock.json index d5b3ecc..0c27507 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,11 @@ "dependencies": { "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", + "@fullcalendar/core": "^5.11.3", + "@fullcalendar/daygrid": "^5.11.3", + "@fullcalendar/list": "^5.11.3", + "@fullcalendar/react": "^5.11.2", + "@fullcalendar/timegrid": "^5.11.3", "@mui/material": "^5.10.12", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", @@ -18,8 +23,12 @@ "chart": "^0.1.2", "chart.js": "^3.9.1", "crypto-js": "^4.1.1", + "date-fns": "^2.29.3", + "fullcalendar": "^5.11.3", "pg": "^8.8.0", "react": "^18.2.0", + "react-big-calendar": "^1.5.0", + "react-datepicker": "^4.8.0", "react-dom": "^18.2.0", "react-router-dom": "^6.4.2", "react-scripts": "^5.0.1", @@ -2372,6 +2381,65 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@fullcalendar/common": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/@fullcalendar/common/-/common-5.11.3.tgz", + "integrity": "sha512-welVwyfQOXQQGfDwBMSfYEPbiO1cPfUD+C7jd3ZoweJR+dSO11ddFugxIQ7dGfABAGZ63oq/+LW9FsmAJezVNg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@fullcalendar/core": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-5.11.3.tgz", + "integrity": "sha512-YUFxCvVJytUwFeXCx4J17kFMM7Ixwn9zBjVRw5NM2bMwgR6VAhSnlZc6yNQSOIy7Hj2TF0vDkO/4JNlTvxyAXw==", + "dependencies": { + "@fullcalendar/common": "~5.11.3", + "preact": "^10.0.5", + "tslib": "^2.1.0" + } + }, + "node_modules/@fullcalendar/daygrid": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-5.11.3.tgz", + "integrity": "sha512-PCK0y80DRNCzWuC5lGpIWqCgKDvql1ah7rXql5lu+Gn2EeFj15ZQ8diMFjtNIQucEmFaNOXnR05Pgcry1n6Shg==", + "dependencies": { + "@fullcalendar/common": "~5.11.3", + "tslib": "^2.1.0" + } + }, + "node_modules/@fullcalendar/list": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/@fullcalendar/list/-/list-5.11.3.tgz", + "integrity": "sha512-6m9rJPzB5XfJZg+MlgVpha1cI3NUDeyV3GOmojJWZuti05NfDP4f0lzFUul8W7m1DQcjGS2UPRNE8HouA3guEA==", + "dependencies": { + "@fullcalendar/common": "~5.11.3", + "tslib": "^2.1.0" + } + }, + "node_modules/@fullcalendar/react": { + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-5.11.2.tgz", + "integrity": "sha512-OnLvfV406VEQcK4QGN8xR4ro6Manp9dKE7/n9dhs19J1kKpqS1w1sIEYg1dT11njbk0Ob+TdF3cXLDFq73jUlA==", + "dependencies": { + "@fullcalendar/common": "~5.11.2", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": "^16.7.0 || ^17 || ^18", + "react-dom": "^16.7.0 || ^17 || ^18" + } + }, + "node_modules/@fullcalendar/timegrid": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-5.11.3.tgz", + "integrity": "sha512-SjIj2ZQ7nTyL1RxZkCPvNbuUQ0xHT+gfYJdUL3FT4bPjPJCxWtQ2CL8hxaeNmVozYYuy0yrGTW5Oup2+9IplbA==", + "dependencies": { + "@fullcalendar/common": "~5.11.3", + "@fullcalendar/daygrid": "~5.11.3", + "tslib": "^2.1.0" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.10.7", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", @@ -3519,6 +3587,17 @@ "node": ">=14" } }, + "node_modules/@restart/hooks": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz", + "integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==", + "dependencies": { + "dequal": "^2.0.2" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -4603,6 +4682,11 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" }, + "node_modules/@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" + }, "node_modules/@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -6096,6 +6180,11 @@ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, "node_modules/clean-css": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", @@ -6823,6 +6912,23 @@ "node": ">=10" } }, + "node_modules/date-arithmetic": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-arithmetic/-/date-arithmetic-4.1.0.tgz", + "integrity": "sha512-QWxYLR5P/6GStZcdem+V1xoto6DMadYWpMXU82ES3/RfR3Wdwr3D0+be7mgOJ+Ov0G9D5Dmb9T17sNLQYj9XOg==" + }, + "node_modules/date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -6917,6 +7023,14 @@ "node": ">= 0.8" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -8716,6 +8830,11 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/fullcalendar": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/fullcalendar/-/fullcalendar-5.11.3.tgz", + "integrity": "sha512-SgqiMEA+lWLyEd2jEwtIxdfx41j2CZr4KK00D2Gepj1MnGOjaEi13athnU6xvqMQXXjgJNj+vmlUP69QiuGncQ==" + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -8884,6 +9003,11 @@ "which": "bin/which" } }, + "node_modules/globalize": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/globalize/-/globalize-0.1.1.tgz", + "integrity": "sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA==" + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -9413,6 +9537,14 @@ "node": ">= 0.4" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -12032,6 +12164,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -12087,6 +12224,14 @@ "node": ">=10" } }, + "node_modules/luxon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz", + "integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A==", + "engines": { + "node": ">=12" + } + }, "node_modules/lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", @@ -12157,6 +12302,11 @@ "node": ">= 4.0.0" } }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -12340,6 +12490,25 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.38", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.38.tgz", + "integrity": "sha512-nMIrzGah4+oYZPflDvLZUgoVUO4fvAqHstvG3xAUnMolWncuAiLDWNnJZj6EwJGMGfb1ZcuTFE6GI3hNOVWI/Q==", + "dependencies": { + "moment": ">= 2.9.0" + }, + "engines": { + "node": "*" + } + }, "node_modules/mrcolor": { "version": "0.0.1", "resolved": "https://github.com/rook2pawn/mrcolor/archive/master.tar.gz", @@ -14275,6 +14444,15 @@ "node": ">=0.10.0" } }, + "node_modules/preact": { + "version": "10.11.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.2.tgz", + "integrity": "sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -14547,6 +14725,49 @@ "node": ">=14" } }, + "node_modules/react-big-calendar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/react-big-calendar/-/react-big-calendar-1.5.0.tgz", + "integrity": "sha512-/BAJqufxtIf4oR51+7LBtPnqTrghzszzYCGlLaaLlxvVxXBVvTWRcKuyR6KMSuo0zQ/8b94JMG75hiPRe3DWlw==", + "dependencies": { + "@babel/runtime": "^7.18.6", + "clsx": "^1.2.1", + "date-arithmetic": "^4.1.0", + "dom-helpers": "^5.2.1", + "globalize": "^0.1.1", + "invariant": "^2.2.4", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "luxon": "^2.4.0", + "memoize-one": "^6.0.0", + "moment": "^2.29.4", + "moment-timezone": "^0.5.34", + "prop-types": "^15.8.1", + "react-overlays": "^5.2.0", + "uncontrollable": "^7.2.1" + }, + "peerDependencies": { + "react": "^16.14.0 || ^17 || ^18", + "react-dom": "^16.14.0 || ^17 || ^18" + } + }, + "node_modules/react-datepicker": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.8.0.tgz", + "integrity": "sha512-u69zXGHMpxAa4LeYR83vucQoUCJQ6m/WBsSxmUMu/M8ahTSVMMyiyQzauHgZA2NUr9y0FUgOAix71hGYUb6tvg==", + "dependencies": { + "@popperjs/core": "^2.9.2", + "classnames": "^2.2.6", + "date-fns": "^2.24.0", + "prop-types": "^15.7.2", + "react-onclickoutside": "^6.12.0", + "react-popper": "^2.2.5" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17 || ^18", + "react-dom": "^16.9.0 || ^17 || ^18" + } + }, "node_modules/react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", @@ -14681,11 +14902,67 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "node_modules/react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-onclickoutside": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.2.tgz", + "integrity": "sha512-NMXGa223OnsrGVp5dJHkuKxQ4czdLmXSp5jSV9OqiCky9LOpPATn3vLldc+q5fK3gKbEHvr7J1u0yhBh/xYkpA==", + "funding": { + "type": "individual", + "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" + }, + "peerDependencies": { + "react": "^15.5.x || ^16.x || ^17.x || ^18.x", + "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x" + } + }, + "node_modules/react-overlays": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", + "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", + "dependencies": { + "@babel/runtime": "^7.13.8", + "@popperjs/core": "^2.11.6", + "@restart/hooks": "^0.4.7", + "@types/warning": "^3.0.0", + "dom-helpers": "^5.2.0", + "prop-types": "^15.7.2", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, + "node_modules/react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", + "dependencies": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + }, + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" + } + }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -16485,6 +16762,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "dependencies": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -16692,6 +16983,14 @@ "makeerror": "1.0.12" } }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -19127,6 +19426,61 @@ } } }, + "@fullcalendar/common": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/@fullcalendar/common/-/common-5.11.3.tgz", + "integrity": "sha512-welVwyfQOXQQGfDwBMSfYEPbiO1cPfUD+C7jd3ZoweJR+dSO11ddFugxIQ7dGfABAGZ63oq/+LW9FsmAJezVNg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@fullcalendar/core": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-5.11.3.tgz", + "integrity": "sha512-YUFxCvVJytUwFeXCx4J17kFMM7Ixwn9zBjVRw5NM2bMwgR6VAhSnlZc6yNQSOIy7Hj2TF0vDkO/4JNlTvxyAXw==", + "requires": { + "@fullcalendar/common": "~5.11.3", + "preact": "^10.0.5", + "tslib": "^2.1.0" + } + }, + "@fullcalendar/daygrid": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-5.11.3.tgz", + "integrity": "sha512-PCK0y80DRNCzWuC5lGpIWqCgKDvql1ah7rXql5lu+Gn2EeFj15ZQ8diMFjtNIQucEmFaNOXnR05Pgcry1n6Shg==", + "requires": { + "@fullcalendar/common": "~5.11.3", + "tslib": "^2.1.0" + } + }, + "@fullcalendar/list": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/@fullcalendar/list/-/list-5.11.3.tgz", + "integrity": "sha512-6m9rJPzB5XfJZg+MlgVpha1cI3NUDeyV3GOmojJWZuti05NfDP4f0lzFUul8W7m1DQcjGS2UPRNE8HouA3guEA==", + "requires": { + "@fullcalendar/common": "~5.11.3", + "tslib": "^2.1.0" + } + }, + "@fullcalendar/react": { + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-5.11.2.tgz", + "integrity": "sha512-OnLvfV406VEQcK4QGN8xR4ro6Manp9dKE7/n9dhs19J1kKpqS1w1sIEYg1dT11njbk0Ob+TdF3cXLDFq73jUlA==", + "requires": { + "@fullcalendar/common": "~5.11.2", + "tslib": "^2.1.0" + } + }, + "@fullcalendar/timegrid": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-5.11.3.tgz", + "integrity": "sha512-SjIj2ZQ7nTyL1RxZkCPvNbuUQ0xHT+gfYJdUL3FT4bPjPJCxWtQ2CL8hxaeNmVozYYuy0yrGTW5Oup2+9IplbA==", + "requires": { + "@fullcalendar/common": "~5.11.3", + "@fullcalendar/daygrid": "~5.11.3", + "tslib": "^2.1.0" + } + }, "@humanwhocodes/config-array": { "version": "0.10.7", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", @@ -19900,6 +20254,14 @@ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.2.tgz", "integrity": "sha512-GRSOFhJzjGN+d4sKHTMSvNeUPoZiDHWmRnXfzaxrqe7dE/Nzlc8BiMSJdLDESZlndM7jIUrZ/F4yWqVYlI0rwQ==" }, + "@restart/hooks": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz", + "integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==", + "requires": { + "dequal": "^2.0.2" + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -20738,6 +21100,11 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" }, + "@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" + }, "@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -21837,6 +22204,11 @@ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" }, + "classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, "clean-css": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", @@ -22355,6 +22727,16 @@ "whatwg-url": "^8.0.0" } }, + "date-arithmetic": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-arithmetic/-/date-arithmetic-4.1.0.tgz", + "integrity": "sha512-QWxYLR5P/6GStZcdem+V1xoto6DMadYWpMXU82ES3/RfR3Wdwr3D0+be7mgOJ+Ov0G9D5Dmb9T17sNLQYj9XOg==" + }, + "date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -22420,6 +22802,11 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" + }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -23731,6 +24118,11 @@ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "optional": true }, + "fullcalendar": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/fullcalendar/-/fullcalendar-5.11.3.tgz", + "integrity": "sha512-SgqiMEA+lWLyEd2jEwtIxdfx41j2CZr4KK00D2Gepj1MnGOjaEi13athnU6xvqMQXXjgJNj+vmlUP69QiuGncQ==" + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -23850,6 +24242,11 @@ } } }, + "globalize": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/globalize/-/globalize-0.1.1.tgz", + "integrity": "sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA==" + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -24237,6 +24634,14 @@ "side-channel": "^1.0.4" } }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -26126,6 +26531,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -26175,6 +26585,11 @@ "yallist": "^4.0.0" } }, + "luxon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz", + "integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A==" + }, "lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", @@ -26229,6 +26644,11 @@ "fs-monkey": "^1.0.3" } }, + "memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -26357,6 +26777,19 @@ "minimist": "^1.2.6" } }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + }, + "moment-timezone": { + "version": "0.5.38", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.38.tgz", + "integrity": "sha512-nMIrzGah4+oYZPflDvLZUgoVUO4fvAqHstvG3xAUnMolWncuAiLDWNnJZj6EwJGMGfb1ZcuTFE6GI3hNOVWI/Q==", + "requires": { + "moment": ">= 2.9.0" + } + }, "mrcolor": { "version": "https://github.com/rook2pawn/mrcolor/archive/master.tar.gz", "integrity": "sha512-feteSepg0FRp0fW3RafigAjU7gXiiaa4OlMW39FEmcvQPbD7Zlpc2PSu4hVBPSBR4XNee8n6EjCTfK0O37DL5A==", @@ -27562,6 +27995,11 @@ "xtend": "^4.0.0" } }, + "preact": { + "version": "10.11.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.2.tgz", + "integrity": "sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw==" + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -27764,6 +28202,41 @@ "whatwg-fetch": "^3.6.2" } }, + "react-big-calendar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/react-big-calendar/-/react-big-calendar-1.5.0.tgz", + "integrity": "sha512-/BAJqufxtIf4oR51+7LBtPnqTrghzszzYCGlLaaLlxvVxXBVvTWRcKuyR6KMSuo0zQ/8b94JMG75hiPRe3DWlw==", + "requires": { + "@babel/runtime": "^7.18.6", + "clsx": "^1.2.1", + "date-arithmetic": "^4.1.0", + "dom-helpers": "^5.2.1", + "globalize": "^0.1.1", + "invariant": "^2.2.4", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "luxon": "^2.4.0", + "memoize-one": "^6.0.0", + "moment": "^2.29.4", + "moment-timezone": "^0.5.34", + "prop-types": "^15.8.1", + "react-overlays": "^5.2.0", + "uncontrollable": "^7.2.1" + } + }, + "react-datepicker": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.8.0.tgz", + "integrity": "sha512-u69zXGHMpxAa4LeYR83vucQoUCJQ6m/WBsSxmUMu/M8ahTSVMMyiyQzauHgZA2NUr9y0FUgOAix71hGYUb6tvg==", + "requires": { + "@popperjs/core": "^2.9.2", + "classnames": "^2.2.6", + "date-fns": "^2.24.0", + "prop-types": "^15.7.2", + "react-onclickoutside": "^6.12.0", + "react-popper": "^2.2.5" + } + }, "react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", @@ -27864,11 +28337,51 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-onclickoutside": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.2.tgz", + "integrity": "sha512-NMXGa223OnsrGVp5dJHkuKxQ4czdLmXSp5jSV9OqiCky9LOpPATn3vLldc+q5fK3gKbEHvr7J1u0yhBh/xYkpA==", + "requires": {} + }, + "react-overlays": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", + "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", + "requires": { + "@babel/runtime": "^7.13.8", + "@popperjs/core": "^2.11.6", + "@restart/hooks": "^0.4.7", + "@types/warning": "^3.0.0", + "dom-helpers": "^5.2.0", + "prop-types": "^15.7.2", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + } + }, + "react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", + "requires": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + } + }, "react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -29196,6 +29709,17 @@ "which-boxed-primitive": "^1.0.2" } }, + "uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "requires": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + } + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -29344,6 +29868,14 @@ "makeerror": "1.0.12" } }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", diff --git a/package.json b/package.json index 3831570..18231e3 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,11 @@ "dependencies": { "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", + "@fullcalendar/core": "^5.11.3", + "@fullcalendar/daygrid": "^5.11.3", + "@fullcalendar/list": "^5.11.3", + "@fullcalendar/react": "^5.11.2", + "@fullcalendar/timegrid": "^5.11.3", "@mui/material": "^5.10.12", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", @@ -13,8 +18,12 @@ "chart": "^0.1.2", "chart.js": "^3.9.1", "crypto-js": "^4.1.1", + "date-fns": "^2.29.3", + "fullcalendar": "^5.11.3", "pg": "^8.8.0", "react": "^18.2.0", + "react-big-calendar": "^1.5.0", + "react-datepicker": "^4.8.0", "react-dom": "^18.2.0", "react-router-dom": "^6.4.2", "react-scripts": "^5.0.1", diff --git a/src/App.js b/src/App.js index 37d51c8..8d212c1 100644 --- a/src/App.js +++ b/src/App.js @@ -12,10 +12,13 @@ import Calendrier from './pages/Calendrier'; import Repertoire from './pages/Repertoire'; import Parametres from './pages/Parametres'; + + const App = () => { + return ( - + } /> } /> } /> @@ -27,9 +30,10 @@ const App = () => { } /> } /> } /> - + ); } + export default App; diff --git a/src/components/NavigationDashboard.js b/src/components/NavigationDashboard.js index cef9944..4a0f85a 100644 --- a/src/components/NavigationDashboard.js +++ b/src/components/NavigationDashboard.js @@ -8,7 +8,7 @@ const NavigationDashboard = () => {
@@ -51,4 +51,5 @@ const NavigationDashboard = () => { ); }; + export default NavigationDashboard; \ No newline at end of file diff --git a/src/pages/Calendrier.js b/src/pages/Calendrier.js index c14e062..bb6ba00 100644 --- a/src/pages/Calendrier.js +++ b/src/pages/Calendrier.js @@ -1,13 +1,77 @@ -import React from 'react'; +import React, {Pages} from 'react'; import NavigationDashboard from '../components/NavigationDashboard'; +import format from "date-fns/format"; +import getDay from "date-fns/getDay"; +import parse from "date-fns/parse"; +import startOfWeek from "date-fns/startOfWeek"; +import { Calendar, dateFnsLocalizer } from "react-big-calendar"; +import "react-big-calendar/lib/css/react-big-calendar.css"; +import DatePicker from "react-datepicker"; +import "react-datepicker/dist/react-datepicker.css"; +const locales = { + "en-US": require("date-fns/locale/en-US"), + }; + const localizer = dateFnsLocalizer({ + format, + parse, + startOfWeek, + getDay, + locales + }); + + const events = [ + { + title: "Big Meeting", + allDay: true, + start: new Date(2021, 6, 0), + end: new Date(2021, 6, 0) + }, + { + title: "Vacation", + start: new Date(2021, 6, 7), + end: new Date(2021, 6, 10) + }, + { + title: "Conference", + start: new Date(2021, 6, 20), + end: new Date(2021, 6, 23) + }, + ]; const Calendrier = () => { return ( - coucou + + + +
+ {/*Create a calendar page*/} +
+

Calendrier

+ +
+
+ + + + +
+ +
+
+ +
+ +
+ +
+
+
); }; + export default Calendrier; \ No newline at end of file diff --git a/src/styles/components/_calendrier.scss b/src/styles/components/_calendrier.scss new file mode 100644 index 0000000..b713d08 --- /dev/null +++ b/src/styles/components/_calendrier.scss @@ -0,0 +1,137 @@ +body { + background-image: url("../../../public/fond_page_connexion.png"); + + .page_calendrier { + display: flex; + flex-direction: column; + justify-content: space-evenly; + width: auto; + height: 100vh; + } + + .haut_de_page { + display: flex; + flex-direction: row; + justify-content: space-between; + padding: 50px; + width: auto; + height: 10%; + align-items: center; + margin: 10px 10px 5px 10px; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + .titre { + font-size: 40px; + } + + .rechLogo { + display: flex; + flex-direction: row; + justify-content: space-between; + + .input_box { + display: flex; + justify-content: center; + align-items: center; + position: relative; + height: 40px; + max-width: 350px; + width: 100%; + margin: 30px 30px; + border-radius: 25px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + + input { + position: relative; + width: 100%; + height: 100%; + padding: 0 15px 0 65px; + outline: none; + border: none; + border-radius: 25px; + font-size: 16px; + font-weight: 400; + color: #333; + } + + .search { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 60px; + border-radius: 25px 0 0 25px; + + .search-icon { + font-size: 30px; + color: black; + } + } + } + + .logo { + display: flex; + width: 100px; + height: 100px; + } + } + } + + .bas_de_page { + display: flex; + flex-direction: row; + //justify-content: space-between; + width: auto; + height: 86%; + + .nav_bar_verticale { + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; + width: 5%; + margin: 5px 5px 10px 10px; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + .button { + display: flex; + object-fit: cover; + background-color: transparent; + border: none; + cursor: pointer; + + .logo_nav_bar{ + display: flex; + margin: 10px; + height: 50px; + width: 50px; + } + } + } + + .Calendrier { + display: flex; + justify-content: center; + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + width: 100%; + margin: 5px 5px 10px 10px; + } + } +} \ No newline at end of file diff --git a/src/styles/index.scss b/src/styles/index.scss index 0551ad6..0ded5d7 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -3,4 +3,5 @@ @import "./components/admin"; @import "./components/compte"; @import "./components/dashboard"; -@import "./components/analyse"; \ No newline at end of file +@import "./components/analyse"; +@import "./components/calendrier" \ No newline at end of file From 7ef1e52aeff20abcff3fe9d2bf95b8242c392d24 Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Mon, 7 Nov 2022 23:31:09 +0100 Subject: [PATCH 13/27] =?UTF-8?q?ajout=20d'=C3=A9v=C3=A8nements=20au=20cal?= =?UTF-8?q?endrier=20(essai)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Calendrier.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pages/Calendrier.js b/src/pages/Calendrier.js index bb6ba00..ae146a5 100644 --- a/src/pages/Calendrier.js +++ b/src/pages/Calendrier.js @@ -24,18 +24,18 @@ const locales = { { title: "Big Meeting", allDay: true, - start: new Date(2021, 6, 0), - end: new Date(2021, 6, 0) + start: new Date(2022, 10, 0), + end: new Date(2022, 10, 2) }, { title: "Vacation", - start: new Date(2021, 6, 7), - end: new Date(2021, 6, 10) + start: new Date(2022, 10, 7), + end: new Date(2022, 10, 9) }, { title: "Conference", - start: new Date(2021, 6, 20), - end: new Date(2021, 6, 23) + start: new Date(2022, 10, 14), + end: new Date(2022, 10, 16) }, ]; From d42a33b100cb51b3937d498df7fc2b18bbe47ca8 Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Tue, 8 Nov 2022 00:38:28 +0100 Subject: [PATCH 14/27] ajout d'un formulaire au calendrier --- src/pages/Calendrier.js | 31 ++++++++++++++++++++++---- src/styles/components/_calendrier.scss | 21 ++++++++++++++++- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/pages/Calendrier.js b/src/pages/Calendrier.js index ae146a5..502a857 100644 --- a/src/pages/Calendrier.js +++ b/src/pages/Calendrier.js @@ -1,4 +1,5 @@ -import React, {Pages} from 'react'; +import React, { useState } from 'react'; +import "react-datepicker/dist/react-datepicker.css"; import NavigationDashboard from '../components/NavigationDashboard'; import format from "date-fns/format"; import getDay from "date-fns/getDay"; @@ -7,7 +8,7 @@ import startOfWeek from "date-fns/startOfWeek"; import { Calendar, dateFnsLocalizer } from "react-big-calendar"; import "react-big-calendar/lib/css/react-big-calendar.css"; import DatePicker from "react-datepicker"; -import "react-datepicker/dist/react-datepicker.css"; + const locales = { "en-US": require("date-fns/locale/en-US"), @@ -39,7 +40,18 @@ const locales = { }, ]; + + + const Calendrier = () => { + + const [newEvent, setNewEvent] = useState({Titre: "", Début: "", Fin:""}); + const [allEvents, setAllEvents] = useState(events); + + function handleAddEvent() { + setAllEvents([...allEvents, newEvent]) + } + return ( @@ -64,8 +76,19 @@ const Calendrier = () => {
- +

Ajouter un évènement

+
+ setNewEvent({...newEvent, Titre: e.target.value})} + /> + setNewEvent({...newEvent, Début})} /> + setNewEvent({...newEvent, Fin})} /> + +
+
diff --git a/src/styles/components/_calendrier.scss b/src/styles/components/_calendrier.scss index b713d08..a484b8e 100644 --- a/src/styles/components/_calendrier.scss +++ b/src/styles/components/_calendrier.scss @@ -124,7 +124,8 @@ body { .Calendrier { display: flex; - justify-content: center; + flex-direction: column; + align-items: center; background: rgba(255, 255, 255, 0.3); border-radius: 15px; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); @@ -132,6 +133,24 @@ body { -webkit-backdrop-filter: blur(15px); width: 100%; margin: 5px 5px 10px 10px; + text-align: center; + + .mini_formulaire_evenement { + display: flex; + flex-direction: row; + margin-top: 10px; + } + + .rbc-calendar { + margin-top: 200px; + + .rbc-day-bg { + border-radius: 5px; + } + .rbc-month-view { + border-radius: 10px; + } + } } } } \ No newline at end of file From 615f819eebd3f96ef39790b869152528b822d735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?cl=C3=A9ment?= Date: Tue, 8 Nov 2022 14:03:47 +0100 Subject: [PATCH 15/27] =?UTF-8?q?cr=C3=A9ation=20page=20parametre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Parametres.js | 29 ++++- src/styles/components/_calendrier.scss | 2 +- src/styles/components/_parametre.scss | 142 +++++++++++++++++++++++++ src/styles/index.scss | 3 +- 4 files changed, 171 insertions(+), 5 deletions(-) create mode 100644 src/styles/components/_parametre.scss diff --git a/src/pages/Parametres.js b/src/pages/Parametres.js index 5990def..48889da 100644 --- a/src/pages/Parametres.js +++ b/src/pages/Parametres.js @@ -2,12 +2,35 @@ import React from 'react'; import NavigationDashboard from '../components/NavigationDashboard'; -const Parametres = () => { +const Parametre = () => { return ( - coucou + + + +
+ {/* Create an account page */} +
+

Parametre

+
+
+ + + + +
+ +
+
+
+ +
+ coucou +
+
+
); }; -export default Parametres; \ No newline at end of file +export default Parametre; \ No newline at end of file diff --git a/src/styles/components/_calendrier.scss b/src/styles/components/_calendrier.scss index a484b8e..b65c979 100644 --- a/src/styles/components/_calendrier.scss +++ b/src/styles/components/_calendrier.scss @@ -132,7 +132,7 @@ body { backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(15px); width: 100%; - margin: 5px 5px 10px 10px; + margin: 5px 10px 10px 5px; text-align: center; .mini_formulaire_evenement { diff --git a/src/styles/components/_parametre.scss b/src/styles/components/_parametre.scss new file mode 100644 index 0000000..62c98af --- /dev/null +++ b/src/styles/components/_parametre.scss @@ -0,0 +1,142 @@ +body { + background-image: url("../../../public/fond_page_connexion.png"); + + .page_compte { + display: flex; + flex-direction: column; + justify-content: space-evenly; + width: auto; + height: 100vh; + + .haut_de_page { + display: flex; + flex-direction: row; + justify-content: space-between; + padding: 50px; + width: auto; + height: 10%; + align-items: center; + margin: 10px 10px 5px 10px; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + .titre { + font-size: 40px; + } + + .rechLogo { + display: flex; + flex-direction: row; + justify-content: space-between; + + .input_box { + display: flex; + justify-content: center; + align-items: center; + position: relative; + height: 40px; + max-width: 350px; + width: 100%; + margin: 30px 30px; + border-radius: 25px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + + input { + position: relative; + width: 100%; + height: 100%; + padding: 0 15px 0 65px; + outline: none; + border: none; + border-radius: 25px; + font-size: 16px; + font-weight: 400; + color: #333; + } + + .search { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 60px; + border-radius: 25px 0 0 25px; + + .search-icon { + font-size: 30px; + color: black; + } + } + } + + .logo { + display: flex; + width: 100px; + height: 100px; + } + } + } + + .bas_de_page { + display: flex; + flex-direction: row; + justify-content: space-between; + width: auto; + height: 86%; + + .nav_bar_verticale { + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; + width: 5%; + margin: 5px 5px 10px 10px; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + .button { + display: flex; + object-fit: cover; + background-color: transparent; + border: none; + cursor: pointer; + + .logo_nav_bar{ + display: flex; + margin: 10px; + height: 50px; + width: 50px; + } + } + } + + + .Parametre { + display: flex; + flex-direction: column; + justify-content: space-evenly; + width: 94.3%; + height: auto; + margin: 5px 10px 10px 5px; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + } + } + } +} diff --git a/src/styles/index.scss b/src/styles/index.scss index 0ded5d7..7ffc4c5 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -4,4 +4,5 @@ @import "./components/compte"; @import "./components/dashboard"; @import "./components/analyse"; -@import "./components/calendrier" \ No newline at end of file +@import "./components/calendrier"; +@import "./components/parametre"; \ No newline at end of file From ddd8a7c27e2bd221d9bf901b9836647313e1c6a0 Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Tue, 8 Nov 2022 14:41:34 +0100 Subject: [PATCH 16/27] modif page calendrier --- src/pages/Calendrier.js | 4 ++-- src/styles/components/_calendrier.scss | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/pages/Calendrier.js b/src/pages/Calendrier.js index 502a857..f869924 100644 --- a/src/pages/Calendrier.js +++ b/src/pages/Calendrier.js @@ -78,14 +78,14 @@ const Calendrier = () => {

Ajouter un évènement

- setNewEvent({...newEvent, Titre: e.target.value})} /> setNewEvent({...newEvent, Début})} /> setNewEvent({...newEvent, Fin})} /> - +
diff --git a/src/styles/components/_calendrier.scss b/src/styles/components/_calendrier.scss index a484b8e..0cfd79e 100644 --- a/src/styles/components/_calendrier.scss +++ b/src/styles/components/_calendrier.scss @@ -139,6 +139,27 @@ body { display: flex; flex-direction: row; margin-top: 10px; + height: 100px; + + .bouton_ajout { + width: 300px; + height: 50px; + border-radius: 10px; + border: 0.5px solid; + border: 0; + background-color: rgba(163, 163, 163, 0.371); + border: 1px solid rgba(255,255,255,0.1); + backdrop-filter: blur(30px); + color: rgb(255, 255, 255); + cursor: pointer; + font-size: 15px; + &:hover{ + background-color: rgba(114, 114, 114, 0.371); + } + &:active{ + background-color:rgba(68, 68, 68, 0.972); + } + } } .rbc-calendar { From 67ab0f1ad7d53015e7237621cd409f702b55343c Mon Sep 17 00:00:00 2001 From: clverdoire Date: Tue, 8 Nov 2022 16:10:33 +0100 Subject: [PATCH 17/27] Merge branch 'master' of https://codefirst.iut.uca.fr/git/maxence.lanone/JTT_CrM --- package-lock.json | 62 +++--- package.json | 2 +- public/fond_page.jpeg | Bin 0 -> 38643 bytes server-api/package-lock.json | 108 ++++++++-- server-api/package.json | 6 +- src/pages/Parametres.js | 22 +- src/styles/components/_analyse.scss | 8 +- src/styles/components/_calendrier.scss | 276 +++++++++++++------------ src/styles/components/_compte.scss | 4 + src/styles/components/_dashboard.scss | 8 +- src/styles/components/_parametre.scss | 49 ++++- src/styles/index.scss | 2 +- 12 files changed, 340 insertions(+), 207 deletions(-) create mode 100644 public/fond_page.jpeg diff --git a/package-lock.json b/package-lock.json index 0c27507..672efc6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "@fullcalendar/list": "^5.11.3", "@fullcalendar/react": "^5.11.2", "@fullcalendar/timegrid": "^5.11.3", - "@mui/material": "^5.10.12", + "@mui/material": "^5.10.13", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -3231,9 +3231,9 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.104", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.104.tgz", - "integrity": "sha512-tQPxZTzfYMwxYfKhEwufbTfdLpNjFdW7bXq6dK0j8651AAyZL4M8wynWUQ98hH1362R26mZFhVxHB2UD9t7VuA==", + "version": "5.0.0-alpha.105", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.105.tgz", + "integrity": "sha512-4IPBcJQIgVVXQvN6DQMoCHed52GBtwSqYs0jD0dDcMR3o76AodQtpEeWFz3p7mJoc6f/IHBl9U6jEfL1r/kM4g==", "dependencies": { "@babel/runtime": "^7.19.0", "@emotion/is-prop-valid": "^1.2.0", @@ -3268,23 +3268,23 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.10.12", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.12.tgz", - "integrity": "sha512-cR8lOS606G++iVHR8I6ySgMAEiPoA3DxO/nLeqiv7w7d1707kvKoV4/7SWjh4ui+kHb052xlf/G196q2EKx31w==", + "version": "5.10.13", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.13.tgz", + "integrity": "sha512-zWkWPV/SaNdsIdxAWiuVGZ+Ue3BkfSIlU/BFIrJmuUcwiIa7gQsbI/DOpj1KzLvqZhdEe2wC1aG4nCHfzgc1Hg==", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui" } }, "node_modules/@mui/material": { - "version": "5.10.12", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.12.tgz", - "integrity": "sha512-rG9ZTkG9qUwujyAY1I+uQAa9pkGdsWY3KN+wvS/6H6ZbYIA06QRwmig6ySC6LbeB3WL/I/1ngwJqWX7nfINSbA==", + "version": "5.10.13", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.13.tgz", + "integrity": "sha512-TkkT1rNc0/hhL4/+zv4gYcA6egNWBH/1Tz+azoTnQIUdZ32fgwFI2pFX2KVJNTt30xnLznxDWtTv7ilmJQ52xw==", "dependencies": { "@babel/runtime": "^7.19.0", - "@mui/base": "5.0.0-alpha.104", - "@mui/core-downloads-tracker": "^5.10.12", - "@mui/system": "^5.10.12", + "@mui/base": "5.0.0-alpha.105", + "@mui/core-downloads-tracker": "^5.10.13", + "@mui/system": "^5.10.13", "@mui/types": "^7.2.0", "@mui/utils": "^5.10.9", "@types/react-transition-group": "^4.4.5", @@ -3383,9 +3383,9 @@ } }, "node_modules/@mui/system": { - "version": "5.10.12", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.12.tgz", - "integrity": "sha512-9DcN3hF2KTTTpZ0K5Tn20B+Tz7tIqDmJLk1M6P0CYoAGUN/xrcF/6dn1zZ829rxE5tmauoDUekTfomrvPsvlSQ==", + "version": "5.10.13", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.13.tgz", + "integrity": "sha512-Xzx26Asu5fVlm0ucm+gnJmeX4Y1isrpVDvqxX4yJaOT7Fzmd8Lfq9ih3QMfZajns5LMtUiOuCQlVFRtUG5IY7A==", "dependencies": { "@babel/runtime": "^7.19.0", "@mui/private-theming": "^5.10.9", @@ -20068,9 +20068,9 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, "@mui/base": { - "version": "5.0.0-alpha.104", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.104.tgz", - "integrity": "sha512-tQPxZTzfYMwxYfKhEwufbTfdLpNjFdW7bXq6dK0j8651AAyZL4M8wynWUQ98hH1362R26mZFhVxHB2UD9t7VuA==", + "version": "5.0.0-alpha.105", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.105.tgz", + "integrity": "sha512-4IPBcJQIgVVXQvN6DQMoCHed52GBtwSqYs0jD0dDcMR3o76AodQtpEeWFz3p7mJoc6f/IHBl9U6jEfL1r/kM4g==", "requires": { "@babel/runtime": "^7.19.0", "@emotion/is-prop-valid": "^1.2.0", @@ -20090,19 +20090,19 @@ } }, "@mui/core-downloads-tracker": { - "version": "5.10.12", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.12.tgz", - "integrity": "sha512-cR8lOS606G++iVHR8I6ySgMAEiPoA3DxO/nLeqiv7w7d1707kvKoV4/7SWjh4ui+kHb052xlf/G196q2EKx31w==" + "version": "5.10.13", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.13.tgz", + "integrity": "sha512-zWkWPV/SaNdsIdxAWiuVGZ+Ue3BkfSIlU/BFIrJmuUcwiIa7gQsbI/DOpj1KzLvqZhdEe2wC1aG4nCHfzgc1Hg==" }, "@mui/material": { - "version": "5.10.12", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.12.tgz", - "integrity": "sha512-rG9ZTkG9qUwujyAY1I+uQAa9pkGdsWY3KN+wvS/6H6ZbYIA06QRwmig6ySC6LbeB3WL/I/1ngwJqWX7nfINSbA==", + "version": "5.10.13", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.13.tgz", + "integrity": "sha512-TkkT1rNc0/hhL4/+zv4gYcA6egNWBH/1Tz+azoTnQIUdZ32fgwFI2pFX2KVJNTt30xnLznxDWtTv7ilmJQ52xw==", "requires": { "@babel/runtime": "^7.19.0", - "@mui/base": "5.0.0-alpha.104", - "@mui/core-downloads-tracker": "^5.10.12", - "@mui/system": "^5.10.12", + "@mui/base": "5.0.0-alpha.105", + "@mui/core-downloads-tracker": "^5.10.13", + "@mui/system": "^5.10.13", "@mui/types": "^7.2.0", "@mui/utils": "^5.10.9", "@types/react-transition-group": "^4.4.5", @@ -20142,9 +20142,9 @@ } }, "@mui/system": { - "version": "5.10.12", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.12.tgz", - "integrity": "sha512-9DcN3hF2KTTTpZ0K5Tn20B+Tz7tIqDmJLk1M6P0CYoAGUN/xrcF/6dn1zZ829rxE5tmauoDUekTfomrvPsvlSQ==", + "version": "5.10.13", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.13.tgz", + "integrity": "sha512-Xzx26Asu5fVlm0ucm+gnJmeX4Y1isrpVDvqxX4yJaOT7Fzmd8Lfq9ih3QMfZajns5LMtUiOuCQlVFRtUG5IY7A==", "requires": { "@babel/runtime": "^7.19.0", "@mui/private-theming": "^5.10.9", diff --git a/package.json b/package.json index 18231e3..0471fc4 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "@fullcalendar/list": "^5.11.3", "@fullcalendar/react": "^5.11.2", "@fullcalendar/timegrid": "^5.11.3", - "@mui/material": "^5.10.12", + "@mui/material": "^5.10.13", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/public/fond_page.jpeg b/public/fond_page.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0f33c54858da3fa32489d41a53fa5062b870aa69 GIT binary patch literal 38643 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 Rtt*ej|JkSlpTz(G literal 0 HcmV?d00001 diff --git a/server-api/package-lock.json b/server-api/package-lock.json index 854b0da..b67582e 100644 --- a/server-api/package-lock.json +++ b/server-api/package-lock.json @@ -15,14 +15,17 @@ "cors": "^2.8.5", "express": "^4.18.2", "mysql": "^2.18.1", - "nodemon": "^2.0.20", "parser": "^0.1.4" + }, + "devDependencies": { + "nodemon": "^2.0.20" } }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true }, "node_modules/accepts": { "version": "1.3.8", @@ -40,6 +43,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -56,7 +60,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/bignumber.js": { "version": "9.0.0", @@ -70,6 +75,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, "engines": { "node": ">=8" } @@ -147,6 +153,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -156,6 +163,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -187,6 +195,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "funding": [ { "type": "individual", @@ -212,7 +221,8 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/content-disposition": { "version": "0.5.4", @@ -308,6 +318,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { "ms": "^2.1.1" } @@ -445,6 +456,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -502,6 +514,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -533,6 +546,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -555,6 +569,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "engines": { "node": ">=4" } @@ -604,7 +619,8 @@ "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true }, "node_modules/inherits": { "version": "2.0.4", @@ -623,6 +639,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -634,6 +651,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -642,6 +660,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -653,6 +672,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "engines": { "node": ">=0.12.0" } @@ -717,6 +737,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -755,6 +776,7 @@ "version": "2.0.20", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "dev": true, "dependencies": { "chokidar": "^3.5.2", "debug": "^3.2.7", @@ -782,6 +804,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, "dependencies": { "abbrev": "1" }, @@ -796,6 +819,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -855,6 +879,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -882,7 +907,8 @@ "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true }, "node_modules/qs": { "version": "6.11.0", @@ -938,6 +964,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -964,6 +991,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, "bin": { "semver": "bin/semver" } @@ -1040,6 +1068,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", + "dev": true, "dependencies": { "semver": "~7.0.0" }, @@ -1051,6 +1080,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -1088,6 +1118,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -1099,6 +1130,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -1129,6 +1161,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, "dependencies": { "nopt": "~1.0.10" }, @@ -1151,7 +1184,8 @@ "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, "node_modules/unpipe": { "version": "1.0.0", @@ -1187,7 +1221,8 @@ "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true }, "accepts": { "version": "1.3.8", @@ -1202,6 +1237,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1215,7 +1251,8 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "bignumber.js": { "version": "9.0.0", @@ -1225,7 +1262,8 @@ "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true }, "body": { "version": "5.1.0", @@ -1297,6 +1335,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1306,6 +1345,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -1328,6 +1368,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1342,7 +1383,8 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "content-disposition": { "version": "0.5.4", @@ -1413,6 +1455,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -1522,6 +1565,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -1569,6 +1613,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "optional": true }, "function-bind": { @@ -1590,6 +1635,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -1605,7 +1651,8 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true }, "has-symbols": { "version": "1.0.3", @@ -1640,7 +1687,8 @@ "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true }, "inherits": { "version": "2.0.4", @@ -1656,6 +1704,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -1663,12 +1712,14 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -1676,7 +1727,8 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "isarray": { "version": "1.0.0", @@ -1720,6 +1772,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -1749,6 +1802,7 @@ "version": "2.0.20", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "dev": true, "requires": { "chokidar": "^3.5.2", "debug": "^3.2.7", @@ -1766,6 +1820,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, "requires": { "abbrev": "1" } @@ -1773,7 +1828,8 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "object-assign": { "version": "4.1.1", @@ -1814,7 +1870,8 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "process-nextick-args": { "version": "2.0.1", @@ -1833,7 +1890,8 @@ "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true }, "qs": { "version": "6.11.0", @@ -1877,6 +1935,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -1899,7 +1958,8 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true }, "send": { "version": "0.18.0", @@ -1968,6 +2028,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", + "dev": true, "requires": { "semver": "~7.0.0" }, @@ -1975,7 +2036,8 @@ "semver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true } } }, @@ -2006,6 +2068,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -2014,6 +2077,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -2035,6 +2099,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, "requires": { "nopt": "~1.0.10" } @@ -2051,7 +2116,8 @@ "undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, "unpipe": { "version": "1.0.0", diff --git a/server-api/package.json b/server-api/package.json index 2c69042..290a93c 100644 --- a/server-api/package.json +++ b/server-api/package.json @@ -15,8 +15,10 @@ "cors": "^2.8.5", "express": "^4.18.2", "mysql": "^2.18.1", - "nodemon": "^2.0.20", "parser": "^0.1.4" }, - "description": "" + "description": "", + "devDependencies": { + "nodemon": "^2.0.20" + } } diff --git a/src/pages/Parametres.js b/src/pages/Parametres.js index 48889da..55af805 100644 --- a/src/pages/Parametres.js +++ b/src/pages/Parametres.js @@ -11,7 +11,7 @@ const Parametre = () => {
{/* Create an account page */}
-

Parametre

+

Paramètre

@@ -24,8 +24,24 @@ const Parametre = () => {
-
- coucou +
+
+
+ +
+
+ +
+
+ +
+
+
+ coucou +
+
+ coucou +
diff --git a/src/styles/components/_analyse.scss b/src/styles/components/_analyse.scss index 3114325..f66e375 100644 --- a/src/styles/components/_analyse.scss +++ b/src/styles/components/_analyse.scss @@ -1,6 +1,10 @@ body { background-image: url("../../../public/fond_page_connexion.png"); - + background-repeat: no-repeat; + background-attachment: fixed; + background-position: center; + background-size: cover; + .page_analyse { display: flex; flex-direction: column; @@ -126,7 +130,7 @@ body { flex-direction: column; justify-content: space-evenly; height: auto; - width: 93%; + width: 93.4%; margin: 5px 10px 10px 5px; .Stat_1 { diff --git a/src/styles/components/_calendrier.scss b/src/styles/components/_calendrier.scss index caa4c52..2477982 100644 --- a/src/styles/components/_calendrier.scss +++ b/src/styles/components/_calendrier.scss @@ -1,175 +1,179 @@ body { background-image: url("../../../public/fond_page_connexion.png"); - + background-repeat: no-repeat; + background-attachment: fixed; + background-position: center; + background-size: cover; + .page_calendrier { display: flex; flex-direction: column; justify-content: space-evenly; width: auto; height: 100vh; - } - .haut_de_page { - display: flex; - flex-direction: row; - justify-content: space-between; - padding: 50px; - width: auto; - height: 10%; - align-items: center; - margin: 10px 10px 5px 10px; - - background: rgba(255, 255, 255, 0.3); - border-radius: 15px; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px); - - .titre { - font-size: 40px; - } - - .rechLogo { + .haut_de_page { display: flex; flex-direction: row; justify-content: space-between; + padding: 50px; + width: auto; + height: 10%; + align-items: center; + margin: 10px 10px 5px 10px; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); - .input_box { + .titre { + font-size: 40px; + } + + .rechLogo { display: flex; - justify-content: center; - align-items: center; - position: relative; - height: 40px; - max-width: 350px; - width: 100%; - margin: 30px 30px; - border-radius: 25px; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + flex-direction: row; + justify-content: space-between; - input { + .input_box { + display: flex; + justify-content: center; + align-items: center; position: relative; + height: 40px; + max-width: 350px; width: 100%; - height: 100%; - padding: 0 15px 0 65px; - outline: none; - border: none; + margin: 30px 30px; border-radius: 25px; - font-size: 16px; - font-weight: 400; - color: #333; - } + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + + input { + position: relative; + width: 100%; + height: 100%; + padding: 0 15px 0 65px; + outline: none; + border: none; + border-radius: 25px; + font-size: 16px; + font-weight: 400; + color: #333; + } - .search { - display: flex; - align-items: center; - justify-content: center; - position: absolute; - left: 0; - top: 0; - height: 100%; - width: 60px; - border-radius: 25px 0 0 25px; - - .search-icon { - font-size: 30px; - color: black; + .search { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 60px; + border-radius: 25px 0 0 25px; + + .search-icon { + font-size: 30px; + color: black; + } } } - } - - .logo { - display: flex; - width: 100px; - height: 100px; - } - } - } - - .bas_de_page { - display: flex; - flex-direction: row; - //justify-content: space-between; - width: auto; - height: 86%; - - .nav_bar_verticale { - display: flex; - flex-direction: column; - justify-content: space-around; - align-items: center; - width: 5%; - margin: 5px 5px 10px 10px; - background: rgba(255, 255, 255, 0.3); - border-radius: 15px; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px); - - .button { - display: flex; - object-fit: cover; - background-color: transparent; - border: none; - cursor: pointer; - - .logo_nav_bar{ + .logo { display: flex; - margin: 10px; - height: 50px; - width: 50px; + width: 100px; + height: 100px; } - } + } } - .Calendrier { + .bas_de_page { display: flex; - flex-direction: column; - align-items: center; - background: rgba(255, 255, 255, 0.3); - border-radius: 15px; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px); - width: 100%; - margin: 5px 10px 10px 5px; - text-align: center; + flex-direction: row; + justify-content: space-between; + width: auto; + height: 86%; - .mini_formulaire_evenement { + .nav_bar_verticale { display: flex; - flex-direction: row; - margin-top: 10px; - height: 100px; - - .bouton_ajout { - width: 300px; - height: 50px; - border-radius: 10px; - border: 0.5px solid; - border: 0; - background-color: rgba(163, 163, 163, 0.371); - border: 1px solid rgba(255,255,255,0.1); - backdrop-filter: blur(30px); - color: rgb(255, 255, 255); + flex-direction: column; + justify-content: space-around; + align-items: center; + width: 5%; + margin: 5px 5px 10px 10px; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + .button { + display: flex; + object-fit: cover; + background-color: transparent; + border: none; cursor: pointer; - font-size: 15px; - &:hover{ - background-color: rgba(114, 114, 114, 0.371); - } - &:active{ - background-color:rgba(68, 68, 68, 0.972); + + .logo_nav_bar{ + display: flex; + margin: 10px; + height: 50px; + width: 50px; } } } - .rbc-calendar { - margin-top: 200px; + .Calendrier { + display: flex; + flex-direction: column; + align-items: center; + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + width: 93.4%; + margin: 5px 10px 10px 5px; + text-align: center; - .rbc-day-bg { - border-radius: 5px; + .mini_formulaire_evenement { + display: flex; + flex-direction: row; + margin-top: 10px; + height: 100px; + + .bouton_ajout { + width: 300px; + height: 50px; + border-radius: 10px; + border: 0.5px solid; + border: 0; + background-color: rgba(163, 163, 163, 0.371); + border: 1px solid rgba(255,255,255,0.1); + backdrop-filter: blur(30px); + color: rgb(255, 255, 255); + cursor: pointer; + font-size: 15px; + &:hover{ + background-color: rgba(114, 114, 114, 0.371); + } + &:active{ + background-color:rgba(68, 68, 68, 0.972); + } + } } - .rbc-month-view { - border-radius: 10px; + + .rbc-calendar { + margin-top: 200px; + + .rbc-day-bg { + border-radius: 5px; + } + .rbc-month-view { + border-radius: 10px; + } } } } diff --git a/src/styles/components/_compte.scss b/src/styles/components/_compte.scss index 57d859c..d9177a7 100644 --- a/src/styles/components/_compte.scss +++ b/src/styles/components/_compte.scss @@ -1,5 +1,9 @@ body { background-image: url("../../../public/fond_page_connexion.png"); + background-repeat: no-repeat; + background-attachment: fixed; + background-position: center; + background-size: cover; .page_compte { display: flex; diff --git a/src/styles/components/_dashboard.scss b/src/styles/components/_dashboard.scss index 9684cfc..5016aa7 100644 --- a/src/styles/components/_dashboard.scss +++ b/src/styles/components/_dashboard.scss @@ -1,6 +1,10 @@ body { background-image: url("../../../public/fond_page_connexion.png"); - + background-repeat: no-repeat; + background-attachment: fixed; + background-position: center; + background-size: cover; + .page_dashboard { display: flex; flex-direction: column; @@ -125,7 +129,7 @@ body { display: flex; flex-direction: row; justify-content: space-between; - width: 93%; + width: 93.4%; height: auto; margin: 5px 10px 10px 5px; diff --git a/src/styles/components/_parametre.scss b/src/styles/components/_parametre.scss index 62c98af..84c2ca8 100644 --- a/src/styles/components/_parametre.scss +++ b/src/styles/components/_parametre.scss @@ -1,7 +1,11 @@ body { background-image: url("../../../public/fond_page_connexion.png"); + background-repeat: no-repeat; + background-attachment: fixed; + background-position: center; + background-size: cover; - .page_compte { + .page_parametre { display: flex; flex-direction: column; justify-content: space-evenly; @@ -122,20 +126,49 @@ body { } - .Parametre { + .Compte { display: flex; flex-direction: column; - justify-content: space-evenly; + justify-content: space-between; width: 94.3%; height: auto; margin: 5px 10px 10px 5px; - background: rgba(255, 255, 255, 0.3); - border-radius: 15px; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px); + .one { + display: flex; + width: auto; + height: 28.5%; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + .two { + display: flex; + width: auto; + height: 28.5%; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + + .three { + display: flex; + width: auto; + height: 40%; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } } } } diff --git a/src/styles/index.scss b/src/styles/index.scss index 7ffc4c5..e1570c4 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -5,4 +5,4 @@ @import "./components/dashboard"; @import "./components/analyse"; @import "./components/calendrier"; -@import "./components/parametre"; \ No newline at end of file +@import "./components/parametre" \ No newline at end of file From 9d695d7d6e2ac7e70873005b00fe9863f1d301db Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Tue, 8 Nov 2022 16:11:08 +0100 Subject: [PATCH 18/27] =?UTF-8?q?d=C3=A9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Calendrier.js | 23 +++++++++--------- src/styles/components/_calendrier.scss | 33 +++++++++++++++++++------- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/src/pages/Calendrier.js b/src/pages/Calendrier.js index f869924..0e33cc7 100644 --- a/src/pages/Calendrier.js +++ b/src/pages/Calendrier.js @@ -76,17 +76,18 @@ const Calendrier = () => {
-

Ajouter un évènement

-
- setNewEvent({...newEvent, Titre: e.target.value})} - /> - setNewEvent({...newEvent, Début})} /> - setNewEvent({...newEvent, Fin})} /> - -
+

Ajouter un évènement +
+ setNewEvent({...newEvent, Titre: e.target.value})} + /> + setNewEvent({...newEvent, Début})} /> + setNewEvent({...newEvent, Fin})} /> + +
+

diff --git a/src/styles/components/_calendrier.scss b/src/styles/components/_calendrier.scss index caa4c52..c2d1e65 100644 --- a/src/styles/components/_calendrier.scss +++ b/src/styles/components/_calendrier.scss @@ -124,8 +124,7 @@ body { .Calendrier { display: flex; - flex-direction: column; - align-items: center; + flex-direction: row; background: rgba(255, 255, 255, 0.3); border-radius: 15px; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); @@ -135,14 +134,24 @@ body { margin: 5px 10px 10px 5px; text-align: center; - .mini_formulaire_evenement { + .Titre { display: flex; - flex-direction: row; - margin-top: 10px; - height: 100px; + flex-direction: column; + justify-content: center; + + + .mini_formulaire_evenement { + display: flex; + flex-direction: column; + margin-top: 10px; + height: 100px; + } .bouton_ajout { - width: 300px; + display: flex; + justify-content: center; + align-items: center; + width: 150px; height: 50px; border-radius: 10px; border: 0.5px solid; @@ -153,6 +162,7 @@ body { color: rgb(255, 255, 255); cursor: pointer; font-size: 15px; + margin-top: 30px; &:hover{ background-color: rgba(114, 114, 114, 0.371); } @@ -162,9 +172,9 @@ body { } } - .rbc-calendar { - margin-top: 200px; + + .rbc-calendar { .rbc-day-bg { border-radius: 5px; } @@ -172,6 +182,11 @@ body { border-radius: 10px; } } + + .ajout_input { + border-radius: 20px; + text-align: center; + } } } } \ No newline at end of file From 959c65808278ddabd0530b17e5278b5010336778 Mon Sep 17 00:00:00 2001 From: clverdoire Date: Tue, 8 Nov 2022 16:44:17 +0100 Subject: [PATCH 19/27] Ajout sur la page parametre --- src/pages/Parametres.js | 11 +++-- src/styles/components/_calendrier.scss | 65 +++++++++++++------------- src/styles/components/_parametre.scss | 62 ++++++++++++++++++++++++ 3 files changed, 103 insertions(+), 35 deletions(-) diff --git a/src/pages/Parametres.js b/src/pages/Parametres.js index 55af805..ef20b41 100644 --- a/src/pages/Parametres.js +++ b/src/pages/Parametres.js @@ -27,13 +27,18 @@ const Parametre = () => {
- + sécurité
- +

Signaler un problème

+
+ +
- +
+ +
diff --git a/src/styles/components/_calendrier.scss b/src/styles/components/_calendrier.scss index d81a95c..cf1da74 100644 --- a/src/styles/components/_calendrier.scss +++ b/src/styles/components/_calendrier.scss @@ -125,41 +125,42 @@ body { } } - .Calendrier { - display: flex; - flex-direction: row; - background: rgba(255, 255, 255, 0.3); - border-radius: 15px; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px); - width: 100%; - margin: 5px 10px 10px 5px; - text-align: center; - - .mini_formulaire_evenement { + .Calendrier { display: flex; flex-direction: row; - margin-top: 10px; - height: 100px; + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + width: 100%; + margin: 5px 10px 10px 5px; + text-align: center; - .bouton_ajout { - width: 300px; - height: 50px; - border-radius: 10px; - border: 0.5px solid; - border: 0; - background-color: rgba(163, 163, 163, 0.371); - border: 1px solid rgba(255,255,255,0.1); - backdrop-filter: blur(30px); - color: rgb(255, 255, 255); - cursor: pointer; - font-size: 15px; - &:hover{ - background-color: rgba(114, 114, 114, 0.371); - } - &:active{ - background-color:rgba(68, 68, 68, 0.972); + .mini_formulaire_evenement { + display: flex; + flex-direction: column; + margin-top: 10px; + height: 100px; + + .bouton_ajout { + width: 300px; + height: 50px; + border-radius: 10px; + border: 0.5px solid; + border: 0; + background-color: rgba(163, 163, 163, 0.371); + border: 1px solid rgba(255,255,255,0.1); + backdrop-filter: blur(30px); + color: rgb(255, 255, 255); + cursor: pointer; + font-size: 15px; + &:hover{ + background-color: rgba(114, 114, 114, 0.371); + } + &:active{ + background-color:rgba(68, 68, 68, 0.972); + } } } } diff --git a/src/styles/components/_parametre.scss b/src/styles/components/_parametre.scss index 84c2ca8..0652dcb 100644 --- a/src/styles/components/_parametre.scss +++ b/src/styles/components/_parametre.scss @@ -136,6 +136,8 @@ body { .one { display: flex; + flex-direction: column; + justify-content: space-between; width: auto; height: 28.5%; @@ -144,6 +146,65 @@ body { box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(15px); + + .one_haut { + display: flex; + width: auto; + height: 50%; + margin: 0 25px; + border-bottom: 1px solid grey; + } + + .one_milieu { + display: flex; + width: auto; + height: 17.5%; + margin: 0 25px; + border-bottom: 1px solid grey; + + .bouton_submit { + display: flex; + + .bouton_modifierNom { + width: 100px; + height: 25px; + background-color: rgb(190, 189, 189); + border-radius: 5px; + border-radius: 5px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + cursor: pointer; + + &:hover{ + background-color: lightgrey; + } + } + } + } + + .one_bas { + display: flex; + width: auto; + height: 17.5%; + background-color: red; + + .bouton_submit { + display: flex; + + .bouton_modifierNom { + width: 100px; + height: 25px; + background-color: rgb(190, 189, 189); + border-radius: 5px; + border-radius: 5px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + cursor: pointer; + + &:hover{ + background-color: lightgrey; + } + } + } + } } .two { @@ -156,6 +217,7 @@ body { box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(15px); + } .three { From 84d92a4109c58f52b3c21e5abedeade1e438f72c Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Tue, 8 Nov 2022 16:44:38 +0100 Subject: [PATCH 20/27] =?UTF-8?q?d=C3=A9bug=20calendrier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Calendrier.js | 4 +- src/styles/components/_calendrier.scss | 78 +++++++++++++++----------- 2 files changed, 47 insertions(+), 35 deletions(-) diff --git a/src/pages/Calendrier.js b/src/pages/Calendrier.js index 0e33cc7..a5b3f2f 100644 --- a/src/pages/Calendrier.js +++ b/src/pages/Calendrier.js @@ -85,8 +85,10 @@ const Calendrier = () => { selected={newEvent.Début} onChange={(Début) => setNewEvent({...newEvent, Début})} /> setNewEvent({...newEvent, Fin})} /> -
+ diff --git a/src/styles/components/_calendrier.scss b/src/styles/components/_calendrier.scss index d81a95c..b991477 100644 --- a/src/styles/components/_calendrier.scss +++ b/src/styles/components/_calendrier.scss @@ -125,48 +125,58 @@ body { } } - .Calendrier { - display: flex; - flex-direction: row; - background: rgba(255, 255, 255, 0.3); - border-radius: 15px; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px); - width: 100%; - margin: 5px 10px 10px 5px; - text-align: center; - - .mini_formulaire_evenement { + .Calendrier { display: flex; flex-direction: row; - margin-top: 10px; - height: 100px; + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + width: 100%; + margin: 5px 10px 10px 5px; + text-align: center; - .bouton_ajout { - width: 300px; - height: 50px; - border-radius: 10px; - border: 0.5px solid; - border: 0; - background-color: rgba(163, 163, 163, 0.371); - border: 1px solid rgba(255,255,255,0.1); - backdrop-filter: blur(30px); - color: rgb(255, 255, 255); - cursor: pointer; - font-size: 15px; - &:hover{ - background-color: rgba(114, 114, 114, 0.371); + .Titre { + display: flex; + flex-direction: column; + justify-content: space-around; + width: 200px; + + + .mini_formulaire_evenement { + display: flex; + flex-direction: column; + margin-top: 10px; + height: 100px; } - &:active{ - background-color:rgba(68, 68, 68, 0.972); + + .bouton_ajout { + display: flex; + flex-direction: column; + justify-content: space-around; + margin: 5px; + height: 50px; + align-items: center; + border-radius: 10px; + background-color: rgba(163, 163, 163, 0.371); + border: 1px solid rgba(255,255,255,0.1); + backdrop-filter: blur(30px); + color: rgb(255, 255, 255); + cursor: pointer; + font-size: 15px; + &:hover{ + background-color: rgba(114, 114, 114, 0.371); + } + &:active{ + background-color:rgba(68, 68, 68, 0.972); + } + } } } .rbc-calendar { - margin-top: 200px; - .rbc-day-bg { border-radius: 5px; } @@ -181,4 +191,4 @@ body { } } } -} \ No newline at end of file +} From 59ef8bb81dc20130065083ab195aaacba285d617 Mon Sep 17 00:00:00 2001 From: Theo DUPIN Date: Tue, 8 Nov 2022 16:48:04 +0100 Subject: [PATCH 21/27] =?UTF-8?q?d=C3=A9bug=20calendrier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/styles/components/_calendrier.scss | 36 ++++++++++++++------------ 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/styles/components/_calendrier.scss b/src/styles/components/_calendrier.scss index f5b32ce..b1ebfa3 100644 --- a/src/styles/components/_calendrier.scss +++ b/src/styles/components/_calendrier.scss @@ -151,23 +151,25 @@ body { height: 100px; } - .bouton_ajout { - width: 300px; - height: 50px; - border-radius: 10px; - border: 0.5px solid; - border: 0; - background-color: rgba(163, 163, 163, 0.371); - border: 1px solid rgba(255,255,255,0.1); - backdrop-filter: blur(30px); - color: rgb(255, 255, 255); - cursor: pointer; - font-size: 15px; - &:hover{ - background-color: rgba(114, 114, 114, 0.371); - } - &:active{ - background-color:rgba(68, 68, 68, 0.972); + .bouton_ajout { + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; + height: 50px; + border-radius: 10px; + background-color: rgba(163, 163, 163, 0.371); + border: 1px solid rgba(255,255,255,0.1); + backdrop-filter: blur(30px); + color: rgb(255, 255, 255); + cursor: pointer; + font-size: 15px; + &:hover{ + background-color: rgba(114, 114, 114, 0.371); + } + &:active{ + background-color:rgba(68, 68, 68, 0.972); + } } } } From 7c7cb0acc07fd402033b52fa7ac6792bcf70bec3 Mon Sep 17 00:00:00 2001 From: clverdoire Date: Tue, 8 Nov 2022 17:03:45 +0100 Subject: [PATCH 22/27] Finalisation page calendrier --- src/pages/Calendrier.js | 7 +++---- src/styles/components/_calendrier.scss | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/pages/Calendrier.js b/src/pages/Calendrier.js index a5b3f2f..06e07a4 100644 --- a/src/pages/Calendrier.js +++ b/src/pages/Calendrier.js @@ -79,11 +79,10 @@ const Calendrier = () => {

Ajouter un évènement
setNewEvent({...newEvent, Titre: e.target.value})} - /> - setNewEvent({...newEvent, Titre: e.target.value})}/> + setNewEvent({...newEvent, Début})} /> - setNewEvent({...newEvent, Fin})} />
- + - +

); }; -function changeColor() { - let button = document.getElementById("bouton_créer"); - button.style.backgroundColor = "rgb(170,170,170)"; -} -function changeColor2() { - let button = document.getElementById("bouton_modif"); - button.style.backgroundColor = "rgb(170,170,170)"; -} - -function changeColor3() { - let button = document.getElementById("bouton_sup"); - button.style.backgroundColor = "rgb(170,170,170)"; +function changeColor() { + let b1 = document.querySelector('button'); + b1.style.backgroundColor = "rgb(170,170,170)"; } export default NavigationAdmin; \ No newline at end of file diff --git a/src/pages/Admin_create.js b/src/pages/Admin_create.js index ba02f93..6523549 100644 --- a/src/pages/Admin_create.js +++ b/src/pages/Admin_create.js @@ -99,9 +99,7 @@ function Admin_create() {

{loginError === true?"L'identifiant existe déja":''}

- - - + Retour
diff --git a/src/pages/Calendrier.js b/src/pages/Calendrier.js index 06e07a4..2d56e9b 100644 --- a/src/pages/Calendrier.js +++ b/src/pages/Calendrier.js @@ -22,22 +22,7 @@ const locales = { }); const events = [ - { - title: "Big Meeting", - allDay: true, - start: new Date(2022, 10, 0), - end: new Date(2022, 10, 2) - }, - { - title: "Vacation", - start: new Date(2022, 10, 7), - end: new Date(2022, 10, 9) - }, - { - title: "Conference", - start: new Date(2022, 10, 14), - end: new Date(2022, 10, 16) - }, + ]; @@ -45,11 +30,11 @@ const locales = { const Calendrier = () => { - const [newEvent, setNewEvent] = useState({Titre: "", Début: "", Fin:""}); + const [newEvent, setNewEvent] = useState({title: "", start: "", end:""}); const [allEvents, setAllEvents] = useState(events); function handleAddEvent() { - setAllEvents([...allEvents, newEvent]) + setAllEvents([...allEvents, newEvent]); } return ( @@ -76,21 +61,21 @@ const Calendrier = () => {
-

Ajouter un évènement -
- setNewEvent({...newEvent, Titre: e.target.value})}/> - setNewEvent({...newEvent, Début})} /> - setNewEvent({...newEvent, Fin})} /> -
- -

- +

Ajouter un évènement +
+ setNewEvent({...newEvent, title: e.target.value})}/> + setNewEvent({...newEvent, start})} /> + setNewEvent({...newEvent, end})} /> +
+ +

+
diff --git a/src/styles/components/_admin.scss b/src/styles/components/_admin.scss index 1d4128e..d88568a 100644 --- a/src/styles/components/_admin.scss +++ b/src/styles/components/_admin.scss @@ -67,10 +67,7 @@ } } - /*.form{ - align-self: center; - font-size: 30px; - }*/ + .Titre_Formulaire{ display: flex; @@ -120,48 +117,57 @@ -webkit-backdrop-filter: blur(15px);*/ margin-left: 10px; margin-right: 10px; - } - - .Formulaire_de_connexion { - - display: flex; - flex-direction: row; - margin-top: 10%; - /*background: rgba(255, 255, 255, 0.3); - border-radius: 15px; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(15px);*/ - - .texte_côté { - display:flex; - flex-direction: column; - justify-content: space-around; - height: 100%; - } - input { + .form{ display: flex; flex-direction: column; - margin: 10px; - } + align-self: center; + font-size: 30px; - .button_submit { - display: flex; - margin-top: 150%; - margin-bottom: 2%; - padding-left: 10px; - - .bouton_réini{ - background-color: rgb(190, 189, 189); - border-radius: 5px; - border: 1px solid black; - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); - cursor: pointer; + .Formulaire_de_connexion { + + display: flex; + flex-direction: row; + margin-top: 5%; + /*background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px);*/ + + .texte_côté { + display:flex; + flex-direction: column; + justify-content: space-around; + height: 100%; + } + + input { + display: flex; + flex-direction: column; + margin: 10px; + } + + .button_submit { + display: flex; + margin-top: 150%; + margin-bottom: 2%; + padding-left: 10px; + + .bouton_réini{ + background-color: rgb(190, 189, 189); + border-radius: 5px; + border: 1px solid black; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + cursor: pointer; + } + } } } } + + .texte { align-self: center; font-size: 15px; @@ -199,8 +205,6 @@ font-size: 15px; border-radius: 15px; width: 20%; - align-items: center; - justify-content: center; &:hover { box-shadow: 0, 5px, 35px, 0 rgba(0, 0, 0, 1); @@ -216,15 +220,15 @@ .bouton_ann{ //display: flex; background-color: grey; - border: 1px solid rgba(255, 255, 255, 0.1); + border: 0px solid rgba(255, 255, 255, 0.1); backdrop-filter: blur(30px); color: rgb(255, 255, 255); cursor: pointer; font-size: 15px; border-radius: 15px; width: 20%; - align-items: center; - justify-content: center; + text-decoration: none; + text-align: center; &:hover { box-shadow: 0, 5px, 35px, 0 rgba(0, 0, 0, 1); @@ -396,7 +400,6 @@ border-radius: 15px; width: 30%; align-items: center; - justify-content: center; &:hover { box-shadow: 0, 5px, 35px, 0 rgba(0, 0, 0, 1); From 256af8ec6d30b39de3656ebfe25c7d2f2d346745 Mon Sep 17 00:00:00 2001 From: clverdoire Date: Sat, 12 Nov 2022 13:23:40 +0100 Subject: [PATCH 26/27] Amelioration page parametre --- src/pages/Parametres.js | 3 ++- src/styles/components/_parametre.scss | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/pages/Parametres.js b/src/pages/Parametres.js index ef20b41..31bfe3e 100644 --- a/src/pages/Parametres.js +++ b/src/pages/Parametres.js @@ -36,7 +36,8 @@ const Parametre = () => {
-
+

Mot de passe

+
diff --git a/src/styles/components/_parametre.scss b/src/styles/components/_parametre.scss index 1ad82c6..5fad65e 100644 --- a/src/styles/components/_parametre.scss +++ b/src/styles/components/_parametre.scss @@ -161,11 +161,20 @@ body { justify-content: space-between; width: auto; height: 17.5%; - margin: 0 25px; + margin: 0 25px; border-bottom: 1px solid grey; + .text_one_milieu { + margin-top: auto; + margin-bottom: auto; + padding: 0 0 15px 0; + + } + .bouton_submit { display: flex; + padding: 0 0 15px 0; + .bouton_modifierNom { width: 100px; @@ -185,9 +194,11 @@ body { .one_bas { display: flex; + flex-direction: row; + justify-content: space-between; width: auto; + margin: 0 25px; height: 17.5%; - background-color: red; .bouton_submit { display: flex; From f1338d3dee394c26edfc0899c8f52cb4495daf3e Mon Sep 17 00:00:00 2001 From: clverdoire Date: Sat, 12 Nov 2022 15:13:52 +0100 Subject: [PATCH 27/27] =?UTF-8?q?Cr=C3=A9ation=201ere=20partie=20de=20la?= =?UTF-8?q?=20page=20parametre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Compte.js | 2 +- src/pages/Parametres.js | 6 ++-- src/styles/components/_compte.scss | 7 ++-- src/styles/components/_parametre.scss | 52 +++++++++++++-------------- 4 files changed, 31 insertions(+), 36 deletions(-) diff --git a/src/pages/Compte.js b/src/pages/Compte.js index e6674d7..3ac2607 100644 --- a/src/pages/Compte.js +++ b/src/pages/Compte.js @@ -38,7 +38,7 @@ const Compte = () => {

Mateo Centeno

- +
diff --git a/src/pages/Parametres.js b/src/pages/Parametres.js index 31bfe3e..3f10057 100644 --- a/src/pages/Parametres.js +++ b/src/pages/Parametres.js @@ -24,7 +24,7 @@ const Parametre = () => {
-
+
sécurité @@ -32,13 +32,13 @@ const Parametre = () => {

Signaler un problème

- +

Mot de passe

- +
diff --git a/src/styles/components/_compte.scss b/src/styles/components/_compte.scss index d9177a7..9f6cd4c 100644 --- a/src/styles/components/_compte.scss +++ b/src/styles/components/_compte.scss @@ -179,7 +179,6 @@ body { width: 150px; background-color: rgb(190, 189, 189); border-radius: 5px; - border: 1px solid black; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); cursor: pointer; @@ -216,8 +215,8 @@ body { display: flex; .bouton_modifierNom { - width: 100px; - height: 25px; + width: 75px; + height: 20px; background-color: rgb(190, 189, 189); border-radius: 5px; border-radius: 5px; @@ -226,7 +225,7 @@ body { &:hover{ background-color: lightgrey; - } + } } } } diff --git a/src/styles/components/_parametre.scss b/src/styles/components/_parametre.scss index 5fad65e..7e47492 100644 --- a/src/styles/components/_parametre.scss +++ b/src/styles/components/_parametre.scss @@ -126,7 +126,7 @@ body { } - .Compte { + .Parametre { display: flex; flex-direction: column; justify-content: space-between; @@ -137,9 +137,10 @@ body { .one { display: flex; flex-direction: column; - justify-content: space-between; + justify-content: space-evenly; width: auto; height: 28.5%; + padding: 10px; background: rgba(255, 255, 255, 0.3); border-radius: 15px; @@ -149,36 +150,29 @@ body { .one_haut { display: flex; - width: auto; + flex-direction: row; + justify-content: space-between; height: 50%; - margin: 0 25px; - border-bottom: 1px solid grey; + border-bottom: 1px solid black; } .one_milieu { display: flex; flex-direction: row; justify-content: space-between; - width: auto; - height: 17.5%; - margin: 0 25px; - border-bottom: 1px solid grey; - - .text_one_milieu { - margin-top: auto; - margin-bottom: auto; - padding: 0 0 15px 0; - - } + padding: 9px; + height: 25%; + border-bottom: 1px solid black; .bouton_submit { display: flex; - padding: 0 0 15px 0; + margin-left: 30px; + align-items: center; + cursor: pointer; - - .bouton_modifierNom { - width: 100px; - height: 25px; + .bouton_signalerPB { + width: 75px; + height: 20px; background-color: rgb(190, 189, 189); border-radius: 5px; border-radius: 5px; @@ -196,16 +190,18 @@ body { display: flex; flex-direction: row; justify-content: space-between; - width: auto; - margin: 0 25px; - height: 17.5%; + padding: 9px; + height: 25%; .bouton_submit { display: flex; - - .bouton_modifierNom { - width: 100px; - height: 25px; + margin-left: 30px; + align-items: center; + cursor: pointer; + + .bouton_modifierMDP { + width: 75px; + height: 20px; background-color: rgb(190, 189, 189); border-radius: 5px; border-radius: 5px;