recette2
cherif 2025-04-25 15:31:38 +02:00
parent cf2df418b5
commit 9dd2997b28
146 changed files with 7644 additions and 3646 deletions

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@ import React, {useState,useEffect,} from "react";
const AccountDesabled = (props) => {
//creating IP state
return (
<div>

View File

@ -1200,6 +1200,7 @@ const AddClassManual = (props) => {
setmyApiResponse();
Getall_Partner_Type_Evalution_List();
Getall_Class_List_Evalution();
setfield_contenu_attestation("");
fillfield();
@ -1247,6 +1248,8 @@ const AddClassManual = (props) => {
const [selected_class_id, setselected_class_id] = useState("");
const [field_contenu_attestation, setfield_contenu_attestation] = useState("");
function fillfield(event) {
setisupdateclass(true);
@ -1526,10 +1529,14 @@ const AddClassManual = (props) => {
//document.getElementsByName("plus_produit")[0].value = "";
if (mylocaltraining.plus_produit) {
//document.getElementsByName("plus_produit")[0].value = mylocaltraining.plus_produit;
setfield_plus_produit(mylocaltraining.plus_produit);
}
if (mylocaltraining.contenu_attestation) {
setfield_contenu_attestation(mylocaltraining.contenu_attestation);
}
document.getElementsByName("url")[0].value = "";
if (mylocaltraining.url) {
//document.getElementsByName("url")[0].value = mylocaltraining.url;
@ -1687,6 +1694,10 @@ const AddClassManual = (props) => {
const editorRef_zone_diffusion = useRef(null);
const editorRef_date_lieu = useRef(null);
const editorRef_contenu_attestation = useRef(null);
const [editorRef_contenu_attestation_limite, seteditorRef_contenu_attestation_limite] = useState(1000);
const [waiting_before_redirect, setwaiting_before_redirect] = React.useState(true);
function RecordTraining(event) {
@ -1697,18 +1708,25 @@ const AddClassManual = (props) => {
alert(" Le Champ 'code' est obligatoire")
return;
}
/// zzzz
// console.log(" ### titre = ", p_detail_title);
var title = p_detail_title;
if (String(title).length > title_limite) {
alert(" Champ 'Titre', limite depassée !")
setdisplay_alert_mysy("1");
setalert_message("Champ 'Titre', limite depassée !");
setalert_type("error");
return;
}
if (title.length < 1) {
alert(" Le Champ 'Titre' est obligatoire")
// alert(" Le Champ 'Titre' est obligatoire")
setdisplay_alert_mysy("1");
setalert_message("Le Champ 'Titre' est obligatoire");
setalert_type("error");
return;
}
@ -1748,13 +1766,19 @@ const AddClassManual = (props) => {
if (editorRef_objectif.current) {
objectif = editorRef_objectif.current.getContent();
if (parse(objectif.replace(/(<([^>]+)>)/ig, '')).length > editorRef_objectif_limite) {
alert(" Champ 'Objectif', limite depassée !")
// alert(" Champ 'Objectif', limite depassée !");
setdisplay_alert_mysy("1");
setalert_message("Champ 'Objectif', limite depassée !");
setalert_type("error");
return;
}
}
if (objectif.length < 1) {
alert(" Le Champ 'Objectif' est obligatoire")
// alert(" Le Champ 'Objectif' est obligatoire");
setdisplay_alert_mysy("1");
setalert_message("Le Champ 'Objectif' est obligatoire");
setalert_type("error");
return;
}
@ -1763,7 +1787,10 @@ const AddClassManual = (props) => {
programme = editorRef_programme.current.getContent();
if (parse(programme.replace(/(<([^>]+)>)/ig, '')).length > editorRef_programme_limite) {
alert(" Champ 'Programme', limite depassée !")
//alert(" Champ 'Programme', limite depassée !");
setdisplay_alert_mysy("1");
setalert_message(" Champ 'Programme', limite depassée !");
setalert_type("error");
return;
}
}
@ -1773,7 +1800,10 @@ const AddClassManual = (props) => {
methode_pedago = editorRef_methode_pedago.current.getContent();
if (parse(methode_pedago.replace(/(<([^>]+)>)/ig, '')).length > editorRef_methode_pedago_limite) {
alert(" Champ 'Méthode pédagogique', limite depassée !")
// alert(" Champ 'Méthode pédagogique', limite depassée !");
setdisplay_alert_mysy("1");
setalert_message("Champ 'Méthode pédagogique', limite depassée !");
setalert_type("error");
return;
}
}
@ -1783,7 +1813,10 @@ const AddClassManual = (props) => {
handicap = editorRef_handicap.current.getContent();
if (parse(handicap.replace(/(<([^>]+)>)/ig, '')).length > editorRef_handicap_limite) {
alert(" Champ 'Handicape', limite depassée !")
// alert(" Champ 'Handicape', limite depassée !");
setdisplay_alert_mysy("1");
setalert_message(" Champ 'Handicape', limite depassée !");
setalert_type("error");
return;
}
}
@ -1793,8 +1826,11 @@ const AddClassManual = (props) => {
if (editorRef_suivi_eval.current) {
suivi_eval = editorRef_suivi_eval.current.getContent();
if (parse(suivi_eval.replace(/(<([^>]+)>)/ig, '')).length > seteditorRef_suivi_eval_limite) {
alert(" Champ 'Suivi et Evaluation', limite depassée !")
if (parse(suivi_eval.replace(/(<([^>]+)>)/ig, '')).length > editorRef_suivi_eval_limite) {
// alert(" Champ 'Suivi et Evaluation', limite depassée !");
setdisplay_alert_mysy("1");
setalert_message(" Champ 'Suivi et Evaluation', limite depassée !");
setalert_type("error");
return;
}
}
@ -1810,13 +1846,19 @@ const AddClassManual = (props) => {
description = editorRef_description.current.getContent();
if (parse(description.replace(/(<([^>]+)>)/ig, '')).length > editorRef_description_limite) {
alert(" Champ 'Description', limite depassée !")
//alert(" Champ 'Description', limite depassée !");
setdisplay_alert_mysy("1");
setalert_message("Champ 'Description', limite depassée !");
setalert_type("error");
return;
}
}
if (description.length < 1) {
alert(" Le Champ 'Description' est obligatoire")
// alert(" Le Champ 'Description' est obligatoire");
setdisplay_alert_mysy("1");
setalert_message("Le Champ 'Description' est obligatoire");
setalert_type("error");
return;
}
@ -1830,6 +1872,19 @@ const AddClassManual = (props) => {
plus_produit = editorRef_plus_produit.current.getContent();
}
var contenu_attestation = "";
if (editorRef_contenu_attestation.current) {
contenu_attestation = editorRef_contenu_attestation.current.getContent();
if (parse(contenu_attestation.replace(/(<([^>]+)>)/ig, '')).length > editorRef_contenu_attestation_limite) {
// alert(" Champ 'Suivi et Evaluation', limite depassée !");
setdisplay_alert_mysy("1");
setalert_message(" Champ 'Contenu Attestation', limite depassée !");
setalert_type("error");
return;
}
}
// Verification si il y a plus de 3 mot clés separés par des ";"
@ -1846,7 +1901,10 @@ const AddClassManual = (props) => {
if (words[i] && String(words[i]).length > 2 && String(words[i]).length < 50)
traited_list_mot_cle.push(String(words[i]));
else if (words[i] && (String(words[i]).length < 2 || String(words[i]).length > 50)) {
alert(" Chaque mot clé doit faire entre 2 et 50 caractères. Le mot '" + String(words[i]) + "' est incorrecte");
// alert(" Chaque mot clé doit faire entre 2 et 50 caractères. Le mot '" + String(words[i]) + "' est incorrecte");
setdisplay_alert_mysy("1");
setalert_message("Chaque mot clé doit faire entre 2 et 50 caractères. Le mot '" + String(words[i]) + "' est incorrecte");
setalert_type("error");
return;
}
@ -1855,7 +1913,10 @@ const AddClassManual = (props) => {
//console.log(" ## traited_list_mot_cle = ", traited_list_mot_cle);
if (traited_list_mot_cle.length > 3) {
alert(" Il a plus de 3 mots clés. le max autorisé est 3");
// alert(" Il a plus de 3 mots clés. le max autorisé est 3");
setdisplay_alert_mysy("1");
setalert_message("Il a plus de 3 mots clés. le max autorisé est 3");
setalert_type("error");
return;
}
@ -1911,9 +1972,9 @@ const AddClassManual = (props) => {
formData.append('description', description);
formData.append('formateur_id', p_formateur_id);
formData.append('presentiel', presentiel);
// formData.append('presentiel', presentiel);
formData.append('domaine', domaine);
formData.append('distantiel', distentiel);
// formData.append('distantiel', distentiel);
formData.append('class_level', niveau_ftion);
formData.append('price', price);
formData.append('duration', duree);
@ -1946,6 +2007,8 @@ const AddClassManual = (props) => {
formData.append('img_banner_detail_class', banniereImg);
formData.append('img_url', banniereImg);
formData.append('contenu_attestation', contenu_attestation);
/*
Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
@ -1958,7 +2021,10 @@ const AddClassManual = (props) => {
local_value = local_value.replaceAll(",", ".");
if (isNaN(local_value)) {
alert("Le champ " + spec_field_updated_values_hooks[i].field_label + " doit être numérique.")
// alert("Le champ " + spec_field_updated_values_hooks[i].field_label + " doit être numérique.");
setdisplay_alert_mysy("1");
setalert_message("Le champ " + spec_field_updated_values_hooks[i].field_label + " doit être numérique.");
setalert_type("error");
return;
}
@ -1968,7 +2034,10 @@ const AddClassManual = (props) => {
}
if (String(spec_field_updated_values_hooks[i].is_mandatory) === "1") {
if (String(local_value).trim().length <= 0) {
alert("Le champ " + spec_field_updated_values_hooks[i].field_label + " est obligatoire.")
// alert("Le champ " + spec_field_updated_values_hooks[i].field_label + " est obligatoire.");
setdisplay_alert_mysy("1");
setalert_message("Le champ " + spec_field_updated_values_hooks[i].field_label + " est obligatoire.");
setalert_type("error");
return;
}
@ -2347,7 +2416,10 @@ const AddClassManual = (props) => {
function alertactivecompte() {
//alert(" ispending = ===== " + props.ispending);
if (String(props.ispending) === String("1")) {
alert(" Vous devez ajouter un mode de Paiement pour acceder à cette fonctionnalité");
//alert(" Vous devez ajouter un mode de Paiement pour acceder à cette fonctionnalité");
setdisplay_alert_mysy("1");
setalert_message("Vous devez ajouter un mode de Paiement pour acceder à cette fonctionnalité");
setalert_type("error");
return;
}
}
@ -2372,7 +2444,10 @@ const AddClassManual = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 1000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
// alert("L'image ne doit pas dépasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("L'image ne doit pas dépasser un 1 Méga octets");
setalert_type("error");
return;
}
setisimgclassSelected(event.target.files[0]);
@ -2391,7 +2466,10 @@ const AddClassManual = (props) => {
if (document.getElementsByName("external_code")[0].value && document.getElementsByName("external_code")[0].value.length > 3) {
class_external_code = document.getElementsByName("external_code")[0].value;
} else {
alert(" Vous devez saisir le code externe de la formation avant d'enregistrer une image. Le code externe prend au moins 3 caractères");
// alert(" Vous devez saisir le code externe de la formation avant d'enregistrer une image. Le code externe prend au moins 3 caractères");
setdisplay_alert_mysy("1");
setalert_message("Vous devez saisir le code externe de la formation avant d'enregistrer une image. Le code externe prend au moins 3 caractères");
setalert_type("error");
return;
}
@ -2455,7 +2533,10 @@ const AddClassManual = (props) => {
if (document.getElementsByName("external_code")[0].value && document.getElementsByName("external_code")[0].value.length > 3) {
class_external_code = document.getElementsByName("external_code")[0].value;
} else {
alert(" Vous devez saisir le code externe de la formation avant d'enregistrer une image. Le code externe prend au moins 3 caractères");
// alert(" Vous devez saisir le code externe de la formation avant d'enregistrer une image. Le code externe prend au moins 3 caractères");
setdisplay_alert_mysy("1");
setalert_message("Vous devez saisir le code externe de la formation avant d'enregistrer une image. Le code externe prend au moins 3 caractères");
setalert_type("error");
return;
}
@ -2608,6 +2689,7 @@ const AddClassManual = (props) => {
setfield_prerequis("");
setfield_mots_cle("");
setfield_plus_produit("");
setfield_contenu_attestation("");
setfield_datelieu("");
setfield_zone_diffusion("");
seteditor_tochange("");
@ -2729,7 +2811,10 @@ const AddClassManual = (props) => {
setLoading(false);
console.warn('Not good man :( Get_Partner_Object_Specific_Fields = ', error);
setGet_Partner_Object_Specific_Fields_api("false");
alert(" Impossible de recuperer la liste des collection et champs personnalisables");
//alert(" Impossible de recuperer la liste des collection et champs personnalisables");
setdisplay_alert_mysy("1");
setalert_message("Impossible de recuperer la liste des collection et champs personnalisables");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -2792,14 +2877,20 @@ const AddClassManual = (props) => {
else {
setGet_List_Niveau_Formation_api("false");
setGet_List_Niveau_Formation_message(data['message']);
alert(data['message'])
// alert(data['message'])
setdisplay_alert_mysy("1");
setalert_message(data['message']);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.error('Error Get_List_Niveau_Formation :', error);
setGet_List_Niveau_Formation_api("false");
alert(" Impossible de récupérer la liste des niveaux de formation");
// alert(" Impossible de récupérer la liste des niveaux de formation");
setdisplay_alert_mysy("1");
setalert_message("Impossible de récupérer la liste des niveaux de formation");
setalert_type("error");
});
@ -2941,8 +3032,11 @@ const AddClassManual = (props) => {
console.log("file_size 2 = ", file_size, " file_type = ", file_type);
if (file_size > 10000000) {
alert("Le fichier ne doit pas depasser un 1 Méga octets");
console.log("Le fichier ne doit pas depasser un 1 Méga octets");
// alert("Le fichier ne doit pas depasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("Le fichier ne doit pas depasser un 1 Méga octets");
setalert_type("error");
// console.log("Le fichier ne doit pas depasser un 1 Méga octets");
return;
}
@ -2976,15 +3070,21 @@ const AddClassManual = (props) => {
if (file_type !== "application/pdf") {
alert("Le fichier n'est pas de type PDF");
// alert("Le fichier n'est pas de type PDF");
setdisplay_alert_mysy("1");
setalert_message("Le fichier n'est pas de type PDF");
setalert_type("error");
return;
}
if (file_size > 10000000) {
alert("Le fichier ne doit pas depasser un 1 Méga octets");
console.log("Le fichier ne doit pas depasser un 1 Méga octets");
// alert("Le fichier ne doit pas depasser un 1 Méga octets");
//console.log("Le fichier ne doit pas depasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("Le fichier ne doit pas depasser un 1 Méga octets");
setalert_type("error");
return;
}
@ -3028,8 +3128,11 @@ const AddClassManual = (props) => {
console.log("file_size 1 = ", file_size, " file_type = ", file_type);
if (file_size > 10000000) {
alert("Le fichier ne doit pas depasser un 1 Méga octets");
console.log("Le fichier ne doit pas depasser un 1 Méga octets");
//alert("Le fichier ne doit pas depasser un 1 Méga octets");
//console.log("Le fichier ne doit pas depasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("Le fichier ne doit pas depasser un 1 Méga octets");
setalert_type("error");
return;
}
setfile_2_name(event.target.files[0]);
@ -3058,7 +3161,10 @@ const AddClassManual = (props) => {
function Record_All_PJ() {
if (!p_detail_one_file_to_download_type_name) {
alert(" Vous devez donner un nom à la pièce jointe");
//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;
}
@ -3103,13 +3209,19 @@ const AddClassManual = (props) => {
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")
// 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_All_PJ_message(result['message']);
setRecord_All_PJ_api("false");
alert(result['message']);
//alert(result['message']);
setdisplay_alert_mysy("1");
setalert_message(result['message']);
setalert_type("error");
}
})
@ -3117,7 +3229,10 @@ const AddClassManual = (props) => {
setLoading(false);
console.error(' Record_All_PJ Error:', error);
setRecord_All_PJ_api("false");
alert(" Impossible d'ajouter la pièce jointe")
// alert(" Impossible d'ajouter la pièce jointe");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'ajouter la pièce jointe");
setalert_type("error");
});
}
@ -3160,13 +3275,19 @@ const AddClassManual = (props) => {
setDelete_one_attached_document_result(result['message']);
setDelete_one_attached_document_api("true");
Get_List_Of_All_PJ(selected_class_id);
alert(result['message'])
// alert(result['message']);
setdisplay_alert_mysy("1");
setalert_message(result['message']);
setalert_type("success");
}
else {
setDelete_one_attached_document_message(result['message']);
setDelete_one_attached_document_api("false");
alert(result['message'])
// alert(result['message']);
setdisplay_alert_mysy("1");
setalert_message(result['message']);
setalert_type("error");
}
})
@ -3174,7 +3295,10 @@ const AddClassManual = (props) => {
setLoading(false);
console.error(' Record_All_PJ Error:', error);
setDelete_one_attached_document_api("false");
alert(" Impossible de supprimer le document")
// alert(" Impossible de supprimer le document");
setdisplay_alert_mysy("1");
setalert_message("Impossible de supprimer le document");
setalert_type("error");
});
@ -3454,7 +3578,10 @@ const AddClassManual = (props) => {
setLoading(false);
console.warn('Add_Update_UE_To_Class : Not good man :( mysearchtext = ' + error);
setAdd_Update_UE_To_Class_api("false");
alert(" Impossible d'ajouter l'UE à la formation ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'ajouter l'UE à la formation");
setalert_type("error");
// alert(" Impossible d'ajouter l'UE à la formation ");
})
}
@ -3532,7 +3659,10 @@ const AddClassManual = (props) => {
setLoading(false);
console.warn('Add_Update_Evaluation_to_UE : Not good man :( mysearchtext = ' + error);
setAdd_Update_Evaluation_to_UE_api("false");
alert(" Impossible d'ajouter l'évaluation l'UE ");
// alert(" Impossible d'ajouter l'évaluation l'UE ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'ajouter l'évaluation l'UE");
setalert_type("error");
})
}
@ -3671,7 +3801,10 @@ const AddClassManual = (props) => {
setLoading(false);
console.warn('Not good man :( Getall_Employee_Statistic_Question_List = ', error);
setGetall_Employee_Statistic_Question_List_api("false");
alert(" Impossible de recuperer la liste des questions ");
// alert(" Impossible de recuperer la liste des questions ");
setdisplay_alert_mysy("1");
setalert_message("Impossible de recuperer la liste des questions");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -3790,7 +3923,10 @@ const AddClassManual = (props) => {
setLoading(false);
console.warn('Not good man :( Getall_Qry_Survey_Data = ', error);
setGetall_Qry_Survey_Data_api("false");
alert("Impossible de récuperer les données demandées")
// alert("Impossible de récuperer les données demandées");
setdisplay_alert_mysy("1");
setalert_message("Impossible de récuperer les données demandées");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -3857,7 +3993,10 @@ const AddClassManual = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les données (2) ");
// alert("Impossible d'exporter les données (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les données (2)");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd_excel)
@ -3865,7 +4004,10 @@ const AddClassManual = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les données ")
// alert(" Impossible d'exporter les données ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les données");
setalert_type("error");
});
@ -3899,6 +4041,8 @@ const AddClassManual = (props) => {
else if (fiels_of_text_replacement_ia === "plusproduit")
setfield_plus_produit(text_result)
else if (fiels_of_text_replacement_ia === "contenuattestation")
setfield_contenu_attestation(text_result)
DataUpdated();
}
@ -4175,8 +4319,6 @@ const AddClassManual = (props) => {
className="bton_enreg_dialog"> Enregisrer </Button>
</div>
@ -4396,34 +4538,15 @@ const AddClassManual = (props) => {
{String(props.mytrainingclass.ref).trim() !== "" && <div className="div_row_ch">
<div className="row_block zone_retour_liste" onClick={retourList}>
<Button variant="contained" color="success" className="bton_retour_list">
Retour liste formations &nbsp; <GrOrderedList />
</Button>
</div>
<div className="row_block zone_gestion_admin">
{/* <Button variant="contained" color="success" className="bton_gestion_admin"
onClick={(e) => {
e.preventDefault();
window.open(
"/GestionAdministrative/" + displayedinternalurl,
'_blank'
);
}}>
GESTION ADMINISTRATIVE &nbsp; <GrUserAdmin />
</Button>*/}
</div>
</div>}
{String(props.mytrainingclass.ref).trim() !== "" && p_detail_title && <div className="div_row_ch">
<nav style={{ width: '100%', textAlign: 'center', marginTop: '1rem', fontFamily: 'DM Sans' }}> <b>Formation :</b> {p_detail_title} </nav>
</div>}
<br />
@ -5131,7 +5254,7 @@ const AddClassManual = (props) => {
</div>
<div className="training_caract">
{/*<div className="training_caract">
<Autocomplete
disablePortal
@ -5157,9 +5280,9 @@ const AddClassManual = (props) => {
/>
</div>
</div>*/}
<div className="training_caract">
{/*<div className="training_caract">
<Autocomplete
disablePortal
@ -5186,7 +5309,7 @@ const AddClassManual = (props) => {
}
/>
</div>
</div>*/}
<div className="training_caract">
@ -5391,7 +5514,7 @@ const AddClassManual = (props) => {
</div>
<div style={{ width: '100%', float: 'left', }}>
<div style={{ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%', paddingLeft: '10px', flexWrap: 'wrap' }}>
<div style={{ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '95%', paddingLeft: '10px', flexWrap: 'wrap' }}>
<div className="training_caract">
@ -5469,7 +5592,7 @@ const AddClassManual = (props) => {
<div style={{ width: '100%', float: 'left' }}>
<div style={{
display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%',
display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '95%',
paddingLeft: '10px', flexWrap: 'wrap'
}}>
@ -5651,7 +5774,7 @@ const AddClassManual = (props) => {
<div style={{ width: '100%', float: 'left', }}>
<div style={{ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '100%', paddingLeft: '10px', flexWrap: 'wrap' }}>
<div style={{ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: '95%', paddingLeft: '10px', flexWrap: 'wrap' }}>
{rows_champs_specifics &&
rows_champs_specifics.map((champ_spec) => (
@ -5932,7 +6055,7 @@ const AddClassManual = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -5987,7 +6110,7 @@ const AddClassManual = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -6044,7 +6167,7 @@ const AddClassManual = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -6075,7 +6198,7 @@ const AddClassManual = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -6107,7 +6230,7 @@ const AddClassManual = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -6140,7 +6263,7 @@ const AddClassManual = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -6195,7 +6318,7 @@ const AddClassManual = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -6226,7 +6349,7 @@ const AddClassManual = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -6257,7 +6380,7 @@ const AddClassManual = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -6311,7 +6434,61 @@ const AddClassManual = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</div>
</div>
<div className="training_text">
<div className="plus_produit_desabled">
<div className="titre_training_text" style={{ "width": "100%", "float": "left" }}>
<nav className="nav_descrip_champs" > Attestation : Contenu de la formation(max 800 caractères) <i> (à afficher sur l'attestation) </i> </nav>
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
<nav className="nav_ia">
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
onClick={(e) => {
const regex = /(<([^>]+)>)/gi;
var initial_text_no_html = editorRef_contenu_attestation.current.getContent().replace(regex, " ");
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
return "&#" + chr.charCodeAt(0) + ";";
});
setfiels_of_text_replacement_ia("contenuattestation")
settext_for_ia(initial_text_no_html);
setDialog_mysy_ia_open(true);
}} />
</nav>
</a>
</div>
<Editor
onInit={(evt, editor) => editorRef_contenu_attestation.current = editor}
initialValue={field_contenu_attestation}
onKeyUp={editor_keyup}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
DataUpdated();
seteditor_tochange("");
}
}}
init={{
resize: false,
height: 300,
menubar: false,
plugins: [
'advlist autolink lists link image charmap print preview anchor',
'searchreplace visualblocks code fullscreen',
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -6040,7 +6040,7 @@ const Apprenant = (props) => {
</Dialog>
<h3> Vos apprenants </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes apprenants </h3>
<div>
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -8475,7 +8475,7 @@ const Apprenant = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</div>
@ -8502,7 +8502,7 @@ const Apprenant = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</div>
@ -8761,7 +8761,7 @@ const Apprenant = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</div>
@ -8788,7 +8788,7 @@ const Apprenant = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</div>

View File

@ -940,7 +940,7 @@ const Article = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -31,6 +31,7 @@ import { loadStripe } from '@stripe/stripe-js';
import { PaymentElement } from '@stripe/react-stripe-js';
import Popup from 'reactjs-popup';
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
@ -52,6 +53,7 @@ function CheckOut(props) {
const [currentpack, setcurrentpack] = useState(props.packs);
const [periodicity, setperiodicity] = useState(props.periodicity);
const [packprice, setpackprice] = useState(props.mypackprice);
const [selected_pack_unit_price, setselected_pack_unit_price] = useState(props.selected_pack_unit_price);
const [getpackproducts, setgetpackproducts] = useState();
const scrollDiv = useRef(null);
const [okcommande, setokcommande] = useState();
@ -445,6 +447,7 @@ function CheckOut(props) {
getCurrentUserData();
get_production_service_by_pack();
GetPayementMode();
setnb_formations("1");
if (String(props.packs).toLocaleLowerCase() === String("standard")) {
setprice_ch(process.env.REACT_APP_API_URL_STRIP_ID_PACK_STAND);
@ -467,10 +470,6 @@ function CheckOut(props) {
}, []);
function Handler() {
alert('works');
}
const [isLoading, setLoading] = useState();
@ -485,7 +484,11 @@ function CheckOut(props) {
//alert(" confirmation ok");
if (String(nb_formations) === "0") {
alert(" Vous devez choisir un nombre de formations ");
// alert(" Vous devez choisir un nombre de formations ");
setdisplay_alert_mysy("1");
setalert_message("Vous devez choisir un nombre de formations");
setalert_type("error");
document.getElementById('div_nb_formation').style.color = "red";
document.getElementById('div_ttc').style.color = "red";
@ -682,12 +685,19 @@ function CheckOut(props) {
if (String(props.packs).toLowerCase() === String("decouverte")) {
MySy_LMS_Account_Management();
setLoading(false);
alert(" La mise à jour de votre abonnement a été correctement traitée. Vous allez recevoir par email les details de la commande et la facture.")
var txt = " La mise à jour de votre abonnement a été correctement traitée. Vous allez recevoir par email les details de la commande et la facture.";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("success");
window.location.reload();
} else {
MySy_LMS_Account_Management();
setLoading(false);
alert(" La mise à jour de votre abonnement a été correctement traitée. Vous allez recevoir par email les details de la commande et la facture.")
var txt = " La mise à jour de votre abonnement a été correctement traitée. Vous allez recevoir par email les details de la commande et la facture."
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("success");
window.location.reload();
}
@ -743,7 +753,7 @@ function CheckOut(props) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Check_MySy_LMS_Account/";
axios.post(myurl, formData_tpm).then(res => {
console.log('In MySy_LMS_Account_Management status = ', res.data.status, " -- message = ", res.data.message);
// console.log('In MySy_LMS_Account_Management status = ', res.data.status, " -- message = ", res.data.message);
if (String(res.data.status) === String("true")) {
setMySy_LMS_Account_Management_api("true");
@ -776,36 +786,60 @@ function CheckOut(props) {
var adr_country = document.getElementsByName("adr_country")[0].value;
if (nom.trim().length <= 0) {
alert("Information de facturation incomplete : Le nom ");
var txt = "Information de facturation incomplete : Le nom ";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (email.trim().length <= 0) {
alert("Information de facturation incomplete : L'email ");
var txt = "Information de facturation incomplete : L'email ";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_street.trim().length <= 0) {
alert("Information de facturation incomplete : L'adresse ");
var txt = "Information de facturation incomplete : L'adresse";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_zip.trim().length <= 0) {
alert("Information de facturation incomplete : Le code postal ");
var txt = "Information de facturation incomplete : Le code postal";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_city.trim().length <= 0) {
alert("Information de facturation incomplete : La ville ");
var txt = "Information de facturation incomplete : La ville";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_country.trim().length <= 0) {
alert("Information de facturation incomplete : Le pays ");
var txt = "Information de facturation incomplete : Le pays";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
@ -839,36 +873,53 @@ function CheckOut(props) {
formData.append('invoice_telephone', telephone);
if (nom.trim().length <= 0) {
alert("Information de facturation incomplete : Le nom ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : Le nom" );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (email.trim().length <= 0) {
alert("Information de facturation incomplete : L'email ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : L'email" );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_street.trim().length <= 0) {
alert("Information de facturation incomplete : L'adresse ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : L'adresse" );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_zip.trim().length <= 0) {
alert("Information de facturation incomplete : Le code postal ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : Le code postal" );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_city.trim().length <= 0) {
alert("Information de facturation incomplete : La ville ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : La ville" );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_country.trim().length <= 0) {
alert("Information de facturation incomplete : Le pays ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : Le pays " );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
@ -1097,7 +1148,7 @@ function CheckOut(props) {
// Fing gestion stripe
const [nb_formations, setnb_formations] = useState("0");
const [nb_formations, setnb_formations] = useState("1");
const change_nb_formations = event => {
@ -1237,6 +1288,13 @@ function CheckOut(props) {
setdisplay_alert_mysy("");
}
function testiframe(){
alert("JJJJJJJJJJJJJJJ");
}
function HelloFromChild(name) {
alert("Hello " + name + " , (called from child window)");
}
return (
<div className="checkout">
@ -1262,7 +1320,7 @@ function CheckOut(props) {
{String(menu) === String("default") && <div>
<h2 style={{ "textAlign": "center", "marginBottom": "2rem" }} ref={scrollDiv} id="scrollDiv"> Récapitulatif de votre commande </h2>
<h2 style={{ "textAlign": "center", "marginBottom": "2rem", fontFamily:'DM Sans' }} ref={scrollDiv} id="scrollDiv"> Récapitulatif de votre commande </h2>
<br />
@ -1315,14 +1373,19 @@ function CheckOut(props) {
<div style={{ "textAlign": "left", "width": "50%", "float": "left" }}>
Prix unitaire :
</div>
<div style={{ "textAlign": "right", "width": "50%", "float": "left" }}>
{packprice}
</div>
{String(periodicity).toLowerCase() === "annuel" && <div style={{ "textAlign": "right", "width": "50%", "float": "left" }}>
{packprice} ({selected_pack_unit_price} x 12 )
</div>}
{String(periodicity).toLowerCase() !== "annuel" && <div style={{ "textAlign": "right", "width": "50%", "float": "left" }}>
{packprice}
</div>}
</div>
<div style={{ "width": "90%", "float": "left" }} id="div_nb_formation" className="mob_heigh">
{/*<div style={{ "width": "90%", "float": "left" }} id="div_nb_formation" className="mob_heigh">
<div style={{ "textAlign": "left", "width": "50%", "float": "left" }}>
Nombre de formations :
</div>
@ -1346,7 +1409,7 @@ function CheckOut(props) {
}
</div>
</div>*/}
<div style={{ "width": "90%", "float": "left" }} id="div_ttc">
<div style={{ "textAlign": "left", "width": "50%", "float": "left" }}>
@ -1681,22 +1744,22 @@ function CheckOut(props) {
{String(paymentmodeapi) === String("True") && <div>
{paymentmode && String(paymentmode).length > 0 && paymentmode.map((payment) => (
<ul className="list_produits_service">
<ul className="list_produits_service" style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
<div>
<ul>
<ul style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
Type carte : {(JSON.parse(payment).brand)}
</ul>
<ul>
<ul style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
Nom carte : {(JSON.parse(payment).nom_carte)}
</ul>
<ul>
<ul style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
Num carte : XXXXXX{(JSON.parse(payment).last4)}
</ul>
<ul>
<ul style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
Expiration : {(JSON.parse(payment).exp_month)}/{(JSON.parse(payment).exp_year)}
</ul>
<ul>
<ul style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
Date Creation : {(JSON.parse(payment).createdatetime)}
</ul>
@ -1757,7 +1820,7 @@ function CheckOut(props) {
Finalise Subscribe / Confirmer la commande
</button>
{paymentIntent && <h3> PAYEMENT OK REDIRECTION VERS LA PAGE OK</h3>}
{paymentIntent && <h3 style={{ fontFamily:'DM Sans' }}> PAYEMENT OK REDIRECTION VERS LA PAGE OK</h3>}
</div>
</div>
*/}

View File

@ -1199,7 +1199,7 @@ const Config_Champs_Personnalise = (props) => {
</DialogActions>
</Dialog>
<h3> Configuration documents </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Configuration documents </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -1540,7 +1540,7 @@ const Config_Champs_Personnalise = (props) => {
</div>
{String(display_personalised_field) === "1" && String(add_one_personal_field) !== "1" && <div className="div_row">
<h3> Détail champ personnalisé <i> {selected_field_name} </i></h3>
<h3 style={{ fontFamily:'DM Sans' }}> Détail champ personnalisé <i> {selected_field_name} </i></h3>
<div className="session_data" >
@ -1865,7 +1865,7 @@ const Config_Champs_Personnalise = (props) => {
<div className="div_row" ref={myRef_detail} id="myRef_detail"> &nbsp; </div>
{String(display_personalised_field) !== "1" && String(add_one_personal_field) === "1" && <div className="div_row">
<h3> Ajout d'un nouveau champ spécifique</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Ajout d'un nouveau champ spécifique</h3>
<div className="session_data" >

View File

@ -2403,7 +2403,7 @@ const Config_Documents = (props) => {
</Dialog>
<h3> Configuration documents </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Configuration documents </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -2788,7 +2788,7 @@ const Config_Documents = (props) => {
{String(display_detail_document) === "1" && String(add_one_document) !== "1" && <div className="div_row">
<h3> Détail document <i> {p_detail_nom} </i></h3>
<h3 style={{ fontFamily:'DM Sans' }}> Détail document <i> {p_detail_nom} </i></h3>
<div className="div_row">
@ -3134,7 +3134,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3166,7 +3166,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3223,7 +3223,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3261,7 +3261,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3360,7 +3360,7 @@ const Config_Documents = (props) => {
</div>}
{String(display_detail_document) !== "1" && String(add_one_document) === "1" && <div className="div_row">
<h3> Personnaliser un nouveau document </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Personnaliser un nouveau document </h3>
<div className="div_row" style={{ "textAlign": "left" }}>
<div className="div_row_gauche"> Choisir le document à ajouter <br />
@ -3605,7 +3605,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3647,7 +3647,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -2275,7 +2275,7 @@ const Config_Documents_Super_Admin = (props) => {
</Dialog>
<h3> Configuration documents (Admin) </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Configuration documents (Admin) </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -2661,7 +2661,7 @@ const Config_Documents_Super_Admin = (props) => {
{String(display_detail_document) === "1" && String(add_one_document) !== "1" && <div className="div_row">
<h3> Détail document <i> {p_detail_nom} </i></h3>
<h3 style={{ fontFamily:'DM Sans' }}> Détail document <i> {p_detail_nom} </i></h3>
<div className="div_row">
@ -3007,7 +3007,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3039,7 +3039,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3096,7 +3096,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3134,7 +3134,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3190,7 +3190,7 @@ const Config_Documents_Super_Admin = (props) => {
</div>}
{String(display_detail_document) !== "1" && String(add_one_document) === "1" && <div className="div_row">
<h3> Personnaliser un nouveau document </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Personnaliser un nouveau document </h3>
<div className="div_row" style={{ "textAlign": "left" }}>
<div className="div_row_gauche"> Choisir le document à ajouter <br />
@ -3435,7 +3435,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3477,7 +3477,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -2149,7 +2149,7 @@ const CRM_Opportunite = (props) => {
{/* FIN Dialog pour gerer une OPPORTUNITE */}
<h3> Vos Opportunités </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes Opportunités </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>

View File

@ -628,7 +628,7 @@ const Dashbord_Factures = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des Commandes et Factures </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tableaux de bord des Commandes et Factures </h3>
<div className="div_row"> &nbsp;</div>

View File

@ -214,7 +214,7 @@ const Dashbord_Formation = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des formations</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tableaux de bord des formations</h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;
<Tooltip className="tooltip_css" id="my_tooltip_1_col" style={{ "fontSize": "12px" }} />

View File

@ -305,7 +305,7 @@ const Dashbord_Inscriptions = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des Inscriptions </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tableaux de bord des Inscriptions </h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;

View File

@ -492,7 +492,7 @@ const Dashbord_Ressources_Humaines = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des ressources humaines (Employés) </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tableaux de bord des ressources humaines (Employés) </h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;
<Tooltip className="tooltip_css" id="my_tooltip_1_col" style={{ "fontSize": "12px" }} />

View File

@ -330,7 +330,7 @@ const Dashbord_Session = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des sessions</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tableaux de bord des sessions</h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;
<Tooltip className="tooltip_css" id="my_tooltip_1_col" style={{ "fontSize": "12px" }} />

File diff suppressed because it is too large Load Diff

View File

@ -5446,7 +5446,9 @@ const DisplayPartnerStagiaires = (props) => {
setliste_selected_inscription_id(liste_session);
setselectedtraining_emails(liste_session);
console.log(" liste_session = ", liste_session);
// console.log(" liste_session = ", liste_session);
// console.log(" actionmass_ftion_val = ", actionmass_ftion_val);
//console.log(" actionmass_ftion_val = ", actionmass_ftion_val);
@ -5477,7 +5479,7 @@ const DisplayPartnerStagiaires = (props) => {
Recyclage_Desactivation(liste_session);
}
else if (String(actionmass_ftion_val) === String("sendemail")) {
// console.log(" #### selectedtraining_emails_liste = ", selectedtraining_emails_liste);
// console.log(" #### selectedtraining_emails_liste = ", selectedtraining_emails_liste);
setDialog_SEND_EMAIL_open(true);
}
}
@ -6491,7 +6493,7 @@ const DisplayPartnerStagiaires = (props) => {
{ "id": "1", "label": "Supprimer", "value": "supprimer" },
{ "id": "2", "label": "Exporter", "value": "exporter" },
{ "id": "3", "label": "Desactiver Recyclage", "value": "recyclage_disable" },
{ "id": "4", "label": "Rédiger un Email", "value": "sendemail" },
{ "id": "4", "label": "Contacter par Email", "value": "sendemail" },
]
@ -6839,11 +6841,10 @@ const DisplayPartnerStagiaires = (props) => {
{/*** FIN Affichage des messages d'alerte*/}
{ /********* Dialog redaction email */}
<Dialog
open={Dialog_SEND_EMAIL_open}
//onClose={Dialog_SEND_EMAIL_handleClose}
className="module_email_management"
static
@ -6858,6 +6859,7 @@ const DisplayPartnerStagiaires = (props) => {
position: 'absolute',
top: '7rem',
margin: "2px",
maxWidth:'800px'
},
}}
hideBackdrop={true}
@ -6870,7 +6872,7 @@ const DisplayPartnerStagiaires = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> &nbsp; </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> &nbsp; </DialogTitle>
<DialogContent >
<DialogContentText>
@ -6893,10 +6895,7 @@ const DisplayPartnerStagiaires = (props) => {
>
<CancelPresentationIcon />
</IconButton>
</DialogActions>
@ -6934,7 +6933,7 @@ const DisplayPartnerStagiaires = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Info Stagiaire</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">Info Stagiaire</DialogTitle>
<DialogContent className="DialogContent_width">
<div className="div_row_dialog">
@ -7154,7 +7153,7 @@ const DisplayPartnerStagiaires = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Tuteur {quel_tuteur}</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">Tuteur {quel_tuteur}</DialogTitle>
{String(quel_tuteur) === "1" && <DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_tuteur_1_message}
@ -7593,7 +7592,7 @@ const DisplayPartnerStagiaires = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
@ -7914,7 +7913,7 @@ const DisplayPartnerStagiaires = (props) => {
</Dialog>
{ /**** FIN Dialog Convention */}
<h3> Vos stagiaires </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes stagiaires </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
@ -8891,7 +8890,7 @@ const DisplayPartnerStagiaires = (props) => {
</font>}
{String(actionmass_ftion_val) === "sendemail" &&
<font> Confirmer la <b> la rédaction d'un email </b> en masse pour {selectionModel.length} lignes.
<font> Confirmer la <b> rédaction d'un email </b> en masse pour {selectionModel.length} lignes.
</font>}
@ -10894,7 +10893,7 @@ const DisplayPartnerStagiaires = (props) => {
<hr className="hr_break" />
</div>
<div className="div_row" style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "padding": "5px" }}>
Acces Plateforme E-Learning (LMS)
Acces Plateforme E-Learning (LMS)
</div>
<div className="div_row" style={{ "border": "None" }}>
@ -11005,7 +11004,7 @@ const DisplayPartnerStagiaires = (props) => {
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -11307,7 +11306,7 @@ const DisplayPartnerStagiaires = (props) => {
{String(props.formation_initiale) === "1" && String(submenu) === "ue" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<h3> Gestion des UE d'un inscrit </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Gestion des UE d'un inscrit </h3>
<div className="div_row">
<div className="session_caract"> <b>Unite D'enseignement </b> <br />
@ -11453,7 +11452,7 @@ const DisplayPartnerStagiaires = (props) => {
{String(props.formation_initiale) === "1" && String(submenu) === "notes" && String(display_notes) === "1" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<h3> Les notes de l'inscrit </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les notes de l'inscrit </h3>
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
<Button className="bton_emarge" onClick={(event) => {
Export_Inscrit_Notes();

View File

@ -952,13 +952,13 @@ const DistplayPartnerTraningsPage = (props) => {
else if (option && String(option) === "Ouvrir E-Learning") {
// setdialogOpen_push_lms(true);
// console.log(" ### acces e-learning url partner_lms_virtualhost_url = = ", props.partner_lms_virtualhost_url);
// console.log(" ###working_cellValues = = ", working_cellValues);
// console.log(" ### acces e-learning url partner_lms_virtualhost_url = = ", props.partner_lms_virtualhost_url);
// console.log(" ###working_cellValues = = ", working_cellValues);
if (props.partner_lms_virtualhost_url) {
var class_url = props.partner_lms_virtualhost_url + "courses/" + String(working_cellValues.row.lms_class_code + "/index.php?id_session=0")
// console.log(" ### class_url = ", class_url);
// console.log(" ### class_url = ", class_url);
window.open(
class_url,
@ -1104,7 +1104,7 @@ const DistplayPartnerTraningsPage = (props) => {
<button
className="gest_bton_popup"
onClick={() => {
// console.log('modal closed ');
// console.log('modal closed ');
Dialog_menuitem_close_push_lms();
}}
>
@ -2721,6 +2721,7 @@ const DistplayPartnerTraningsPage = (props) => {
</div>
}
<h3 style={{ fontFamily:'DM Sans' }}> Mes formations </h3>
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
<div className="div_row_gauche texte_area_filter" >
@ -3021,8 +3022,6 @@ const DistplayPartnerTraningsPage = (props) => {
Impossible de traiter la demande
</div>}
<div style={{ height: "800px", width: '100%', paddingRight: '10px' }}>
<div className="div_row" style={{ "border": "None" }}>
<div className='block_groupe_class'>

View File

@ -1965,7 +1965,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
{/*** Fin Dialog ajout PLANIF_LINE ue */}
<h3> Gestion des Unités d'enseignement </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Gestion des Unités d'enseignement </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -3146,7 +3146,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
@ -3184,7 +3184,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3215,7 +3215,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3249,7 +3249,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>
@ -3283,7 +3283,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>
@ -3318,7 +3318,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>
@ -3997,7 +3997,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
@ -4035,7 +4035,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -4066,7 +4066,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -4100,7 +4100,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>
@ -4134,7 +4134,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>
@ -4169,7 +4169,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>

View File

@ -697,7 +697,7 @@ function ESign() {
<h3> Signature Electronique </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Signature Electronique </h3>
<div className="div_row">
<div className="signature_block_explication" >

View File

@ -144,7 +144,7 @@ function ESignDiplayDignedDocument() {
<h3> Document Electronique </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Document Electronique </h3>
{is_valide_e_document && <div>
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>

View File

@ -782,7 +782,7 @@ function Emarge_QR_Code() {
</div>}
<h3> Emargement électronique </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Emargement électronique </h3>
<div className="div_row">
<div className="block_guide_line" >

File diff suppressed because it is too large Load Diff

View File

@ -6720,7 +6720,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:12px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:12px; }'
}}
/>
</div>
@ -7497,7 +7497,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:12px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:12px; }'
}}
/>
</div>
@ -9195,7 +9195,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -2751,7 +2751,7 @@ const Groupe_Apprenant = (props) => {
{/*** Fin ajout GROUPE AUTOMATIC */}
<h3> Les groupes d'apprenants </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les groupes d'apprenants </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>

View File

@ -1244,7 +1244,7 @@ function Inscription_Information(props) {
</div>}
<h3> Demande d'evaluation </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Demande d'evaluation </h3>
<div className="div_row22 survey_block">
<fieldset>
<nav className="survey_title"> 1. Une <b>note </b> pour l'appréciation générale </nav>
@ -1297,7 +1297,7 @@ function Inscription_Information(props) {
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</fieldset>
@ -1525,7 +1525,7 @@ function Inscription_Information(props) {
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -1771,7 +1771,7 @@ function Inscription_Information(props) {
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -3393,7 +3393,7 @@ const options_menu_vertical = [
{/******** FIN Menu Clique Droit test */}
<h3> Vos Factures </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes Factures </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

View File

@ -7445,7 +7445,7 @@ function ExportMenuItem(props) {
</Dialog>
{ /**** FIN Dialog Convention */}
<h3> Vos stagiaires </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes stagiaires </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
@ -10424,7 +10424,7 @@ function ExportMenuItem(props) {
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -10726,7 +10726,7 @@ function ExportMenuItem(props) {
{String(props.formation_initiale) === "1" && String(submenu) === "ue" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<h3> Gestion des UE d'un inscrit </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Gestion des UE d'un inscrit </h3>
<div className="div_row">
<div className="session_caract"> <b>Unite D'enseignement </b> <br />
@ -10872,7 +10872,7 @@ function ExportMenuItem(props) {
{String(props.formation_initiale) === "1" && String(submenu) === "notes" && String(display_notes) === "1" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<h3> Les notes de l'inscrit </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les notes de l'inscrit </h3>
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
<Button className="bton_emarge" onClick={(event) => {
Export_Inscrit_Notes();

View File

@ -849,7 +849,7 @@ const Intranet_Tous_Documents = (props) => {
</div>}
<h3> Tous vos documents </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tous vos documents </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1172,7 +1172,7 @@ const Module_Absence = (props) => {
</Dialog>
<h3> Planning </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Planning </h3>
<div style={{ "textAlign": "right", "float": "right", "width": "100%" }}>
Affichage : <nav className="mode_affichage" onClick={func_display_planning_view}> <FcPlanner /> planning </nav>

View File

@ -1,6 +1,5 @@
import React, { useRef, useState, useEffect } from "react";
import TextField from '@mui/material/TextField';
import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
@ -8,14 +7,8 @@ import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import fileDownload from 'js-file-download'
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint } from "react-icons/fc";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns'
@ -26,12 +19,9 @@ import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { TransitionProps } from '@mui/material/transitions';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
//import FullCalendar from "@fullcalendar/react";
import daygridPlugin from "@fullcalendar/daygrid";
//import interactionPlugin from "@fullcalendar/interaction";
//import timeGridPlugin from "@fullcalendar/timegrid";
import allLocales from '@fullcalendar/core/locales-all'
@ -39,9 +29,10 @@ import allLocales from '@fullcalendar/core/locales-all'
import ToggleSwitch from "./ToggleSwitch";
import Autocomplete from '@mui/material/Autocomplete';
import FullCalendar, { formatDate } from "@fullcalendar/react";
import dayGridPlugin from "@fullcalendar/daygrid";
import timeGridPlugin from "@fullcalendar/timegrid";
import interactionPlugin from "@fullcalendar/interaction";
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
import Timeline, {
@ -66,10 +57,48 @@ import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';
import ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';
import ExitToAppIcon from '@mui/icons-material/ExitToApp';
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
import Draggable from 'react-draggable';
import { IconButton } from '@material-ui/core';
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
function PaperComponent(props) {
return (
<Draggable
handle="#draggable-dialog-title"
cancel={'[class*="MuiDialogContent-root"]'}
>
<Paper {...props} />
</Draggable>
);
}
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'absolute',
// left: 10,
top: 400
},
paper: {
overflowY: 'unset',
},
customizedButton: {
position: 'absolute',
left: '98%',
top: '-3%',
backgroundColor: 'lightgray',
color: 'gray',
},
}));
const Module_Agenda = (props) => {
const myconntected_employee_id = props.conntected_employee_id;
const classes = useStyles();
const [selected_employee_id, setselected_employee_id] = useState(props.conntected_employee_id);
const history = useHistory();
@ -270,7 +299,7 @@ const Module_Agenda = (props) => {
const [Get_List_Agenda_Events_For_Given_User_api, setGet_List_Agenda_Events_For_Given_User_api] = useState();
const [Get_List_Agenda_Events_For_Given_User_message, setGet_List_Agenda_Events_For_Given_User_message] = useState();
const [Get_List_Agenda_Events_For_Given_User_result, setGet_List_Agenda_Events_For_Given_User_result] = useState();
const [Get_List_Agenda_Events_For_Given_User_result, setGet_List_Agenda_Events_For_Given_User_result] = useState([]);
function Get_List_Agenda_Events_For_Given_User(local_selected_id) {
var local_related_collection = p_filtre1;
@ -283,9 +312,6 @@ const Module_Agenda = (props) => {
form.append("related_collection", local_related_collection);
form.append("related_collection_recid", local_selected_id);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_Agenda_Event_List/";
setLoading(true);
@ -358,7 +384,7 @@ const Module_Agenda = (props) => {
const [Get_List_Agenda_Events_For_Many_Users_api, setGet_List_Agenda_Events_For_Many_Users_api] = useState();
const [Get_List_Agenda_Events_For_Many_Users_message, setGet_List_Agenda_Events_For_Many_Users_message] = useState();
const [Get_List_Agenda_Events_For_Many_Users_result, setGet_List_Agenda_Events_For_Many_Users_result] = useState();
const [Get_List_Agenda_Events_For_Many_Users_result, setGet_List_Agenda_Events_For_Many_Users_result] = useState([]);
function Get_List_Agenda_Events_For_Many_Users(tab_json_data, related_collection) {
var local_tab_ids = []
@ -456,7 +482,7 @@ const Module_Agenda = (props) => {
const [Get_List_Agenda_Events_For_Me_api, setGet_List_Agenda_Events_For_Me_api] = useState();
const [Get_List_Agenda_Events_For_Me_message, setGet_List_Agenda_Events_For_Me_message] = useState();
const [Get_List_Agenda_Events_For_Me_result, setGet_List_Agenda_Events_For_Me_result] = useState();
const [Get_List_Agenda_Events_For_Me_result, setGet_List_Agenda_Events_For_Me_result] = useState([]);
function Get_List_Agenda_Events_For_Me(local_selected_id) {
var local_related_collection = p_filtre1;
@ -610,8 +636,7 @@ const Module_Agenda = (props) => {
}
const myEventsList = []
const [events, setEvents] = useState([]);
const handleSelect = (info) => {
if (String(selected_employee_id).length < 2) {
@ -1260,14 +1285,36 @@ const Module_Agenda = (props) => {
}
{/*** FIN Affichage des messages d'alerte*/}
{/*** Dialog detail eventement */}
<Dialog
open={Dialog_1_open}
onClose={Dialog_1_handleClose}
// onClose={Dialog_1_handleClose}
className="module_agenda"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle>MySy Information</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
@ -1304,30 +1351,7 @@ const Module_Agenda = (props) => {
/>
}
/>
{/*<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_type"
id="event_dialog_type"
select
fullWidth
value={p_detail_event_type}
onChange={(e) => {
if (String(props.write_access) === "1") {
setp_detail_event_type(e.target.value);
}
}
}
>
<MenuItem value="absence" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Absence &nbsp;&nbsp;</MenuItem>
<MenuItem value="planning" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Planning &nbsp;</MenuItem>
<MenuItem value="autre" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Autre &nbsp;</MenuItem>
</TextField>*/}
</nav>
</div>
@ -1454,6 +1478,16 @@ const Module_Agenda = (props) => {
<DialogActions>
<IconButton
autoFocus
onClick={Close_Dialog_Detail_Event_open}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
{String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "" && <div className="div_row_gauche">
{p_detail_event_id && String(p_detail_event_id) !== "" && <Button onClick={Update_One_Agenda_Event} className="bton_enreg_dialog">Mettre à jour</Button>}
@ -1487,8 +1521,10 @@ const Module_Agenda = (props) => {
</DialogActions>}
</Dialog>
{/*** FIn Dialog detail eventement */}
<h3> Planning </h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Planning </h3>
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
@ -1600,29 +1636,7 @@ const Module_Agenda = (props) => {
</div>}
{p_filtre1 && String(p_filtre1) === "ressource_materielle" && <div className="div_row_droite texte_area_filter_value" >
{/*} <Autocomplete
disablePortal
name="filtre1_value"
id="filtre1_value"
className="disabled_style"
options={New_Getall_Training_Materiel_No_Filter_result}
onChange={(event, value) => {
if (value && value._id) {
Get_Ressource_Data(value._id)
setselected_employee_id(value._id);
Get_List_Agenda_Events_For_Given_User(value._id);
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>*/}
<Autocomplete
disablePortal
@ -1681,6 +1695,7 @@ const Module_Agenda = (props) => {
editable
selectable
//events={events}
contentHeight='auto'
events={mysy_events}
select={handleSelect}
@ -1800,7 +1815,7 @@ const Module_Agenda = (props) => {
</div>
<div style={{ width: '15rem', float: 'right', paddingTop:'5px' }}>
<div style={{ width: '15rem', float: 'right', paddingTop: '5px' }}>
<DatePicker
name="event_dialog_start"

View File

@ -29,6 +29,7 @@ import Autocomplete from '@mui/material/Autocomplete';
import { gridClasses } from '@mui/x-data-grid';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
const Module_Attestation_Formation = (props) => {
@ -104,9 +105,9 @@ const Module_Attestation_Formation = (props) => {
const columns_attestations = [
{ field: 'id', headerName: 'id', hide: true },
{ field: '_id', headerName: '_id', hide: true },
{ field: 'email', headerName: 'email', minwidth: 200, flex : 1, hideable: true, resizable: true, },
{ field: 'nom', headerName: 'nom',minwidth: 200, flex : 1, hide: false, editable: true, },
{ field: 'prenom', headerName: 'prenom',minwidth: 200, flex : 1, hide: false, editable: false, },
{ field: 'email', headerName: 'email', minwidth: 200, flex: 1, hideable: true, resizable: true, },
{ field: 'nom', headerName: 'nom', minwidth: 200, flex: 1, hide: false, editable: true, },
{ field: 'prenom', headerName: 'prenom', minwidth: 200, flex: 1, hide: false, editable: false, },
{
field: 'status', headerName: 'Statut', width: 100, editable: false, flex: true,
valueFormatter: (params) => {
@ -268,7 +269,10 @@ const Module_Attestation_Formation = (props) => {
setCreateLis_Attestation_Ftion_api("true");
setCreateLis_Attestation_Ftion_result(res.data.message);
Getall_Attestation_By_Session();
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -277,14 +281,20 @@ const Module_Attestation_Formation = (props) => {
else {
setCreateLis_Attestation_Ftion_api("false");
setCreateLis_Attestation_Ftion_message(res.data.message);
alert(res.data.message);
//alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('CreateLis_Attestation_Ftion : Not good man :( mysearchtext = ' + error);
setCreateLis_Attestation_Ftion_api("false");
alert(" Impossible d'initialiser la liste des attestations");
// alert(" Impossible d'initialiser la liste des attestations");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'initialiser la liste des attestations");
setalert_type("error");
})
}
@ -316,7 +326,10 @@ const Module_Attestation_Formation = (props) => {
setCreateLis_Attestation_Ftion_For_Session_api("true");
setCreateLis_Attestation_Ftion_For_Session_result(res.data.message);
Getall_Attestation_By_Session();
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -325,14 +338,20 @@ const Module_Attestation_Formation = (props) => {
else {
setCreateLis_Attestation_Ftion_For_Session_api("false");
setCreateLis_Attestation_Ftion_For_Session_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('CreateLis_Attestation_Ftion_For_Session : Not good man :( mysearchtext = ' + error);
setCreateLis_Attestation_Ftion_For_Session_api("false");
alert(" Impossible d'initialiser la liste des attestations");
//alert(" Impossible d'initialiser la liste des attestations");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'initialiser la liste des attestations");
setalert_type("error");
})
}
@ -367,7 +386,11 @@ const Module_Attestation_Formation = (props) => {
setSend_Attestation_By_Email_For_Ids_api("true");
setSend_Attestation_By_Email_For_Ids_result(res.data.message);
Getall_Attestation_By_Session();
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -376,14 +399,20 @@ const Module_Attestation_Formation = (props) => {
else {
setSend_Attestation_By_Email_For_Ids_api("false");
setSend_Attestation_By_Email_For_Ids_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('Send_Attestation_By_Email_For_Ids : Not good man :( mysearchtext = ' + error);
setSend_Attestation_By_Email_For_Ids_api("false");
alert(" Impossible d'envoyer les attestations");
// alert(" Impossible d'envoyer les attestations");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'envoyer les attestations");
setalert_type("error");
})
}
@ -396,7 +425,7 @@ const Module_Attestation_Formation = (props) => {
if (String(actionmass_attesation_val) === String("reinit")) {
alert(" ### reinit");
// alert(" ### reinit");
}
@ -508,14 +537,20 @@ const Module_Attestation_Formation = (props) => {
else {
setGet_List_Stagiaire_Attestation_Ftion_api("false");
setGet_List_Stagiaire_Attestation_Ftion_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Get_List_Stagiaire_Attestation_Ftion = ', error);
setGet_List_Stagiaire_Attestation_Ftion_api("false");
alert("Impossible de récupérer les modèles de convocations");
// alert("Impossible de récupérer les modèles de convocations");
setdisplay_alert_mysy("1");
setalert_message("Impossible de récupérer les modèles de convocations");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -527,6 +562,20 @@ const Module_Attestation_Formation = (props) => {
const [action_server_ref_interne_doc, setaction_server_ref_interne_doc] = useState("");
const [action_server_type_doc_ref_interne, setaction_server_type_doc_ref_interne] = useState("");
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
const [alert_message, setalert_message] = useState("");
const [alert_type, setalert_type] = useState("");
function clear_alert_message() {
setalert_message("");
}
function clear_alert_type() {
setalert_type("");
}
function clear_display_alert_mysy() {
setdisplay_alert_mysy("");
}
return (
<div className="module_attestation_formation">
@ -534,6 +583,17 @@ const Module_Attestation_Formation = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{/*** Affichage des messages d'alerte*/}
{display_alert_mysy && String(display_alert_mysy) === "1" &&
<Module_Alert_Confirmation alert_message={alert_message}
alert_type={alert_type}
clear_alert_message={clear_alert_message}
clear_alert_type={clear_alert_type}
clear_display_alert_mysy={clear_display_alert_mysy}
/>
}
{/*** FIN Affichage des messages d'alerte*/}
<Dialog
open={Dialog_1_open}
onClose={Dialog_1_handleClose}
@ -622,9 +682,9 @@ const Module_Attestation_Formation = (props) => {
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps = {{...params.inputProps, style: { fontSize: 12, height:"1.4rem" }}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
/>
}
/>
@ -660,15 +720,15 @@ const Module_Attestation_Formation = (props) => {
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps = {{...params.inputProps, style: { fontSize: 12, height:"1.4rem" }}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
/>
}
/>
</div>}
{String(selected_convention_type) === "pdf" && <div className="session_caract_Dialog" > Recevoir un pré-envoie
<TextField
@ -684,7 +744,7 @@ const Module_Attestation_Formation = (props) => {
</div>
}
</DialogContent>
<DialogActions>
@ -827,19 +887,19 @@ const Module_Attestation_Formation = (props) => {
backgroundColor: 'rgba(235, 235, 235, .7)',
color: 'black',
},
[`& .${gridClasses.cell}`]: {
py: 1,
},
'& .line--attestion_envoye': {
backgroundColor: '#ccffcc',
color: 'black',
fontWeight: '600',
},
}}
}}
>
<DataGrid
checkboxSelection
@ -898,14 +958,14 @@ const Module_Attestation_Formation = (props) => {
else if (parseInt(String(params.row.id)) % 2 !== 0) {
return 'line--statut--impair';
}
}}
getRowClassName={(params) => {
if (String(params.row.status) === "1") {
return 'line--attestion_envoye';
}

View File

@ -1487,13 +1487,20 @@ 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" },
{ "id": "end_session", "label": "Date Fin Session", "value": "end_session" },
{ "id": "", "label": "", "value": "" },
]
const New_Option_Automatic_Doc_Action_Target_For_Emargement = [
{ "id": "start_session", "label": "Date Début Session", "value": "start_session" },
{ "id": "end_session", "label": "Date Fin Session", "value": "end_session" },
{ "id": "every_session_sequence_day", "label": "Envoyer chaque jour", "value": "every_session_sequence_day" },
{ "id": "", "label": "", "value": "" },
]
return (
<div className="module_editique">
@ -1623,7 +1630,7 @@ const Module_Editique = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "5rem" }}>
<DialogContentText>
@ -1694,6 +1701,8 @@ const Module_Editique = (props) => {
</div>
{String(p_doc_automatic_setup_action_target_date) !== "every_session_sequence_day" &&
<div className="session_caract_Dialog"> Nb Jours <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -1719,38 +1728,68 @@ const Module_Editique = (props) => {
style={{ background: '#FFFFFF' }}
/>
</div>
</div>}
<div className="session_caract_Dialog">
<Tooltip className="tooltip_css" id="help_target_action_document" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="help_target_action_document" data-tooltip-html="Définir si l'action est exécutée en basant sur la date de début ou de fin de session">
Cible <FcInfo />
</a> <br />
<Autocomplete
disablePortal
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 } }}
name="target_action_document"
id="target_action_document"
className="disabled_style"
options={New_Option_Automatic_Doc_Action_Target}
value={New_Option_Automatic_Doc_Action_Target.filter((data) => (data).value === String(p_doc_automatic_setup_action_target_date))[0].label}
onChange={(event, value) => {
setis_modified_doc_automatic_setup("1");
if (value && value.value) {
setp_doc_automatic_setup_action_target_date(value.value);
{String(p_doc_automatic_setup_nom_document) !== "EMARGEMENT" &&
<Autocomplete
disablePortal
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 } }}
} else {
setp_doc_automatic_setup_action_target_date("")
name="target_action_document"
id="target_action_document"
className="disabled_style"
options={New_Option_Automatic_Doc_Action_Target}
value={New_Option_Automatic_Doc_Action_Target.filter((data) => (data).value === String(p_doc_automatic_setup_action_target_date))[0].label}
onChange={(event, value) => {
setis_modified_doc_automatic_setup("1");
if (value && value.value) {
setp_doc_automatic_setup_action_target_date(value.value);
} else {
setp_doc_automatic_setup_action_target_date("")
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>}
/>
}
/>
{String(p_doc_automatic_setup_nom_document) === "EMARGEMENT" &&
<Autocomplete
disablePortal
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 } }}
name="target_action_document"
id="target_action_document"
className="disabled_style"
options={New_Option_Automatic_Doc_Action_Target_For_Emargement}
value={New_Option_Automatic_Doc_Action_Target_For_Emargement.filter((data) => (data).value === String(p_doc_automatic_setup_action_target_date))[0].label}
onChange={(event, value) => {
setis_modified_doc_automatic_setup("1");
if (value && value.value) {
setp_doc_automatic_setup_action_target_date(value.value);
} else {
setp_doc_automatic_setup_action_target_date("")
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>}
</div>
<div className="div_row" style={{ "border": "None" }}>
@ -1841,7 +1880,7 @@ const Module_Editique = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "5rem" }}>
<DialogContentText>
@ -1912,7 +1951,7 @@ const Module_Editique = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "5rem" }}>
<DialogContentText>
@ -1982,7 +2021,7 @@ const Module_Editique = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "10rem" }}>
<DialogContentText>
<div style={{ "textAlign": "left" }}>
@ -2053,7 +2092,7 @@ const Module_Editique = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "10rem" }}>
<DialogContentText>
<div style={{ "textAlign": "left" }}>
@ -2123,7 +2162,7 @@ const Module_Editique = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "10rem" }}>
<DialogContentText>
<div style={{ "textAlign": "left" }}>
@ -2526,7 +2565,7 @@ const Module_Editique = (props) => {
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> &nbsp; </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> &nbsp; </DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
<DialogContentText>
{Dialog_1_message}
@ -3722,7 +3761,7 @@ const Module_Editique = (props) => {
</Button>
</nav>
<nav style={{ float: "right", "width": '45%' }}> Non Traité
<nav style={{ float: "right", "width": '45%' , display:'none'}}> Non Traité
<Button onClick={handleExpandClick_audit}>
{expanded_nom_traite.length === 0 ? 'Voir tout' : 'Réduire'}
</Button>

View File

@ -883,7 +883,7 @@ const Module_Email_Management = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -335,7 +335,7 @@ const Module_Evaluation_Positionnement = (props) => {
form.append("survey_type", "pos");
form.append("sending_date", "");
//alert(" mysession = "+mysession);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Init_Survey_Tab_For_All_Session_Inscrit/";
@ -374,7 +374,10 @@ const Module_Evaluation_Positionnement = (props) => {
setLoading(false);
console.warn('Create_List_Survey_For_Session_For_Inscrit : Not good man :( mysearchtext = ' + error);
setCreate_List_Survey_For_Session_For_Inscrit_api("false");
alert(" Impossible d'initialiser la liste des enquête de positionnement ");
// alert(" Impossible d'initialiser la liste des enquête de positionnement ");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'initialiser la liste des enquête de positionnement ");
setalert_type("error");
})
}
@ -484,7 +487,10 @@ const Module_Evaluation_Positionnement = (props) => {
setLoading(false);
console.warn('Send_Survey_By_Email_For_Ids : Not good man :( mysearchtext = ' + error);
setSend_Survey_By_Email_For_Ids_api("false");
alert(" Impossible d'envoyer les demandes");
// alert(" Impossible d'envoyer les demandes");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'envoyer les demandes");
setalert_type("error");
})
}
@ -504,7 +510,10 @@ const Module_Evaluation_Positionnement = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les réponses (2) ");
// alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2)");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd)
@ -512,7 +521,10 @@ const Module_Evaluation_Positionnement = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les réponses ")
// alert(" Impossible d'exporter les réponses ")
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses");
setalert_type("error");
});

View File

@ -79,11 +79,8 @@ const Module_Historique_Action = (props) => {
//menu_info();
Get_List_Historic_Action();
var divh = document.getElementById('div_header').offsetTop;
window.scrollTo({
top: divh,
behavior: "smooth",
});
//var divh = document.getElementById('div_header').offsetTop;
}, [related_collection_recid]);

View File

@ -360,7 +360,7 @@ const Module_IA = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>*/}

View File

@ -1,6 +1,6 @@
import React, { useRef, useState, useEffect } from "react";
import TextField from '@mui/material/TextField';
import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
@ -8,14 +8,10 @@ import { getCookie, setCookie } from 'react-use-cookie';
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 parse from 'html-react-parser';
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import add_plus from "../mysy_img/plus.png";
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import fileDownload from 'js-file-download'
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
@ -27,13 +23,8 @@ import { format } from 'date-fns'
import moment from "moment";
import 'moment/locale/fr';
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle, AiOutlineConsoleSql } from "react-icons/ai";
import Box from '@mui/material/Box';
import { Typography, LinearProgress } from '@mui/material';
import styled from 'styled-components';
import { CiTrash } from "react-icons/ci";
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
@ -41,39 +32,17 @@ import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { ResetTvRounded, RestoreFromTrashRounded } from "@mui/icons-material";
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
import { confirmAlert } from 'react-confirm-alert';
import ToggleSwitch from "./ToggleSwitch";
import Module_Historique_Action from "./Module_Historique_Action";
import { HiDocumentCheck } from "react-icons/hi2";
import { BsSend } from "react-icons/bs";
import Autocomplete from '@mui/material/Autocomplete';
import { FcOpenedFolder } from "react-icons/fc";
import { gridClasses } from '@mui/x-data-grid';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import Module_Editique from "./Module_Editique";
import Module_Attestation_Formation from "./Module_Attestation_Formation";
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcPlanner } from "react-icons/fc";
import { CiBoxList } from "react-icons/ci";
import FullCalendar from "@fullcalendar/react";
import daygridPlugin from "@fullcalendar/daygrid";
import interactionPlugin from "@fullcalendar/interaction";
import timeGridPlugin from "@fullcalendar/timegrid";
import resourceTimeGridPlugin from '@fullcalendar/resource-timegrid';
import Radio from '@mui/material/Radio';
import RadioGroup from '@mui/material/RadioGroup';
import FormControlLabel from '@mui/material/FormControlLabel';
import FormControl from '@mui/material/FormControl';
import FormLabel from '@mui/material/FormLabel';
import allLocales from '@fullcalendar/core/locales-all'
import listPlugin from '@fullcalendar/list';
import multiMonthPlugin from '@fullcalendar/multimonth'
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
const Module_Session_Evaluation = (props) => {
@ -332,14 +301,21 @@ const Module_Session_Evaluation = (props) => {
else {
setGetall_Training_Employee_No_Filter_api("false");
setGetall_Training_Employee_No_Filter_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Getall_Training_Employee_No_Filter = ', error);
setGetall_Training_Employee_No_Filter_api("false");
alert(" Impossible de recuperer la liste des employés");
// alert(" Impossible de recuperer la liste des employés");
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer la liste des employés");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -400,7 +376,10 @@ const Module_Session_Evaluation = (props) => {
else {
setGetall_Training_Materiel_No_Filter_api("false");
setGetall_Training_Materiel_No_Filter_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -408,7 +387,10 @@ const Module_Session_Evaluation = (props) => {
setLoading(false);
console.warn('Not good man :( Getall_Training_Materiel_No_Filter = ', error);
setGetall_Training_Materiel_No_Filter_api("false");
alert(" Impossible de recuperer la liste du materiel");
//alert(" Impossible de recuperer la liste du materiel");
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer la liste du materiel");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -559,7 +541,10 @@ const Module_Session_Evaluation = (props) => {
setCreate_List_Survey_hot_eval_For_Session_For_Inscrit_api("true");
setCreate_List_Survey_hot_eval_For_Session_For_Inscrit_result(res.data.message);
Getall_Survey_hot_evaluation_By_Session();
alert(res.data.message);
//alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -568,14 +553,22 @@ const Module_Session_Evaluation = (props) => {
else {
setCreate_List_Survey_hot_eval_For_Session_For_Inscrit_api("false");
setCreate_List_Survey_hot_eval_For_Session_For_Inscrit_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('Create_List_Survey_hot_eval_For_Session_For_Inscrit : Not good man :( mysearchtext = ' + error);
setCreate_List_Survey_hot_eval_For_Session_For_Inscrit_api("false");
alert(" Impossible d'initialiser la liste des enquête de positionnement ");
// alert(" Impossible d'initialiser la liste des enquête de positionnement ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'initialiser la liste des enquête de positionnement ");
setalert_type("error");
})
}
@ -872,7 +865,10 @@ const Module_Session_Evaluation = (props) => {
setCreate_List_Survey_cold_eval_For_Session_For_Inscrit_api("true");
setCreate_List_Survey_cold_eval_For_Session_For_Inscrit_result(res.data.message);
Getall_Survey_cold_evaluation_By_Session();
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -881,14 +877,21 @@ const Module_Session_Evaluation = (props) => {
else {
setCreate_List_Survey_cold_eval_For_Session_For_Inscrit_api("false");
setCreate_List_Survey_cold_eval_For_Session_For_Inscrit_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('Create_List_Survey_cold_eval_For_Session_For_Inscrit : Not good man :( mysearchtext = ' + error);
setCreate_List_Survey_cold_eval_For_Session_For_Inscrit_api("false");
alert(" Impossible d'initialiser la liste des enquête de positionnement ");
// alert(" Impossible d'initialiser la liste des enquête de positionnement ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'initialiser la liste des enquête de positionnement");
setalert_type("error");
})
}
@ -900,7 +903,12 @@ const Module_Session_Evaluation = (props) => {
function Create_List_Survey_eval_formateur_For_Session_For_Inscrit() {
if (String(selected_formateur_id) === "" || String(selected_formateur_id).length < 5) {
alert(" Vous devez choisir un formateur ");
//alert(" Vous devez choisir un formateur ");
setdisplay_alert_mysy("1");
setalert_message(" Vous devez choisir un formateur ");
setalert_type("error");
return;
}
var form = new FormData();
@ -930,7 +938,10 @@ const Module_Session_Evaluation = (props) => {
setCreate_List_Survey_eval_formateur_For_Session_For_Inscrit_result(res.data.message);
Getall_Survey_formateur_evaluation_By_Session();
setselected_formateur_id("");
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -939,14 +950,20 @@ const Module_Session_Evaluation = (props) => {
else {
setCreate_List_Survey_eval_formateur_For_Session_For_Inscrit_api("false");
setCreate_List_Survey_eval_formateur_For_Session_For_Inscrit_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('Create_List_Survey_eval_formateur_For_Session_For_Inscrit : Not good man :( mysearchtext = ' + error);
setCreate_List_Survey_eval_formateur_For_Session_For_Inscrit_api("false");
alert(" Impossible d'initialiser la liste des enquête ");
// alert(" Impossible d'initialiser la liste des enquête ");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'initialiser la liste des enquête ");
setalert_type("error");
})
}
@ -1113,7 +1130,10 @@ const Module_Session_Evaluation = (props) => {
setactionmass_eval_formateur("");
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -1122,14 +1142,22 @@ const Module_Session_Evaluation = (props) => {
else {
setSend_Survey_By_Email_For_Ids_api("false");
setSend_Survey_By_Email_For_Ids_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('Send_Survey_By_Email_For_Ids : Not good man :( mysearchtext = ' + error);
setSend_Survey_By_Email_For_Ids_api("false");
alert(" Impossible d'envoyer les demandes");
// alert(" Impossible d'envoyer les demandes");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'envoyer les demandes");
setalert_type("error");
})
}
@ -1213,7 +1241,10 @@ const Module_Session_Evaluation = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les réponses (2) ");
// alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2) ");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd)
@ -1221,7 +1252,10 @@ const Module_Session_Evaluation = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les réponses ")
// alert(" Impossible d'exporter les réponses ")
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'exporter les réponses ");
setalert_type("error");
});
@ -1244,7 +1278,10 @@ const Module_Session_Evaluation = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les réponses (2) ");
// alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2) ");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd)
@ -1252,7 +1289,10 @@ const Module_Session_Evaluation = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les réponses ")
// alert(" Impossible d'exporter les réponses ")
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'exporter les réponses ");
setalert_type("error");
});
@ -1276,7 +1316,10 @@ const Module_Session_Evaluation = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les réponses (2) ");
//alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2) ");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd)
@ -1284,7 +1327,10 @@ const Module_Session_Evaluation = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les réponses ")
// alert(" Impossible d'exporter les réponses ")
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'exporter les réponses ");
setalert_type("error");
});
@ -1299,7 +1345,10 @@ const Module_Session_Evaluation = (props) => {
if (tab_ids_survey.length <= 0) {
alert(" Aucune ligne selectionnée ");
// alert(" Aucune ligne selectionnée ");
setdisplay_alert_mysy("1");
setalert_message(" Aucune ligne selectionnée ");
setalert_type("error");
return;
}
var nom_fichier_cmd = "export_evaluation.zip";
@ -1313,7 +1362,10 @@ const Module_Session_Evaluation = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les réponses (2) ");
// alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2) ");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd);
@ -1332,7 +1384,10 @@ const Module_Session_Evaluation = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les réponses ")
//alert(" Impossible d'exporter les réponses ");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'exporter les réponses ");
setalert_type("error");
});
@ -1384,6 +1439,20 @@ const Module_Session_Evaluation = (props) => {
setDialog_LIST_EVALUATION_FORMATEUR_open(false);
};
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
const [alert_message, setalert_message] = useState("");
const [alert_type, setalert_type] = useState("");
function clear_alert_message() {
setalert_message("");
}
function clear_alert_type() {
setalert_type("");
}
function clear_display_alert_mysy() {
setdisplay_alert_mysy("");
}
return (
<div className="modulesessionevaluation">
@ -1392,6 +1461,18 @@ const Module_Session_Evaluation = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{/*** Affichage des messages d'alerte*/}
{display_alert_mysy && String(display_alert_mysy) === "1" &&
<Module_Alert_Confirmation alert_message={alert_message}
alert_type={alert_type}
clear_alert_message={clear_alert_message}
clear_alert_type={clear_alert_type}
clear_display_alert_mysy={clear_display_alert_mysy}
/>
}
{/*** FIN Affichage des messages d'alerte*/}
{/* Dialog pour gerer les LIST_HOT_EVALUATION_QUESTION */}
<Dialog
open={Dialog_LIST_HOT_EVALUATION_QUESTION_open}
@ -1634,7 +1715,10 @@ const Module_Session_Evaluation = (props) => {
} else {
alert(" Vous devez choisir un formateur ")
// alert(" Vous devez choisir un formateur ")
setdisplay_alert_mysy("1");
setalert_message(" Vous devez choisir un formateur ");
setalert_type("error");
}
}}

View File

@ -614,7 +614,7 @@ const Module_Session_Planification = (props) => {
const [selected_sequence_endDate, setselected_sequence_endDate] = useState(new Date());
const [display_view, setdisplay_view] = useState("list");
const [display_view, setdisplay_view] = useState("planning");
function func_display_planning_view() {
setdisplay_view("planning");
}
@ -1034,7 +1034,7 @@ const Module_Session_Planification = (props) => {
return;
}
console.log(" form == ", form);
console.log(" form uuu == ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Sequence_Affectation_Ressource_Poste/";
@ -1412,8 +1412,6 @@ const Module_Session_Planification = (props) => {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Sequence_Affectation_Ressource_Poste_Mass/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Add_One_Sequence_Session_Ressource_Mass res.data.status = " + res.data.status);
@ -1490,6 +1488,7 @@ const Module_Session_Planification = (props) => {
//console.log(" ##NB_Sequence = ", res.data.message.length);
setnb_sequence(res.data.message.length);
//props.setnb_sequence(res.data.message.length);
var new_data2 = [];
const new_data = res.data.message.map((x) => {
@ -1593,6 +1592,7 @@ const Module_Session_Planification = (props) => {
//console.log(" ##NB_Sequence = ", res.data.message.length);
setnb_sequence(res.data.message.length);
// props.setnb_sequence(res.data.message.length);
var new_data2 = [];
const new_data = res.data.message.map((x) => {
@ -2569,6 +2569,8 @@ const Module_Session_Planification = (props) => {
setDialog_seq_choix_model_emargement_open(false);
setDialog_seq_planif_periode_type("");
setnb_sequence(res.data.nb_sequence);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
@ -2652,6 +2654,8 @@ const Module_Session_Planification = (props) => {
setDialog_seq_choix_model_emargement_open(false);
setDialog_seq_planif_periode_type("");
setnb_sequence(res.data.nb_sequence);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
@ -3897,13 +3901,11 @@ const Module_Session_Planification = (props) => {
{Dialog_seq_ressource_1_selected_ressource_id && <div className="div_row">
<div className="div_row_gauche">
&nbsp;
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Add_One_Ressource_Fom_Dialog_Sequence} className="bton_enreg_dialog">Ajout Ress. <PlaylistAddOutlinedIcon /> </Button>
</div>
@ -3980,9 +3982,6 @@ const Module_Session_Planification = (props) => {
Aucune ressource.
</div>}
</div>}
@ -6003,7 +6002,6 @@ const Module_Session_Planification = (props) => {
setp_detail_sequence_objectif(newSelectionModel.row.objectif);
setp_detail_sequence_comment(newSelectionModel.row.commentaire);
Getall_List_Sequence_Ressource(newSelectionModel.row._id);
setselected_sequence_id(newSelectionModel.row._id);
@ -6161,10 +6159,10 @@ const Module_Session_Planification = (props) => {
{display_view && String(display_view) === "planning" && Getall_Sequence_Of_Session_result_planning_view &&
<div style={{ "border": "None" }}>
<h3> Affichage planning</h3>
&nbsp;
<div style={{ "width": "98%", "marginLeft": "5px", }} >
<div style={{ "width": "98%", "marginLeft": "5px", padding:'10px'}} >
<FullCalendar
height={550}
@ -6195,15 +6193,8 @@ const Module_Session_Planification = (props) => {
/>
</div>
</div>}
</div>
{new_planification_lines && new_planification_lines.length > 0 && <div className='div_row' style={{ backgroundColor: '#FBF2EF' }}>
@ -6271,31 +6262,7 @@ const Module_Session_Planification = (props) => {
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
/*
setsequence_gridline_id(newSelectionModel.row.id);
setselected_detail_sequence_title(newSelectionModel.row.sequence_title);
setselected_sequence_startDate(newSelectionModel.row.sequence_start);
setselected_sequence_endDate(newSelectionModel.row.sequence_end);
setp_detail_sequence_agenda(newSelectionModel.row.agenda);
setp_detail_sequence_objectif(newSelectionModel.row.objectif);
setp_detail_sequence_comment(newSelectionModel.row.commentaire);
Getall_List_Sequence_Ressource(newSelectionModel.row._id);
setselected_sequence_id(newSelectionModel.row._id);
setdisplay_detail_sequence("1");
if (document.getElementById('myRef_seq_ressource')) {
var divh = document.getElementById('myRef_seq_ressource').offsetTop;
window.scrollTo({
top: divh,
behavior: "smooth",
});
}
*/ }}
}}
@ -6366,7 +6333,7 @@ const Module_Session_Planification = (props) => {
{display_view && String(display_view) === "planning" &&
<div style={{ "border": "None" }}>
<h3> Affichage planning</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Affichage planning</h3>
&nbsp;
<div style={{ "width": "98%", "marginLeft": "5px", }} >

View File

@ -884,8 +884,8 @@ const Modules_Mes_Documents = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{props.my_title && <h3> {props.my_title} </h3>}
{!props.my_title && <h3> Tous vos documents </h3>}
{props.my_title && <h3 style={{ fontFamily:'DM Sans' }}> {props.my_title} </h3>}
{!props.my_title && <h3 style={{ fontFamily:'DM Sans' }}> Tous vos documents </h3>}
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

View File

@ -1307,7 +1307,7 @@ const Mon_Tableau_De_Bord = (props) => {
<hr className="hr_break" />
{String(submenu) === String("rapport_financier") && <div style={{ "border": "None" }}>
<h3> Rapports Financiers </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Rapports Financiers </h3>
<Box >
<div className="session_data" >
@ -1497,7 +1497,7 @@ const Mon_Tableau_De_Bord = (props) => {
{String(submenu) === String("rapport_rh") && <div style={{ "border": "None" }}>
<h3> Rapports Ressources Humaines </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Rapports Ressources Humaines </h3>
<Box >
<div className="session_data" >
<div style={{ "border": "None" }}>
@ -1842,7 +1842,7 @@ const Mon_Tableau_De_Bord = (props) => {
</div>}
{String(submenu) === String("rapport_activite") && <div style={{ "border": "None" }}>
<h3> Rapport d'activité </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Rapport d'activité </h3>
<Box >
<div className="session_data" >
@ -2017,7 +2017,7 @@ const Mon_Tableau_De_Bord = (props) => {
</div>}
{String(submenu) === String("bpf") && <div style={{ "border": "None" }}>
<h3> Bilan Pédagogique et Financier (BPF) </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Bilan Pédagogique et Financier (BPF) </h3>
<div className="titre1"> C. Bilan financier hors taxes : Origine des produits de l'organisme </div>
<div className="div_row">
@ -2469,7 +2469,7 @@ const Mon_Tableau_De_Bord = (props) => {
{String(submenu) === String("montbd") && <div style={{ "border": "None" }}>
<h3> Mon tableau de bord </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mon tableau de bord </h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;

View File

@ -943,7 +943,7 @@ const New_Article_2025 = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -270,7 +270,7 @@ const New_C_Formation_2025 = (props) => {
flexDirection: 'column',
},
image: {
width: '100%',
maxWidth: '100%',
height: '200px',
overflow: 'hidden',
marginTop: '-2rem'

View File

@ -3561,7 +3561,7 @@ const Notes_Evaluation = (props) => {
</Dialog>
{/*** Fin ajout ressource */}
<h3> Les Evaluations </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les Evaluations </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -5534,7 +5534,7 @@ const Notes_Evaluation = (props) => {
{String(submenu) === "ressources" && <div>
<h3> Ressources Humaines & Materielles</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Ressources Humaines & Materielles</h3>
<div className="session_data">
<div style={{ "border": "None" }}>

View File

@ -9,6 +9,8 @@ import { useHistory } from "react-router-dom";
import Facture from "./Facture";
import { FaHandPointRight } from "react-icons/fa";
import { useParams } from 'react-router-dom'
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
function OrderConfirmation_3DS(props) {
const [menu, setmenu] = useState("");
@ -22,7 +24,7 @@ function OrderConfirmation_3DS(props) {
window.scrollTo({
top: 0,
behavior: "smooth",
});
});
}, []);
function GoToInvoice() {
@ -74,7 +76,7 @@ function OrderConfirmation_3DS(props) {
function parent_retur_main_page() {
if (window.parent) {
window.parent.location.reload();
window.parent.location.reload();
}
}
@ -116,39 +118,39 @@ function OrderConfirmation_3DS(props) {
}
// Mise à jour du compte LMs Mysy
const [MySy_LMS_Account_Management_api, setMySy_LMS_Account_Management_api] = useState("");
const [MySy_LMS_Account_Management_message, setMySy_LMS_Account_Management_message] = useState("");
function MySy_LMS_Account_Management() {
var formData_tpm = new FormData();
formData_tpm.append('token', stored_part);
//formData_tpm.append('stripe_payment_id', stripe_pi);
//formData_tpm.append('packs', packs);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Check_MySy_LMS_Account/";
axios.post(myurl, formData_tpm).then(res => {
// Mise à jour du compte LMs Mysy
const [MySy_LMS_Account_Management_api, setMySy_LMS_Account_Management_api] = useState("");
const [MySy_LMS_Account_Management_message, setMySy_LMS_Account_Management_message] = useState("");
function MySy_LMS_Account_Management() {
var formData_tpm = new FormData();
formData_tpm.append('token', stored_part);
//formData_tpm.append('stripe_payment_id', stripe_pi);
//formData_tpm.append('packs', packs);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Check_MySy_LMS_Account/";
axios.post(myurl, formData_tpm).then(res => {
console.log('In MySy_LMS_Account_Management status = ', res.data.status, " -- message = ", res.data.message);
if (String(res.data.status) === String("true")) {
setMySy_LMS_Account_Management_api("true");
}
else {
setMySy_LMS_Account_Management_api("false")
setMySy_LMS_Account_Management_message(String(res.data.message))
}
}).catch((error) => {
console.log('In MySy_LMS_Account_Management ', error);
setMySy_LMS_Account_Management_api("false")
})
}
if (String(res.data.status) === String("true")) {
setMySy_LMS_Account_Management_api("true");
}
else {
setMySy_LMS_Account_Management_api("false")
setMySy_LMS_Account_Management_message(String(res.data.message))
}
}).catch((error) => {
console.log('In MySy_LMS_Account_Management ', error);
setMySy_LMS_Account_Management_api("false")
})
}
return (
<div className="orderconfirmation">
@ -207,8 +209,38 @@ function OrderConfirmation_3DS(props) {
<div className="div_row_central">
<Button variant="contained" color="success" className="div_row22 btn_enreg_cmd"
onClick={parent_retur_main_page}> IMPORTANT : Je finalise mon abonnement </Button>
<Popup
trigger={
<Button variant="contained" color="success" className="div_row22 btn_enreg_cmd"> IMPORTANT : Je finalise mon abonnement </Button>}
modal
nested
position="center center"
>
{close => (
<div>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
Votre paiement a été validé. Vous allez être redirigé vers l'interface de création des formations<br />
</div>
<div className="gest_actions">
<div>
<button className="gest_bton_popup" onClick={(event) => {
parent_retur_main_page();
close();
}}> Ok </button>
</div>
</div>
</div>
)}
</Popup>
</div>
</div>}

View File

@ -39,6 +39,8 @@ import {
FcEngineering
} from "react-icons/fc";
import { SlClose } from "react-icons/sl";
import CircleNotificationsIcon from '@mui/icons-material/CircleNotifications';
import { FcInspection } from "react-icons/fc";
@ -1694,7 +1696,7 @@ const Partner = (props) => {
<meta name="description" content="backoffice partenaire editeurs formation" />
<meta name="robots" content="index,follow" />
</Helmet>
<div className="div_mobile" id="div_mobile">
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
@ -1800,7 +1802,7 @@ const Partner = (props) => {
{String(part_is_partner_admin_account) === "1" && <div className="nom_prenom">
{parntername && <nav>
<b> {parntername}&nbsp;-&nbsp;{String(partnerPackService).toUpperCase()} ({parnternbformation})</b> &nbsp; &nbsp;
<b> {parntername}&nbsp;-&nbsp;{String(partnerPackService).toUpperCase()} </b><br />
<Tooltip className="tooltip_css" id="badge_tool_01" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="badge_tool_01" data-tooltip-html="Activité(s) en retard">
@ -1834,7 +1836,7 @@ const Partner = (props) => {
{String(part_is_partner_admin_account) !== "1" && <div className="nom_prenom">
{parnter_user_employee}
{!parntername && <b> Utilisateur </b>} &nbsp; &nbsp;
{!parntername && <b> Utilisateur </b>} <br />
{GetPartnerNameFromToken_api_result && conntected_employee_activite_retard && parseFloat(conntected_employee_activite_retard) > 0 &&
<StyledBadge_mysy_red badgeContent={conntected_employee_activite_retard} style={{ "cursor": "pointer" }}
onClick={(event) => {
@ -2182,10 +2184,10 @@ const Partner = (props) => {
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) === "1" &&
<div className="div_droite firstConnexion">
<div className="firstConnexion_text">
<b>Cher partenaire, c'est votre première connexion, </b> <br /> &nbsp;<br />
Nous sommes ravis de vous accueillir dans notre aventure MySy.
Pour commencer à publier vos formations, veuillez choisir une formule d'abonnement en cliquant <Button onClick={ValideFirstConnexion} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; &nbsp; ici</Button><br />
&nbsp; <br /> Merci.
<b>Bienvenue chez MySy, cher partenaire ! </b> <br /> &nbsp;<br />
C'est votre première connexion, et toute l'équipe est ravie de vous accueillir dans l'aventure.<br />
Pour commencer à publier vos formations et profiter pleinement de notre plateforme, il vous suffit de choisir une formule d'abonnement en cliquant <Button onClick={ValideFirstConnexion} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; &nbsp; ici</Button><br />
&nbsp; <br /> Et merci de faire partie du voyage !
</div>
</div>}
@ -2193,8 +2195,9 @@ const Partner = (props) => {
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) !== "1" &&
<div className="div_droite firstConnexion">
<div className="firstConnexion_text">
<b>Cher Utilisateur, c'est votre première connexion, </b> <br /> &nbsp;<br />
Nous sommes ravis de vous accueillir dans notre aventure MySy. Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFORMATIONS"</i> ==&gt; Bouton <i>"SECURITE"</i> <br /><br />
<b>Bienvenue chez MySy, cher Utilisateur </b> <br /> &nbsp;<br />
C'est votre première connexion, et toute l'équipe est ravie de vous accueillir dans l'aventure.<br />
Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFORMATIONS"</i> ==&gt; Bouton <i>"SECURITE"</i> <br /><br />
<Button onClick={(e) => setfirstConnexion()} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; Fermer</Button><br />
&nbsp; <br /> Merci.
</div>
@ -2443,7 +2446,7 @@ const Partner = (props) => {
conntected_employee_id={conntected_employee_id}
object_key={orderid}
class_internal_url={packs}
read_access={check_user_acces_right("session", "read")}
read_access={check_user_acces_right("session", "read")}
write_access={check_user_acces_right("session", "write")}
check_user_acces_right={check_user_acces_right} reduce={"0"} />
</div>
@ -2473,16 +2476,20 @@ const Partner = (props) => {
{String(menu) === "mon_materiel" &&
<div className="div_droite">
<Materiels conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right} />
<Materiels conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}
{String(menu) === "mes_salles" &&
<div className="div_droite">
<Materiel_Salle conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("materiel", "read")} write_access={check_user_acces_right("materiel", "write")} />
<Materiel_Salle conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}
@ -2938,10 +2945,10 @@ const Partner = (props) => {
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) === "1" &&
<div className="div_droite firstConnexion">
<div className="firstConnexion_text">
<b>Cher partenaire, c'est votre première connexion, </b> <br /> &nbsp;<br />
Nous sommes ravis de vous accueillir dans notre aventure MySy.
Pour commencer à publier vos formations, veuillez choisir une formule d'abonnement en cliquant <Button onClick={ValideFirstConnexion} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; &nbsp; ici</Button><br />
&nbsp; <br /> Merci.
<b>Bienvenue chez MySy, cher partenaire ! </b> <br /> &nbsp;<br />
C'est votre première connexion, et toute l'équipe est ravie de vous accueillir dans l'aventure.<br />
Pour commencer à publier vos formations et profiter pleinement de notre plateforme, il vous suffit de choisir une formule d'abonnement en cliquant <Button onClick={ValideFirstConnexion} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; &nbsp; ici</Button><br />
&nbsp; <br /> Et merci de faire partie du voyage !
</div>
</div>}
@ -2949,8 +2956,9 @@ const Partner = (props) => {
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) !== "1" &&
<div className="div_droite firstConnexion">
<div className="firstConnexion_text">
<b>Cher Utilisateur, c'est votre première connexion, </b> <br /> &nbsp;<br />
Nous sommes ravis de vous accueillir dans notre aventure MySy. Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFORMATIONS"</i> ==&gt; Bouton <i>"SECURITE"</i> <br /><br />
<b>Bienvenue chez MySy, cher Utilisateur </b> <br /> &nbsp;<br />
C'est votre première connexion, et toute l'équipe est ravie de vous accueillir dans l'aventure.<br />
Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFORMATIONS"</i> ==&gt; Bouton <i>"SECURITE"</i> <br /><br />
<Button onClick={(e) => setfirstConnexion()} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; Fermer</Button><br />
&nbsp; <br /> Merci.
</div>
@ -3208,7 +3216,8 @@ const Partner = (props) => {
{String(menu) === "mon_materiel" &&
<div className="div_droite div_droite_ralonge">
<Materiels conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("materiel", "read")}
<Materiels conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
@ -3217,7 +3226,8 @@ const Partner = (props) => {
{String(menu) === "mes_salles" &&
<div className="div_droite div_droite_ralonge">
<Materiel_Salle conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("materiel", "read")}
<Materiel_Salle conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right} />
</div>

View File

@ -907,7 +907,7 @@ const Partner_Client = (props) => {
<div className="div_row">
<h3> Vos clients & Organismes Financeurs</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes clients & Organismes Financeurs</h3>
<div className="titre1"> Utilisez les filtres !</div>
<div>

View File

@ -6502,7 +6502,7 @@ const Partner_Commande = (props) => {
<h3> Vos Commandes et Devis </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes Commandes et Devis </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

View File

@ -1728,7 +1728,7 @@ const Partner_Config_Formulaires = (props) => {
<h3> Votre configuration des formulaires </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Votre configuration des formulaires </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

View File

@ -657,7 +657,7 @@ const Partner_Config_Ftion_Initiale = (props) => {
</div>}
<h3> Formation Initale configuration </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Formation Initale configuration </h3>
<div className="div_row" ref={myRef_head} id="myRef_head" >
<Button variant="outlined" onClick={submenu_type_eval} className="detail_class_submenu" id='technique' name='technique'>Type Evaluation</Button>
{/*

View File

@ -1878,7 +1878,7 @@ const Partner_Configuration_Jours_Travail = (props) => {
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Votre configuration des jours et heure de travail </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Votre configuration des jours et heure de travail </h3>
<div className="div_row">
<div className="div_row" >

View File

@ -690,7 +690,7 @@ const Partner_Configuration_Session_Steps = (props) => {
</DialogActions>
</Dialog>
<h3> Votre configuration des étapes de session </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Votre configuration des étapes de session </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

View File

@ -540,7 +540,8 @@ const Partner_Configuration_Technique = (props) => {
{ field: '_id', headerName: '_id', hide: true },
{ field: 'id', headerName: 'id', hide: true },
{ field: 'document_ref_interne', headerName: 'Ref. Interne', flex: 1, hide: false, editable: false },
{ field: 'actif', headerName: 'Activé', flex: 1, hide: false, editable: false,
{
field: 'actif', headerName: 'Activé', flex: 1, hide: false, editable: false,
renderCell: (cellValues) => {
return (
@ -552,20 +553,21 @@ const Partner_Configuration_Technique = (props) => {
);
},
},
},
{ field: 'document_type_nom', headerName: 'Modèle Nom', flex: 1, hide: false, editable: false },
{ field: 'nb_jour_action', headerName: 'Nb Jour', flex: 1, hide: false, editable: false },
{ field: 'action_target_date', headerName: 'Cible', flex: 1, hide: false, editable: false ,
{
field: 'action_target_date', headerName: 'Cible', flex: 1, hide: false, editable: false,
renderCell: (cellValues) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "10px", "display": "block", wordBreak: "break-all" }}>
{String(cellValues.row.action_target_date) === "start_session" && "Début Session"}
{String(cellValues.row.action_target_date) === "end_session" && "Fin Session"}
{String(cellValues.row.action_target_date) !== "start_session" &&
String(cellValues.row.action_target_date) !== "end_session" && "??"}
{String(cellValues.row.action_target_date) !== "start_session" &&
String(cellValues.row.action_target_date) !== "end_session" && "??"}
&nbsp;
</div>
@ -2910,7 +2912,7 @@ const Partner_Configuration_Technique = (props) => {
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent>
<DialogContentText>
{Dialog_1_message}
@ -2962,7 +2964,7 @@ const Partner_Configuration_Technique = (props) => {
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Type de client </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">Type de client </DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_type_client_1_message}
@ -3069,7 +3071,7 @@ const Partner_Configuration_Technique = (props) => {
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Sites de formation </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">Sites de formation </DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_site_ftion_1_message}
@ -3351,7 +3353,7 @@ const Partner_Configuration_Technique = (props) => {
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> Condition de Paiement </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> Condition de Paiement </DialogTitle>
<DialogContent className="DialogContent_width">
<div className="session_caract_Dialog" > code
@ -3500,7 +3502,7 @@ const Partner_Configuration_Technique = (props) => {
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> CRM étape opportunité </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> CRM étape opportunité </DialogTitle>
<DialogContent className="DialogContent_width">
<div className="session_caract_Dialog" > code
@ -3606,7 +3608,7 @@ const Partner_Configuration_Technique = (props) => {
</Dialog>
<h3> Votre configuration </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Votre configuration </h3>
<div className="div_row" ref={myRef_head} id="myRef_head" >
<Button variant="outlined" onClick={submenu_technique} className="detail_class_submenu" id='technique' name='technique'>Technique</Button>
@ -5218,15 +5220,17 @@ const Partner_Configuration_Technique = (props) => {
{String(submenu) === "automatic_doc" && <div className="div_row" style={{ paddingRight: '10px' }}>
<div className="div_row" style={{ paddingRight: '10px' }}>
Cet écran vous permet de définir le paramétrage par défaut d'automatisation de vos documents. <br />
Définissez vos automatisations par défaut en un clin d'œil ! <br />
Cet écran vous permet de configurer les règles dautomatisation par défaut pour lenvoi de vos documents administratifs.<br />
Par exemple,
<ul>
<li> Vous souhaitez envoyer les convocations aux apprenants 15 jours avant le début de la session de formation</li>
<li>Vous souhaitez envoyer les demandes d'évaluation 1 jours après la fin de la session de formation </li>
<li> Etc</li>
<li>Envoyer automatiquement les convocations aux apprenants 15 jours avant le début de la session</li>
<li>Transmettre les demandes d'évaluation 1 jour après la fin de la session, </li>
<li> Et bien plus encore, selon vos besoins.</li>
</ul>
Ce paramétrage sera ajouté à toutes les sessions, mais vous avez la possibilité de modifier ces informations pour chaque session, en allant sur la session, cliquer sur le bouton « Gestion », puis modifier les informations souhaitées<br />
Ces paramètres seront appliqués par défaut à toutes les nouvelles sessions. <br />
Mais pas d'inquiétude : chaque session reste personnalisable !<br />
Pour cela, rendez-vous sur la session concernée, cliquez sur « Gestion », puis modifiez les informations selon vos préférences.
</div>
<div>

View File

@ -2000,7 +2000,7 @@ const Partner_domaine_Categorie_Metier = (props) => {
{/*** domaine */}
{String(submenu) === "domaine" && <div className="div_row" style={{ paddingRight: '10px' }}>
<h3> Les domaines de formation</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les domaines de formation</h3>
<div>
<div className="div_row" style={{ paddingRight: '10px' }}>
@ -2317,7 +2317,7 @@ const Partner_domaine_Categorie_Metier = (props) => {
{/*** categorie */}
{String(submenu) === "categorie" && <div className="div_row" style={{ paddingRight: '10px' }}>
<h3> Les catégories de formation</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les catégories de formation</h3>
<div>
<div className="div_row" style={{ paddingRight: '10px' }}>
@ -2680,7 +2680,7 @@ const Partner_domaine_Categorie_Metier = (props) => {
{/*** metier */}
{String(submenu) === "metier" && <div className="div_row" style={{ paddingRight: '10px' }}>
<h3> Les métiers</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les métiers</h3>
<div>
<div className="div_row" style={{ paddingRight: '10px' }}>
<div className="session_data">

View File

@ -3547,7 +3547,7 @@ const Partner_Facture = (props) => {
{/******** FIN Menu Clique Droit test */}
<h3> Vos Factures </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes Factures </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

View File

@ -296,7 +296,7 @@ function Partner_Invoicing_Data(props) {
{String(RecordData_api) === String("false") && <div className="koUpdateData"> Impossible de modifier les informations </div>}
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<div style={{ display: 'flex', flexDirection: 'row', gap: '20px', width: '100%', flexWrap: 'wrap', justifyContent: 'left' }}>
<TextField
required
@ -394,8 +394,8 @@ function Partner_Invoicing_Data(props) {
name="adr_street"
label="Adresse"
className="texte_area_adress"
sx={{ m: 1, width: '96%' }}
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
@ -462,7 +462,7 @@ function Partner_Invoicing_Data(props) {
/>
</Box>
</div>
<div className="div_row">
&nbsp;

View File

@ -557,7 +557,7 @@ const Partner_Prix_Achat = (props) => {
</Dialog>
<h3> Vos prix d'achat </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes prix d'achat </h3>
<div>
<div className="titre1"> Utilisez les filtres !</div>

View File

@ -1163,7 +1163,7 @@ const Partner_Product_Service = (props) => {
</DialogActions>
</Dialog>
<h3> Vos Prix </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes Prix </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

View File

@ -15,7 +15,7 @@ import FormControl from '@mui/material/FormControl';
import InputLabel from '@mui/material/InputLabel';
import OutlinedInput from '@mui/material/OutlinedInput';
import moment from 'moment'
import img_logo_stripe from "./../mysy_img/logo-stripe-secure.png";
import img_logo_stripe from "./../mysy_img/logo-stripe-secure.png";
function PaymentMethode(props) {
@ -164,10 +164,10 @@ function PaymentMethode(props) {
if (String(result['status']) === String("true")) {
setpaymentadded("1");
window.scrollTo({
top: 0,
behavior: "smooth",
});
}else if (String(result['status']) === String("Err_Connexion")) {
top: 0,
behavior: "smooth",
});
} else if (String(result['status']) === String("Err_Connexion")) {
alert('Erreur: ' + result['message']);
history.push("/Connexion");
}
@ -239,25 +239,25 @@ function PaymentMethode(props) {
useEffect(() => {
//console.log(" props.mypaymentmode = " + props.mypaymentmode);
var num_carte = "XXXX"+JSON.parse(props.mypaymentmode).last4;
setnum_carte(num_carte);
var exp_data = JSON.parse(props.mypaymentmode).exp_month+"/"+JSON.parse(props.mypaymentmode).exp_year;
setdate_exp(exp_data);
var num_carte = "XXXX" + JSON.parse(props.mypaymentmode).last4;
setnum_carte(num_carte);
var exp_data = JSON.parse(props.mypaymentmode).exp_month + "/" + JSON.parse(props.mypaymentmode).exp_year;
setdate_exp(exp_data);
window.scrollTo({
top: 0,
behavior: "smooth",
});
});
}, []);
return (
<div className="paymentmethode">
<div className="row_gauche_bis">
mypaymentmode = {props.mypaymentmode}
<div className="div_row_central">
{String(paymentadded) === String("1") && <div className="okUpdateData">
@ -277,11 +277,11 @@ function PaymentMethode(props) {
<div className="div_row_gauche" style={{ "minHeight": "4rem" }}> Carte Bancaire </div>
<div className="div_row_droite" style={{ "textAlign": "right", "maxHeight": "rem" }}>
<img src={img_logo_stripe} className="img_payment" /> &nbsp;
</div>
</div>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<TextField
required
@ -301,7 +301,7 @@ function PaymentMethode(props) {
label="Numéro de carte"
name="num_carte"
id="num_carte"
value={"XXXX"+(JSON.parse(props.mypaymentmode).last4)}
value={"XXXX" + (JSON.parse(props.mypaymentmode).last4)}
autoComplete="off"
className="texte_area"
sx={{ m: 1, width: '95%' }}
@ -316,7 +316,7 @@ function PaymentMethode(props) {
name="date_exp"
id="date_exp"
autoComplete="new-qsq"
value={(JSON.parse(props.mypaymentmode).exp_month)+"/"+(JSON.parse(props.mypaymentmode).exp_year)}
value={(JSON.parse(props.mypaymentmode).exp_month) + "/" + (JSON.parse(props.mypaymentmode).exp_year)}
className="texte_area"
sx={{ m: 1, width: '45%' }}
onChange={Checkdate_expdate_exp}
@ -357,8 +357,8 @@ function PaymentMethode(props) {
<div className="titre1" onClick={menu_sepa}> Prélèvement par virement SEPA</div>
{String(menu) === String("sepa") && <div>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<TextField
required
@ -407,8 +407,8 @@ function PaymentMethode(props) {
Pour confirmer le changement, veuillez entrer votre mot de passe et votre clé sécrete <br />
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<FormControl sx={{ m: 1, width: '45%' }} variant="standard" size="small" className="texte_area_passwd">
<InputLabel htmlFor="outlined-adornment-password">Mot de passe</InputLabel>
@ -486,7 +486,7 @@ function PaymentMethode(props) {
}}>J'ai lu et j'accepte les conditions ci-dessus.</label>
</div>
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={RecordData}>Enregistrer</Button>
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={RecordData}>Enregistrer </Button>
</div>
</div>

View File

@ -139,26 +139,27 @@ function PaymentMethodeNoConnect(props) {
)
.then((response) => response.json())
.then((result) => {
//console.log(' paymenadded_api Success:', result['message'], "result['status'] = ", result['status']);
console.log(' paymenadded_api Success:', result['message'], "result['status'] = ", result['status']);
setRecordData_api(result['status']);
if (String(result['status']) === String("true")) {
setpaymentadded("1");
}else if (String(result['status']) === String("Err_Connexion")) {
props.GetPayementMode();
props.display_succes_message_from_sub_componante("La mise à jour a été correctement faite");
props.menu_paymentmethode_close();
} else if (String(result['status']) === String("Err_Connexion")) {
alert('Erreur: ' + result['message']);
history.push("/Connexion");
}
else {
setpaymentadded("0");
}
})
.catch((error) => {
@ -224,7 +225,7 @@ function PaymentMethodeNoConnect(props) {
window.scrollTo({
top: 0,
behavior: "smooth",
});
});
}, []);
@ -250,13 +251,13 @@ function PaymentMethodeNoConnect(props) {
{String(paymentadded) === String("1") && <div className="okUpdateData">
Le mode de Paiement a été correctement ajouté
{window.location.reload()}
{/*window.location.reload()*/}
</div>
}
{String(paymentadded) === String("0") && <div className="koUpdateData">
Impossible d'ajouter/mettre à jour la carte.
Merci de verifier vos informations.
Impossible d'ajouter/mettre à jour la carte.
Merci de verifier vos informations.
{result}
</div>
}
@ -268,8 +269,8 @@ function PaymentMethodeNoConnect(props) {
</div>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<TextField
required
@ -277,10 +278,10 @@ function PaymentMethodeNoConnect(props) {
label="Nom inscrit sur la carte"
name="nom_carte"
className="texte_area_carte"
sx={{ m: 1, width: '95%' }}
/>
<TextField
@ -307,7 +308,7 @@ function PaymentMethodeNoConnect(props) {
sx={{ m: 1, width: '45%' }}
onChange={Checkdate_expdate_exp}
onBlur={Onleave_expdate_exp}
/>
<TextField
@ -335,8 +336,8 @@ function PaymentMethodeNoConnect(props) {
Pour confirmer le changement, veuillez entrer votre mot de passe et votre clé sécrete <br />
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<FormControl sx={{ m: 1, width: '100%' }} variant="standard" size="small" className="texte_area_passwd carte_cle_pass">
<InputLabel htmlFor="outlined-adornment-password">Mot de passe</InputLabel>
@ -415,7 +416,7 @@ function PaymentMethodeNoConnect(props) {
</div>
<div className="div_row_centre">
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={RecordData}>Enregistrer</Button>
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={RecordData}>Enregistrer </Button>
</div>
</div>
);

View File

@ -363,7 +363,7 @@ function PaymentMethodeNoConnect(props) {
<div className="div_row_centre">
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={RecordData}>Enregistrer</Button>
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={RecordData}>Enregistrer </Button>
</div>
</div>

View File

@ -1456,7 +1456,7 @@ const RechercheArticles_new_v2 = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -44,7 +44,7 @@ function Register() {
return (
<form onSubmit={handleSubmit(onSubmit)}>
<h1>Créer votre compte</h1>
<h3>Inscription rapide</h3>
<h3 style={{ fontFamily:'DM Sans' }}>Inscription rapide</h3>
<div>
<input
{...register("name", {

View File

@ -1400,7 +1400,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
toolbar: 'undo redo | casechange blocks | bold italic backcolor | ' +
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px;line-height: 0.6rem; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px;line-height: 0.6rem; }'
}}
/>
@ -1426,7 +1426,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
toolbar: 'undo redo | casechange blocks | bold italic backcolor | ' +
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px;line-height: 0.6rem; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px;line-height: 0.6rem; }'
}}
/>
@ -1486,7 +1486,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
{topX_formation && topX_formation.length > 3 && <div>
<h3>Le top 5 de vos formationes de la semaine est : </h3>
<h3 style={{ fontFamily:'DM Sans' }}>Le top 5 de vos formationes de la semaine est : </h3>
{topX_formation &&
@ -1512,7 +1512,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
<div className="section col-md-6">
<h3>Le top 5 de vos formationes de la semaine est : </h3>
<h3 style={{ fontFamily:'DM Sans' }}>Le top 5 de vos formationes de la semaine est : </h3>
{topX_formation &&

View File

@ -1541,7 +1541,7 @@ const TestUrl_New = (props) => {
<div className="div_mobile">
<h3> Page de test * testurl_new </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Page de test * testurl_new </h3>
parametres courseid = {courseid}, tabid = {tabid}
<br />
Affichage Timeline <br />
@ -1803,7 +1803,7 @@ const TestUrl_New = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
<Button className="bton_enreg" onClick={Add_one_Partner_Document} style={{ "margin": "1rem" }}

View File

@ -320,7 +320,7 @@ const Test_Drag_Drop = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Test Page Drag & Drop</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Test Page Drag & Drop</h3>
<Button variant="contained"
color="success"
className="btn_abonnement"

View File

@ -2602,14 +2602,16 @@ function UpdateParnterInfo(props) {
form.append("_id", selected_catalog_pub_config_id);
form.append("banniere_img", img_bg_file);
//console.log(" form == ", form);
// console.log("Add_Update_Catalog_Pub_Banniere form == ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_Partner_Catalog_Pub_Config/";
// console.log("myurl== ", myurl);
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
//console.log(" In Add_Update_Catalog_Pub_Banniere res.data.status = " + res.data.status);
// console.log(" In Add_Update_Catalog_Pub_Banniere res.data.status = " + res.data.status);
//console.log(" In Add_Update_Catalog_Pub_Banniere res.data.message r_class = " + res.data.message);
if (String(res.data.status) === String("true")) {
@ -2639,7 +2641,7 @@ function UpdateParnterInfo(props) {
setLoading(false);
console.warn('UpdateStagiaireData : Not good man :( Add_Update_Catalog_Pub_Banniere = ' + error);
setAdd_Update_Catalog_Pub_Banniere_api("false");
alert(" Impossible de supprimer la bannière ");
alert(" Impossible de mettre à jour la bannière ");
})
}
@ -3445,7 +3447,7 @@ function UpdateParnterInfo(props) {
</div>}
{String(submenu).trim() === "submenu_donnee_catalog_pub" && <div className="training_data">
<h3> Configuration du Catalogue public </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Configuration du Catalogue public </h3>
<div className="partner_catalog_pub">
@ -4747,7 +4749,7 @@ function UpdateParnterInfo(props) {
{Partner_Catalog_Pub_banniere && String(Partner_Catalog_Pub_banniere).length > 20 && <div className="div_row" style={{ "border": "None" }}>
Bannière actuelle : <br />
<img src={Partner_Catalog_Pub_banniere} alt={""} className="img_bg_file_css" /> zzzz
<img src={Partner_Catalog_Pub_banniere} alt={""} className="img_bg_file_css" />
<br />
<br />
<Button variant="contained" className="btn_enreg" onClick={Delete_Catalog_Pub_Banniere_Img}>Supprimer Bannière
@ -5462,7 +5464,10 @@ function UpdateParnterInfo(props) {
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }} onChange={DataUpdated}>
<div style={{ display: 'flex', flexDirection: 'row', gap: '20px', width: '100%', flexWrap: 'wrap', justifyContent: 'left' }} onChange={DataUpdated}>
{String(is_partner_admin_account) === "1" && <TextField
required
@ -5621,8 +5626,8 @@ function UpdateParnterInfo(props) {
<TextField
name="adr_street"
label="Adresse"
className="texte_area_adress"
sx={{ m: 1, width: '90%' }}
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
@ -5681,270 +5686,265 @@ function UpdateParnterInfo(props) {
value={p_adr_country}
onChange={(e) => setp_adr_country(e.target.value)}
/>
{String(is_partner_admin_account) === "1" && <div>
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="div_row_gauche">
<div className="titre1"> Votre logo </div>
<div className="div_row_bis" style={{ "marginBottom": "10px", "marginTop": "1rem" }} >
<div className="div_row_gauche_image">
<img class="img_class_logo" src={userimgclassprofil} /><br />
<TextField
required
name="num_nda"
label="Numéro NDA"
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<AccountCircle />
</InputAdornment>
),
}}
value={p_num_nda}
onChange={(e) => setp_num_nda(e.target.value)}
/>
{fields1desabled == true && String(myqualiopi) !== "1" &&
<TextField
name="isqualiopi"
label="Qualiopi"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(myqualiopi) === "1" &&
<TextField
name="isqualiopi"
label="Qualiopi"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="isqualiopi"
label="Qualiopi"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={myqualiopi}
onChange={handleChangequaliopi}
>{qualiopi.map((option) => (
<MenuItem key={option.value} value={option.value}>
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
{fields1desabled == true && String(mydatadock) !== "1" &&
<TextField
name="isdatadock"
label="Datadock"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(mydatadock) === "1" &&
<TextField
name="isdatadock"
label="Datadock"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="isdatadock"
label="Datadock"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={mydatadock}
onChange={handleChangedatadock}
>{datadock.map((option) => (
<MenuItem key={option.value} value={option.value}>
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
{fields1desabled == true && String(mycertifvoltaire) !== "1" &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(mycertifvoltaire) === "1" &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={mycertifvoltaire}
onChange={handleChangecertifvoltaire}
>{certifvoltaire.map((option) => (
<MenuItem key={option.value} value={option.value} >
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
{String(is_partner_admin_account) === "1" &&
<div style={{ display: 'flex', flexDirection: 'row', gap: '20px', width: '100%', flexWrap: 'wrap', justifyContent: 'left' }} onChange={DataUpdated}>
<div className="div_row_gauche" style={{ "width": '48%' }} >
<div className="titre1"> Votre logo </div>
<div className="div_row_bis" style={{ "marginBottom": "10px", "marginTop": "1rem" }} >
<div className="div_row_gauche_image">
<img class="img_class_logo" src={userimgclassprofil} /><br />
</div>
<div className="div_row_droite_image">
<input type="file" id="files_img_class" accept="image/*" onChange={imglogoclasschangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{String(userformedited) === "1" && <nav> <label for="files_img_class" className="bton_image_class">Charger un logo</label><br />
{String(isimgclassSelected_recid) && String(isimgclassSelected_recid).length > 3 &&
<nav className="bton_supprime_image_class" onClick={removeRecodedLogoImage}>Supprimer le logo<br /> </nav>
}
</nav>}
{/*isimgclassSelected && <Button variant="outlined" onClick={sendClassImage} className="bton_image_class">Enregistrer image</Button>*/}
{isimgclassdeleted && String(isimgclassdeleted) === "1" && <nav className="koUpdateData"> {isimgclassdeleted_message}</nav>}
{isimgclassdeleted && String(isimgclassdeleted) === "0" && <nav className="okUpdateData"> {isimgclassdeleted_message}</nav>}
{isimgclassSelected && String(isimgclassSaved) === "0" && <nav className="koUpdateData"> {isimgclassSaved_message}</nav>}
</div>
</div>
<div className="div_row_droite_image">
<input type="file" id="files_img_class" accept="image/*" onChange={imglogoclasschangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{String(userformedited) === "1" && <nav> <label for="files_img_class" className="bton_image_class">Charger un logo</label><br />
{String(isimgclassSelected_recid) && String(isimgclassSelected_recid).length > 3 &&
<nav className="bton_supprime_image_class" onClick={removeRecodedLogoImage}>Supprimer le logo<br /> </nav>
}
</nav>}
{/*isimgclassSelected && <Button variant="outlined" onClick={sendClassImage} className="bton_image_class">Enregistrer image</Button>*/}
{isimgclassdeleted && String(isimgclassdeleted) === "1" && <nav className="koUpdateData"> {isimgclassdeleted_message}</nav>}
{isimgclassdeleted && String(isimgclassdeleted) === "0" && <nav className="okUpdateData"> {isimgclassdeleted_message}</nav>}
{isimgclassSelected && String(isimgclassSaved) === "0" && <nav className="koUpdateData"> {isimgclassSaved_message}</nav>}
<div className="div_row_bis tips_img_class">
<li>
L'image doit etre carrée.
</li>
<li>
Les formats autorisés sont : <i>['jpg', 'jpeg', 'png', 'jpe', 'webp']</i>
</li>
<li>
Les dimensions recommandées: 128pixels X 128pixels -- 144pixels X 144pixels -- 168pixels X 168pixels<br />
Les dimensions maximales sont de 256pixels X 256pixels
</li>
<li>
La taille de l'image ne doit pas dépasser 1 mega octet
</li>
</div>
</div>
<div className="div_row_bis tips_img_class">
<li>
L'image doit etre carrée.
</li>
<li>
Les formats autorisés sont : <i>['jpg', 'jpeg', 'png', 'jpe', 'webp']</i>
</li>
<li>
Les dimensions recommandées: 128pixels X 128pixels -- 144pixels X 144pixels -- 168pixels X 168pixels<br />
Les dimensions maximales sont de 256pixels X 256pixels
</li>
<li>
La taille de l'image ne doit pas dépasser 1 mega octet
</li>
</div>
</div>
<div className="div_row_droite" style={{ "width": '48%' }}>
<div className="titre1"> Votre cachet </div>
<div className="div_row_bis" style={{ "marginBottom": "10px", "marginTop": "1rem" }} >
<div className="div_row_gauche_image">
<img class="img_class_logo" src={isimgcachet} /><br />
<div className="div_row_droite">
<div className="titre1"> Votre cachet </div>
<div className="div_row_bis" style={{ "marginBottom": "10px", "marginTop": "1rem" }} >
<div className="div_row_gauche_image">
<img class="img_class_logo" src={isimgcachet} /><br />
</div>
<div className="div_row_droite_image">
<input type="file" id="files_img_cachet_class" accept="image/*" onChange={imgcachetchangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{String(userformedited) === "1" && <nav> <label for="files_img_cachet_class" className="bton_image_class">Charger un cachet</label><br />
{String(isimgcachetSelected_recid) && String(isimgcachetSelected_recid).length > 3 &&
<nav className="bton_supprime_image_class" onClick={removeRecodedCachetImage}>Supprimer le cachet </nav>}
<br /> </nav>}
{/*isimgclassSelected && <Button variant="outlined" onClick={sendClassImage} className="bton_image_class">Enregistrer image</Button>*/}
{isimgcachetdeleted && String(isimgcachetdeleted) === "1" && <nav className="koUpdateData"> {isimgcachetdeleted_message}</nav>}
{isimgcachetdeleted && String(isimgcachetdeleted) === "0" && <nav className="okUpdateData"> {isimgcachetdeleted_message}</nav>}
{isimgcachetSelected && String(isimgcachetSaved) === "0" && <nav className="koUpdateData"> {isimgcachetSaved_message}</nav>}
</div>
</div>
<div className="div_row_droite_image">
<input type="file" id="files_img_cachet_class" accept="image/*" onChange={imgcachetchangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{String(userformedited) === "1" && <nav> <label for="files_img_cachet_class" className="bton_image_class">Charger un cachet</label><br />
{String(isimgcachetSelected_recid) && String(isimgcachetSelected_recid).length > 3 &&
<nav className="bton_supprime_image_class" onClick={removeRecodedCachetImage}>Supprimer le cachet </nav>}
<br /> </nav>}
{/*isimgclassSelected && <Button variant="outlined" onClick={sendClassImage} className="bton_image_class">Enregistrer image</Button>*/}
{isimgcachetdeleted && String(isimgcachetdeleted) === "1" && <nav className="koUpdateData"> {isimgcachetdeleted_message}</nav>}
{isimgcachetdeleted && String(isimgcachetdeleted) === "0" && <nav className="okUpdateData"> {isimgcachetdeleted_message}</nav>}
{isimgcachetSelected && String(isimgcachetSaved) === "0" && <nav className="koUpdateData"> {isimgcachetSaved_message}</nav>}
<div className="div_row_bis tips_img_class">
<li>
L'image doit etre carrée.
</li>
<li>
Les formats autorisés sont : <i>['jpg', 'jpeg', 'png', 'jpe', 'webp']</i>
</li>
<li>
Les dimensions recommandées: 128pixels X 128pixels -- 144pixels X 144pixels -- 168pixels X 168pixels<br />
Les dimensions maximales sont de 256pixels X 256pixels
</li>
<li>
La taille de l'image ne doit pas dépasser 1 mega octet
</li>
</div>
</div>
<div className="div_row_bis tips_img_class">
<li>
L'image doit etre carrée.
</li>
<li>
Les formats autorisés sont : <i>['jpg', 'jpeg', 'png', 'jpe', 'webp']</i>
</li>
<li>
Les dimensions recommandées: 128pixels X 128pixels -- 144pixels X 144pixels -- 168pixels X 168pixels<br />
Les dimensions maximales sont de 256pixels X 256pixels
</li>
<li>
La taille de l'image ne doit pas dépasser 1 mega octet
</li>
</div>
</div>
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="titre1"> Certification </div>
<div className="div_row">
<TextField
required
name="num_nda"
label="Numéro NDA"
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<AccountCircle />
</InputAdornment>
),
}}
value={p_num_nda}
onChange={(e) => setp_num_nda(e.target.value)}
/>
{fields1desabled == true && String(myqualiopi) !== "1" &&
<TextField
name="isqualiopi"
label="Qualiopi"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(myqualiopi) === "1" &&
<TextField
name="isqualiopi"
label="Qualiopi"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="isqualiopi"
label="Qualiopi"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={myqualiopi}
onChange={handleChangequaliopi}
>{qualiopi.map((option) => (
<MenuItem key={option.value} value={option.value}>
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
</div>
<div className="div_row">
</div>}
</div>
{fields1desabled == true && String(mydatadock) !== "1" &&
<TextField
name="isdatadock"
label="Datadock"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(mydatadock) === "1" &&
<TextField
name="isdatadock"
label="Datadock"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="isdatadock"
label="Datadock"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={mydatadock}
onChange={handleChangedatadock}
>{datadock.map((option) => (
<MenuItem key={option.value} value={option.value}>
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
{fields1desabled == true && String(mycertifvoltaire) !== "1" &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(mycertifvoltaire) === "1" &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={mycertifvoltaire}
onChange={handleChangecertifvoltaire}
>{certifvoltaire.map((option) => (
<MenuItem key={option.value} value={option.value} >
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
</div>
</div>}
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="titre1"> Info Contact </div>
<div className="titre1"> Info Contact </div>
<div style={{ display: 'flex', flexDirection: 'row', gap: '20px', width: '100%', flexWrap: 'wrap', justifyContent: 'left' }} onChange={DataUpdated}>
<TextField
name="contact_nom"
@ -6014,7 +6014,9 @@ function UpdateParnterInfo(props) {
<div className="koUpdateData" style={{ "color": "orange", "textAlign": "center" }}> /!\ Pensez à enregistrer les modifications</div>
</div>}
<div className="div_row22">
</div>
<div className="div_row22">
{fields1desabled == false && <div className="div_row">
<div className="div_row_gauche">
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={RecordData}>Enregistrer</Button>
@ -6030,9 +6032,12 @@ function UpdateParnterInfo(props) {
}
</div>
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="titre1"> Accès E-Learning </div>
<div className="div_row"> &nbsp;</div>
<div className="titre1"> Accès E-Learning </div>
<div style={{ display: 'flex', flexDirection: 'row', gap: '20px', width: '100%', flexWrap: 'wrap', justifyContent: 'left' }} onChange={DataUpdated}>
<TextField
name="contact_login_elearning"
label="E-Learning Login"
@ -6068,11 +6073,7 @@ function UpdateParnterInfo(props) {
/>
</Box>
</div>
</div>}

View File

@ -363,7 +363,7 @@ function UpdateUserGoals(props) {
toolbar: 'undo redo | casechange blocks | bold italic backcolor | ' +
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -209,7 +209,7 @@ function UpdateUserProfil(props) {
<div className="updateuserprofil">
<h3> Votre profils </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Votre profils </h3>
{String(recorddata_api) === String("true") && <div className="okUpdateData"> Le profil a été ajouté/mise à jour </div>}

View File

@ -77,10 +77,10 @@ const FooterSection = ({ logoSrc, address, email, phone }) => {
<div className="footer-bottom">
<div className="legal-links">
<a href="#">Privacy policy</a>
<a href="#">Cookies</a>
<a href="#">Legal</a>
<a href="#">Accessibility</a>
<a href='/sample/MYSY_POLITIQUE_CONFIDENTIALITE.pdf' download target="_blank">| Confidentialité | Cookies | données personnelles &nbsp; </a>
<a href='/sample/MYSY_MENTIONS_LEGALES.pdf' download target="_blank">| Mentions légales </a>
<a href='/sample/MYSY_CGU.pdf' download target="_blank">| CGU </a>
<a href='/sample/Conditions_Generales-Vente_CGV.pdf' download target="_blank">| CGV </a>
<span className="copyright">Copyright © {current_year} MySy Training Technology. Tous droits réservés.</span>
</div>

View File

@ -206,7 +206,7 @@
.block_2 {
flex-grow: 1;
width: 40%;
padding: 20px 32px;
padding: 20px 0px;
background-color: #ffffff;
float: left;
}

View File

@ -10,10 +10,10 @@ const PricingDescription = ({ title, subtitle }) => {
</div>
</div>
);
};
};
PricingDescription.defaultProps = {
title: 'Comparer nos plans',
title: 'Comparez nos plans',
subtitle: 'Choisissez votre espace de travail en fonction de votre organisation.'
};

File diff suppressed because it is too large Load Diff

View File

@ -517,6 +517,17 @@
color: #16274f;
}
.det_price {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 24px;
letter-spacing: -0.24px;
line-height: 24px;
color: #16274f;
}
.highlighted .price,
.highlighted .price-period,
.highlighted .sessions {

View File

@ -1,70 +1,101 @@
import React from 'react';
import './PricingPlanCard.css';
import '../tarif_head_automatic_files/detail.css';
import './det_PricingPlanCard.css';
const PricingPlanCard = ({
isPopular = false,
title = "Basic",
price = "9.99",
sessions = "Jusqu'à 25 Sessions/an",
isHighlighted = false,
}) => {
const PricingPlanCard = (props) => {
return (
<div>
{/*{isPopular && <div className='tarif_head_automatic_files' style={{ marginTop: "-42px" }}>
<div className={`pricing-card ${isHighlighted ? 'highlighted' : ''}`} >
{isPopular && (
<div className="popular-badge" >
<span>LE PLUS POPULAIRE </span>
</div>
)}
<div className="pricing-content">
<div className="plan-header">
<h2 className="plan-title">{title} </h2>
<p className="plan-subtitle">Sans engagement</p>
{!props.isPopular && !props.is_connected && <div className='tarif_head_automatic_files'>
<div className={`pricing-card ${props.isHighlighted ? 'mysy_highlighted' : ''}`}>
<div className="det_pricing-content">
<div className="det_plan-header">
<h2 className="det_plan-title">{props.title} </h2>
<p className="det_plan-subtitle">Sans engagement</p>
</div>
<div className="price-container">
<div className="price-wrapper">
<span className="price">{price} </span>
<span className="price-period">par mois</span>
<div className="det_price-container">
<div className="det_price-wrapper">
<span className="det_price">{props.price} </span>
<span className="det_price-period">par mois</span>
</div>
<p className="sessions">{sessions}</p>
<p className="det_sessions">{props.sessions}</p>
</div>
<button className="choose-plan-btn">
<span>Choisir ce plan</span>
</button>
</div>
</div>
</div>}*/}
{!isPopular && <div className='tarif_head_automatic_files'>
<div className={`pricing-card ${isHighlighted ? 'mysy_highlighted' : ''}`}>
<div className="pricing-content">
<div className="plan-header">
<h2 className="plan-title">{title} </h2>
<p className="plan-subtitle">Sans engagement</p>
</div>
<div className="price-container">
<div className="price-wrapper">
<span className="price">{price} </span>
<span className="price-period">par mois</span>
</div>
<p className="sessions">{sessions}</p>
</div>
<button className="choose-plan-btn" onClick={(e) => {
<button className="det_choose-plan-btn" onClick={(e) => {
e.preventDefault();
window.location.href = "/Partner";
}}>
}}>
<span>Choisir ce plan</span>
</button>
</div>
</div>
</div>}
{props.is_connected && <div className='tarif_head_automatic_files'>
<div className={`pricing-card ${props.isHighlighted ? 'mysy_highlighted' : ''}`}>
<div className="det_pricing-content">
<div className="det_plan-header">
<h2 className="det_plan-title">{props.title} </h2>
<p className="det_plan-subtitle">Sans engagement</p>
</div>
<div className="det_price-container">
<div className="det_price-wrapper">
<span className="det_price">{props.price} </span>
<span className="det_price-period">par mois </span>
</div>
<p className="det_sessions">{props.sessions}</p>
</div>
{String(props.current_pack).toLowerCase() === String(props.title).toLowerCase() && props.end_date_abonnement && String(props.end_date_abonnement).length > 3 &&
<div className="det_abonnement">
<button className="det_choose-plan-btn"
color="success"
// className="det_btn_arret_abonnement"
style={{ width: '100%', fontFamily: 'DM Sans' }}
onClick={(e) => {
alert("GOLD")
// confirmSTOPAbonnement("Gold");
}}
> Arrêt le {props.end_date_abonnement} </button>
</div>}
{String(props.current_pack).toLowerCase() === String(props.title).toLowerCase() && (!props.end_date_abonnement || String(props.end_date_abonnement).length <= 3) &&
<div className="det_abonnement">
<button className="det_choose-plan-btn"
color="success"
style={{
background: "#0aa690", width: '100%', fontFamily: 'DM Sans',
color: '#FFF', fontWeight: '600', cursor:'default'
}}
> Votre plan </button>
</div>}
{String(props.current_pack).toLowerCase() !== String(props.title).toLowerCase() &&
<div className="det_abonnement">
<button className="det_choose-plan-btn"
color="success"
style={{ width: '100%', fontFamily: 'DM Sans' }}
// className="det_btn_arret_abonnement"
onClick={(e) => {
props.confirmAbonnement(String(props.title));
}}
> Choisir ce plan </button>
</div>}
</div>
</div>
</div>}
</div>
);
};

View File

@ -0,0 +1,677 @@
.tarif_head_automatic_files {
.check-icon,
.add-icon {
width: 24px;
height: 24px;
border-radius: 100%;
background-color: #0aa690;
padding: 4px;
box-sizing: border-box;
margin-top: 10px;
}
.add-icon {
background-color: #b7b7b7;
}
@media (max-width: 600px) {
.det_pricing-description {
padding: 16px;
}
.det_pricing-title {
font-size: 20px;
}
.det_pricing-subtitle {
font-size: 12px;
}
.det_block_1 {
width: 100%;
background-color: #ffffff;
border-radius: 4px;
float: left;
padding-bottom: 3rem;
}
.det_block_1_bis {
width: 100%;
background-color: #ffffff;
border-radius: 4px;
float: left;
height: 50px;
text-align: left;
background-color: #ecf1fc;
padding-left: 5px;
}
.det_block_2 {
display: none;
}
.det_block_2_bis {
flex-direction: row;
flex-grow: 2;
padding: 20px 28px;
background-color: #ffffff;
width: 100%;
float: left;
border: 1px solid #ecf1fc;
width: 350px;
margin-bottom: 2rem;
}
.det_block_3 {
flex-direction: row;
flex-grow: 2;
padding: 20px 28px;
background-color: #ffffff;
width: 100%;
float: left;
border: 1px solid #ecf1fc;
width: 350px;
margin-bottom: 2rem;
}
.det_fonctionnalite_h1 {
background-color: #ecf1fc;
color: #16274f;
/* font-family: 'DM Sans', sans-serif;*/
font-size: 18px;
font-weight: 600;
cursor: default;
padding-top: 5px;
}
.det_detail_fonctionnalite_line {
width: 100%;
background-color: #ffffff;
border-radius: 4px;
float: left;
}
.det_detail_fonctionnalite_line_1 {
flex-grow: 1;
width: 40%;
/*padding: 20px 32px;*/
background-color: #ffffff;
float: left;
text-align: left;
}
.det_detail_fonctionnalite_line_1_desc {
font-family: Inter, sans-serif;
font-size: 14px;
font-weight: 400;
line-height: 20px;
color: #4b5162;
background-color: #ffffff;
float: left;
border: 1px solid #ecf1fc;
width: 100%;
padding: 5px;
height: 100px;
}
.det_detail_fonctionnalite_line_2 {
display: flex;
flex-direction: row;
flex-grow: 2;
background-color: #ffffff;
height: 100px;
}
.det_detail_fonctionnalite_line_1_tick {
flex-direction: row;
flex-grow: 2;
padding: 20px 2px;
background-color: #ffffff;
width: 20%;
float: left;
border: 1px solid #ecf1fc;
}
.det_coupure_fin_fonctionnalite {
width: 100%;
float: left;
height: 2rem;
border: none;
}
}
@media only screen and (min-width: 601px) and (max-width: 991px) {
.det_pricing-description {
display: flex;
flex-direction: column;
padding: 20px 32px;
background-color: #ffffff;
/* border: 1px solid #ecf1fc;*/
max-width: 500px;
width: 100%;
box-sizing: border-box;
margin-top: 5rem;
}
.det_pricing-title {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 24px;
color: #16274f;
margin: 0 0 8px 0;
}
.det_pricing-subtitle {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 14px;
line-height: 20px;
color: #4b5162;
margin: 0;
}
.det_block_1 {
width: 100%;
padding-top: 140px;
background-color: #ffffff;
border-radius: 4px;
float: left;
}
.det_block_1_bis {
width: 100%;
background-color: #ffffff;
border-radius: 4px;
float: left;
height: 50px;
text-align: left;
background-color: #ecf1fc;
padding-left: 5px;
}
.det_block_2 {
flex-grow: 1;
width: 40%;
padding: 20px 32px;
background-color: #ffffff;
float: left;
}
.det_block_2_bis {
flex-direction: row;
flex-grow: 2;
padding: 20px 2px;
background-color: #ffffff;
width: 20%;
float: left;
border: 1px solid #ecf1fc;
}
.det_block_3 {
flex-direction: row;
flex-grow: 2;
padding: 20px 2px;
background-color: #ffffff;
width: 20%;
float: left;
border: 1px solid #ecf1fc;
margin-top: -50px;
/* height: 380px;*/
}
.det_fonctionnalite_h1 {
background-color: #ecf1fc;
color: #16274f;
/* font-family: 'DM Sans', sans-serif;*/
font-size: 20px;
font-weight: 600;
cursor: default;
padding-top: 10px;
}
.det_detail_fonctionnalite_line {
width: 100%;
background-color: #ffffff;
border-radius: 4px;
float: left;
}
.det_detail_fonctionnalite_line_1 {
flex-grow: 1;
width: 40%;
/*padding: 20px 32px;*/
background-color: #ffffff;
float: left;
text-align: left;
}
.det_detail_fonctionnalite_line_1_desc {
font-family: Inter, sans-serif;
font-size: 14px;
font-weight: 400;
line-height: 20px;
color: #4b5162;
padding: 20px 28px;
background-color: #ffffff;
float: left;
border: 1px solid #ecf1fc;
width: 100%;
padding: 23px 28px;
height: 100px;
}
.det_detail_fonctionnalite_line_2 {
display: flex;
flex-direction: row;
flex-grow: 2;
background-color: #ffffff;
height: 100px;
}
.det_detail_fonctionnalite_line_1_tick {
flex-direction: row;
flex-grow: 2;
padding: 20px 28px;
background-color: #ffffff;
width: 20%;
float: left;
border: 1px solid #ecf1fc;
}
.det_coupure_fin_fonctionnalite {
width: 100%;
float: left;
height: 2rem;
border: none;
}
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
.det_pricing-description {
display: flex;
flex-direction: column;
padding: 20px 32px;
background-color: #ffffff;
/* border: 1px solid #ecf1fc;*/
max-width: 500px;
width: 100%;
box-sizing: border-box;
margin-top: 5rem;
}
.det_pricing-title {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 24px;
color: #16274f;
margin: 0 0 8px 0;
}
.det_pricing-subtitle {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 14px;
line-height: 20px;
color: #4b5162;
margin: 0;
}
.det_block_1 {
width: 100%;
padding-top: 140px;
background-color: #ffffff;
border-radius: 4px;
float: left;
}
.det_block_1_bis {
width: 100%;
background-color: #ffffff;
border-radius: 4px;
float: left;
height: 50px;
text-align: left;
background-color: #ecf1fc;
padding-left: 5px;
}
.det_block_2 {
flex-grow: 1;
width: 40%;
padding: 20px 32px;
background-color: #ffffff;
float: left;
}
.det_block_2_bis {
flex-direction: row;
flex-grow: 2;
padding: 20px 2px;
background-color: #ffffff;
width: 20%;
float: left;
border: 1px solid #ecf1fc;
}
.det_block_3 {
flex-direction: row;
flex-grow: 2;
padding: 20px 2px;
background-color: #ffffff;
width: 20%;
float: left;
border: 1px solid #ecf1fc;
margin-top: -50px;
/* height: 380px;*/
}
.det_fonctionnalite_h1 {
background-color: #ecf1fc;
color: #16274f;
/* font-family: 'DM Sans', sans-serif;*/
font-size: 20px;
font-weight: 600;
cursor: default;
padding-top: 10px;
}
.det_detail_fonctionnalite_line {
width: 100%;
background-color: #ffffff;
border-radius: 4px;
float: left;
}
.det_detail_fonctionnalite_line_1 {
flex-grow: 1;
width: 40%;
/*padding: 20px 32px;*/
background-color: #ffffff;
float: left;
text-align: left;
}
.det_detail_fonctionnalite_line_1_desc {
font-family: Inter, sans-serif;
font-size: 14px;
font-weight: 400;
line-height: 20px;
color: #4b5162;
padding: 20px 28px;
background-color: #ffffff;
float: left;
border: 1px solid #ecf1fc;
width: 100%;
padding: 23px 28px;
height: 100px;
}
.det_detail_fonctionnalite_line_2 {
display: flex;
flex-direction: row;
flex-grow: 2;
background-color: #ffffff;
height: 100px;
}
.det_detail_fonctionnalite_line_1_tick {
flex-direction: row;
flex-grow: 2;
padding: 20px 28px;
background-color: #ffffff;
width: 20%;
float: left;
border: 1px solid #ecf1fc;
}
.det_coupure_fin_fonctionnalite {
width: 100%;
float: left;
height: 2rem;
border: none;
}
}
@media only screen and (min-width: 1200px) {
.det_pricing-description {
display: flex;
flex-direction: column;
padding: 20px 32px;
background-color: #ffffff;
/* border: 1px solid #ecf1fc;*/
max-width: 500px;
width: 100%;
box-sizing: border-box;
margin-top: 5rem;
}
.det_pricing-title {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 24px;
color: #16274f;
margin: 0 0 8px 0;
}
.det_pricing-subtitle {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 14px;
line-height: 20px;
color: #4b5162;
margin: 0;
}
.det_block_1 {
width: 100%;
padding-top: 140px;
background-color: #ffffff;
border-radius: 4px;
float: left;
}
.det_block_1_bis {
width: 100%;
background-color: #ffffff;
border-radius: 4px;
float: left;
height: 50px;
text-align: left;
background-color: #ecf1fc;
padding-left: 5px;
}
.det_block_2 {
flex-grow: 1;
width: 40%;
padding: 20px 32px;
background-color: #ffffff;
float: left;
}
.det_block_2_bis {
flex-direction: row;
flex-grow: 2;
padding: 20px 28px;
background-color: #ffffff;
width: 20%;
float: left;
border: 1px solid #ecf1fc;
}
.det_block_3 {
flex-direction: row;
flex-grow: 2;
padding: 20px 28px;
background-color: #ffffff;
width: 20%;
float: left;
border: 1px solid #ecf1fc;
margin-top: -50px;
/* height: 380px;*/
}
.det_fonctionnalite_h1 {
background-color: #ecf1fc;
color: #16274f;
/* font-family: 'DM Sans', sans-serif;*/
font-size: 20px;
font-weight: 600;
cursor: default;
padding-top: 10px;
}
.det_detail_fonctionnalite_line {
width: 100%;
background-color: #ffffff;
border-radius: 4px;
float: left;
}
.det_detail_fonctionnalite_line_1 {
flex-grow: 1;
width: 40%;
/*padding: 20px 32px;*/
background-color: #ffffff;
float: left;
text-align: left;
}
.det_detail_fonctionnalite_line_1_desc {
font-family: Inter, sans-serif;
font-size: 14px;
font-weight: 400;
line-height: 20px;
color: #4b5162;
padding: 20px 28px;
background-color: #ffffff;
float: left;
border: 1px solid #ecf1fc;
width: 100%;
padding: 23px 28px;
height: 100px;
}
.det_detail_fonctionnalite_line_2 {
display: flex;
flex-direction: row;
flex-grow: 2;
background-color: #ffffff;
height: 100px;
}
.det_detail_fonctionnalite_line_1_tick {
flex-direction: row;
flex-grow: 2;
padding: 20px 28px;
background-color: #ffffff;
width: 20%;
float: left;
border: 1px solid #ecf1fc;
}
.det_coupure_fin_fonctionnalite {
width: 100%;
float: left;
height: 2rem;
border: none;
}
}
}

View File

@ -0,0 +1,591 @@
.tarif_head_automatic_files {
@media (max-width: 768px) {
.det_pricing-card {
min-width: 100%;
max-width: 100%;
}
.det_popular-badge {
display: flex;
justify-content: center;
align-items: center;
background-color: #daf2ee;
padding: 10px;
margin: -20px -28px 20px;
}
.det_popular-badge span {
color: #0aa690;
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 16px;
line-height: 20px;
}
.det_pricing-content {
display: flex;
flex-direction: column;
gap: 20px;
flex-grow: 1;
}
.det_plan-header {
display: flex;
flex-direction: column;
gap: 8px;
align-items: center;
}
.det_plan-title {
font-family: 'Inter', sans-serif;
font-weight: 600;
font-size: 24px;
line-height: 24px;
color: #16274f;
margin: 0;
}
.det_plan-subtitle {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 14px;
color: #4b5162;
margin: 0;
}
.det_price-container {
display: flex;
flex-direction: column;
gap: 8px;
align-items: center;
}
.det_price-wrapper {
display: flex;
align-items: baseline;
gap: 4px;
}
.det_price {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 24px;
letter-spacing: -0.det_24px;
line-height: 24px;
color: #16274f;
}
.det_highlighted .det_price,
.det_highlighted .det_price-period,
.det_highlighted .det_sessions {
color: #0aa690;
}
.det_mysy_highlighted {
margin-top: 0px;
}
.det_price-period {
font-family: 'DM Sans', sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 12px;
color: #16274f;
}
.det_sessions {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 12px;
color: #16274f;
}
.det_choose-plan-btn {
display: flex;
align-items: center;
justify-content: center;
padding: 12px 10px;
border-radius: 200px;
border: 1px solid #c7c9ce;
background: transparent;
cursor: pointer;
margin-top: auto;
}
.det_choose-plan-btn span {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 16px;
line-height: 122%;
color: #4b5162;
padding: 0 8px;
}
.det_position_detail_price{
margin-top: -20px;
margin-bottom: 5rem;
width: 100%;
float: left;
}
}
@media only screen and (min-width: 601px) and (max-width: 991px) {
.det_pricing-card {
display: flex;
flex-direction: column;
padding: 20px 2px;
background-color: #ffffff;
/* border: 1px solid #ecf1fc;*/
/* min-width: 200px;*/
max-width: 300px;
flex: 1;
position: relative;
box-sizing: border-box;
}
.det_popular-badge {
display: flex;
justify-content: center;
align-items: center;
background-color: #daf2ee;
padding: 10px;
margin: -20px -2px 0px;
}
.det_popular-badge span {
color: #0aa690;
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 16px;
line-height: 20px;
}
.det_pricing-content {
display: flex;
flex-direction: column;
gap: 20px;
flex-grow: 1;
}
.det_plan-header {
display: flex;
flex-direction: column;
gap: 8px;
align-items: center;
}
.det_plan-title {
font-family: 'Inter', sans-serif;
font-weight: 600;
font-size: 20px;
line-height: 24px;
color: #16274f;
margin: 0;
}
.det_plan-subtitle {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 14px;
color: #4b5162;
margin: 0;
}
.det_price-container {
display: flex;
flex-direction: column;
gap: 8px;
align-items: center;
}
.det_price-wrapper {
display: flex;
align-items: baseline;
gap: 4px;
}
.det_price {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 24px;
letter-spacing: -0.det_24px;
line-height: 24px;
color: #16274f;
}
.det_highlighted .det_price,
.det_highlighted .det_price-period,
.det_highlighted .det_sessions {
color: #0aa690;
}
.det_mysy_highlighted {
margin-top: 0px;
}
.det_price-period {
font-family: 'DM Sans', sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 12px;
color: #16274f;
}
.det_sessions {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 12px;
color: #16274f;
}
.det_choose-plan-btn {
display: flex;
align-items: center;
justify-content: center;
padding: 12px 2px;
border-radius: 200px;
border: 1px solid #c7c9ce;
background: transparent;
cursor: pointer;
margin-top: auto;
}
.det_choose-plan-btn span {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 12px;
line-height: 122%;
color: #4b5162;
padding: 0 2px;
}
.det_position_detail_price{
margin-top: -20px;
margin-bottom: 5rem;
width: 100%;
float: left;
}
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
.det_pricing-card {
display: flex;
flex-direction: column;
padding: 20px 2px;
background-color: #ffffff;
/* border: 1px solid #ecf1fc;*/
/* min-width: 200px;*/
max-width: 300px;
flex: 1;
position: relative;
box-sizing: border-box;
}
.det_popular-badge {
display: flex;
justify-content: center;
align-items: center;
background-color: #daf2ee;
padding: 10px;
margin: -20px -2px 0px;
}
.det_popular-badge span {
color: #0aa690;
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 16px;
line-height: 20px;
}
.det_pricing-content {
display: flex;
flex-direction: column;
gap: 20px;
flex-grow: 1;
}
.det_plan-header {
display: flex;
flex-direction: column;
gap: 8px;
align-items: center;
}
.det_plan-title {
font-family: 'Inter', sans-serif;
font-weight: 600;
font-size: 24px;
line-height: 24px;
color: #16274f;
margin: 0;
}
.det_plan-subtitle {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 14px;
color: #4b5162;
margin: 0;
}
.det_price-container {
display: flex;
flex-direction: column;
gap: 8px;
align-items: center;
}
.det_price-wrapper {
display: flex;
align-items: baseline;
gap: 4px;
}
.det_price {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 24px;
letter-spacing: -0.det_24px;
line-height: 24px;
color: #16274f;
}
.det_highlighted .det_price,
.det_highlighted .det_price-period,
.det_highlighted .det_sessions {
color: #0aa690;
}
.det_mysy_highlighted {
margin-top: 10px;
}
.det_price-period {
font-family: 'DM Sans', sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 12px;
color: #16274f;
}
.det_sessions {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 12px;
color: #16274f;
}
.det_choose-plan-btn {
display: flex;
align-items: center;
justify-content: center;
padding: 12px 2px;
border-radius: 200px;
border: 1px solid #c7c9ce;
background: transparent;
cursor: pointer;
margin-top: auto;
}
.det_choose-plan-btn span {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 14px;
line-height: 122%;
color: #4b5162;
padding: 0 2px;
}
.det_position_detail_price{
margin-top: -20px;
margin-bottom: 5rem;
width: 100%;
float: left;
}
}
@media only screen and (min-width: 1200px) {
.det_pricing-card {
display: flex;
flex-direction: column;
padding: 20px 28px;
background-color: #ffffff;
/* border: 1px solid #ecf1fc;*/
min-width: 200px;
max-width: 300px;
flex: 1;
position: relative;
box-sizing: border-box;
}
.det_popular-badge {
display: flex;
justify-content: center;
align-items: center;
background-color: #daf2ee;
padding: 10px;
margin: -20px -28px 20px;
}
.det_popular-badge span {
color: #0aa690;
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 16px;
line-height: 20px;
}
.det_pricing-content {
display: flex;
flex-direction: column;
gap: 20px;
flex-grow: 1;
}
.det_plan-header {
display: flex;
flex-direction: column;
gap: 8px;
align-items: center;
}
.det_plan-title {
font-family: 'Inter', sans-serif;
font-weight: 600;
font-size: 24px;
line-height: 24px;
color: #16274f;
margin: 0;
}
.det_plan-subtitle {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 14px;
color: #4b5162;
margin: 0;
}
.det_price-container {
display: flex;
flex-direction: column;
gap: 8px;
align-items: center;
}
.det_price-wrapper {
display: flex;
align-items: baseline;
gap: 4px;
}
.det_price {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 24px;
letter-spacing: -0.det_24px;
line-height: 24px;
color: #16274f;
}
.det_det_price {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 24px;
letter-spacing: -0.det_24px;
line-height: 24px;
color: #16274f;
}
.det_highlighted .det_price,
.det_highlighted .det_price-period,
.det_highlighted .det_sessions {
color: #0aa690;
}
.det_mysy_highlighted {
margin-top: 28px;
}
.det_price-period {
font-family: 'DM Sans', sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 12px;
color: #16274f;
}
.det_sessions {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 12px;
color: #16274f;
}
.det_choose-plan-btn {
display: flex;
align-items: center;
justify-content: center;
padding: 12px 10px;
border-radius: 200px;
border: 1px solid #c7c9ce;
background: transparent;
cursor: pointer;
margin-top: auto;
}
.det_choose-plan-btn span {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 16px;
line-height: 122%;
color: #4b5162;
padding: 0 8px;
}
.det_position_detail_price{
margin-top: -10px;
margin-bottom: 5rem;
width: 100%;
float: left;
}
}
}

View File

@ -1,86 +1,88 @@
.marketplace {
display: flex;
flex-direction: column;
width: 100%;
min-width: 320px;
max-width: 1251px;
border: 1px solid #ecf1fc;
box-sizing: border-box;
}
.title-section {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 20px 32px;
background-color: #ecf1fc;
height: 80px;
}
.title-section h2 {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 20px;
color: #16274f;
margin: 0;
}
.content-section {
display: flex;
flex-direction: column;
}
.text-row {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 20px 32px;
min-height: 80px;
border-bottom: 1px solid #ecf1fc;
}
.text-row p {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 16px;
line-height: 24px;
color: #171717;
margin: 0;
flex-grow: 1;
}
.check-icon,
.add-icon {
width: 24px;
height: 24px;
border-radius: 100%;
background-color: #0aa690;
padding: 4px;
box-sizing: border-box;
margin-top: 10px;
}
.add-icon {
background-color: #b7b7b7;
}
@media (max-width: 768px) {
.tarif_head_automatic_files {
.marketplace {
padding: 10px;
display: flex;
flex-direction: column;
width: 100%;
min-width: 320px;
max-width: 1251px;
border: 1px solid #ecf1fc;
box-sizing: border-box;
}
.title-section {
padding: 10px 16px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 20px 32px;
background-color: #ecf1fc;
height: 80px;
}
.title-section h2 {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 20px;
color: #16274f;
margin: 0;
}
.content-section {
display: flex;
flex-direction: column;
}
.text-row {
padding: 10px 16px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 20px 32px;
min-height: 80px;
border-bottom: 1px solid #ecf1fc;
}
.text-row p {
font-family: 'Inter', sans-serif;
font-weight: 400;
font-size: 16px;
line-height: 24px;
color: #171717;
margin: 0;
flex-grow: 1;
}
.check-icon,
.add-icon {
width: 24px;
height: 24px;
border-radius: 100%;
background-color: #0aa690;
padding: 4px;
box-sizing: border-box;
margin-top: 10px;
}
.add-icon {
background-color: #b7b7b7;
}
@media (max-width: 768px) {
.marketplace {
padding: 10px;
}
.title-section {
padding: 10px 16px;
}
.text-row {
padding: 10px 16px;
}
}
}

View File

@ -60,7 +60,7 @@
.price {
font-family: 'DM Sans', sans-serif;
font-weight: 700;
font-size: 48px;
font-size: 38px;
line-height: 52px;
letter-spacing: -0.48px;
}
@ -166,10 +166,10 @@
display: flex;
flex-direction: column;
padding-top: 64px;
padding-right: 30px;
padding-left: 30px;
padding-right: 20px;
padding-left: 20px;
box-sizing: border-box;
margin-bottom: 64px;
margin-bottom: 30px;
}
@ -177,7 +177,7 @@
.entete_pricingsection_H1 {
font-family: 'DM Sans';
font-weight: 700;
font-size: 35px;
font-size: 34px;
letter-spacing: -0.48px;
line-height: 40px;
text-align: center;
@ -209,8 +209,7 @@
@media only screen and (min-width: 601px) and (max-width: 991px) {
width: 90%;
margin-left: 5%;
width: 100%;
margin-bottom: 2rem;
@ -361,6 +360,10 @@
width: 100%;
float: left;
margin-top: 3rem;
flex-direction: row;
display: flex;
align-items: center;
justify-content: center
}
@ -382,8 +385,8 @@
display: flex;
flex-direction: column;
padding-top: 64px;
padding-right: 64px;
padding-left: 64px;
padding-right: 24px;
padding-left: 24px;
box-sizing: border-box;
margin-bottom: 64px;
}
@ -393,7 +396,7 @@
.entete_pricingsection_H1 {
font-family: 'DM Sans';
font-weight: 700;
font-size: 40px;
font-size: 36px;
letter-spacing: -0.48px;
line-height: 52px;
text-align: center;
@ -420,8 +423,7 @@
@media only screen and (min-width: 992px) and (max-width: 1199px) {
width: 90%;
margin-left: 5%;
width: 100%;
margin-bottom: 2rem;
@ -572,6 +574,10 @@
width: 100%;
float: left;
margin-top: 3rem;
flex-direction: row;
display: flex;
align-items: center;
justify-content: center
}
@ -593,8 +599,8 @@
display: flex;
flex-direction: column;
padding-top: 64px;
padding-right: 64px;
padding-left: 64px;
padding-right: 24px;
padding-left: 24px;
box-sizing: border-box;
margin-bottom: 64px;
}
@ -623,8 +629,7 @@
}
.pricinglayout_classname {
width: 90%;
margin-left: 5%;
width: 100%;
}
}
@ -805,7 +810,7 @@
padding-right: 64px;
padding-left: 64px;
box-sizing: border-box;
margin-bottom: 64px;
margin-bottom: 24px;
}
@ -841,4 +846,4 @@
/* end media*/
}
}

View File

@ -1,9 +1,88 @@
import React, { useState, useEffect } from "react";
import PriceCard from './PriceCard';
import { Helmet } from "react-helmet";
import New_C_Tarif_Section_Head from "../tarif_head_automatic_files/PricingLayout";
import '../tarif_head_automatic_files/detail.css';
const PricingSection = () => {
const [periode, setperiode] = useState("Mensuel");
const [abonnement_periodicite, setabonnement_periodicite] = useState("");
const [price_basic, setprice_basic] = useState("150");
const [price_standard, setprice_standard] = useState("299");
const [price_gold, setprice_gold] = useState("599");
function Clik_bton_mensuel(e) {
if (document.getElementsByName("bton_mensuel") && document.getElementsByName("bton_mensuel")[0]) {
document.getElementsByName("bton_mensuel")[0].style.backgroundColor = "#81BC3A";
document.getElementsByName("bton_mensuel")[0].style.color = "#FFF%";
document.getElementsByName("bton_mensuel")[0].style.opacity = "100%";
}
if (document.getElementsByName("bton_annuel") && document.getElementsByName("bton_annuel")[0]) {
document.getElementsByName("bton_annuel")[0].style.backgroundColor = "#F8F9F9";
document.getElementsByName("bton_annuel")[0].style.color = "#212529";
document.getElementsByName("bton_annuel")[0].style.opacity = "80%";
}
if (document.getElementsByName("bton_mensuel2") && document.getElementsByName("bton_mensuel2")[0]) {
document.getElementsByName("bton_mensuel2")[0].style.backgroundColor = "#81BC3A";
document.getElementsByName("bton_mensuel2")[0].style.color = "#FFF%";
document.getElementsByName("bton_mensuel2")[0].style.opacity = "100%";
}
if (document.getElementsByName("bton_annuel2") && document.getElementsByName("bton_annuel2")[0]) {
document.getElementsByName("bton_annuel2")[0].style.backgroundColor = "#F8F9F9";
document.getElementsByName("bton_annuel2")[0].style.color = "#212529";
document.getElementsByName("bton_annuel2")[0].style.opacity = "80%";
}
setperiode("Mensuel");
setabonnement_periodicite("Mensuel");
setprice_basic("150");
setprice_standard("299");
setprice_gold("599");
}
function Clik_bton_annuel(e) {
if (document.getElementsByName("bton_annuel") && document.getElementsByName("bton_annuel")[0]) {
document.getElementsByName("bton_annuel")[0].style.backgroundColor = "#81BC3A";
document.getElementsByName("bton_annuel")[0].style.color = "#FFF%";
document.getElementsByName("bton_annuel")[0].style.opacity = "100%";
}
if (document.getElementsByName("bton_mensuel") && document.getElementsByName("bton_mensuel")[0]) {
document.getElementsByName("bton_mensuel")[0].style.backgroundColor = "#F8F9F9";
document.getElementsByName("bton_mensuel")[0].style.color = "#212529";
document.getElementsByName("bton_mensuel")[0].style.opacity = "80%";
}
if (document.getElementsByName("bton_annuel2") && document.getElementsByName("bton_annuel2")[0]) {
document.getElementsByName("bton_annuel2")[0].style.backgroundColor = "#81BC3A";
document.getElementsByName("bton_annuel2")[0].style.color = "#FFF%";
document.getElementsByName("bton_annuel2")[0].style.opacity = "100%";
}
if (document.getElementsByName("bton_mensuel2") && document.getElementsByName("bton_mensuel2")[0]) {
document.getElementsByName("bton_mensuel2")[0].style.backgroundColor = "#F8F9F9";
document.getElementsByName("bton_mensuel2")[0].style.color = "#212529";
document.getElementsByName("bton_mensuel2")[0].style.opacity = "80%";
}
setperiode("Annuel");
setabonnement_periodicite("Annuel");
setprice_basic("105");
setprice_standard("209");
setprice_gold("419");
}
useEffect(() => {
window.scrollTo({
top: 0,
@ -14,15 +93,6 @@ const PricingSection = () => {
return (
<div className='pricecard'>
{/*<Helmet>
<title>Tarifs des Produits et Services </title>
<meta name="description" content="Tarifs des Produits et Services.Avec nos solutions de E-Learning, gestion administrative et gestion relation client, nos prix sont les moins chers du marché pour gérer votre organisme de formation. Nous automatisons Qualiopi. Lensemble de nos options : signature électronique, Gestion avis participants, Les émargements sécurisés, les contrats des formateurs, la gestion des financeurs sont inclus dans nos tarifs de base." />
<meta name="robots" content="index,follow" />
<meta name="title" content="Tarifs des Produits et Services " />
<link rel="canonical" href={window.location.href} />
</Helmet>*/}
<div className="pricinglayout_classname">
<div className='entete_pricingsection_1'>
<h1 className='entete_pricingsection_H1'>
@ -34,13 +104,50 @@ const PricingSection = () => {
MySy Training vous offre la transparence et la meilleure valeur sur le marché.
</p>
</div>
<div className="div_row">
<div className="produitsservices">
<div className="critere" style={{ marginBottom: '40px' }}>
<div className="critere_gauche">
&nbsp;
</div>
<div className="critere_droite bloc_periodicite" >
<span className="span1"> Periodicité &nbsp; </span>
<button
onClick={Clik_bton_mensuel}
className="bton_radius_gauche bloc_bton_mensuel"
id="bton_mensuel" name="bton_mensuel">Mensuelle
</button>
<button
onClick={Clik_bton_annuel}
className="bton_radius_droite bloc_bton_annuel"
id="bton_annuel" name="bton_annuel">Annuelle
</button>
{periode && String(periode) === "Annuel" && <div style={{ marginTop: '0.5rem' }}>
<div className="critere_droite bloc_reduction_30">
30% de réduction
</div>
</div>}
</div>
</div>
</div>
</div>
<div className="pricinglayout_classname">
<div className='block_1'>
<div className='block_2'>
<PriceCard
title="BASIQUE"
price="150"
price={price_basic}
features={[
'Sans engagement',
'2 Utilisateurs maximum',
@ -58,7 +165,7 @@ const PricingSection = () => {
<PriceCard
isPopular={true}
title="STANDARD"
price="299"
price={price_standard}
features={[
'Sans engagement',
'Utilisateurs illimités',
@ -75,7 +182,7 @@ const PricingSection = () => {
<div className='block_2'>
<PriceCard
title="GOLD"
price="599"
price={price_gold}
features={[
'Sans engagement',
'Utilisateurs illimités',
@ -90,6 +197,13 @@ const PricingSection = () => {
</div>
</div>
<div className="tarif_head_automatic_files">
<New_C_Tarif_Section_Head abonnement_periodicite={abonnement_periodicite} price_basic={price_basic}
price_standard={price_standard} price_gold={price_gold} />
</div>
</div>
);
};

View File

@ -5,22 +5,20 @@ import "./styles/index.scss"
import App from './App';
import Footer from "./pages/footer";
import {Elements} from '@stripe/react-stripe-js';
import {loadStripe} from '@stripe/stripe-js';
import { Elements } from '@stripe/react-stripe-js';
import { loadStripe } from '@stripe/stripe-js';
const stripePromise = loadStripe('pk_test_51LUUfAAbmaEugrFTI25uZBD3IFjbtaL6jUfRV83diDf7nco8worna4NGKhMHbPP71WCwT5EHFRdDNatxPrJWwgZ300kgH5EO4p');
const stripePromise_PROD = loadStripe('pk_live_51LUUfAAbmaEugrFTyfNe4Dj0vbxc5qXQqNs0rztjAKy8oSlc5EEQyJGjA8Z5kXmP2gvUMcYLUBYCIyWWzLCw59RY00PtGInkVf');
window.ela_tocken="";
window.ela_tocken = "";
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
root.render(
<Elements stripe={stripePromise_PROD}>
<App />
</Elements>
</React.StrictMode>
<App />
</Elements>
);

View File

@ -10,7 +10,7 @@ const new_p_tarif_2025 = () => {
return (
<div id='debut'>
<Helmet>
<Helmet>
<title>MySy Training : logiciel OF complet au meilleur prix du marché </title>
<meta name="description" content="Gérez tous les processus de votre organisme de formation à moindre coût. MySy intègre signature électronique, GED, formulaires, etc." />
<meta name="robots" content="index,follow" />
@ -25,7 +25,7 @@ const new_p_tarif_2025 = () => {
<New_C_Tatif_Section />
<New_C_Tarif_Section_Head />
{/* <New_C_Tarif_Section_Head />*/}
<New_C_Footer_2025_V2 />

View File

@ -11,9 +11,10 @@
}
.warninigUpdateData {
font-size: small;
color: #F5BB04;
font-size: 16px;
color: #eb1ad9;
font-style: italic;
font-family: "DM Sans";
}
.koUpdateData {
@ -126,10 +127,12 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: normal;
font-style: italic;
background-color: gray;
font-weight: normal;
float: left;
width: 100%;
}
.div_row {
@ -342,10 +345,12 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: normal;
font-style: italic;
background-color: gray;
font-weight: normal;
float: left;
width: 100%;
}
.div_row {
@ -361,16 +366,16 @@
float: left;
//border:0px solid black;
border-width: 0.01rem;
width: 45%;
width: 50%;
border-radius: 0px;
}
.div_row_droite {
border-left: 1rem solid;
// border-left: 1rem solid;
float: right;
//border:0px solid black;
border-width: 0.01rem;
width: 55%;
width: 50%;
padding-left: 2%;
border-radius: 0px;
}
@ -565,10 +570,12 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: normal;
font-style: italic;
background-color: gray;
font-weight: normal;
float: left;
width: 100%;
}
.div_row {
@ -584,16 +591,16 @@
float: left;
//border:0px solid black;
border-width: 0.01rem;
width: 45%;
width: 50%;
border-radius: 0px;
}
.div_row_droite {
border-left: 1rem solid;
// border-left: 1rem solid;
float: right;
//border:0px solid black;
border-width: 0.01rem;
width: 55%;
width: 50%;
padding-left: 2%;
border-radius: 0px;
}
@ -789,10 +796,12 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: normal;
font-style: italic;
background-color: gray;
font-weight: normal;
float: left;
width: 100%;
}
.div_row {
@ -807,16 +816,16 @@
float: left;
//border:0px solid black;
border-width: 0.01rem;
width: 45%;
width: 50%;
border-radius: 0px;
}
.div_row_droite {
border-left: 1rem solid;
// border-left: 1rem solid;
float: right;
//border:0px solid black;
border-width: 0.01rem;
width: 55%;
width: 50%;
padding-left: 2%;
border-radius: 0px;
}
@ -937,10 +946,11 @@
}
.img_payment {
max-width: 30%;
max-width: 18%;
}
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
color: 212121 !important;
font-size: small !important;
margin: 0px;
@ -950,6 +960,7 @@
}
.css-1sumxir-MuiFormLabel-root-MuiInputLabel-root.Mui-disabled {
font-family:'DM Sans','Sans-serif';
color: 212121 !important;
font-size: medium !important;
margin: 0px !important;

View File

@ -326,6 +326,7 @@
}
.firstConnexion_text {
font-family: "DM Sans";
background: transparent;
padding-left: 15px;
padding-right: 15px;
@ -676,6 +677,7 @@
}
.firstConnexion_text {
font-family: "DM Sans";
background: transparent;
padding-left: 15px;
padding-right: 15px;
@ -1025,6 +1027,7 @@
}
.firstConnexion_text {
font-family: "DM Sans";
background: transparent;
padding-left: 15px;
padding-right: 15px;
@ -1380,6 +1383,7 @@
}
.firstConnexion_text {
font-family: "DM Sans";
background: transparent;
padding-left: 15px;
padding-right: 15px;

View File

@ -407,7 +407,7 @@
}
.session_caract {
font-family: DM Sans;
font-family: DM Sans;
width: 100%;
padding: 5px;
float: left;
@ -810,11 +810,11 @@
align-items: flex-end;
padding: 0px;
border: #104277;
padding-bottom: 20px;
padding-top: 2rem;
height: 2rem;
//padding-bottom: 20px;
//padding-top: 2rem;
// height: 2rem;
text-transform: uppercase;
margin-top: 1rem;
//margin-top: 1rem;
}
@ -848,7 +848,7 @@
font-size: small;
text-align: left;
height: 2.5rem;
width: 100%;
}
.bton_retour_list {
@ -858,7 +858,7 @@
text-align: left;
border: solid 1px;
height: 2.5rem;
width: 80%;
width: auto;
color: black;
}
@ -896,7 +896,7 @@
}
.session_caract {
font-family: DM Sans;
font-family: DM Sans;
width: 50%;
padding: 5px;
float: left;
@ -1299,11 +1299,11 @@
align-items: flex-end;
padding: 0px;
border: #104277;
padding-bottom: 20px;
padding-top: 2rem;
height: 2rem;
//padding-bottom: 20px;
// padding-top: 2rem;
// height: 2rem;
text-transform: uppercase;
margin-top: 1rem;
// margin-top: 1rem;
}
@ -1337,6 +1337,7 @@
font-size: small;
text-align: left;
height: 2.5rem;
width: 100%;
}
@ -1347,7 +1348,7 @@
text-align: left;
border: solid 1px;
height: 2.5rem;
width: 60%;
width: auto;
color: black;
}
@ -1385,7 +1386,7 @@
}
.session_caract {
font-family: DM Sans;
font-family: DM Sans;
width: 33%;
padding: 5px;
float: left;
@ -1805,11 +1806,11 @@
align-items: flex-end;
padding: 0px;
border: #104277;
padding-bottom: 20px;
padding-top: 2rem;
height: 2rem;
// padding-bottom: 20px;
// padding-top: 2rem;
// height: 2rem;
text-transform: uppercase;
margin-top: 1rem;
// margin-top: 1rem;
}
@ -1843,7 +1844,7 @@
font-size: small;
text-align: left;
height: 2.5rem;
width: 100%;
}
.bton_retour_list {
@ -1853,7 +1854,7 @@
text-align: left;
border: solid 1px;
height: 2.5rem;
width: 50%;
width: auto;
color: black;
}
@ -1938,18 +1939,18 @@
}
.separator_label{
width: 10rem;
float: left;
font-family: 'DM Sans';
color: blue;
font-weight: 600;
font-size: 14px;
background: #d5d8dc;
text-align: center;
border: none;
.separator_label {
width: 10rem;
float: left;
font-family: 'DM Sans';
color: blue;
font-weight: 600;
font-size: 14px;
background: #d5d8dc;
text-align: center;
border: none;
}
}
.MuiOutlinedInput-root {
height: 3rem !important;
@ -1993,7 +1994,7 @@
}
.session_caract {
font-family: DM Sans;
font-family: DM Sans;
width: 33%;
padding: 5px;
float: left;

View File

@ -39,6 +39,7 @@
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -194,6 +195,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -594,6 +596,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -833,6 +836,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1241,6 +1245,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1517,6 +1522,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2088,6 +2094,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2749,6 +2756,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
}

View File

@ -122,7 +122,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -291,7 +291,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -454,7 +454,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -620,7 +620,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -709,7 +709,7 @@
line-height: 1rem;
margin: 0.2rem;
font-size: small;
font-family: Graphik LCG Web, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-family: "DM Sans";
scroll-behavior: smooth;
}
@ -731,6 +731,7 @@
}
.Mui-disabled {
font-family: 'DM Sans', 'Sans-serif';
font-size: small !important;
padding-left: 5px !important;
height: 3rem !important;

View File

@ -8,6 +8,7 @@
}
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -151,6 +152,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -551,6 +553,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -713,6 +716,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1116,6 +1120,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1323,6 +1328,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1803,6 +1809,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2267,6 +2274,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
}

View File

@ -8,6 +8,7 @@
}
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -152,6 +153,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -555,6 +557,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -719,6 +722,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1125,6 +1129,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1335,6 +1340,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1821,6 +1827,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2290,6 +2297,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
}

View File

@ -17,6 +17,7 @@
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -161,6 +162,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -546,6 +548,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -703,6 +706,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1121,6 +1125,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1317,6 +1322,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1797,6 +1803,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2270,6 +2277,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
}

View File

@ -47,6 +47,7 @@
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -200,6 +201,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -588,6 +590,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -826,6 +829,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1222,6 +1226,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1496,6 +1501,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2039,6 +2045,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2645,6 +2652,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
}

View File

@ -47,6 +47,7 @@
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -200,6 +201,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -588,6 +590,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -826,6 +829,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1222,6 +1226,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1496,6 +1501,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2039,6 +2045,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2648,6 +2655,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
}

View File

@ -45,6 +45,7 @@
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -199,6 +200,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -605,6 +607,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -854,6 +857,7 @@
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1268,6 +1272,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1574,6 +1579,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2191,6 +2197,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2909,6 +2916,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
}

View File

@ -45,6 +45,7 @@
.Mui-disabled {
font-family: 'DM Sans', 'Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -199,6 +200,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family: 'DM Sans', 'Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -242,7 +244,7 @@
}
.session_caract {
font-family: DM Sans;
font-family: DM Sans;
width: 100%;
padding: 5px;
float: left;
@ -589,6 +591,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family: 'DM Sans', 'Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -641,6 +644,7 @@
margin-bottom: 1rem;
margin-top: 15px;
margin-left: 0px;
padding-left: 10px;
}
.block_en_mass_select {
@ -725,7 +729,7 @@
}
.block_groupe_class_text {
font-family: "DM Sans", "sans-serif";
font-family: "DM Sans", "sans-serif";
width: 100%;
float: left;
text-align: left;
@ -860,6 +864,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family: 'DM Sans', 'Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -904,7 +909,7 @@
}
.session_caract {
font-family: DM Sans;
font-family: DM Sans;
width: 50%;
padding: 5px;
float: left;
@ -1258,6 +1263,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family: 'DM Sans', 'Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1309,6 +1315,7 @@
margin-bottom: 1rem;
margin-top: 15px;
margin-left: 0px;
padding-left: 10px;
}
.block_en_mass_select {
@ -1392,7 +1399,7 @@
}
.block_groupe_class_text {
font-family: "DM Sans", "sans-serif";
font-family: "DM Sans", "sans-serif";
width: 30%;
float: left;
text-align: left;
@ -1564,6 +1571,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family: 'DM Sans', 'Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1607,7 +1615,7 @@
}
.session_caract {
font-family: DM Sans;
font-family: DM Sans;
width: 33%;
padding: 5px;
float: left;
@ -1901,6 +1909,7 @@
margin-bottom: 1rem;
margin-top: 15px;
margin-left: 0px;
padding-left: 10px;
}
.block_en_mass_select {
@ -1984,7 +1993,7 @@
}
.block_groupe_class_text {
font-family: "DM Sans", "sans-serif";
font-family: "DM Sans", "sans-serif";
width: 45%;
float: left;
text-align: left;
@ -2169,6 +2178,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family: 'DM Sans', 'Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2212,7 +2222,7 @@
}
.session_caract {
font-family: DM Sans;
font-family: DM Sans;
width: 33%;
padding: 5px;
float: left;
@ -2625,6 +2635,7 @@
margin-bottom: 1rem;
margin-top: 15px;
margin-left: 0px;
padding-left: 10px;
}
.block_en_mass_select {
@ -2696,14 +2707,14 @@
.div_row_gauche_dialog_session {
font-family: 'DM Sans';
font-family: 'DM Sans';
width: 30%;
float: left;
font-weight: 700;
}
.div_row_droite_dialog_session {
font-family: 'DM Sans';
font-family: 'DM Sans';
width: 69%;
float: right;
}
@ -2767,7 +2778,7 @@
}
.block_groupe_class_text {
font-family: "DM Sans", "sans-serif";
font-family: "DM Sans", "sans-serif";
width: 30%;
float: left;
text-align: left;
@ -2954,7 +2965,7 @@
}
.session_caract_Dialog {
font-family: 'DM Sans';
font-family: 'DM Sans';
width: 100%;
padding: 5px;
float: left;
@ -3041,11 +3052,12 @@
.css-zw3mfo-MuiModal-root-MuiDialog-root {
position: absolute !important;
}
.react-datepicker-wrapper {
width: 100% !important;
}
}
.MuiModal-root {
// position: absolute !important;
}
.MuiMenu-paper {
max-width: 30% !important;
@ -3068,6 +3080,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
}

View File

@ -43,6 +43,7 @@
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -199,6 +200,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -585,6 +587,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -776,6 +779,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1194,6 +1198,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1411,6 +1416,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1730,7 +1736,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -1918,6 +1924,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2304,7 +2311,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -2443,6 +2450,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
}

View File

@ -105,7 +105,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -379,6 +379,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -576,7 +577,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -862,6 +863,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1032,7 +1034,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -1346,6 +1348,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1512,7 +1515,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: default;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -1822,6 +1825,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;

View File

@ -71,6 +71,7 @@
}
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -214,6 +215,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -619,6 +621,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -844,6 +847,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1251,6 +1255,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1503,6 +1508,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2076,6 +2082,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2725,6 +2732,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
font-size: small !important;

View File

@ -21,6 +21,7 @@
}
.Mui-disabled {
font-family:'DM Sans','Sans-serif';
font-size: small !important;
padding: 0px !important;
padding-left: 5px !important;
@ -163,6 +164,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -551,6 +553,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -742,6 +745,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1163,6 +1167,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1382,6 +1387,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -1913,6 +1919,7 @@
}
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
font-family:'DM Sans','Sans-serif';
font: inherit;
letter-spacing: inherit;
color: currentColor;
@ -2570,6 +2577,7 @@
}
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
font-family: DM Sans !important;
height: 3.5rem !important;
}

Some files were not shown because too many files have changed in this diff Show More