diff --git a/package-lock.json b/package-lock.json
index a3aaefa..d519b56 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,6 +18,10 @@
"@fortawesome/free-regular-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.1.18",
+ "@fullcalendar/core": "^6.1.8",
+ "@fullcalendar/daygrid": "^6.1.8",
+ "@fullcalendar/interaction": "^6.1.8",
+ "@fullcalendar/react": "^6.1.8",
"@mantine/core": "^4.2.10",
"@mantine/hooks": "^4.2.10",
"@mantine/rte": "^4.2.10",
@@ -70,6 +74,7 @@
"prerender-node": "^3.5.0",
"react": "^17.0.2",
"react-apexcharts": "^1.4.0",
+ "react-big-calendar": "^1.8.4",
"react-bootstrap": "^2.1.2",
"react-burger-menu": "^3.0.6",
"react-canvas-js": "^1.0.1",
@@ -2925,6 +2930,40 @@
"react": ">=16.x"
}
},
+ "node_modules/@fullcalendar/core": {
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.8.tgz",
+ "integrity": "sha512-i8JBIvZCWGO9dsMEDcx9bnsQZ9PtGSJdOXGgWbhLaGq2iq41OBdp9g9gM4b/Otv2oK8bL5Gl6CsMmb/HkDtA6Q==",
+ "dependencies": {
+ "preact": "~10.12.1"
+ }
+ },
+ "node_modules/@fullcalendar/daygrid": {
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.8.tgz",
+ "integrity": "sha512-kCZxQFKb9Vqa3CZRX0v7rMSJ2mlTt4gDpyLfiNJKxUAq7W51uKurPaFZWicaXy1ESHVBxKNlbx5uNjBpyu50JQ==",
+ "peerDependencies": {
+ "@fullcalendar/core": "~6.1.8"
+ }
+ },
+ "node_modules/@fullcalendar/interaction": {
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.8.tgz",
+ "integrity": "sha512-r6W4E9ohaA87M2uPSlmpE2WT7Fzu7LN0u2pE6D/tThruCEaAPbN8Pw5+sqclsuyTIL09mg0eSJm/ggJekTabSA==",
+ "peerDependencies": {
+ "@fullcalendar/core": "~6.1.8"
+ }
+ },
+ "node_modules/@fullcalendar/react": {
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.8.tgz",
+ "integrity": "sha512-E8GQSQyZHkjpwxQW5Vci7iZgN7f33ntuRcvfGii4Fn35t9VHGz2SEyKAWXpVf38elcKTZKVgajU9ipStd+1LEg==",
+ "peerDependencies": {
+ "@fullcalendar/core": "~6.1.8",
+ "react": "^16.7.0 || ^17 || ^18",
+ "react-dom": "^16.7.0 || ^17 || ^18"
+ }
+ },
"node_modules/@gatsbyjs/reach-router": {
"version": "1.3.9",
"license": "MIT",
@@ -13887,6 +13926,11 @@
"license": "MIT",
"peer": true
},
+ "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",
"license": "MIT",
@@ -13899,8 +13943,9 @@
}
},
"node_modules/dayjs": {
- "version": "1.11.6",
- "license": "MIT"
+ "version": "1.11.10",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
},
"node_modules/debounce-fn": {
"version": "0.0.0",
@@ -17999,6 +18044,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",
"license": "MIT",
@@ -24618,6 +24668,14 @@
"react": "^16.5.1 || ^17.0.0 || ^18.0.0"
}
},
+ "node_modules/luxon": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz",
+ "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/lz-string": {
"version": "1.4.4",
"license": "WTFPL",
@@ -27611,6 +27669,17 @@
"node": "*"
}
},
+ "node_modules/moment-timezone": {
+ "version": "0.5.43",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz",
+ "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==",
+ "dependencies": {
+ "moment": "^2.29.4"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/move-concurrently": {
"version": "1.0.1",
"license": "ISC",
@@ -33785,6 +33854,15 @@
"route-recognizer": "^0.1.11"
}
},
+ "node_modules/preact": {
+ "version": "10.12.1",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz",
+ "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/preact"
+ }
+ },
"node_modules/prelude-ls": {
"version": "1.2.1",
"license": "MIT",
@@ -34354,6 +34432,38 @@
"react": "^15.0.0 || ^16.0.0 || ^17.0.0"
}
},
+ "node_modules/react-big-calendar": {
+ "version": "1.8.4",
+ "resolved": "https://registry.npmjs.org/react-big-calendar/-/react-big-calendar-1.8.4.tgz",
+ "integrity": "sha512-zo2LDQxWHvcnkvtgzZlxJsCfi6fI8neOSyjG5ntePLO2CAlkhHiwwXgynxIFeWCwJ5LMnhN6tBt03IN4Y0bOzQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.7",
+ "clsx": "^1.2.1",
+ "date-arithmetic": "^4.1.0",
+ "dayjs": "^1.11.7",
+ "dom-helpers": "^5.2.1",
+ "globalize": "^0.1.1",
+ "invariant": "^2.2.4",
+ "lodash": "^4.17.21",
+ "lodash-es": "^4.17.21",
+ "luxon": "^3.2.1",
+ "memoize-one": "^6.0.0",
+ "moment": "^2.29.4",
+ "moment-timezone": "^0.5.40",
+ "prop-types": "^15.8.1",
+ "react-overlays": "^5.2.1",
+ "uncontrollable": "^7.2.1"
+ },
+ "peerDependencies": {
+ "react": "^16.14.0 || ^17 || ^18",
+ "react-dom": "^16.14.0 || ^17 || ^18"
+ }
+ },
+ "node_modules/react-big-calendar/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/react-bootstrap": {
"version": "2.6.0",
"license": "MIT",
@@ -48028,6 +48138,32 @@
"prop-types": "^15.8.1"
}
},
+ "@fullcalendar/core": {
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.8.tgz",
+ "integrity": "sha512-i8JBIvZCWGO9dsMEDcx9bnsQZ9PtGSJdOXGgWbhLaGq2iq41OBdp9g9gM4b/Otv2oK8bL5Gl6CsMmb/HkDtA6Q==",
+ "requires": {
+ "preact": "~10.12.1"
+ }
+ },
+ "@fullcalendar/daygrid": {
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.8.tgz",
+ "integrity": "sha512-kCZxQFKb9Vqa3CZRX0v7rMSJ2mlTt4gDpyLfiNJKxUAq7W51uKurPaFZWicaXy1ESHVBxKNlbx5uNjBpyu50JQ==",
+ "requires": {}
+ },
+ "@fullcalendar/interaction": {
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.8.tgz",
+ "integrity": "sha512-r6W4E9ohaA87M2uPSlmpE2WT7Fzu7LN0u2pE6D/tThruCEaAPbN8Pw5+sqclsuyTIL09mg0eSJm/ggJekTabSA==",
+ "requires": {}
+ },
+ "@fullcalendar/react": {
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.8.tgz",
+ "integrity": "sha512-E8GQSQyZHkjpwxQW5Vci7iZgN7f33ntuRcvfGii4Fn35t9VHGz2SEyKAWXpVf38elcKTZKVgajU9ipStd+1LEg==",
+ "requires": {}
+ },
"@gatsbyjs/reach-router": {
"version": "1.3.9",
"peer": true,
@@ -55234,11 +55370,18 @@
"version": "2.0.0",
"peer": true
},
+ "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"
},
"dayjs": {
- "version": "1.11.6"
+ "version": "1.11.10",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
},
"debounce-fn": {
"version": "0.0.0"
@@ -57999,6 +58142,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"
},
@@ -62226,6 +62374,11 @@
"integrity": "sha512-keqxAx97PlaEN89PXZ6ki1N8nRjGWtDa4021GFYLNj0RgruM5odbpl8GHTExj0hhPq3sF6Up0gnxt6TSHu+ovw==",
"requires": {}
},
+ "luxon": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz",
+ "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg=="
+ },
"lz-string": {
"version": "1.4.4"
},
@@ -64258,6 +64411,14 @@
"moment": {
"version": "2.29.4"
},
+ "moment-timezone": {
+ "version": "0.5.43",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz",
+ "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==",
+ "requires": {
+ "moment": "^2.29.4"
+ }
+ },
"move-concurrently": {
"version": "1.0.1",
"requires": {
@@ -68051,6 +68212,11 @@
"route-recognizer": "^0.1.11"
}
},
+ "preact": {
+ "version": "10.12.1",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz",
+ "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg=="
+ },
"prelude-ls": {
"version": "1.2.1"
},
@@ -68429,6 +68595,36 @@
"md5": "^2.0.0"
}
},
+ "react-big-calendar": {
+ "version": "1.8.4",
+ "resolved": "https://registry.npmjs.org/react-big-calendar/-/react-big-calendar-1.8.4.tgz",
+ "integrity": "sha512-zo2LDQxWHvcnkvtgzZlxJsCfi6fI8neOSyjG5ntePLO2CAlkhHiwwXgynxIFeWCwJ5LMnhN6tBt03IN4Y0bOzQ==",
+ "requires": {
+ "@babel/runtime": "^7.20.7",
+ "clsx": "^1.2.1",
+ "date-arithmetic": "^4.1.0",
+ "dayjs": "^1.11.7",
+ "dom-helpers": "^5.2.1",
+ "globalize": "^0.1.1",
+ "invariant": "^2.2.4",
+ "lodash": "^4.17.21",
+ "lodash-es": "^4.17.21",
+ "luxon": "^3.2.1",
+ "memoize-one": "^6.0.0",
+ "moment": "^2.29.4",
+ "moment-timezone": "^0.5.40",
+ "prop-types": "^15.8.1",
+ "react-overlays": "^5.2.1",
+ "uncontrollable": "^7.2.1"
+ },
+ "dependencies": {
+ "memoize-one": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
+ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ }
+ }
+ },
"react-bootstrap": {
"version": "2.6.0",
"requires": {
diff --git a/package.json b/package.json
index d479cc8..26a29a8 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,10 @@
"@fortawesome/free-regular-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.1.18",
+ "@fullcalendar/core": "^6.1.8",
+ "@fullcalendar/daygrid": "^6.1.8",
+ "@fullcalendar/interaction": "^6.1.8",
+ "@fullcalendar/react": "^6.1.8",
"@mantine/core": "^4.2.10",
"@mantine/hooks": "^4.2.10",
"@mantine/rte": "^4.2.10",
@@ -65,6 +69,7 @@
"prerender-node": "^3.5.0",
"react": "^17.0.2",
"react-apexcharts": "^1.4.0",
+ "react-big-calendar": "^1.8.4",
"react-bootstrap": "^2.1.2",
"react-burger-menu": "^3.0.6",
"react-canvas-js": "^1.0.1",
diff --git a/src/components/AddClassManual.js b/src/components/AddClassManual.js
index bab35ba..6de1f00 100644
--- a/src/components/AddClassManual.js
+++ b/src/components/AddClassManual.js
@@ -874,7 +874,7 @@ const AddClassManual = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
- alert("L'image ne doit pas depasser un 1 Méga octets");
+ alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}
setisimgclassSelected(event.target.files[0]);
@@ -1969,7 +1969,7 @@ const AddClassManual = (props) => {
Les dimensions maximales sont de 256pixels X 256pixels
- La taille de l'image ne doit pas depasser 1 mega octet
+ La taille de l'image ne doit pas dépasser 1 mega octet
diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js
index f685a9b..7c68ee2 100644
--- a/src/components/DisplayPartnerSession.js
+++ b/src/components/DisplayPartnerSession.js
@@ -37,6 +37,9 @@ import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
+import { RestoreFromTrashRounded } from "@mui/icons-material";
+import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
+
const DisplayPartnerSession = (props) => {
const history = useHistory();
@@ -106,15 +109,15 @@ const DisplayPartnerSession = (props) => {
}));
const [datagrid_columns_size_model1, setdatagrid_columns_size_model1] = useState(200);
- const [datagrid_columns_size_model2, setdatagrid_columns_size_model2] = useState(80);
+ const [datagrid_columns_size_model2, setdatagrid_columns_size_model2] = useState(100);
const columns = [
{ field: 'id', headerName: 'id', hide: true },
{ field: '_id', headerName: '_id', hide: true },
{ field: 'class_internal_url', headerName: 'class_internal_url', hide: true },
- { field: 'code_session', headerName: 'Code session', hide: false, width: datagrid_columns_size_model1, },
+ { field: 'code_session', headerName: 'Code session', hide: false, flex:1 },
{
- field: 'statut', headerName: 'Statut', hide: false, width: datagrid_columns_size_model1,
+ field: 'statut', headerName: 'Statut', hide: true, width: datagrid_columns_size_model2,
valueFormatter: (params) => {
if (String(params.value) === "0")
return "Inactif";
@@ -126,12 +129,12 @@ const DisplayPartnerSession = (props) => {
},
{
- field: 'etape', headerName: 'Etape', hide: false, width: datagrid_columns_size_model1,
+ field: 'etape', headerName: 'Etape', hide: false, width: datagrid_columns_size_model2,
valueFormatter: (params) => {
if (String(params.value) === "0")
return "Projet";
else if (String(params.value) === "1")
- return "Planification";
+ return "En Planif.";
else if (String(params.value) === "2")
return "Planifiée";
else if (String(params.value) === "3")
@@ -144,10 +147,9 @@ const DisplayPartnerSession = (props) => {
return "???";
},
},
-
-
- { field: 'date_debut', headerName: 'Date debut', hide: false, width: datagrid_columns_size_model2, },
- { field: 'date_fin', headerName: 'Datefin', hideable: false, width: datagrid_columns_size_model2, },
+ { field: 'class_external_code', headerName: 'Code Formation', align: "center", hideable: true, flex:1, hide: true,},
+ { field: 'date_debut', headerName: 'Debut', hide: false, width: datagrid_columns_size_model2, },
+ { field: 'date_fin', headerName: 'Fin', hideable: false, width: datagrid_columns_size_model2, },
{
field: 'distantiel', headerName: 'Distantiel', hideable: false, width: datagrid_columns_size_model2,
valueFormatter: (params) => {
@@ -173,7 +175,7 @@ const DisplayPartnerSession = (props) => {
{ field: 'formateur', headerName: 'Formateur', width: datagrid_columns_size_model1, hide: true, hideable: true, },
{ field: 'nb_participant', headerName: 'Nb Parti.', width: datagrid_columns_size_model2, align: "center", },
{
- field: 'taux_remplissage', headerName: 'Remplissage', align: "center", width: datagrid_columns_size_model1,
+ field: 'taux_remplissage', headerName: 'Remplissage', align: "center", flex:1,
align: "left",
renderCell: (params) => {
return (
@@ -197,6 +199,7 @@ const DisplayPartnerSession = (props) => {
{ field: 'prix_session', headerName: 'Prix', width: datagrid_columns_size_model2, align: "center", },
{ field: 'title', headerName: 'Formation', width: datagrid_columns_size_model1, align: "center", hide: true, hideable: true, },
{ field: 'domaine', headerName: 'Domaine', width: datagrid_columns_size_model1, align: "center", hide: true, hideable: true, },
+
{ field: 'duration', headerName: 'Durée', width: datagrid_columns_size_model2, align: "center", },
{
field: "delete", headerName: 'Supprimer',
@@ -584,6 +587,70 @@ const DisplayPartnerSession = (props) => {
);
}
},
+ {
+ field: "annulation", headerName: 'Annulation',
+ renderCell: (cellValues) => {
+ return (
+
+ {
+ handleClick_refuse(event, cellValues);
+ }}
+ >
+
+
+ }
+ modal
+ nested
+ position="center center"
+ >
+ {close => (
+
+
+ ×
+
+
MySy Information
+
+ {' '}
+
+ En confirmant cette opération, l'inscription du stagiaire sera définitivement annulée .
+ Il (le stagiaire) sera automatiquement notifié par email de l'annulation de son inscription.
+ Motif du annulation :
+
+
+
+
+
+ {
+ handleClick_refuse(event, cellValues);
+ //console.log('modal closed ');
+ close();
+ }}> Valider
+
+
+
+ {
+ //console.log('modal closed ');
+ close();
+ }}
+ >
+ Annuler
+
+
+
+
+ )}
+
+
+
+ );
+ }
+ },
@@ -788,7 +855,7 @@ const DisplayPartnerSession = (props) => {
Get_List_Partner_Clients();
let windowWidth = window.innerWidth;
if (windowWidth < 1001) {
- setdatagrid_columns_size_model2(10);
+ setdatagrid_columns_size_model2(50);
}
}, [])
@@ -910,7 +977,7 @@ const DisplayPartnerSession = (props) => {
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@@ -926,6 +993,8 @@ const DisplayPartnerSession = (props) => {
//formData.append("class_internal_url", selected_internal_url);
//console.log("token = " + stored_cookie);
+ setLoading(true);
+
fetch(
process.env.REACT_APP_API_URL + "myclass/api/AddStagiairetoClass_mass_for_many_session/",
{
@@ -936,6 +1005,7 @@ const DisplayPartnerSession = (props) => {
.then((response) => response.json())
.then((result) => {
if (String(result['status']) === String("true")) {
+ setLoading(false);
//console.log('Success:', result['message']);
setliste_participants_file_change_result(result['message']);
setliste_participants_file_change_api("true");
@@ -946,11 +1016,13 @@ const DisplayPartnerSession = (props) => {
submenu_inscrit();
} else if (String(result['status']) === String("Err_Connexion")) {
+ setLoading(false);
alert('Erreur: ' + result['message']);
history.push("/Connexion");
}
else {
+ setLoading(false);
setliste_participants_file_change_message(result['message']);
setliste_participants_file_change_api("false");
alert(result['message']);
@@ -958,6 +1030,7 @@ const DisplayPartnerSession = (props) => {
})
.catch((error) => {
+ setLoading(false);
console.error('Error:', error);
setliste_participants_file_change_api("false");
alert(" Impossible d'importer la liste des participants");
@@ -1098,7 +1171,7 @@ const DisplayPartnerSession = (props) => {
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@@ -3828,7 +3901,7 @@ const DisplayPartnerSession = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
- alert("L'image ne doit pas depasser un 1 Méga octets");
+ alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}
setisimgclassSelected(event.target.files[0]);
@@ -4201,8 +4274,15 @@ const DisplayPartnerSession = (props) => {
};
+ const [isLoading, setLoading] = useState();
+
return (
@@ -5684,7 +5766,7 @@ const DisplayPartnerSession = (props) => {
>
{GetAttestation_Certif_result &&
GetAttestation_Certif_result.map((certificat) => (
-
+
{JSON.parse(certificat).nom}
@@ -6507,7 +6589,7 @@ const DisplayPartnerSession = (props) => {
Les dimensions maximales sont de 256pixels X 256pixels
- La taille de l'image ne doit pas depasser 1 mega octet
+ La taille de l'image ne doit pas dépasser 1 mega octet
@@ -6561,7 +6643,7 @@ const DisplayPartnerSession = (props) => {
{Getall_TrainingSession_result &&
Getall_TrainingSession_result.map((mysession) => (
+ style={{ "paddingLeft": "5px", "textAlign": "left", "width":'100%' }}>
{JSON.parse(mysession).code_session}
@@ -6595,7 +6677,7 @@ const DisplayPartnerSession = (props) => {
{Get_List_Partner_Clients_result &&
Get_List_Partner_Clients_result.map((myclient) => (
+ style={{ "paddingLeft": "5px", "textAlign": "left", "width":'100%' }}>
{JSON.parse(myclient).nom}
diff --git a/src/components/DisplayPartnerStagiaires.js b/src/components/DisplayPartnerStagiaires.js
index 373495d..a60c612 100644
--- a/src/components/DisplayPartnerStagiaires.js
+++ b/src/components/DisplayPartnerStagiaires.js
@@ -38,6 +38,8 @@ import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { TransitionProps } from '@mui/material/transitions';
+import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
+
const DisplayPartnerStagiaires = (props) => {
const history = useHistory();
@@ -854,7 +856,7 @@ const DisplayPartnerStagiaires = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
- alert("L'image ne doit pas depasser un 1 Méga octets");
+ alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}
setisimgclassSelected(event.target.files[0]);
@@ -1437,7 +1439,7 @@ const DisplayPartnerStagiaires = (props) => {
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@@ -1451,6 +1453,10 @@ const DisplayPartnerStagiaires = (props) => {
formData.append("token", stored_cookie);
//console.log("token = " + stored_cookie);
+ setLoading(true);
+
+
+
fetch(
process.env.REACT_APP_API_URL + "myclass/api/AddStagiairetoClass_mass_for_many_session/",
{
@@ -1463,11 +1469,13 @@ const DisplayPartnerStagiaires = (props) => {
//console.log(" ## result['status'] = ", result['status'])
if (String(result['status']) === String("Err_Connexion")) {
+ setLoading(false);
alert('Erreur: ' + result['message']);
history.push("/Connexion");
}
else if (String(result['status']) === String("true")) {
+ setLoading(false);
//console.log('Success:', result['message']);
setliste_sessions_file_change_result(result['message']);
setliste_sessions_file_change_api("true");
@@ -1478,6 +1486,7 @@ const DisplayPartnerStagiaires = (props) => {
}
else {
+ setLoading(false);
setliste_sessions_file_change_message(result['message']);
setliste_sessions_file_change_api("false");
alert('Erreur: ' + result['message']);
@@ -1487,6 +1496,7 @@ const DisplayPartnerStagiaires = (props) => {
})
.catch((error) => {
+ setLoading(false);
console.error('Error:', error);
setliste_sessions_file_change_api("false");
alert(" Impossible d'importer les stagiaires ");
@@ -2713,8 +2723,16 @@ const DisplayPartnerStagiaires = (props) => {
setfields1desabled(true);
}
+
+
+ const [isLoading, setLoading] = useState();
+
return (
+ {isLoading &&
}
+
{
Les dimensions maximales sont de 256pixels X 256pixels
- La taille de l'image ne doit pas depasser 1 mega octet
+ La taille de l'image ne doit pas dépasser 1 mega octet
diff --git a/src/components/Employes.js b/src/components/Employes.js
index 2185549..619492b 100644
--- a/src/components/Employes.js
+++ b/src/components/Employes.js
@@ -730,7 +730,7 @@ const Employes = (props) => {
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@@ -1432,7 +1432,7 @@ const Employes = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
- alert("L'image ne doit pas depasser un 1 Méga octets");
+ alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}
setisimgclassSelected(event.target.files[0]);
@@ -2880,7 +2880,7 @@ const Employes = (props) => {
Les dimensions maximales sont de 256pixels X 256pixels
- La taille de l'image ne doit pas depasser 1 mega octet
+ La taille de l'image ne doit pas dépasser 1 mega octet
diff --git a/src/components/GestionAdministrative.js b/src/components/GestionAdministrative.js
index 7bec41c..b64f67f 100644
--- a/src/components/GestionAdministrative.js
+++ b/src/components/GestionAdministrative.js
@@ -33,6 +33,7 @@ import parse from 'html-react-parser'
import { Editor } from '@tinymce/tinymce-react';
import { FcAddImage } from "react-icons/fc";
import add_plus from "../mysy_img/plus.png";
+import gif_new from "../mysy_img/new_icon_gif.gif";
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import { useHistory } from "react-router-dom";
@@ -42,6 +43,9 @@ import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { CiTrash } from "react-icons/ci";
+import { ConstructionOutlined } from "@mui/icons-material";
+import FiberNewIcon from '@mui/icons-material/FiberNew';
+import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
function GestionAdministrative(props) {
@@ -376,7 +380,70 @@ function GestionAdministrative(props) {
);
}
},
+ {
+ field: "annulation", headerName: 'Annulation',
+ renderCell: (cellValues) => {
+ return (
+ {
+ handleClick_refuse(event, cellValues);
+ }}
+ >
+
+
+ }
+ modal
+ nested
+ position="center center"
+ >
+ {close => (
+
+
+ ×
+
+
MySy Information
+
+ {' '}
+
+ En confirmant cette opération, l'inscription du stagiaire sera définitivement annulée .
+ Il (le stagiaire) sera automatiquement notifié par email de l'annulation de son inscription.
+ Motif du annulation :
+
+
+
+
+
+ {
+ handleClick_refuse(event, cellValues);
+ //console.log('modal closed ');
+ close();
+ }}> Valider
+
+
+
+ {
+ //console.log('modal closed ');
+ close();
+ }}
+ >
+ Annuler
+
+
+
+
+ )}
+
+
+
+ );
+ }
+ },
]
@@ -944,6 +1011,9 @@ function GestionAdministrative(props) {
//const data = [];
//const [mydata, setmydata] = useState([]);
+ const [p_detail_external_code, setp_detail_external_code] = useState("");
+ const [p_detail_title, setp_detail_title] = useState("");
+ const [p_detail_trainer, setp_detail_trainer] = useState("");
const [GetCurrentClass_api, setGetCurrentClass_api] = useState();
@@ -968,15 +1038,16 @@ function GestionAdministrative(props) {
var mylocaltraining = JSON.parse(res.data.message);
if (mylocaltraining.external_code)
- document.getElementsByName("external_code")[0].value = mylocaltraining.external_code;
+ setp_detail_external_code(mylocaltraining.external_code);
- if (mylocaltraining.title)
- document.getElementsByName("title")[0].value = mylocaltraining.title;
- setclasstitle(mylocaltraining.title);
+ if (mylocaltraining.title) {
+ setp_detail_title(mylocaltraining.title);
+ setclasstitle(mylocaltraining.title);
+ }
if (mylocaltraining.trainer)
- document.getElementsByName("trainer")[0].value = mylocaltraining.trainer;
+ setp_detail_trainer(mylocaltraining.trainer);
@@ -1542,6 +1613,12 @@ function GestionAdministrative(props) {
return;
}
+ // A present l'utilisateur a choisi une session, il n'est donc plus necessaire d'afficher le 'gif' qui l'alerte
+ // sur le faite qu'il y a une nouvelle session
+ setshow_new_session_gif("");
+
+
+
setselected_session_id(event.target.value);
@@ -1704,15 +1781,24 @@ function GestionAdministrative(props) {
var session_ondemande = "0"
session_ondemande = ""
- if (document.getElementById("session_ondemande") && document.getElementById("session_ondemande").value != "") {
- session_ondemande = document.getElementById("session_ondemande").value;
+ if (p_detail_session_ondemande) {
+ session_ondemande = p_detail_session_ondemande;
}
+ if (String(session_ondemande) === "1")
+ setp_detail_session_ondemande_label("Oui");
+ else
+ setp_detail_session_ondemande_label("Non");
+
var presentiel = "0"
- presentiel = ""
- if (document.getElementById("presentiel") && document.getElementById("presentiel").value != "") {
- presentiel = document.getElementById("presentiel").value;
+ if (p_detail_presentiel) {
+ presentiel = p_detail_presentiel;
+ if (String(presentiel) === "1")
+ setp_detail_presentiel_label("Oui");
+ else
+ setp_detail_presentiel_label("Non");
+
}
if (presentiel.trim() == "") {
alert(" Vous devez preciser si la session est en présentiel");
@@ -1720,9 +1806,13 @@ function GestionAdministrative(props) {
}
var distantiel = "0"
- distantiel = ""
- if (document.getElementById("distantiel") && document.getElementById("distantiel").value != "") {
- distantiel = document.getElementById("distantiel").value;
+ if (p_detail_distantiel) {
+
+ distantiel = p_detail_distantiel;
+ if (String(distantiel) === "1")
+ setp_detail_distantiel_label("Oui");
+ else
+ setp_detail_distantiel_label("Non");
}
if (distantiel.trim() == "") {
alert(" Vous devez preciser si la session est en distantiel");
@@ -1789,7 +1879,11 @@ function GestionAdministrative(props) {
form.append("code_session", code_session);
form.append("formateur", formateur);
form.append("lms_class_code", lms_class_code);
- form.append("session_status", sessionStatus);
+ if (sessionStatus)
+ form.append("session_status", "1");
+ else
+ form.append("session_status", "0");
+
form.append("date_debut_inscription", format(SessionstartDateInscription, 'dd/MM/yyyy kk:mm:ss'));
form.append("date_fin_inscription", format(SessionendDateInscription, 'dd/MM/yyyy kk:mm:ss'));
if (selectedCertif)
@@ -1813,7 +1907,7 @@ function GestionAdministrative(props) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation/";
- console.log(" ### CreateSessionFormation form = ", form);
+ //console.log(" ### CreateSessionFormation form = ", form);
//return;
@@ -1825,8 +1919,8 @@ function GestionAdministrative(props) {
setCreateSessionFormation_api("true");
setCreateSessionFormation_result(res.data.message);
setsessionChanged(false);
- desableSessionFields();
GetCurrentClass_trainingsession();
+ desableSessionFields();
alert(" La mise à jour a été correctement faite");
} else if (String(res.data.status) === String("Err_Connexion")) {
@@ -1843,10 +1937,26 @@ function GestionAdministrative(props) {
console.warn('CreateSessionFormation : Not good man :( mysearchtext = ' + error);
setCreateSessionFormation_api("false");
+ alert(" Impossible d'ajouter ou mettre à jour la sessions");
})
}
+ const [p_detail_one_session_ondemande, setp_detail_one_session_ondemande] = useState();
+ const [p_detail_session_ondemande, setp_detail_session_ondemande] = useState();
+ const [p_detail_session_ondemande_label, setp_detail_session_ondemande_label] = useState();
+
+
+ const [p_detail_one_presentiel, setp_detail_one_presentiel] = useState();
+ const [p_detail_presentiel, setp_detail_presentiel] = useState();
+ const [p_detail_presentiel_label, setp_detail_presentiel_label] = useState();
+
+ const [p_detail_one_distantiel, setp_detail_one_distantiel] = useState();
+ const [p_detail_distantiel, setp_detail_distantiel] = useState();
+ const [p_detail_distantiel_label, setp_detail_distantiel_label] = useState();
+
+
+ const [show_new_session_gif, setshow_new_session_gif] = useState();
const [one_CreateSessionFormation_api, setone_CreateSessionFormation_api] = useState();
const [one_CreateSessionFormation_message, setone_CreateSessionFormation_message] = useState();
@@ -1885,16 +1995,15 @@ function GestionAdministrative(props) {
var one_session_ondemande = "0"
- one_session_ondemande = ""
- if (document.getElementById("one_session_ondemande") && document.getElementById("one_session_ondemande").value != "") {
- one_session_ondemande = document.getElementById("one_session_ondemande").value;
+ if (p_detail_one_session_ondemande) {
+ one_session_ondemande = p_detail_one_session_ondemande;
}
var presentiel = "0"
presentiel = ""
- if (document.getElementById("one_presentiel") && document.getElementById("one_presentiel").value != "") {
- presentiel = document.getElementById("one_presentiel").value;
+ if (p_detail_one_presentiel) {
+ presentiel = p_detail_one_presentiel;
}
if (presentiel.trim() == "") {
@@ -1906,8 +2015,8 @@ function GestionAdministrative(props) {
var distantiel = "0"
distantiel = ""
- if (document.getElementById("one_distantiel") && document.getElementById("one_distantiel").value != "") {
- distantiel = document.getElementById("one_distantiel").value;
+ if (p_detail_one_distantiel) {
+ distantiel = p_detail_one_distantiel;
}
if (distantiel.trim() == "") {
@@ -1988,7 +2097,11 @@ function GestionAdministrative(props) {
form.append("code_session", code_session);
form.append("formateur", formateur);
form.append("lms_class_code", lms_class_code);
- form.append("session_status", sessionStatus);
+ if (sessionStatus)
+ form.append("session_status", "1");
+ else
+ form.append("session_status", "0");
+
form.append("date_debut_inscription", format(one_SessionstartDateInscription, 'dd/MM/yyyy kk:mm:ss'));
form.append("date_fin_inscription", format(one_SessionendDateInscription, 'dd/MM/yyyy kk:mm:ss'));
form.append("attestation_certif", one_selectedCertif);
@@ -2004,12 +2117,8 @@ function GestionAdministrative(props) {
}
form.append("contenu_ftion", contenu_ftion);
-
-
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation/";
-
-
axios.post(myurl, form).then(res => {
//console.log(" In One_CreateSessionFormation res.data.status = " + res.data.status);
//console.log(" In One_CreateSessionFormation res.data.message r_class = " + res.data.message);
@@ -2019,10 +2128,15 @@ function GestionAdministrative(props) {
setone_CreateSessionFormation_result(res.data.message);
setsessionChanged(false);
GetCurrentClass_trainingsession();
- alert(" La session a été correctement ajoutée");
One_clearSessionFields();
setaddOneSession();
setreduction_session("1");
+ setshow_new_session_gif('1');
+
+ alert(" La session a été correctement ajoutée");
+ if (ancre_ref_new_gif.current) {
+ ancre_ref_new_gif.current.scrollIntoView({ behavior: "smooth" });
+ }
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@@ -2038,12 +2152,14 @@ function GestionAdministrative(props) {
console.warn('One_CreateSessionFormation : Not good man :( = ' + error);
setone_CreateSessionFormation_api("false");
+ alert(" Impossible d'ajouter la session de formation");
})
}
+
const [selected_session_id, setselected_session_id] = useState();
const [GetCurrentSession_api, setGetCurrentSession_api] = useState();
@@ -2122,19 +2238,56 @@ function GestionAdministrative(props) {
if (mylocaltraining.prix_session)
document.getElementsByName("prix_session")[0].value = mylocaltraining.prix_session;
- document.getElementsByName("distantiel")[0].value = "";
- if (mylocaltraining.distantiel)
- document.getElementsByName("distantiel")[0].value = mylocaltraining.distantiel;
+
+
+ if (mylocaltraining.presentiel) {
+ setp_detail_presentiel(mylocaltraining.presentiel);
+ if (String(mylocaltraining.presentiel) === "1")
+ setp_detail_presentiel_label("Oui");
+ else
+ setp_detail_presentiel_label("Non");
+
+ }
+ else {
+ setp_detail_presentiel("0");
+ setp_detail_presentiel_label("Non");
+ }
+
+
+ if (mylocaltraining.distantiel) {
+ setp_detail_distantiel(mylocaltraining.distantiel);
+
+ if (String(mylocaltraining.distantiel) === "1") {
+ setp_detail_distantiel_label("Oui");
+
+ }
+ else
+ setp_detail_distantiel_label("Non");
+
+ }
+ else {
+ setp_detail_distantiel("0");
+ setp_detail_distantiel_label("Non");
+ }
- document.getElementsByName("session_ondemande")[0].value = "";
- if (mylocaltraining.session_ondemande)
- document.getElementsByName("session_ondemande")[0].value = mylocaltraining.session_ondemande;
+ if (mylocaltraining.session_ondemande) {
+ setp_detail_session_ondemande(mylocaltraining.session_ondemande);
+
+ if (String(mylocaltraining.session_ondemande) === "1")
+ setp_detail_session_ondemande_label("Oui");
+ else
+ setp_detail_session_ondemande_label("Non");
+
+ }
+ else {
+ setp_detail_session_ondemande("0");
+ setp_detail_session_ondemande_label("Non");
+ }
+
+
- document.getElementsByName("presentiel")[0].value = "";
- if (mylocaltraining.presentiel)
- document.getElementsByName("presentiel")[0].value = mylocaltraining.presentiel;
if (mylocaltraining.contenu_ftion)
setfield_contenu_ftion(mylocaltraining.contenu_ftion);
@@ -2166,9 +2319,9 @@ function GestionAdministrative(props) {
document.getElementsByName("code_postal")[0].value = mylocaltraining.code_postal;
- if (String(mylocaltraining.session_status) === "true")
+ if (String(mylocaltraining.session_status) === "1")
setsessionStatus(true);
- else if (String(mylocaltraining.session_status) === "false")
+ else if (String(mylocaltraining.session_status) === "0")
setsessionStatus(false);
} else {
@@ -2320,6 +2473,7 @@ function GestionAdministrative(props) {
function desableSessionFields() {
+ setfields1desabled(true);
document.getElementsByName("code_session")[0].disabled = true;
document.getElementsByName("code_session")[0].style.backgroundColor = "#ECEFF1";
@@ -2351,8 +2505,11 @@ function GestionAdministrative(props) {
document.getElementsByName("prix_session")[0].disabled = true;
document.getElementsByName("prix_session")[0].style.backgroundColor = "#ECEFF1";
- document.getElementsByName("session_ondemande")[0].disabled = true;
- document.getElementsByName("session_ondemande")[0].style.backgroundColor = "#ECEFF1";
+ if (document.getElementsByName("session_ondemande") && document.getElementsByName("session_ondemande")[0]) {
+ //console.log(" GRRR ocument.getElementsByName('session_ondemande')[0] = ", document.getElementsByName("session_ondemande")[0].value);
+ document.getElementsByName("session_ondemande")[0].disabled = true;
+ document.getElementsByName("session_ondemande")[0].style.backgroundColor = "#ECEFF1";
+ }
document.getElementsByName("presentiel")[0].disabled = true;
document.getElementsByName("presentiel")[0].style.backgroundColor = "#ECEFF1";
@@ -2366,7 +2523,7 @@ function GestionAdministrative(props) {
document.getElementsByName("sessiondatefininscription")[0].disabled = true;
document.getElementsByName("sessiondatefininscription")[0].style.backgroundColor = "#ECEFF1";
- setfields1desabled(true);
+
}
@@ -2875,7 +3032,7 @@ function GestionAdministrative(props) {
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@@ -2891,6 +3048,8 @@ function GestionAdministrative(props) {
formData.append("class_internal_url", internal_url);
//console.log("token = " + stored_cookie);
+ setLoading(true);
+
fetch(
process.env.REACT_APP_API_URL + "myclass/api/AddStagiairetoClass_mass/",
{
@@ -2900,7 +3059,9 @@ function GestionAdministrative(props) {
)
.then((response) => response.json())
.then((result) => {
+
if (String(result['status']) === String("true")) {
+ setLoading(false);
//console.log('Success:', result['message']);
setliste_participants_file_change_result(result['message']);
setliste_participants_file_change_api("true");
@@ -2911,19 +3072,24 @@ function GestionAdministrative(props) {
alert(" Les stagiaires ont été correctement importés");
submenu_inscrit();
} else if (String(result['status']) === String("Err_Connexion")) {
+ setLoading(false);
alert('Erreur: ' + result['message']);
history.push("/Connexion");
}
else {
+ setLoading(false);
setliste_participants_file_change_message(result['message']);
setliste_participants_file_change_api("false");
+ alert(result['message']);
}
})
.catch((error) => {
+ setLoading(false);
console.error('Error:', error);
setliste_participants_file_change_api("false");
+ alert(" Impossible d'importer le fichier");
});
};
@@ -3106,7 +3272,7 @@ function GestionAdministrative(props) {
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@@ -3133,7 +3299,7 @@ function GestionAdministrative(props) {
//console.log(" ## result['status'] = ", result['status'])
if (String(result['status']) === String("Err_Connexion")) {
- alert('Erreur: ' + result['message']);
+ alert(result['message']);
history.push("/Connexion");
}
@@ -3150,7 +3316,7 @@ function GestionAdministrative(props) {
else {
setliste_sessions_file_change_message(result['message']);
setliste_sessions_file_change_api("false");
- alert('Erreur: ' + result['message']);
+ alert(result['message']);
}
@@ -4259,6 +4425,7 @@ function GestionAdministrative(props) {
}
+ const ancre_ref_new_gif = useRef(null)
const [Delete_Session_Formation_api, setDelete_Session_Formation_api] = useState();
const [Delete_Session_Formation_message, setDelete_Session_Formation_message] = useState();
@@ -4328,7 +4495,7 @@ function GestionAdministrative(props) {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
- alert("L'image ne doit pas depasser un 1 Méga octets");
+ alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}
setisimgclassSelected(event.target.files[0]);
@@ -4735,10 +4902,12 @@ function GestionAdministrative(props) {
setDialog_1_open(false);
};
-
+ const [isLoading, setLoading] = useState();
return (
+
+
+ {isLoading && }
+
+
Gestion Administrative de : {classtitle}
-
-
+ isLoading = {isLoading}
+
-
-
+ Code
- />
+ {p_detail_external_code}
-
+
+ Titre
+ {p_detail_title}
-
+
+ Formateur
+ {p_detail_trainer}
@@ -4874,18 +5026,25 @@ function GestionAdministrative(props) {
/>
-
Session à la demande*
(0 = Non, 1 = Oui)
+
Session à la demande*
{
+ setp_detail_one_session_ondemande(e.target.value);
+
+ }}
>
+ Oui
+ Non
@@ -4970,35 +5129,47 @@ function GestionAdministrative(props) {
-
Présentiel*
(0 = Non, 1 = Oui)
+
Présentiel*
+ value={p_detail_one_presentiel}
+ onChange={(e) => {
+ setp_detail_one_presentiel(e.target.value);
+ }}
+ >
+ Oui
+ Non
-
A distance*
(0 = Non, 1 = Oui)
+
A distance*
+ value={p_detail_one_distantiel}
+ onChange={(e) => {
+ setp_detail_one_distantiel(e.target.value);
+ }}
+ >
+ Oui
+ Non
@@ -5168,12 +5339,12 @@ function GestionAdministrative(props) {
{
- Enregistrer la session
+ Enregistrer la session
- Annuler
+ Annuler
@@ -5186,10 +5357,17 @@ function GestionAdministrative(props) {
}
{String(addOneSession) !== "1" &&
-
+
- Choisir une session
+ {String(show_new_session_gif) !== "1" &&
+ Choisir une session
+
+ }
+ {String(show_new_session_gif) === "1" &&
+ Choisir la nouvelle session
+
+ }
- {/* Choisir une session
-
- Choisir
- {GetCurrentClass_trainingsession_result &&
- GetCurrentClass_trainingsession_result.map((session) => (
-
-
-
- {(JSON.parse(session).code_session) && (JSON.parse(session).code_session) + " - "}
- {(JSON.parse(session).session_ondemande) === "1" && " A la Demande - "}
- {(!JSON.parse(session).session_ondemande || JSON.parse(session).session_ondemande === "0") &&
- (JSON.parse(session).date_debut).substring(0, 10) + " au " + (JSON.parse(session).date_fin).substring(0, 10)}
-
-
- {/*(JSON.parse(session).date_debut).substring(0, 10)} au {(JSON.parse(session).date_fin).substring(0, 10) * /} -
- {(JSON.parse(session).distantiel) === "1" && " A Distance - "}
- {(JSON.parse(session).presentiel) === "1" && (JSON.parse(session).adresse) && " En Présentiel - " + (JSON.parse(session).adresse)}
- {(JSON.parse(session).presentiel) === "1" && (!JSON.parse(session).adresse) && " En Présentiel - "}
- {(JSON.parse(session).code_postal) && " " + (JSON.parse(session).code_postal)}
-
-
- ))}
-
- */}
@@ -5338,21 +5492,48 @@ function GestionAdministrative(props) {
/>
-
Session à la demande*
(0 = Non, 1 = Oui)
+ {fields1desabled &&
Session à la demande *
+ value={p_detail_session_ondemande_label}
+ />
+
+
+ }
+
+ {!fields1desabled &&
Session à la demande *
+ {
+ setp_detail_session_ondemande(e.target.value);
+ IssessionChanged();
+
+ }}
+ >
+ Oui
+ Non
+ }
+
Date Debut
@@ -5434,37 +5615,90 @@ function GestionAdministrative(props) {
-
Présentiel *
(0 = Non, 1 = Oui)
+ {fields1desabled &&
Présentiel *
-
+
}
-
A distance*
(0 = Non, 1 = Oui)
+ {!fields1desabled &&
Présentiel *
+ {
+ setp_detail_presentiel(e.target.value);
+ IssessionChanged();
+
+ }}
+ >
+ Oui
+ Non
+
+
}
+
+
+
+
+
+
+ {fields1desabled &&
A distance *
-
+
}
+
+ {!fields1desabled &&
A distance *
+ {
+ setp_detail_distantiel(e.target.value);
+ IssessionChanged();
+
+ }}
+ >
+ Oui
+ Non
+
+
}
+
{String(reduction_session) === "0" &&
Adresse
@@ -5658,7 +5892,7 @@ function GestionAdministrative(props) {
{!sessionChanged && mysession && fields1desabled &&
Supprimer
+ trigger={Supprimer
}
modal
@@ -5712,17 +5946,17 @@ function GestionAdministrative(props) {
{sessionChanged && mysession &&
- Enregistrer les modifications
+ Enregistrer les modifications
}
{!sessionChanged && mysession && fields1desabled &&
- Editer
+ Editer
}
{((sessionChanged && mysession) || !fields1desabled) &&
- Annuler les modifications
+ Annuler les modifications
}
@@ -6425,12 +6659,12 @@ function GestionAdministrative(props) {
{
- Enregistrer le participant
+ Enregistrer le participant
- Annuler
+ Annuler
@@ -6505,7 +6739,7 @@ function GestionAdministrative(props) {
Les dimensions maximales sont de 256pixels X 256pixels
- La taille de l'image ne doit pas depasser 1 mega octet
+ La taille de l'image ne doit pas dépasser 1 mega octet
@@ -6956,13 +7190,13 @@ function GestionAdministrative(props) {
{String(participant_data_changed) === "1" && String(participant_data_edit_mode) === "1" &&
- Enregistrer les modifications
+ Enregistrer les modifications
}
{String(participant_data_edit_mode) === "1" &&
- Annuler
+ Annuler
}
@@ -6976,7 +7210,7 @@ function GestionAdministrative(props) {
- Editer
+ Editer
diff --git a/src/components/HebergementLms.js b/src/components/HebergementLms.js
index 4dc11da..855b953 100644
--- a/src/components/HebergementLms.js
+++ b/src/components/HebergementLms.js
@@ -194,7 +194,7 @@ function HebergementLms(props) {
//console.log("file_size = ", file_size, " file_type = ", file_type);
//console.log(" fileUploaded = ", fileUploaded);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@@ -337,7 +337,7 @@ function HebergementLms(props) {
console.log("file_size = ", file_size, " file_type = ", file_type, " naturalWidth = ", fileUploaded.naturalWidth);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
diff --git a/src/components/Materiels.js b/src/components/Materiels.js
index d031877..f4ab2f4 100644
--- a/src/components/Materiels.js
+++ b/src/components/Materiels.js
@@ -413,7 +413,7 @@ const Materiels = (props) => {
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
@@ -1064,7 +1064,7 @@ const Materiels = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
- alert("L'image ne doit pas depasser un 1 Méga octets");
+ alert("L'image ne doit pas dépasser un 1 Méga octets");
return;
}
setisimgclassSelected(event.target.files[0]);
@@ -2496,7 +2496,7 @@ const Materiels = (props) => {
Les dimensions maximales sont de 256pixels X 256pixels
- La taille de l'image ne doit pas depasser 1 mega octet
+ La taille de l'image ne doit pas dépasser 1 mega octet
diff --git a/src/components/Partner.js b/src/components/Partner.js
index 00d797d..217e424 100644
--- a/src/components/Partner.js
+++ b/src/components/Partner.js
@@ -131,7 +131,7 @@ const Partner = (props) => {
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
diff --git a/src/components/Partner_Client.js b/src/components/Partner_Client.js
index 395bfe8..454d3bb 100644
--- a/src/components/Partner_Client.js
+++ b/src/components/Partner_Client.js
@@ -191,7 +191,7 @@ const Partner_Client = (props) => {
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
diff --git a/src/components/Partner_Commande.js b/src/components/Partner_Commande.js
index 9dee00c..7b4a1d3 100644
--- a/src/components/Partner_Commande.js
+++ b/src/components/Partner_Commande.js
@@ -649,7 +649,7 @@ const Partner_Commande = (props) => {
//console.log("file_size = ",file_size," file_type = ",file_type);
if (file_size > 1000000) {
- alert("Le fichier ne doit pas depasser un 1 Méga octets");
+ alert("Le fichier ne doit pas dépasser un 1 Méga octets");
return;
}
diff --git a/src/components/TestUrl_new.js b/src/components/TestUrl_new.js
index 6a86dbb..3e35bb2 100644
--- a/src/components/TestUrl_new.js
+++ b/src/components/TestUrl_new.js
@@ -13,6 +13,33 @@ import MenuItem from '@mui/material/MenuItem';
import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
+
+import { Calendar, dateFnsLocalizer } from 'react-big-calendar'
+import format from 'date-fns/format'
+import parse from 'date-fns/parse'
+import startOfWeek from 'date-fns/startOfWeek'
+import getDay from 'date-fns/getDay'
+import enUS from 'date-fns/locale/en-US'
+
+import FullCalendar from "@fullcalendar/react";
+import daygridPlugin from "@fullcalendar/daygrid";
+import interactionPlugin from "@fullcalendar/interaction";
+import { v4 as uuid } from "uuid";
+
+const locales = {
+ 'en-US': enUS,
+}
+
+const localizer = dateFnsLocalizer({
+ format,
+ parse,
+ startOfWeek,
+ getDay,
+ locales,
+})
+
+
+
const TestUrl_New = (props) => {
const { courseid, tabid } = useParams();
@@ -195,9 +222,9 @@ const TestUrl_New = (props) => {
return;
}
-
- if (editorRef_programme){
+
+ if (editorRef_programme) {
var programme = editorRef_programme.current.getContent();
form.append("contenu_doc", programme);
}
@@ -236,6 +263,32 @@ const TestUrl_New = (props) => {
})
}
+ const myEventsList = []
+ const [events, setEvents] = useState([]);
+ const handleSelect = (info) => {
+ const { start, end } = info;
+ const eventNamePrompt = prompt("Enter, event name");
+ if (eventNamePrompt) {
+ setEvents([
+ ...events,
+ {
+ start,
+ end,
+ title: eventNamePrompt,
+ id: uuid(),
+ },
+ ]);
+ }
+ };
+
+ const EventItem = ({ info }) => {
+ const { event } = info;
+ return (
+
+ );
+ };
return (
@@ -251,6 +304,30 @@ const TestUrl_New = (props) => {
Page de test * testurl_new
parametres courseid = {courseid}, tabid = {tabid}
+ {/*
+
+
*/}
+
+ }
+ plugins={[daygridPlugin, interactionPlugin]}
+ views={["dayGridMonth", "dayGridWeek", "dayGridDay"]}
+ />;
+
- La taille de l'image ne doit pas depasser 1 mega octet
+ La taille de l'image ne doit pas dépasser 1 mega octet
@@ -1900,7 +1900,7 @@ function UpdateParnterInfo() {
Les dimensions maximales sont de 256pixels X 256pixels
- La taille de l'image ne doit pas depasser 1 mega octet
+ La taille de l'image ne doit pas dépasser 1 mega octet
diff --git a/src/mysy_img/new_icon_gif.gif b/src/mysy_img/new_icon_gif.gif
new file mode 100644
index 0000000..1ae45c6
Binary files /dev/null and b/src/mysy_img/new_icon_gif.gif differ
diff --git a/src/styles/components/_displaypartnersession.scss b/src/styles/components/_displaypartnersession.scss
index 412847e..528aaf8 100644
--- a/src/styles/components/_displaypartnersession.scss
+++ b/src/styles/components/_displaypartnersession.scss
@@ -1,5 +1,36 @@
.displaypartnersession {
+ .loader-container {
+ width: 100%;
+ height: 100vh;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: fixed;
+ background: white;
+ background-color: transparent;
+ z-index: 1;
+ top: 0px;
+ opacity: 80%;
+ }
+
+ .spinner {
+ width: 20rem;
+ height: 10rem;
+ border: 8px solid;
+ border-color: #3d5af1 transparent #3d5af1 transparent;
+ border-radius: 50%;
+ animation: spin-anim 1.2s linear infinite;
+ background-color: red;
+ color: black;
+ }
+ .mysy_spinner{
+ border-radius: 5px;
+ border: 1px solid black;
+ opacity: 100%;
+ }
+
+
.Mui-disabled {
font-size: small !important;
@@ -2100,6 +2131,7 @@
text-align: center;
}
+
}
// end media
diff --git a/src/styles/components/_displaypartnerstagiaire.scss b/src/styles/components/_displaypartnerstagiaire.scss
index 821a6b1..3757058 100644
--- a/src/styles/components/_displaypartnerstagiaire.scss
+++ b/src/styles/components/_displaypartnerstagiaire.scss
@@ -1,5 +1,36 @@
.displaypartnerstagiaire {
+ .loader-container {
+ width: 100%;
+ height: 100vh;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: fixed;
+ background: white;
+ background-color: transparent;
+ z-index: 1;
+ top: 0px;
+ opacity: 80%;
+ }
+
+ .spinner {
+ width: 20rem;
+ height: 10rem;
+ border: 8px solid;
+ border-color: #3d5af1 transparent #3d5af1 transparent;
+ border-radius: 50%;
+ animation: spin-anim 1.2s linear infinite;
+ background-color: red;
+ color: black;
+ }
+ .mysy_spinner{
+ border-radius: 5px;
+ border: 1px solid black;
+ opacity: 100%;
+ }
+
+
.Mui-disabled {
font-size: small !important;
diff --git a/src/styles/components/_gestionadministrative.scss b/src/styles/components/_gestionadministrative.scss
index 517cc36..6d3309b 100644
--- a/src/styles/components/_gestionadministrative.scss
+++ b/src/styles/components/_gestionadministrative.scss
@@ -1,5 +1,37 @@
.gestionadministrative {
+ .loader-container {
+ width: 100%;
+ height: 100vh;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: fixed;
+ background: white;
+ background-color: transparent;
+ z-index: 1;
+ top: 0px;
+ opacity: 80%;
+ }
+
+ .spinner {
+ width: 20rem;
+ height: 10rem;
+ border: 8px solid;
+ border-color: #3d5af1 transparent #3d5af1 transparent;
+ border-radius: 50%;
+ animation: spin-anim 1.2s linear infinite;
+ background-color: red;
+ color: black;
+ }
+ .mysy_spinner{
+ border-radius: 5px;
+ border: 1px solid black;
+ opacity: 100%;
+ }
+
+
+
.Mui-disabled {
font-size: small !important;
padding: 0px !important;
@@ -266,6 +298,54 @@
color: red !important;
}
+ .bton_suppr {
+ background: transparent;
+ color: red;
+ border-radius: 5rem;
+ font-size: small;
+ text-align: center;
+ height: 2.5rem;
+ width: 100%;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_enreg {
+ border-radius: 5rem;
+ font-size: small;
+ background: #81BC3A !important;
+ text-align: center;
+ height: 2.5rem;
+ width: 100%;
+ color: white;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_edit {
+ border-radius: 5rem;
+ font-size: small;
+ background: black !important;
+ text-align: right;
+ height: 2.5rem;
+ width: 100%;
+ color: white;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_annule {
+ border-radius: 5rem;
+ font-size: small;
+ background: lightgray !important;
+ text-align: right;
+ height: 2.5rem;
+ width: 100%;
+ color: black;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
.css-1x5jdmq {
padding: 6px !important;
}
@@ -290,6 +370,13 @@
width: 6%;
}
+
+ .gif_new_css {
+ width: 8%;
+ }
+
+
+
.bton_add_session {
background: #c8cfd5;
color: black;
@@ -633,6 +720,56 @@
color: red !important;
}
+
+ .bton_suppr {
+ background: transparent;
+ color: red;
+ border-radius: 5rem;
+ font-size: small;
+ text-align: center;
+ height: 2.5rem;
+ width: 80%;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_enreg {
+ border-radius: 5rem;
+ font-size: small;
+ background: #81BC3A !important;
+ text-align: center;
+ height: 2.5rem;
+ width: 80%;
+ color: white;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_edit {
+ border-radius: 5rem;
+ font-size: small;
+ background: black !important;
+ text-align: right;
+ height: 2.5rem;
+ width: 80%;
+ color: white;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_annule {
+ border-radius: 5rem;
+ font-size: small;
+ background: lightgray !important;
+ text-align: right;
+ height: 2.5rem;
+ width: 80%;
+ color: black;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+
.css-1x5jdmq {
padding: 6px !important;
}
@@ -651,7 +788,7 @@
.preview_certif:hover {
transform: scale(2);
- margin-left: 5rem;
+ margin-left: 0.5rem;
}
.hr_break {
@@ -662,6 +799,10 @@
width: 6%;
}
+ .gif_new_css {
+ width: 8%;
+ }
+
.bton_add_session {
background: #c8cfd5;
color: black;
@@ -996,6 +1137,56 @@
}
+
+ .bton_suppr {
+ background: transparent;
+ color: red;
+ border-radius: 5rem;
+ font-size: small;
+ text-align: center;
+ height: 2.5rem;
+ width: 65%;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_enreg {
+ border-radius: 5rem;
+ font-size: small;
+ background: #81BC3A !important;
+ text-align: center;
+ height: 2.5rem;
+ width: 65%;
+ color: white;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_edit {
+ border-radius: 5rem;
+ font-size: small;
+ background: black !important;
+ text-align: right;
+ height: 2.5rem;
+ width: 65%;
+ color: white;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_annule {
+ border-radius: 5rem;
+ font-size: small;
+ background: lightgray !important;
+ text-align: right;
+ height: 2.5rem;
+ width: 65%;
+ color: black;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+
.css-1x5jdmq {
padding: 6px !important;
}
@@ -1013,8 +1204,8 @@
}
.preview_certif:hover {
- transform: scale(2);
- margin-left: 5rem;
+ transform: scale(1.8);
+ margin-left: 0.5rem;
}
.hr_break {
@@ -1025,6 +1216,10 @@
width: 8%;
}
+ .gif_new_css {
+ width: 10%;
+ }
+
.bton_add_session {
background: #c8cfd5;
color: black;
@@ -1259,6 +1454,11 @@
background: white;
}
+ .disabled_style_hilight {
+ color: black !important;
+ font-weight: 600 !important;
+ }
+
.training_caract {
width: 30%;
padding: 5px;
@@ -1335,8 +1535,8 @@
}
.preview_certif:hover {
- transform: scale(1.8);
- margin-left: 10rem;
+ transform: scale(1.5);
+ margin-left: 1rem;
}
@@ -1372,6 +1572,10 @@
width: 8%;
}
+ .gif_new_css {
+ width: 10%;
+ }
+
.bton_add_session {
background: #c8cfd5;
color: black;
@@ -1432,6 +1636,56 @@
}
+ .bton_suppr {
+ background: transparent;
+ color: red;
+ border-radius: 5rem;
+ font-size: small;
+ text-align: center;
+ height: 2.5rem;
+ width: 40%;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_enreg {
+ border-radius: 5rem;
+ font-size: small;
+ background: #81BC3A !important;
+ text-align: center;
+ height: 2.5rem;
+ width: 40%;
+ color: white;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_edit {
+ border-radius: 5rem;
+ font-size: small;
+ background: black !important;
+ text-align: right;
+ height: 2.5rem;
+ width: 40%;
+ color: white;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+ .bton_annule {
+ border-radius: 5rem;
+ font-size: small;
+ background: lightgray !important;
+ text-align: right;
+ height: 2.5rem;
+ width: 40%;
+ color: black;
+ margin-left: 10px;
+ margin-right: 10px;
+ }
+
+
+
.enable_style {
background-color: #FFFFFF;
}
@@ -1495,7 +1749,7 @@
// end media
- .css-igs3ac{
+ .css-igs3ac {
border: none !important;
}
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 29d704b..011dce8 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -78,4 +78,6 @@
@import "./components/testurl_new";
@import "./components/partner_commande";
@import "./components/config_document";
+@import 'react-big-calendar/lib/sass/styles';
+ @import 'react-big-calendar/lib/addons/dragAndDrop/styles'; // if using DnD