06/06/2025 - 20h

branche_01062025
Cherif 2025-06-06 20:44:20 +02:00
parent ab3e1329ac
commit 4083518ab3
17 changed files with 2751 additions and 910 deletions

File diff suppressed because it is too large Load Diff

View File

@ -3012,7 +3012,7 @@ const DisplayPartnerStagiaires = (props) => {
//setmyApimyApiMessage("")
})
}
const [New_Getall_Class_List_Evalution_result, setNew_Getall_Class_List_Evalution_result] = useState([]);

View File

@ -1286,7 +1286,6 @@ const DistplayPartnerTraningsPage = (props) => {
]
const [working_cellValues, setworking_cellValues] = useState(false);
const [dialogOpen_supp, setdialogOpen_supp] = useState(false);

View File

@ -173,8 +173,8 @@ const Employes = (props) => {
const columns = [
{ field: '_id', headerName: '_id', hide: true, Width: 0 },
{ field: 'id', headerName: 'id', hide: true, Width: 0 },
{ field: '_id', headerName: '_id', hide: true, Width: 0, disableExport: true, },
{ field: 'id', headerName: 'id', hide: true, Width: 0, disableExport: true, },
{ field: 'date_naissance', headerName: 'date_naissance', hide: true, Width: 0 },
{
field: 'civilite', headerName: 'Civilité', minWidth: 100, flex: 1, maxWidth: 100, hide: false,

View File

@ -210,23 +210,7 @@ const Ent_Intranet = (props) => {
}
}
/*
if (document.querySelector('input[name="TrainingSupport"]:checked')) {
crit_TrainingSupport = document.querySelector('input[name="TrainingSupport"]:checked').value;
if (crit_TrainingSupport.length > 0) {
filtre1 = result.filter((maformation) => JSON.parse(maformation).support === crit_TrainingSupport);
setv11(filtre1);
}
else if (crit_TrainingSupport.length <= 0 || String(crit_TrainingSupport) === String("NA")) {
filtre1 = result;
setv11(filtre1);
}
}
*/
var crit_TrainingCertif = "";

View File

@ -0,0 +1,480 @@
import React, { useState, useEffect } from "react";
import { useHistory } from "react-router-dom";
import { useCookies } from "react-cookie";
import { confirmAlert } from 'react-confirm-alert';
import img_met_program from "../mysy_img/met_programmation.jpg";
import img_met_graphisme from "../mysy_img/metier_graphisme.jpg";
import img_met_autre from "../mysy_img/met_autre.jpg";
import img_met_digital from "../mysy_img/met_digital.jpg";
import img_met_management from "../mysy_img/met_management.jpg";
import img_met_dev_perso from "../mysy_img/metier_dev_perso.jpg";
import img_met_rh from "../mysy_img/met_rh.jpg";
import img_met_bureautic from "../mysy_img/met_burautic.jpg";
import img_met_vente from "../mysy_img/met_vente.jpg";
import axios from "axios";
//import { Rating } from 'react-simple-star-rating'
import Rating from '@mui/material/Rating';
import parse from 'html-react-parser'
const Ent_Student_Affichage_Ftion_Grid = (props) => {
const [userconnected, setuserconnected] = useState("0");
const [partnerconnected, setpartnerconnected] = useState("0");
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
const [cookie_part, setCookie_part, removeCookie_part] = useCookies(['tokenmysypart']);
const history = useHistory();
const [myfilter, setmyfilter] = useState(props.formation.price);
const [profileimg, setprofileimg] = useState(props.formation.price);
// Gestion des Cookies
const stored_partner = cookie_part.tokenmysypart;
const stored_user = cookie.tokenmysych;
function test(val) {
if (userconnected === "0" && partnerconnected === "0") {
confirmAlert({
title: 'Activer votre session ?',
message: 'Merci de vous connecter pour acceder au detail de cette formation',
buttons: [
{
label: 'Oui',
onClick: () => { history.push("/mysy-training-login/training/" + props.formation.internal_url) }
},
{
label: 'Non',
onClick: () => { return }
}
],
closeOnEscape: false,
closeOnClickOutside: false,
keyCodeForClose: [8, 32],
willUnmount: () => { },
afterClose: () => { },
onClickOutside: () => { },
onKeypress: () => { },
onKeypressEscape: () => { },
});
} else {
window.open(
"/Display-Detail-formation/" + props.formation.internal_url,
'_blank'
);
}
}
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("");
})
}
/* Cette variable accompagne la gestion des images par defaut.
idée : si la valeur de "DetailTraining.metier" != "management, digital, office, rh, vente, dev_perso"
alors l'utilisateur à créer une formation avec un metier qui n'est pas geré, donc on met une image par defaut
*/
const [ismetiermanaged, setismetiermanaged] = useState();
const liste_metier = ["management", "digital", "office", "rh", "vente", "dev_perso"];
useEffect(() => {
setmyfilter(props.myfil);
// console.log(" #### useEffect props.formation = ", props.formation);
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
setuserconnected("0");
} else {
setuserconnected("1");
}
if (typeof (stored_partner) === "undefined" || String(stored_partner) === '') {
setpartnerconnected("0");
} else {
setpartnerconnected("1");
}
getClassImage_no_token();
GetCurrentClass_trainingsession();
GetCurrentClass_trainingsession_cities();
// Verifier si le metier est geré
if (props.formation.metier) {
if (!liste_metier.includes(props.formation.metier)) {
setismetiermanaged("0"); // j'ai une valeur dans metier, mais qui n'est pas geré
}
}
else {
setismetiermanaged("0");
}
if (props.formation.img_url && String(props.formation.img_url).length > 0) {
setismetiermanaged("1");
}
}, []);
const [GetCurrentClass_api, setGetCurrentClass_api] = useState();
const [GetCurrentClass_message, setGetCurrentClass_message] = useState();
const [GetCurrentClass_result, setGetCurrentClass_result] = useState();
function GetCurrentClass_trainingsession(event) {
var form = new FormData();
form.append("class_internal_url", props.formation.internal_url);
form.append("token", stored_partner);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetActiveSessionFormation_List/";
axios.post(myurl, form).then(res => {
if (res.data.status != "false") {
//console.log(" In GetCurrentClass_trainingsession res.data.status = " + res.data.status);
//console.log(" In GetCurrentClass_trainingsession res.data.message r_class = " + res.data.message);
setGetCurrentClass_api("true");
setGetCurrentClass_result(res.data.message);
}
else {
setGetCurrentClass_api("false");
setGetCurrentClass_message(res.data.message);
}
}).catch((error) => {
console.warn('Not good man :( GetCurrentClass_trainingsession = ', error);
setGetCurrentClass_api("false");
//setmyApimyApiMessage("")
})
}
const [GetCurrentClass_trainingsession_cities_api, setGetCurrentClass_trainingsession_cities_api] = useState();
const [GetCurrentClass_trainingsession_cities_message, setGetCurrentClass_trainingsession_cities_message] = useState();
const [GetCurrentClass_trainingsession_cities_result, setGetCurrentClass_trainingsession_cities_result] = useState([]);
function GetCurrentClass_trainingsession_cities(event) {
var form = new FormData();
form.append("class_internal_url", props.formation.internal_url);
form.append("token", stored_partner);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetActiveSession_Cities_And_Distance_Formation_List/";
axios.post(myurl, form).then(res => {
if (res.data.status != "false") {
//console.log(" In GetCurrentClass_trainingsession_cities res.data.status = " + res.data.status);
//console.log(" In GetCurrentClass_trainingsession_cities res.data.message r_class = " + res.data.message);
setGetCurrentClass_trainingsession_cities_api("true");
setGetCurrentClass_trainingsession_cities_result(res.data.message);
}
else {
setGetCurrentClass_trainingsession_cities_api("false");
setGetCurrentClass_trainingsession_cities_message(res.data.message);
}
}).catch((error) => {
console.warn('Not good man :( GetCurrentClass_trainingsession_cities = ', error);
setGetCurrentClass_trainingsession_cities_api("false");
//setmyApimyApiMessage("")
})
}
const styles = {
list: {
display: 'flex',
flexDirection: 'column',
gap: '32px',
width: '100%',
},
row: {
display: 'flex',
flexDirection: 'row',
gap: '24px',
width: '100%',
},
card: {
flexGrow: 1,
backgroundColor: '#fff',
borderRadius: '8px',
overflow: 'hidden',
display: 'flex',
flexDirection: 'column',
},
image: {
maxWidth: '100%',
height: '200px',
overflow: 'hidden',
marginTop: '-2rem'
},
content: {
padding: '16px',
},
header: {
display: 'flex',
justifyContent: 'space-between',
alignItems: 'center',
},
eligibility: {
backgroundColor: '#e2e9fb',
padding: '4px 8px',
borderRadius: '4px',
fontSize: '12px',
fontWeight: 'bold',
},
title: {
fontSize: '14px',
fontWeight: 'bold',
margin: '8px 0',
},
price: {
fontSize: '14px',
fontWeight: 'bold',
color: '#000',
},
description: {
fontSize: '12px',
color: '#666',
margin: '8px 0',
height: "40px",
overflow: "hidden",
},
details: {
display: 'flex',
justifyContent: 'space-between',
marginTop: '16px',
},
button: {
backgroundColor: '#007bff',
color: '#fff',
padding: '8px 16px',
border: 'none',
borderRadius: '4px',
cursor: 'pointer',
},
buttonOutline: {
backgroundColor: '#fff',
color: '#007bff',
padding: '8px 16px',
border: '1px solid #007bff',
borderRadius: '4px',
cursor: 'pointer',
},
};
return (
<div className="new_formation_2025">
<div style={styles.card}>
<div style={{ width: '100%', textAlign: 'right', zIndex: '9999' }}>
<div style={{ width: '50%', float: 'left' }}> &nbsp; </div>
{props.formation.cpf && String(props.formation.cpf) === String("1") && <div className="case_cpf" >
<span className="tag_cpf_txt_ok_cpf" >{"OUI CPF"}</span>
</div>
}
{props.formation.cpf && String(props.formation.cpf) !== String("1") && <div className="case_cpf">
<span className="tag_cpf_txt_no_ok_cpf">{"NON CPF"}</span>
</div>
}
{!props.formation.cpf && String(props.formation.cpf) !== String("1") && <div className="case_cpf">
<span className="tag_cpf_txt_no_ok_cpf">{"NON CPF"}</span>
</div>}
</div>
{class_img_stored_in_bdd && String(class_img_stored_in_bdd).length > 50 &&
<img src={class_img_stored_in_bdd} alt="Formation" style={styles.image} />
}
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50) &&
(!props.formation.img_url || String(props.formation.img_url).length <= 10) &&
String(ismetiermanaged) !== "0" && String(ismetiermanaged) !== "1" &&
<div >
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("it") &&
String(isclassimage) === "False" && <img src={img_met_program} alt="informatique" style={styles.image} />}
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("graphisme") &&
String(isclassimage) === "False" && <img src={img_met_graphisme} alt="graphisme" style={styles.image} />}
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("management") &&
String(isclassimage) === "False" && <img src={img_met_management} alt="management" style={styles.image} />}
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("digital") &&
String(isclassimage) === "False" && <img src={img_met_digital} alt="digital" style={styles.image} />}
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("office") &&
String(isclassimage) === "False" && <img src={img_met_bureautic} alt="office" style={styles.image} />}
{!props.formation.img_url || String(props.formation.img_url).length <= 0 &&
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("rh") &&
String(isclassimage) === "False" && <img src={img_met_rh} alt="ressources humaines" style={styles.image} />}
{!props.formation.img_url || String(props.formation.img_url).length <= 0 &&
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("vente") &&
String(isclassimage) === "False" && <img src={img_met_vente} alt="vente" style={styles.image} />}
{!props.formation.img_url || String(props.formation.img_url).length <= 0 &&
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("dev_perso") &&
String(isclassimage) === "False" && <img src={img_met_dev_perso} alt="developpement personnel" style={styles.image} />}
{String(isclassimage) === "True" && <img src={userimgclassprofil} alt="developpement personnel" style={styles.image} />}
</div>
}
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50) && String(ismetiermanaged) === "0" && String(userimgclassprofil).length > 100 &&
<div>
<img src={userimgclassprofil} alt="autre" style={styles.image} />
{/*props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par :<br />
{String(props.formation.institut_formation)} </div>*/}
</div>}
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50) && String(ismetiermanaged) === "0" && String(userimgclassprofil).length <= 100 &&
<div>
<img src={img_met_autre} alt="autre" style={styles.image} />
{/*props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par :<br />
{String(props.formation.institut_formation)} </div>*/}
</div>}
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50) && String(ismetiermanaged) === "1" &&
<div>
<img src={props.formation.img_url} alt="autre" style={styles.image} />
{/*props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par : <br />
{String(props.formation.institut_formation)} </div>*/}
</div>}
<div className="block_main_contente">
<div className="block_top_content">
<div className="div_row_gauche" >
{props.formation.note && String(props.formation.note).length === 1 &&
parseInt(String(props.formation.note)) <= 5 &&
<Rating name="half-rating-read" defaultValue={props.formation.note} precision={0.5} readOnly style={{ fontSize: '15px' }} />
}
</div>
<h3 className="formation_titre">{String(parse(String(props.formation.title).replace(/(<([^>]+)>)/ig, ''))).substring(0, 50)}</h3>
{props.formation.discounted_price && props.formation.business_prices && <p className="formation_prix">{props.formation.discounted_price} HT&nbsp; </p>}
{props.formation.business_prices && props.formation.business_prices.length <= 0
&& <p className="formation_prix">{props.formation.price} HT&nbsp; </p>}
{props.formation.business_prices && props.formation.business_prices.length > 0 &&
<p style={{ width: '100%', float: 'left' }}>
<p className="formation_prix" style={{ width: '100%', float: 'left' }}>{props.formation.business_prices[0].discounted_price} HT&nbsp;
<font className='training_price_barre' style={{ fontSize:'14px' }}> {props.formation.price} HT &nbsp;</font>
<font className='discount_block' style={{ fontSize:'14px' }}> ({props.formation.business_prices[0].discount} %) </font></p>
</p>}
<p className="formation_description"> {String(parse(String(props.formation.description).replace(/(<([^>]+)>)/ig, ''))).substring(0, 80)}...</p>
</div>
</div>
<div className="block_cats">
<button className="block_cats_bton_detail">
<nav className="block_cats_bton_detail_text"
onClick={(e) => {
e.preventDefault();
if (props.formation.url && props.formation.url.length > 5) {
window.open(
props.formation.url,
'_blank'
);
} else {
window.open(
"/detaile-formation/" + props.formation.internal_url,
'_blank'
);
}
}}> Voir les détails </nav></button>
</div>
</div>
</div>
)
}
export default Ent_Student_Affichage_Ftion_Grid;

