14/09/2023 - 21h

recette2
cherif 2023-09-14 20:48:37 +02:00
parent e52a64f098
commit 56ddcecd8a
5 changed files with 793 additions and 95 deletions

View File

@ -1,3 +1,4 @@
prenom;nom;employeur;telephone;email;modefinancement;opco;status;prix
Cherif;BALDE;employeur 1;10101;billardman1@yahoo.fr;modefinancement;opco;0;120
Sekou;Cherif;employeur 2;10101;billardman01@hotmail.com;modefinancement;opco;0;120
formation_code_externe;code_session;client_rattachement_email;client_rattachement_nom;prenom;nom;employeur;telephone;email;adresse;code_postal;ville;pays;modefinancement;opco;status;prix
MYSY_Test_AP;AR01;;;part 2;part nom2;employeur 2;10101;line1@mysy.fr;adresse01;code_postal01;ville01;pays01;modefinancement;opco;0;150
MYSY_Test_AP;AR01;;;part 3;part nom3;employeur 3;10101;line2@mysy.fr;adresse02;code_postal02;ville02;pays02;modefinancement;;1;180
MYSY_Test_AP;AR01;;;part 4;part nom4;employeur 4;10101;line3@mysy.fr;adresse03;code_postal03;ville03;pays03;modefinancement;;0;110

1 formation_code_externe code_session client_rattachement_email client_rattachement_nom prenom nom employeur telephone email adresse code_postal ville pays modefinancement opco status prix
2 MYSY_Test_AP AR01 Cherif part 2 BALDE part nom2 employeur 1 employeur 2 10101 billardman1@yahoo.fr line1@mysy.fr adresse01 code_postal01 ville01 pays01 modefinancement opco 0 120 150
3 MYSY_Test_AP AR01 Sekou part 3 Cherif part nom3 employeur 2 employeur 3 10101 billardman01@hotmail.com line2@mysy.fr adresse02 code_postal02 ville02 pays02 modefinancement opco 0 1 120 180
4 MYSY_Test_AP AR01 part 4 part nom4 employeur 4 10101 line3@mysy.fr adresse03 code_postal03 ville03 pays03 modefinancement 0 110

View File

@ -0,0 +1,4 @@
formation_code_externe;code_session;client_rattachement_email;client_rattachement_nom;prenom;nom;employeur;telephone;email;adresse;code_postal;ville;pays;modefinancement;opco;status;prix
MYSY_Test_AP;AP01;;;part 2;part nom2;employeur 2;10101;line1@mysy.fr;adresse01;code_postal01;ville01;pays01;modefinancement;opco;0;150
MYSY_Test_AR;AR02;;;part 3;part nom3;employeur 3;10101;line2@mysy.fr;adresse02;code_postal02;ville02;pays02;modefinancement;;1;180
MYSY_Test_AP;AP02;;;part 4;part nom4;employeur 4;10101;line3@mysy.fr;adresse03;code_postal03;ville03;pays03;modefinancement;;0;110
1 formation_code_externe code_session client_rattachement_email client_rattachement_nom prenom nom employeur telephone email adresse code_postal ville pays modefinancement opco status prix
2 MYSY_Test_AP AP01 part 2 part nom2 employeur 2 10101 line1@mysy.fr adresse01 code_postal01 ville01 pays01 modefinancement opco 0 150
3 MYSY_Test_AR AR02 part 3 part nom3 employeur 3 10101 line2@mysy.fr adresse02 code_postal02 ville02 pays02 modefinancement 1 180
4 MYSY_Test_AP AP02 part 4 part nom4 employeur 4 10101 line3@mysy.fr adresse03 code_postal03 ville03 pays03 modefinancement 0 110

View File

