From b0b2108caeb16967b25cb003aacc056b8a75ad7c Mon Sep 17 00:00:00 2001 From: cherif Date: Mon, 10 Mar 2025 12:36:09 +0100 Subject: [PATCH] 10/03/2025 - 13h --- public/sitemap.xml | 7 + src/App.js | 36 +- src/components/DisplayPartnerSession.js | 231 +++++- src/components/Display_Action_And_Class.js | 3 - src/components/UpdateAttendeeList.js | 753 ++++++++++++++++-- .../homepage_automatic_files/new_homepage.js | 10 +- 6 files changed, 953 insertions(+), 87 deletions(-) diff --git a/public/sitemap.xml b/public/sitemap.xml index 4635c0f..59f0d3e 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -12,6 +12,13 @@ 1.0000 + + https://mysy-training.com/ + 2025-02-16T11:35:41+00:00 + daily + 1.0000 + + https://www.mysy-training.com/fonctionnalites 2025-02-16T11:35:41+00:00 diff --git a/src/App.js b/src/App.js index 9cf8c48..8a16a9f 100644 --- a/src/App.js +++ b/src/App.js @@ -167,7 +167,7 @@ function App() { - + @@ -185,7 +185,7 @@ function App() { - + {/* */} @@ -223,6 +223,17 @@ function App() { + + {/* + + 09/03/25 : un redirection a été faite dans cloudflaire pour les lignes ci-dessous + + + + */} + + + @@ -233,6 +244,15 @@ function App() { + {/* + + 09/03/25 : un redirection a été faite dans cloudflaire pour les lignes ci-dessous + + + + + */} + @@ -260,16 +280,10 @@ function App() { - - - - - - - - + + - + {/* Fin Migration */} diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js index 325d2c3..c9523e6 100644 --- a/src/components/DisplayPartnerSession.js +++ b/src/components/DisplayPartnerSession.js @@ -70,8 +70,8 @@ import RadioGroup from '@mui/material/RadioGroup'; import FormControlLabel from '@mui/material/FormControlLabel'; import FormControl from '@mui/material/FormControl'; import FormLabel from '@mui/material/FormLabel'; - -import allLocales from '@fullcalendar/core/locales-all' +import { FaUserPen } from "react-icons/fa6"; +import allLocales from '@fullcalendar/core/locales-all'; import listPlugin from '@fullcalendar/list'; import multiMonthPlugin from '@fullcalendar/multimonth' @@ -2484,7 +2484,7 @@ const DisplayPartnerSession = (props) => { const [Get_List_Partner_Clients_api, setGet_List_Partner_Clients_api] = useState(); const [Get_List_Partner_Clients_message, setGet_List_Partner_Clients_message] = useState(); - const [Get_List_Partner_Clients_result, setGet_List_Partner_Clients_result] = useState(); + const [Get_List_Partner_Clients_result, setGet_List_Partner_Clients_result] = useState([]); function Get_List_Partner_Clients(event) { var form = new FormData(); @@ -3338,6 +3338,62 @@ const DisplayPartnerSession = (props) => { }) } + const [Update_PresInsc_Data_With_Nb_Personne_By_Client_api, setUpdate_PresInsc_Data_With_Nb_Personne_By_Client_api] = useState(); + const [Update_PresInsc_Data_With_Nb_Personne_By_Client_message, setUpdate_PresInsc_Data_With_Nb_Personne_By_Client_message] = useState(); + const [Update_PresInsc_Data_With_Nb_Personne_By_Client_result, setUpdate_PresInsc_Data_With_Nb_Personne_By_Client_result] = useState(); + function Update_PresInsc_Data_With_Nb_Personne_By_Client() { + + + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + + // console.log(" #### local_liste_class = ", local_liste_class) + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("client_id", p_maj_preinsc_client_id); + form.append("session_id", selected_session_id); + form.append("max_presinscrit", p_maj_preinsc_nb_participant); + + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Prepare_request_For_Preinsciption_Creation_By_Customer/"; + setLoading(true); + axios.post(myurl, form).then(res => { + setLoading(false); + //console.log(" In Update_PresInsc_Data_With_Nb_Personne_By_Client res.data.status = " + res.data.status); + //console.log(" In Update_PresInsc_Data_With_Nb_Personne_By_Client res.data.message r_class = " + res.data.message); + + if (String(res.data.status) === String("true")) { + setUpdate_PresInsc_Data_With_Nb_Personne_By_Client_api("true"); + setUpdate_PresInsc_Data_With_Nb_Personne_By_Client_result(res.data.message); + Dialog_MAJ_Preinsc_Client_handleClose_buton(); + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("success"); + } + else { + setUpdate_PresInsc_Data_With_Nb_Personne_By_Client_api("false"); + setUpdate_PresInsc_Data_With_Nb_Personne_By_Client_message(res.data.message); + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("error"); + + + } + + }).catch((error) => { + setLoading(false); + console.warn('Update_PresInsc_Data_With_Nb_Personne_By_Client : Not good man :( mysearchtext = ' + error); + setUpdate_PresInsc_Data_With_Nb_Personne_By_Client_api("false"); + alert(" Impossible d'envoyer la demande de mise à jour"); + }) + } + + + const [Refuse_List_Inscritpion_api, setRefuse_List_Inscritpion_api] = useState(); const [Refuse_List_Inscritpion_message, setRefuse_List_Inscritpion_message] = useState(); const [Refuse_List_Inscritpion_result, setRefuse_List_Inscritpion_result] = useState(); @@ -13960,6 +14016,31 @@ const DisplayPartnerSession = (props) => { const [dup_p_session_etape, setdup_p_session_etape] = useState(""); const [dup_p_session_formateur_id, setdup_p_session_formateur_id] = useState(""); + + + const [Dialog_MAJ_Preinsc_Client_message, setDialog_MAJ_Preinsc_Client_message] = React.useState(false); + const [Dialog_MAJ_Preinsc_Client_open, setDialog_MAJ_Preinsc_Client_open] = React.useState(false); + function Dialog_MAJ_Preinsc_Client_handle_change_participant_session(message) { + setDialog_MAJ_Preinsc_Client_message(message); + setDialog_MAJ_Preinsc_Client_open(true); + } + + const Dialog_MAJ_Preinsc_Client_handleClose = () => { + //alert(" Utiliser le bouton 'fermer' "); + //setOpen(false); + }; + + const Dialog_MAJ_Preinsc_Client_handleClose_buton = () => { + setp_maj_preinsc_client_id(""); + setp_maj_preinsc_nb_participant(""); + setDialog_MAJ_Preinsc_Client_open(false); + }; + + + const [p_maj_preinsc_client_id, setp_maj_preinsc_client_id] = useState(""); + const [p_maj_preinsc_nb_participant, setp_maj_preinsc_nb_participant] = useState("1"); + + return (
@@ -14013,7 +14094,6 @@ const DisplayPartnerSession = (props) => { aria-labelledby="draggable-dialog-title" > - Dupliquer : {dup_list_session_code} @@ -14166,6 +14246,129 @@ const DisplayPartnerSession = (props) => { {/* FIN Dialog pour gerer les DUPLIQUER SESSION*/} + {/* Dialog pour gerer les PREINSCRIPTION PAR CLIENT*/} + null} + + PaperProps={{ + + + className: classes.paper, // Apply the paper style + style: { + overflowY: 'unset', + position: 'absolute', + top: '7rem', + margin: "2px", + }, + }} + hideBackdrop={true} + disableScrollLock + classes={{ + paper: classes.dialog + }} + + PaperComponent={PaperComponent} + aria-labelledby="draggable-dialog-title" + + > + Préinscription par le client zzz + + + {Dialog_1_message} + + {New_Get_List_Partner_Clients_result && New_Get_List_Partner_Clients_result.length > 0 &&
Client
+ (data)._id === String(p_maj_preinsc_client_id))[0].label} + options={New_Get_List_Partner_Clients_result} + onChange={(event, value) => { + if (value && value._id) { + setp_maj_preinsc_client_id(value._id); + + } else { + setp_maj_preinsc_client_id(""); + } + }} + + + renderInput={(params) => + } + /> +
} + + +
Maximum préinscription
+ { + setp_maj_preinsc_nb_participant(e.target.value); + } + } + /> + +
+ + +
+ + + + + + + + +
+
+ {String(p_maj_preinsc_client_id).length > 5 && String(p_maj_preinsc_nb_participant) > 0 && + } + +
+ + +
+ +
+
+ +
+ +
+ {/* FIN Dialog pour gerer les PREINSCRIPTION PAR CLIENT*/} + {/* Dialog pour gerer les CONVENTIONS ENTREPRISE*/} @@ -19930,7 +20133,7 @@ const DisplayPartnerSession = (props) => { onChange={liste_sessions_file_change} /> - Télécharger un fichier modèle + Télécharger un fichier modèle
 
@@ -22844,6 +23047,24 @@ const DisplayPartnerSession = (props) => { ajout un participant + + + + + + +
Télécharger un fichier modèle
diff --git a/src/components/Display_Action_And_Class.js b/src/components/Display_Action_And_Class.js index b71827a..906a90a 100644 --- a/src/components/Display_Action_And_Class.js +++ b/src/components/Display_Action_And_Class.js @@ -20,10 +20,7 @@ import img_met_graphisme from "../mysy_img/metier_graphisme.jpg"; import img_met_autre from "../mysy_img/met_autre.jpg"; import img_met_digital from "../mysy_img/met_digital.jpg"; import img_met_management from "../mysy_img/met_management.jpg"; -import img_met_projet from "../mysy_img/met_projet.jpg"; -import img_met_market from "../mysy_img/met_market.jpg"; -import img_met_autre2 from "../mysy_img/met_autre2.jpg"; import img_met_dev_perso from "../mysy_img/metier_dev_perso.jpg"; import img_met_rh from "../mysy_img/met_rh.jpg"; diff --git a/src/components/UpdateAttendeeList.js b/src/components/UpdateAttendeeList.js index de982e1..c0d5738 100644 --- a/src/components/UpdateAttendeeList.js +++ b/src/components/UpdateAttendeeList.js @@ -25,13 +25,58 @@ import Link from '@mui/material/Link'; import { PiDotsThree } from "react-icons/pi"; import Popup from 'reactjs-popup'; import 'reactjs-popup/dist/index.css'; - +import TextField from '@mui/material/TextField'; import Display_Action_And_Class from "./Display_Action_And_Class"; import Module_Alert_Confirmation from "./Module_Alert_Confirmation"; +import AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'; +import Dialog from '@mui/material/Dialog'; +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 { IconButton } from '@material-ui/core'; +import CancelPresentationIcon from '@mui/icons-material/CancelPresentation'; + +import { makeStyles } from "@material-ui/core/styles"; +import Paper from '@material-ui/core/Paper'; +import Draggable from 'react-draggable'; + +function PaperComponent(props) { + return ( + + + + ); +} + + +const useStyles = makeStyles((theme) => ({ + + dialog: { + position: 'absolute', + // left: 10, + top: 400 + }, + + paper: { + overflowY: 'unset', + }, + customizedButton: { + position: 'absolute', + left: '98%', + top: '-3%', + backgroundColor: 'lightgray', + color: 'gray', + }, +})); + function UpdateAttendeeList() { - + const classes = useStyles(); const history = useHistory(); const { client_id, session_id, partner_owner_recid } = useParams(); const [isLoading, setLoading] = useState(); @@ -74,6 +119,7 @@ function UpdateAttendeeList() { const columns_preinscrit = [ { field: 'id', headerName: 'id', hide: true }, { field: '_id', headerName: '_id', hide: true }, + { field: 'civilite', headerName: 'Civ.', minWidth: 100, flex: 1, maxWidth: 100, hide: false, editable: true, type: "singleSelect", @@ -101,10 +147,133 @@ function UpdateAttendeeList() { { field: 'prenom', headerName: 'prenom', minWidth: 150, flex: 1, hide: false, editable: true, renderCell: (params) => , }, { field: 'email', headerName: 'email', minWidth: 150, flex: 1, editable: true, renderCell: (params) => , }, + { + field: 'status', headerName: 'Statut', minWidth: 150, flex: 1, editable: false, + renderCell: (cellValues) => { + return ( +
+ + {cellValues.row.status && String(cellValues.row.status) === "1" && "Validé"} + {cellValues.row.status && String(cellValues.row.status) === "0" && "PréIns"} + {cellValues.row.pres_dist_hyp && String(cellValues.row.status) !== "0" + && String(cellValues.row.status) === "1" && "N/A"} +
+ + ); + } + }, ] + + const columns_preinscrit_with_add_delete_bton = [ + { field: 'id', headerName: 'id', hide: true }, + { field: '_id', headerName: '_id', hide: true }, + + { + field: 'civilite', headerName: 'Civ.', minWidth: 100, flex: 1, maxWidth: 100, hide: false, editable: true, + type: "singleSelect", + valueOptions: [ + { value: 'm', label: 'M' }, + { value: 'mme', label: 'Mme' }, + { value: 'neutre', label: 'Neutre' } + ], + renderCell: (params) => { + return ( + +
+ + {params.value && String(params.value) === "m" && "M"} + {params.value && String(params.value) === "mme" && "Mme"} + {params.value && String(params.value) === "neutre" && "Neutre"} + +
+ + ); + } + }, + + { field: 'nom', headerName: 'nom', minWidth: 150, flex: 1, hide: false, editable: true, renderCell: (params) => , }, + { field: 'prenom', headerName: 'prenom', minWidth: 150, flex: 1, hide: false, editable: true, renderCell: (params) => , }, + { field: 'email', headerName: 'email', minWidth: 150, flex: 1, editable: true, renderCell: (params) => , }, + { + field: 'status', headerName: 'Statut', minWidth: 150, flex: 1, editable: false, + renderCell: (cellValues) => { + return ( +
+ + {cellValues.row.status && String(cellValues.row.status) === "1" && "Validé"} + {cellValues.row.status && String(cellValues.row.status) === "0" && "PréIns"} + {cellValues.row.pres_dist_hyp && String(cellValues.row.status) !== "0" + && String(cellValues.row.status) === "1" && "N/A"} +
+ + ); + } + }, + { + field: "delete", headerName: 'Supprimer', + renderCell: (cellValues) => { + return ( + + + + + } + modal + nested + position="center center" + > + {close => ( +
+ +
MySy Information
+
+ {' '} + + En confirmant cette opération, la ligne sera définitivement supprimée .
+ +
+
+
+ + +
+
+ +
+
+
+ )} +
+ + + ); + } + }, + + ] + + const [document_checked, setdocument_checked] = useState("0"); const [Getall_Client_Communication_Contact_api, setGetall_Client_Communication_Contact_api] = useState(); @@ -124,7 +293,7 @@ function UpdateAttendeeList() { setLoading(true); axios.post(myurl, form).then(res => { - + setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In Getall_Client_Communication_Contact res.data.status = " + res.data.status); @@ -159,6 +328,8 @@ function UpdateAttendeeList() { const [Partner_Recid, setPartner_Recid] = useState(""); const [class_internal_url, setclass_internal_url] = useState(""); + const [max_presinscrit, setmax_presinscrit] = useState(""); + const [is_client_preinsc_update_request, setis_client_preinsc_update_request] = useState(""); @@ -186,25 +357,29 @@ function UpdateAttendeeList() { setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In Getall_TrainingParticipant res.data.status = " + res.data.status); - //console.log(" In Getall_TrainingParticipant res.data.message r_class = " + res.data.message); + //console.log(" In Getall_TrainingParticipant res.data.message r_class = " + res.data.message, " -- message_global_data = ", res.data.message_global_data); setGetall_TrainingParticipant_api("true"); setGetall_TrainingParticipant_result(res.data.message); setRows_preinsc(res.data.message); + setmax_presinscrit(String(JSON.parse(res.data.message_global_data).max_presinscrit)) + setis_client_preinsc_update_request(String(JSON.parse(res.data.message_global_data).is_client_preinsc_update_request)) + + var new_data2 = []; const new_data = res.data.message.map((x) => { - //--- var localid = JSON.parse(x).id; var local_id = JSON.parse(x)._id; + var local_status = JSON.parse(x).status; var local_nom = JSON.parse(x).nom; var local_prenom = JSON.parse(x).prenom; var local_email = JSON.parse(x).email; var local_civilite = JSON.parse(x).civilite; - setPartner_Recid(String(JSON.parse(x).partner_owner_recid)) - setclass_internal_url(String(JSON.parse(x).class_internal_url)) + setPartner_Recid(String(JSON.parse(x).partner_owner_recid)); + setclass_internal_url(String(JSON.parse(x).class_internal_url)); //--- var node = { @@ -214,6 +389,7 @@ function UpdateAttendeeList() { "prenom": local_prenom, "email": local_email, "civilite": local_civilite, + "status": local_status, }; new_data2.push(node); @@ -261,7 +437,7 @@ function UpdateAttendeeList() { // params = la nouvelle lignes - + var num_line = params.id; // ==> Id de la ligne changé var colomn = params.field; // ==> colonne de la ligne changé @@ -281,7 +457,7 @@ function UpdateAttendeeList() { tmp['prenom'] = (x).prenom; tmp['email'] = (x).email; tmp['civilite'] = (x).civilite; - + tmp['status'] = (x).status; return tmp; @@ -295,6 +471,7 @@ function UpdateAttendeeList() { tmp['prenom'] = new_value; tmp['email'] = (x).email; tmp['civilite'] = (x).civilite; + tmp['status'] = (x).status; return tmp; } @@ -307,6 +484,7 @@ function UpdateAttendeeList() { tmp['prenom'] = (x).prenom; tmp['email'] = (x).email; tmp['civilite'] = new_value; + tmp['status'] = (x).status; return tmp; } @@ -319,6 +497,7 @@ function UpdateAttendeeList() { tmp['prenom'] = (x).prenom; tmp['email'] = new_value; tmp['civilite'] = (x).civilite; + tmp['status'] = (x).status; return tmp; } @@ -331,6 +510,7 @@ function UpdateAttendeeList() { tmp['prenom'] = (x).prenom; tmp['email'] = (x).email; tmp['civilite'] = (x).civilite; + tmp['status'] = (x).status; return tmp; @@ -359,7 +539,7 @@ function UpdateAttendeeList() { const new_attende_dat_JSON = JSON.stringify(New_Getall_TrainingParticipant_result); - // console.log(" Record_New_Attendee_Data New_Getall_TrainingParticipant_result = ", New_Getall_TrainingParticipant_result); + // console.log(" Record_New_Attendee_Data New_Getall_TrainingParticipant_result = ", New_Getall_TrainingParticipant_result); const stored_cookie = getCookie('tokenmysypart'); form.append("client_id", client_id); @@ -371,8 +551,8 @@ function UpdateAttendeeList() { setLoading(true); axios.post(myurl, form).then(res => { - console.log(" In Record_New_Attendee_Data res.data.status = " + res.data.status); - console.log(" In Record_New_Attendee_Data res.data.message r_class = " + res.data.message); + // console.log(" In Record_New_Attendee_Data res.data.status = " + res.data.status); + // console.log(" In Record_New_Attendee_Data res.data.message r_class = " + res.data.message); setLoading(false); if (String(res.data.status) === String("true")) { @@ -387,7 +567,7 @@ function UpdateAttendeeList() { else { setRecord_New_Attendee_Data_api("false"); setRecord_New_Attendee_Data_message(res.data.message); - // alert(res.data.message); + // alert(res.data.message); setdisplay_alert_mysy("1"); setalert_message(res.data.message); setalert_type("error"); @@ -416,6 +596,132 @@ function UpdateAttendeeList() { setdisplay_alert_mysy(""); } + function add_one_ligne_to_datagrid() { + + if (New_Getall_TrainingParticipant_result.length >= String(max_presinscrit)) { + setdisplay_alert_mysy("1"); + setalert_message("Vous avez atteint le nombre maximum d'inscriptions autorisé"); + setalert_type("warning"); + return; + } + + if (String(is_client_preinsc_update_request) === "1" && New_Getall_TrainingParticipant_result.length < String(max_presinscrit)) { + var new_data2 = []; + const new_data = New_Getall_TrainingParticipant_result.map((x) => { + //--- + var localid = (x).id; + var local_id = (x)._id; + var local_nom = (x).nom; + var local_prenom = (x).prenom; + var local_email = (x).email; + var local_civilite = (x).civilite; + var local_status = (x).status; + + + //--- + var node = { + "_id": local_id, + "id": localid, + "nom": local_nom, + "prenom": local_prenom, + "email": local_email, + "civilite": local_civilite, + "status": local_status, + }; + new_data2.push(node); + + }); + + //--- + var node = { + "_id": "", + "id": String(New_Getall_TrainingParticipant_result.length), + "nom": "new_nom", + "prenom": "new_prenom", + "email": "new_email@email.com", + "civilite": "neutre", + "status": "0", + }; + new_data2.push(node); + + if (new_data2.length > 0) { + setNew_Getall_TrainingParticipant_result(new_data2); + } + + } + + } + + function delete_data_grid_line(event, cellValues) { + + if (cellValues.row.status !== "0") { + setdisplay_alert_mysy("1"); + setalert_message("Le statut soit être à 'Preins' pour être supprimable. Merci de contacter le gestionnaire de formation"); + setalert_type("warning"); + return; + } + + if (String(is_client_preinsc_update_request) === "1" && New_Getall_TrainingParticipant_result.length <= String(max_presinscrit)) { + var new_data2 = []; + const new_data = New_Getall_TrainingParticipant_result.map((x) => { + + + if ((x).id != cellValues.row.id) { + //--- + var localid = (x).id; + var local_id = (x)._id; + var local_nom = (x).nom; + var local_prenom = (x).prenom; + var local_email = (x).email; + var local_civilite = (x).civilite; + var local_status = (x).status; + + + + //--- + var node = { + "_id": local_id, + "id": localid, + "nom": local_nom, + "prenom": local_prenom, + "email": local_email, + "civilite": local_civilite, + "status": local_status, + }; + new_data2.push(node); + } + + }); + + + + if (new_data2.length > 0) { + setNew_Getall_TrainingParticipant_result(new_data2); + } + + } + + + } + + const [Dialog_preinscrit_message, setDialog_preinscrit_message] = React.useState(false); + const [Dialog_preinscrit_open, setDialog_preinscrit_open] = React.useState(false); + function Dialog_preinscrit_handle_change_participant_session(message) { + setDialog_preinscrit_message(message); + setDialog_preinscrit_open(true); + } + + const Dialog_preinscrit_handleClose = () => { + //alert(" Utiliser le bouton 'fermer' "); + //setOpen(false); + }; + + const Dialog_preinscrit_handleClose_buton = () => { + + setDialog_preinscrit_open(false); + }; + const [Dialog_1_message, setDialog_1_message] = React.useState(false); + return (
@@ -424,7 +730,7 @@ function UpdateAttendeeList() {
} - {/*** Affichage des messages d'alerte*/} + {/*** Affichage des messages d'alerte*/} {display_alert_mysy && String(display_alert_mysy) === "1" && -   - - - {Getall_Client_Communication_Contact_result && Getall_Client_Communication_Contact_result.length > 0 &&
-
-
} + + {/* + +
Date Session
+
+ { + setdup_p_date_du(format(date, 'd/MM/yyyy')); + + } + } + showTimeSelect={false} + dateFormat="dd/MM/yyyy" + className="disabled_style enable_style datepicker_complement" + locale='fr-FR' + + /> + +
+
+ Au + +
+
+ + { + setdup_p_date_au(format(date, 'd/MM/yyyy')); + + } + } + showTimeSelect={false} + dateFormat="dd/MM/yyyy" + className="disabled_style enable_style datepicker_complement" + locale='fr-FR' + + /> +
+ +
*/} + + + + + + + + + + +
+
+ + +
+ + +
+ +
+
+ +
+ + + {/* FIN Dialog pour gerer Un PRE/INSCRIT */} + +
 
- {New_Getall_TrainingParticipant_result && New_Getall_TrainingParticipant_result.length > 0 &&
+ + {Getall_Client_Communication_Contact_result && Getall_Client_Communication_Contact_result.length > 0 && +
+
+ + + + + + Merci de completer les informations des participants à session de formation ci-dessous.
+
+
+ {Getall_TrainingParticipant_result && Getall_TrainingParticipant_result.length > 0 && +
+ Formation : {JSON.parse(Getall_TrainingParticipant_result[0]).title}
+ Code Session : {JSON.parse(Getall_TrainingParticipant_result[0]).title}
+ Titre Session : {JSON.parse(Getall_TrainingParticipant_result[0]).session_titre}
+ Date début : {JSON.parse(Getall_TrainingParticipant_result[0]).date_du}
+ Date fin : {JSON.parse(Getall_TrainingParticipant_result[0]).date_au}
+ +
+ } + +
+
} + +
+   +
+ {String(is_client_preinsc_update_request) !== "1" && New_Getall_TrainingParticipant_result && New_Getall_TrainingParticipant_result.length > 0 &&
@@ -484,7 +945,7 @@ function UpdateAttendeeList() { [`& .${gridClasses.cell}`]: { py: 1, }, - '& .line--statut--invoiced': { + '& .line--inscription--done': { backgroundColor: '#EAFAF1', color: '#239B56', fontWeight: '700' @@ -518,10 +979,12 @@ function UpdateAttendeeList() { { id: index, _id: item._id, + _id: item._id, nom: item.nom, prenom: (item).prenom, email: (item).email, civilite: (item).civilite, + status: (item).status, } ))} @@ -534,6 +997,17 @@ function UpdateAttendeeList() { components={{ Toolbar: GridToolbar, }} + + getRowClassName={(params) => { + + // Pour la gestion de la couleur de zone double cliquée + if (String(params.row.status) === "1") { + return 'line--inscription--done'; + } + + + }} + getEstimatedRowHeight={() => 200} getRowHeight={() => "auto"} sx={{ @@ -554,7 +1028,162 @@ function UpdateAttendeeList() {

-
+ + + +
} + +
+ {String(is_client_preinsc_update_request) !== "1" && String(document_checked) === "1" && (!Getall_TrainingParticipant_result || Getall_TrainingParticipant_result.length <= 0) &&
+ + Le document est invalide + +
} + + {String(is_client_preinsc_update_request) === "1" && String(max_presinscrit) > "0" && +
+
+ Inscrire ou mettre à jour les participants à la formation. Maxium autorisé : {max_presinscrit}
+ Procedure :
+ Pour mettre à jour une cellule : Double cliquer sur la cellule et modifier l'information.
+ Pour ajouter ou supprimer une ligne : Utiliser les boutons. +
+
+ + + {New_Getall_TrainingParticipant_result && New_Getall_TrainingParticipant_result.length > 0 &&
+ +
+
+ + { + setselectionModel_preinsc(newSelectionModel); + //console.log("ch selected--" + newSelectionModel); + }} + selectionModel={selectionModel_preinsc} + + localeText={frFR.components.MuiDataGrid.defaultProps.localeText} + rows={New_Getall_TrainingParticipant_result.map((item, index) => ( + { + id: index, + _id: item._id, + nom: item.nom, + prenom: (item).prenom, + email: (item).email, + civilite: (item).civilite, + status: (item).status, + } + ))} + + columns={columns_preinscrit_with_add_delete_bton} + + isCellEditable={(params) => params.row.status === "0"} + + pageSize={10} + className="datagridclass" + + + rowsPerPageOptions={[10]} + disableSelectionOnClick + components={{ + Toolbar: GridToolbar, + }} + + getRowClassName={(params) => { + + // Pour la gestion de la couleur de zone double cliquée + if (String(params.row.status) === "1") { + return 'line--inscription--done'; + } + + + }} + + getEstimatedRowHeight={() => 200} + getRowHeight={() => "auto"} + sx={{ + "& .MuiDataGrid-cellContent": { + minHeight: 50, + + }, + [`& .${gridClasses.cell}`]: { + py: 1, + }, + }} + /> + + +
+ +
+ +
+
+ +   + +
+ +
+ + +
+ +
+ +
+
+ +
} + +
} + +
+
+
+
-
+
- -
-   -
- -
-
- - {class_internal_url && String(class_internal_url).length > 2 &&
- - -
} -
- -
} - -
- {String(document_checked) === "1" && (!Getall_TrainingParticipant_result || Getall_TrainingParticipant_result.length <= 0) &&
- - Le document est invalide - -
}
+ +
 
- + +
+   +
+ +
+
+ + {class_internal_url && String(class_internal_url).length > 2 &&
+ + +
} +
+ +
); } diff --git a/src/components/homepage_automatic_files/new_homepage.js b/src/components/homepage_automatic_files/new_homepage.js index 99bb33d..20205ef 100644 --- a/src/components/homepage_automatic_files/new_homepage.js +++ b/src/components/homepage_automatic_files/new_homepage.js @@ -1,7 +1,7 @@ import React, { useRef, useState, useEffect } from "react"; import moment from "moment"; import "./new_homepage.css"; - +import { Helmet } from "react-helmet"; import WhyUsLayout from './WhyUsLayout.js'; import LogoCloud from './LogoCloud.js'; import VisionSection from './VisionSection.js'; @@ -25,6 +25,14 @@ const New_C_A_Propos_2025 = (props) => { return (
+ + Éditeur Français de logiciels de gestion pour organismes de formation - Gestion administrative, CRM, E-Learning, Marketplace + + + + + +