04/04/26 - 14h

branche_01062025
Cherif 2026-04-05 10:45:10 +02:00
parent 186de9d9e4
commit ade87579c6
44 changed files with 2074 additions and 19973 deletions

1
.env
View File

@ -11,6 +11,7 @@ REACT_APP_FRONT_URL_CANONICAL=localhost:3009/
REACT_APP_PART_PUB_CATALOG_DOMAIN=localhost:3009/
# EN DEMO
#REACT_APP_PART_PUB_CATALOG_DOMAIN=demomysy-hosting.online/

12
package-lock.json generated
View File

@ -32548,9 +32548,9 @@
}
},
"node_modules/react-calendar-timeline": {
"version": "0.30.0-beta.4",
"resolved": "https://registry.npmjs.org/react-calendar-timeline/-/react-calendar-timeline-0.30.0-beta.4.tgz",
"integrity": "sha512-N58m+0jAt0pACe7cJghceNLjBzqoDmJ4QvJrPsDWRBdIrf6VE4u59r2U9J2DclZdWY404O+9rcTBAuGy3Q4U0A==",
"version": "0.30.0-beta.2",
"resolved": "https://registry.npmjs.org/react-calendar-timeline/-/react-calendar-timeline-0.30.0-beta.2.tgz",
"integrity": "sha512-WD+c7crXxOxbwOxg1+YOcjwNhkvjhuiCvzCKl+1Xd4HDG9EY8IqxUwUSd0veHlVhvgAM+PW/z4s0BJA3UJ/lQw==",
"license": "MIT",
"dependencies": {
"classnames": "^2.5.1",
@ -32559,10 +32559,10 @@
"memoize-one": "^6.0.0"
},
"peerDependencies": {
"dayjs": "^1.11.10",
"dayjs": ">=1.10.0",
"interactjs": "1.10.27",
"react": "^18 || ^19.0.0-rc-66855b96-20241106",
"react-dom": "^18 || ^19.0.0-rc-66855b96-20241106"
"react": ">=18",
"react-dom": ">=18"
}
},
"node_modules/react-canvas-js": {

View File

@ -7409,7 +7409,7 @@ const AddClassManual = (props) => {
<div className="div_row" style={{ "border": "None", "marginLeft": '10px', marginBottom: '10px' }} ref={myRef}>
<Button variant="outlined" onClick={submenu_detail_formation} className="detail_class_submenu" id='detail_formation' name='detail_formation'>Détail Formation</Button>
<Button variant="outlined" onClick={submenu_unite_enseignement} className="detail_class_submenu" id='unite_enseignement' name='unite_enseignement'>Unite Enseign. </Button>
<Button variant="outlined" onClick={submenu_admission} className="detail_class_submenu" id='admission' name='admission'>Admission </Button>
{/*<Button variant="outlined" onClick={submenu_admission} className="detail_class_submenu" id='admission' name='admission'>Admission </Button>*/}
<Button variant="outlined" onClick={submenu_note_evaluation} className="detail_class_submenu" id='note_evaluation' name='note_evaluation'>Notes & Evaluation </Button>

View File

@ -6729,10 +6729,7 @@ const Apprenant = (props) => {
const New_Option_Filter = [
{ "id": "email", "label": "Email ", "value": "email" },
{ "id": "nom", "label": "Nom ", "value": "nom" },
{ "id": "prenom", "label": "Prénom ", "value": "prenom" },
{ "id": "matricule", "label": "Matricule ", "value": "matricule" },
{ "id": "nom", "label": "Nom / Prénom / Email / Matricule / Tél ", "value": "nom" },
{ "id": "archive", "label": "Archive", "value": "archive" },
{ "id": "", "label": "", "value": "" },
{ "id": "1", "label": "", "value": "1" }, // Cette ligne pour couvrir l'ajout d'une ligne de filter. C'est fait expres.
@ -6960,7 +6957,7 @@ const Apprenant = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7078,7 +7075,7 @@ const Apprenant = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7237,7 +7234,7 @@ const Apprenant = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7672,7 +7669,7 @@ const Apprenant = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7833,7 +7830,7 @@ const Apprenant = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7944,22 +7941,7 @@ const Apprenant = (props) => {
/>
}
/>}
{/* <TextField
name="filtre1"
label="Choisir un champ"
select
sx={{ m: 1, width: '100%' }}
value={p_filtre1}
onChange={(e) => {
setp_filtre1(e.target.value)
}}
>
<MenuItem value="email" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Email &nbsp;&nbsp;</MenuItem>
<MenuItem value="nom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Nom &nbsp;</MenuItem>
<MenuItem value="prenom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Prénom &nbsp;</MenuItem>
</TextField>*/}
</div>
@ -8068,23 +8050,7 @@ const Apprenant = (props) => {
/>}
{/*<TextField
name="filtre2"
label="Choisir un champ"
select
sx={{ m: 1, width: '100%' }}
options={filters}
value={p_filtre2}
onChange={(e) => {
setp_filtre2(e.target.value)
}}
>
<MenuItem value="email" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Email &nbsp;&nbsp;</MenuItem>
<MenuItem value="nom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Nom &nbsp;</MenuItem>
<MenuItem value="prenom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Prénom &nbsp;</MenuItem>
</TextField>*/}
</div>
<div className="div_row_droite texte_area_filter" >

View File

@ -6221,7 +6221,7 @@ const Apprenant_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -6339,7 +6339,7 @@ const Apprenant_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -6498,7 +6498,7 @@ const Apprenant_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -6933,7 +6933,7 @@ const Apprenant_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7096,7 +7096,7 @@ const Apprenant_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -1065,7 +1065,7 @@ const Article_Help = (props) => {
}}> En savoir plus &rsaquo;
</div>
{props.connected_user_article_avis_droit_modif === "1" && <div style={{ "width": "100%", "float": "left" }} onClick={(e) => {
e.preventDefault();

View File

@ -7292,7 +7292,7 @@ const Autre_RH = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7509,7 +7509,7 @@ const Autre_RH = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7608,7 +7608,7 @@ const Autre_RH = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7747,7 +7747,7 @@ const Autre_RH = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7910,7 +7910,7 @@ const Autre_RH = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7962,7 +7962,7 @@ const Autre_RH = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8015,7 +8015,7 @@ const Autre_RH = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8163,7 +8163,7 @@ const Autre_RH = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -1266,7 +1266,7 @@ const Config_Champs_Personnalise = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -2283,7 +2283,7 @@ const Config_Documents = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -6217,7 +6217,7 @@ const Conseil_Classe = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -6785,7 +6785,7 @@ const Conseil_Classe = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -6883,7 +6883,7 @@ const Conseil_Classe = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7026,7 +7026,7 @@ const Conseil_Classe = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7347,7 +7347,7 @@ const Conseil_Classe = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7904,7 +7904,7 @@ const Conseil_Classe = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -1690,7 +1690,7 @@ const CRM_Opportunite = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -503,7 +503,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
@ -582,7 +582,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -925,7 +925,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -992,7 +992,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -1065,7 +1065,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -1497,7 +1497,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -1571,7 +1571,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -2133,8 +2133,10 @@ const DisplayPartnerPromotion = (props) => {
const columns_list_unite_enseignement = [
{ field: 'id', headerName: 'id', hide: true },
{ field: '_id', headerName: '_id', hide: true },
{ field: 'formateur_id', headerName: 'formateur_id', hide: true },
{ field: 'code', headerName: 'Code', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'titre', headerName: 'Titre', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'formateur_prenom_nom', headerName: 'Formateur', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{
field: "delete", headerName: 'Supprimer',
@ -3309,7 +3311,7 @@ const DisplayPartnerPromotion = (props) => {
setkanban_colonne_width(tmp_val);
}
// console.log(" 222 local_opport_chanel = ", local_opport_chanel);
// console.log(" 222 local_opport_chanel = ", local_opport_chanel);
} else {
setNew_Getall_Parter_Session_Steps_result([]);
@ -3415,6 +3417,7 @@ const DisplayPartnerPromotion = (props) => {
"id": local_session_step_name,
"label": local_session_step_name[0].toUpperCase() + local_session_step_name.slice(1),
"value": local_session_step_name,
"session_step_color": local_session_step_code_color,
};
local_new_option.push(node_for_status);
@ -6908,6 +6911,7 @@ const DisplayPartnerPromotion = (props) => {
if (document.getElementById("one_nb_participant") && document.getElementById("one_nb_participant").value != "") {
nb_participant = document.getElementById("one_nb_participant").value;
}
if (nb_participant.trim() == "") {
const response = window.confirm("Le nombre de participants est vide. Par défaut, 1. Continuer ?");
if (!response) {
@ -7840,6 +7844,7 @@ const DisplayPartnerPromotion = (props) => {
form.append("token", stored_cookie);
form.append("archive", "0");
form.append("is_ftion_initiale", "1");
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_partner_class/";
@ -15559,6 +15564,8 @@ const DisplayPartnerPromotion = (props) => {
var local_id = JSON.parse(x)._id;
var local_code = JSON.parse(x).code;
var local_titre = JSON.parse(x).titre;
var local_formateur_id = JSON.parse(x).formateur_id;
var local_formateur_prenom_nom = JSON.parse(x).formateur_prenom_nom;
@ -15569,6 +15576,9 @@ const DisplayPartnerPromotion = (props) => {
"label": local_code,
"code": local_code,
"titre": local_titre,
"formateur_id": local_formateur_id,
"formateur_prenom_nom": local_formateur_prenom_nom,
};
new_data2.push(node);
@ -15581,6 +15591,8 @@ const DisplayPartnerPromotion = (props) => {
"label": "",
"code": "",
"titre": "",
"formateur_id": "",
"formateur_prenom_nom": "",
};
new_data2.push(node);
@ -15740,6 +15752,8 @@ const DisplayPartnerPromotion = (props) => {
const [selected_ue_coefficient, setselected_ue_coefficient] = useState("");
const [selected_ue_seuil_validation, setselected_ue_seuil_validation] = useState("");
const [selected_ue_formateur_id, setselected_ue_formateur_id] = useState("");
const [selected_ue_changed, setselected_ue_changed] = useState("");
const New_Option_Is_Noted = [
@ -15762,6 +15776,8 @@ const DisplayPartnerPromotion = (props) => {
form.append("session_id", selected_session_id);
form.append("ue_id", selected_ue_id);
form.append("formateur_id", selected_ue_formateur_id);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_UE_To_Session/";
@ -15961,7 +15977,33 @@ const DisplayPartnerPromotion = (props) => {
</div>}
{New_Getall_Training_Employee_No_Filter_result && New_Getall_Training_Employee_No_Filter_result.length > 0 && <div className="session_caract_Dialog"> Formateur <br />
<Autocomplete
disablePortal
name="eu_formateur_id"
id="eu_formateur_id"
options={New_Getall_Training_Employee_No_Filter_result}
value={New_Getall_Training_Employee_No_Filter_result.filter((data) => (data)._id === String(selected_ue_formateur_id))[0].label}
fullWidth
onChange={(event, value) => {
setselected_ue_changed("1");
if (value && value._id) {
setselected_ue_formateur_id(value._id);
} else {
setselected_ue_formateur_id("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>}
<div className="session_caract_Dialog" > Crédits
@ -16111,7 +16153,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -16857,7 +16899,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17043,7 +17085,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17168,7 +17210,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17509,7 +17551,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17823,7 +17865,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18027,7 +18069,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18341,7 +18383,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18670,7 +18712,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18959,7 +19001,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19072,7 +19114,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19208,7 +19250,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19366,7 +19408,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19692,7 +19734,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19748,7 +19790,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19961,7 +20003,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20184,7 +20226,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20350,7 +20392,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20419,7 +20461,7 @@ const DisplayPartnerPromotion = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -28571,6 +28613,8 @@ const DisplayPartnerPromotion = (props) => {
_id: JSON.parse(item)._id,
code: JSON.parse(item).code,
titre: JSON.parse(item).titre,
formateur_id: JSON.parse(item).formateur_id,
formateur_prenom_nom: JSON.parse(item).formateur_prenom_nom,
}
))}
@ -28579,10 +28623,13 @@ const DisplayPartnerPromotion = (props) => {
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
setselected_ue_formateur_id(newSelectionModel.row.formateur_id);
setselected_ue_is_noted(New_Getall_Class_List_UE_result.filter((data) => (data)._id === String(newSelectionModel.row._id))[0].is_noted)
setselected_ue_pres_dist_hyp(New_Getall_Class_List_UE_result.filter((data) => (data)._id === String(newSelectionModel.row._id))[0].pres_dist_hyp)
setselected_ue_changed("");
setselected_ue_id(newSelectionModel.row._id);
setDialog_Unite_Enseignement_open(true);
}}

View File

@ -521,7 +521,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
@ -600,7 +600,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -943,7 +943,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -1010,7 +1010,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -1083,7 +1083,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -1515,7 +1515,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -1589,7 +1589,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -16101,7 +16101,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -16847,7 +16847,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17033,7 +17033,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17158,7 +17158,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17499,7 +17499,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17813,7 +17813,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18075,7 +18075,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18389,7 +18389,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18718,7 +18718,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19007,7 +19007,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19120,7 +19120,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19256,7 +19256,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19414,7 +19414,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19740,7 +19740,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19796,7 +19796,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20009,7 +20009,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20232,7 +20232,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20398,7 +20398,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20467,7 +20467,7 @@ const DisplayPartnerPromotion_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -10,6 +10,7 @@ import { useHistory } from "react-router-dom";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { Editor } from '@tinymce/tinymce-react';
import { FcMultipleDevices, FcVideoProjector, FcTodoList } from "react-icons/fc";
import { FcViewDetails, FcDisapprove, FcInfo, FcExpired, FcTimeline } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
@ -573,7 +574,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -651,7 +652,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -1028,7 +1029,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -1098,7 +1099,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -1171,7 +1172,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -1642,7 +1643,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -1716,7 +1717,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -6507,6 +6508,7 @@ const DisplayPartnerSession = (props) => {
setp_session_ondemande();
setp_session_mode_animation("");
setp_session_mode_animation_detail_organisation("");
}
@ -6941,6 +6943,93 @@ const DisplayPartnerSession = (props) => {
}
const [Update_Session_Distanciel_Organisation_Detail_api, setUpdate_Session_Distanciel_Organisation_Detail_api] = useState();
const [Update_Session_Distanciel_Organisation_Detail_message, setUpdate_Session_Distanciel_Organisation_Detail_message] = useState();
const [Update_Session_Distanciel_Organisation_Detail_result, setUpdate_Session_Distanciel_Organisation_Detail_result] = useState();
function Update_Session_Distanciel_Organisation_Detail() {
clean_old_messages();
var form = new FormData();
var nb_participant = "0";
var prix_session;
if (selected_internal_url.trim() == "") {
// alert(" Vous devez choisir une formation ");
setdisplay_alert_mysy("1");
setalert_message("Vous devez choisir une formation");
setalert_type("error");
return;
}
if (selected_code_session.length <= 0) {
// alert(" Vous devez choisir une session");
setdisplay_alert_mysy("1");
setalert_message("Vous devez choisir une session");
setalert_type("error");
return;
}
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("_id", GetCurrentSession_id);
form.append("mode_animation_detail_organisation", p_session_mode_animation_detail_organisation);
setLoading(true);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_SessionFormation_From_Id/";
//console.log(" ### form = ", form);
//return;
axios.post(myurl, form).then(res => {
//console.log(" In Update_Session_Distanciel_Organisation_Detail res.data.status = " + res.data.status);
//console.log(" In Update_Session_Distanciel_Organisation_Detail res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setUpdate_Session_Distanciel_Organisation_Detail_api("true");
setUpdate_Session_Distanciel_Organisation_Detail_result(res.data.message);
GetCurrentSession(selected_session_id, selected_internal_url);
// alert(String(res.data.message));
Dialog_Distanciel_Orga_handleClose_buton();
setdisplay_alert_mysy("1");
setalert_message(String(res.data.message));
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
history.push("/Connexion");
}
else {
setUpdate_Session_Distanciel_Organisation_Detail_api("false");
setUpdate_Session_Distanciel_Organisation_Detail_message(res.data.message);
//alert(String(res.data.message));
setdisplay_alert_mysy("1");
setalert_message(String(res.data.message));
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('Update_Session_Distanciel_Organisation_Detail : Not good man :( mysearchtext = ' + error);
setUpdate_Session_Distanciel_Organisation_Detail_api("false");
alert(" Impossible de mettre à jour la session");
})
}
const [one_CreateSessionFormation_api, setone_CreateSessionFormation_api] = useState();
const [one_CreateSessionFormation_message, setone_CreateSessionFormation_message] = useState();
const [one_CreateSessionFormation_result, setone_CreateSessionFormation_result] = useState();
@ -7279,6 +7368,9 @@ const DisplayPartnerSession = (props) => {
const [p_session_mode_animation, setp_session_mode_animation] = useState("0");
const [p_session_mode_animation_detail_organisation, setp_session_mode_animation_detail_organisation] = useState("");
const [p_session_status, setp_session_status] = useState();
const [p_session_status_label, setp_session_status_label] = useState();
@ -7488,6 +7580,13 @@ const DisplayPartnerSession = (props) => {
setp_session_mode_animation("0");
}
if (mylocaltraining.mode_animation_detail_organisation) {
setp_session_mode_animation_detail_organisation(mylocaltraining.mode_animation_detail_organisation);
} else {
setp_session_mode_animation_detail_organisation("");
}
if (mylocaltraining.presentiel) {
setp_session_presentiel(mylocaltraining.presentiel);
if (String(mylocaltraining.presentiel) === "1")
@ -7919,6 +8018,7 @@ const DisplayPartnerSession = (props) => {
form.append("token", stored_cookie);
form.append("archive", "0");
form.append("is_ftion_initiale", "0");
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_partner_class/";
@ -15936,6 +16036,12 @@ const DisplayPartnerSession = (props) => {
}
];
const [Dialog_Distanciel_Orga_open, setDialog_Distanciel_Orga_open] = React.useState(false);
const Dialog_Distanciel_Orga_handleClose_buton = () => {
setDialog_Distanciel_Orga_open(false);
};
return (
<div className="displaypartnersession">
@ -15955,6 +16061,113 @@ const DisplayPartnerSession = (props) => {
{/*** FIN Affichage des messages d'alerte*/}
{/* Dialog pour gerer les Distanciel_Orga */}
<Dialog
open={Dialog_Distanciel_Orga_open}
// onClose={Dialog_Distanciel_Orga_handleClose}
// className="displaypartnersession"
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '10rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }}
id="draggable-dialog-title"> Modalités d'organisation</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}>
<DialogContentText>
{Dialog_1_message}
</DialogContentText>
<div className="session_caract_Dialog" >
<Tooltip className="tooltip_css" id="tooltip_organisation" style={{ "fontSize": "12px", fontFamily: "DM Sans" }} />
<a data-tooltip-id="tooltip_organisation" data-tooltip-html="Merci de préciser les modalités d'organisation (lien de visioconférence, code d'accès à la salle, etc.). "> Détails organisation &nbsp; <FcInfo />
</a>
<br />
<TextareaAutosize
name="detail_animation_detail_organisation"
id="detail_animation_detail_organisation"
aria-label="minimum height"
minRows={3}
maxRows={5}
disabled={Boolean(parseInt(selected_inscription_invoice_status))}
style={{
border: "1px solid gainsboro", width: '99%', padding: '2px',
maxHeight: '10rem', height: '5rem', minHeight: '5rem', marginBottom: '3rem'
}}
value={p_session_mode_animation_detail_organisation}
onChange={(e) => {
setp_session_mode_animation_detail_organisation(e.target.value);
}}
/>
</div>
</DialogContent>
<DialogActions>
<IconButton
autoFocus
onClick={Dialog_Distanciel_Orga_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
<div className="div_row_gauche">
{selected_inscription_invoice_status !== "1" && <Button
className="bton_enreg_dialog" onClick={(e) => {
Update_Session_Distanciel_Organisation_Detail();
}}
>Mettre à jour </Button>}
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_Distanciel_Orga_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>
</div>
</DialogActions>
</Dialog>
{/* FIN Dialog pour gerer les Distanciel_Orga */}
{/********** Dialog pour recherche Apprenant puis facture */}
<Dialog
@ -16063,7 +16276,7 @@ const DisplayPartnerSession = (props) => {
display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%',
paddingLeft: '10px', flexWrap: 'wrap', background: '#e0e0de'
}}>
-----------------
</div>
</div>
@ -16115,7 +16328,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -16863,7 +17076,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17049,7 +17262,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17174,7 +17387,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17566,7 +17779,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17944,7 +18157,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18143,7 +18356,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18457,7 +18670,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18786,7 +18999,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19075,7 +19288,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19188,7 +19401,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19325,7 +19538,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19483,7 +19696,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19809,7 +20022,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19865,7 +20078,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20078,7 +20291,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20301,7 +20514,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20465,7 +20678,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20534,7 +20747,7 @@ const DisplayPartnerSession = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -22895,6 +23108,7 @@ const DisplayPartnerSession = (props) => {
</a>
</div>
<div className="session_caract"><b> Code Session </b><br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -23631,13 +23845,32 @@ const DisplayPartnerSession = (props) => {
shrink: true,
}}
disabled={!edit_session_form}
className="disabled_style"
className="disabled_style enable_style disabled_style_left_text_with_visualiser_icone"
value={New_Option_pres_dist_hyp.filter((data) => (data).id === String(p_session_mode_animation))[0].label}
/>
<Tooltip className="tooltip_css" id="detail_projecter" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="detail_projecter" data-tooltip-html="Modalités d'organisation">
<div className="disabled_style disabled_style_right_bton_visualiser" onClick={(event) => {
if (selected_internal_url && String(selected_internal_url).length > 2) {
setDialog_Distanciel_Orga_open(true)
}
}
}
>
<div className="disabled_style_with_visualiser_icone" >
<FcTodoList />
</div>
</div>
</a>
</div>}
{!edit_session_form && <div className="session_caract"> Inclus au BPF<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}

View File

@ -534,7 +534,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -612,7 +612,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -989,7 +989,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -1059,7 +1059,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -1132,7 +1132,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -1596,7 +1596,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -1670,7 +1670,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
},
@ -15795,7 +15795,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -16543,7 +16543,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -16729,7 +16729,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -16854,7 +16854,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17246,7 +17246,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17624,7 +17624,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -17882,7 +17882,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18196,7 +18196,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18525,7 +18525,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18814,7 +18814,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -18927,7 +18927,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19064,7 +19064,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19222,7 +19222,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19548,7 +19548,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19604,7 +19604,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -19817,7 +19817,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20040,7 +20040,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20204,7 +20204,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -20273,7 +20273,7 @@ const DisplayPartnerSession_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

File diff suppressed because it is too large Load Diff

View File

@ -440,7 +440,7 @@ const DisplayPartnerStagiaires_ARG = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -8839,7 +8839,7 @@ const DisplayPartnerStagiaires_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
maxWidth: '800px'
},
@ -9103,7 +9103,7 @@ const DisplayPartnerStagiaires_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
maxWidth: '800px'
},
@ -9165,7 +9165,7 @@ const DisplayPartnerStagiaires_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -9385,7 +9385,7 @@ const DisplayPartnerStagiaires_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -9824,7 +9824,7 @@ const DisplayPartnerStagiaires_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -932,7 +932,7 @@ const DistplayPartnerTraningsPage = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
@ -1011,7 +1011,7 @@ const DistplayPartnerTraningsPage = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -1084,7 +1084,7 @@ const DistplayPartnerTraningsPage = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -1240,7 +1240,7 @@ const DistplayPartnerTraningsPage = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -1313,7 +1313,7 @@ const DistplayPartnerTraningsPage = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",

View File

@ -156,7 +156,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
{
field: 'domain_id', headerName: 'Domaine', flex: 1, hide: false, editable: false, renderCell: (cellValues) => {
field: 'domain_id', headerName: 'Domaine', hide: true, editable: false, renderCell: (cellValues) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
{New_Get_List_Domaines_result && New_Get_List_Domaines_result.length > 0 && <nav>
@ -3403,7 +3403,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Pré-requis (max 1000 caractères)
Description (max 1000 caractères)
</div>
<div style={{ width: '100%', paddingRight: "5px", fontFamily: 'DM Sans', fontSize: '14px', paddingLeft: '10px', marginTop: '10px' }}>
@ -4320,7 +4320,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Pré-requis (max 1000 caractères)
Description (max 1000 caractères)
</div>
<div style={{ width: '100%', paddingRight: "5px", fontFamily: 'DM Sans', fontSize: '14px', paddingLeft: '10px', marginTop: '10px' }}>

View File

@ -190,7 +190,7 @@ const Document_Affichage_Grid = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
width: '50rem',
maxWidth:'unset',

View File

@ -190,7 +190,7 @@ const Document_ENT_Affichage_Grid = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
width: '50rem',
maxWidth:'unset',

View File

@ -5623,7 +5623,7 @@ const Employes = (props) => {
if (!p_employe_contrat_cout || String(p_employe_contrat_cout).trim() === "") {
// alert(" Le prix est obigatoire ");
setdisplay_alert_mysy("1");
setalert_message(" Le prix est obigatoire ");
setalert_message(" Le Taux Horaire Brut (HT) est obigatoire ");
setalert_type("error");
return;
}
@ -7712,8 +7712,8 @@ const Employes = (props) => {
position: 'absolute',
top: mouse_y,
margin: "2px",
left:'45%',
backgroundColor:'#ebf1f4',
left: '45%',
backgroundColor: '#ebf1f4',
},
}}
hideBackdrop={true}
@ -7726,7 +7726,7 @@ const Employes = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans', backgroundColor:'orange' }} id="draggable-dialog-title"> Tarifs spécifiques</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans', backgroundColor: 'orange' }} id="draggable-dialog-title"> Tarifs spécifiques</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}>
@ -8259,7 +8259,7 @@ const Employes = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8476,7 +8476,7 @@ const Employes = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8575,7 +8575,7 @@ const Employes = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8716,7 +8716,7 @@ const Employes = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8879,7 +8879,7 @@ const Employes = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8931,7 +8931,7 @@ const Employes = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8984,7 +8984,7 @@ const Employes = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -9132,7 +9132,7 @@ const Employes = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -9399,7 +9399,7 @@ const Employes = (props) => {
<Tooltip className="tooltip_css" id="tooltip_id_prix_spe" />
<a data-tooltip-id="tooltip_id_prix_spe" data-tooltip-html=" Saisir les cout par type : Animation, Préparation, Suivi.... ">
<div style={{ width: '30%', float: 'right', textAlign: 'right', paddingRight: '5px', cursor:'pointer', color:'orange' }} onClick={(e) => {
<div style={{ width: '30%', float: 'right', textAlign: 'right', paddingRight: '5px', cursor: 'pointer', color: 'orange' }} onClick={(e) => {
setDialog_tarif_specific_open(true);
}}>
Coûts spécifiques <FcMoneyTransfer /> <FcInfo /> </div>
@ -10779,7 +10779,7 @@ const Employes = (props) => {
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Accès & Sécurité
Management
</div>
<div style={{
@ -11261,88 +11261,81 @@ const Employes = (props) => {
</div>
&nbsp;
<div class="separator">
<nav className="separator_label">
champs spécifiques </nav>
</div>
{/* -- début champs specifiques **/}
{rows_champs_specifics &&
rows_champs_specifics.length > 0 && <div>
&nbsp;
{rows_champs_specifics && rows_champs_specifics.length > 0 && <div className="div_row" >
<div className="Grid_1_col" >
<div class="separator"> &nbsp;
<nav className="separator_label">
champs spécifiques </nav>
</div>
<div className="Grid_2_col_sub_colone" style={{ minHeight: '10rem', padding: "0px" }}>
<div style={{ width: '100%', float: 'left' }}>
<div style={{ width: '100%', float: 'left' }}>
<div style={{
display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%',
paddingLeft: '10px', flexWrap: 'wrap'
}}>
<div className="Grid_2_col_sub_colone_header">
champs spécifiques
</div>
{rows_champs_specifics &&
rows_champs_specifics.map((champ_spec) => (
<div style={{
display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%',
paddingLeft: '10px', flexWrap: 'wrap'
}}>
<div className="session_caract"> {String(JSON.parse(champ_spec).is_mandatory) === "1" && <font> <b> {JSON.parse(champ_spec).field_label} </b> </font>}
{String(JSON.parse(champ_spec).is_mandatory) !== "1" && <font> {JSON.parse(champ_spec).field_label} </font>} <br />
{String(JSON.parse(champ_spec).field_type) === "float" && <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name={JSON.parse(champ_spec).field_name}
disabled={Boolean(employee_data_edit_mode)}
id={JSON.parse(champ_spec).field_name}
type="number"
inputProps={{ min: "1", max: "999999", step: "1" }}
InputLabelProps={{
shrink: true,
}}
{rows_champs_specifics &&
rows_champs_specifics.map((champ_spec) => (
<div className="session_caract"> {String(JSON.parse(champ_spec).is_mandatory) === "1" && <font> <b> {JSON.parse(champ_spec).field_label} </b> </font>}
{String(JSON.parse(champ_spec).is_mandatory) !== "1" && <font> {JSON.parse(champ_spec).field_label} </font>} <br />
{String(JSON.parse(champ_spec).field_type) === "float" && <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name={JSON.parse(champ_spec).field_name}
disabled={Boolean(employee_data_edit_mode)}
id={JSON.parse(champ_spec).field_name}
type="number"
inputProps={{ min: "1", max: "999999", step: "1" }}
InputLabelProps={{
shrink: true,
}}
className="disabled_style"
onChange={(e) => {
change_champs_spec_handle(e.target.value);
setEmployee_data_changed("1");
}}
//onChange={change_champs_spec_handle}
className="disabled_style"
onChange={(e) => {
change_champs_spec_handle(e.target.value);
setEmployee_data_changed("1");
}}
//onChange={change_champs_spec_handle}
/>}
/>}
{String(JSON.parse(champ_spec).field_type) === "string" && <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name={JSON.parse(champ_spec).field_name}
id={JSON.parse(champ_spec).field_name}
disabled={Boolean(employee_data_edit_mode)}
{String(JSON.parse(champ_spec).field_type) === "string" && <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name={JSON.parse(champ_spec).field_name}
id={JSON.parse(champ_spec).field_name}
disabled={Boolean(employee_data_edit_mode)}
InputLabelProps={{
shrink: true,
}}
InputLabelProps={{
shrink: true,
}}
className="disabled_style"
onChange={(e) => {
change_champs_spec_handle(e.target.value);
setEmployee_data_changed("1");
}}
//onChange={change_champs_spec_handle}
className="disabled_style"
onChange={(e) => {
change_champs_spec_handle(e.target.value);
setEmployee_data_changed("1");
}}
//onChange={change_champs_spec_handle}
/>}
/>}
</div>
))}
{/* -- end champs specifiques **/}
</div>
))}
</div>
</div>
</div>
</div>}
</div>
</div>}
<div className="div_row" style={{ "border": "None" }}>
@ -11397,10 +11390,557 @@ const Employes = (props) => {
<nav style={{
"border": "None", "fontSize": "18px", "fontWeight": "600", fontFamily: "DM Sans",
textAlign: "center", paddingTop: "10px"
}}> Ajouter un Employé </nav>
}}> Nouvel Employé </nav>
&nbsp;
<div class="separator">
<div className="div_row" >
<div className="Grid_2_col" >
<div className="Grid_2_col_sub_colone" style={{ minHeight: '10rem', padding: "0px" }}>
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Infos Générales
</div>
<div style={{
display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%',
paddingLeft: '10px', flexWrap: 'wrap'
}}>
<div className="session_caract"> <b> Civilité </b> <br />
<Autocomplete
disablePortal
name="one_detail_civilite"
id="one_detail_civilite"
className="disabled_style"
options={New_Option_Civilite}
onChange={(event, value) => {
if (value && value.value) {
setp_one_detail_civilite(value.value);
setEmployee_data_changed("1");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>
<div className="session_caract"> <b>Nom </b> <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_nom"
id="one_detail_nom"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_nom}
onChange={(e) => {
setp_one_detail_nom(e.target.value);
setEmployee_data_changed("1");
}
}
/>
</div>
<div className="session_caract"> <b>Prénom </b> <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_prenom"
id="one_detail_prenom"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_prenom}
onChange={(e) => {
setp_one_detail_prenom(e.target.value);
setEmployee_data_changed("1");
}}
/>
</div>
<div className="session_caract"> <b>Email </b> <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_mail"
id="one_detail_mail"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_mail}
onChange={(e) => {
setp_one_detail_mail(e.target.value);
setEmployee_data_changed("1");
}
}
/>
</div>
<div className="session_caract"> <b>Date Naissance </b> <br />
<DatePicker
name="one_detail_naissance"
id="one_detail_naissance"
selected={new Date(moment(p_one_detail_naissance, "DD/MM/YYYY"))}
onChange={(date) => {
setp_one_detail_naissance(format(date, 'd/MM/yyyy'));
setEmployee_data_changed("1");
}
}
showTimeSelect={false}
dateFormat="dd/MM/yyyy"
className="disabled_style enable_style"
locale={'fr'}
/>
</div>
<div className="session_caract"> CRM Email Diffusion<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_list_diffusion_mail"
id="one_detail_list_diffusion_mail"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_list_diffusion_mail}
onChange={(e) => {
setp_one_detail_list_diffusion_mail(e.target.value);
setEmployee_data_changed("1");
}}
/>
</div>
</div>
</div>
</div>
<div className="Grid_2_col_sub_colone" style={{ minHeight: '10rem', padding: "0px" }}>
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Adresse & Contact
</div>
<div style={{
display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%',
paddingLeft: '10px', flexWrap: 'wrap'
}}>
<div className="session_caract"> Téléphone Mobile<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_tel_mobile"
id="one_detail_tel_mobile"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_tel_mobile}
onChange={(e) => {
setp_one_detail_tel_mobile(e.target.value);
setEmployee_data_changed("1");
}
}
/>
</div>
<div className="session_caract"> Téléphone <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_tel"
id="one_detail_tel"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_tel}
onChange={(e) => {
setp_one_detail_tel(e.target.value);
setEmployee_data_changed("1");
}
}
/>
</div>
<div className="session_caract"> Adresse<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_adresse"
id="one_detail_adresse"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_adresse}
onChange={(e) => {
setp_one_detail_adresse(e.target.value);
setEmployee_data_changed("1");
}}
/>
</div>
<div className="session_caract"> Code postal<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_code_postal"
id="one_detail_code_postal"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_code_postal}
onChange={(e) => {
setp_one_detail_code_postal(e.target.value);
setEmployee_data_changed("1");
}}
/>
</div>
<div className="session_caract"> Ville<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_ville"
id="one_detail_ville"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_ville}
onChange={(e) => {
setp_one_detail_ville(e.target.value);
setEmployee_data_changed("1");
}}
/>
</div>
<div className="session_caract"> Pays<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_pays"
id="one_detail_pays"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_pays}
onChange={(e) => {
setp_one_detail_pays(e.target.value);
setEmployee_data_changed("1");
}}
/>
</div>
<div className="session_caract"> Linkedin<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_linkedin"
id="one_detail_linkedin"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_linkedIn}
onChange={(e) => {
setp_one_detail_linkedIn(e.target.value);
setEmployee_data_changed("1");
}}
/>
</div>
<div className="session_caract"> Facebook<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_facebook"
id="one_detail_facebook"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_facebook}
onChange={(e) => {
setp_one_detail_facebook(e.target.value);
setEmployee_data_changed("1");
}}
/>
</div>
<div className="session_caract"> X (Twitter)<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_twitter"
id="one_detail_twitter"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_twitter}
onChange={(e) => {
setp_one_detail_twitter(e.target.value);
setEmployee_data_changed("1");
}}
/>
</div>
</div>
</div>
</div>
</div>
</div>
<div className="div_row" >
<div className="Grid_2_col" >
<div className="Grid_2_col_sub_colone" style={{ minHeight: '10rem', padding: "0px" }}>
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Management
</div>
<div style={{
display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%',
paddingLeft: '10px', flexWrap: 'wrap'
}}>
<div className="session_caract"> Profil <br />
<Autocomplete
disablePortal
name="one_detail_profil"
id="one_detail_profil"
className="disabled_style"
//className="disabled_style enable_style"
options={New_Get_List_RH_Profils_result}
onChange={(event, value) => {
setp_one_detail_profil(value.nom);
setEmployee_data_changed("1");
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>
<div className="session_caract"> Fonction <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_fonction"
id="one_detail_fonction"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_fonction}
onChange={(e) => {
setp_one_detail_fonction(e.target.value);
setEmployee_data_changed("1");
}}
/>
</div>
<div className="session_caract"> Manager<br />
<Autocomplete
disablePortal
name="one_detail_ismanager"
id="one_detail_ismanager"
className="disabled_style"
options={New_Option_Oui_Non}
onChange={(event, value) => {
if (value && value.value) {
setp_one_detail_ismanager(value.value);
setEmployee_data_changed("1");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>
<div className="session_caract"> Responsable (n+1) <br />
<Autocomplete
disablePortal
name="one_detail_resp_hierarchie_id"
id="one_detail_resp_hierarchie_id"
className="disabled_style"
options={New_Get_List_Managers_result}
onChange={(event, value) => {
if (value && value._id) {
setp_one_detail_resp_hierarchie_id(value._id);
setEmployee_data_changed("1");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>
</div>
</div>
</div>
<div className="Grid_2_col_sub_colone" style={{ minHeight: '10rem', padding: "0px" }}>
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Champs specifiques
</div>
<div style={{
display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%',
paddingLeft: '10px', flexWrap: 'wrap'
}}>
{rows_champs_specifics &&
rows_champs_specifics.map((champ_spec) => (
<div className="session_caract"> {String(JSON.parse(champ_spec).is_mandatory) === "1" && <font> <b> {JSON.parse(champ_spec).field_label} </b> </font>}
{String(JSON.parse(champ_spec).is_mandatory) !== "1" && <font> {JSON.parse(champ_spec).field_label} </font>} <br />
{String(JSON.parse(champ_spec).field_type) === "float" && <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name={JSON.parse(champ_spec).field_name}
id={JSON.parse(champ_spec).field_name}
type="number"
inputProps={{ min: "1", max: "999999", step: "1" }}
InputLabelProps={{
shrink: true,
}}
className="disabled_style"
onChange={(e) => {
change_champs_spec_handle(e.target.value);
setEmployee_data_changed("1");
}}
//onChange={change_champs_spec_handle}
/>}
{String(JSON.parse(champ_spec).field_type) === "string" && <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name={JSON.parse(champ_spec).field_name}
id={JSON.parse(champ_spec).field_name}
InputLabelProps={{
shrink: true,
}}
className="disabled_style"
onChange={(e) => {
change_champs_spec_handle(e.target.value);
setEmployee_data_changed("1");
}}
//onChange={change_champs_spec_handle}
/>}
</div>
))}
</div>
</div>
</div>
</div>
</div>
-----------------
{/* <div class="separator">
<nav className="separator_label">
Données personnelles </nav>
</div>
@ -11434,28 +11974,7 @@ const Employes = (props) => {
}
/>
{/* <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_civilite"
id="one_detail_civilite"
select
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_one_detail_civilite}
onChange={(e) => {
setp_one_detail_civilite(e.target.value);
setEmployee_data_changed("1");
}}
>
<MenuItem value="M" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>M. &nbsp;&nbsp;</MenuItem>
<MenuItem value="Mme" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Mme. &nbsp;</MenuItem>
<MenuItem value="Neutre" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Neutre &nbsp;</MenuItem>
</TextField>*/}
</div>
<div className="session_caract"> <b>Nom </b> <br />
@ -11620,6 +12139,7 @@ const Employes = (props) => {
}}
/>
</div>
<div className="session_caract"> Code postal<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -11639,6 +12159,7 @@ const Employes = (props) => {
}}
/>
</div>
<div className="session_caract"> Ville<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -11852,7 +12373,7 @@ const Employes = (props) => {
</div>
</div>
{/* -- début champs specifiques **/}
{/* -- début champs specifiques ** /}
&nbsp;
<div class="separator">
@ -11921,7 +12442,7 @@ const Employes = (props) => {
</div>
{/* -- end champs specifiques **/}
{/* -- end champs specifiques ** /}
&nbsp;
<div class="separator">
<nav className="separator_label">
@ -11946,7 +12467,7 @@ const Employes = (props) => {
setEmployee_data_changed("1");
}}
/>
</div>
</div>*/}
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
@ -12507,7 +13028,8 @@ const Employes = (props) => {
<div className="session_caract"> Profil utilisateur <br />
{acces_right_data_edit_mode === "1" && <Autocomplete
{acces_right_data_edit_mode === "1" &&
<Autocomplete
disablePortal
name="one_detail_profil"
id="one_detail_profil"
@ -14435,4 +14957,8 @@ width: 100%;
border: unset;
border-radius: 10px;
}
.react-datepicker-wrapper{
width: 100%;
}
`;

View File

@ -7639,7 +7639,7 @@ const Employes_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7856,7 +7856,7 @@ const Employes_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -7955,7 +7955,7 @@ const Employes_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8096,7 +8096,7 @@ const Employes_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8259,7 +8259,7 @@ const Employes_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8311,7 +8311,7 @@ const Employes_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8364,7 +8364,7 @@ const Employes_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -8512,7 +8512,7 @@ const Employes_ARG = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -530,7 +530,7 @@ const Groupe_Apprenant = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
@ -609,7 +609,7 @@ const Groupe_Apprenant = (props) => {
style: {
overflowY: 'unset',
// position: 'absolute',
top: '7rem',
top: '10rem',
border: '1px solid #F1F1F1',
margin: "2px",
boxShadow: "-3px 4px 0px -30px #000000",
@ -2782,7 +2782,7 @@ const Groupe_Apprenant = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -6488,7 +6488,7 @@ registerLocale('fr', fr);
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}
@ -6709,7 +6709,7 @@ registerLocale('fr', fr);
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
top: '10rem',
margin: "2px",
},
}}

View File

@ -438,13 +438,18 @@ const Formation_Partner_Catalog_Special_JMJFormation = (props) => {
</p>}
{props.formation.business_prices && props.formation.business_prices.length <= 0
&& <p className="formation_prix">{props.formation.price}
{parseFloat(String(props.formation.partnaire_tva)) > 0 && <> HT&nbsp; </>}
{parseFloat(String(props.formation.partnaire_tva)) <= 0 && <> TTC&nbsp; </>}
</p>}
{props.formation.business_prices && props.formation.business_prices.length <= 0 && props.formation.inscription_direct !== "1"
{props.formation.business_prices && props.formation.business_prices.length > 0 &&
&& <p className="formation_prix">
{parseFloat(String(props.formation.price)) <= 0 && <> Gratuit </>}
{parseFloat(String(props.formation.price)) > 0 && <> {props.formation.price} </>}
{parseFloat(String(props.formation.partnaire_tva)) > 0 && parseFloat(String(props.formation.price)) > 0 && <> HT&nbsp; </>}
{parseFloat(String(props.formation.partnaire_tva)) <= 0 && parseFloat(String(props.formation.price)) > 0 && <> TTC&nbsp; </>}
</p>}
{props.formation.business_prices && props.formation.business_prices.length > 0 && props.formation.inscription_direct !== "1" &&
<p style={{ width: '100%', float: 'left' }}>
<p className="formation_prix" style={{ width: '100%', float: 'left' }}>{props.formation.business_prices[0].discounted_price}

View File

@ -268,7 +268,7 @@ const Module_Absence = (props) => {
axios.post(myurl, form).then(res => {
//console.log(" In Get_Connected_User_List_Agenda_Events res.data.status = " + res.data.status);
//console.log(" In Get_Connected_User_List_Agenda_Events res.data.message r_class = " + res.data.message);
console.log(" In Get_Connected_User_List_Agenda_Events res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
@ -575,8 +575,8 @@ const Module_Absence = (props) => {
//console.log(eventInfo);
return (
<>
<b>{eventInfo.timeText}</b><br />
{eventInfo.event.extendedProps.code_session && <i>{eventInfo.event.extendedProps.code_session}</i>}
<b>{eventInfo.timeText}</b><br />
{eventInfo.event.extendedProps.code_session && <i>{eventInfo.event.extendedProps.code_session}</i>}
</>
)
};
@ -869,12 +869,62 @@ const Module_Absence = (props) => {
Get_Connected_User_List_Agenda_Events();
Get_Partner_Debut_Fin_Journee();
Getall_Partner_Session_Reduice_Fields();
Get_ENT_Apprenant_Total_Heure();
//Getall_Training_Employee_No_Filter();
//Getall_Training_Materiel_No_Filter();
}, [attendee_email])
const [Get_ENT_Apprenant_Total_Heure_api, setGet_ENT_Apprenant_Total_Heure_api] = useState();
const [Get_ENT_Apprenant_Total_Heure_message, setGet_ENT_Apprenant_Total_Heure_message] = useState();
const [Get_ENT_Apprenant_Total_Heure_result, setGet_ENT_Apprenant_Total_Heure_result] = useState();
function Get_ENT_Apprenant_Total_Heure(event) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("related_collection", props.related_collection);
form.append("related_collection_email", attendee_email);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_Agenda_Event_List_Stagiaire_Total_Nb_Heure/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Get_ENT_Apprenant_Total_Heure res.data.status = " + res.data.status);
console.log(" In Get_ENT_Apprenant_Total_Heure res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setGet_ENT_Apprenant_Total_Heure_api("true");
setGet_ENT_Apprenant_Total_Heure_result(res.data.message);
}
else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
history.push("/Connexion");
}
else {
setGet_ENT_Apprenant_Total_Heure_api("false");
setGet_ENT_Apprenant_Total_Heure_message(res.data.message);
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Get_ENT_Apprenant_Total_Heure = ', error);
setGet_ENT_Apprenant_Total_Heure_api("false");
//setmyApimyApiMessage("")
})
}
const [p_detail_data_changed, setp_detail_data_changed] = useState("");
const [p_detail_event_id, setp_detail_event_id] = useState();
@ -1376,7 +1426,7 @@ const Module_Absence = (props) => {
<div className="div_row">
{p_detail_event_id && String(p_detail_event_id) !== "" && p_detail_data_changed === "1" && <div className="div_row">
<div className="koUpdateData" style={{ "color": "orange", "textAlign": "center", marginBottom:'1rem' }}> /!\ Pensez à enregistrer les modifications</div>
<div className="koUpdateData" style={{ "color": "orange", "textAlign": "center", marginBottom: '1rem' }}> /!\ Pensez à enregistrer les modifications</div>
</div>}
{String(props.write_access) === "1" && <div className="div_row_gauche">
@ -1422,7 +1472,8 @@ const Module_Absence = (props) => {
</Dialog>
<h3 style={{ fontFamily: 'DM Sans' }}> Absences </h3>
<h3 style={{ fontFamily: 'DM Sans', fontSize:'26px', width:'100%', textAlign:"center" }}> Absences - {Get_ENT_Apprenant_Total_Heure_result && <font style={{ "color": "orange", "textAlign": "center" }}>
{JSON.parse(Get_ENT_Apprenant_Total_Heure_result).total_heure} heure(s) </font>}</h3>
<div style={{ "textAlign": "right", "float": "right", "width": "100%" }}>
Affichage : <nav className="mode_affichage" onClick={func_display_planning_view}> <FcPlanner /> planning </nav>
@ -1430,6 +1481,7 @@ const Module_Absence = (props) => {
</div>
{String(display_view) === "planning" && <div style={{ "width": "98%", "marginLeft": "5px" }}>
&nbsp;
@ -1469,7 +1521,6 @@ const Module_Absence = (props) => {
{String(display_view) === "list" && <div style={{ "width": "98%", "marginLeft": "5px" }}>
&nbsp;
<div className="div_row">
<div className="session_data">
<div style={{ "border": "None" }}>

View File

@ -1425,7 +1425,7 @@ const Module_ENT_Absence = (props) => {
</DialogActions>}
</Dialog>
<h3 style={{ fontFamily: 'DM Sans' }}> Absences - {Get_ENT_Apprenant_Total_Heure_Absence_result && <font style={{ "color": "orange", "textAlign": "center" }}> {JSON.parse(Get_ENT_Apprenant_Total_Heure_Absence_result).total_heure_absence} heure(s) </font>}

View File

@ -1612,7 +1612,7 @@ const Module_Session_Planification = (props) => {
var local_obligatoire = JSON.parse(x).obligatoire;
// Si il n'y pas de relief avec le groupe d'apprenant, on va introduire un relief avec la notion de présentiel et distantiel
if (local_session_color === "" && local_mode_animation === "1") {
@ -4326,6 +4326,8 @@ const Module_Session_Planification = (props) => {
</a>
</Button>}
{String(selected_sequence_id).length > 3 &&
<Button variant="outlined" onClick={submenu_sequence_ressource} className="detail_class_submenu" id='dialog_detail_seq_ressource'
name='dialog_detail_seq_ressource'>Ressources</Button>}
@ -6206,11 +6208,11 @@ const Module_Session_Planification = (props) => {
{Getall_List_Sequence_Ressource_result && Getall_List_Sequence_Ressource_result.length > 0 && <div className="session_data" style={{ "border": "None" }}>
<div style={{ height: 550, width: '100%', paddingRight: '1px' }}>
<div style={{ height: 350, width: '100%', paddingRight: '1px' }}>
&nbsp;
<Box
sx={{
height: 500,
height: 300,
width: '100%',
paddingRight: '1px',
@ -6275,6 +6277,7 @@ const Module_Session_Planification = (props) => {
</div>}
@ -6622,7 +6625,13 @@ const Module_Session_Planification = (props) => {
</div>
</nav>
<div className="session_caract_Dialog_comment_2_lines" > Agenda
<div className="session_caract_Dialog_comment_2_lines" >
<Tooltip className="tooltip_css" id="tooltip_organisation" style={{ "fontSize": "12px", fontFamily: "DM Sans" }} />
<a data-tooltip-id="tooltip_organisation" data-tooltip-html="Merci de préciser l'agenda & les modalités d'organisation (lien de visioconférence, code d'accès à la salle, etc.). "> Agenda & Détail organisation &nbsp; <FcInfo />
</a>
<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -7105,7 +7114,7 @@ const Module_Session_Planification = (props) => {
{display_view && String(display_view) === "planning" && Getall_Sequence_Of_Session_result_planning_view &&
<div style={{ "border": "None" }} >
&nbsp;
<div style={{ "width": "98%", "marginLeft": "5px", padding: '10px', fontFamily: 'DM Sans', fontSize: '14px' }} >
@ -7280,7 +7289,7 @@ const Module_Session_Planification = (props) => {
{display_view && String(display_view) === "planning" &&
<div style={{ "border": "None" }}>
&nbsp;
<div style={{ "width": "98%", "marginLeft": "5px", }} >
<FullCalendar

View File

@ -4876,7 +4876,6 @@ const Mon_Catalogue_Public = (props) => {
</div>}
</div>
<div style={{ width: '100%', marginBottom:"1rem" }}>

View File

@ -82,8 +82,9 @@ const Mon_Tableau_De_Bord = (props) => {
{ field: 'fonction', headerName: 'Fonction', hide: true, minWidth: 200, flex: 1, maxWidth: 150, renderCell: (params) => <ExpandableCell_50 {...params} /> },
{ field: 'agenda_event_title', headerName: 'Titre Event', hide: false, minWidth: 250, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} /> },
{ field: 'agenda_event_type', headerName: 'Type Event', hide: false, minWidth: 150, flex: 1, maxWidth: 100, renderCell: (params) => <ExpandableCell_50 {...params} /> },
{ field: 'agenda_event_code_session', headerName: 'Code session', hide: false, minWidth: 250, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} /> },
{ field: 'agenda_event_type', headerName: 'Type Event', hide: false, minWidth: 150, flex: 1, maxWidth: 100, renderCell: (params) => <ExpandableCell_50 {...params} /> },
{ field: 'event_duration_hour', headerName: 'Durée (h)', hide: false, minWidth: 100, flex: 1, maxWidth: 100, renderCell: (params) => <ExpandableCell_50 {...params} /> },
{ field: 'agenda_date_jour', headerName: 'Date', hide: false, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) => <ExpandableCell_50 {...params} /> },
{ field: 'agenda_event_start', headerName: 'Début', hide: false, minWidth: 150, flex: 1, maxWidth: 200, renderCell: (params) => <ExpandableCell_50 {...params} /> },

View File

@ -356,48 +356,28 @@ function New_C_Article_Help_2025() {
Retour au support
</a>
<span className="support-kicker">Guide support</span>
<h1>La signature électronique et les organismes de formation</h1>
<h1> {DetailArticleAvis.title_formation}</h1>
<div className="article-meta">
<span>Publié le 18 nov. 2024</span>
<span>Publié {(String(DetailArticleAvis.date_avis)).substring(0, 16)}</span>
<span></span>
<span>Lecture 6 min</span>
<span></span>
<span>Administratif</span>
</div>
<p className="article-intro">
La signature électronique permet de sécuriser les validations,
fluidifier les échanges documentaires et accélérer la gestion
administrative des organismes de formation, tout en renforçant la
conformité et la traçabilité.
</p>
</div>
</section>
<section className="article-main-section">
<div className="elyos-container article-center-layout">
<article className="article-content-card">
<section className="article-section">
<span className="article-section__eyebrow">Définition</span>
<h2>Pourquoi la signature électronique est devenue incontournable</h2>
<p>
La signature électronique est une méthode de validation
numérique qui garantit lidentité de la personne qui signe un
document ou un contrat en ligne. Elle a la même valeur légale
quune signature manuscrite, dès lors que son cadre
dutilisation respecte les exigences applicables.
</p>
<p>
Pour les organismes de formation, elle apporte un gain concret
de fluidité : moins dallers-retours, moins de délais, moins
de documents dispersés, et une meilleure lisibilité des étapes
de validation.
</p>
<section className="article-section" style={{textAlign:'left'}}>
{DetailArticleAvis && DetailArticleAvis.avis &&<> {parse(DetailArticleAvis.avis)} </>}
<div className="article-callout article-callout--info">
<strong>À retenir :</strong> la signature électronique ne sert
@ -409,19 +389,12 @@ function New_C_Article_Help_2025() {
<section className="article-section">
<div className="article-video-inline">
<div className="article-video-inline__top">
<span className="video-card__badge">Vidéo</span>
<h3>Présentation rapide</h3>
<p>
Ajoute ici une vidéo tutorielle, une démo produit ou une
explication métier.
</p>
</div>
<div className="video-placeholder">
{false ? (
<iframe
src="https://www.youtube.com/embed/TON_ID_VIDEO"
src={article_img}
title="Vidéo explicative"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
@ -443,111 +416,10 @@ function New_C_Article_Help_2025() {
</div>
</section>
<section className="article-section">
<span className="article-section__eyebrow">Niveaux</span>
<h2>Les différents types de signature électronique</h2>
<p>
Il existe plusieurs niveaux de signature électronique, selon
le niveau de sécurité, dauthentification et de preuve
attendu.
</p>
<div className="article-feature-grid">
<div className="article-feature-card">
<h3>Signature simple</h3>
<p>
Adaptée à certains usages courants, avec une mise en œuvre
rapide et un niveau de sécurité plus limité.
</p>
</div>
<div className="article-feature-card">
<h3>Signature avancée</h3>
<p>
Repose sur des mécanismes renforcés pour vérifier
lidentité du signataire et lintégrité du document.
</p>
</div>
<div className="article-feature-card">
<h3>Signature qualifiée</h3>
<p>
Offre le niveau de sécurité le plus élevé, avec un
certificat qualifié délivré par une autorité agréée.
</p>
</div>
</div>
</section>
<section className="article-section">
<span className="article-section__eyebrow">Fonctionnement</span>
<h2>Comment cela fonctionne concrètement</h2>
<p>
Une signature électronique est générée via un logiciel ou une
plateforme qui applique un procédé cryptographique au
document. Cela permet notamment :
</p>
<ul className="article-list">
<li>Dauthentifier le signataire</li>
<li>De garantir lintégrité du document</li>
<li>Dobtenir une preuve juridique fiable</li>
</ul>
<p>
Toute modification du document après signature peut être
détectée, ce qui renforce sa valeur probante et sécurise les
échanges.
</p>
</section>
<section className="article-section">
<span className="article-section__eyebrow">Outils</span>
<h2>Plateformes de signature électronique</h2>
<p>
Des solutions comme DocuSign, Adobe Sign ou Yousign permettent
de gérer la signature électronique de manière rapide et fiable.
Elles sappuient sur des mécanismes de contrôle adaptés aux
niveaux de sécurité recherchés.
</p>
<p>
Mais lorsque la signature est gérée dans un outil séparé du
reste du processus, cela peut créer des ruptures : ressaisies,
suivi moins lisible, documents dispersés, dépendance à
plusieurs interfaces.
</p>
</section>
<section className="article-section">
<span className="article-section__eyebrow">Vision Elyos</span>
<h2>Comment Elyos sinscrit dans cette logique</h2>
<p>
Lenjeu nest pas simplement dajouter une fonctionnalité de
signature. Lenjeu est de lintégrer dans un parcours métier
cohérent : documents, validations, suivi des dossiers,
traçabilité et accès rapide à linformation.
</p>
<p>
Dans une logique dédiée aux organismes de formation, la
signature doit sinsérer dans un processus plus global, sans
multiplier les outils ni casser la fluidité opérationnelle.
</p>
<div className="article-callout article-callout--accent">
<strong>Vision premium :</strong> ne pas juxtaposer des
briques, mais construire une expérience fluide, rigoureuse et
centralisée.
</div>
</section>
</article>
<div className="support-section-title">
{/*<div className="support-section-title">
<div>
<span className="support-section-title__eyebrow">
Ressources complémentaires
@ -557,9 +429,9 @@ function New_C_Article_Help_2025() {
<a href="/" className="support-inline-link">
Voir tous les articles
</a>
</div>
</div>*/}
<div className="article-grid-premium">
{/*<div className="article-grid-premium">
{relatedArticles.map((article) => (
<article className="article-card-premium" key={article.id}>
<div className="article-card-premium__image-wrap">
@ -585,7 +457,7 @@ function New_C_Article_Help_2025() {
</div>
</article>
))}
</div>
</div>*/}
</div>
</section>
</main>
@ -1008,11 +880,11 @@ img {
}
.article-hero h1 {
margin: 20px 0 0;
font-size: clamp(2.4rem, 4vw, 4.4rem);
margin: 20px 0 0;
line-height: 1.02;
letter-spacing: -0.05em;
color: var(--elyos-navy);
font-family: 'DM Sans';
font-size: 40px;
}
.article-meta {

View File

@ -442,9 +442,12 @@ const New_C_Formation_2025 = (props) => {
{props.formation.business_prices && props.formation.business_prices.length <= 0
&& <p className="formation_prix">
{props.formation.price}
{parseFloat(String(props.formation.partnaire_tva)) > 0 && <> HT </>}
{parseFloat(String(props.formation.partnaire_tva)) <= 0 && <> TTC </>}
{parseFloat(String(props.formation.price)) <= 0 && <> Gratuit </>}
{parseFloat(String(props.formation.price)) > 0 && <> {props.formation.price} </>}
{parseFloat(String(props.formation.partnaire_tva)) > 0 && parseFloat(String(props.formation.price)) > 0 && <> HT </>}
{parseFloat(String(props.formation.partnaire_tva)) <= 0 && parseFloat(String(props.formation.price)) > 0 && <> TTC </>}
&nbsp; </p>}

View File

@ -106,30 +106,30 @@ function New_C_Sign_In_2025() {
function logout_partner_confirmation() {
removeCookie_part('tokenmysypart', { path: '/' });
const stored_cookie = getCookie('tokenmysypart');
const stored_cookie = getCookie('tokenmysypart');
if (stored_cookie) {
var acces_right_token_name = stored_cookie + "_uar";
if (stored_cookie) {
var acces_right_token_name = stored_cookie + "_uar";
removeCookie(acces_right_token_name,);
}
removeCookie(acces_right_token_name,);
}
removeCookie("tokenmysychapprenant");
removeCookie("tokenmysych");
removeCookie("tokenmysychconnecteduserid");
removeCookie("tokenmysytypeconnexion");
removeCookie("tokenmysychapprenant");
removeCookie("tokenmysych");
removeCookie("tokenmysychconnecteduserid");
removeCookie("tokenmysytypeconnexion");
removeCookie("__stripe_sid");
removeCookie("__stripe_mid");
removeCookie("__stripe_sid");
removeCookie("__stripe_mid");
removeCookie("tokenmysypart");
removeCookie("mysy_session_display_view",);
removeCookie("mysy_menu_gauche_reduit",);
removeCookie("mysy_catalog_data_row_grouped_by",);
removeCookie("tokenmysytuteurrhid");
removeCookie("tokenmysychclient");
removeCookie("tokenmysypart");
removeCookie("mysy_session_display_view",);
removeCookie("mysy_menu_gauche_reduit",);
removeCookie("mysy_catalog_data_row_grouped_by",);
removeCookie("tokenmysytuteurrhid");
removeCookie("tokenmysychclient");
}
function retnull() {
@ -153,30 +153,30 @@ function New_C_Sign_In_2025() {
function logout_user_confirmation() {
removeCookie_part('tokenmysych', { path: '/' });
const stored_cookie = getCookie('tokenmysypart');
const stored_cookie = getCookie('tokenmysypart');
if (stored_cookie) {
var acces_right_token_name = stored_cookie + "_uar";
if (stored_cookie) {
var acces_right_token_name = stored_cookie + "_uar";
removeCookie(acces_right_token_name,);
}
removeCookie(acces_right_token_name,);
}
removeCookie("tokenmysychapprenant");
removeCookie("tokenmysych");
removeCookie("tokenmysychconnecteduserid");
removeCookie("tokenmysytypeconnexion");
removeCookie("tokenmysychapprenant");
removeCookie("tokenmysych");
removeCookie("tokenmysychconnecteduserid");
removeCookie("tokenmysytypeconnexion");
removeCookie("__stripe_sid");
removeCookie("__stripe_mid");
removeCookie("__stripe_sid");
removeCookie("__stripe_mid");
removeCookie("tokenmysypart");
removeCookie("mysy_session_display_view",);
removeCookie("mysy_menu_gauche_reduit",);
removeCookie("mysy_catalog_data_row_grouped_by",);
removeCookie("tokenmysytuteurrhid");
removeCookie("tokenmysychclient");
removeCookie("tokenmysypart");
removeCookie("mysy_session_display_view",);
removeCookie("mysy_menu_gauche_reduit",);
removeCookie("mysy_catalog_data_row_grouped_by",);
removeCookie("tokenmysytuteurrhid");
removeCookie("tokenmysychclient");
}
function Logout_User() {
@ -288,6 +288,8 @@ function New_C_Sign_In_2025() {
setCookie_acces_right(acces_right_token_name, acces_right_token_val, { path: '/' });
var last_visite_menu = "";
// recuperation et stockage des cookie sur les paramettres de connexion
var returned_connexion_data = JSON.parse(result['message'])
if (returned_connexion_data.list_connexion_context) {
@ -298,12 +300,21 @@ function New_C_Sign_In_2025() {
setCookie(String(x['code']), String(x['code_value']), { path: '/' });
}
if (x['code'] && x['code_value'] && x['code'] === "mysy_last_menu_visited") {
last_visite_menu = x['code_value']
}
});
}
//setCookie("tokenmysypart", result['message']);
history.push("/Partner");
console.log("## last_visite_menu = ", last_visite_menu);
if (last_visite_menu && last_visite_menu.length > 3)
history.push(last_visite_menu);
else
history.push("/Partner/monactivite");
}
else if (String(partner_connexion) === String("user")) {
@ -769,7 +780,6 @@ function New_C_Sign_In_2025() {
<meta name="title" content="Création compte MySy Trainig Technology" />
<link rel="canonical" href={window.location.href} />
</Helmet>
<div className="log-in-page-mobile">
<div className="div">
<div className="sign-in">

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -692,12 +692,15 @@ const Partner = (props) => {
DiplaytrainingList("");
} else if (local_menu.toLocaleLowerCase() === "Unit. Ensei".toLocaleLowerCase()) {
DiplayPartner_UE();
// Update_Connexion_Context("mysy_last_menu_visited", String(local_menu));
} else if (local_menu.toLocaleLowerCase() === "Produits & serv.".toLocaleLowerCase()) {
DiplayPartner_Produits_Services();
} else if (local_menu.toLocaleLowerCase() === "Sessions".toLocaleLowerCase()) {
DiplaySessionList();
// Update_Connexion_Context("mysy_last_menu_visited", String(local_menu));
} else if (local_menu.toLocaleLowerCase() === "Promotions".toLocaleLowerCase()) {
DiplayPromotionList();
// Update_Connexion_Context("mysy_last_menu_visited", String(local_menu));
}
else if (local_menu.toLocaleLowerCase() === "Notes & éval".toLocaleLowerCase()) {
@ -1352,6 +1355,7 @@ const Partner = (props) => {
setmenu("monactivite");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/monactivite");
history.push("/Partner/monactivite");
document.body.style.backgroundColor = "#ffffff";
@ -1364,6 +1368,7 @@ const Partner = (props) => {
setmenu("tous_mes_document");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/tous_mes_document");
history.push("/Partner/tous_mes_document");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("tous_mes_document");
@ -1387,6 +1392,7 @@ const Partner = (props) => {
setmenu("config_document");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/config_document");
history.push("/Partner/config_document");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_configuration");
@ -1410,6 +1416,7 @@ const Partner = (props) => {
setmenu("config_formation_initiale");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/config_formation_initiale");
history.push("/Partner/config_formation_initiale");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("config_formation_initiale");
@ -1425,6 +1432,7 @@ const Partner = (props) => {
setmenu("config_plateforme_partners");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/config_plateforme_partners");
history.push("/Partner/config_plateforme_partners");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("config_plateforme_partners");
@ -1439,6 +1447,7 @@ const Partner = (props) => {
setmenu("admission_process");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/admission_process");
history.push("/Partner/admission_process");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("admission_process");
@ -1454,6 +1463,7 @@ const Partner = (props) => {
setmenu("tache_pedagogique");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/tache_pedagogique");
history.push("/Partner/tache_pedagogique");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("tache_pedagogique");
@ -1468,6 +1478,7 @@ const Partner = (props) => {
setmenu("administration_pedagogique");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/administration_pedagogique");
history.push("/Partner/administration_pedagogique");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("administration_pedagogique");
@ -1483,6 +1494,7 @@ const Partner = (props) => {
setmenu("competence_pedagogique");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/competence_pedagogique");
history.push("/Partner/competence_pedagogique");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("competence_pedagogique");
@ -1511,6 +1523,7 @@ const Partner = (props) => {
setmenu("module_agenda");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/module_agenda");
history.push("/Partner/module_agenda");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_planning");
@ -1524,6 +1537,7 @@ const Partner = (props) => {
setmenu("mon_tableau_de_bord");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mon_tableau_de_bord");
history.push("/Partner/mon_tableau_de_bord");
document.body.style.backgroundColor = "#ffffff";
@ -1551,6 +1565,7 @@ const Partner = (props) => {
setmenu("config_technique");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/config_technique");
history.push("/Partner/config_technique");
document.body.style.backgroundColor = "#ffffff";
} else {
@ -1578,6 +1593,7 @@ const Partner = (props) => {
setmenu("config_jours_heures");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/config_jours_heures");
history.push("/Partner/config_jours_heures");
document.body.style.backgroundColor = "#ffffff";
} else {
@ -1592,6 +1608,7 @@ const Partner = (props) => {
setmenu("config_formulaires");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/config_formulaires");
history.push("/Partner/config_formulaires");
document.body.style.backgroundColor = "#ffffff";
} else {
@ -1606,6 +1623,7 @@ const Partner = (props) => {
setmenu("factures_client");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/factures_client");
history.push("/Partner/factures_client");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_invoices");
@ -1634,6 +1652,7 @@ const Partner = (props) => {
setmenu("setuplms");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/setuplms");
history.push("/Partner/setuplms");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_e_learning");
@ -1649,6 +1668,7 @@ const Partner = (props) => {
setmenu("facture");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/facture");
history.push("/Partner/facture");
document.body.style.backgroundColor = "#ffffff";
@ -1688,6 +1708,7 @@ const Partner = (props) => {
setmenu("pricing");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/pricing");
history.push("/Partner/pricing");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_partners");
@ -1704,6 +1725,7 @@ const Partner = (props) => {
setmenu("mes_clients");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_clients");
history.push("/Partner/mes_clients");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_partners");
@ -1718,6 +1740,7 @@ const Partner = (props) => {
setmenu("mes_devis");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_devis");
history.push("/Partner/mes_devis");
document.body.style.backgroundColor = "#ffffff";
} else {
@ -1732,6 +1755,7 @@ const Partner = (props) => {
setmenu("mes_cmd");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_cmd");
history.push("/Partner/mes_cmd");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_invoices");
@ -1748,6 +1772,7 @@ const Partner = (props) => {
setmenu("mes_ue");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_ue");
history.push("/Partner/mes_ue");
document.body.style.backgroundColor = "#ffffff";
@ -1765,6 +1790,7 @@ const Partner = (props) => {
setmenu("domaine_categorie_metier");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/domaine_categorie_metier");
history.push("/Partner/domaine_categorie_metier");
document.body.style.backgroundColor = "#ffffff";
@ -1782,6 +1808,7 @@ const Partner = (props) => {
setmenu("part_produit_service");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/part_produit_service");
history.push("/Partner/part_produit_service");
document.body.style.backgroundColor = "#ffffff";
@ -1799,6 +1826,7 @@ const Partner = (props) => {
setmenu("mes_sessions");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_sessions");
history.push("/Partner/mes_sessions");
document.body.style.backgroundColor = "#ffffff";
@ -1815,7 +1843,9 @@ const Partner = (props) => {
setmenu("mes_promotions");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_promotions");
history.push("/Partner/mes_promotions");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_promotion");
@ -1832,6 +1862,7 @@ const Partner = (props) => {
setmenu("note_evaluation");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/note_evaluation");
history.push("/Partner/note_evaluation");
document.body.style.backgroundColor = "#ffffff";
@ -1848,6 +1879,7 @@ const Partner = (props) => {
setmenu("jurys");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/jurys");
history.push("/Partner/jurys");
document.body.style.backgroundColor = "#ffffff";
@ -1865,6 +1897,7 @@ const Partner = (props) => {
setmenu("conseil_classe");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/conseil_classe");
history.push("/Partner/conseil_classe");
document.body.style.backgroundColor = "#ffffff";
@ -1883,6 +1916,7 @@ const Partner = (props) => {
setmenu("conseil_class");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/conseil_class");
history.push("/Partner/conseil_class");
document.body.style.backgroundColor = "#ffffff";
@ -1899,6 +1933,7 @@ const Partner = (props) => {
setmenu("mes_stagiaires");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_stagiaires");
history.push("/Partner/mes_stagiaires");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_apprenant");
@ -1913,6 +1948,7 @@ const Partner = (props) => {
setmenu("mes_apprenants");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_apprenants");
history.push("/Partner/mes_apprenants");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_apprenant");
@ -1927,6 +1963,7 @@ const Partner = (props) => {
setmenu("groupe_apprenant");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/groupe_apprenant");
history.push("/Partner/groupe_apprenant");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("groupe_apprenant");
@ -1941,6 +1978,7 @@ const Partner = (props) => {
setmenu("admission_session");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/admission_session");
history.push("/Partner/admission_session");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("admission_session");
@ -1955,6 +1993,7 @@ const Partner = (props) => {
setmenu("equipe_team");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/equipe_team");
history.push("/Partner/equipe_team");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("equipe_team");
@ -1969,6 +2008,7 @@ const Partner = (props) => {
setmenu("mes_employes");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_employes");
history.push("/Partner/mes_employes");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("mes_employes");
@ -1984,6 +2024,7 @@ const Partner = (props) => {
setmenu("autre_rh");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/autre_rh");
history.push("/Partner/autre_rh");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("autre_rh");
@ -2001,6 +2042,7 @@ const Partner = (props) => {
setformation_file_name();
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_ressource");
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mon_materiel");
history.push("/Partner/mon_materiel");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du matériel pédagogique");
@ -2016,6 +2058,7 @@ const Partner = (props) => {
setformation_file_name();
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_ressource");
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_salles");
history.push("/Partner/mes_salles");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du matériel pédagogique");
@ -2031,6 +2074,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
document.body.style.backgroundColor = "#ffffff";
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/mes_opportunites");
history.push("/Partner/mes_opportunites");
inactive_active_menu_header("my_partners");
} else {
@ -2045,6 +2089,7 @@ const Partner = (props) => {
setmenu("dashbord_formation");
setapiexcelimportmessage();
setformation_file_name();
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/dashbord_formation");
history.push("/Partner/dashbord_formation");
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_tbd");
@ -2061,6 +2106,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
document.body.style.backgroundColor = "#ffffff";
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/dashbord_session");
history.push("/Partner/dashbord_session");
inactive_active_menu_header("my_tbd");
} else {
@ -2077,6 +2123,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
document.body.style.backgroundColor = "#ffffff";
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/dashbord_ressources_humaines");
history.push("/Partner/dashbord_ressources_humaines");
inactive_active_menu_header("my_tbd");
} else {
@ -2094,6 +2141,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
document.body.style.backgroundColor = "#ffffff";
Update_Connexion_Context("mysy_last_menu_visited", "/Partner/dashbord_inscriptions");
history.push("/Partner/dashbord_inscriptions");
inactive_active_menu_header("my_tbd");
} else {
@ -2122,6 +2170,8 @@ const Partner = (props) => {
setmenu("affichage");
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/affichage");
inactive_active_menu_header("my_class");
@ -2161,9 +2211,11 @@ const Partner = (props) => {
//console.log("### local_is_ftion_initiale = ", local_is_ftion_initiale)
if (local_is_ftion_initiale === "1" || local_is_ftion_initiale === "" || local_is_ftion_initiale === "0")
if (local_is_ftion_initiale === "1" || local_is_ftion_initiale === "" || local_is_ftion_initiale === "0") {
form.append("is_ftion_initiale", local_is_ftion_initiale);
}
form.append("token", stored_cookie);

View File

@ -808,8 +808,7 @@ const Partner_Client = (props) => {
};
const New_Option_Filter = [
{ "id": "nom", "label": "Nom ", "value": "nom" },
{ "id": "email", "label": "Email ", "value": "email" },
{ "id": "nom", "label": "Nom / Raison Sociale / Tél / mail ", "value": "nom" },
{ "id": "archive", "label": "Archive", "value": "archive" },
{ "id": "", "label": "", "value": "" },
{ "id": "1", "label": "", "value": "1" }, // Cette ligne pour couvrir l'ajout d'une ligne de filter. C'est fait expres.

View File

@ -2097,6 +2097,7 @@ const New_C_Detail_Formation_2025 = (props) => {
<div className="mob_cross_sell_card_content_rating">
{JSON.parse(formation).note && String(JSON.parse(formation).note).length === 1 &&
parseInt(String(JSON.parse(formation).note)) <= 5 &&
parseInt(String(JSON.parse(formation).note)) >= 1 &&
<Rating name="half-rating-reade"
precision={0.5}
@ -2169,8 +2170,9 @@ const New_C_Detail_Formation_2025 = (props) => {
<div className="block_sous_header_rate_title">
<div className="rating">
{ratingvalue && String(ratingvalue).length > 0 &&
{String(ratingvalue).length > 0 &&
parseInt(String(ratingvalue)) <= 5 &&
parseFloat(String(ratingvalue)) >= 1 &&
<Rating name="half-rating-reade"
readOnly={true}
precision={0.5}

View File

@ -1472,7 +1472,6 @@ const New_C_Detail_Formation_2025 = (props) => {
<div className="mob_block_content_2025">
<div className="mob_block_content_rating_2025">
<Rating name="half-rating-reade"
precision={0.5}
value={ratingvalue}
readOnly={true}
@ -2130,9 +2129,9 @@ const New_C_Detail_Formation_2025 = (props) => {
<div className="mob_cross_sell_card_content">
<div className="mob_cross_sell_card_content_rating">
<div className="mob_cross_sell_card_content_rating">
{JSON.parse(formation).note && String(JSON.parse(formation).note).length === 1 &&
parseInt(String(JSON.parse(formation).note)) <= 5 &&
parseInt(String(JSON.parse(formation).note)) <= 5 && parseInt(String(JSON.parse(formation).note)) >= 1 &&
<Rating name="half-rating-reade"
precision={0.5}
@ -2207,9 +2206,9 @@ const New_C_Detail_Formation_2025 = (props) => {
<div style={{ background: '#043A32', width: '100%', color: '#FFF', height: '200px', }}>
<div className="block_sous_header_rate_title">
<div className="rating">
{ratingvalue && String(ratingvalue).length > 0 &&
parseFloat(String(ratingvalue)) <= 5 &&
<div className="rating">
{ratingvalue != '0' && String(ratingvalue).length > 0 &&
String(ratingvalue) != "" && parseFloat(String(ratingvalue)) <= 5 && parseFloat(String(ratingvalue)) >= 1 &&
<Rating name="half-rating-reade"
readOnly={true}
precision={0.5}
@ -2929,12 +2928,13 @@ const New_C_Detail_Formation_2025 = (props) => {
<div className="sous_crossell_list_card_card_content">
<div className="sous_crossell_list_card_card_content_rating">
<div className="sous_crossell_list_card_card_content_rating"> hh
{JSON.parse(formation).note && String(JSON.parse(formation).note).length >= 1 &&
parseInt(String(JSON.parse(formation).note)) <= 5 &&
parseInt(String(JSON.parse(formation).note)) <= 5 &&
parseInt(String(JSON.parse(formation).note)) >= 1 &&
<Rating name="half-rating-reade"
<Rating name="half-rating-reade"
readOnly={true}
precision={0.5}
value={(String(JSON.parse(formation).note))}

View File

@ -284,6 +284,9 @@ const Header = () => {
</nav>
</div>
{process.env.REACT_APP_ENV !== 'PROD' && <div style={{ background: 'orange', paddingLeft:'20px', paddingRight:'20px' }}> Environnement : {process.env.REACT_APP_ENV}
</div>}
<div className="cta-login">
<div className="cta-buttons">
<button className="btn btn-primary" onClick={(e) => {

View File

@ -2981,7 +2981,8 @@
margin-bottom: 5px;
border: 1px solid #ecf1fc;
border-bottom: 1px solid;
background: #ecf1fc !important;
font-family: 'DM Sans';
// background: #ecf1fc !important;
}