@ -49,6 +49,14 @@ const Config_Documents = (props) => {
const [field_programme, setfield_programme] = useState("");
const [editor_tochange, seteditor_tochange] = useState("");
const one_editorRef_programme = useRef(null);
const [one_editorRef_programme_limite, setone_editorRef_programme_limite] = useState(1000);
const [one_field_programme, setone_field_programme] = useState("");
const [one_editor_tochange, setone_editor_tochange] = useState("");
var date_today_90j = new Date();
date_today_90j.setDate(date_today_90j.getDate() + 90);
@ -185,6 +193,8 @@ const Config_Documents = (props) => {
const [selected_id, setselected_id] = useState();
const [selected_template_ref_interne, setselected_template_ref_interne] = useState();
function handleClick_display_partner_document(selected_row_id) {
setdisplay_detail_document("1");
@ -196,7 +206,9 @@ const Config_Documents = (props) => {
var document_id = line._id;
setselected_id(document_id);
//console.log(" ### document_id = ", document_id);
setselected_template_ref_interne(line.ref_interne);
console.log(" ### line.ref_interne = ", line.ref_interne);
Get_Partner_Document_Data(document_id);
if (myRef.current) {
@ -222,6 +234,14 @@ const Config_Documents = (props) => {
const [p_detail_type_doc, setp_detail_type_doc] = useState("");
const [p_one_detail_cible, setp_one_detail_cible] = useState("");
const [p_one_detail_contenu_doc, setp_one_detail_contenu_doc] = useState("");
const [p_one_detail_nom, setp_one_detail_nom] = useState("");
const [p_one_detail_ref_interne, setp_one_detail_ref_interne] = useState("");
const [p_one_detail_sujet, setp_one_detail_sujet] = useState("");
const [p_one_detail_type_doc, setp_one_detail_type_doc] = useState("");
function clear_detail_fields() {
setp_detail_cible("");
setp_detail_contenu_doc();
@ -229,9 +249,20 @@ const Config_Documents = (props) => {
setp_detail_ref_interne("");
setp_detail_sujet("");
setp_detail_type_doc("");
setfield_programme();
}
function clear_one_detail_fields() {
setp_one_detail_cible("");
setp_one_detail_contenu_doc();
setp_one_detail_nom("");
setp_one_detail_ref_interne("");
setp_one_detail_sujet("");
setp_one_detail_type_doc("");
setone_field_programme();
}
const [display_detail_document, setdisplay_detail_document] = useState("");
@ -266,16 +297,19 @@ const Config_Documents = (props) => {
if (mylocal_document.nom)
setp_detail_nom(mylocal_document.nom);
document.getElementsByName("document_type")[0].value = "";
if (mylocal_document.type_doc)
setp_detail_type_doc(mylocal_document.type_doc);
document.getElementsByName("document_ref_interne")[0].value = "";
if (mylocal_document.cible)
setp_detail_cible(mylocal_document.cible);
if (mylocal_document.ref_interne) {
setp_detail_ref_interne(mylocal_document.ref_interne);
}
document.getElementsByName("document_sujet")[0].value = "";
if (mylocal_document.sujet) {
setp_detail_sujet(mylocal_document.sujet);
}
@ -354,6 +388,13 @@ const Config_Documents = (props) => {
if (mylocal_document.type_doc)
setp_detail_type_doc(mylocal_document.type_doc);
if (mylocal_document.cible)
setp_detail_cible(mylocal_document.cible);
document.getElementsByName("document_ref_interne")[0].value = "";
if (mylocal_document.ref_interne) {
setp_detail_ref_interne(mylocal_document.ref_interne);
@ -402,6 +443,96 @@ const Config_Documents = (props) => {
}
const [Get_Default_Original_Partner_Document_Data_By_id_api, setGet_Default_Original_Partner_Document_Data_By_id_api] = useState();
const [Get_Default_Original_Partner_Document_Data_By_id_message, setGet_Default_Original_Partner_Document_Data_By_id_message] = useState();
const [Get_Default_Original_Partner_Document_Data_By_id_result, setGet_Default_Original_Partner_Document_Data_By_id_result] = useState();
function Get_Default_Original_Partner_Document_Data_By_id(local_id) {
setpartner_document_data_changed("");
setpartner_document_data_edit_mode("");
clear_detail_fields();
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("_id", local_id);
//console.log(" ## form = ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_DFAULT_Partner_Document/";
axios.post(myurl, form).then(res => {
if (String(res.data.status) === "true") {
console.log(" In Get_Default_Original_Partner_Document_Data_By_id res.data.status = " + res.data.status);
console.log(" In Get_Default_Original_Partner_Document_Data_By_id res.data.message r_class = " + res.data.message);
setGet_Default_Original_Partner_Document_Data_By_id_api("true");
setGet_Default_Original_Partner_Document_Data_By_id_result(res.data.message);
if (res.data.message.length > 0) {
var mylocal_document = JSON.parse(res.data.message);
if (mylocal_document.nom)
setp_one_detail_nom(mylocal_document.nom);
if (mylocal_document.type_doc)
setp_one_detail_type_doc(mylocal_document.type_doc);
if (mylocal_document.cible)
setp_one_detail_cible(mylocal_document.cible);
if (mylocal_document.ref_interne) {
setp_one_detail_ref_interne(mylocal_document.ref_interne);
}
if (mylocal_document.sujet) {
setp_one_detail_sujet(mylocal_document.sujet);
}
setfield_programme("");
if (mylocal_document.contenu_doc) {
setp_one_detail_contenu_doc(String(mylocal_document.contenu_doc));
setone_field_programme(String(mylocal_document.contenu_doc));
}
if (myRef.current) {
myRef.current.scrollIntoView({ behavior: "smooth" });
}
} else {
alert(" Aucun document recuperé");
}
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
history.push("/Connexion");
}
else {
setGet_Default_Original_Partner_Document_Data_By_id_api("false");
setGet_Default_Original_Partner_Document_Data_By_id_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
console.warn('Not good man :( Get_Default_Original_Partner_Document_Data_By_id = ', error);
setGet_Default_Original_Partner_Document_Data_By_id_api("false");
alert(" Impossible de recuperer le modèle initial");
//setmyApimyApiMessage("")
})
}
function disable_Partner_DocumentFields() {
setpartner_document_data_edit_mode("0");
@ -433,6 +564,12 @@ const Config_Documents = (props) => {
}
function Edit_Document_Data_Fields() {
Enable_Partner_DocumentFields();
Get_Given_Personnalisable_Collection_and_Fields(selected_template_ref_interne);
}
function Enable_Partner_DocumentFields() {
setpartner_document_data_edit_mode("1");
@ -469,24 +606,23 @@ const Config_Documents = (props) => {
const [partner_document_data_edit_mode, setpartner_document_data_edit_mode] = useState("");
const [p_champ_table, setp_champ_table] = useState();
const [p_collection, setp_collection] = useState();
function add_selected_fields() {
if (!p_collection || !p_champ_table) {
alert(" Champ invalide ");
return;
}
var local_field = "{{" + String(p_collection) + "." + String(p_champ_table) + "}}";
editorRef_programme.current.insertContent(" <b><i>" + String(local_field) + "</i></b> ");
if (String(p_champ_table).length > 4)
editorRef_programme.current.insertContent(String(p_champ_table));
else
alert(" Le champ est invalide");
}
function add_one_selected_fields() {
if (String(p_champ_table).length > 4)
one_editorRef_programme.current.insertContent(String(p_champ_table));
else
alert(" Le champ est invalide");
}
const [Get_Personnalisable_Collection_and_Fields_api, setGet_Personnalisable_Collection_and_Fields_api] = useState();
@ -501,15 +637,15 @@ const Config_Documents = (props) => {
form.append("token", stored_cookie);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Personnalisable_Collection_Fields/";
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_All_Personnalisable_Collection_Fields/";
axios.post(myurl, form).then(res => {
if (String(res.data.status) === String("true")) {
//console.log(" In Get_Personnalisable_Collection_and_Fields res.data.status = " + res.data.status);
//console.log(" In Get_Personnalisable_Collection_and_Fields res.data.message r_class = " + res.data.message);
console.log(" In Get_Personnalisable_Collection_and_Fields res.data.status = " + res.data.status);
console.log(" In Get_Personnalisable_Collection_and_Fields res.data.message r_class = " + res.data.message);
setGet_Personnalisable_Collection_and_Fields_api("true");
setGet_Personnalisable_Collection_and_Fields_result(res.data.message);
@ -566,7 +702,7 @@ const Config_Documents = (props) => {
useEffect(() => {
Get_Personnalisable_Collections();
Get_Personnalisable_Collection_and_Fields();
//Get_Personnalisable_Collection_and_Fields();
Getall_Partner_Document_No_filter();
myRef_head.current.scrollIntoView({ behavior: "smooth" });
@ -586,24 +722,42 @@ const Config_Documents = (props) => {
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
if (p_detail_ref_interne)
form.append("ref_interne", p_detail_ref_interne);
if (p_one_detail_ref_interne)
form.append("ref_interne", p_one_detail_ref_interne);
else {
alert(" Vous devez definir une reference interne");
return;
}
if (p_detail_type_doc)
form.append("type_doc", p_detail_type_doc);
if (p_one_detail_type_doc)
form.append("type_doc", p_one_detail_type_doc);
else {
alert(" Vous devez definir un type de document");
return;
}
if (p_detail_sujet)
form.append("sujet", p_detail_sujet);
if (p_one_detail_cible)
form.append("cible", p_one_detail_cible);
else {
form.append("cible", "");
return;
}
if (p_one_detail_nom)
form.append("nom", p_one_detail_nom);
else {
alert(" Vous devez definir un nom de document");
return;
}
if (p_one_detail_sujet)
form.append("sujet", p_one_detail_sujet);
else {
alert(" Vous devez definir un sujet");
return;
@ -611,8 +765,12 @@ const Config_Documents = (props) => {
if (editorRef_programme) {
var programme = editorRef_programme.current.getContent();
if (one_editorRef_programme) {
var programme = one_editorRef_programme.current.getContent();
programme = programme.replace('&lt;', '<');
programme = programme.replace('&gt;', '>');
programme = programme.replace('&le;', '<=');
programme = programme.replace('&ge;', '>=');
form.append("contenu_doc", programme);
}
else {
@ -633,24 +791,69 @@ const Config_Documents = (props) => {
setAdd_one_Partner_Document_result(res.data.message);
alert(res.data.message);
clear_one_detail_fields();
setadd_one_document();
setdisplay_add_one_document();
Getall_Partner_Document_No_filter();
}
else {
setAdd_one_Partner_Document_api("false");
setAdd_one_Partner_Document_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
console.log('UpdateStagiaireData : Not good man :( Add_one_Partner_Document = ' + error);
setAdd_one_Partner_Document_api("false");
alert(" Impossible d'ajouter le document");
alert(" Impossible d'ajouter le nouveau document");
})
}
const [Get_Given_Personnalisable_Collection_and_Fields_api, setGet_Given_Personnalisable_Collection_and_Fields_api] = useState();
const [Get_Given_Personnalisable_Collection_and_Fields_message, setGet_Given_Personnalisable_Collection_and_Fields_message] = useState();
const [Get_Given_Personnalisable_Collection_and_Fields_result, setGet_Given_Personnalisable_Collection_and_Fields_result] = useState();
function Get_Given_Personnalisable_Collection_and_Fields(local_courrier_template_ref_interne) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("courrier_template_ref_interne", local_courrier_template_ref_interne);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Personnalisable_Fields_By_template_ref_interne/";
axios.post(myurl, form).then(res => {
if (String(res.data.status) === String("true")) {
console.log(" In Get_Given_Personnalisable_Collection_and_Fields res.data.status = " + res.data.status);
console.log(" In Get_Given_Personnalisable_Collection_and_Fields res.data.message r_class = " + res.data.message);
setGet_Given_Personnalisable_Collection_and_Fields_api("true");
setGet_Given_Personnalisable_Collection_and_Fields_result(res.data.message);
}
else {
setGet_Given_Personnalisable_Collection_and_Fields_api("false");
setGet_Given_Personnalisable_Collection_and_Fields_message(res.data.message);
alert(res.data.message)
}
}).catch((error) => {
console.warn('Not good man :( Get_Given_Personnalisable_Collection_and_Fields = ', error);
setGet_Given_Personnalisable_Collection_and_Fields_api("false");
alert(" Impossible de recuperer la liste des collection et champs personnalisables de l'objet");
//setmyApimyApiMessage("")
})
}
const [Update_one_Partner_Document_api, setUpdate_one_Partner_Document_api] = useState();
const [Update_one_Partner_Document_message, setUpdate_one_Partner_Document_message] = useState();
const [Update_one_Partner_Document_result, setUpdate_one_Partner_Document_result] = useState();
@ -671,6 +874,15 @@ const Config_Documents = (props) => {
}
if (p_detail_cible)
form.append("cible", p_detail_cible);
else {
form.append("cible", "");
}
if (p_detail_type_doc)
form.append("type_doc", p_detail_type_doc);
else {
@ -679,6 +891,14 @@ const Config_Documents = (props) => {
}
if (p_detail_nom)
form.append("nom", p_detail_nom);
else {
alert(" Vous devez definir un nom de document");
return;
}
if (p_detail_sujet)
form.append("sujet", p_detail_sujet);
else {
@ -781,6 +1001,48 @@ const Config_Documents = (props) => {
}
const [Get_Given_Personnalisable_Fields_From_template_ID_api, setGet_Given_Personnalisable_Fields_From_template_ID_api] = useState();
const [Get_Given_Personnalisable_Fields_From_template_ID_message, setGet_Given_Personnalisable_Fields_From_template_ID_message] = useState();
const [Get_Given_Personnalisable_Fields_From_template_ID_result, setGet_Given_Personnalisable_Fields_From_template_ID_result] = useState();
function Get_Given_Personnalisable_Fields_From_template_ID(local_courrier_template_id) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("courrier_template_id", local_courrier_template_id);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Personnalisable_Fields_By_courrier_template_id/";
axios.post(myurl, form).then(res => {
if (String(res.data.status) === String("true")) {
console.log(" In Get_Given_Personnalisable_Fields_From_template_ID res.data.status = " + res.data.status);
console.log(" In Get_Given_Personnalisable_Fields_From_template_ID res.data.message r_class = " + res.data.message);
setGet_Given_Personnalisable_Fields_From_template_ID_api("true");
setGet_Given_Personnalisable_Fields_From_template_ID_result(res.data.message);
}
else {
setGet_Given_Personnalisable_Fields_From_template_ID_api("false");
setGet_Given_Personnalisable_Fields_From_template_ID_message(res.data.message);
alert(res.data.message)
}
}).catch((error) => {
console.warn('Not good man :( Get_Given_Personnalisable_Fields_From_template_ID = ', error);
setGet_Given_Personnalisable_Fields_From_template_ID_api("false");
alert(" Impossible de recuperer la liste des collection et champs personnalisables de l'objet");
//setmyApimyApiMessage("")
})
}
const [display_partner_document, setdisplay_partner_document] = React.useState();
function Annule_Partner_Document_DetailFields() {
@ -792,6 +1054,77 @@ const Config_Documents = (props) => {
}
const [Get_List_Personnalisable_Default_Document_api, setGet_List_Personnalisable_Default_Document_api] = useState();
const [Get_List_Personnalisable_Default_Document_message, setGet_List_Personnalisable_Default_Document_message] = useState();
const [Get_List_Personnalisable_Default_Document_result, setGet_List_Personnalisable_Default_Document_result] = useState();
function Get_List_Personnalisable_Default_Document() {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Default_Partner_Document/";
axios.post(myurl, form).then(res => {
if (String(res.data.status) === String("true")) {
//console.log(" In Get_List_Personnalisable_Default_Document res.data.status = " + res.data.status);
//console.log(" In Get_List_Personnalisable_Default_Document res.data.message r_class = " + res.data.message);
setGet_List_Personnalisable_Default_Document_api("true");
setGet_List_Personnalisable_Default_Document_result(res.data.message);
}
else {
setGet_List_Personnalisable_Default_Document_api("false");
setGet_List_Personnalisable_Default_Document_message(res.data.message);
alert(res.data.message)
}
}).catch((error) => {
console.warn('Not good man :( Get_List_Personnalisable_Default_Document = ', error);
setGet_List_Personnalisable_Default_Document_api("false");
alert(" Impossible de recuperer la liste des documents par default");
//setmyApimyApiMessage("")
})
}
const [selecte_defaul_doc_to_add, setselecte_defaul_doc_to_add] = React.useState();
const [add_one_document, setadd_one_document] = React.useState();
function submenu_add_one_model_document() {
setSelectionModel([]);
clear_one_detail_fields();
setpartner_document_data_edit_mode();
setpartner_document_data_changed();
clear_detail_fields();
setdisplay_partner_document();
setdisplay_detail_document();
Get_List_Personnalisable_Default_Document();
setadd_one_document("1");
}
const [display_add_one_document, setdisplay_add_one_document] = React.useState();
function Get_And_Display_Selected_Document() {
setdisplay_add_one_document("1");
console.log(" ## selecte_defaul_doc_to_add = ", selecte_defaul_doc_to_add);
setadd_one_document("1");
setdisplay_detail_document("0");
setselected_id(selecte_defaul_doc_to_add);
Get_Default_Original_Partner_Document_Data_By_id(selecte_defaul_doc_to_add);
Get_Given_Personnalisable_Fields_From_template_ID(selecte_defaul_doc_to_add);
}
function Annule_Add_One_New_Doc() {
clear_one_detail_fields();
setadd_one_document();
setdisplay_add_one_document();
}
return (
<div className="config_document">
<Dialog
@ -1200,8 +1533,12 @@ const Config_Documents = (props) => {
if (newSelectionModel.length === 1)
handleClick_display_partner_document(newSelectionModel);
if (newSelectionModel.length !== 1) {
setpartner_document_data_edit_mode();
setpartner_document_data_changed();
clear_detail_fields();
setsubmenu();
setdisplay_partner_document();
setdisplay_detail_document();
}
}}
selectionModel={selectionModel}
@ -1275,76 +1612,115 @@ const Config_Documents = (props) => {
</div>
</div>
<div className="div_row" style={{ "border": "None" }}>
<Button variant="outlined" onClick={submenu_add_one_model_document}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 modèle de Document &nbsp;
<img src={add_plus} alt="ajout session" className="icon_plus" />
</Button>
</div>
</div>
</div>
{String(display_detail_document) === "1" && <div className="div_row">
{String(display_detail_document) === "1" && String(add_one_document) !== "1" && <div className="div_row">
<h3> Détail document <i> {p_detail_nom} </i></h3>
<div className="div_row">
{String(partner_document_data_edit_mode) === "1" && <div className="div_row_gauche texte_area_filter" >
<TextField
name="document_type"
label="Type de document"
select
sx={{ m: 1, width: '100%' }}
value={p_detail_type_doc}
onChange={(e) => {
setp_detail_type_doc(e.target.value);
setpartner_document_data_changed("1");
}}
>
<MenuItem value="pdf" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Pdf &nbsp;</MenuItem>
<MenuItem value="sms" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >SMS &nbsp;</MenuItem>
<MenuItem value="email" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Email&nbsp;</MenuItem>
<div className="div_row_gauche">
{String(partner_document_data_edit_mode) !== "1" && <div className="div_row_gauche texte_area_filter" >
<TextField
name="nom_document"
label="Nom document"
sx={{ m: 1, width: '100%' }}
value={p_one_detail_nom}
/>
</div>}
</TextField>
</div>}
{String(partner_document_data_edit_mode) !== "1" && <div className="div_row_gauche texte_area_filter" >
<TextField
name="document_type"
label="Type de document"
sx={{ m: 1, width: '100%' }}
value={p_detail_type_doc}
{String(partner_document_data_edit_mode) !== "1" && <div className="div_row_gauche texte_area_filter" >
<TextField
name="document_type"
label="Type de document"
sx={{ m: 1, width: '100%' }}
value={p_detail_type_doc}
/>
/>
</div>}
</div>}
<div className="div_row_gauche texte_area_filter" ref={myRef}>
<TextField
name="document_ref_interne"
label="Code Document"
sx={{ m: 1, width: '100%' }}
value={p_detail_ref_interne}
onChange={(e) => {
setp_detail_ref_interne(e.target.value);
setpartner_document_data_changed("1");
}}
/>
<div className="div_row_gauche texte_area_filter" ref={myRef}>
<TextField
name="document_ref_interne"
label="Code Document"
sx={{ m: 1, width: '100%' }}
value={p_detail_ref_interne}
/>
</div>
<div className="div_row_gauche texte_area_filter" >
<TextField
name="document_sujet"
label="Sujet"
sx={{ m: 1, width: '100%' }}
value={p_detail_sujet}
onChange={(e) => {
setp_detail_sujet(e.target.value);
setpartner_document_data_changed("1");
}}
/>
</div>
</div>
<div className="div_row_droite" style={{ "textAlign": "left" }}>
{String(partner_document_data_edit_mode) === "1" && <div className="div_row"> Choisir un champ <br />
<TextField
name="champ_table"
id="champ_table"
select
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style enable_style"
value={p_champ_table}
onChange={(e) => {
setp_champ_table(e.target.value);
}}
>
{Get_Given_Personnalisable_Collection_and_Fields_result &&
Get_Given_Personnalisable_Collection_and_Fields_result.filter((local_mymanager) => JSON.parse(local_mymanager).courrier_template_ref_interne === p_detail_ref_interne).map((mycollection) => (
<MenuItem key={JSON.parse(mycollection).nom_champ_technique}
value={JSON.parse(mycollection).nom_champ_technique}
style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%", "fontSize": "12px" }}>
{JSON.parse(mycollection).nom_champ_fonctionel}&nbsp;&nbsp;
</MenuItem>
))}
</TextField>
</div>}
{String(partner_document_data_edit_mode) === "1" && <div className="div_row">
<Button className="bton_enreg" onClick={add_selected_fields} style={{ "margin": "1rem" }}
>Ajouter Champ Choisi &nbsp;
</Button>
</div>}
</div>
</div>
<div className="div_row_gauche texte_area_filter" >
<TextField
name="document_sujet"
label="Sujet"
sx={{ m: 1, width: '100%' }}
value={p_detail_sujet}
onChange={(e) => {
setp_detail_sujet(e.target.value);
setpartner_document_data_changed("1");
}}
/>
</div>
{String(partner_document_data_edit_mode) === "1" && <div className="div_row">
<div style={{ "width": "98%", "marginLeft": "1%", "marginRight": "1%", "float": "left" }}>
<div className="titre_training_text"> Mofifier le contenu du document </div>
@ -1449,7 +1825,7 @@ const Config_Documents = (props) => {
{String(partner_document_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Partner_DocumentFields}>Editer
<Button variant="contained" className="bton_edit" onClick={Edit_Document_Data_Fields}>Editer
</Button>
</div>}
@ -1459,6 +1835,203 @@ 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>
<div className="div_row" style={{ "textAlign": "left" }}>
<div className="div_row"> Choisir le document à ajouter <br />
<TextField
name="champ_table"
id="champ_table"
select
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style enable_style"
value={selecte_defaul_doc_to_add}
onChange={(e) => {
setselecte_defaul_doc_to_add(e.target.value);
}}
>
{Get_List_Personnalisable_Default_Document_result &&
Get_List_Personnalisable_Default_Document_result.map((mycollection) => (
<MenuItem key={JSON.parse(mycollection)._id}
value={JSON.parse(mycollection)._id}
style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%", "fontSize": "12px" }}>
{JSON.parse(mycollection).nom}&nbsp;&nbsp;
</MenuItem>
))}
</TextField>
</div>
<div className="div_row">
<Button className="bton_enreg" onClick={Get_And_Display_Selected_Document} style={{ "margin": "1rem" }}
>Afficher le modèle par defaut &nbsp;
</Button>
</div>
</div>
{String(display_add_one_document) === "1" && <div className="div_row">
<div className="div_row">
<div className="div_row_gauche">
<div className="div_row_gauche texte_area_filter" >
<TextField
name="one_document_type"
label="Type de document"
sx={{ m: 1, width: '100%' }}
value={p_one_detail_type_doc}
/>
</div>
<div className="div_row_gauche texte_area_filter" >
<TextField
name="one_nom_document"
label="Nom document"
sx={{ m: 1, width: '100%' }}
value={p_one_detail_nom}
/>
</div>
<div className="div_row_gauche texte_area_filter" ref={myRef}>
<TextField
name="one_document_ref_interne"
label="Code Document"
sx={{ m: 1, width: '100%' }}
value={p_one_detail_ref_interne}
/>
</div>
<div className="div_row_gauche texte_area_filter" >
<TextField
name="one_document_sujet"
label="Sujet"
sx={{ m: 1, width: '100%' }}
value={p_one_detail_sujet}
onChange={(e) => {
setp_detail_sujet(e.target.value);
setpartner_document_data_changed("1");
}}
/>
</div>
</div>
<div className="div_row_droite" style={{ "textAlign": "left" }}>
<div className="div_row"> Choisir un champ fff <br />
<TextField
name="one_champ_table"
id="one_champ_table"
select
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style enable_style"
value={p_champ_table}
onChange={(e) => {
setp_champ_table(e.target.value);
}}
>
{Get_Given_Personnalisable_Fields_From_template_ID_result &&
Get_Given_Personnalisable_Fields_From_template_ID_result.map((mycollection) => (
<MenuItem key={JSON.parse(mycollection).nom_champ_technique}
value={JSON.parse(mycollection).nom_champ_technique}
style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%", "fontSize": "12px" }}>
{JSON.parse(mycollection).nom_champ_fonctionel}&nbsp;&nbsp;
</MenuItem>
))}
</TextField>
</div>
<div className="div_row">
<Button className="bton_enreg" onClick={add_one_selected_fields} style={{ "margin": "1rem" }}
>Ajouter Champ Choisi &nbsp;
</Button>
</div>
</div>
<div className="div_row">
<div style={{ "width": "98%", "marginLeft": "1%", "marginRight": "1%", "float": "left" }}>
<div className="titre_training_text"> Mofifier le contenu du document </div>
<Editor
id="document_contente"
name="document_contente"
onInit={(evt, editor) => one_editorRef_programme.current = editor}
initialValue={one_field_programme}
onKeyUp={editor_keyup}
onEditorChange={(newValue, editor) => {
}}
init={{
resize: false,
height: 700,
menubar: true,
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
],
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; }'
}}
/>
</div>
</div>
</div>
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
/!\ Pensez à enregistrer les modifications
</div>
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
<Button variant="contained" className="bton_enreg" onClick={Add_one_Partner_Document}>Enregistrer les modifications
</Button>
</div>
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }} >
<Button variant="contained" className="bton_annule" onClick={Annule_Add_One_New_Doc}>Annuler
</Button>
</div>
</div>
</div>}
</div>}
</div >
);
}

View File

@ -2395,13 +2395,7 @@ const DisplayPartnerSession = (props) => {
}
code_session = p_one_nb_participant
if (code_session.trim() == "") {
alert(" Vous devez saisir un code session");
return;
}
var nb_participant = ""

View File

@ -122,6 +122,7 @@ const DisplayPartnerStagiaires = (props) => {
{ field: 'domaine', headerName: 'Domaine', width: datagrid_columns_size_model2, align: "center", hide: true, hideable: true, },
{ field: 'date_debut', headerName: 'Du', width: datagrid_columns_size_model1, hideable: true, },
{ field: 'date_fin', headerName: 'Au', width: datagrid_columns_size_model1, hideable: true, },
{ field: 'class_internal_url', headerName: 'class_internal_url', hide: true, },
/* {
field: "Detail", headerName: 'Voir detail',
renderCell: (cellValues) => {
@ -158,9 +159,133 @@ const DisplayPartnerStagiaires = (props) => {
);
}
},
{
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
onClick={(event) => {
handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'inscription du stagiaire sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>
);
}
}
]
function handleClick_delete(event, cellValues) {
// Recuperation du motif du refus :
var nom = cellValues.row.nom;
var email = cellValues.row.email;
var prenom = cellValues.row.prenom;
var session_id = cellValues.row.session_id;
var class_internal_url = cellValues.row.class_internal_url;
DeleteStagiaireData(nom, prenom, email, session_id, class_internal_url);
}
const [DeleteStagiaireData_api, setDeleteStagiaireData_api] = useState();
const [DeleteStagiaireData_message, setDeleteStagiaireData_message] = useState();
const [DeleteStagiaireData_result, setDeleteStagiaireData_result] = useState();
function DeleteStagiaireData(nom, prenom, email, local_session_id, local_class_internal_url) {
var form = new FormData();
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("class_internal_url", local_class_internal_url);
form.append("session_id", local_session_id);
form.append("nom", nom);
form.append("prenom", prenom);
form.append("email", email);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/DeleteAttendeeInscription/";
axios.post(myurl, form).then(res => {
//console.log(" In DeleteStagiaireData res.data.status = " + res.data.status);
//console.log(" In DeleteStagiaireData res.data.message r_class = " + res.data.message);
if (String(res.data.status) === String("true")) {
setDeleteStagiaireData_api("true");
setDeleteStagiaireData_result(res.data.message);
Getall_TrainingParticipant();
alert(" La mise à jour été correctement faite.")
}
else {
setDeleteStagiaireData_api("false");
setDeleteStagiaireData_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
console.warn('DeleteStagiaireData : Not good man :( mysearchtext = ' + error);
setDeleteStagiaireData_api("false");
alert(" Impossible de supprimer le stagaire");
})
}
function clean_all_filters() {
setp_filtre1();
setp_filtre1_value();
@ -3021,6 +3146,7 @@ const DisplayPartnerStagiaires = (props) => {
domaine: JSON.parse(item).domaine,
date_debut: JSON.parse(item).date_du,
date_fin: JSON.parse(item).date_au,
class_internal_url: JSON.parse(item).class_internal_url,
}
))}
@ -3112,7 +3238,7 @@ const DisplayPartnerStagiaires = (props) => {
onChange={liste_sessions_file_change}
/>
<a href='/sample/template_import_session_plusieurs_formations.csv' download>Télécharger un fichier modèle</a>
<a href='/sample/template_import_stagiaires.csv' download>Télécharger un fichier modèle</a>
</div>
</div>
<div className="div_row"> &nbsp;</div>