View File

@ -1902,27 +1902,11 @@ const Intranet_Mes_Stagiaires = (props) => {
const [attendee_lms_login, setattendee_lms_login] = useState();
function submenu_sessions() {
setsubmenu("sessions");
setdisplay_detail_stagiaire();
setdisplay_detail_absence();
setdisplay_notes("");
setdisplay_detail_ue();
setdisplay_detail_historique();
desableSessionFields();
}
function submenu_absence() {
setsubmenu("absence");
setdisplay_detail_stagiaire();
setdisplay_detail_historique();
setdisplay_detail_ue();
setdisplay_notes("");
setdisplay_detail_absence("1");
desableSessionFields();
}
function submenu_historique() {
submenu_color_management("historique");
setsubmenu("historique");
setdisplay_detail_stagiaire();
setdisplay_detail_absence();
@ -1930,10 +1914,13 @@ const Intranet_Mes_Stagiaires = (props) => {
setdisplay_notes("");
setdisplay_detail_historique("1");
desableSessionFields();
}
function submenu_unite_enseignement() {
submenu_color_management("ue");
setsubmenu("ue");
if (selected_id) {
@ -1947,10 +1934,11 @@ const Intranet_Mes_Stagiaires = (props) => {
setdisplay_notes("");
setdisplay_detail_ue("1");
desableSessionFields();
}
function submenu_notes() {
submenu_color_management("notes");
setsubmenu("notes");
if (selected_id) {
@ -1964,6 +1952,8 @@ const Intranet_Mes_Stagiaires = (props) => {
setdisplay_detail_ue("");
setdisplay_notes("1");
desableSessionFields();
}
@ -2230,62 +2220,43 @@ const Intranet_Mes_Stagiaires = (props) => {
}
async function submenu_detail_stagaire() {
function submenu_detail_stagaire() {
submenu_color_management("detail_session");
setsubmenu("detail_session");
await sleep(5);
setdisplay_detail_stagiaire("1");
setaddOneParticipant();
}
if (document.getElementById("detail_session")) {
document.getElementById("detail_session").style.backgroundColor = "#107758";
document.getElementById("detail_session").style.color = "white";
}
if (document.getElementById("piece_jointe")) {
document.getElementById("piece_jointe").style.backgroundColor = "#d8edfc";
document.getElementById("piece_jointe").style.color = "black";
}
/* if (document.getElementById("preinscrit")) {
document.getElementById("preinscrit").style.backgroundColor = "#d8edfc";
document.getElementById("preinscrit").style.color = "black";
}
*/
function submenu_piece_jointe() {
submenu_color_management("piece_jointe");
setsubmenu("piece_jointe");
setdisplay_detail_stagiaire("");
setaddOneParticipant();
}
async function submenu_piece_jointe() {
setsubmenu("piece_jointe");
function submenu_color_management(current_menu) {
const list_sous_menu = ['detail_session', 'piece_jointe', 'ue', 'notes', 'historique']
await sleep(5);
for (let i = 0; i < list_sous_menu.length; i++) {
setdisplay_detail_stagiaire("");
setaddOneParticipant();
if (document.getElementById("piece_jointe")) {
document.getElementById("piece_jointe").style.backgroundColor = "#107758";
document.getElementById("piece_jointe").style.color = "white";
var sous_menu = list_sous_menu[i];
if (String(sous_menu) !== current_menu) {
if (document.getElementById(sous_menu)) {
document.getElementById(sous_menu).style.backgroundColor = "#d8edfc";
document.getElementById(sous_menu).style.color = "black";
document.getElementById(sous_menu).style.fontWeight = "normal";
}
}
}
if (document.getElementById("detail_session")) {
document.getElementById("detail_session").style.backgroundColor = "#d8edfc";
document.getElementById("detail_session").style.color = "black";
if (document.getElementById(current_menu)) {
document.getElementById(current_menu).style.backgroundColor = "#107758";
document.getElementById(current_menu).style.color = "white";
document.getElementById(current_menu).style.fontWeight = "bold";
}
/* if (document.getElementById("preinscrit")) {
document.getElementById("preinscrit").style.backgroundColor = "#d8edfc";
document.getElementById("preinscrit").style.color = "black";
}
*/
}
@ -2299,7 +2270,7 @@ const Intranet_Mes_Stagiaires = (props) => {
const stored_cookie = getCookie('tokenmysych');
form.append("token", stored_cookie);
form.append("archive", "0");
form.append("archive", "0");
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetAllValideSessionPartner_List/";
setLoading(true);
@ -2514,11 +2485,11 @@ const Intranet_Mes_Stagiaires = (props) => {
var local_class_id = JSON.parse(x).class_id;
var local_class_eu_id = JSON.parse(x).class_eu_id;
var local_class_eu_code = JSON.parse(x).class_eu_code;
var local_type_eval__id = JSON.parse(x).type_eval__id;
var local_type_eval_id = JSON.parse(x).type_eval_id;
var local_type_eval_code = JSON.parse(x).type_eval_code;
var local_type_eval_nom = JSON.parse(x).type_eval_nom;
tab_tmp.push(local_type_eval__id);
tab_tmp.push(local_type_eval_id);
@ -2530,7 +2501,7 @@ const Intranet_Mes_Stagiaires = (props) => {
"class_id": local_class_id,
"class_eu_id": local_class_eu_id,
"class_eu_code": local_class_eu_code,
"type_eval__id": local_type_eval__id,
"type_eval_id": local_type_eval_id,
"type_eval_code": local_type_eval_code,
"type_eval_nom": local_type_eval_nom,
};
@ -2547,7 +2518,7 @@ const Intranet_Mes_Stagiaires = (props) => {
"class_id": "",
"class_eu_id": "",
"class_eu_code": "",
"type_eval__id": "",
"type_eval_id": "",
"type_eval_code": "",
"type_eval_nom": "",
};
@ -8386,20 +8357,15 @@ const Intranet_Mes_Stagiaires = (props) => {
</div>
<div className="div_row" ref={myRef_details} id="myRef_details"> &nbsp;</div>
{((selected_id && String(selected_id).length > 2) || (String(addOneParticipant) === "1")) && <div className="div_row">
<Button variant="outlined" ref={myRef} onClick={submenu_detail_stagaire} className="detail_class_submenu" id='detail_session' name='detail_session'>Détail Participant</Button>
<Button variant="outlined" onClick={submenu_piece_jointe} className="detail_class_submenu" id='piece_jointe' name='piece_jointe'>Pièces Jointes </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> */}
{String(props.formation_initiale) === "1" && String(addOneParticipant) !== "1" && <Button variant="outlined" onClick={submenu_unite_enseignement} className="detail_class_submenu" id='ue' name='ue'>Unit. Enseignement </Button>}
{String(props.formation_initiale) === "1" && String(addOneParticipant) !== "1" && <Button variant="outlined" onClick={submenu_notes} className="detail_class_submenu" id='notes' name='ue'>Notes </Button>}
{String(addOneParticipant) !== "1" && String(history_securite_read) === "1" && <Button variant="outlined" onClick={submenu_historique} className="detail_class_submenu" id='historique' name='historique'>Historique </Button>}
</div>}
@ -10800,7 +10766,7 @@ const Intranet_Mes_Stagiaires = (props) => {
//console.log(" lecture de New_Get_Inscrit_List_Evaluation_Par_UE_result[i] = ", New_Get_Inscrit_List_Evaluation_Par_UE_result[i])
if (data.class_ue_id && String(data.class_ue_id) !== "" && data.class_ue_id === New_Get_Inscrit_List_Evaluation_Par_UE_result[i].class_eu_id &&
data.type_evaluation_id === New_Get_Inscrit_List_Evaluation_Par_UE_result[i].type_eval__id
data.type_evaluation_id === New_Get_Inscrit_List_Evaluation_Par_UE_result[i].type_eval_id
) {
//console.log(" GAGNEEEE ");
return data;

View File

@ -44,7 +44,7 @@ import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import { IoAddCircleOutline } from "react-icons/io5";
import AttachFileIcon from '@mui/icons-material/AttachFile';
import { FcAcceptDatabase, FcPlanner } from "react-icons/fc";
import { FcAcceptDatabase, FcPlanner } from "react-icons/fc";
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
import Module_Historique_Action from "./Module_Historique_Action";
@ -3426,7 +3426,7 @@ const Jury = (props) => {
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("archive", "0");
form.append("archive", "0");
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetAllValideSessionPartner_List/";
@ -4459,7 +4459,7 @@ const Jury = (props) => {
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> Délibération du Jury</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> Délibération du Jury</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
<DialogContentText>
{Dialog_1_message}
@ -4602,7 +4602,7 @@ const Jury = (props) => {
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> Gestion membres jury</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> Gestion membres jury</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
<DialogContentText>
{Dialog_1_message}
@ -4920,7 +4920,7 @@ const Jury = (props) => {
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> Gestion soutenance</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> Gestion soutenance</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
<DialogContentText>
{Dialog_1_message}
@ -5787,7 +5787,7 @@ const Jury = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_1_message}
@ -6349,7 +6349,7 @@ const Jury = (props) => {
},
"& .MuiDataGrid-columnHeaders": {
backgroundColor: "#c8cfd5",

View File

@ -14,7 +14,7 @@ import Visibility from '@mui/icons-material/Visibility';
import VisibilityOff from '@mui/icons-material/VisibilityOff';
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
function Module_Connexion_Ent_Student() {
const [isconnected, setisconnected] = useState("");
@ -102,6 +102,7 @@ function Module_Connexion_Ent_Student() {
formData.append("email", mymail);
formData.append("pwd", mypwd);
formData.append("type", "student");
var re = /\S+@\S+\.\S+/;
if (re.test(mymail) === false) {
@ -115,8 +116,6 @@ function Module_Connexion_Ent_Student() {
}
// 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");

View File

@ -102,6 +102,7 @@ function Module_Connexion_Intranet_Client() {
formData.append("email", mymail);
formData.append("pwd", mypwd);
formData.append("type", "user");
var re = /\S+@\S+\.\S+/;
if (re.test(mymail) === false) {
@ -209,8 +210,6 @@ function Module_Connexion_Intranet_Client() {
if (document.getElementsByName("user_account") && document.getElementsByName("user_account")[0])
document.getElementsByName("user_account")[0].style.backgroundColor = "#ffffff";
}
function menu_user_account() {

File diff suppressed because it is too large Load Diff

View File

@ -432,10 +432,10 @@ const New_C_Formation_2025 = (props) => {
</div>
<h3 className="formation_titre">{String(parse(String(props.formation.title).replace(/(<([^>]+)>)/ig, ''))).substring(0, 50)}</h3>
{props.formation.discounted_price && props.formation.business_prices && <p className="formation_prix">{props.formation.discounted_price} HT&nbsp; 111</p>}
{props.formation.discounted_price && props.formation.business_prices && <p className="formation_prix">{props.formation.discounted_price} HT&nbsp; </p>}
{props.formation.business_prices.length <= 0
&& <p className="formation_prix">{props.formation.price} HT&nbsp;22 </p>}
{props.formation.business_prices && props.formation.business_prices.length <= 0
&& <p className="formation_prix">{props.formation.price} HT&nbsp; </p>}
{props.formation.business_prices && props.formation.business_prices.length > 0 &&
<p style={{ width: '100%', float: 'left' }}>

View File

@ -59,7 +59,7 @@ function Student_Account() {
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
//alert(" début puch");
history.push("/Connexion");
history.push("/ent_student");
}
@ -83,7 +83,7 @@ function Student_Account() {
if (location && location.state && location.state.menu) {
displayProfil_Objectif();
// displayProfil_Objectif();
}
if (location && location.state && location.state.firstconnexion) {
@ -139,7 +139,7 @@ function Student_Account() {
/* si c'est une connexion partner qui est active */
if (typeof (stored_user) != "undefined") {
removeCookie('tokenmysych', { path: '/' });
history.push("/Connexion");
history.push("/ent_student");
}
}
@ -160,46 +160,13 @@ function Student_Account() {
});
}
function funct_menu_mes_formations() {
setmenu("mes_formations");
}
const displayHistory = () => {
setmenu("recherche");
};
const displayProfil_Objectif = () => {
setmenu("profil_objectif");
};
const displayProfil_Facture = () => {
setmenu("mes_factures");
};
const displayProfil_Devis = () => {
setmenu("mes_devis");
};
const displayProfil_Convention = () => {
setmenu("mes_conventions");
};
const displayProfil_Convocation = () => {
setmenu("mes_convocations");
};
const displayProfil_Attestation = () => {
setmenu("mes_attestations");
};
const displayProfil_Stagiaires = () => {
setmenu("mes_stagiaires");
};
const displayProfil_Tout_Documents = () => {
setmenu("tout_documents");
};
function funct_menu_mon_planning() {
setmenu("planning");
}
const displayProfil_Modules_Mes_Documents = () => {
setmenu("modules_mes_documents");
@ -225,17 +192,19 @@ function Student_Account() {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_user_account/";
axios.post(myurl, form).then(res => {
// console.log(" In GetUserNameFromToken res.data.status = " + res.data.status);
// console.log(" In GetUserNameFromToken res.data.message = " + res.data.message);
// console.log(" In GetUserNameFromToken res.data.status = " + res.data.status);
// console.log(" In GetUserNameFromToken res.data.message = " + res.data.message);
if (String(res.data.status) === String("true")) {
setusername(JSON.parse(res.data.message).email);
if (JSON.parse(res.data.message).migrated &&
String(JSON.parse(res.data.message).migrated) === String("1")) {
setmigratedaccount(String(JSON.parse(res.data.message).migrated));
}
if (JSON.parse(res.data.message).type && String(JSON.parse(res.data.message).type) === "student") {
if (JSON.parse(res.data.message).apprenant_id) {
setapprenant_id(JSON.parse(res.data.message).apprenant_id);
}
}
setconnected_user_data(JSON.parse(res.data.message));
}
@ -322,6 +291,8 @@ function Student_Account() {
const [isSelected, setIsSelected] = useState(false);
const [isnewimage, setisnewimage] = useState();
const [apprenant_id, setapprenant_id] = useState("");
const changeHandler = (event) => {
let file_size = event.target.files[0].size;
@ -363,8 +334,14 @@ function Student_Account() {
});
};
return (
<div className="account">
<div className="account" style={{ background: '#f4f4fb' }}>
<Helmet>
<title>Création compte MySy Trainig Technology</title>
<meta name="description" content="Éditeur Français de logiciels pour organisme de formation. Avec solutions de E-Learning, gestion administrative et gestion relation client nous accompagnons les organismes de formation à réaliser laudit QUALIOPI en toute sérénité. Nous sommes les moins cher du marché. Nous vous accompagnons automatiser vos process : inscription, évaluation, émargement (qr-code), Check-list QUALIOPI, Personnalisation et édition documents, Gestion formateurs, Catalogue formations personnalisé" />
@ -405,7 +382,6 @@ function Student_Account() {
{/** Menu pour un utilisateur NON type 'user' exemple un apprenant */}
{connected_user_data && connected_user_data.type &&
String(connected_user_data.type) === "student" &&
@ -414,9 +390,9 @@ function Student_Account() {
<div className="sousmenu" onClick={displayPersoInfo}> INFORMATIONS PERSONNELLES</div>
<hr className="my_hr" />
<div className="sousmenu" onClick={displayProfil_Objectif}> MES FORMATIONS</div>
<div className="sousmenu" onClick={funct_menu_mes_formations}> MES FORMATIONS</div>
<hr className="my_hr" />
<div className="sousmenu" onClick={displayProfil_Objectif}> MON PLANNING</div>
<div className="sousmenu" onClick={funct_menu_mon_planning}> MON PLANNING</div>
<hr className="my_hr" />
<div className="sousmenu" onClick={"displayProfil_Objectif"}> MES NOTES</div>
<hr className="my_hr" />
@ -453,7 +429,7 @@ function Student_Account() {
</div>}
{connected_user_data && connected_user_data.type && <h1 style={{ textAlign: 'center' }}> ESPACE ENT INTRANET - {connected_user_data.type} </h1>}
{connected_user_data && connected_user_data.type && <h1 style={{ textAlign: 'center' }}> ESPACE ENT INTRANET - {connected_user_data.type} - apprenant_id = {apprenant_id} </h1>}
{String(menu) === String("affichage") && <UpdateUserInfo />}
@ -464,17 +440,11 @@ function Student_Account() {
{String(menu) === String("profil_objectif") && <Profil_Objectif />}
{String(menu) === String("mes_factures") && connected_user_data && connected_user_data.partner_owner_recid &&
connected_user_data.partner_client_id &&
<Intranet_Factures_Client partner_client_id={connected_user_data.partner_client_id}
partner_owner_recid={connected_user_data.partner_owner_recid}
my_title={"MES DEVIS"}
type_document={"devis"}
type_user_connected={"user_account"}
filter_all_document={"0"}
{String(menu) === String("mes_formations") &&
<Module_Ent_Mes_Formations apprenant_id={apprenant_id}
/>}
{String(menu) === String("modules_mes_documents") && connected_user_data && connected_user_data.partner_owner_recid &&

View File

@ -60,7 +60,7 @@ import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
const New_C_Detail_Formation_2025 = (props) => {
const { classId, action } = useParams();
const [result, setResult] = useState("");
@ -2106,7 +2106,7 @@ const New_C_Detail_Formation_2025 = (props) => {
</div>
}
<br />
<div className="block_info_page_pave_title_desc">

View File

@ -2481,7 +2481,7 @@
top: 350px;
text-align: left;
}
.block_info_page_pave_title_desc {
/* Title + Description */

View File

@ -3734,8 +3734,6 @@ const New_C_Marketplace_2025 = () => {
pageSize={PageSize}
onPageChange={page => setCurrentPage2(page)}
/>
</div>}
@ -3758,7 +3756,6 @@ const New_C_Marketplace_2025 = () => {
{result && myApiResponse == "True" && fin == 0 && newresult &&
newresult.slice(0, PageSize).map((formation) => (
<div className="block_formation" >
<New_C_Formation_2025 formation={JSON.parse(formation)} key={JSON.parse(formation).title} />
</div>

View File

@ -496,7 +496,7 @@
}
.bton_enreg {
font-family: DM sans;
font-family: DM sans;
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
@ -1095,7 +1095,7 @@
}
.bton_enreg {
font-family: DM sans;
font-family: DM sans;
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
@ -1537,7 +1537,7 @@
}
.bton_enreg {
font-family: DM sans;
font-family: DM sans;
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
@ -2128,7 +2128,7 @@
}
.bton_enreg {
font-family: DM sans;
font-family: DM sans;
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
@ -2397,6 +2397,258 @@
}
.block_central {
width: 100%;
// max-width: 1400px;
margin-left: auto;
margin-right: auto;
}
.block_central_gauche {
width: 94%;
float: left;
padding-left: 3%;
padding-right: 3%;
background: #f4f4fb;
margin-bottom: 2rem;
padding-bottom: 2rem;
}
.block_info_page_pave_title_desc {
/* Title + Description */
text-align: justify;
/* Auto layout */
display: flex;
flex-direction: column;
align-items: flex-start;
padding: 5px;
gap: 5px;
width: 100%;
/* White */
background: #FFFFFF;
border-radius: 8px;
/* Inside auto layout */
flex: none;
order: 0;
flex-grow: 0;
font-size: 16px;
padding: 24px;
min-height: 10rem;
}
.block_info_page_pave_title_desc_long_text {
/* Title + Description */
text-align: justify;
/* Auto layout */
display: flex;
flex-direction: column;
align-items: flex-start;
padding: 5px;
gap: 5px;
width: 100%;
/* White */
background: #FFFFFF;
border-radius: 8px;
/* Inside auto layout */
flex: none;
order: 0;
flex-grow: 0;
padding: 24px;
min-height: 10rem;
}
.block_info_page_pave_title_desc_title {
height: 24px;
font-family: 'Albert Sans';
font-style: normal;
font-weight: 700;
font-size: 20px;
line-height: 120%;
/* identical to box height, or 24px */
letter-spacing: 0.02em;
text-transform: uppercase;
font-feature-settings: 'liga' off;
/* Foundation /Blue/Normal */
color: #3E6EE3;
/* Inside auto layout */
flex: none;
order: 0;
align-self: stretch;
flex-grow: 0;
}
.block_info_page_pave_title_desc_desc {
width: 100%;
font-family: Roboto, Verdana, Georgia, Arial, 'Times New Roman';
font-style: normal;
font-weight: 500;
font-size: 16px;
line-height: 24px;
/* or 150% */
font-feature-settings: 'liga' off;
/* Bold Grey */
color: #4B4B4B;
/* Inside auto layout */
flex: none;
order: 1;
align-self: stretch;
flex-grow: 0;
}
.programme_block {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 160%;
/* or 26px */
font-feature-settings: 'liga' off;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
/* Inside auto layout */
flex: none;
order: 1;
align-self: stretch;
flex-grow: 0;
}
.description_block {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 160%;
/* or 26px */
font-feature-settings: 'liga' off;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
/* Inside auto layout */
flex: none;
order: 1;
align-self: stretch;
flex-grow: 0;
}
.objectif_block {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 160%;
/* or 26px */
font-feature-settings: 'liga' off;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
/* Inside auto layout */
flex: none;
order: 1;
align-self: stretch;
flex-grow: 0;
}
.block_formation {
flex: 1 1 300px;
display: flex;
flex-direction: column;
gap: 40px;
background-color: rgba(253, 246, 236, 0.1);
border-radius: 12px;
border: 1px solid #ecae49;
max-width: 400px;
box-sizing: border-box;
flex-grow: 1;
background: #FFF;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
overflow: hidden;
display: flex;
flex-direction: column;
border: 1px solid #E2E9FB
}
.block_display_flex_formation {
display: flex;
flex-direction: row;
gap: 24px;
width: 100%;
flex-wrap: wrap;
justify-content: center;
}
.mode_affichage {
width: 8%;
float: right;
cursor: pointer;
}
}
// end media
.mode_affichage_selected {
text-underline-offset: 8px;
text-decoration: green wavy underline;
text-decoration-color: #F8C471;
text-decoration-style: solid;
text-decoration-thickness: 5px;
background: #F4F6F6;
box-shadow: 1px 1px 5px 1px rgba(0, 0, 0, 0.1);
border-radius: 5px;
}
.session_caract_Dialog_comment_2_lines {
@ -2410,7 +2662,7 @@
}
// end media
.datagridclass {
font-size: small !important;