18/12/2023 - 18:00

recette2
cherif 2023-12-18 18:10:43 +01:00
parent 49334cee17
commit 8c9fbc8f9e
5 changed files with 390 additions and 170 deletions

View File

@ -23,6 +23,7 @@ import PartnerClientActivite from "./PartnerClient_Activite";
import Popup from 'reactjs-popup'; import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css'; import 'reactjs-popup/dist/index.css';
import ToggleSwitch from "./ToggleSwitch"; import ToggleSwitch from "./ToggleSwitch";
import { FcSpeaker } from "react-icons/fc";
const AddParnerClient = (props) => { const AddParnerClient = (props) => {
const history = useHistory(); const history = useHistory();
@ -1198,10 +1199,11 @@ const AddParnerClient = (props) => {
var client_email = "" var client_email = ""
if (document.getElementsByName("client_email")) { if (document.getElementsByName("client_email")) {
client_email = document.getElementsByName("client_email")[0].value; client_email = String(document.getElementsByName("client_email")[0].value).trim();
} }
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!client_email.match(validRegex)) { if (!client_email.match(validRegex)) {
alert("L'adresse email est invalide."); alert("L'adresse email est invalide.");
return; return;
@ -1212,7 +1214,7 @@ const AddParnerClient = (props) => {
var client_nom = "" var client_nom = ""
if (document.getElementsByName("client_nom")) { if (document.getElementsByName("client_nom")) {
client_nom = document.getElementsByName("client_nom")[0].value; client_nom = String(document.getElementsByName("client_nom")[0].value).trim();
} }
form.append("nom", client_nom); form.append("nom", client_nom);
if (String(client_nom).trim() === "") { if (String(client_nom).trim() === "") {
@ -1342,7 +1344,7 @@ const AddParnerClient = (props) => {
var client_email = "" var client_email = ""
if (document.getElementsByName("client_email")) { if (document.getElementsByName("client_email")) {
client_email = document.getElementsByName("client_email")[0].value; client_email = String(document.getElementsByName("client_email")[0].value).trim();
} }
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!client_email.match(validRegex)) { if (!client_email.match(validRegex)) {
@ -1810,7 +1812,7 @@ const AddParnerClient = (props) => {
// Données de contact du client du partner // Données de contact du client du partner
var contact_email = "" var contact_email = ""
if (document.getElementsByName("contact_email")) { if (document.getElementsByName("contact_email")) {
contact_email = document.getElementsByName("contact_email")[0].value; contact_email = String(document.getElementsByName("contact_email")[0].value).trim();
} }
// Pour activier la fontion de "include com", le contact foit avoir une adresse email // Pour activier la fontion de "include com", le contact foit avoir une adresse email
@ -1825,9 +1827,14 @@ const AddParnerClient = (props) => {
var contact_nom = "" var contact_nom = ""
if (document.getElementsByName("contact_nom")) { if (document.getElementsByName("contact_nom")) {
contact_nom = document.getElementsByName("contact_nom")[0].value; contact_nom = String(document.getElementsByName("contact_nom")[0].value).trim();
} }
form.append("nom", contact_nom); form.append("nom", contact_nom);
if (contact_nom.length < 2) {
alert("Le nom du contact est invalide ");
return;
}
var contact_prenom = "" var contact_prenom = ""
if (document.getElementsByName("contact_prenom")) { if (document.getElementsByName("contact_prenom")) {
@ -2174,7 +2181,7 @@ const AddParnerClient = (props) => {
<Button variant="outlined" onClick={submenu_donnee_client} className="detail_submenu" id='submenu_donnee_client' name='submenu_donnee_client'>Données Client</Button> <Button variant="outlined" onClick={submenu_donnee_client} className="detail_submenu" id='submenu_donnee_client' name='submenu_donnee_client'>Données Client</Button>
</div> </div>
<div className="session_caract"> Raison sociale <br /> <div className="session_caract"> Raison sociale <br />
<TextField <TextField
@ -2207,7 +2214,7 @@ const AddParnerClient = (props) => {
</div> </div>
<div className="session_caract"> Type client <br /> <div className="session_caract"> Type client <br />
<TextField <TextField
@ -2271,7 +2278,7 @@ const AddParnerClient = (props) => {
</div> </div>
<div className="session_caract"> <div className="session_caract">
<b>Email</b> <br /> <b>Email</b> <br />
<TextField <TextField
required required
name="client_email" name="client_email"
@ -2343,7 +2350,7 @@ const AddParnerClient = (props) => {
/> />
</div> </div>
<div className="session_caract"> Telephone <br /> <div className="session_caract"> Téléphone <br />
<TextField <TextField
required required
name="client_telephone" name="client_telephone"
@ -2362,7 +2369,7 @@ const AddParnerClient = (props) => {
<TextField <TextField
required required
name="client_website" name="client_website"
label="Site web" //label="Site web"
InputLabelProps={{ InputLabelProps={{
shrink: true, shrink: true,
}} }}
@ -2450,8 +2457,8 @@ const AddParnerClient = (props) => {
{String(submenu).trim() === "submenu_donnee_client" && <div className="training_data" onChange={DataUpdated}> {String(submenu).trim() === "submenu_donnee_client" && <div className="training_data" onChange={DataUpdated}>
<div className="session_caract"> Raison sociale <br /> <div className="session_caract"> Raison sociale <br />
<TextField <TextField
required required
name="client_raison_sociale" name="client_raison_sociale"
@ -2484,7 +2491,7 @@ const AddParnerClient = (props) => {
</div> </div>
{String(formedit_mode) !== "1" && <div className="session_caract"> Type client<br /> {String(formedit_mode) !== "1" && <div className="session_caract"> Type client<br />
<TextField <TextField
required required
@ -2855,17 +2862,39 @@ const AddParnerClient = (props) => {
<div > <div >
{(JSON.parse(client).nom || JSON.parse(client).prenom) && {(JSON.parse(client).nom || JSON.parse(client).prenom) &&
<nav style={{ "width": "100%", "float": "left" }}> <nav style={{ "width": "100%", "float": "left" }}>
<nav className="grid_title" style={{ "width": "75%", "float": "left", "cursor": "pointer" }} contactmail={String(JSON.parse(client).email)} contact_id={String(JSON.parse(client)._id)} onClick={Display_Part_Client_Contact}> <nav className="grid_title" style={{ "width": "69%", "float": "left", "cursor": "pointer" }} contactmail={String(JSON.parse(client).email)} contact_id={String(JSON.parse(client)._id)} onClick={Display_Part_Client_Contact}>
{String(JSON.parse(client).prenom)} &nbsp; {String(JSON.parse(client).nom)} {String(JSON.parse(client).prenom)} &nbsp; {String(JSON.parse(client).nom)}
</nav> </nav>
{String(JSON.parse(client).include_com) === "1" && <nav style={{ "width": "10%", "float": "left" }}>
<Tooltip id="tooltip_speacker" />
<a data-tooltip-id="tooltip_speacker" data-tooltip-content="Contacte utilisé dans les échanges de mails">
<FcSpeaker style={{ "border": "1px solid", "cursor": "pointer" }} /> &nbsp; &nbsp;
</a>
</nav>}
{String(JSON.parse(client).include_com) !== "1" && <nav style={{ "width": "10%", "float": "left" }}>
&nbsp;
</nav>}
<nav style={{ "width": "10%", "float": "left" }}> <nav style={{ "width": "10%", "float": "left" }}>
<CiEdit style={{ "border": "1px solid", "cursor": "pointer" }} contactmail={String(JSON.parse(client).email)} contact_id={String(JSON.parse(client)._id)} onClick={Display_Part_Client_Contact} /> &nbsp; &nbsp; <Tooltip id="tooltip_edit" />
<a data-tooltip-id="tooltip_edit" data-tooltip-content="Editer le contact">
<CiEdit style={{ "border": "1px solid", "cursor": "pointer" }} contactmail={String(JSON.parse(client).email)} contact_id={String(JSON.parse(client)._id)} onClick={Display_Part_Client_Contact} /> &nbsp; &nbsp;
</a>
</nav> </nav>
<Popup <Popup
trigger={ trigger={
<nav style={{ "width": "10%", "float": "right", "cursor": "pointer" }}> <nav style={{ "width": "10%", "float": "right", "cursor": "pointer" }}>
<CiTrash style={{ "color": "red", "border": "1px solid" }} /> <Tooltip id="tooltip_delete" />
<a data-tooltip-id="tooltip_delete" data-tooltip-content="Suppimer le contact">
<CiTrash style={{ "color": "red", "border": "1px solid" }} />
</a>
</nav> </nav>
@ -2940,21 +2969,6 @@ const AddParnerClient = (props) => {
</div>} </div>}
{String(addcontact) === "1" && <div className="div_row" style={{ "marginLeft": "5px", "marginRight": "5px" }} onChange={DataUpdated_Contact_Data}> {String(addcontact) === "1" && <div className="div_row" style={{ "marginLeft": "5px", "marginRight": "5px" }} onChange={DataUpdated_Contact_Data}>
<div className="session_caract"> Email <br />
<TextField
required
name="contact_email"
//label="Email"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_email}
onChange={(e) => setp_contact_email(e.target.value)}
/>
</div>
{String(formedit_mode_contact) === "1" && <div className="session_caract"> {String(formedit_mode_contact) === "1" && <div className="session_caract">
Civilité <br /> Civilité <br />
@ -3001,7 +3015,7 @@ const AddParnerClient = (props) => {
<div className="session_caract"> <div className="session_caract">
Nom <br /> <b>Nom </b> <br />
<TextField <TextField
required required
name="contact_nom" name="contact_nom"
@ -3019,7 +3033,7 @@ const AddParnerClient = (props) => {
<div className="session_caract"> <div className="session_caract">
Prenom <br /> Prénom <br />
<TextField <TextField
required required
name="contact_prenom" name="contact_prenom"
@ -3033,6 +3047,21 @@ const AddParnerClient = (props) => {
onChange={(e) => setp_contact_prenom(e.target.value)} onChange={(e) => setp_contact_prenom(e.target.value)}
/> />
</div> </div>
<div className="session_caract"> <b> Email </b> <br />
<TextField
required
name="contact_email"
//label="Email"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_contact_email}
onChange={(e) => setp_contact_email(e.target.value)}
/>
</div>
<div className="session_caract"> <div className="session_caract">
@ -3053,38 +3082,41 @@ const AddParnerClient = (props) => {
</div> </div>
<div className="session_caract"> <div className="session_caract">
N° Siret <br /> Téléphone Fixe <br />
<TextField <TextField
required required
name="contact_siret" name="contact_telephone"
//label="N° Siret" //label="Telephone"
InputLabelProps={{ InputLabelProps={{
shrink: true, shrink: true,
}} }}
disabled={false} disabled={false}
className="disabled_style" className="disabled_style"
value={p_contact_siret} value={p_contact_telephone}
onChange={(e) => setcontact_siret(e.target.value)} onChange={(e) => setcontact_telephone(e.target.value)}
/> />
</div> </div>
<div className="session_caract"> <div className="session_caract">
N° TVA <br /> Téléphone Mobile <br />
<TextField <TextField
required required
name="contact_tva" name="contact_telephone_mobile"
//label="N° TVA" // label="Téléphone Mobile"
InputLabelProps={{ InputLabelProps={{
shrink: true, shrink: true,
}} }}
disabled={false} disabled={false}
className="disabled_style" className="disabled_style"
value={p_contact_tva} value={p_contact_telephone_mobile}
onChange={(e) => setcontact_tva(e.target.value)} onChange={(e) => setp_contact_telephone_mobile(e.target.value)}
/> />
</div> </div>
<div className="session_caract"> <div className="session_caract">
Adresse <br /> Adresse <br />
<TextField <TextField
@ -3147,38 +3179,43 @@ const AddParnerClient = (props) => {
</div> </div>
<div className="session_caract"> <div className="session_caract">
Telephone <br /> <Tooltip id="tooltip_siret" />
<TextField <a data-tooltip-id="tooltip_siret" data-tooltip-content="Pour les contacts de type entreprise ">
required N° Siret <br />
name="contact_telephone" <TextField
//label="Telephone" required
InputLabelProps={{ name="contact_siret"
shrink: true, //label="N° Siret"
}} InputLabelProps={{
disabled={false} shrink: true,
className="disabled_style" }}
value={p_contact_telephone} disabled={false}
onChange={(e) => setcontact_telephone(e.target.value)} className="disabled_style"
/> value={p_contact_siret}
onChange={(e) => setcontact_siret(e.target.value)}
/>
</a>
</div> </div>
<div className="session_caract"> <div className="session_caract">
Téléphone Mobile <br /> <Tooltip id="tooltip_tva" />
<TextField <a data-tooltip-id="tooltip_tva" data-tooltip-content="Pour les contacts de type entreprise ">
required N° TVA <br />
name="contact_telephone_mobile" <TextField
// label="Téléphone Mobile" required
InputLabelProps={{ name="contact_tva"
shrink: true, //label="N° TVA"
}} InputLabelProps={{
disabled={false} shrink: true,
className="disabled_style" }}
value={p_contact_telephone_mobile} disabled={false}
onChange={(e) => setp_contact_telephone_mobile(e.target.value)} className="disabled_style"
/> value={p_contact_tva}
onChange={(e) => setcontact_tva(e.target.value)}
/>
</a>
</div> </div>
<div className="div_row" style={{ "border": "None" }}> <div className="div_row" style={{ "border": "None" }}>
<hr className="hr_break" /> <hr className="hr_break" />
</div> </div>
@ -3196,7 +3233,7 @@ const AddParnerClient = (props) => {
// Pour activier la fontion de "include com", le contact foit avoir une adresse email // Pour activier la fontion de "include com", le contact foit avoir une adresse email
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_contact_email.match(validRegex)) { if (!String(p_contact_email).trim().match(validRegex)) {
alert("L'adresse email est invalide. Pour activer cette fontion, vous devez saisir une adresse email valide"); alert("L'adresse email est invalide. Pour activer cette fontion, vous devez saisir une adresse email valide");
return; return;
} }

View File

@ -3169,7 +3169,7 @@ const Config_Documents = (props) => {
</div> </div>
<div className="div_row_gauche texte_area_filter" > <div className="div_row_gauche texte_area_filter" >
Edition par client bbb <br /> Edition par client <br />
<Checkbox <Checkbox
name="document_join_pdf" name="document_join_pdf"

View File

@ -1168,6 +1168,7 @@ const DisplayPartnerSession = (props) => {
}) })
} }
const [New_Getall_Training_Employee_No_Filter_result, setNew_Getall_Training_Employee_No_Filter_result] = useState([]);
const [Getall_Training_Employee_No_Filter_api, setGetall_Training_Employee_No_Filter_api] = useState(); const [Getall_Training_Employee_No_Filter_api, setGetall_Training_Employee_No_Filter_api] = useState();
const [Getall_Training_Employee_No_Filter_message, setGetall_Training_Employee_No_Filter_message] = useState(); const [Getall_Training_Employee_No_Filter_message, setGetall_Training_Employee_No_Filter_message] = useState();
@ -1191,6 +1192,33 @@ const DisplayPartnerSession = (props) => {
//console.log(" In Getall_Training_Employee_No_Filter res.data.message r_class = " + res.data.message); //console.log(" In Getall_Training_Employee_No_Filter res.data.message r_class = " + res.data.message);
setGetall_Training_Employee_No_Filter_api("true"); setGetall_Training_Employee_No_Filter_api("true");
setGetall_Training_Employee_No_Filter_result(res.data.message); setGetall_Training_Employee_No_Filter_result(res.data.message);
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_nom = JSON.parse(x).nom;
var local_prenom = JSON.parse(x).prenom;
var local_ismanager = JSON.parse(x).ismanager;
//---
var node = {
"_id": local_id,
"id": localid,
"label": local_nom + " " + local_prenom,
"nom": local_nom,
"prenom": local_prenom,
"ismanager": local_ismanager
};
new_data2.push(node);
});
if (new_data2.length > 0)
setNew_Getall_Training_Employee_No_Filter_result(new_data2);
} }
else { else {
setGetall_Training_Employee_No_Filter_api("false"); setGetall_Training_Employee_No_Filter_api("false");
@ -1693,14 +1721,14 @@ const DisplayPartnerSession = (props) => {
if (document.getElementById('detail_session')) {
//myRef.current.scrollIntoView({ behavior: "smooth" }); //myRef.current.scrollIntoView({ behavior: "smooth" });
var divh = document.getElementById('detail_session').offsetTop; var divh = document.getElementById('myRef_add_session').offsetTop;
window.scrollTo({ window.scrollTo({
top: divh, top: divh,
behavior: "smooth", behavior: "smooth",
}); });
}
} }
@ -2087,7 +2115,7 @@ const DisplayPartnerSession = (props) => {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!one_email_part.match(validRegex)) { if (!one_email_part.trim().match(validRegex)) {
alert("L'adresse email est invalide."); alert("L'adresse email est invalide.");
return; return;
} }
@ -2116,7 +2144,7 @@ const DisplayPartnerSession = (props) => {
form.append("session_id", selected_session_id); form.append("session_id", selected_session_id);
form.append("nom", one_nom_part); form.append("nom", one_nom_part);
form.append("prenom", one_prenom_part); form.append("prenom", one_prenom_part);
form.append("email", one_email_part); form.append("email", one_email_part.trim());
form.append("telephone", one_phone_part); form.append("telephone", one_phone_part);
form.append("status", myinscript_status); form.append("status", myinscript_status);
form.append("modefinancement", ""); form.append("modefinancement", "");
@ -2622,7 +2650,7 @@ const DisplayPartnerSession = (props) => {
} }
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_detail_mail.match(validRegex)) { if (!p_detail_mail.trim().match(validRegex)) {
alert("L'adresse email est invalide."); alert("L'adresse email est invalide.");
return; return;
} }
@ -3572,8 +3600,8 @@ const DisplayPartnerSession = (props) => {
var one_myclass_title = "" var one_myclass_title = ""
if (document.getElementsByName("one_myclass_title")[0] && document.getElementsByName("one_myclass_title")[0].value != "") { if (p_one_myclass_title) {
one_myclass_title = document.getElementsByName("one_myclass_title")[0].value; one_myclass_title = p_one_myclass_title;
} }
if (one_myclass_title.trim() == "") { if (one_myclass_title.trim() == "") {
alert(" Vous devez choisir une formation "); alert(" Vous devez choisir une formation ");
@ -3581,9 +3609,6 @@ const DisplayPartnerSession = (props) => {
} }
var nb_participant = "" var nb_participant = ""
if (document.getElementById("one_nb_participant") && document.getElementById("one_nb_participant").value != "") { if (document.getElementById("one_nb_participant") && document.getElementById("one_nb_participant").value != "") {
nb_participant = document.getElementById("one_nb_participant").value; nb_participant = document.getElementById("one_nb_participant").value;
@ -4144,7 +4169,7 @@ const DisplayPartnerSession = (props) => {
const [p_one_session_etape_label, setp_one_session_etape_label] = useState(); const [p_one_session_etape_label, setp_one_session_etape_label] = useState();
const [p_one_titre, setp_one_titre] = useState(""); const [p_one_titre, setp_one_titre] = useState("");
const [p_one_location_type, setp_one_location_type] = useState(""); const [p_one_location_type, setp_one_location_type] = useState("");
const [p_one_is_bpf, setp_one_is_bpf] = useState(""); const [p_one_is_bpf, setp_one_is_bpf] = useState("0");
function annuleSessionUpdate() { function annuleSessionUpdate() {
clearSessionFields(); clearSessionFields();
@ -4336,11 +4361,11 @@ const DisplayPartnerSession = (props) => {
if (String(res.data.status) === String("true")) { if (String(res.data.status) === String("true")) {
//console.log(" In GetCurrentPartnerClass res.data.status = " + res.data.status); //console.log(" In GetCurrentPartnerClass res.data.status = " + res.data.status);
console.log(" In GetCurrentPartnerClass res.data.message r_class = " + res.data.message); //console.log(" In GetCurrentPartnerClass res.data.message r_class = " + res.data.message);
setGetCurrentPartnerClass_api("true"); setGetCurrentPartnerClass_api("true");
setGetCurrentPartnerClass_result(res.data.message); setGetCurrentPartnerClass_result(res.data.message);
var new_data2 = []; var new_data2 = [];
const new_data = res.data.message.map((x) => { const new_data = res.data.message.map((x) => {
@ -5101,11 +5126,11 @@ const DisplayPartnerSession = (props) => {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!local_mail.match(validRegex)) { if (!local_mail.trim().match(validRegex)) {
alert("L'adresse email est invalide. Impossible de renvoyer les identifiants"); alert("L'adresse email est invalide. Impossible de renvoyer les identifiants");
return; return;
} }
formData.append("email", local_mail); formData.append("email", local_mail.trim());
formData.append("class_internal_url", selected_internal_url); formData.append("class_internal_url", selected_internal_url);
//console.log("token = " + stored_cookie); //console.log("token = " + stored_cookie);
@ -7190,6 +7215,7 @@ const DisplayPartnerSession = (props) => {
} }
const myRef_seq_ressource = useRef(null) const myRef_seq_ressource = useRef(null)
const myRef_add_session = useRef(null)
const [update_sequence, setupdate_sequence] = useState(); const [update_sequence, setupdate_sequence] = useState();
@ -8760,13 +8786,13 @@ const DisplayPartnerSession = (props) => {
Dialog_convention_handleClose_buton(); Dialog_convention_handleClose_buton();
} }
}} }}
className="bton_enreg_dialog">Envoyer mail aaa</Button>} className="bton_enreg_dialog">Envoyer mail </Button>}
{String(selected_convention_type) === "pdf" && {String(selected_convention_type) === "pdf" &&
<Button className="bton_enreg_dialog" onClick={(e) => { <Button className="bton_enreg_dialog" onClick={(e) => {
Download_Session_Conventions_PDF(); Download_Session_Conventions_PDF();
Dialog_convention_handleClose_buton(); Dialog_convention_handleClose_buton();
}} }}
>Télécharger bbb</Button>} >Télécharger </Button>}
</div> </div>
@ -9313,7 +9339,7 @@ const DisplayPartnerSession = (props) => {
<div className="div_row" style={{ "marginTop": "1rem", "marginBottom": "1rem" }}> <div className="div_row" style={{ "marginTop": "1rem", "marginBottom": "1rem" }}>
cherif convention
<div className="div_row_gauche"> <div className="div_row_gauche">
&nbsp; &nbsp;
</div> </div>
@ -9337,7 +9363,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<div className="session_caract"> Formation <br /> <div className="session_caract"> <b> Formation </b><br />
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
@ -9364,7 +9390,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<div className="session_caract"> Code Session<br /> <div className="session_caract"><b> Code Session </b><br />
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
@ -9483,7 +9509,7 @@ const DisplayPartnerSession = (props) => {
</div>} </div>}
{edit_session_form && <div className="session_caract">Session à la demande* <br /> {edit_session_form && <div className="session_caract">Session à la demande <br />
<TextField <TextField
name="session_ondemande" name="session_ondemande"
id="session_ondemande" id="session_ondemande"
@ -9523,7 +9549,7 @@ const DisplayPartnerSession = (props) => {
</div>} </div>}
{edit_session_form && <div className="session_caract">Statut* <br /> {edit_session_form && <div className="session_caract">Statut <br />
<TextField <TextField
name="session_status" name="session_status"
id="session_status" id="session_status"
@ -9545,7 +9571,7 @@ const DisplayPartnerSession = (props) => {
<MenuItem value="1" style={{ "paddingLeft": "5px", "textAlign": "left", "background": "green" }}>Actif &nbsp;</MenuItem> <MenuItem value="1" style={{ "paddingLeft": "5px", "textAlign": "left", "background": "green" }}>Actif &nbsp;</MenuItem>
</TextField> </TextField>
</div>} </div>}
{!edit_session_form && String(p_session_status) === "1" && <div className="session_caract">Statut * <br /> {!edit_session_form && String(p_session_status) === "1" && <div className="session_caract">Statut <br />
<TextField <TextField
name="session_status_not_change_font" name="session_status_not_change_font"
id="session_status_not_change_font" id="session_status_not_change_font"
@ -9574,7 +9600,7 @@ const DisplayPartnerSession = (props) => {
/> />
</div>} </div>}
{!edit_session_form && String(p_session_status) === "0" && <div className="session_caract">Statut * <br /> {!edit_session_form && String(p_session_status) === "0" && <div className="session_caract">Statut <br />
<TextField <TextField
name="session_status_not_change_font" name="session_status_not_change_font"
id="session_status_not_change_font" id="session_status_not_change_font"
@ -9677,10 +9703,8 @@ const DisplayPartnerSession = (props) => {
<div className="session_caract"> <div className="session_caract">
Date Debut <b>Date Debut </b>
<DatePicker <DatePicker
name="sessiondatedebut" name="sessiondatedebut"
id="sessiondatedebut" id="sessiondatedebut"
@ -9703,7 +9727,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<div className="session_caract"> Date Fin <div className="session_caract"> <b>Date Fin </b>
<DatePicker <DatePicker
name="sessiondatefin" name="sessiondatefin"
id="sessiondatefin" id="sessiondatefin"
@ -9724,7 +9748,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<div className="session_caract"> Date Debut des inscriptions * <div className="session_caract"> <b>Date Debut des inscriptions </b>
<DatePicker <DatePicker
required required
name="sessiondatedebutinscription" name="sessiondatedebutinscription"
@ -9749,7 +9773,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<div className="session_caract"> Date Fin des inscriptions * <div className="session_caract"> <b>Date Fin des inscriptions </b>
<DatePicker <DatePicker
required required
name="sessiondatefininscription" name="sessiondatefininscription"
@ -9771,7 +9795,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
{edit_session_form && <div className="session_caract">Présentiel *<br /> {edit_session_form && <div className="session_caract">Présentiel <br />
<TextField <TextField
name="presentiel" name="presentiel"
id="presentiel" id="presentiel"
@ -9812,7 +9836,7 @@ const DisplayPartnerSession = (props) => {
{edit_session_form && <div className="session_caract">A distance* <br /> {edit_session_form && <div className="session_caract">A distance <br />
<TextField <TextField
name="distantiel" name="distantiel"
id="distantiel" id="distantiel"
@ -9835,7 +9859,7 @@ const DisplayPartnerSession = (props) => {
</TextField> </TextField>
</div>} </div>}
{!edit_session_form && <div className="session_caract">A distance* <br /> {!edit_session_form && <div className="session_caract">A distance <br />
<TextField <TextField
name="distantiel" name="distantiel"
id="distantiel" id="distantiel"
@ -9954,7 +9978,7 @@ const DisplayPartnerSession = (props) => {
</div>} </div>}
{edit_session_form && <div className="session_caract"> Formateur <br /> {/*edit_session_form && <div className="session_caract"> Formateur <br />
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
@ -9985,12 +10009,35 @@ const DisplayPartnerSession = (props) => {
))} ))}
</TextField> </TextField>
</div>*/}
{edit_session_form && <div className="session_caract"> Formateur <br />
<Autocomplete
disablePortal
name="formateur_id"
id="formateur_id"
className="disabled_style"
options={New_Getall_Training_Employee_No_Filter_result}
value={p_formateur_label}
onChange={(event, value) => {
if (value && value._id) {
setp_formateur_id(value._id);
setp_formateur_label(value.label);
IssessionChanged();
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
</div>} </div>}
<div className="session_caract"> Nombre participants *<br />
<div className="session_caract"> <b> Nombre participants </b><br />
<TextField sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} <TextField sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
name="nb_participant" name="nb_participant"
@ -10231,11 +10278,12 @@ const DisplayPartnerSession = (props) => {
</div>*/} </div>*/}
<div className="session_caract" > Choisir une formation <br /> <div className="session_caract" > <b>Choisir une formation </b> <br />
<Autocomplete <Autocomplete
disablePortal disablePortal
id="combo-box-demo" name="one_myclass_title"
id="one_myclass_title"
className="disabled_style enable_style" className="disabled_style enable_style"
options={New_GetCurrentPartnerClass_result} options={New_GetCurrentPartnerClass_result}
onChange={(event, value) => { onChange={(event, value) => {
@ -10246,7 +10294,7 @@ const DisplayPartnerSession = (props) => {
}} }}
renderInput={(params) => <TextField {...params} label="Choisir " /> renderInput={(params) => <TextField {...params} label="" />
} }
/> />
@ -10335,7 +10383,7 @@ const DisplayPartnerSession = (props) => {
<div className="session_caract">Session à la demande* <br /> <div className="session_caract">Session à la demande <br />
<TextField <TextField
name="one_session_ondemande" name="one_session_ondemande"
id="one_session_ondemande" id="one_session_ondemande"
@ -10359,7 +10407,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<div className="session_caract">Statut * <br /> <div className="session_caract">Statut <br />
<TextField <TextField
name="session_status" name="session_status"
id="session_status" id="session_status"
@ -10407,7 +10455,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<div className="session_caract"> <div className="session_caract">
Date Debut * <b> Date Debut </b>
<DatePicker <DatePicker
name="one_sessiondatedebut" name="one_sessiondatedebut"
id="one_sessiondatedebut" id="one_sessiondatedebut"
@ -10426,8 +10474,7 @@ const DisplayPartnerSession = (props) => {
/> />
</div> </div>
<div className="session_caract"> <b>Date Fin </b>
<div className="session_caract"> Date Fin *
<DatePicker <DatePicker
name="one_sessiondatefin" name="one_sessiondatefin"
id="one_sessiondatefin" id="one_sessiondatefin"
@ -10445,7 +10492,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<div className="session_caract"> Date Debut des inscriptions * <div className="session_caract"> <b> Date Debut des inscriptions </b>
<DatePicker <DatePicker
required required
name="one_sessiondatedebutinscription" name="one_sessiondatedebutinscription"
@ -10467,7 +10514,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<div className="session_caract"> Date Fin des inscriptions * <div className="session_caract"> <b> Date Fin des inscriptions </b>
<DatePicker <DatePicker
required required
name="one_sessiondatefininscription" name="one_sessiondatefininscription"
@ -10486,7 +10533,7 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<div className="session_caract">Présentiel* <br /> <div className="session_caract">Présentiel <br />
<TextField <TextField
name="one_presentiel" name="one_presentiel"
id="one_presentiel" id="one_presentiel"
@ -10507,7 +10554,7 @@ const DisplayPartnerSession = (props) => {
</TextField> </TextField>
</div> </div>
<div className="session_caract">A distance* <br /> <div className="session_caract">A distance <br />
<TextField <TextField
name="one_distantiel" name="one_distantiel"
id="one_distantiel" id="one_distantiel"
@ -10613,7 +10660,7 @@ const DisplayPartnerSession = (props) => {
/> />
</div>*/} </div>*/}
<div className="session_caract"> Formateur<br /> {/* <div className="session_caract"> Formateur<br />
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
@ -10641,12 +10688,31 @@ const DisplayPartnerSession = (props) => {
</MenuItem> </MenuItem>
))} ))}
</TextField> </TextField>
</div>*/}
<div className="session_caract"> Formateur <br />
<Autocomplete
disablePortal
name="formateur_id"
id="formateur_id"
className="disabled_style"
options={New_Getall_Training_Employee_No_Filter_result}
onChange={(event, value) => {
if (value && value._id) {
setp_formateur_id(value._id);
IssessionChanged();
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
</div> </div>
<div className="session_caract"> Nombre participants <br />
<div className="session_caract"> Nombre participants *<br />
<TextField sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} <TextField sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
name="one_nb_participant" name="one_nb_participant"
@ -11380,6 +11446,11 @@ const DisplayPartnerSession = (props) => {
</MenuItem> </MenuItem>
))} ))}
<MenuItem key="" value=""
style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%", "fontSize": "12px" }}>
&nbsp;&nbsp;
</MenuItem>
</TextField> </TextField>
</div> </div>
@ -11617,6 +11688,7 @@ const DisplayPartnerSession = (props) => {
</div>} </div>}
<div className="div_row" ref={myRef_add_session} id="myRef_add_session"> &nbsp; </div>
{String(submenu) === String("inscrit") && <div style={{ "border": "None" }}> {String(submenu) === String("inscrit") && <div style={{ "border": "None" }}>
<div className="div_row" style={{ "border": "None" }}> <div className="div_row" style={{ "border": "None" }}>
@ -11924,6 +11996,11 @@ const DisplayPartnerSession = (props) => {
</MenuItem> </MenuItem>
))} ))}
<MenuItem key="" value=""
style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%", "fontSize": "12px" }}>
&nbsp;&nbsp;
</MenuItem>
</TextField> </TextField>
</div> </div>
@ -12235,7 +12312,7 @@ const DisplayPartnerSession = (props) => {
<div className="session_data" > <div className="session_data" >
<div> <div>
{String(participant_data_edit_mode) !== "1" && <div className="session_caract"> Session<br /> {String(participant_data_edit_mode) !== "1" && <div className="session_caract"> <b> Session </b><br />
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
@ -12511,7 +12588,7 @@ const DisplayPartnerSession = (props) => {
} }
/> />
</div> </div>
<div className="session_caract"> Ville <br /> <div className="session_caract"> Ville r <br />
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
@ -12523,7 +12600,7 @@ const DisplayPartnerSession = (props) => {
}} }}
disabled={false} disabled={false}
value={p_detail_ville} value={p_detail_ville}
conChange={(e) => { onChange={(e) => {
setp_detail_ville(e.target.value); setp_detail_ville(e.target.value);
setparticipant_data_changed("1"); setparticipant_data_changed("1");
} }

View File

@ -856,6 +856,8 @@ const DisplayPartnerStagiaires = (props) => {
hiddenFileInput_session.current.click(); hiddenFileInput_session.current.click();
} }
const myRef_details = useRef(null)
const [addOneSession, setaddOneSession] = useState(); const [addOneSession, setaddOneSession] = useState();
function submenu_add_one_stagiaire() { function submenu_add_one_stagiaire() {
setsubmenu(""); setsubmenu("");
@ -864,9 +866,9 @@ const DisplayPartnerStagiaires = (props) => {
setaddOneParticipant("1"); setaddOneParticipant("1");
if (document.getElementById('detail_session')) { if (document.getElementById('myRef_details')) {
// myRef.current.scrollIntoView({ behavior: "smooth" }); // myRef.current.scrollIntoView({ behavior: "smooth" });
var divh = document.getElementById('detail_session').offsetTop; var divh = document.getElementById('myRef_details').offsetTop;
window.scrollTo({ window.scrollTo({
top: divh, top: divh,
behavior: "smooth", behavior: "smooth",
@ -1075,7 +1077,7 @@ const DisplayPartnerStagiaires = (props) => {
if (document.getElementsByName("one_pays_part") && document.getElementsByName("one_pays_part")[0]) if (document.getElementsByName("one_pays_part") && document.getElementsByName("one_pays_part")[0])
document.getElementsByName("one_pays_part")[0].value = ""; document.getElementsByName("one_pays_part")[0].value = "";
if (document.getElementsByName("one_detail_type_apprenant") && document.getElementsByName("one_pays_part")[0]) if (document.getElementsByName("one_detail_type_apprenant") && document.getElementsByName("one_detail_type_apprenant")[0])
document.getElementsByName("one_detail_type_apprenant")[0].value = ""; document.getElementsByName("one_detail_type_apprenant")[0].value = "";
if (document.getElementsByName("one_status_part") && document.getElementsByName("one_status_part")[0]) if (document.getElementsByName("one_status_part") && document.getElementsByName("one_status_part")[0])
@ -1085,6 +1087,10 @@ const DisplayPartnerStagiaires = (props) => {
document.getElementsByName("one_detail_client_rattachement")[0].value = ""; document.getElementsByName("one_detail_client_rattachement")[0].value = "";
if (document.getElementsByName("one_status_part") && document.getElementsByName("one_status_part")[0])
document.getElementsByName("one_status_part")[0].value = "";
setp_one_detail_session_class(""); setp_one_detail_session_class("");
setp_one_nom_part(""); setp_one_nom_part("");
@ -1100,6 +1106,8 @@ const DisplayPartnerStagiaires = (props) => {
setp_one_detail_client_rattachement_id(""); setp_one_detail_client_rattachement_id("");
setp_one_detail_type_apprenant(""); setp_one_detail_type_apprenant("");
setp_one_detail_client_rattachement_id("");
setp_one_status_part("");
} }
@ -1122,7 +1130,7 @@ const DisplayPartnerStagiaires = (props) => {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!local_mail.match(validRegex)) { if (!local_mail.trim().match(validRegex)) {
alert("L'adresse email est invalide. Impossible de renvoyer les identifiants"); alert("L'adresse email est invalide. Impossible de renvoyer les identifiants");
return; return;
} }
@ -1989,7 +1997,7 @@ const DisplayPartnerStagiaires = (props) => {
if (String(res.data.status) === String("true")) { if (String(res.data.status) === String("true")) {
//console.log(" In Getall_TrainingSession res.data.status = " + res.data.status); //console.log(" In Getall_TrainingSession res.data.status = " + res.data.status);
console.log(" In Getall_TrainingSession res.data.message r_class = " + res.data.message); //console.log(" In Getall_TrainingSession res.data.message r_class = " + res.data.message);
setGetall_TrainingSession_api("true"); setGetall_TrainingSession_api("true");
setGetall_TrainingSession_result(res.data.message); setGetall_TrainingSession_result(res.data.message);
@ -1999,7 +2007,7 @@ const DisplayPartnerStagiaires = (props) => {
//--- //---
var localid = JSON.parse(x).id; var localid = JSON.parse(x).id;
var local_id = JSON.parse(x)._id; var local_id = JSON.parse(x)._id;
var local_internal_url = JSON.parse(x).internal_url; var local_internal_url = JSON.parse(x).class_internal_url;
var local_title_session = JSON.parse(x).titre; var local_title_session = JSON.parse(x).titre;
var local_code_session = JSON.parse(x).code_session; var local_code_session = JSON.parse(x).code_session;
@ -2011,7 +2019,8 @@ const DisplayPartnerStagiaires = (props) => {
"id": localid, "id": localid,
"label": local_code_session, "label": local_code_session,
"class_internal_url": local_internal_url, "class_internal_url": local_internal_url,
"titre": local_title_session "titre": local_title_session,
"code_session": local_code_session,
}; };
new_data2.push(node); new_data2.push(node);
@ -2023,6 +2032,8 @@ const DisplayPartnerStagiaires = (props) => {
if (new_data2.length > 0) if (new_data2.length > 0)
setNew_Getall_TrainingSession_result(new_data2); setNew_Getall_TrainingSession_result(new_data2);
//console.log(" ### new_data2 = ", new_data2)
} }
else { else {
@ -2156,6 +2167,10 @@ const DisplayPartnerStagiaires = (props) => {
const [p_one_detail_client_rattachement_nom, setp_one_detail_client_rattachement_nom] = useState(); const [p_one_detail_client_rattachement_nom, setp_one_detail_client_rattachement_nom] = useState();
const [p_one_detail_client_rattachement_id, setp_one_detail_client_rattachement_id] = useState(); const [p_one_detail_client_rattachement_id, setp_one_detail_client_rattachement_id] = useState();
const [p_one_detail_code_session, setp_one_detail_code_session] = useState();
//---- //----
const [p_myclass_title, setp_myclass_title] = useState(""); const [p_myclass_title, setp_myclass_title] = useState("");
@ -2640,8 +2655,8 @@ const DisplayPartnerStagiaires = (props) => {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_one_email_part.match(validRegex)) { if (!p_one_email_part.trim().match(validRegex)) {
alert("L'adresse email est invalide."); alert("L'adresse email est invalide 1.");
return; return;
} }
@ -2663,10 +2678,10 @@ const DisplayPartnerStagiaires = (props) => {
form.append("token", stored_cookie); form.append("token", stored_cookie);
form.append("class_internal_url", p_one_formation); form.append("class_internal_url", p_one_formation);
form.append("session_id", p_one_detail_session_class); form.append("session_id", p_one_detail_session_class);
form.append("nom", p_one_nom_part); form.append("nom", p_one_nom_part.trim());
form.append("prenom", p_one_prenom_part); form.append("prenom", p_one_prenom_part.trim());
form.append("email", p_one_email_part); form.append("email", p_one_email_part.trim());
form.append("telephone", p_one_phone_part); form.append("telephone", p_one_phone_part.trim());
if (String(p_one_nom_part).trim().length < 2) { if (String(p_one_nom_part).trim().length < 2) {
alert("Le nom est invalide."); alert("Le nom est invalide.");
@ -2683,12 +2698,6 @@ const DisplayPartnerStagiaires = (props) => {
return; return;
} }
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_one_email_part.match(validRegex)) {
alert("L'adresse email est invalide.");
return;
}
if (p_one_adresse_part) if (p_one_adresse_part)
form.append("adresse", p_one_adresse_part); form.append("adresse", p_one_adresse_part);
@ -2775,6 +2784,7 @@ const DisplayPartnerStagiaires = (props) => {
Getall_TrainingParticipant(); Getall_TrainingParticipant();
clear_one_Attende_Fields(); clear_one_Attende_Fields();
setselected_id(""); setselected_id("");
alert(" Le participant a été correctement ajouté"); alert(" Le participant a été correctement ajouté");
//myRef_head.current.scrollIntoView({ behavior: "smooth" }); //myRef_head.current.scrollIntoView({ behavior: "smooth" });
@ -2840,12 +2850,12 @@ const DisplayPartnerStagiaires = (props) => {
} }
if (String(p_detail_tel).trim().length < 2) { if (String(p_detail_tel).trim().length < 2) {
alert("Le Téléphone est invalide."); alert("Le numéro de téléphone est invalide.");
return; return;
} }
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_detail_mail.match(validRegex)) { if (!p_detail_mail.trim().match(validRegex)) {
alert("L'adresse email est invalide."); alert("L'adresse email est invalide.");
return; return;
} }
@ -3062,6 +3072,8 @@ const DisplayPartnerStagiaires = (props) => {
} }
const [New_GetCurrentPartnerClass_result, setNew_GetCurrentPartnerClass_result] = useState([]);
const [GetCurrentPartnerClass_api, setGetCurrentPartnerClass_api] = useState(); const [GetCurrentPartnerClass_api, setGetCurrentPartnerClass_api] = useState();
const [GetCurrentPartnerClass_message, setGetCurrentPartnerClass_message] = useState(); const [GetCurrentPartnerClass_message, setGetCurrentPartnerClass_message] = useState();
const [GetCurrentPartnerClass_result, setGetCurrentPartnerClass_result] = useState(); const [GetCurrentPartnerClass_result, setGetCurrentPartnerClass_result] = useState();
@ -3083,6 +3095,33 @@ const DisplayPartnerStagiaires = (props) => {
setGetCurrentPartnerClass_api("true"); setGetCurrentPartnerClass_api("true");
setGetCurrentPartnerClass_result(res.data.message); setGetCurrentPartnerClass_result(res.data.message);
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_internal_url = JSON.parse(x).internal_url;
var local_title = JSON.parse(x).title;
var local_external_code = JSON.parse(x).external_code;
//---
var node = {
"_id": local_id,
"id": localid,
"label": local_title,
"internal_url": local_internal_url,
"title": local_title,
"external_code": local_external_code
};
new_data2.push(node);
});
if (new_data2.length > 0)
setNew_GetCurrentPartnerClass_result(new_data2);
} else if (String(res.data.status) === String("Err_Connexion")) { } else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message); alert('Erreur: ' + res.data.message);
@ -4235,12 +4274,12 @@ const DisplayPartnerStagiaires = (props) => {
if (p_detail_tuteur1_email && String(p_detail_tuteur1_email).trim() !== "") { if (p_detail_tuteur1_email && String(p_detail_tuteur1_email).trim() !== "") {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_detail_tuteur1_email.match(validRegex)) { if (!p_detail_tuteur1_email.trim().match(validRegex)) {
alert("L'adresse email est invalide."); alert("L'adresse email du tuteur est invalide.");
return; return;
} }
form.append("tuteur1_email", p_detail_tuteur1_email); form.append("tuteur1_email", p_detail_tuteur1_email.trim());
} }
@ -4294,11 +4333,11 @@ const DisplayPartnerStagiaires = (props) => {
if (p_detail_tuteur2_email && String(p_detail_tuteur2_email).trim() !== "") { if (p_detail_tuteur2_email && String(p_detail_tuteur2_email).trim() !== "") {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_detail_tuteur2_email.match(validRegex)) { if (!p_detail_tuteur2_email.trim().match(validRegex)) {
alert("L'adresse email est invalide."); alert("L'adresse email du tuteur est invalide.");
return; return;
} }
form.append("tuteur2_email", p_detail_tuteur2_email); form.append("tuteur2_email", p_detail_tuteur2_email.trim());
} }
@ -4928,7 +4967,7 @@ const DisplayPartnerStagiaires = (props) => {
// Pour activier la fontion de "include com", le contact foit avoir une adresse email // Pour activier la fontion de "include com", le contact foit avoir une adresse email
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_detail_tuteur1_email.match(validRegex)) { if (!p_detail_tuteur1_email.trim().match(validRegex)) {
alert("L'adresse email est invalide. Pour activer cette fontion, vous devez saisir une adresse email valide"); alert("L'adresse email est invalide. Pour activer cette fontion, vous devez saisir une adresse email valide");
return; return;
} }
@ -5090,7 +5129,7 @@ const DisplayPartnerStagiaires = (props) => {
// Pour activier la fontion de "include com", le contact foit avoir une adresse email // Pour activier la fontion de "include com", le contact foit avoir une adresse email
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_detail_tuteur2_email.match(validRegex)) { if (!p_detail_tuteur2_email.trim().match(validRegex)) {
alert("L'adresse email est invalide. Pour activer cette fontion, vous devez saisir une adresse email valide"); alert("L'adresse email est invalide. Pour activer cette fontion, vous devez saisir une adresse email valide");
return; return;
} }
@ -6057,7 +6096,7 @@ const DisplayPartnerStagiaires = (props) => {
<a href='/sample/template_import_stagiaires.csv' download>Télécharger un fichier modèle</a> <a href='/sample/template_import_stagiaires.csv' download>Télécharger un fichier modèle</a>
</div> </div>
</div> </div>
<div className="div_row"> &nbsp;</div> <div className="div_row" ref={myRef_details} id="myRef_details"> &nbsp;</div>
{((selected_id && String(selected_id).length > 2) || (String(addOneParticipant) === "1")) && <div className="div_row"> {((selected_id && String(selected_id).length > 2) || (String(addOneParticipant) === "1")) && <div className="div_row">
<Button variant="outlined" ref={myRef} onClick={submenu_detail_stagaire} className="detail_class_submenu" id='detail_session' name='detail_session'>Détail Stagiaire</Button> <Button variant="outlined" ref={myRef} onClick={submenu_detail_stagaire} className="detail_class_submenu" id='detail_session' name='detail_session'>Détail Stagiaire</Button>
@ -6067,12 +6106,12 @@ const DisplayPartnerStagiaires = (props) => {
</div>} </div>}
{String(addOneParticipant) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }}> {String(addOneParticipant) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }}>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Ajouter un nouveau stagiaire </nav> <nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Ajouter un nouveau stagiaire </nav>
<div className="session_caract"> Formation <br /> {/*<div className="session_caract"> Formation <br />
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
@ -6100,9 +6139,71 @@ const DisplayPartnerStagiaires = (props) => {
</MenuItem> </MenuItem>
))} ))}
</TextField> </TextField>
</div>*/}
<div className="session_caract"> Formation <br />
<Autocomplete
disablePortal
id="combo-box-demo"
className="disabled_style enable_style"
options={New_GetCurrentPartnerClass_result}
onChange={(event, value) => {
if (value && value.internal_url) {
setp_one_formation(value.internal_url);
setp_one_detail_session_class('');
setp_one_detail_session_class("");
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
</div> </div>
<div className="session_caract"> <b> Session </b><br /> {p_one_formation && Getall_TrainingSession_result && <div className="session_caract"> <b> Session</b>
<br />
<Autocomplete
disablePortal
id="combo-box-demo"
className="disabled_style enable_style"
options={New_Getall_TrainingSession_result.filter((session_ch) => session_ch.class_internal_url === p_one_formation)}
onChange={(event, value) => {
if (value && value._id) {
setp_one_detail_session_class(value._id);
setp_one_detail_code_session(value.code_session);
}
}}
value={p_one_detail_code_session}
renderInput={(params) => <TextField {...params} label="" />
}
/>
</div>}
{!p_one_formation && Getall_TrainingSession_result && <div className="session_caract"> <b> Session </b><br />
<Autocomplete
disablePortal
id="combo-box-demo"
className="disabled_style enable_style"
options={New_Getall_TrainingSession_result}
onChange={(event, value) => {
if (value && value._id) {
setp_one_detail_session_class(value._id);
}
}}
value={p_one_detail_code_session}
renderInput={(params) => <TextField {...params} label="" />
}
/>
</div>}
{/*<div className="session_caract"> <b> Session </b><br />
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
@ -6139,7 +6240,7 @@ const DisplayPartnerStagiaires = (props) => {
</MenuItem> </MenuItem>
))} ))}
</TextField> </TextField>
</div> </div>*/}
<div className="session_caract"> <b> Nom </b> <br /> <div className="session_caract"> <b> Nom </b> <br />
@ -6335,7 +6436,7 @@ const DisplayPartnerStagiaires = (props) => {
</TextField> </TextField>
</div> </div>
<div className="session_caract"> Client 2<br /> <div className="session_caract"> Client <br />
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required required
@ -6362,6 +6463,11 @@ const DisplayPartnerStagiaires = (props) => {
</MenuItem> </MenuItem>
))} ))}
<MenuItem key="" value=""
style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%", "fontSize": "12px" }}>
&nbsp;&nbsp;
</MenuItem>
</TextField> </TextField>
</div> </div>

View File

@ -1874,7 +1874,7 @@ const Partner_Configuration_Jours_Travail = (props) => {
/> />
</div> </div>
<div className="div_row" style={{ "textAlign": "left" }}> <div className="div_row" style={{ "textAlign": "left" }}>
<Button value="mercredi" onClick={add_one_nb_sequence}> <IoMdAddCircle /> &nbsp; aa Séquence</Button> <br /> <Button value="mercredi" onClick={add_one_nb_sequence}> <IoMdAddCircle /> &nbsp; Séquence</Button> <br />
<Button value="mercredi" onClick={minus_one_nb_sequence}><IoIosRemoveCircleOutline /> &nbsp; Séquence </Button> <Button value="mercredi" onClick={minus_one_nb_sequence}><IoIosRemoveCircleOutline /> &nbsp; Séquence </Button>
</div> </div>