09/07/26 - 20h

branche_01062025
Cherif 2026-07-09 21:16:39 +02:00
parent 15db34ae19
commit 31af9a9777
15 changed files with 3596 additions and 468 deletions

View File

@ -94,6 +94,10 @@ function App() {
const New_A_Propos_2025 = lazy(() => import("./pages/new_p_a_propos_2025"));
const New_Fonctionnalite_2025 = lazy(() => import("./pages/new_p_fonctionnalite_2025"));
const New_Formation_Detail_2025 = lazy(() => import("./pages/new_p_detail_formation_2025"));
const New_Inscription_Formation_Detail_2025 = lazy(() => import("./pages/new_p_inscription_detail_formation_2025"));
const New_Article_Detail_2025 = lazy(() => import("./pages/new_p_article_detail_2025"));
const New_Article_Support_2025 = lazy(() => import("./pages/new_p_article_help_detail_2025"));
@ -104,6 +108,7 @@ function App() {
const New_Sign_In_2025 = lazy(() => import("./pages/new_p_sign_in_2025"));
const Student_Account_Ent = lazy(() => import("./pages/student_account_ent"));
const Intranet_Client_Account = lazy(() => import("./pages/intranet_client_account"));
@ -122,7 +127,7 @@ function App() {
const MySyIA = lazy(() => import("./pages/iamysy"));
const AutomaticQuotation = lazy(() => import("./pages/automaticquotation"));
const Automatic_Absence_Action = lazy(() => import("./pages/Absence_Action_From_Mail"));
const Automatic_Absence_Action = lazy(() => import("./pages/Absence_Action_From_Mail"));
const Emarge_QR_Code = lazy(() => import("./pages/emarge_qr_code"));
@ -385,6 +390,9 @@ function App() {
<Route path="/Display-Detail-formation/:classId/:action" exact component={New_Formation_Detail_2025} />
<Route path="/Display-Detail-formation_old/:classId/:action" exact component={New_Formation_Detail_2025} />
{/** Inscription directe zzz */}
<Route path="/inscription-detail-formation/:classId/:sessionId" exact component={New_Inscription_Formation_Detail_2025} />
<Route path="/PartnerLogin" exact component={PartnerLogin} />
<Route path="/PartnerLogin0" exact component={PartnerLogin0} />
<Route path="/PartnerLogin1" exact component={PartnerLogin1} />
@ -397,6 +405,10 @@ function App() {
<Route path="/DeleteUserAccount/:token" exact component={DeleteUserAccount} />
<Route path="/mysy-student-ent/:local_props_apprenant_id/:local_props_menu" exact component={Student_Account_Ent} />
<Route path="/mysy-user-account/:local_props_client_id/:local_props_menu" exact component={Intranet_Client_Account} />
{/* Fin Migration */}

View File

@ -950,7 +950,7 @@ const Apprenant = (props) => {
if (mylocaltraining.date_naissance) {
setp_detail_naissance(mylocaltraining.date_naissance);
} else {
setp_detail_naissance("");
setp_detail_naissance("01/01/1900");
}
if (mylocaltraining.nom) {
@ -8099,40 +8099,7 @@ const Apprenant = (props) => {
</div>}
<div className="session_caract_Dialog" > Type apprenant
{/*<Autocomplete
disablePortal
id="combo-box-demo"
className="session_caract_Dialog"
fullWidth
options={New_Type_apprenant}
onChange={(event, value) => {
if (value && value.id) {
setp_dialog_type_apprenant(value.id);
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
sx={{
background: '#FFF',
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>*/}
{New_Get_List_Type_Apprenant_result && New_Get_List_Type_Apprenant_result.length > 0 && <Autocomplete
disablePortal
@ -8174,39 +8141,7 @@ const Apprenant = (props) => {
</div>
<div className="session_caract_Dialog" > Mode Financement
{/* <Autocomplete
disablePortal
id="combo-box-demo"
className="session_caract_Dialog"
fullWidth
options={New_Financement}
onChange={(event, value) => {
if (value && value.value) {
setp_dialog_financement(value.value);
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
sx={{
background: '#FFF',
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>*/}
{New_Get_List_Mode_Financement_result && New_Get_List_Mode_Financement_result.length > 0 && <Autocomplete
disablePortal

View File

@ -399,6 +399,7 @@ const DisplayPartnerSession = (props) => {
const options_menu_vertical_promotion = [
'Décaler',
'Archiver/Désarch.',
'Copie Url',
'Supprimer',
];
@ -647,6 +648,10 @@ const DisplayPartnerSession = (props) => {
Get_Session_Nb_Sequence_Ftion();
setDialog_Session_Decalage(true);
}
else if (option && String(option) === "Copie Url") {
handleCopy_url_session(working_cellValues_promo.row._id, working_cellValues_promo.row.class_internal_url);
}
}}
>
{option}
@ -810,6 +815,31 @@ const DisplayPartnerSession = (props) => {
},
]
const [copied_session_url, setcopied_session_url] = useState(false);
const handleCopy_url_session = async (local_session_id, local_url_id) => {
try {
const url = process.env.REACT_APP_FRONT_URL + "inscription-detail-formation/" + local_url_id + "/" + local_session_id;
await navigator.clipboard.writeText(url);
setcopied_session_url(true);
setTimeout(() => {
setcopied_session_url(false);
}, 2000);
} catch (error) {
// console.error("Erreur lors de la copie :", error);
setdisplay_alert_mysy("1");
setalert_message("Impossible de copier lURL dans le presse-papiers");
setalert_type("error");
return;
}
setdisplay_alert_mysy("1");
setalert_message("Lien copié dans le presse-papiers");
setalert_type("success");
};
const [session_debut_for_decalage, setsession_debut_for_decalage] = React.useState('');
const [session_fin_for_decalage, setsession_fin_for_decalage] = React.useState('');
@ -3749,7 +3779,7 @@ const DisplayPartnerSession = (props) => {
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Get_Conflit_On_Inscription res.data.status = " + res.data.status);
// console.log(" In Get_Conflit_On_Inscription res.data.message r_class = " + res.data.message);
// console.log(" In Get_Conflit_On_Inscription res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
@ -3769,7 +3799,7 @@ const DisplayPartnerSession = (props) => {
setDialog_List_Conflit_Inscription(true);
@ -16670,8 +16700,8 @@ const DisplayPartnerSession = (props) => {
fontWeight: 700,
color: "#104277",
borderBottom: "1px solid #eef2f6",
maxWidth:'unset',
width:'60rem'
maxWidth: 'unset',
width: '60rem'
}}
>
Conflits dinscription
@ -16697,7 +16727,7 @@ const DisplayPartnerSession = (props) => {
}}
>
<div style={{ width: "100%", float: "left" }}>
<div
style={{
@ -16709,7 +16739,7 @@ const DisplayPartnerSession = (props) => {
>
{New_Get_Conflit_On_Inscription_result.map((conflit) => (
<div
style={{
width: "100%",
textAlign: "left",
@ -16739,15 +16769,15 @@ const DisplayPartnerSession = (props) => {
}}
>
{String(JSON.parse(conflit).apprenant_nom)}{" "} {String(JSON.parse(conflit).apprenant_prenom)}
</div>
</div>
</div>
<div

View File

@ -1427,11 +1427,7 @@ const DistplayPartnerTraningsPage = (props) => {
history.push("/Connexion");
}
if (String(result['status']) === String("true")) {
// On ne visualise que les formations publiées
if (cellValues.row.published !== "1") {
alert(" Vous devez publier la formation pour la visualiser ");
return;
}
window.open(
"/Display-Detail-formation/" + cellValues.row.internal_url,
'_blank'

View File

@ -1427,11 +1427,7 @@ const DistplayPartnerTraningsPage_FI = (props) => {
history.push("/Connexion");
}
if (String(result['status']) === String("true")) {
// On ne visualise que les formations publiées
if (cellValues.row.published !== "1") {
alert(" Vous devez publier la formation pour la visualiser ");
return;
}
window.open(
"/Display-Detail-formation/" + cellValues.row.internal_url,
'_blank'

View File

@ -426,11 +426,16 @@ const ENT_Student_Header = () => {
<div className="cta-login">
<div className="cta-buttons hide_on_mobile">
{String(someoneconnected) === String("1") &&
{(!stored_tuteur_id || stored_tuteur_id.length < 5) && String(someoneconnected) === String("1") &&
<a href={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/apprenant_account_data"} className="btn btn-primary">Mon compte</a>
}
{stored_tuteur_id && stored_tuteur_id.length > 5 &&
<a href={"/mysy-student-ent/" + `${stored_tuteur_id}` + "/apprenant_account_data"} className="btn btn-primary">Tuteur Compte {stored_tuteur_id} </a>
}
</div>
<div className="separator hide_on_mobile"></div>

View File

@ -219,9 +219,9 @@ function Inscription_Information(props) {
formData.append('prenom', prenom);
formData.append('telephone', telephone);
formData.append('email', email);
formData.append('modefinancement', modefinancement);
formData.append('opco', opco);
formData.append('session_id', session);
formData.append('class_internal_url', props.internal_url);
@ -462,6 +462,9 @@ function Inscription_Information(props) {
useEffect(() => {
if (props.selected_session_id) {
setmysession(props.selected_session_id);
}
//Get_Partner_Object_Specific_Fields("inscription");
@ -1171,37 +1174,47 @@ function Inscription_Information(props) {
<div className="select-container">
<div className="titre1_aide_finance" style={{ fontFamily: 'DM Sans' }}> Je m'inscris</div>
<div className="div_row" style={{ "width": "100%" }}>
<div className="choisir_session" style={{ paddingTop: "30px" }}>
Choisir une session &nbsp;
</div>
{!props.selected_session_id &&
<>
<div className="choisir_session" style={{ paddingTop: "30px" }}>
Choisir une session &nbsp;
</div>
<div className="liste_session">
<div className="liste_session">
{New_GetCurrentClass_result && New_GetCurrentClass_result.length > 0 &&
<Autocomplete
disablePortal
name="detail_choix_session"
id="detail_choix_session"
// value={New_Getall_Partner_Paiement_Condition_result.filter((data) => (data).label === String(p_client_invoice_paiement_condition_code))[0].label}
options={New_GetCurrentClass_result}
className="disabled_style"
onChange={(event, value) => {
if (value && value._id) {
setmysession(value._id)
}
{New_GetCurrentClass_result && New_GetCurrentClass_result.length > 0 &&
<Autocomplete
disablePortal
name="detail_choix_session"
id="detail_choix_session"
// value={New_Getall_Partner_Paiement_Condition_result.filter((data) => (data).label === String(p_client_invoice_paiement_condition_code))[0].label}
options={New_GetCurrentClass_result}
className="disabled_style"
onChange={(event, value) => {
if (value && value._id) {
setmysession(value._id)
}
}}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une session"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une session"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>}
/>
}
/>}
</div>
</div>
</>}
{props.selected_session_id && String(props.selected_session_id).length > 3 &&
New_GetCurrentClass_result && New_GetCurrentClass_result.length > 0 &&
<div style={{ width: '100%', textAlign: 'center', fontFamily:'DM Sans', color: '#3E6EE3' }}>
{New_GetCurrentClass_result.filter((data) => (data)._id === String(props.selected_session_id))[0].label}
</div>}
</div>
</div>
@ -1365,198 +1378,9 @@ function Inscription_Information(props) {
{mysession &&
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
{/*<>
<Autocomplete
required
disablePortal
name="civilite"
id="civilite"
className="texte_area"
sx={{ m: 1, width: '90%' }}
options={New_civilite}
onChange={(event, value) => {
if (value && value.value) {
setcivilite_stagiaire(value.value);
}
}}
renderInput={(params) => <TextField
{...params}
variant="standard"
label="Civilité"
placeholder="Civilité"
required
/>
}
/>
<TextField
required
label="Nom"
name="nom"
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<AccountCircle />
</InputAdornment>
),
}}
variant="standard"
value={leads_nom}
onChange={(e) => {
setleads_nom(e.target.value);
}}
/>
<TextField
required
label="Prénom(s)"
name="prenom"
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<AccountCircle />
</InputAdornment>
),
}}
variant="standard"
value={leads_prenom}
onChange={(e) => {
setleads_prenom(e.target.value);
}}
/>
<TextField
required
name="email"
label="Adresse mail"
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<EmailIcon />
</InputAdornment>
),
}}
variant="standard"
value={leads_email}
onChange={(e) => {
setleads_email(e.target.value);
}}
/>
<TextField
required
name="telephone"
label="Téléphone"
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<PhoneIcon />
</InputAdornment>
),
}}
variant="standard"
value={leads_phone}
onChange={(e) => {
setleads_phone(e.target.value);
}}
/>
<TextField
name="employeur"
id="employeur"
label="Employeur"
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<HomeWorkIcon />
</InputAdornment>
),
}}
variant="standard"
value={leads_employeur}
onChange={(e) => {
setleads_employeur(e.target.value);
}}
/>
{/* -- début champs specifiques ** /}
<div className="div_row" style={{ "padding": "5px", "width": "100%" }}>
{rows_champs_specifics &&
rows_champs_specifics.filter((spec_field) => JSON.parse(spec_field).is_public === "1").map((champ_spec) => (
<div>
{String(JSON.parse(champ_spec).field_type) === "float" && <TextField
name={JSON.parse(champ_spec).field_name}
id={JSON.parse(champ_spec).field_name}
label={JSON.parse(champ_spec).field_label}
className="texte_area"
sx={{ m: 1, width: '48%' }}
type="number"
inputProps={{ min: "1", max: "999999", step: "1" }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<AssignmentSharpIcon />
</InputAdornment>
),
}}
variant="standard"
/>}
{String(JSON.parse(champ_spec).field_type) === "string" && <TextField
name={JSON.parse(champ_spec).field_name}
id={JSON.parse(champ_spec).field_name}
label={JSON.parse(champ_spec).field_label}
className="texte_area"
inputProps={{ min: "1", max: "999999", step: "1" }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<AssignmentSharpIcon />
</InputAdornment>
),
}}
variant="standard"
/>}
</div>
))}
<br />
</div>
{/* -- end champs specifiques ** /}
</> */}
{props.mytrainingdirectinscription !== "1" && <>
<div style={{ "width": "10%" }}> &nbsp; </div>
<div className="titre1_aide_finance" style={{ fontFamily: 'DM Sans' }}> Nous vous aidons à financer la formation</div>
@ -1641,19 +1465,19 @@ function Inscription_Information(props) {
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
sx={{
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
sx={{
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
@ -1866,19 +1690,19 @@ function Inscription_Information(props) {
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
sx={{
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
sx={{
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>

View File

@ -73,7 +73,7 @@ const Formation_Partner_Catalog_Special_JMJFormation = (props) => {
}
}
}
const [myclassimage, setmyclassimage] = useState();
const [isclassimage, setisclassimage] = useState("False");

View File

@ -368,7 +368,8 @@ export default function Module_Atelier_Catalogue(props) {
<article className="module_atelier_catalogue formation-card">
<div className="formation-card__main">
<div className="formation-card__image-wrap">
<img src={formation.image} alt="" className="formation-card__image" />
{formation.class_img && String(formation.class_img).length > 50 && <img src={"data:image/png;base64," + `${formation.class_img}`} alt="" className="formation-card__image" />}
<button className="favorite-btn" aria-label="Ajouter aux favoris">
<Heart size={18} />
</button>
@ -476,7 +477,12 @@ export default function Module_Atelier_Catalogue(props) {
setDialog_add_inscription_open(true);
init_inscrit_info();
setselected_session_id(atelier._id);
setselected_session_code(atelier.code_session)
setselected_session_code(atelier.code_session);
setselected_class_id(formation._id);
setselected_class_internal_url(formation.internal_url);
setselected_class_price(formation.price);
}}>Inscription</button>
</div>
))}
@ -488,7 +494,6 @@ export default function Module_Atelier_Catalogue(props) {
useEffect(() => {
// console.log(" ### props.formations = ", props.formations)
}, [])
@ -506,8 +511,23 @@ export default function Module_Atelier_Catalogue(props) {
};
const New_civilite = [
{ "id": "mme", "label": "Mme", "value": "mme" },
{ "id": "m", "label": "M", "value": "m" },
{ "id": "neutre", "label": "Neutre", "value": "neutre" },
]
const [selected_class_id, setselected_class_id] = useState("");
const [selected_class_internal_url, setselected_class_internal_url] = useState("");
const [selected_class_price, setselected_class_price] = useState("");
const [selected_session_id, setselected_session_id] = useState("");
const [selected_session_code, setselected_session_code] = useState("");
const [inscrit_civilite, setinscrit_civilite] = useState("");
const [inscrit_nom, setinscrit_nom] = useState("");
const [inscrit_prenom, setinscrit_prenom] = useState("");
const [inscrit_telephone, setinscrit_telephone] = useState("");
@ -523,8 +543,221 @@ export default function Module_Atelier_Catalogue(props) {
}
const [myclassimage, setmyclassimage] = useState();
const [isclassimage, setisclassimage] = useState("False");
const [userimgclassprofil, setuserimgclassprofil] = useState("");
const [class_img_stored_in_bdd, setclass_img_stored_in_bdd] = useState("");
function getClassImage_no_token() {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/getRecodedClassImage_no_token/";
var form = new FormData();
form.append("type", "partner");
form.append("related_collection", "myclass");
form.append("related_collection_recid", props.formation._id);
form.append("class_external_code", props.formation.external_code);
axios.post(myurl, form).then(res => {
// console.log(" getClassImage_no_token : In test res.data.status = ", res.data.status);
if (String(res.data.status) === "true") {
//console.log(" getClassImage_no_token: res.data.message.img = ", res.data.message);
if (res.data.message.img.length > 0) {
setisclassimage("True");
}
else {
setisclassimage("False");
}
setisclassimage(res.data.message.img);
var ch_img = "data:image/png;base64," + res.data.message.img;
setclass_img_stored_in_bdd(ch_img);
// console.log(" getClassImage_no_token: setclass_img_stored_in_bdd = ", setclass_img_stored_in_bdd);
}
else {
// console.log(" In Erreur res.data.status = " + res.data.status);
//console.log(" In Erreur res.data.message = " + res.data.message);
setisclassimage("False");
setuserimgclassprofil();
setclass_img_stored_in_bdd();
}
}).catch((error) => {
console.warn('getClassImage ee: Not good man :( getClassImage = ');
setisclassimage("False");
setuserimgclassprofil("");
setclass_img_stored_in_bdd("");
})
}
const [RecordData_api, setRecordData_api] = useState("");
const [RecordData_status, setRecordData_status] = useState("");
const [RecordData_message, setRecordData_message] = useState("");
function RecordData() {
const formData = new FormData();
const url = process.env.REACT_APP_API_URL + "myclass/api/AddStagiairetoClass_from_marketplace/";
var nom = inscrit_nom;
if (nom.trim().length <= 0) {
setdisplay_alert_mysy("1");
setalert_message("Le nom est obligatoire");
setalert_type("error")
return;
}
var civilite = inscrit_civilite
if (String(civilite).trim().length <= 0) {
civilite = "Neutre"
}
var prenom = inscrit_prenom;
if (String(prenom).trim().length <= 0) {
setdisplay_alert_mysy("1");
setalert_message("Le prenom est obligatoire");
setalert_type("error")
return;
}
var telephone = inscrit_telephone;
if (String(telephone).trim().length < 10) {
setdisplay_alert_mysy("1");
setalert_message("Le numero de telephone doit comporter 10 chiffres");
setalert_type("error")
return;
}
var email = inscrit_email;
var re2 = /\S+@\S+\.\S+/;
if (re2.test(email) === false) {
setdisplay_alert_mysy("1");
setalert_message("L'adresse email est incorrect");
setalert_type("error")
return;
}
var session = selected_session_id;
if (String(nom).trim().length <= 0) {
setdisplay_alert_mysy("1");
setalert_message("Le nom est obligatoire");
setalert_type("error")
return;
}
// var class_internal_url = document.getElementsByName("adr_country")[0].value;
formData.append('civilite', civilite);
formData.append('nom', nom);
formData.append('prenom', prenom);
formData.append('telephone', telephone);
formData.append('email', email);
formData.append('session_id', session);
formData.append('class_internal_url', selected_class_internal_url);
formData.append('price', props.trainig_price);
if (props.mytrainingdirectinscription !== "1") {
/* Ceci est une preinscription faite par un end user, depuis le font, donc on force le 'status' à 0 (0 = préinscription)*/
formData.append('status', '0');
}
else if (props.mytrainingdirectinscription === "1") {
/* Ceci est une inscription direct faite par un end user, depuis le font, donc on force le 'status' à 1 (1 = Inscription OK)*/
formData.append('status', '1');
}
fetch(
url,
{
method: 'POST',
body: formData,
}
)
.then((response) => response.json())
.then((result) => {
//console.log('Success:', result['message'], "result['status'] = ", result['status']);
setRecordData_api(result['status']);
setRecordData_status(result['status']);
setRecordData_message(result['message']);
window.scrollTo({
top: 0,
behavior: "smooth",
});
if (String(result['status']) === "true") {
init_inscrit_info();
setdisplay_alert_mysy("1");
setalert_message("Votre demande d'inscription a bien été prise en compte. Vous allez recevoir une email de confirmation dans votre boite email. Merci.");
setalert_type("success");
Dialog_add_inscription_handleClose_buton();
} else {
setdisplay_alert_mysy("1");
setalert_message(result['message']);
setalert_type("error")
}
})
.catch((error) => {
console.error('Error:', error);
setRecordData_api("false");
setRecordData_status("false");
setRecordData_message();
});
};
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
const [alert_message, setalert_message] = useState("");
const [alert_type, setalert_type] = useState("");
function clear_alert_message() {
setalert_message("");
}
function clear_alert_type() {
setalert_type("");
}
function clear_display_alert_mysy() {
setdisplay_alert_mysy("");
}
return (
<div className="module_atelier_catalogue" >
{/*** Affichage des messages d'alerte*/}
{display_alert_mysy && String(display_alert_mysy) === "1" &&
<Module_Alert_Confirmation alert_message={alert_message}
alert_type={alert_type}
clear_alert_message={clear_alert_message}
clear_alert_type={clear_alert_type}
clear_display_alert_mysy={clear_display_alert_mysy}
/>
}
{/*** FIN Affichage des messages d'alerte*/}
{/*** Dialog pour reinscrire un apprenant à une session */}
<Dialog
@ -539,7 +772,7 @@ export default function Module_Atelier_Catalogue(props) {
style: {
overflowY: 'unset',
position: 'absolute',
top: '10rem',
top: '20rem',
margin: "2px",
},
}}
@ -556,16 +789,127 @@ export default function Module_Atelier_Catalogue(props) {
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" > Inscription Atelier : {selected_session_code} - {selected_session_id} </DialogTitle>
<DialogContent className="DialogContent_width">
<div className="session_caract"> <b> Civilité </b><br />
<Autocomplete
disablePortal
name="event_dialog_civilite"
id="event_dialog_civilite"
fullWidth
options={New_civilite}
onChange={(event, value) => {
if (value && value.value) {
setinscrit_civilite(value.value);
} else {
setinscrit_civilite("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
sx={{
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
<div className="div_row" > &nbsp;
</div>
<div style={{ width: "100%", float: 'left' }}>
<div className="session_caract_Dialog" style={{ width: "50%", float: 'left' }}> <b> Nom </b> <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="field_inscrit_nom"
id="field_inscrit_nom"
fullWidth
onChange={(e) => {
setinscrit_nom(e.target.value);
}
}
/>
</div>
<div className="session_caract_Dialog" style={{ width: "50%", float: 'left' }}> <b> Prénom </b> <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="field_inscrit_prenom"
id="field_inscrit_prenom"
fullWidth
onChange={(e) => {
setinscrit_prenom(e.target.value);
}
}
/>
</div>
</div>
<div style={{ width: "100%", float: 'left' }}>
<div className="session_caract_Dialog" style={{ width: "50%", float: 'left' }}> <b> Téléphone </b> <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="field_inscrit_phone"
id="field_inscrit_phone"
fullWidth
onChange={(e) => {
setinscrit_telephone(e.target.value);
}
}
/>
</div>
<div className="session_caract_Dialog" style={{ width: "50%", float: 'left' }}> <b> Email </b> <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="field_inscrit_email"
id="field_inscrit_email"
fullWidth
onChange={(e) => {
setinscrit_email(e.target.value);
}
}
/>
</div>
</div>
</DialogContent>
<DialogActions>
@ -581,7 +925,7 @@ export default function Module_Atelier_Catalogue(props) {
<div className="div_row">
<div className="div_row_gauche">
<Button onClick={"Add_Inscription_List_Apprenant"} className="bton_enreg_dialog"> Inscrire</Button>
<Button onClick={RecordData} className="bton_enreg_dialog"> Inscrire</Button>
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_add_inscription_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>

View File

@ -183,7 +183,7 @@ function Module_Connexion_Ent_Student_V2() {
// si c'est une connexion user qui est active
if (typeof (stored_user) != "undefined" && String(stored_user) !== String('')) {
//alert(" c'est une connexion USERR qui est active");
Logout_User();
logout_user_confirmation();
}

View File

@ -2,7 +2,7 @@ import React, { useRef, useState, useMemo, useEffect } from "react";
import { useForm } from "react-hook-form";
import axios from "axios";
import Formation_Partner_Catalog from "./Formation_Partner_Catalog";
import { FaSearch, FaRegArrowAltCircleDown, FaRegArrowAltCircleUp } from 'react-icons/fa';
import { FaSearch, FaRegArrowAltCircleDown, FaRegArrowAltCircleUp } from 'react-icons/fa';
import { IoAppsSharp, IoListSharp } from "react-icons/io5";
import Formation_Grid_2Col from "./Formation_Grid_2Col";
@ -1473,11 +1473,11 @@ const Mon_Catalogue_Public = (props) => {
}
// alert("myurl = " + myurl);
// alert("myurl = " + myurl);
axios.post(myurl, form).then(res => {
if (String(res.data.status) != String("false")) {
//console.log(" In test res.data.status = " + res.data.status);
// console.log(" In DisplayXfirstClas res.data.message = " + res.data.message);
//console.log(" In DisplayXfirstClas res.data.message = " + res.data.message);
setmyApiResponse("True");
setResult(res.data.message)

View File

@ -140,130 +140,258 @@ function UpdateUserInfo(props) {
setp_detail_age(mylocaltraining.age);
}
//console.log(" ### current_apprenant_data = ", current_apprenant_data)
console.log(" ### current_apprenant_data = ", current_apprenant_data)
if (current_apprenant_data.length > 0) {
setp_detail_civilite("neutre");
if (current_apprenant_data.civilite) {
setp_detail_civilite(current_apprenant_data.civilite);
}
setp_detail_nom("");
if (current_apprenant_data.nom) {
setp_detail_nom(current_apprenant_data.nom);
}
setp_detail_nom_fille("");
if (current_apprenant_data.nom_fille) {
setp_detail_nom_fille(current_apprenant_data.nom_fille);
}
setp_detail_cvec("");
if (current_apprenant_data.num_cvec) {
setp_detail_cvec(current_apprenant_data.num_cvec);
}
setp_detail_handicap_detail(false);
if (current_apprenant_data.is_handicap && current_apprenant_data.is_handicap === "1") {
setp_detail_handicap_detail(true);
}
setp_detail_prenom("");
if (current_apprenant_data.prenom) {
setp_detail_prenom(current_apprenant_data.prenom);
}
setp_detail_mail("");
if (current_apprenant_data.email) {
setp_detail_mail(current_apprenant_data.email);
}
setp_detail_naissance("01/01/1900");
if (current_apprenant_data.date_naissance) {
setp_detail_naissance(current_apprenant_data.date_naissance);
}
setp_detail_tel("");
if (current_apprenant_data.telephone) {
setp_detail_tel(current_apprenant_data.telephone);
}
setp_detail_adresse("");
if (current_apprenant_data.adresse) {
setp_detail_adresse(current_apprenant_data.adresse);
}
setp_detail_is_rgpd(false);
if (current_apprenant_data.is_rgpd && current_apprenant_data.is_rgpd === "1") {
setp_detail_is_rgpd(true);
}
setp_detail_is_droit_image(false);
if (current_apprenant_data.is_droit_image && current_apprenant_data.is_droit_image === "1") {
setp_detail_is_droit_image(true);
}
setp_detail_is_handicap(false);
if (current_apprenant_data.is_handicap && current_apprenant_data.is_handicap === "1") {
setp_detail_is_handicap(true);
}
setp_detail_situation_famille("");
if (current_apprenant_data.situation_famille) {
setp_detail_situation_famille(current_apprenant_data.situation_famille);
}
setp_detail_code_postal("");
if (current_apprenant_data.code_postal) {
setp_detail_code_postal(current_apprenant_data.code_postal);
}
setp_detail_ville("");
if (current_apprenant_data.ville) {
setp_detail_ville(current_apprenant_data.ville);
}
setp_detail_pays("");
if (current_apprenant_data.pays) {
setp_detail_pays(current_apprenant_data.pays);
}
setp_detail_matricule("");
if (current_apprenant_data.matricule) {
setp_detail_matricule(current_apprenant_data.matricule);
}
setp_detail_ine("");
if (current_apprenant_data.ine) {
setp_detail_ine(current_apprenant_data.ine);
}
setp_detail_num_secu("");
if (current_apprenant_data.num_secu) {
setp_detail_num_secu(current_apprenant_data.num_secu);
}
setp_detail_twitter("");
if (current_apprenant_data.link_twitter) {
setp_detail_twitter(current_apprenant_data.link_twitter);
}
setp_detail_facebook("");
if (current_apprenant_data.link_facebook) {
setp_detail_facebook(current_apprenant_data.link_facebook);
}
setp_detail_linkedin("");
if (current_apprenant_data.link_linkedin) {
setp_detail_linkedin(current_apprenant_data.link_linkedin);
}
setp_detail_civilite("neutre");
if (current_apprenant_data.civilite) {
setp_detail_civilite(current_apprenant_data.civilite);
}
setp_detail_nom("");
if (current_apprenant_data.nom) {
setp_detail_nom(current_apprenant_data.nom);
else {
setp_detail_civilite("neutre");
if (mylocaltraining.civilite) {
setp_detail_civilite(mylocaltraining.civilite);
}
setp_detail_nom("");
if (mylocaltraining.nom) {
setp_detail_nom(mylocaltraining.nom);
}
setp_detail_nom_fille("");
if (mylocaltraining.nom_fille) {
setp_detail_nom_fille(mylocaltraining.nom_fille);
}
setp_detail_cvec("");
if (mylocaltraining.num_cvec) {
setp_detail_cvec(mylocaltraining.num_cvec);
}
setp_detail_handicap_detail(false);
if (mylocaltraining.is_handicap && mylocaltraining.is_handicap === "1") {
setp_detail_handicap_detail(true);
}
setp_detail_prenom("");
if (mylocaltraining.prenom) {
setp_detail_prenom(mylocaltraining.prenom);
}
setp_detail_mail("");
if (mylocaltraining.email) {
setp_detail_mail(mylocaltraining.email);
}
setp_detail_naissance("01/01/1900");
if (mylocaltraining.date_naissance) {
setp_detail_naissance(mylocaltraining.date_naissance);
}
setp_detail_tel("");
if (mylocaltraining.telephone) {
setp_detail_tel(mylocaltraining.telephone);
}
setp_detail_adresse("");
if (mylocaltraining.adresse) {
setp_detail_adresse(mylocaltraining.adresse);
}
setp_detail_is_rgpd(false);
if (mylocaltraining.is_rgpd && mylocaltraining.is_rgpd === "1") {
setp_detail_is_rgpd(true);
}
setp_detail_is_droit_image(false);
if (mylocaltraining.is_droit_image && mylocaltraining.is_droit_image === "1") {
setp_detail_is_droit_image(true);
}
setp_detail_is_handicap(false);
if (mylocaltraining.is_handicap && mylocaltraining.is_handicap === "1") {
setp_detail_is_handicap(true);
}
setp_detail_situation_famille("");
if (mylocaltraining.situation_famille) {
setp_detail_situation_famille(mylocaltraining.situation_famille);
}
setp_detail_code_postal("");
if (mylocaltraining.code_postal) {
setp_detail_code_postal(mylocaltraining.code_postal);
}
setp_detail_ville("");
if (mylocaltraining.ville) {
setp_detail_ville(mylocaltraining.ville);
}
setp_detail_pays("");
if (mylocaltraining.pays) {
setp_detail_pays(mylocaltraining.pays);
}
setp_detail_matricule("");
if (mylocaltraining.matricule) {
setp_detail_matricule(mylocaltraining.matricule);
}
setp_detail_ine("");
if (mylocaltraining.ine) {
setp_detail_ine(mylocaltraining.ine);
}
setp_detail_num_secu("");
if (mylocaltraining.num_secu) {
setp_detail_num_secu(mylocaltraining.num_secu);
}
setp_detail_twitter("");
if (mylocaltraining.link_twitter) {
setp_detail_twitter(mylocaltraining.link_twitter);
}
setp_detail_facebook("");
if (mylocaltraining.link_facebook) {
setp_detail_facebook(mylocaltraining.link_facebook);
}
setp_detail_linkedin("");
if (mylocaltraining.link_linkedin) {
setp_detail_linkedin(mylocaltraining.link_linkedin);
}
}
setp_detail_nom_fille("");
if (current_apprenant_data.nom_fille) {
setp_detail_nom_fille(current_apprenant_data.nom_fille);
}
setp_detail_cvec("");
if (current_apprenant_data.num_cvec) {
setp_detail_cvec(current_apprenant_data.num_cvec);
}
setp_detail_handicap_detail(false);
if (current_apprenant_data.is_handicap && current_apprenant_data.is_handicap === "1") {
setp_detail_handicap_detail(true);
}
setp_detail_prenom("");
if (current_apprenant_data.prenom) {
setp_detail_prenom(current_apprenant_data.prenom);
}
setp_detail_mail("");
if (current_apprenant_data.email) {
setp_detail_mail(current_apprenant_data.email);
}
setp_detail_naissance("");
if (current_apprenant_data.date_naissance) {
setp_detail_naissance(current_apprenant_data.date_naissance);
}
setp_detail_tel("");
if (current_apprenant_data.telephone) {
setp_detail_tel(current_apprenant_data.telephone);
}
setp_detail_adresse("");
if (current_apprenant_data.adresse) {
setp_detail_adresse(current_apprenant_data.adresse);
}
setp_detail_is_rgpd(false);
if (current_apprenant_data.is_rgpd && current_apprenant_data.is_rgpd === "1") {
setp_detail_is_rgpd(true);
}
setp_detail_is_droit_image(false);
if (current_apprenant_data.is_droit_image && current_apprenant_data.is_droit_image === "1") {
setp_detail_is_droit_image(true);
}
setp_detail_is_handicap(false);
if (current_apprenant_data.is_handicap && current_apprenant_data.is_handicap === "1") {
setp_detail_is_handicap(true);
}
setp_detail_situation_famille("");
if (current_apprenant_data.situation_famille) {
setp_detail_situation_famille(current_apprenant_data.situation_famille);
}
setp_detail_code_postal("");
if (current_apprenant_data.code_postal) {
setp_detail_code_postal(current_apprenant_data.code_postal);
}
setp_detail_ville("");
if (current_apprenant_data.ville) {
setp_detail_ville(current_apprenant_data.ville);
}
setp_detail_pays("");
if (current_apprenant_data.pays) {
setp_detail_pays(current_apprenant_data.pays);
}
setp_detail_matricule("");
if (current_apprenant_data.matricule) {
setp_detail_matricule(current_apprenant_data.matricule);
}
setp_detail_ine("");
if (current_apprenant_data.ine) {
setp_detail_ine(current_apprenant_data.ine);
}
setp_detail_num_secu("");
if (current_apprenant_data.num_secu) {
setp_detail_num_secu(current_apprenant_data.num_secu);
}
setp_detail_twitter("");
if (current_apprenant_data.link_twitter) {
setp_detail_twitter(current_apprenant_data.link_twitter);
}
setp_detail_facebook("");
if (current_apprenant_data.link_facebook) {
setp_detail_facebook(current_apprenant_data.link_facebook);
}
setp_detail_linkedin("");
if (current_apprenant_data.link_linkedin) {
setp_detail_linkedin(current_apprenant_data.link_linkedin);
}
desablefield1();
}

View File

@ -10,7 +10,7 @@ import 'react-slideshow-image/dist/styles.css'
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import slideimg1 from "../../mysy_img/education.jpg";
import slideimg4 from "../../mysy_img/mysy_img.png";
import slideimg4 from "../../mysy_img/mysy_img.png";
import img_met_program from "../../mysy_img/met_programmation.jpg";
@ -414,7 +414,7 @@ const New_C_Detail_Formation_2025 = (props) => {
function Display(e) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_class/";
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_class_without_marketplace_check/";
var form = new FormData();
form.append("internal_url", classId);

View File

@ -0,0 +1,29 @@
import React, { useState, useEffect } from "react";
import New_C_Footer_2025_V2 from "../components/footer_automatic_files/Layout";
import New_C_Header_2025_V2 from "../components/header_automatic_files/Header";
import New_C_Inscription_Detail_Formation_Automatic_Files from "../components/detail_formation_automatic_files/new_inscription_detail_formation_2025"
import New_Navigation_2025 from "../components/New_Navigation_2025";
const new_p_inscription_detail_formation_2025 = () => {
return (
<div>
<New_Navigation_2025 />
<New_C_Header_2025_V2 />
<New_C_Inscription_Detail_Formation_Automatic_Files />
<New_C_Footer_2025_V2 />
</div>
)
}
export default new_p_inscription_detail_formation_2025;