16/07/2025 - 20h

branche_01062025
Cherif 2025-07-16 20:04:52 +02:00
parent 1bc07bce26
commit 1ccb50cb06
22 changed files with 973 additions and 404 deletions

View File

@ -14,9 +14,9 @@ import { Editor } from '@tinymce/tinymce-react';
import { IoArrowUndoCircle } from "react-icons/io5";
import { GrUserAdmin, GrOrderedList } from "react-icons/gr";
import parse from 'html-react-parser';
import fileDownload from 'js-file-download'
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import fileDownload from 'js-file-download';
import 'react-tooltip/dist/react-tooltip.css';
import { Tooltip } from 'react-tooltip';
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
@ -1771,6 +1771,7 @@ const AddClassManual = (props) => {
if (mylocaltraining._id) {
setselected_class_id(mylocaltraining._id);
Get_List_Of_All_PJ(mylocaltraining._id);
Get_Class_Catalogue_File(mylocaltraining._id);
}
//document.getElementsByName("external_code")[0].value = mylocaltraining.external_code;
@ -3838,6 +3839,96 @@ const AddClassManual = (props) => {
};
// Cette fonction permet d'enregister la fiche catalogue d'une formation
const [Record_Class_Catalogue_File_api, setRecord_Class_Catalogue_File_api] = useState();
const [Record_Class_Catalogue_File_result, setRecord_Class_Catalogue_File_result] = useState();
const [Record_Class_Catalogue_File_message, setRecord_Class_Catalogue_File_message] = useState();
function Record_Class_Catalogue_File() {
if (!p_detail_one_file_to_download_type_name) {
//alert(" Vous devez donner un nom à la pièce jointe");
setdisplay_alert_mysy("1");
setalert_message("Vous devez donner un nom à la pièce jointe");
setalert_type("error");
return;
}
if (file_1_name && file_1_name.name) {
//console.log(" ### Traitement de : ", file_1_name.name);
const formData = new FormData();
formData.append('File', file_1_name);
//formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA');
const stored_cookie = getCookie('tokenmysypart');
formData.append("token", stored_cookie);
formData.append("file_business_object", p_detail_one_file_to_download_type_name);
formData.append("file_name", file_1_name.name);
formData.append("status", "0");
formData.append("object_owner_collection", "myclass");
formData.append("object_owner_id", selected_class_id);
formData.append("type_document", "catalogue_file");
//formData.append("class_internal_url", internal_url);
//console.log("token = " + stored_cookie);
setLoading(true);
fetch(
process.env.REACT_APP_API_URL + "myclass/api/Store_User_Downloaded_File/",
{
method: 'POST',
body: formData,
}
)
.then((response) => response.json())
.then((result) => {
setLoading(false);
//console.log(" ## result['status'] = ", result['status'])
if (String(result['status']) === String("true")) {
//console.log('Success:', result['message']);
setRecord_Class_Catalogue_File_result(result['message']);
setRecord_Class_Catalogue_File_api("true");
// Get_List_Of_All_PJ(selected_class_id);
setfile_1_name();
setp_detail_one_file_to_download_type_name();
//GetCurrentClass_trainingsession();
// alert(" La pièce jointe " + file_1_name.name + " a été bien enregistrée")
setdisplay_alert_mysy("1");
setalert_message(" La pièce jointe " + file_1_name.name + " a été bien enregistrée");
setalert_type("success");
}
else {
setRecord_Class_Catalogue_File_message(result['message']);
setRecord_Class_Catalogue_File_api("false");
//alert(result['message']);
setdisplay_alert_mysy("1");
setalert_message(result['message']);
setalert_type("error");
}
})
.catch((error) => {
setLoading(false);
console.error(' Record_Class_Catalogue_File Error:', error);
setRecord_Class_Catalogue_File_api("false");
// alert(" Impossible d'ajouter la pièce jointe");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'ajouter la pièce jointe");
setalert_type("error");
});
}
}
const [add_one_eu_to_class, setadd_one_eu_to_class] = useState("");
const [Record_All_PJ_api, setRecord_All_PJ_api] = useState();
@ -3892,6 +3983,7 @@ const AddClassManual = (props) => {
setRecord_All_PJ_api("true");
Get_List_Of_All_PJ(selected_class_id);
Get_Class_Catalogue_File(selected_class_id);
setfile_1_name();
setp_detail_one_file_to_download_type_name();
//GetCurrentClass_trainingsession();
@ -3961,6 +4053,7 @@ const AddClassManual = (props) => {
setDelete_one_attached_document_result(result['message']);
setDelete_one_attached_document_api("true");
Get_List_Of_All_PJ(selected_class_id);
Get_Class_Catalogue_File(selected_class_id);
// alert(result['message']);
setdisplay_alert_mysy("1");
setalert_message(result['message']);
@ -3997,8 +4090,66 @@ const AddClassManual = (props) => {
}
const [Get_Class_Catalogue_File_api, setGet_Class_Catalogue_File_api] = useState();
const [Get_Class_Catalogue_File_result, setGet_Class_Catalogue_File_result] = useState([]);
const [Get_Class_Catalogue_File_message, setGet_Class_Catalogue_File_message] = useState();
function Get_Class_Catalogue_File(local_employee_id) {
const formData = new FormData();
//formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA');
const stored_cookie = getCookie('tokenmysypart');
formData.append("token", stored_cookie);
formData.append("filter_object_owner_collection", "myclass");
formData.append("filter_object_owner_id", local_employee_id);
formData.append("filter_type_document", "catalogue_file");
//formData.append("class_internal_url", internal_url);
//console.log("token = " + stored_cookie);
setLoading(true);
fetch(
process.env.REACT_APP_API_URL + "myclass/api/Get_List_object_owner_collection_Stored_Files_With_Filter/",
{
method: 'POST',
body: formData,
}
)
.then((response) => response.json())
.then((result) => {
setLoading(false);
//console.log(" ## result['status'] = ", result['status'])
if (String(result['status']) === String("true")) {
//console.log('Message :', result['message']);
setGet_Class_Catalogue_File_result(result['message']);
setGet_Class_Catalogue_File_api("true");
}
else {
setGet_Class_Catalogue_File_message(result['message']);
setGet_Class_Catalogue_File_api("false");
}
})
.catch((error) => {
setLoading(false);
console.error(' Get_Class_Catalogue_File Error:', error);
setGet_Class_Catalogue_File_api("false");
});
}
const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState();
const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState();
const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState([]);
const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState();
function Get_List_Of_All_PJ(local_employee_id) {
@ -5575,6 +5726,7 @@ const AddClassManual = (props) => {
{String(props.formation_initiale) !== "1" &&
<div className="div_row" style={{ "border": "None", "marginLeft": '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>
{String(props.mytrainingclass.ref).trim() !== "" && <Button variant="outlined" onClick={submenu_piece_jointe}
className="detail_class_submenu" id='piece_jointe' name='piece_jointe'>Pièces Jointes </Button>}
</div>}
@ -7321,7 +7473,7 @@ const AddClassManual = (props) => {
resize: false,
height: 300,
menubar: true,
plugins: [
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
@ -7381,7 +7533,7 @@ const AddClassManual = (props) => {
resize: false,
height: 300,
menubar: true,
plugins: [
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
@ -7479,7 +7631,7 @@ const AddClassManual = (props) => {
resize: false,
height: 300,
menubar: true,
plugins: [
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
@ -7516,7 +7668,7 @@ const AddClassManual = (props) => {
resize: false,
height: 300,
menubar: true,
plugins: [
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
@ -7554,7 +7706,7 @@ const AddClassManual = (props) => {
resize: false,
height: 300,
menubar: true,
plugins: [
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
@ -7614,7 +7766,7 @@ const AddClassManual = (props) => {
resize: false,
height: 300,
menubar: true,
plugins: [
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
@ -7650,7 +7802,7 @@ const AddClassManual = (props) => {
resize: false,
height: 300,
menubar: true,
plugins: [
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
@ -7686,7 +7838,7 @@ const AddClassManual = (props) => {
resize: false,
height: 300,
menubar: true,
plugins: [
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
@ -7745,7 +7897,7 @@ const AddClassManual = (props) => {
resize: false,
height: 300,
menubar: true,
plugins: [
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
@ -7804,7 +7956,7 @@ const AddClassManual = (props) => {
resize: false,
height: 300,
menubar: true,
plugins: [
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
@ -7930,16 +8082,155 @@ const AddClassManual = (props) => {
</nav>
*/}
<nav >
&nbsp;
</nav>
</div>
}
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_bis"
style={{ "marginBottom": "10px", "marginTop": "1rem", fontFamily:"DM Sans" }} >
Fiche catalogue <br />
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row" style={{ "padding": "5px", "border": "None", "marginBottom": "1px" }}>
{Get_Class_Catalogue_File_result && Get_Class_Catalogue_File_result.length <= 0 && <div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
<input
style={{ display: "none" }}
id="upload-photo"
name="upload-photo"
type="file"
onChange={sessions_file_change_1}
/>
<Fab
color="secondary"
size="small"
component="span"
aria-label="add"
variant="extended"
>
<IoMdAddCircle /> <nav style={{ "fontSize": "12px" }}> Ajouter un fichier </nav>
</Fab>
</label>
</div>}
{file_1_name && file_1_name.name &&
<nav style={{ "fontSize": "12px" }}>
<div className="session_caract">Nom du fichier <br />
<TextField
name="file_to_download_type_name"
id="file_to_download_type_name"
InputLabelProps={{
shrink: true,
}}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style enable_style"
value={p_detail_one_file_to_download_type_name}
onChange={(e) => {
setp_detail_one_file_to_download_type_name(e.target.value);
}}
/>
</div>
<br />
<br />
Fichier : {file_1_name.name} <br /> <font style={{ "cursor": "pointer", fontFamily:"DM Sans" }}
onClick={Delete_file_1_name}> Supprimer <IoIosRemoveCircleOutline /> </font>
</nav>}
{Record_Class_Catalogue_File_api && String(Record_Class_Catalogue_File_api) === "true" && <div className="okUpdateData"> Pièce jointe enregistrée </div>}
{Record_Class_Catalogue_File_api && String(Record_Class_Catalogue_File_api) === "false" && <div className="koUpdateData"> {Record_Class_Catalogue_File_message} </div>}
</div>}
{file_1_name && file_1_name.name && <div className="div_row" style={{ "padding": "5px", "border": "none" }}>
<div className="div_row_gauche" style={{ "padding": "5px", "border": "none" }}>
<Button variant="contained" onClick={Record_Class_Catalogue_File}
startIcon={<AiTwotoneSave />} className="bton_enreg" style={{ "width": "80%", fontFamily:"DM Sans" }}>ENREGISTRER LA PIECE</Button>
</div>
</div>}
{Get_Class_Catalogue_File_result && <div className="div_row" style={{ "padding": "5px", "border": "None" }}>
<div className="div_row" style={{ "padding": "5px", "border": "None", "marginBottom": "1px" }}>
<div className="div_row" style={{ "padding": "5px", "border": "None", fontFamily:"DM Sans" }}>
{Get_Class_Catalogue_File_result && Get_Class_Catalogue_File_result.map((val) => (
<div className="div_row_list_pj" >
<nav name={(JSON.parse(val).file_name)}
id={(JSON.parse(val).file_name)}> <i> <AttachFileIcon />{(JSON.parse(val).file_business_object)} </i> <br /><font style={{ "color": "green", "cursor": "pointer" }}
name={(JSON.parse(val).file_name)}
id={(JSON.parse(val).file_name)} onClick={Download_one_attached_document}> Télécharger &nbsp;</font></nav>
{String(props.check_user_acces_right("formation", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la pièce jointe sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_one_attached_document(event);
close();
}}
name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}
> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>}
</div>
))}
</div>
</div>
</div>}
</div>}
<div className="div_row_bis" style={{ "marginBottom": "10px", "marginTop": "1rem" }} >
@ -7950,7 +8241,7 @@ const AddClassManual = (props) => {
2 - Image Bannière <br/>
3 - L'image par defaut du métier dans le système
">
<div className="div_row_gauche_image"> Image de profil <br />
<div className="div_row_gauche_image" style={{ fontFamily:"DM Sans"}}> Image de profil <br />
<img class="img_class_logo" src={userimgclassprofil} /><br />
</div>
@ -7966,7 +8257,7 @@ const AddClassManual = (props) => {
</div>}
</div>
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_bis tips_img_class">
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_bis tips_img_class" style={{fontFamily:"DM Sans"}}>
<li>
L'image doit etre carrée.
</li>

View File

@ -4774,7 +4774,7 @@ const AddParnerClient = (props) => {
/>
</div>
<div className="session_caract"> <b> Conditions Paiement aa </b><br />
<div className="session_caract"> <b> Conditions Paiement </b><br />
{/*String(formedit_mode_invoice) !== "1" && <TextField
required
name="client_invoice_paiement_condition"

View File

@ -1619,7 +1619,7 @@ const DisplayDetailClass_new_v2 = (props) => {
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_long_txt">
<div className="mob_info_page_title_desc_title">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_desc pourqui_block">
@ -2146,7 +2146,7 @@ const DisplayDetailClass_new_v2 = (props) => {
{DetailTraining["pourqui"] && String(DetailTraining["pourqui"]).length > 2 && <div className="block_info_page_pave_title_desc_long_text">
<div className="block_info_page_pave_title_desc_title ">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="block_info_page_pave_title_desc_desc pourqui_block">
{parse(String(DetailTraining["pourqui"]))}

View File

@ -1836,7 +1836,7 @@ const DisplayDetailClass_new_v3 = (props) => {
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_long_txt">
<div className="mob_info_page_title_desc_title">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_desc pourqui_block">
@ -2242,7 +2242,7 @@ const DisplayDetailClass_new_v3 = (props) => {
{DetailTraining["pourqui"] && String(DetailTraining["pourqui"]).length > 2 && <div className="block_info_page_pave_title_desc_long_text">
<div className="block_info_page_pave_title_desc_title ">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="block_info_page_pave_title_desc_desc pourqui_block">
{parse(String(DetailTraining["pourqui"]))}

View File

@ -15,7 +15,7 @@ import { Tooltip } from 'react-tooltip'
import TextareaAutosize from '@mui/material/TextareaAutosize';
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import fileDownload from 'js-file-download'
import fileDownload from 'js-file-download';
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcSearch } from "react-icons/fc";
@ -883,7 +883,7 @@ const DisplayPartnerPromotion = (props) => {
setAnchorEl(null);
if (option && String(option) === "Mise à jour") {
setdialogOpen_supp(true);
setdialogOpen_update(true);
}
else if (option && String(option) === "Valider Insc.") {
@ -905,8 +905,8 @@ const DisplayPartnerPromotion = (props) => {
</Menu>
{/*** GESTION Dialog menu pour la mise à jour */}
{dialogOpen_supp && <Dialog
open={dialogOpen_supp}
{dialogOpen_update && <Dialog
open={dialogOpen_update}
className="displaypartnersession"
static
onClose={() => null}
@ -936,7 +936,7 @@ const DisplayPartnerPromotion = (props) => {
<DialogContent className="DialogContent_width" style={{ background: '#fff', border: '1px solid #eaecee' }}>
<div>
<button className="gest_close" onClick={Dialog_menuitem_close_supp}>
<button className="gest_close" onClick={Dialog_menuitem_close_update}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
@ -950,7 +950,7 @@ const DisplayPartnerPromotion = (props) => {
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_update_data(event, working_cellValues_preisnc);
Dialog_menuitem_close_supp();
Dialog_menuitem_close_update();
}}> Valider </button>
</div>
@ -959,7 +959,7 @@ const DisplayPartnerPromotion = (props) => {
className="gest_bton_popup_annuler"
onClick={() => {
// console.log('modal closed ');
Dialog_menuitem_close_supp();
Dialog_menuitem_close_update();
}}
>
Annuler
@ -1213,6 +1213,10 @@ const DisplayPartnerPromotion = (props) => {
const [dialogOpen_update, setdialogOpen_update] = useState(false);
const Dialog_menuitem_close_update = () => {
setdialogOpen_update(false)
};
const [working_cellValues, setworking_cellValues] = useState(false);
@ -5230,6 +5234,7 @@ const DisplayPartnerPromotion = (props) => {
setLoading(false);
if (String(res.data.status) === String("true")) {
Get_List_Partner_Clients();
//console.log(" In Invoice_Session_Formation_By_Selected_Inscrit res.data.status = " + res.data.status);
//console.log(" In Invoice_Session_Formation_By_Selected_Inscrit res.data.message r_class = " + res.data.message);
setInvoice_Session_Formation_By_Selected_Inscrit_api("true");
@ -12307,8 +12312,8 @@ const DisplayPartnerPromotion = (props) => {
}
var url = process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Convention_From_Session_For_Selected_Inscrit_By_PDF/" + stored_cookie + "/" + selected_session_id + "/" + selected_convention_id + "/" + tab_my_inscription_ids;
console.log(" ### tab_my_inscription_ids = ", tab_my_inscription_ids);
console.log(" ### url = ", url);
// console.log(" ### tab_my_inscription_ids = ", tab_my_inscription_ids);
// console.log(" ### url = ", url);
@ -26386,6 +26391,7 @@ const DisplayPartnerPromotion = (props) => {
{String(selected_session_invoiced_statut) !== "1" && String(selected_session_invoiced_statut) !== "2" &&
<Button className="bton_emarge" onClick={(event, value) => {
Getall_Sequence_Of_Session(selected_session_id);
setVal([]);
setValo([]);
setDialog_Emargement_Selection_open(true);

View File

@ -886,7 +886,7 @@ const DisplayPartnerSession = (props) => {
setAnchorEl(null);
if (option && String(option) === "Mise à jour") {
setdialogOpen_supp(true);
setdialogOpen_update(true);
}
else if (option && String(option) === "Valider Insc.") {
@ -908,8 +908,8 @@ const DisplayPartnerSession = (props) => {
</Menu>
{/*** GESTION Dialog menu pour la mise à jour */}
{dialogOpen_supp && <Dialog
open={dialogOpen_supp}
{dialogOpen_update && <Dialog
open={dialogOpen_update}
className="displaypartnersession"
static
onClose={() => null}
@ -939,7 +939,7 @@ const DisplayPartnerSession = (props) => {
<DialogContent className="DialogContent_width" style={{ background: '#fff', border: '1px solid #eaecee' }}>
<div>
<button className="gest_close" onClick={Dialog_menuitem_close_supp}>
<button className="gest_close" onClick={Dialog_menuitem_close_update}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
@ -953,7 +953,7 @@ const DisplayPartnerSession = (props) => {
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_update_data(event, working_cellValues_preisnc);
Dialog_menuitem_close_supp();
Dialog_menuitem_close_update();
}}> Valider </button>
</div>
@ -962,7 +962,7 @@ const DisplayPartnerSession = (props) => {
className="gest_bton_popup_annuler"
onClick={() => {
// console.log('modal closed ');
Dialog_menuitem_close_supp();
Dialog_menuitem_close_update();
}}
>
Annuler
@ -1217,6 +1217,12 @@ const DisplayPartnerSession = (props) => {
const [dialogOpen_update, setdialogOpen_update] = useState(false);
const Dialog_menuitem_close_update = () => {
setdialogOpen_update(false)
};
const [working_cellValues, setworking_cellValues] = useState(false);
const [dialogOpen_supp, setdialogOpen_supp] = useState(false);
@ -3812,6 +3818,7 @@ const DisplayPartnerSession = (props) => {
}
function submenu_preinscrit() {
Get_List_Partner_Clients();
setsubmenu("preinscrit");
GetListePreinscrit(selected_session_id, selected_internal_url);
@ -3819,6 +3826,7 @@ const DisplayPartnerSession = (props) => {
}
function submenu_inscrit() {
Get_List_Partner_Clients();
setsubmenu("inscrit");
GetListeInscrit(selected_session_id, selected_internal_url);
@ -5243,6 +5251,7 @@ const DisplayPartnerSession = (props) => {
setLoading(false);
if (String(res.data.status) === String("true")) {
Get_List_Partner_Clients();
//console.log(" In Invoice_Session_Formation_By_Selected_Inscrit res.data.status = " + res.data.status);
//console.log(" In Invoice_Session_Formation_By_Selected_Inscrit res.data.message r_class = " + res.data.message);
setInvoice_Session_Formation_By_Selected_Inscrit_api("true");
@ -17820,7 +17829,7 @@ const DisplayPartnerSession = (props) => {
<div className="session_caract_Dialog" > yyyChoisir un modèle d'émargement
<div className="session_caract_Dialog" > Choisir un modèle d'émargement
<Autocomplete
disablePortal
name="event_dialog_version_emargement"
@ -26452,6 +26461,7 @@ const DisplayPartnerSession = (props) => {
{String(selected_session_invoiced_statut) !== "1" && String(selected_session_invoiced_statut) !== "2" &&
<Button className="bton_emarge" onClick={(event, value) => {
Getall_Sequence_Of_Session(selected_session_id);
setVal([]);
setValo([]);
setDialog_Emargement_Selection_open(true);

View File

@ -1401,7 +1401,7 @@ const Display_Action_And_Class = (props) => {
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_long_txt">
<div className="mob_info_page_title_desc_title">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_desc pourqui_block">
@ -1584,7 +1584,7 @@ const Display_Action_And_Class = (props) => {
{DetailTraining["pourqui"] && String(DetailTraining["pourqui"]).length > 2 && <div className="block_info_page_pave_title_desc_long_text">
<div className="block_info_page_pave_title_desc_title ">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="block_info_page_pave_title_desc_desc pourqui_block">
{parse(String(DetailTraining["pourqui"]))}

View File

@ -2,33 +2,26 @@ import React, { useRef, useState, useEffect } from "react";
import "./detail_formation_automatic_files/new_s_detail_formation_2025.css";
import Fotter_Catalog_Pub from "./Fotter_Catalog_Pub";
import fileDownload from 'js-file-download';
import SendIcon from '@mui/icons-material/Send';
import { useParams } from 'react-router-dom'
import axios from "axios";
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import bannerimg2 from "../mysy_img/MYSY-LOGO-BLUE.png";
import logowhite from "../mysy_img/MYSY-LOGO-WHITE.png";
import { Helmet } from "react-helmet";
import 'react-slideshow-image/dist/styles.css'
import { Fade } from 'react-slideshow-image';
import slideimg1 from "../mysy_img/education.jpg";
import slideimg4 from "../mysy_img/mysy_img.png";
import Footer from "./Fotter";
import Header from "./Header";
import bannerimg from "../mysy_img/MYSY_banner_compte.png";
import img_met_program from "../mysy_img/met_programmation.jpg";
import img_met_hotel from "../mysy_img/met_hotel.jpg";
import img_met_graphisme from "../mysy_img/metier_graphisme.jpg";
import img_met_autre from "../mysy_img/met_autre.jpg";
import img_met_digital from "../mysy_img/met_digital.jpg";
import img_met_management from "../mysy_img/met_management.jpg";
import img_met_projet from "../mysy_img/met_projet.jpg";
import img_met_market from "../mysy_img/met_market.jpg";
import img_met_autre2 from "../mysy_img/met_autre2.jpg";
import img_met_dev_perso from "../mysy_img/metier_dev_perso.jpg";
import img_met_rh from "../mysy_img/met_rh.jpg";
@ -42,18 +35,14 @@ import img_met_sante_nat from "../mysy_img/met_sante_nat.jpeg";
import { Button, } from "reactstrap";
import { useHistory } from "react-router-dom";
import { useCookies } from "react-cookie";
import { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from "react-share";
import { SocialIcon } from 'react-social-icons';
import { confirmAlert } from 'react-confirm-alert';
//import { Rating } from 'react-simple-star-rating';
import Rating from '@mui/material/Rating';
import parse from 'html-react-parser';
import Inscription from "./Inscription_Information";
import mysy_logo2 from "../mysy_img2/Logo_MySy.png"
import { FaSearch, FaRegArrowAltCircleDown, FaRegArrowAltCircleUp } from 'react-icons/fa';
import { areOptionsEqual } from "@mui/base";
import { style } from "@mui/system";
import Accordion from '@mui/material/Accordion';
import AccordionDetails from '@mui/material/AccordionDetails';
@ -402,6 +391,54 @@ const Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
}
const [Get_Class_Catalogue_File_api, setGet_Class_Catalogue_File_api] = useState();
const [Get_Class_Catalogue_File_result, setGet_Class_Catalogue_File_result] = useState([]);
const [Get_Class_Catalogue_File_message, setGet_Class_Catalogue_File_message] = useState();
function Get_Class_Catalogue_File(class_id) {
const formData = new FormData();
formData.append("filter_object_owner_collection", "myclass");
formData.append("filter_object_owner_id", class_id);
formData.append("filter_type_document", "catalogue_file");
//formData.append("class_internal_url", internal_url);
//console.log("token = " + stored_cookie);
fetch(
process.env.REACT_APP_API_URL + "myclass/api/Get_List_object_owner_collection_Stored_Files_With_Filter_No_Token/",
{
method: 'POST',
body: formData,
}
)
.then((response) => response.json())
.then((result) => {
//console.log(" ## result['status'] = ", result['status'])
if (String(result['status']) === String("true")) {
//console.log('Message :', result['message']);
setGet_Class_Catalogue_File_result(result['message']);
setGet_Class_Catalogue_File_api("true");
}
else {
setGet_Class_Catalogue_File_message(result['message']);
setGet_Class_Catalogue_File_api("false");
}
})
.catch((error) => {
console.error(' Get_Class_Catalogue_File Error:', error);
setGet_Class_Catalogue_File_api("false");
});
}
function Display(e) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_class_for_partner_catalog/";
@ -526,6 +563,8 @@ const Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
getClassImage_no_token(JSON.parse(res.data.message)._id, JSON.parse(res.data.message).external_code);
Get_Class_Catalogue_File(JSON.parse(res.data.message)._id);
if (JSON.parse(res.data.message).note) {
setratingvalue(JSON.parse(res.data.message).note);
}
@ -600,137 +639,137 @@ const Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
//console.log("nb_partner_certificat = ", JSON.parse(res.data.message).nb_partner_certificat);
if (window.screen.width < 601) {
var decalage_pr_certificat = parseInt(String(JSON.parse(res.data.message).nb_partner_certificat)) * 150;
//console.log("decalage_pr_certificat = ", decalage_pr_certificat);
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
//console.log("### local_val = ", local_val)
if (local_val >= 5) {
//console.log(" ON PASSE&nbsp; au&nbsp;MAX")
var local_tmp_val = 2300 + decalage_pr_certificat;
var local_main_h_px = 4000 + decalage_pr_certificat;
//console.log("### local_tmp_val = ", local_tmp_val, " local_main_h_px = ",local_main_h_px);
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
var local_tmp_val = 2800 + decalage_pr_certificat;
var local_main_h_px = 4500 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
}
} else {
//console.log(" ON PASSE&nbsp; au&nbsp;MIN");
var local_tmp_val = 2100 + decalage_pr_certificat;
var local_main_h_px = 4800 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
var local_tmp_val = 2600 + decalage_pr_certificat;
var local_main_h_px = 5300 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
}
}
document.getElementById('mob_block_cross_sell_cat').style.top = local_tmp;
document.getElementById('mobile').style.height = main_h_px;
}
if (window.screen.width >= 601 && window.screen.width <= 991) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
//console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2700px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2200px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
if (window.screen.width >= 992 && window.screen.width <= 1199) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2800px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2200px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
if (window.screen.width >= 1200) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2800px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2300px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
/*
if (window.screen.width < 601) {
var decalage_pr_certificat = parseInt(String(JSON.parse(res.data.message).nb_partner_certificat)) * 150;
//console.log("decalage_pr_certificat = ", decalage_pr_certificat);
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
//console.log("### local_val = ", local_val)
if (local_val >= 5) {
//console.log(" ON PASSE&nbsp; au&nbsp;MAX")
var local_tmp_val = 2300 + decalage_pr_certificat;
var local_main_h_px = 4000 + decalage_pr_certificat;
//console.log("### local_tmp_val = ", local_tmp_val, " local_main_h_px = ",local_main_h_px);
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
var local_tmp_val = 2800 + decalage_pr_certificat;
var local_main_h_px = 4500 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
}
} else {
//console.log(" ON PASSE&nbsp; au&nbsp;MIN");
var local_tmp_val = 2100 + decalage_pr_certificat;
var local_main_h_px = 4800 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
var local_tmp_val = 2600 + decalage_pr_certificat;
var local_main_h_px = 5300 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
}
}
document.getElementById('mob_block_cross_sell_cat').style.top = local_tmp;
document.getElementById('mobile').style.height = main_h_px;
}
if (window.screen.width >= 601 && window.screen.width <= 991) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
//console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2700px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2200px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
if (window.screen.width >= 992 && window.screen.width <= 1199) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2800px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2200px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
if (window.screen.width >= 1200) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2800px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2300px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
*/
}
}
@ -1256,8 +1295,9 @@ const Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
const subdomain = domain.split('.')[0];
var form = new FormData();
form.append("subdomain", "colasrail");
// form.append("subdomain", "nousformons");
// form.append("subdomain", "colasrail");
// form.append("subdomain", "nousformons");
form.append("subdomain", subdomain);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_Data_From_Subdomain/";
@ -1365,6 +1405,34 @@ const Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
const myRef_informe = useRef(null)
/// ----
const [Download_one_attached_document_no_token_api, setDownload_one_attached_document_no_token_api] = useState();
const [Download_one_attached_document_no_token_result, setDownload_one_attached_document_no_token_result] = useState();
const [Download_one_attached_document_no_token_message, setDownload_one_attached_document_no_token_message] = useState();
const Download_one_attached_document_no_token = (event) => {
var nom_fiche_detaillee = "Fiche_catalogue.pdf";
var file_name = event.target.id;
var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File_From_Id_WITHOUT_TOKEN/" + file_name;
// console.log(" ### url = ", url);
axios.get(url, { responseType: 'blob', },)
.then((res) => {
fileDownload(res.data, nom_fiche_detaillee);
setDownload_one_attached_document_no_token_api("true");
}).catch((error) => {
console.error('Error:', error);
setDownload_one_attached_document_no_token_api("false");
});
}
return (
<div className="displaydetailclass_new_v3 new_detail_formation_2025">
@ -2046,7 +2114,7 @@ const Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_long_txt">
<div className="mob_info_page_title_desc_title">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_desc pourqui_block">
@ -2310,9 +2378,18 @@ const Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
</div>
}
<br />
{Get_Class_Catalogue_File_result && Get_Class_Catalogue_File_result.length > 0 && <div className="row_download_fiche">
<nav className="bton_download_fiche" name={(JSON.parse(Get_Class_Catalogue_File_result[0])._id)}
id={(JSON.parse(Get_Class_Catalogue_File_result[0])._id)} onClick={Download_one_attached_document_no_token}>
Télécharger fiche détaillée
</nav>
</div>}
<div className="block_info_page_pave_title_desc">
<div className="block_info_page_pave_title_desc_title"> Description
@ -2480,7 +2557,7 @@ const Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
{DetailTraining["pourqui"] && String(DetailTraining["pourqui"]).length > 2 && <div className="block_info_page_pave_title_desc_long_text">
<div className="block_info_page_pave_title_desc_title ">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="block_info_page_pave_title_desc_desc pourqui_block">
{parse(String(DetailTraining["pourqui"]))}

View File

@ -269,7 +269,7 @@ const Ent_Student_Affichage_Ftion_Grid = (props) => {
maxWidth: '100%',
height: '200px',
overflow: 'hidden',
marginTop: '-2rem'
margin: "auto",
},
content: {

View File

@ -130,7 +130,7 @@ function Inscription_Information(props) {
var nom = leads_nom;
console.log(" ## leads_nom ==", leads_nom)
// console.log(" ## leads_nom ==", leads_nom)
if (String(nom).trim().length <= 0) {
document.getElementsByName("nom")[0].style.borderColor = "red";
@ -746,9 +746,7 @@ function Inscription_Information(props) {
formData.append('is_company', is_company);
console.log(" ### formData = ", formData);
return;
// console.log(" ### formData = ", formData);
fetch(
url,

View File

@ -266,10 +266,10 @@ const Formation_Partner_Catalog_Special_JMJFormation = (props) => {
flexDirection: 'column',
},
image: {
maxWidth: '100%',
maxWidth: '100%',
height: '200px',
overflow: 'hidden',
marginTop: '-2rem'
margin: "auto",
},
content: {

View File

@ -1768,7 +1768,7 @@ const JmJ_Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_long_txt">
<div className="mob_info_page_title_desc_title">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_desc pourqui_block">
@ -2283,7 +2283,7 @@ const JmJ_Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
{DetailTraining["pourqui"] && String(DetailTraining["pourqui"]).length > 2 && <div className="block_info_page_pave_title_desc_long_text">
<div className="block_info_page_pave_title_desc_title ">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="block_info_page_pave_title_desc_desc pourqui_block">
{parse(String(DetailTraining["pourqui"]))}

View File

@ -4409,7 +4409,7 @@ const Jmjformation_Catalogue_Public = (props) => {
</div>
<div style={{ width: '100%' }}>
<div style={{ width: '100%', marginBottom:"1rem" }}>
<div className="block_display_flex_formation" style={{ width: '100%' }}>

View File

@ -200,6 +200,7 @@ const Module_Editique = (props) => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Invoice_Session_Formation res.data.status = " + res.data.status);
//console.log(" In Invoice_Session_Formation res.data.message r_class = " + res.data.message);
setInvoice_Session_Formation_api("true");
@ -1486,7 +1487,7 @@ const Module_Editique = (props) => {
const Dialog_Acces_Right_handleClose_buton = () => {
setDialog_Acces_Right_open(false);
};
};
const New_Option_Automatic_Doc_Action_Target = [
{ "id": "start_session", "label": "Date Début Session", "value": "start_session" },
@ -1502,7 +1503,7 @@ const Module_Editique = (props) => {
]
const New_Option_Automatic_Doc_Action_Target_For_Q_Position = [
{ "id": "start_session", "label": "Date Début Session", "value": "start_session" },
{ "id": "start_session", "label": "Date Début Session", "value": "start_session" },
{ "id": "end_session", "label": "Date Fin Session", "value": "end_session" },
{ "id": "preinscription", "label": "A la pré-inscription", "value": "preinscription" },
{ "id": "inscription", "label": "A l'inscription", "value": "inscription" },
@ -1511,11 +1512,11 @@ const Module_Editique = (props) => {
const New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL = [
{ "id": "start_session", "label": "Date Début Session", "value": "start_session" },
{ "id": "start_session", "label": "Date Début Session", "value": "start_session" },
{ "id": "end_session", "label": "Date Fin Session", "value": "end_session" },
{ "id": "preinscription", "label": "A la pré-inscription", "value": "preinscription" },
{ "id": "inscription", "label": "A l'inscription", "value": "inscription" },
{ "id": "every_session_sequence_day", "label": "Envoyer chaque jour", "value": "every_session_sequence_day" },
{ "id": "every_session_sequence_day", "label": "Envoyer chaque jour", "value": "every_session_sequence_day" },
{ "id": "", "label": "", "value": "" },
]
@ -1718,8 +1719,8 @@ const Module_Editique = (props) => {
/>}
</div>
{(String(p_doc_automatic_setup_action_target_date) === "start_session" || String(p_doc_automatic_setup_action_target_date) === "end_session") &&
{(String(p_doc_automatic_setup_action_target_date) === "start_session" || String(p_doc_automatic_setup_action_target_date) === "end_session") &&
<div className="session_caract_Dialog"> Nb Jours <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -1755,8 +1756,8 @@ const Module_Editique = (props) => {
{String(p_doc_automatic_setup_nom_document) !== "EMARGEMENT" &&
String(p_doc_automatic_setup_nom_document) !== "QUESTION POSITIONNEMENT" &&
<Autocomplete
String(p_doc_automatic_setup_nom_document) !== "QUESTION POSITIONNEMENT" &&
<Autocomplete
disablePortal
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 } }}
@ -1809,7 +1810,7 @@ const Module_Editique = (props) => {
}
/>}
{String(p_doc_automatic_setup_nom_document) === "QUESTION POSITIONNEMENT" &&
{String(p_doc_automatic_setup_nom_document) === "QUESTION POSITIONNEMENT" &&
<Autocomplete
disablePortal
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 } }}
@ -3180,9 +3181,9 @@ const Module_Editique = (props) => {
>
{x && String(x.actif) === "1" && New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.length > 0 &&
<nav>
<nav>
<Tooltip className="tooltip_css" id={x.courrier_template_type_document_id} style={{ textAlign: 'left' }} />
{(String(x.action_target_date) === "start_session" || String(x.action_target_date) === "end_session") && <a data-tooltip-id={x.courrier_template_type_document_id}
{(String(x.action_target_date) === "start_session" || String(x.action_target_date) === "end_session") && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={" Traitement Automatique : Oui <br/> Nb Jours : " + `${x.nb_jour_action}` + " <br/>Date Cible: " + `${x.action_target_date}` + " <br/>Exécution dans : " + `${x.delta_day}` + " Jour(s)"}>
{String(x.delta_day) < "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#FFA500' }} />}
@ -3190,8 +3191,8 @@ const Module_Editique = (props) => {
</a>}
{String(x.action_target_date) !== "start_session" && String(x.action_target_date) !== "end_session" && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={"Traitement Automatique : Oui <br/>Exécution : " + `${New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.filter((data) => (data).value === String(x.action_target_date))[0].label}` }>
{String(x.action_target_date) !== "start_session" && String(x.action_target_date) !== "end_session" && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={"Traitement Automatique : Oui <br/>Exécution : " + `${New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.filter((data) => (data).value === String(x.action_target_date))[0].label}`}>
{String(x.delta_day) < "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#FFA500' }} />}
{String(x.delta_day) >= "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#218e1f' }} />}
@ -3375,9 +3376,9 @@ const Module_Editique = (props) => {
>
{x && String(x.actif) === "1" && New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.length > 0 &&
<nav>
<nav>
<Tooltip className="tooltip_css" id={x.courrier_template_type_document_id} style={{ textAlign: 'left' }} />
{(String(x.action_target_date) === "start_session" || String(x.action_target_date) === "end_session") && <a data-tooltip-id={x.courrier_template_type_document_id}
{(String(x.action_target_date) === "start_session" || String(x.action_target_date) === "end_session") && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={" Traitement Automatique : Oui <br/> Nb Jours : " + `${x.nb_jour_action}` + " <br/>Date Cible: " + `${x.action_target_date}` + " <br/>Exécution dans : " + `${x.delta_day}` + " Jour(s)"}>
{String(x.delta_day) < "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#FFA500' }} />}
@ -3385,8 +3386,8 @@ const Module_Editique = (props) => {
</a>}
{String(x.action_target_date) !== "start_session" && String(x.action_target_date) !== "end_session" && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={"Traitement Automatique : Oui <br/>Exécution : " + `${New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.filter((data) => (data).value === String(x.action_target_date))[0].label}` }>
{String(x.action_target_date) !== "start_session" && String(x.action_target_date) !== "end_session" && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={"Traitement Automatique : Oui <br/>Exécution : " + `${New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.filter((data) => (data).value === String(x.action_target_date))[0].label}`}>
{String(x.delta_day) < "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#FFA500' }} />}
{String(x.delta_day) >= "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#218e1f' }} />}
@ -3568,9 +3569,9 @@ const Module_Editique = (props) => {
>
{x && String(x.actif) === "1" && New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.length > 0 &&
<nav>
<nav>
<Tooltip className="tooltip_css" id={x.courrier_template_type_document_id} style={{ textAlign: 'left' }} />
{(String(x.action_target_date) === "start_session" || String(x.action_target_date) === "end_session") && <a data-tooltip-id={x.courrier_template_type_document_id}
{(String(x.action_target_date) === "start_session" || String(x.action_target_date) === "end_session") && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={" Traitement Automatique : Oui <br/> Nb Jours : " + `${x.nb_jour_action}` + " <br/>Date Cible: " + `${x.action_target_date}` + " <br/>Exécution dans : " + `${x.delta_day}` + " Jour(s)"}>
{String(x.delta_day) < "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#FFA500' }} />}
@ -3578,8 +3579,8 @@ const Module_Editique = (props) => {
</a>}
{String(x.action_target_date) !== "start_session" && String(x.action_target_date) !== "end_session" && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={"Traitement Automatique : Oui <br/>Exécution : " + `${New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.filter((data) => (data).value === String(x.action_target_date))[0].label}` }>
{String(x.action_target_date) !== "start_session" && String(x.action_target_date) !== "end_session" && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={"Traitement Automatique : Oui <br/>Exécution : " + `${New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.filter((data) => (data).value === String(x.action_target_date))[0].label}`}>
{String(x.delta_day) < "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#FFA500' }} />}
{String(x.delta_day) >= "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#218e1f' }} />}
@ -3664,9 +3665,9 @@ const Module_Editique = (props) => {
>
{x && String(x.actif) === "1" && New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.length > 0 &&
<nav>
<nav>
<Tooltip className="tooltip_css" id={x.courrier_template_type_document_id} style={{ textAlign: 'left' }} />
{(String(x.action_target_date) === "start_session" || String(x.action_target_date) === "end_session") && <a data-tooltip-id={x.courrier_template_type_document_id}
{(String(x.action_target_date) === "start_session" || String(x.action_target_date) === "end_session") && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={" Traitement Automatique : Oui <br/> Nb Jours : " + `${x.nb_jour_action}` + " <br/>Date Cible: " + `${x.action_target_date}` + " <br/>Exécution dans : " + `${x.delta_day}` + " Jour(s)"}>
{String(x.delta_day) < "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#FFA500' }} />}
@ -3674,8 +3675,8 @@ const Module_Editique = (props) => {
</a>}
{String(x.action_target_date) !== "start_session" && String(x.action_target_date) !== "end_session" && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={"Traitement Automatique : Oui <br/>Exécution : " + `${New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.filter((data) => (data).value === String(x.action_target_date))[0].label}` }>
{String(x.action_target_date) !== "start_session" && String(x.action_target_date) !== "end_session" && <a data-tooltip-id={x.courrier_template_type_document_id}
data-tooltip-html={"Traitement Automatique : Oui <br/>Exécution : " + `${New_Option_Automatic_Doc_Action_Target_GLOBAL_FOR_ALL.filter((data) => (data).value === String(x.action_target_date))[0].label}`}>
{String(x.delta_day) < "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#FFA500' }} />}
{String(x.delta_day) >= "0" && <MdFlashAuto style={{ fontSize: '25px', color: '#218e1f' }} />}

View File

@ -2232,7 +2232,7 @@ const Module_Ent_Mes_Formations = (props) => {
{
affichage_class && String(affichage_class) === "grid" && <div className="div_row" style={{ paddingRight: '10px' }}>
<div style={{ width: '100%', float: 'left', }}>
<div style={{ width: '100%', float: 'left', marginBottom:"1rem" }}>
<div className="block_display_flex_formation">
{New_Get_List_Ent_Formation_result && New_Get_List_Ent_Formation_result.map((formation) => (

View File

@ -1,6 +1,6 @@
import React, { useRef, useState, useEffect } from "react";
import TextField from '@mui/material/TextField';
import fileDownload from 'js-file-download';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
@ -2013,6 +2013,7 @@ const Module_Session_Notes_Classement = (props) => {
const [actionmass_ftion_val, setactionmass_ftion_val] = useState();
const New_Option = [
{ "id": "0", "label": "(R)Inscrire", "value": "inscription" },
{ "id": "1", "label": "Imp. Bulletin", "value": "print_bulletin" },
{ "id": "2", "label": "", "value": "" },
]
@ -2167,6 +2168,51 @@ const Module_Session_Notes_Classement = (props) => {
}
function Download_Bulletins_Notes() {
const stored_cookie = getCookie('tokenmysypart');
var nom_fichier_cmd = "Bulletin.zip";
var tab_inscrit_ids = []
for (var i = 0; i < selectionModel_note_Session_classement.length; i++) {
var myid = parseInt(String(selectionModel_note_Session_classement[i]));
var line = New_Getall_Session_Final_Note_Classement_result[myid];
tab_inscrit_ids.push(line._id);
//console.log(rowss[myid]['external_code']);
}
// console.log(" ### tab_inscrit_ids = ", tab_inscrit_ids)
var url = process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Inscrit_Bulletin_Note_By_PDF/" + stored_cookie + "/" + tab_inscrit_ids + "/685ebd41ed392125a88f1574";
setLoading(true);
axios.get(url, { responseType: 'blob', },)
.then((res) => {
setLoading(false);
//console.log(" In Download_Stagiaire_Conventions_PDF res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible de télécharger les bulletins (2) ");
} else {
fileDownload(res.data, nom_fichier_cmd);
setactionmass_ftion_val("");
}
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
setdisplay_alert_mysy("1");
setalert_message(" Impossible de télécharger les bulletins");
setalert_type("error");
});
}
const [Add_Inscription_List_Apprenant_api, setAdd_Inscription_List_Apprenant_api] = useState();
const [Add_Inscription_List_Apprenant_message, setAdd_Inscription_List_Apprenant_message] = useState();
const [Add_Inscription_List_Apprenant_result, setAdd_Inscription_List_Apprenant_result] = useState();
@ -2425,7 +2471,7 @@ const Module_Session_Notes_Classement = (props) => {
<DialogActions>
<IconButton
autoFocus
// autoFocus
onClick={Dialog_add_inscription_handleClose_buton}
color="primary"
className={classes.customizedButton}
@ -2802,11 +2848,12 @@ const Module_Session_Notes_Classement = (props) => {
options={New_Option}
onChange={(event, value) => {
if (value && value.value) {
if (String(value.value) === "inscription") {
if (String(value.value) === "inscription"
|| String(value.value) === "print_bulletin") {
setactionmass_ftion_val(value.value);
}
else {
setactionmass_ftion_val();
setactionmass_ftion_val("");
}
}
@ -2833,6 +2880,16 @@ const Module_Session_Notes_Classement = (props) => {
</nav>}
{actionmass_ftion_val && String(actionmass_ftion_val) === "print_bulletin" && <nav className='block_en_mass_bton_action'>
<Button className="bton_enreg" style={{ "width": "90%" }} onClick={(event) => {
Download_Bulletins_Notes();
}}>
<FcAcceptDatabase /> Traiter
</Button>
</nav>}
</div>}

View File

@ -3,7 +3,7 @@ import { useForm } from "react-hook-form";
import axios from "axios";
import Formation_Partner_Catalog from "./Formation_Partner_Catalog";
import { FaSearch, FaRegArrowAltCircleDown, FaRegArrowAltCircleUp } from 'react-icons/fa';
import { IoAppsSharp, IoListSharp } from "react-icons/io5";
import Formation_Grid_2Col from "./Formation_Grid_2Col";
import Pagination from "./TestPagination";
@ -4877,7 +4877,7 @@ const Mon_Catalogue_Public = (props) => {
</div>
<div style={{ width: '100%' }}>
<div style={{ width: '100%', marginBottom:"1rem" }}>
<div className="block_display_flex_formation" style={{ width: '100%' }}>

View File

@ -1,7 +1,7 @@
import React, { useState, useEffect } from "react";
import { useHistory } from "react-router-dom";
import { useCookies } from "react-cookie";
import { confirmAlert } from 'react-confirm-alert';
@ -23,7 +23,7 @@ import axios from "axios";
import Rating from '@mui/material/Rating';
import parse from 'html-react-parser'
import { CiLocationOn } from "react-icons/ci";
const New_C_Formation_2025 = (props) => {
const [userconnected, setuserconnected] = useState("0");
const [partnerconnected, setpartnerconnected] = useState("0");
@ -265,11 +265,12 @@ const New_C_Formation_2025 = (props) => {
display: 'flex',
flexDirection: 'column',
},
image: {
maxWidth: '100%',
height: '200px',
overflow: 'hidden',
marginTop: '-2rem'
margin: "auto",
},
content: {
@ -420,7 +421,7 @@ const New_C_Formation_2025 = (props) => {
{/*props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par : <br />
{String(props.formation.institut_formation)} </div>*/}
</div>}
<div className="block_main_contente">
<div className="block_top_content">
@ -441,8 +442,8 @@ const New_C_Formation_2025 = (props) => {
<p style={{ width: '100%', float: 'left' }}>
<p className="formation_prix" style={{ width: '100%', float: 'left' }}>{props.formation.business_prices[0].discounted_price} HT&nbsp;
<font className='training_price_barre' style={{ fontSize:'14px' }}> {props.formation.price} HT &nbsp;</font>
<font className='discount_block' style={{ fontSize:'14px' }}> ({props.formation.business_prices[0].discount} %) </font></p>
<font className='training_price_barre' style={{ fontSize: '14px' }}> {props.formation.price} HT &nbsp;</font>
<font className='discount_block' style={{ fontSize: '14px' }}> ({props.formation.business_prices[0].discount} %) </font></p>
</p>}
<p className="formation_description"> {String(parse(String(props.formation.description).replace(/(<([^>]+)>)/ig, ''))).substring(0, 80)}...</p>
@ -472,7 +473,7 @@ const New_C_Formation_2025 = (props) => {
</div>
</div>
)

View File

@ -1967,8 +1967,8 @@ const Partner = (props) => {
{String(menu) !== "affichage" && <MenuItem onClick={DiplaytrainingList} className="sousmenu" icon={<FcList className="icone_menu" />}> CATALOGUE </MenuItem>}
{String(menu) === "affichage" && <MenuItem onClick={DiplaytrainingList} className="sousmenu_selected" icon={<FcList className="icone_menu" />}> CATALOGUE </MenuItem>}
{String(formation_initiale) === "1" && String(menu) !== "mes_ue" && <MenuItem onClick={DiplayPartner_UE} className="sousmenu" icon={<FcOrgUnit className="icone_menu" />}> UNIT. ENSEI. </MenuItem>}
{String(formation_initiale) === "1" && String(menu) === "mes_ue" && <MenuItem onClick={DiplayPartner_UE} className="sousmenu_selected" icon={<FcOrgUnit className="icone_menu" />}> UNIT. ENSEI. </MenuItem>}
{String(menu) !== "mes_ue" && <MenuItem onClick={DiplayPartner_UE} className="sousmenu" icon={<FcOrgUnit className="icone_menu" />}> UNIT. ENSEI. </MenuItem>}
{String(menu) === "mes_ue" && <MenuItem onClick={DiplayPartner_UE} className="sousmenu_selected" icon={<FcOrgUnit className="icone_menu" />}> UNIT. ENSEI. </MenuItem>}
{String(menu) !== "domaine_categorie_metier" && <MenuItem onClick={DiplayPartner_Domaine_Categorie_Metier} className="sousmenu" icon={<FcEngineering className="icone_menu" />}> CARACTERISTIQUES </MenuItem>}
{String(menu) === "domaine_categorie_metier" && <MenuItem onClick={DiplayPartner_Domaine_Categorie_Metier} className="sousmenu_selected" icon={<FcEngineering className="icone_menu" />}> CARACTERISTIQUES </MenuItem>}

View File

@ -2708,7 +2708,7 @@ function UpdateParnterInfo(props) {
}).catch((error) => {
setLoading(false);
console.warn('UpdateStagiaireData : Not good man :( Add_Update_Catalog_Pub_Banniere = ' + error);
console.warn('Add_Update_Catalog_Pub_Banniere : Not good man :( Add_Update_Catalog_Pub_Banniere = ' + error);
setAdd_Update_Catalog_Pub_Banniere_api("false");
alert(" Impossible de mettre à jour la bannière ");

View File

@ -4,7 +4,7 @@ import { useParams } from 'react-router-dom'
import axios from "axios";
import { FcInfo } from "react-icons/fc";
import 'reactjs-popup/dist/index.css';
import fileDownload from 'js-file-download';
import { Helmet } from "react-helmet";
import 'react-slideshow-image/dist/styles.css'
import 'react-tooltip/dist/react-tooltip.css'
@ -360,6 +360,56 @@ const New_C_Detail_Formation_2025 = (props) => {
}
const [Get_Class_Catalogue_File_api, setGet_Class_Catalogue_File_api] = useState();
const [Get_Class_Catalogue_File_result, setGet_Class_Catalogue_File_result] = useState([]);
const [Get_Class_Catalogue_File_message, setGet_Class_Catalogue_File_message] = useState();
function Get_Class_Catalogue_File(class_id) {
const formData = new FormData();
formData.append("filter_object_owner_collection", "myclass");
formData.append("filter_object_owner_id", class_id);
formData.append("filter_type_document", "catalogue_file");
//formData.append("class_internal_url", internal_url);
//console.log("token = " + stored_cookie);
fetch(
process.env.REACT_APP_API_URL + "myclass/api/Get_List_object_owner_collection_Stored_Files_With_Filter_No_Token/",
{
method: 'POST',
body: formData,
}
)
.then((response) => response.json())
.then((result) => {
//console.log(" ## result['status'] = ", result['status'])
if (String(result['status']) === String("true")) {
//console.log('Message :', result['message']);
setGet_Class_Catalogue_File_result(result['message']);
setGet_Class_Catalogue_File_api("true");
}
else {
setGet_Class_Catalogue_File_message(result['message']);
setGet_Class_Catalogue_File_api("false");
}
})
.catch((error) => {
console.error(' Get_Class_Catalogue_File Error:', error);
setGet_Class_Catalogue_File_api("false");
});
}
function Display(e) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_class/";
@ -484,6 +534,9 @@ const New_C_Detail_Formation_2025 = (props) => {
getClassImage_no_token(JSON.parse(res.data.message)._id, JSON.parse(res.data.message).external_code);
Get_Class_Catalogue_File(JSON.parse(res.data.message)._id);
if (JSON.parse(res.data.message).note) {
setratingvalue(JSON.parse(res.data.message).note);
}
@ -559,136 +612,139 @@ const New_C_Detail_Formation_2025 = (props) => {
//console.log("nb_partner_certificat = ", JSON.parse(res.data.message).nb_partner_certificat);
if (window.screen.width < 601) {
var decalage_pr_certificat = parseInt(String(JSON.parse(res.data.message).nb_partner_certificat)) * 150;
//console.log("decalage_pr_certificat = ", decalage_pr_certificat);
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
//console.log("### local_val = ", local_val)
if (local_val >= 5) {
//console.log(" ON PASSE&nbsp; au&nbsp;MAX")
var local_tmp_val = 2300 + decalage_pr_certificat;
var local_main_h_px = 4000 + decalage_pr_certificat;
//console.log("### local_tmp_val = ", local_tmp_val, " local_main_h_px = ",local_main_h_px);
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
var local_tmp_val = 2800 + decalage_pr_certificat;
var local_main_h_px = 4500 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
}
} else {
//console.log(" ON PASSE&nbsp; au&nbsp;MIN");
var local_tmp_val = 2100 + decalage_pr_certificat;
var local_main_h_px = 4800 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
var local_tmp_val = 2600 + decalage_pr_certificat;
var local_main_h_px = 5300 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
}
}
// document.getElementById('mob_block_cross_sell_cat').style.top = local_tmp;
//document.getElementById('mobile').style.height = main_h_px;
}
if (window.screen.width >= 601 && window.screen.width <= 991) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
//console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2700px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2200px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
if (window.screen.width >= 992 && window.screen.width <= 1199) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2800px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2200px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
if (window.screen.width >= 1200) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2800px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
//console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2300px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
/*
if (window.screen.width < 601) {
var decalage_pr_certificat = parseInt(String(JSON.parse(res.data.message).nb_partner_certificat)) * 150;
//console.log("decalage_pr_certificat = ", decalage_pr_certificat);
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
//console.log("### local_val = ", local_val)
if (local_val >= 5) {
//console.log(" ON PASSE&nbsp; au&nbsp;MAX")
var local_tmp_val = 2300 + decalage_pr_certificat;
var local_main_h_px = 4000 + decalage_pr_certificat;
//console.log("### local_tmp_val = ", local_tmp_val, " local_main_h_px = ",local_main_h_px);
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
var local_tmp_val = 2800 + decalage_pr_certificat;
var local_main_h_px = 4500 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
}
} else {
//console.log(" ON PASSE&nbsp; au&nbsp;MIN");
var local_tmp_val = 2100 + decalage_pr_certificat;
var local_main_h_px = 4800 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
var local_tmp_val = 2600 + decalage_pr_certificat;
var local_main_h_px = 5300 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";
}
}
// document.getElementById('mob_block_cross_sell_cat').style.top = local_tmp;
//document.getElementById('mobile').style.height = main_h_px;
}
if (window.screen.width >= 601 && window.screen.width <= 991) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
//console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2700px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2200px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
if (window.screen.width >= 992 && window.screen.width <= 1199) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2800px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2200px";
main_h_px = "3000px";
}
}
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
document.getElementById('desktop').style.height = main_h_px;
}
if (window.screen.width >= 1200) {
var local_val = parseInt(String(JSON.parse(res.data.message).nb_pave_a_afficher));
if (local_val >= 5) {
console.log(" ON PASSE&nbsp; au&nbsp;MAX")
local_tmp = "2000px";
main_h_px = "2800px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2500px";
main_h_px = "3200px";
}
} else {
//console.log(" ON PASSE&nbsp; au&nbsp;MIN");
local_tmp = "1700px";
main_h_px = "2500px";
if (String(action).toLowerCase() === "information" || String(action).toLowerCase() === "inscription") {
local_tmp = "2300px";
main_h_px = "3000px";
}
}
if (document.getElementById('block_crossell_meme_orga')) {
document.getElementById('block_crossell_meme_orga').style.top = local_tmp;
}
document.getElementById('desktop').style.height = main_h_px;
}
*/
}
}
@ -1211,6 +1267,32 @@ const New_C_Detail_Formation_2025 = (props) => {
}
const [Download_one_attached_document_no_token_api, setDownload_one_attached_document_no_token_api] = useState();
const [Download_one_attached_document_no_token_result, setDownload_one_attached_document_no_token_result] = useState();
const [Download_one_attached_document_no_token_message, setDownload_one_attached_document_no_token_message] = useState();
const Download_one_attached_document_no_token = (event) => {
var nom_fiche_detaillee = "Fiche_catalogue.pdf";
var file_name = event.target.id;
var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File_From_Id_WITHOUT_TOKEN/" + file_name;
//console.log(" ### url = ", url);
axios.get(url, { responseType: 'blob', },)
.then((res) => {
fileDownload(res.data, nom_fiche_detaillee);
setDownload_one_attached_document_no_token_api("true");
}).catch((error) => {
console.error('Error:', error);
setDownload_one_attached_document_no_token_api("false");
});
}
/// ----
@ -1890,12 +1972,12 @@ const New_C_Detail_Formation_2025 = (props) => {
</div>
</div>
<div style={{ width: '90%', marginLeft: 'auto', marginRight: 'auto', background: "#FFF", borderRadius: '10px' }}>
<div style={{ width: '90%', marginLeft: 'auto', marginRight: 'auto', background: "#FFF", borderRadius: '10px' }}>
<div style={{ width: '90%', marginLeft: 'auto', marginRight: 'auto', background: "#FFF", marginTop: '1rem' }}>
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_long_txt">
<div className="mob_info_page_title_desc_title">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="mob_info_page_title_desc_desc pourqui_block">
@ -1915,7 +1997,7 @@ const New_C_Detail_Formation_2025 = (props) => {
{DetailTraining["prerequis"] && <div className="mob_info_page_title_desc_long_txt">
<div className="mob_info_page_title_desc_title">
Pré-requis
Pré-requis
</div>
{DetailTraining["prerequis"] && <div className="mob_info_page_title_desc_desc pourqui_block">
@ -2162,6 +2244,16 @@ const New_C_Detail_Formation_2025 = (props) => {
<br />
{Get_Class_Catalogue_File_result && Get_Class_Catalogue_File_result.length > 0 && <div className="row_download_fiche">
<nav className="bton_download_fiche" name={(JSON.parse(Get_Class_Catalogue_File_result[0])._id)}
id={(JSON.parse(Get_Class_Catalogue_File_result[0])._id)} onClick={Download_one_attached_document_no_token}>
Télécharger fiche détaillée
</nav>
</div>}
<div className="block_info_page_pave_title_desc">
<div className="block_info_page_pave_title_desc_title"> Description
@ -2330,7 +2422,7 @@ const New_C_Detail_Formation_2025 = (props) => {
{DetailTraining["pourqui"] && String(DetailTraining["pourqui"]).length > 2 && <div className="block_info_page_pave_title_desc_long_text">
<div className="block_info_page_pave_title_desc_title ">
Pour Qui ?
Pour Qui
</div>
{DetailTraining["pourqui"] && <div className="block_info_page_pave_title_desc_desc pourqui_block">
{parse(String(DetailTraining["pourqui"]))}
@ -2344,7 +2436,7 @@ const New_C_Detail_Formation_2025 = (props) => {
{DetailTraining["prerequis"] && String(DetailTraining["prerequis"]).length > 2 && <div className="block_info_page_pave_title_desc_long_text">
<div className="block_info_page_pave_title_desc_title ">
Pré-requis
Pré-requis
</div>
{DetailTraining["prerequis"] && <div className="block_info_page_pave_title_desc_desc objectif_block">
{parse(String(DetailTraining["prerequis"]))}

View File

@ -63,6 +63,42 @@
}
.row_download_fiche {
width: 100%;
margin-bottom: 40px;
font-family: "DM Sans";
text-align: right;
}
.bton_download_fiche {
width: auto;
min-width: 10rem;
padding: 10px;
padding-top: 10px;
padding-bottom: 10px;
height: auto;
font-family: 'DM Sans';
font-style: normal;
font-weight: 500;
font-size: 12px;
line-height: 120%;
text-transform: uppercase;
font-feature-settings: 'liga' off;
color: #0AA690;
float: right;
text-align: center;
border-radius: 5px;
margin-right: 10px;
padding-top: 5px;
padding-bottom: 5px;
border: 1px solid #E2E9FB;
cursor: pointer;
}
@media only screen and (max-width: 600px) {
.nob_new_content_1 {}
@ -1513,7 +1549,7 @@
min-height: 8rem;
overflow: auto;
padding: 10px;
font-family: "DM sans";
font-family: "DM sans" !important;
font-size: 16px;
line-height: 180%;
min-height: 15rem;
@ -1523,7 +1559,7 @@
min-height: 8rem;
overflow: auto;
padding: 10px;
font-family: "DM sans";
font-family: "DM sans" !important;
font-size: 16px;
line-height: 180%;
min-height: 15rem;
@ -1533,7 +1569,7 @@
min-height: 8rem;
overflow: auto;
padding: 10px;
font-family: "DM sans";
font-family: "DM sans" !important;
font-size: 16px;
line-height: 180%;
min-height: 15rem;
@ -1543,7 +1579,7 @@
min-height: 8rem;
overflow: auto;
padding: 10px;
font-family: "DM sans";
font-family: "DM sans" !important;
font-size: 16px;
line-height: 120%;
min-height: 15rem;
@ -1554,7 +1590,7 @@
min-height: 8rem;
overflow: auto;
padding: 10px;
font-family: "DM sans";
font-family: "DM sans" !important;
font-size: 16px;
line-height: 180%;
min-height: 15rem;
@ -6886,7 +6922,7 @@
height: 24px;
font-family: 'Albert Sans';
font-family: 'Inter' !important;
font-style: normal;
font-weight: 700;
font-size: 20px;
@ -6911,7 +6947,7 @@
.block_info_page_pave_title_desc_desc {
width: 100%;
font-family: Roboto, Verdana, Georgia, Arial, 'Times New Roman';
font-family: 'Inter' !important;
font-style: normal;
font-weight: 500;
font-size: 16px;
@ -6922,7 +6958,7 @@
/* Bold Grey */
color: #4B4B4B;
color: #4B4B4B !important;
/* Inside auto layout */
@ -6934,7 +6970,7 @@
}
.programme_block {
font-family: 'Inter';
font-family: 'Inter' !important;
font-style: normal;
font-weight: 400;
font-size: 16px;
@ -6943,7 +6979,7 @@
font-feature-settings: 'liga' off;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
color: #4B5162 !important;
/* Inside auto layout */
@ -6955,7 +6991,7 @@
}
.description_block {
font-family: 'Inter';
font-family: 'Inter' !important;
font-style: normal;
font-weight: 400;
font-size: 16px;
@ -6964,7 +7000,7 @@
font-feature-settings: 'liga' off;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
color: #4B5162 !important;
/* Inside auto layout */
@ -6977,7 +7013,7 @@
}
.objectif_block {
font-family: 'Inter';
font-family: 'Inter' !important;
font-style: normal;
font-weight: 400;
font-size: 16px;
@ -6986,7 +7022,7 @@
font-feature-settings: 'liga' off;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
color: #4B5162 !important;
/* Inside auto layout */
@ -7002,7 +7038,7 @@
min-height: 5rem;
overflow: auto;
padding: 10px;
font-family: 'Inter';
font-family: 'Inter' !important;
font-style: normal;
font-weight: 400;
font-size: 16px;
@ -7011,7 +7047,7 @@
font-feature-settings: 'liga' off;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
color: #4B5162 !important;
/* Inside auto layout */
@ -7023,7 +7059,7 @@
.pourqui_block {
font-family: 'Inter';
font-family: 'Inter' !important;
font-style: normal;
font-weight: 400;
font-size: 16px;
@ -7032,7 +7068,7 @@
font-feature-settings: 'liga' off;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
color: #4B5162 !important;
/* Inside auto layout */