diff --git a/src/components/Config_Champs_Personnalise.js b/src/components/Config_Champs_Personnalise.js index 084649f..e5f0873 100644 --- a/src/components/Config_Champs_Personnalise.js +++ b/src/components/Config_Champs_Personnalise.js @@ -51,36 +51,42 @@ const Config_Champs_Personnalise = (props) => { { field: 'field_name', headerName: 'Nom champ', hideable: false, flex: 1 }, { field: 'field_label', headerName: 'label', hideable: false, flex: 1 }, { field: 'related_collection', headerName: 'Entité metier', width: 150, hideable: false, }, - { field: 'is_displayed', headerName: 'Affichable', width: 150, hide: false, editable: false , - valueFormatter: (params) => { - if (String(params.value) === "0") - return "Non"; - else if (String(params.value) === "1") - return "Oui"; + { + field: 'is_displayed', headerName: 'Affichable', width: 150, hide: false, editable: false, + valueFormatter: (params) => { + if (String(params.value) === "0") + return "Non"; + else if (String(params.value) === "1") + return "Oui"; - else - return "?"; - },}, - { field: 'field_type', headerName: 'Type', width: 150, hide: false, editable: false, - valueFormatter: (params) => { - if (String(params.value) === "string") - return "Alphanum"; - else if (String(params.value) === "float") - return "Num"; + else + return "?"; + }, + }, + { + field: 'field_type', headerName: 'Type', width: 150, hide: false, editable: false, + valueFormatter: (params) => { + if (String(params.value) === "string") + return "Alphanum"; + else if (String(params.value) === "float") + return "Num"; - else - return "?"; - }, }, - { field: 'is_mandatory', headerName: 'Obligatoire', width: 150, hide: false, editable: false, - valueFormatter: (params) => { - if (String(params.value) === "0") - return "Non"; - else if (String(params.value) === "1") - return "Oui"; + else + return "?"; + }, + }, + { + field: 'is_mandatory', headerName: 'Obligatoire', width: 150, hide: false, editable: false, + valueFormatter: (params) => { + if (String(params.value) === "0") + return "Non"; + else if (String(params.value) === "1") + return "Oui"; - else - return "?"; - }, }, + else + return "?"; + }, + }, /*{ @@ -259,8 +265,16 @@ const Config_Champs_Personnalise = (props) => { setp_detail_is_displayed_label("Non"); } - if (mylocal_spec_field.field_type) + if (mylocal_spec_field.field_type){ setp_detail_field_type(mylocal_spec_field.field_type); + if (String(mylocal_spec_field.field_type) === "string") + setp_detail_field_type_label("Alphanumérique"); + else if (String(mylocal_spec_field.field_type) === "float") + setp_detail_field_type_label("Numérique"); + + } + + if (mylocal_spec_field.is_mandatory) { setp_detail_is_mandatory(mylocal_spec_field.is_mandatory); @@ -675,8 +689,10 @@ const Config_Champs_Personnalise = (props) => { //Get_List_Personnalisable_Default_Document(); + setdisplay_personalised_field(); setadd_one_personal_field("1"); + } const [p_detail_field_name, setp_detail_field_name] = useState(""); @@ -686,6 +702,7 @@ const Config_Champs_Personnalise = (props) => { const [p_detail_is_displayed, setp_detail_is_displayed] = useState(""); const [p_detail_is_displayed_label, setp_detail_is_displayed_label] = useState(""); const [p_detail_field_type, setp_detail_field_type] = useState(""); + const [p_detail_field_type_label, setp_detail_field_type_label] = useState(""); const [p_detail_is_mandatory, setp_detail_is_mandatory] = useState(""); const [p_detail_is_mandatory_label, setp_detail_is_mandatory_label] = useState(""); @@ -704,6 +721,7 @@ const Config_Champs_Personnalise = (props) => { setp_detail_related_collection_name(""); setp_detail_is_displayed(""); setp_detail_field_type(""); + setp_detail_field_type_label(""); setp_detail_is_mandatory(""); setp_detail_is_mandatory_label(""); setp_detail_is_displayed_label(""); @@ -760,6 +778,11 @@ const Config_Champs_Personnalise = (props) => { } + var tmp_val = String(p_detail_field_name).replaceAll("my_", ""); + if (!tmp_val.match(/^[0-9a-z]+$/)) { + alert(" Sur le nom technique, les information apres le 'my_' doit être alphanumerique. Vous avez saisi : " + String(tmp_val)); + return; + } if (p_detail_field_label) @@ -846,6 +869,126 @@ const Config_Champs_Personnalise = (props) => { } + const [Add_One_Specific_field_Data_api, setAdd_One_Specific_field_Data_api] = useState(); + const [Add_One_Specific_field_Data_message, setAdd_One_Specific_field_Data_message] = useState(); + const [Add_One_Specific_field_Data_result, setAdd_One_Specific_field_Data_result] = useState(); + function Add_One_Specific_field_Data() { + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + + if (p_one_detail_field_name) { + form.append("field_name", p_one_detail_field_name); + } + else { + alert(" Vous devez definir le technique du champ. Il doit commencer impérativement par 'my_'"); + return; + } + if (!p_one_detail_field_name.startsWith('my_')) { + alert(" Le nom technique du champ doit commencer impérativement par 'my_'"); + return; + } + if (String(p_one_detail_field_name).length < 6) { + alert(" Le nom technique du champ doit au moins 6 caractères"); + return; + } + + + if (p_one_detail_field_label) + form.append("field_label", p_one_detail_field_label); + else { + alert(" Vous devez definir le label du champ "); + return; + } + if (String(p_one_detail_field_label).length < 3) { + alert(" Le label du champ doit faire au moins 3 caractères"); + return; + } + + + if (p_one_detail_related_collection) + form.append("related_collection", p_one_detail_related_collection); + else { + alert(" Vous devez definir l'entité"); + return; + } + + + if (p_one_detail_is_displayed) + form.append("is_displayed", p_one_detail_is_displayed); + else { + alert(" Vous devez definir si le champ est affichable"); + return; + } + + + if (p_one_detail_field_type) + form.append("field_type", p_one_detail_field_type); + else { + alert(" Vous devez definir le type du champ"); + return; + } + + + if (p_one_detail_is_mandatory) + form.append("is_mandatory", p_one_detail_is_mandatory); + else { + alert(" Vous devez definir si le champ est obligatoire"); + return; + } + + + //console.log(" Add_One_Specific_field_Data affectation form == ", form); + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_specific_field/"; + + axios.post(myurl, form).then(res => { + //console.log(" In Add_One_Specific_field_Data res.data.status = " + res.data.status); + //console.log(" In Add_One_Specific_field_Data res.data.message r_class = " + res.data.message); + + if (String(res.data.status) === String("true")) { + setAdd_One_Specific_field_Data_api("true"); + setAdd_One_Specific_field_Data_result(res.data.message); + + + disable_Partner_personalFields(); + setpersonal_field_data_edit_mode("0"); + setpersonal_field_data_changed("0"); + Getall_Partner_Personalised_Fields_No_filter(); + clear_one_detail_fields(); + setdisplay_personalised_field(); + setadd_one_personal_field(); + alert(res.data.message); + if (document.getElementById('myRef_head')) { + var divh = document.getElementById('myRef_head').offsetTop; + window.scrollTo({ + top: divh, + behavior: "smooth", + }); + } + + } + else { + setAdd_One_Specific_field_Data_api("false"); + setAdd_One_Specific_field_Data_message(res.data.message); + alert(res.data.message); + } + + }).catch((error) => { + + console.log('UpdateStagiaireData : Not good man :( Add_One_Specific_field_Data = ' + error); + setAdd_One_Specific_field_Data_api("false"); + alert(" Impossible d'ajouter le document"); + + }) + } + + + return (
{
- {String(personal_field_data_edit_mode) !== "1" &&
Entité métier
- -
} +
+ Entité métier
+ + +
} {String(personal_field_data_edit_mode) === "1" &&
Entité métier
{
} -
Nom Technique
+
+ + + Nom Technique (commence par my_)
{ setpersonal_field_data_changed("1"); }} /> +
@@ -1305,7 +1456,7 @@ const Config_Champs_Personnalise = (props) => { }} disabled={false} className="disabled_style" - value={p_detail_field_type} + value={p_detail_field_type_label} />
} @@ -1465,6 +1616,197 @@ const Config_Champs_Personnalise = (props) => {
} + {String(display_personalised_field) !== "1" && String(add_one_personal_field) === "1" &&
+

Ajout d'un nouveau champ spécifique

+ +
+ +
Entité métier
+ { + setp_one_detail_related_collection(e.target.value); + setpersonal_field_data_changed("1"); + }} + > + {Get_Obj_Metier_Eligible_Cham_Spe_result && + Get_Obj_Metier_Eligible_Cham_Spe_result.map((mycollection) => ( + + {JSON.parse(mycollection).nom}   + + + ))} + + +
+ + +
+ + + Nom Technique (commence par my_)
+ { + setp_one_detail_field_name(e.target.value); + setpersonal_field_data_changed("1"); + }} + /> +
+
+ + +
Label
+ { + setp_one_detail_field_label(e.target.value); + setpersonal_field_data_changed("1"); + }} + /> +
+ + +
Type (numérique / Alphanumérique)
+ { + setp_one_detail_field_type(e.target.value); + setpersonal_field_data_changed("1"); + }} + > + numérique    + Alphanumérique   + + +
+ + +
Obligatoire
+ { + setp_one_detail_is_mandatory(e.target.value); + setpersonal_field_data_changed("1"); + }} + > + Oui    + Non   + + +
+ + + +
Affichable
+ { + setp_one_detail_is_displayed(e.target.value); + setpersonal_field_data_changed("1"); + }} + > + Oui    + Non   + +
+ + + + +
+   +
+ + +
+ +
+ + + +
+ +
+ +
+
+ + +
+   +
+
+
} +