17/12/2023 - 21h12
parent
906ff4aad7
commit
49334cee17
|
@ -1200,6 +1200,13 @@ const AddParnerClient = (props) => {
|
|||
if (document.getElementsByName("client_email")) {
|
||||
client_email = document.getElementsByName("client_email")[0].value;
|
||||
}
|
||||
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
|
||||
|
||||
if (!client_email.match(validRegex)) {
|
||||
alert("L'adresse email est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
form.append("email", client_email);
|
||||
|
||||
|
||||
|
@ -1208,6 +1215,11 @@ const AddParnerClient = (props) => {
|
|||
client_nom = document.getElementsByName("client_nom")[0].value;
|
||||
}
|
||||
form.append("nom", client_nom);
|
||||
if (String(client_nom).trim() === "") {
|
||||
alert("Le nom du client est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var client_raison_sociale = ""
|
||||
if (document.getElementsByName("client_raison_sociale")) {
|
||||
|
@ -1332,6 +1344,12 @@ const AddParnerClient = (props) => {
|
|||
if (document.getElementsByName("client_email")) {
|
||||
client_email = document.getElementsByName("client_email")[0].value;
|
||||
}
|
||||
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
|
||||
if (!client_email.match(validRegex)) {
|
||||
alert("L'adresse email est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
form.append("email", client_email);
|
||||
|
||||
|
||||
|
@ -1339,6 +1357,11 @@ const AddParnerClient = (props) => {
|
|||
if (document.getElementsByName("client_nom")) {
|
||||
client_nom = document.getElementsByName("client_nom")[0].value;
|
||||
}
|
||||
if (String(client_nom).trim() === "") {
|
||||
alert("Le nom du client est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
form.append("nom", client_nom);
|
||||
|
||||
var client_raison_sociale = ""
|
||||
|
@ -2151,25 +2174,23 @@ 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>
|
||||
</div>
|
||||
|
||||
<div className="session_caract">
|
||||
Email <br />
|
||||
|
||||
|
||||
<div className="session_caract"> Raison sociale <br />
|
||||
<TextField
|
||||
required
|
||||
name="client_email"
|
||||
//label="Email"
|
||||
name="client_raison_sociale"
|
||||
//label="Raison sociale"
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_client_email}
|
||||
onChange={(e) => setclient_email(e.target.value)}
|
||||
|
||||
value={p_client_raison_sociale}
|
||||
onChange={(e) => setclient_raison_sociale(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"> Nom <br />
|
||||
<div className="session_caract"> <b>Nom </b> <br />
|
||||
<TextField
|
||||
required
|
||||
name="client_nom"
|
||||
|
@ -2186,20 +2207,7 @@ const AddParnerClient = (props) => {
|
|||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"> Raison sociale <br />
|
||||
<TextField
|
||||
required
|
||||
name="client_raison_sociale"
|
||||
//label="Raison sociale"
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_client_raison_sociale}
|
||||
onChange={(e) => setclient_raison_sociale(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"> Type client <br />
|
||||
<TextField
|
||||
|
@ -2247,7 +2255,7 @@ const AddParnerClient = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> N° TVA <br />
|
||||
<div className="session_caract"> N° TVA <br />
|
||||
<TextField
|
||||
required
|
||||
name="client_tva"
|
||||
|
@ -2262,6 +2270,22 @@ const AddParnerClient = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract">
|
||||
<b>Email</b> <br />
|
||||
<TextField
|
||||
required
|
||||
name="client_email"
|
||||
//label="Email"
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_client_email}
|
||||
onChange={(e) => setclient_email(e.target.value)}
|
||||
|
||||
/>
|
||||
</div>
|
||||
<div className="session_caract"> Adresse <br />
|
||||
<TextField
|
||||
required
|
||||
|
@ -2426,24 +2450,24 @@ const AddParnerClient = (props) => {
|
|||
|
||||
{String(submenu).trim() === "submenu_donnee_client" && <div className="training_data" onChange={DataUpdated}>
|
||||
|
||||
<div className="session_caract"> Email<br />
|
||||
|
||||
<div className="session_caract"> Raison sociale <br />
|
||||
<TextField
|
||||
required
|
||||
name="client_email"
|
||||
//label="Email"
|
||||
name="client_raison_sociale"
|
||||
//label="Raison sociale"
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_client_email}
|
||||
onChange={(e) => setclient_email(e.target.value)}
|
||||
|
||||
value={p_client_raison_sociale}
|
||||
onChange={(e) => setclient_raison_sociale(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"> Nom<br />
|
||||
<div className="session_caract"><b> Nom </b><br />
|
||||
<TextField
|
||||
required
|
||||
name="client_nom"
|
||||
|
@ -2460,21 +2484,7 @@ const AddParnerClient = (props) => {
|
|||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"> Raison sociale <br />
|
||||
<TextField
|
||||
required
|
||||
name="client_raison_sociale"
|
||||
//label="Raison sociale"
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_client_raison_sociale}
|
||||
onChange={(e) => setclient_raison_sociale(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
{String(formedit_mode) !== "1" && <div className="session_caract"> Type client<br />
|
||||
<TextField
|
||||
required
|
||||
|
@ -2553,6 +2563,22 @@ const AddParnerClient = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> Email </b> <br />
|
||||
<TextField
|
||||
required
|
||||
name="client_email"
|
||||
//label="Email"
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_client_email}
|
||||
onChange={(e) => setclient_email(e.target.value)}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Adresse<br />
|
||||
<TextField
|
||||
required
|
||||
|
|
|
@ -32,6 +32,8 @@ import { Fab } from "@material-ui/core";
|
|||
import fileDownload from 'js-file-download'
|
||||
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
|
||||
import Checkbox from '@mui/material/Checkbox';
|
||||
import Autocomplete from '@mui/material/Autocomplete';
|
||||
|
||||
|
||||
const Config_Documents = (props) => {
|
||||
const history = useHistory();
|
||||
|
@ -75,14 +77,14 @@ const Config_Documents = (props) => {
|
|||
const columns = [
|
||||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'id', headerName: 'id', hide: true },
|
||||
{ field: 'nom', headerName: 'nom', hideable: false, minWidth: 150, flex:1, },
|
||||
{ field: 'ref_interne', headerName: 'ref_interne', hideable: false, minWidth: 50, maxWidth :200,flex:1, },
|
||||
{ field: 'type_doc', headerName: 'type_doc', minWidth: 50, maxWidth :100,flex:1, hideable: false, },
|
||||
{ field: 'cible', headerName: 'cible', minWidth: 100, maxWidth :150,flex:1, hide: false, editable: false },
|
||||
{ field: 'default', headerName: 'par default', minWidth: 100, maxWidth :100,flex:1, hide: false, editable: false },
|
||||
{ field: 'sujet', headerName: 'sujet', hide: false, editable: false, minWidth: 150,flex:1, },
|
||||
{ field: 'nom', headerName: 'nom', hideable: false, minWidth: 150, flex: 1, },
|
||||
{ field: 'ref_interne', headerName: 'ref_interne', hideable: false, minWidth: 50, maxWidth: 200, flex: 1, },
|
||||
{ field: 'type_doc', headerName: 'type_doc', minWidth: 50, maxWidth: 100, flex: 1, hideable: false, },
|
||||
{ field: 'cible', headerName: 'cible', minWidth: 100, maxWidth: 150, flex: 1, hide: false, editable: false },
|
||||
{ field: 'default', headerName: 'par default', minWidth: 100, maxWidth: 100, flex: 1, hide: false, editable: false },
|
||||
{ field: 'sujet', headerName: 'sujet', hide: false, editable: false, minWidth: 150, flex: 1, },
|
||||
{
|
||||
field: 'duplicate', headerName: 'Dupliquer', hide: false, editable: false, minWidth: 50, maxWidth :100,flex:1,
|
||||
field: 'duplicate', headerName: 'Dupliquer', hide: false, editable: false, minWidth: 50, maxWidth: 100, flex: 1,
|
||||
renderCell: (cellValues) => {
|
||||
|
||||
return (
|
||||
|
@ -858,21 +860,26 @@ const Config_Documents = (props) => {
|
|||
const [p_collection, setp_collection] = useState();
|
||||
|
||||
function add_selected_fields() {
|
||||
if( String(partner_document_data_edit_mode) === "1" ){
|
||||
if(!p_champ_table || String(p_champ_table) === "undefined"){
|
||||
alert(" vous devez choisir un champ ");
|
||||
return;
|
||||
}
|
||||
|
||||
if (String(partner_document_data_edit_mode) === "1") {
|
||||
// Cas d'un update
|
||||
if( document_principal_ou_corp_mail && String(document_principal_ou_corp_mail) == "2"){
|
||||
if (document_principal_ou_corp_mail && String(document_principal_ou_corp_mail) == "2") {
|
||||
one_editorRef_corp_mail.current.insertContent(String(p_champ_table));
|
||||
|
||||
}else{
|
||||
one_editorRef_programme.current.insertContent(String(p_champ_table));
|
||||
} else {
|
||||
one_editorRef_programme.current.insertContent(String(p_champ_table));
|
||||
}
|
||||
}else if( String(display_add_one_document) === "1" ){
|
||||
} else if (String(display_add_one_document) === "1") {
|
||||
// Cas de la creation d'un nouveau document
|
||||
if( document_principal_ou_corp_mail && String(document_principal_ou_corp_mail) == "2"){
|
||||
if (document_principal_ou_corp_mail && String(document_principal_ou_corp_mail) == "2") {
|
||||
one_editorRef_corp_mail.current.insertContent(String(p_champ_table));
|
||||
|
||||
}else{
|
||||
one_editorRef_programme.current.insertContent(String(p_champ_table));
|
||||
} else {
|
||||
one_editorRef_programme.current.insertContent(String(p_champ_table));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1117,7 +1124,7 @@ const Config_Documents = (props) => {
|
|||
setAdd_one_Partner_Document_api("true");
|
||||
setAdd_one_Partner_Document_result(res.data.message);
|
||||
|
||||
|
||||
|
||||
clear_one_detail_fields();
|
||||
setadd_one_document();
|
||||
setdisplay_add_one_document();
|
||||
|
@ -1146,6 +1153,9 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
|
||||
const [New_Get_Given_Personnalisable_Collection_and_Fields_result, setNew_Get_Given_Personnalisable_Collection_and_Fields_result] = useState([]);
|
||||
|
||||
|
||||
const [Get_Given_Personnalisable_Collection_and_Fields_api, setGet_Given_Personnalisable_Collection_and_Fields_api] = useState();
|
||||
const [Get_Given_Personnalisable_Collection_and_Fields_message, setGet_Given_Personnalisable_Collection_and_Fields_message] = useState();
|
||||
const [Get_Given_Personnalisable_Collection_and_Fields_result, setGet_Given_Personnalisable_Collection_and_Fields_result] = useState();
|
||||
|
@ -1172,6 +1182,30 @@ const Config_Documents = (props) => {
|
|||
setGet_Given_Personnalisable_Collection_and_Fields_api("true");
|
||||
setGet_Given_Personnalisable_Collection_and_Fields_result(res.data.message);
|
||||
|
||||
const new_data = res.data.message.map((x) => {
|
||||
|
||||
var localid = JSON.parse(x).id;
|
||||
var local_id = JSON.parse(x)._id;
|
||||
|
||||
//---
|
||||
var local_courrier_template_ref_interne = JSON.parse(x).courrier_template_ref_interne;
|
||||
var local_nom_champ_technique = JSON.parse(x).nom_champ_technique;
|
||||
var local_nom_champ_fonctionel = JSON.parse(x).nom_champ_fonctionel;
|
||||
|
||||
//---
|
||||
return {
|
||||
"id": localid, "_id": String(local_id), "label": local_nom_champ_fonctionel, "courrier_template_ref_interne": local_courrier_template_ref_interne,
|
||||
"nom_champ_technique": local_nom_champ_technique, "nom_champ_fonctionel": local_nom_champ_fonctionel
|
||||
}
|
||||
|
||||
// return {"_id": " + str(local_id) + ", "label": " + local_courrier_template_ref_interne + '" , "courrier_template_ref_interne": "' + local_courrier_template_ref_interne + '", "nom_champ_technique": "' + local_nom_champ_technique + '", "nom_champ_fonctionel": "' + local_nom_champ_fonctionel + '","valide": "1" };
|
||||
|
||||
});
|
||||
|
||||
setNew_Get_Given_Personnalisable_Collection_and_Fields_result(new_data);
|
||||
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
setGet_Given_Personnalisable_Collection_and_Fields_api("false");
|
||||
|
@ -1594,6 +1628,8 @@ const Config_Documents = (props) => {
|
|||
clear_one_detail_fields();
|
||||
setadd_one_document();
|
||||
setdisplay_add_one_document();
|
||||
setp_champ_table("");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -2576,45 +2612,31 @@ const Config_Documents = (props) => {
|
|||
</div>
|
||||
<div className="div_row_droite_1_tier" style={{ "textAlign": "left" }}>
|
||||
{String(partner_document_data_edit_mode) === "1" &&
|
||||
<div className="div_row" > Choisir un champ <br />
|
||||
<TextField
|
||||
name="champ_table"
|
||||
id="champ_table"
|
||||
select
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style enable_style"
|
||||
value={p_champ_table}
|
||||
onChange={(e) => {
|
||||
setp_champ_table(e.target.value);
|
||||
}}
|
||||
>
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
id="combo-box-demo"
|
||||
options={New_Get_Given_Personnalisable_Collection_and_Fields_result}
|
||||
onChange={(event, value) => {
|
||||
setp_champ_table(value.nom_champ_technique);
|
||||
}}
|
||||
|
||||
{Get_Given_Personnalisable_Collection_and_Fields_result &&
|
||||
Get_Given_Personnalisable_Collection_and_Fields_result.filter((local_mymanager) => JSON.parse(local_mymanager).courrier_template_ref_interne === p_detail_ref_interne).map((mycollection) => (
|
||||
<MenuItem key={JSON.parse(mycollection).nom_champ_technique}
|
||||
value={JSON.parse(mycollection).nom_champ_technique}
|
||||
style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%", "fontSize": "12px" }}>
|
||||
{JSON.parse(mycollection).nom_champ_fonctionel}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="Choisir " />
|
||||
}
|
||||
/>
|
||||
}
|
||||
|
||||
</MenuItem>
|
||||
))}
|
||||
</TextField>
|
||||
{String(partner_document_data_edit_mode) === "1" &&
|
||||
<div className="div_row">
|
||||
<Button className="bton_enreg" onClick={add_selected_fields} style={{ "margin": "1rem", "minWidth": '80%' }}
|
||||
>Ajouter Champ Choisi
|
||||
|
||||
</Button>
|
||||
</div>}
|
||||
|
||||
{String(partner_document_data_edit_mode) === "1" &&
|
||||
<div className="div_row">
|
||||
<Button className="bton_enreg" onClick={add_selected_fields} style={{ "margin": "1rem", "minWidth":'80%' }}
|
||||
>Ajouter Champ Choisi
|
||||
|
||||
</Button>
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{p_detail_type_doc && String(p_detail_type_doc).toLocaleLowerCase() === "email" && <div className="div_row" style={{ "marginRight": "15px" }} >
|
||||
|
||||
<div>
|
||||
|
@ -3114,7 +3136,7 @@ const Config_Documents = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
{String(p_one_detail_type_doc) === "email" && <div className="div_row_gauche texte_area_filter" >
|
||||
{String(p_one_detail_type_doc) === "email" && <div className="div_row_gauche texte_area_filter" >
|
||||
Joindre en PDF <br />
|
||||
|
||||
<Checkbox
|
||||
|
|
|
@ -45,7 +45,9 @@ import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
|
|||
import { confirmAlert } from 'react-confirm-alert';
|
||||
import ToggleSwitch from "./ToggleSwitch";
|
||||
import Module_Historique_Action from "./Module_Historique_Action";
|
||||
|
||||
import { HiDocumentCheck } from "react-icons/hi2";
|
||||
import { BsSend } from "react-icons/bs";
|
||||
import Autocomplete from '@mui/material/Autocomplete';
|
||||
|
||||
const DisplayPartnerSession = (props) => {
|
||||
const history = useHistory();
|
||||
|
@ -1689,7 +1691,7 @@ const DisplayPartnerSession = (props) => {
|
|||
}
|
||||
}
|
||||
|
||||
console.log("4");
|
||||
|
||||
|
||||
if (document.getElementById('detail_session')) {
|
||||
//myRef.current.scrollIntoView({ behavior: "smooth" });
|
||||
|
@ -1803,9 +1805,9 @@ const DisplayPartnerSession = (props) => {
|
|||
form.append("status", "1");
|
||||
|
||||
/*
|
||||
|
||||
/!\ : Cette fonction a besoin d'un token actif
|
||||
*/
|
||||
|
||||
/!\ : Cette fonction a besoin d'un token actif
|
||||
*/
|
||||
|
||||
if (String(stored_cookie) === String("")) {
|
||||
alert(" La session n'est plus valide ");
|
||||
|
@ -1987,7 +1989,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
//console.log(" ### localsessionid = ", localsessionid, " -- class_internal_url = ", class_internal_url);
|
||||
/*
|
||||
|
||||
|
||||
/!\ : Cette fonction a besoin d'un token actif
|
||||
*/
|
||||
|
||||
|
@ -2069,7 +2071,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
|
||||
if (one_prenom_part.trim() == "") {
|
||||
alert(" Vous devez saisir le prenom du participant");
|
||||
alert(" Vous devez saisir le prénom du participant");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2602,6 +2604,29 @@ const DisplayPartnerSession = (props) => {
|
|||
form.append("nom", p_detail_nom);
|
||||
form.append("prenom", p_detail_prenom);
|
||||
form.append("email", p_detail_mail);
|
||||
form.append("telephone", p_detail_tel);
|
||||
|
||||
if (String(p_detail_nom).trim().length < 2) {
|
||||
alert("Le nom est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (String(p_detail_prenom).trim().length < 2) {
|
||||
alert("Le prénom est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (String(p_detail_tel).trim().length < 2) {
|
||||
alert("Le Téléphone est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
|
||||
if (!p_detail_mail.match(validRegex)) {
|
||||
alert("L'adresse email est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (p_detail_employeur)
|
||||
form.append("employeur", p_detail_employeur);
|
||||
|
@ -2627,14 +2652,15 @@ const DisplayPartnerSession = (props) => {
|
|||
form.append("opco", "");
|
||||
|
||||
form.append("_id", selected_inscription_id);
|
||||
if (p_detail_client_rattachement_nom)
|
||||
|
||||
if (p_detail_client_rattachement_id)
|
||||
form.append("client_rattachement_id", p_detail_client_rattachement_id);
|
||||
else
|
||||
form.append("client_rattachement_id", "");
|
||||
|
||||
/*
|
||||
Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
|
||||
*/
|
||||
Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
|
||||
*/
|
||||
for (let i = 0; i < spec_field_updated_values_hooks_stagiaire.length; i++) {
|
||||
|
||||
var local_value = String(spec_field_updated_values_hooks_stagiaire[i].field_value);
|
||||
|
@ -3639,7 +3665,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/*var formateur = "";
|
||||
if (document.getElementById("one_formateur") && document.getElementById("one_formateur").value != "")
|
||||
formateur = document.getElementById("one_formateur").value;
|
||||
*/
|
||||
*/
|
||||
|
||||
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
|
@ -4266,9 +4292,11 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
}
|
||||
const [SessionendDateInscription, setSessionendDateInscription] = useState();
|
||||
|
||||
const [New_GetCurrentPartnerClass_result, setNew_GetCurrentPartnerClass_result] = useState([]);
|
||||
|
||||
const [GetCurrentPartnerClass_api, setGetCurrentPartnerClass_api] = useState();
|
||||
const [GetCurrentPartnerClass_message, setGetCurrentPartnerClass_message] = useState();
|
||||
const [GetCurrentPartnerClass_result, setGetCurrentPartnerClass_result] = useState();
|
||||
const [GetCurrentPartnerClass_result, setGetCurrentPartnerClass_result] = useState([]);
|
||||
function GetCurrentPartnerClass(event) {
|
||||
var form = new FormData();
|
||||
|
||||
|
@ -4308,10 +4336,38 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//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_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 node = {
|
||||
"_id": local_id, "id": localid,
|
||||
"label": local_title, "internal_url": local_internal_url,
|
||||
"title": local_title
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
// return {"_id": " + str(local_id) + ", "label": " + local_courrier_template_ref_interne + '" , "courrier_template_ref_interne": "' + local_courrier_template_ref_interne + '", "nom_champ_technique": "' + local_nom_champ_technique + '", "nom_champ_fonctionel": "' + local_nom_champ_fonctionel + '","valide": "1" };
|
||||
|
||||
});
|
||||
|
||||
|
||||
if (new_data2.length > 0)
|
||||
setNew_GetCurrentPartnerClass_result(new_data2);
|
||||
|
||||
|
||||
} else if (String(res.data.status) === String("Err_Connexion")) {
|
||||
alert('Erreur: ' + res.data.message);
|
||||
|
@ -4348,11 +4404,11 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
|
||||
|
||||
/*
|
||||
# status : 0 ==> Preinscription
|
||||
# status : 1 ==> Inscription validée
|
||||
# status : -1 ==> Inscription annulée
|
||||
"""
|
||||
*/
|
||||
# status : 0 ==> Preinscription
|
||||
# status : 1 ==> Inscription validée
|
||||
# status : -1 ==> Inscription annulée
|
||||
"""
|
||||
*/
|
||||
function handleClick_accept(event, cellValues) {
|
||||
|
||||
var montant = String(cellValues.row.amount);
|
||||
|
@ -6298,12 +6354,12 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
1 - Récuperer la liste des champs specifiques de la collection concernée - Array : list_nom_champs_spec
|
||||
2 - Récupérer les caracteristiques de champs champs spécifique : "id, nom, label, type valeur, etc"
|
||||
- avec un champ 'value' à vide. Mettre dans le tableau JSON, 'spec_champs_valeur'
|
||||
|
||||
|
||||
3 - Créer une nouvelle table qui permettra de gerer les hook : const [rows_champs_specifics, setrows_champs_specifics] = useState([]);
|
||||
4 - Afficher en html les elements 'rows_champs_specifics'
|
||||
5 - Gerer la modification avec la fonction 'change_champs_spec_handle'
|
||||
6 - On recuperer les valeur lors du click d'enregistrement.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
@ -7154,7 +7210,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
form.append("session_id", localsessionid);
|
||||
|
||||
/*
|
||||
|
||||
|
||||
/!\ : Cette fonction a besoin d'un token actif
|
||||
*/
|
||||
|
||||
|
@ -7796,9 +7852,17 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
}
|
||||
//form.append("File", list_files);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Convention_From_Session_By_Email/";
|
||||
|
||||
if (String(selected_convention_id) === "default_mail") {
|
||||
// Il s'agit d'envoyer les convention par defaut de type mail
|
||||
myurl = process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Default_Convention_From_Session_By_Email/";
|
||||
}
|
||||
|
||||
|
||||
setLoading(true);
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Convention_From_Session_By_Email/",
|
||||
myurl,
|
||||
{
|
||||
method: 'POST',
|
||||
body: form,
|
||||
|
@ -9266,7 +9330,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
setselected_convention_email_test();
|
||||
///Get_Stagiaire_List_Email_Com();
|
||||
setDialog_convention_open(true);
|
||||
}} >Editer une convention</label><br />
|
||||
}} ><HiDocumentCheck /> <BsSend /> Editer une convention</label> <br />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -10134,7 +10198,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
{String(addOneSession) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }} >
|
||||
<h5> Ajout d'une session de formation</h5>
|
||||
|
||||
<div className="session_caract" > Choisir une formation *<br />
|
||||
{/*<div className="session_caract" > Choisir une formation *<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -10165,10 +10229,31 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
|
||||
</TextField>
|
||||
|
||||
</div>*/}
|
||||
|
||||
<div className="session_caract" > Choisir une formation <br />
|
||||
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
id="combo-box-demo"
|
||||
className="disabled_style enable_style"
|
||||
options={New_GetCurrentPartnerClass_result}
|
||||
onChange={(event, value) => {
|
||||
// setp_champ_table(value.nom_champ_technique);
|
||||
setone_selected_internal_url(value.internal_url);
|
||||
setp_one_myclass_title(value.internal_url)
|
||||
Get_Class_Data(value.internal_url);
|
||||
}}
|
||||
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="Choisir " />
|
||||
}
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"> Code Session *<br />
|
||||
<div className="session_caract"><b> Code Session </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11161,7 +11246,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
{String(addOneParticipant) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }}>
|
||||
<div className="titre1"> Ajout d'un nouveau participant à la session <u> {selected_code_session} </u> de la formation <u> {selected_class_title} </u></div>
|
||||
|
||||
<div className="session_caract"> Nom *<br />
|
||||
<div className="session_caract"> <b> Nom </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11182,7 +11267,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"> Prenom *<br />
|
||||
<div className="session_caract"> <b> Prenom </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11202,7 +11287,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Email *<br />
|
||||
<div className="session_caract"> <b> Email </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11222,7 +11307,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> téléphone *<br />
|
||||
<div className="session_caract"> <b> téléphone </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11541,7 +11626,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
{String(addOneParticipant) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }}>
|
||||
<h5> Ajout d'un nouveau participant</h5>
|
||||
|
||||
<div className="session_caract"> Nom *<br />
|
||||
<div className="session_caract"> <b> Nom </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11559,7 +11644,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"> Prenom *<br />
|
||||
<div className="session_caract"> <b> Prénom </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11576,7 +11661,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Email *<br />
|
||||
<div className="session_caract"> <b> Email </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11595,7 +11680,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> téléphone *<br />
|
||||
<div className="session_caract"> <b> Téléphone </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11612,7 +11697,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Statut Inscription ss*<br />
|
||||
<div className="session_caract"> Statut Inscription <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11705,7 +11790,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
<div className="titre1"> Ajout d'un nouveau participant a la session <u> {selected_code_session} </u> de la formation <u> {selected_class_title} </u></div>
|
||||
|
||||
|
||||
<div className="session_caract"> Nom *<br />
|
||||
<div className="session_caract"> <b> Nom </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11726,7 +11811,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"> Prenom *<br />
|
||||
<div className="session_caract"> <b> Prénom </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11746,7 +11831,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Email *<br />
|
||||
<div className="session_caract"> <b> Email </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -11766,7 +11851,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> téléphone *<br />
|
||||
<div className="session_caract"> <b> Téléphone </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -12218,8 +12303,8 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
className="disabled_style"
|
||||
value={p_detail_client_rattachement_nom}
|
||||
onChange={(e) => {
|
||||
//setp_detail_client_rattachement_id(e.target.value);
|
||||
setp_detail_client_rattachement_nom(e.target.value);
|
||||
setp_detail_client_rattachement_id(e.target.value);
|
||||
//setp_detail_client_rattachement_nom(e.target.value);
|
||||
setparticipant_data_changed("1");
|
||||
Dialog_1_handle_change_participant_session(" Attention, vous allez modifier le client de rattachement du participant");
|
||||
}
|
||||
|
@ -12299,7 +12384,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
</div>}
|
||||
|
||||
|
||||
<div className="session_caract"> Nom<br />
|
||||
<div className="session_caract"> <b> Nom </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -12321,7 +12406,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Prenom<br />
|
||||
<div className="session_caract"> <b> Prénom </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -12342,7 +12427,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Email<br />
|
||||
<div className="session_caract"> <b> Email </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -12363,7 +12448,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Téléphone <br />
|
||||
<div className="session_caract"> <b> Téléphone </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
|
@ -48,6 +48,8 @@ import Switch from '@mui/material/Switch';
|
|||
import { FcSearch } from "react-icons/fc";
|
||||
import { useHistory } from "react-router-dom";
|
||||
import Module_Historique_Action from "./Module_Historique_Action";
|
||||
import ToggleSwitch from "./ToggleSwitch";
|
||||
import Autocomplete from '@mui/material/Autocomplete';
|
||||
|
||||
const DisplayPartnerStagiaires = (props) => {
|
||||
const history = useHistory();
|
||||
|
@ -1032,7 +1034,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
setp_detail_client_rattachement_nom();
|
||||
setp_detail_client_rattachement_id();
|
||||
|
||||
setp_detail_type_apprenant();
|
||||
setp_detail_type_apprenant();
|
||||
setp_detail_type_apprenant_label();
|
||||
|
||||
setfield_evaluation();
|
||||
|
@ -1073,7 +1075,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
if (document.getElementsByName("one_pays_part") && document.getElementsByName("one_pays_part")[0])
|
||||
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_pays_part")[0])
|
||||
document.getElementsByName("one_detail_type_apprenant")[0].value = "";
|
||||
|
||||
if (document.getElementsByName("one_status_part") && document.getElementsByName("one_status_part")[0])
|
||||
|
@ -1969,7 +1971,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
}
|
||||
|
||||
|
||||
|
||||
const [New_Getall_TrainingSession_result, setNew_Getall_TrainingSession_result] = useState();
|
||||
|
||||
const [Getall_TrainingSession_api, setGetall_TrainingSession_api] = useState();
|
||||
const [Getall_TrainingSession_message, setGetall_TrainingSession_message] = useState();
|
||||
|
@ -1987,10 +1989,41 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
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.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_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_session = JSON.parse(x).titre;
|
||||
var local_code_session = JSON.parse(x).code_session;
|
||||
|
||||
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": local_id,
|
||||
"id": localid,
|
||||
"label": local_code_session,
|
||||
"class_internal_url": local_internal_url,
|
||||
"titre": local_title_session
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
// return {"_id": " + str(local_id) + ", "label": " + local_courrier_template_ref_interne + '" , "courrier_template_ref_interne": "' + local_courrier_template_ref_interne + '", "nom_champ_technique": "' + local_nom_champ_technique + '", "nom_champ_fonctionel": "' + local_nom_champ_fonctionel + '","valide": "1" };
|
||||
|
||||
});
|
||||
|
||||
|
||||
if (new_data2.length > 0)
|
||||
setNew_Getall_TrainingSession_result(new_data2);
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
setGetall_TrainingSession_api("false");
|
||||
|
@ -2215,7 +2248,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
if (mylocalattendee.type_apprenant) {
|
||||
setp_detail_type_apprenant(mylocalattendee.type_apprenant);
|
||||
// console.log(" ### mylocalattendee.type_apprenant = ", mylocalattendee.type_apprenant);
|
||||
// console.log(" ### mylocalattendee.type_apprenant = ", mylocalattendee.type_apprenant);
|
||||
|
||||
if (String(mylocalattendee.type_apprenant) === "0")
|
||||
setp_detail_type_apprenant_label("Autre");
|
||||
|
@ -2635,6 +2668,28 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
form.append("email", p_one_email_part);
|
||||
form.append("telephone", p_one_phone_part);
|
||||
|
||||
if (String(p_one_nom_part).trim().length < 2) {
|
||||
alert("Le nom est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (String(p_one_prenom_part).trim().length < 2) {
|
||||
alert("Le prenom est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (String(p_one_phone_part).trim().length < 2) {
|
||||
alert("Le Téléphone est invalide.");
|
||||
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)
|
||||
form.append("adresse", p_one_adresse_part);
|
||||
else
|
||||
|
@ -2772,6 +2827,30 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
form.append("nom", p_detail_nom);
|
||||
form.append("prenom", p_detail_prenom);
|
||||
form.append("email", p_detail_mail);
|
||||
form.append("telephone", p_detail_tel);
|
||||
|
||||
if (String(p_detail_nom).trim().length < 2) {
|
||||
alert("Le nom est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (String(p_detail_prenom).trim().length < 2) {
|
||||
alert("Le prenom est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (String(p_detail_tel).trim().length < 2) {
|
||||
alert("Le Téléphone est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
|
||||
if (!p_detail_mail.match(validRegex)) {
|
||||
alert("L'adresse email est invalide.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (p_detail_employeur)
|
||||
form.append("employeur", p_detail_employeur);
|
||||
|
@ -2836,7 +2915,8 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
|
||||
form.append("_id", selected_id);
|
||||
if (p_detail_client_rattachement_nom)
|
||||
|
||||
if (p_detail_client_rattachement_id)
|
||||
form.append("client_rattachement_id", p_detail_client_rattachement_id);
|
||||
else
|
||||
form.append("client_rattachement_id", "");
|
||||
|
@ -4153,7 +4233,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
else
|
||||
form.append("tuteur1_prenom", "");
|
||||
|
||||
if (p_detail_tuteur1_email && String(p_detail_tuteur2_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-]+)*$/;
|
||||
if (!p_detail_tuteur1_email.match(validRegex)) {
|
||||
alert("L'adresse email est invalide.");
|
||||
|
@ -4828,11 +4908,43 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog" > Inclure Communication
|
||||
{/* <div className="session_caract_Dialog" > Inclure Communication
|
||||
<Switch checked={p_detail_tuteur1_include_com} onChange={(e) => {
|
||||
setp_detail_tuteur1_include_com(e.target.checked)
|
||||
}} />
|
||||
</div>
|
||||
</div>*/}
|
||||
|
||||
<Tooltip id="tooltip_com1" style={{ "fontSize": "12px" }} />
|
||||
<a data-tooltip-id="tooltip_com1" data-tooltip-content="Si oui, ce tuteur recevra tous les emails échangés">
|
||||
<div className="session_caract" style={{ "float": "right", "fontSize": "12px", 'fontWeight': 'bolder', "width": "100%" }}>
|
||||
|
||||
<nav onChange={(e) => {
|
||||
|
||||
|
||||
//console.log("is_contact_include_com == ", is_contact_include_com);
|
||||
if (p_detail_tuteur1_include_com === true)
|
||||
setp_detail_tuteur1_include_com(false)
|
||||
else {
|
||||
// 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-]+)*$/;
|
||||
|
||||
if (!p_detail_tuteur1_email.match(validRegex)) {
|
||||
alert("L'adresse email est invalide. Pour activer cette fontion, vous devez saisir une adresse email valide");
|
||||
return;
|
||||
}
|
||||
|
||||
setp_detail_tuteur1_include_com(true);
|
||||
|
||||
}
|
||||
|
||||
}}
|
||||
id="toggleSwitchNav" name="toggleSwitchNav">
|
||||
<ToggleSwitch
|
||||
label="Inclure / Exclure de la communication ? " id="toggleSwitch" name="toggleSwitch" checked={p_detail_tuteur1_include_com} style={{ height: "2rem" }} />
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</DialogContent>}
|
||||
|
||||
|
@ -4958,11 +5070,44 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog" > Inclure Communication
|
||||
{/*<div className="session_caract_Dialog" > Inclure Communication
|
||||
<Switch checked={p_detail_tuteur2_include_com} onChange={(e) => {
|
||||
setp_detail_tuteur2_include_com(e.target.checked)
|
||||
}} />
|
||||
</div>
|
||||
</div>*/}
|
||||
|
||||
<Tooltip id="tooltip_com" style={{ "fontSize": "12px" }} />
|
||||
<a data-tooltip-id="tooltip_com" data-tooltip-content="Si oui, ce tuteur recevra tous les emails échangés">
|
||||
<div className="session_caract" style={{ "float": "right", "fontSize": "12px", 'fontWeight': 'bolder', "width": "100%" }}>
|
||||
|
||||
<nav onChange={(e) => {
|
||||
|
||||
|
||||
//console.log("is_contact_include_com == ", is_contact_include_com);
|
||||
if (p_detail_tuteur2_include_com === true)
|
||||
setp_detail_tuteur2_include_com(false)
|
||||
else {
|
||||
// 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-]+)*$/;
|
||||
|
||||
if (!p_detail_tuteur2_email.match(validRegex)) {
|
||||
alert("L'adresse email est invalide. Pour activer cette fontion, vous devez saisir une adresse email valide");
|
||||
return;
|
||||
}
|
||||
|
||||
setp_detail_tuteur2_include_com(true);
|
||||
|
||||
}
|
||||
|
||||
}}
|
||||
id="toggleSwitchNav" name="toggleSwitchNav">
|
||||
<ToggleSwitch
|
||||
label="Inclure / Exclure de la communication ? " id="toggleSwitch" name="toggleSwitch" checked={p_detail_tuteur2_include_com} style={{ height: "2rem" }} />
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
||||
</DialogContent>}
|
||||
|
||||
|
@ -5093,23 +5238,23 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</div>}
|
||||
|
||||
{String(selected_convention_type) === "email" && <div className="session_caract_Dialog" > Adresse email de test
|
||||
|
||||
<Tooltip id="test01" style={{ "fontSize": "12px" }} />
|
||||
|
||||
<Tooltip id="test01" style={{ "fontSize": "12px" }} />
|
||||
<a data-tooltip-id="test01" data-tooltip-content="Pour recevoir une email de test avant de l'envoyer">
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_email_test_convention"
|
||||
id="event_dialog_email_test_convention"
|
||||
name="event_dialog_email_test_convention"
|
||||
id="event_dialog_email_test_convention"
|
||||
|
||||
fullWidth
|
||||
fullWidth
|
||||
|
||||
value={selected_convention_email_test}
|
||||
onChange={(e) => {
|
||||
setselected_convention_email_test(e.target.value);
|
||||
}
|
||||
}
|
||||
/>
|
||||
value={selected_convention_email_test}
|
||||
onChange={(e) => {
|
||||
setselected_convention_email_test(e.target.value);
|
||||
}
|
||||
}
|
||||
/>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
@ -5621,10 +5766,10 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style={{ "textAlign": "left", "float": "left", "width": "100%", "paddingRight":"10px" }} id="participant_menu_tab">
|
||||
<div style={{ "textAlign": "left", "float": "left", "width": "100%", "paddingRight": "10px" }} id="participant_menu_tab">
|
||||
|
||||
<div className="session_data">
|
||||
<div style={{ "border": "None", paddingRight: '10px' }}>
|
||||
<div style={{ "border": "None", paddingRight: '10px' }}>
|
||||
|
||||
<div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
|
||||
|
||||
|
@ -5689,7 +5834,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
>
|
||||
<DataGrid
|
||||
checkboxSelection
|
||||
|
||||
|
||||
onSelectionModelChange={(newSelectionModel) => {
|
||||
setSelectionModel(newSelectionModel);
|
||||
/*if (newSelectionModel.length === 1)
|
||||
|
@ -5913,8 +6058,8 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</div>
|
||||
</div>
|
||||
<div className="div_row"> </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" onClick={submenu_sessions} className="detail_class_submenu" id='preinscrit' name='preinscrit'>Détail Session </Button>
|
||||
<Button variant="outlined" onClick={submenu_absence} className="detail_class_submenu" id='absence' name='absence'>Absence </Button>
|
||||
|
@ -5957,7 +6102,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</TextField>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Session <br />
|
||||
<div className="session_caract"> <b> Session </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -5997,8 +6142,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</div>
|
||||
|
||||
|
||||
|
||||
<div className="session_caract"> Nom *<br />
|
||||
<div className="session_caract"> <b> Nom </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -6020,7 +6164,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</div>
|
||||
|
||||
|
||||
<div className="session_caract"> Prenom *<br />
|
||||
<div className="session_caract"> <b> Prenom </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -6040,7 +6184,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Email *<br />
|
||||
<div className="session_caract"> <b> Email </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -6060,7 +6204,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> téléphone *<br />
|
||||
<div className="session_caract"> <b> Téléphone </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -6191,7 +6335,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</TextField>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Client <br />
|
||||
<div className="session_caract"> Client 2<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -6424,7 +6568,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
<div className="session_data" >
|
||||
<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
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -6444,7 +6588,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</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
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -6492,8 +6636,8 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
className="disabled_style"
|
||||
value={p_detail_client_rattachement_nom}
|
||||
onChange={(e) => {
|
||||
//setp_detail_client_rattachement_id(e.target.value);
|
||||
setp_detail_client_rattachement_nom(e.target.value);
|
||||
setp_detail_client_rattachement_id(e.target.value);
|
||||
//setp_detail_client_rattachement_nom(e.target.value);
|
||||
setparticipant_data_changed("1");
|
||||
Dialog_1_handle_change_participant_session(" Attention, vous allez modifier le client de rattachement du participant");
|
||||
}
|
||||
|
@ -6622,7 +6766,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</div>}
|
||||
|
||||
|
||||
<div className="session_caract"> Nom<br />
|
||||
<div className="session_caract"> <b> Nom </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -6644,7 +6788,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Prenom<br />
|
||||
<div className="session_caract"> <b> Prenom </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -6664,7 +6808,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Email<br />
|
||||
<div className="session_caract"> <b> Email </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -6686,7 +6830,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Téléphone <br />
|
||||
<div className="session_caract"> <b> Téléphone </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -7059,7 +7203,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
<div className="tuteur_field"> Téléphone <br />
|
||||
<div className="tuteur_field"> <b> Téléphone </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
@ -7160,7 +7304,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
<div className="tuteur_field"> Téléphone <br />
|
||||
<div className="tuteur_field"> <b> Téléphone </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
|
@ -467,6 +467,7 @@
|
|||
width: 100%;
|
||||
border-radius: 1rem;
|
||||
text-align: right;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1040,6 +1041,7 @@
|
|||
width: 30%;
|
||||
border-radius: 1rem;
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1209,6 +1211,7 @@
|
|||
width: 30%;
|
||||
border-radius: 1rem;
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1676,6 +1679,7 @@
|
|||
width: 30%;
|
||||
border-radius: 1rem;
|
||||
text-align: right;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.selectsession {
|
||||
|
|
Loading…
Reference in New Issue