diff --git a/src/components/AddClassManual.js b/src/components/AddClassManual.js
index 321325e..3034a92 100644
--- a/src/components/AddClassManual.js
+++ b/src/components/AddClassManual.js
@@ -321,6 +321,10 @@ const AddClassManual = (props) => {
}
setdatamodification("0");
+
+ Get_Partner_Object_Specific_Fields("myclass");
+
+
window.scrollTo({
top: 0,
behavior: "smooth",
@@ -516,6 +520,41 @@ const AddClassManual = (props) => {
document.getElementsByName("zone_diffusion_v2")[0].value = mylocaltraining.zone_diffusion_str;
}
+ /*
+ * Update 22/10/2023 :
+ Gestion des champs spécifiques. ils commencent tous par 'my_'
+ */
+
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+
+ if (mylocaltraining.hasOwnProperty(field_name)) {
+ var local_valeur = mylocaltraining[String(field_name)]
+
+ if (document.getElementById(String(field_name)))
+ document.getElementById(String(field_name)).value = local_valeur;
+
+ var new_val = { 'field_name': field_name, 'field_value': local_valeur }
+ var johnIndex = findIndexByProperty(spec_field_updated_values, 'field_name', field_name);
+
+ if (johnIndex > -1) {
+ spec_field_updated_values[johnIndex] = new_val;
+
+ } else {
+ spec_field_updated_values.push(new_val);
+ }
+
+ } else {
+
+ }
+ }
+
+ setspec_field_updated_values_hooks(spec_field_updated_values);
+ /*
+ * end Update 22/10/2023 :
+ */
+
}
}
else {
@@ -602,6 +641,7 @@ const AddClassManual = (props) => {
}
+
var objectif = "";
if (editorRef_objectif.current) {
objectif = editorRef_objectif.current.getContent();
@@ -671,8 +711,8 @@ const AddClassManual = (props) => {
//console.log(" ### alanlyse du mot "+String(words[i]))
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");
+ 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");
return;
}
@@ -749,8 +789,21 @@ const AddClassManual = (props) => {
formData.append('img_banner_detail_class', banniereImg);
+ /*
+ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
+ */
+ for (let i = 0; i < spec_field_updated_values_hooks.length; i++) {
+ if( String(spec_field_updated_values_hooks[i].field_name) === "float"){
- //console.log(" domaine = "+domaine);
+ }
+ else if ( String(spec_field_updated_values_hooks[i].field_name) === "string"){
+
+ }
+
+ formData.append(String(spec_field_updated_values_hooks[i].field_name), String(spec_field_updated_values_hooks[i].field_value));
+ }
+
+ //console.log(" formData = "+formData);
setLoading(true);
fetch(
@@ -1186,6 +1239,137 @@ const AddClassManual = (props) => {
const [isLoading, setLoading] = useState();
+ // Gestion champs specifiques
+
+ /*
+ *** ALGORITHME
+ 1 - Récuperer la liste des champs specifiques de la collection concernée - Array : list_nom_champs_spec
+ 2 - Récupérer les caracteristiques de champs champs spécifique : "id, nom, label, type valeur, etc"
+ - avec un champ 'value' à vide. Mettre dans le tableau JSON, 'spec_champs_valeur'
+
+ 3 - Créer une nouvelle table qui permettra de gerer les hook : const [rows_champs_specifics, setrows_champs_specifics] = useState([]);
+ 4 - Afficher en html les elements 'rows_champs_specifics'
+ 5 - Gerer la modification avec la fonction 'change_champs_spec_handle'
+ 6 - On recuperer les valeur lors du click d'enregistrement.
+
+ */
+
+
+ const list_nom_champs_spec = []
+ const [spec_champs_valeur, setspec_champs_valeur] = useState([]);
+
+ //const spec_champs_valeur = ""
+
+ const [Get_Partner_Object_Specific_Fields_api, setGet_Partner_Object_Specific_Fields_api] = useState();
+ const [Get_Partner_Object_Specific_Fields_message, setGet_Partner_Object_Specific_Fields_message] = useState();
+ const [Get_Partner_Object_Specific_Fields_result, setGet_Partner_Object_Specific_Fields_result] = useState();
+ function Get_Partner_Object_Specific_Fields(local_collection_obj_metier) {
+
+ var form = new FormData();
+ const stored_cookie = getCookie('tokenmysypart');
+ form.append("token", stored_cookie);
+ form.append("object_name", local_collection_obj_metier);
+
+ var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_Object_Specific_Valide_Displayed_Fields/";
+
+ axios.post(myurl, form).then(res => {
+
+ if (String(res.data.status) === String("true")) {
+ //console.log(" In Get_Partner_Object_Specific_Fields res.data.status = " + res.data.status);
+ //console.log(" In Get_Partner_Object_Specific_Fields res.data.message r_class = " + res.data.message);
+
+ setGet_Partner_Object_Specific_Fields_api("true");
+ setGet_Partner_Object_Specific_Fields_result(res.data.message);
+
+
+ setrows_champs_specifics(res.data.message);
+
+
+ }
+ else {
+ setGet_Partner_Object_Specific_Fields_api("false");
+ setGet_Partner_Object_Specific_Fields_message(res.data.message);
+ alert(res.data.message)
+ }
+
+ }).catch((error) => {
+ 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");
+ //setmyApimyApiMessage("")
+ })
+ }
+
+
+ const [rows_champs_specifics, setrows_champs_specifics] = useState([]);
+ const [display_champs_specifics, setdisplay_champs_specifics] = useState("0");
+
+ function afficher_champs_spec() {
+
+ setdisplay_champs_specifics("1");
+ //setrows_champs_specifics(spec_champs_valeur);
+
+ }
+
+ function findIndexByProperty(data, key, value) {
+ for (var i = 0; i < data.length; i++) {
+
+ if (data[i][key] == value) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+
+ function findValueByProperty(data, key, value) {
+ for (var i = 0; i < data.length; i++) {
+ if (data[i][key] == value) {
+
+ var tmp_val = JSON.parse(data[i]);
+
+ return tmp_val.field_value
+
+ }
+ }
+ return "";
+ }
+
+
+ const spec_field_updated_values = []
+ const [spec_field_updated_values_hooks, setspec_field_updated_values_hooks] = useState([]);
+
+
+ function change_champs_spec_handle() {
+
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+
+ if (document.getElementsByName(String(field_name))[0]) {
+
+ var field_value = document.getElementsByName(String(field_name))[0].value;
+ var new_val = { 'field_name': field_name, 'field_value': field_value }
+
+ var johnIndex = findIndexByProperty(spec_field_updated_values, 'field_name', field_name);
+ if (johnIndex > -1) {
+ spec_field_updated_values[johnIndex] = new_val;
+
+ } else {
+ spec_field_updated_values.push(new_val);
+ }
+ }
+
+ }
+
+ //setrows_champs_specifics(spec_champs_valeur);
+
+ //console.log(" OUTT spec_field_updated_values = ", spec_field_updated_values);
+ setspec_field_updated_values_hooks(spec_field_updated_values)
+ }
+ // -- end champs specifiques
+
+
return (
{isLoading &&
@@ -1393,7 +1577,7 @@ const AddClassManual = (props) => {
>
{support_training_list.map((option) => (
))}
@@ -1437,7 +1621,7 @@ const AddClassManual = (props) => {
value={mytrainingmetier}
>
{Get_List_Metiers_result && Get_List_Metiers_result.map((option) => (
-
+ {/* -- debut champs specifiques **/}
+
+
+
+
Vos champs spécifiques
+
+ {rows_champs_specifics &&
+ rows_champs_specifics.map((champ_spec) => (
+
+
+ {
+ change_champs_spec_handle(e.target.value);
+ //setEmployee_data_changed("1");
+ }}
+ />
+
+ ))}
+
+
+
+
+ {/* -- end champs specifiques **/}
+
{String(datamodification) === String("1") &&
diff --git a/src/components/Config_Champs_Personnalise.js b/src/components/Config_Champs_Personnalise.js
index e5f0873..6ca2ac3 100644
--- a/src/components/Config_Champs_Personnalise.js
+++ b/src/components/Config_Champs_Personnalise.js
@@ -204,9 +204,9 @@ const Config_Champs_Personnalise = (props) => {
//console.log(" ### line.ref_interne = ", line.ref_interne);
Get_Given_Specific_Fields(document_id);
- if (document.getElementById('myRef')) {
+ if (document.getElementById('myRef_detail')) {
// myRef.current.scrollIntoView({ behavior: "smooth" });
- var divh = document.getElementById('myRef').offsetTop;
+ var divh = document.getElementById('myRef_detail').offsetTop;
window.scrollTo({
top: divh,
behavior: "smooth",
@@ -542,6 +542,7 @@ const Config_Champs_Personnalise = (props) => {
}
+ const myRef_detail = useRef(null);
useEffect(() => {
Get_Obj_Metier_Eligible_Cham_Spe();
@@ -549,13 +550,13 @@ const Config_Champs_Personnalise = (props) => {
Getall_Partner_Personalised_Fields_No_filter();
// myRef_head.current.scrollIntoView({ behavior: "smooth" });
- if (document.getElementById('myRef_head')) {
- var divh = document.getElementById('myRef_head').offsetTop;
- window.scrollTo({
- top: divh,
- behavior: "smooth",
- });
- }
+
+
+ window.scrollTo({
+ top: 0,
+ behavior: "smooth",
+ });
+
}, [])
@@ -1616,6 +1617,8 @@ const Config_Champs_Personnalise = (props) => {
}
+
+
{String(display_personalised_field) !== "1" && String(add_one_personal_field) === "1" &&
Ajout d'un nouveau champ spécifique
diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js
index 243a9d3..fbca488 100644
--- a/src/components/DisplayPartnerSession.js
+++ b/src/components/DisplayPartnerSession.js
@@ -860,6 +860,8 @@ const DisplayPartnerSession = (props) => {
setdatagrid_columns_size_model2(50);
}
+ Get_Partner_Object_Specific_Fields("session_formation");
+
window.scrollTo({
top: 0,
behavior: "smooth",
@@ -1442,7 +1444,7 @@ const DisplayPartnerSession = (props) => {
setOne_Create_Participant_api("true");
setOne_Create_Participant_result(res.data.message);
-
+
setaddOneParticipant("0");
//setreduction_session("1");
GetListePreinscrit(selected_session_id, selected_internal_url);
@@ -2071,6 +2073,18 @@ const DisplayPartnerSession = (props) => {
document.getElementsByName("sessiondatefininscription")[0].disabled = true;
document.getElementsByName("sessiondatefininscription")[0].style.backgroundColor = "#ECEFF1";
+
+ // Pour les champs spécifiques
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+ if (document.getElementsByName(String(field_name))[0]) {
+ document.getElementsByName(String(field_name))[0].disabled = true;
+ document.getElementsByName(String(field_name))[0].style.backgroundColor = "#ECEFF1";
+ }
+ }
+
+
setfields1desabled(true);
}
@@ -2138,6 +2152,16 @@ const DisplayPartnerSession = (props) => {
document.getElementsByName("sessiondatefininscription")[0].disabled = false;
document.getElementsByName("sessiondatefininscription")[0].style.backgroundColor = "#FFFFFF ";
+ // Pour les champs spécifiques
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+ if (document.getElementsByName(String(field_name))[0]) {
+ document.getElementsByName(String(field_name))[0].disabled = false;
+ document.getElementsByName(String(field_name))[0].style.backgroundColor = "#FFFFFF";
+ }
+ }
+
setfields1desabled(false);
}
@@ -2470,6 +2494,20 @@ const DisplayPartnerSession = (props) => {
}
form.append("contenu_ftion", contenu_ftion);
+ /*
+ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
+ */
+ for (let i = 0; i < spec_field_updated_values_hooks.length; i++) {
+ if( String(spec_field_updated_values_hooks[i].field_name) === "float"){
+
+ }
+ else if ( String(spec_field_updated_values_hooks[i].field_name) === "string"){
+
+ }
+
+ form.append(String(spec_field_updated_values_hooks[i].field_name), String(spec_field_updated_values_hooks[i].field_value));
+ }
+
//console.log(" ### CreateSessionFormation form = ", form);
@@ -2655,6 +2693,21 @@ const DisplayPartnerSession = (props) => {
}
form.append("contenu_ftion", contenu_ftion);
+ /*
+ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
+ */
+ for (let i = 0; i < spec_field_updated_values_hooks.length; i++) {
+
+ if( String(spec_field_updated_values_hooks[i].field_name) === "float"){
+
+ }
+ else if ( String(spec_field_updated_values_hooks[i].field_name) === "string"){
+
+ }
+
+ form.append(String(spec_field_updated_values_hooks[i].field_name), String(spec_field_updated_values_hooks[i].field_value));
+ }
+
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation/";
@@ -2926,6 +2979,42 @@ const DisplayPartnerSession = (props) => {
else if (String(mylocaltraining.session_status) === "false")
setsessionStatus(false);
+ /*
+ * Update 22/10/2023 :
+ Gestion des champs spécifiques. ils commencent tous par 'my_'
+ */
+
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+
+ if (mylocaltraining.hasOwnProperty(field_name)) {
+ var local_valeur = mylocaltraining[String(field_name)]
+
+ if (document.getElementById(String(field_name)))
+ document.getElementById(String(field_name)).value = local_valeur;
+
+ var new_val = { 'field_name': field_name, 'field_value': local_valeur }
+ var johnIndex = findIndexByProperty(spec_field_updated_values, 'field_name', field_name);
+
+ if (johnIndex > -1) {
+ spec_field_updated_values[johnIndex] = new_val;
+
+ } else {
+ spec_field_updated_values.push(new_val);
+ }
+
+ } else {
+
+ }
+ }
+
+ setspec_field_updated_values_hooks(spec_field_updated_values);
+ /*
+ * end Update 22/10/2023 :
+ */
+
+
desableSessionFields();
@@ -4341,6 +4430,17 @@ const DisplayPartnerSession = (props) => {
document.getElementsByName("certif_date")[0].style.backgroundColor = "#ECEFF1";
}
+
+ // Pour les champs spécifiques
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+ if (document.getElementsByName(String(field_name))[0]) {
+ document.getElementsByName(String(field_name))[0].disabled = true;
+ document.getElementsByName(String(field_name))[0].style.backgroundColor = "#ECEFF1";
+ }
+ }
+
}
function EnableAttendeeDetailFields() {
@@ -4925,6 +5025,137 @@ const DisplayPartnerSession = (props) => {
// -- end action en mass
+ // Gestion champs specifiques
+
+ /*
+ *** ALGORITHME
+ 1 - Récuperer la liste des champs specifiques de la collection concernée - Array : list_nom_champs_spec
+ 2 - Récupérer les caracteristiques de champs champs spécifique : "id, nom, label, type valeur, etc"
+ - avec un champ 'value' à vide. Mettre dans le tableau JSON, 'spec_champs_valeur'
+
+ 3 - Créer une nouvelle table qui permettra de gerer les hook : const [rows_champs_specifics, setrows_champs_specifics] = useState([]);
+ 4 - Afficher en html les elements 'rows_champs_specifics'
+ 5 - Gerer la modification avec la fonction 'change_champs_spec_handle'
+ 6 - On recuperer les valeur lors du click d'enregistrement.
+
+ */
+
+
+ const list_nom_champs_spec = []
+ const [spec_champs_valeur, setspec_champs_valeur] = useState([]);
+
+ //const spec_champs_valeur = ""
+
+ const [Get_Partner_Object_Specific_Fields_api, setGet_Partner_Object_Specific_Fields_api] = useState();
+ const [Get_Partner_Object_Specific_Fields_message, setGet_Partner_Object_Specific_Fields_message] = useState();
+ const [Get_Partner_Object_Specific_Fields_result, setGet_Partner_Object_Specific_Fields_result] = useState();
+ function Get_Partner_Object_Specific_Fields(local_collection_obj_metier) {
+
+ var form = new FormData();
+ const stored_cookie = getCookie('tokenmysypart');
+ form.append("token", stored_cookie);
+ form.append("object_name", local_collection_obj_metier);
+
+ var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_Object_Specific_Valide_Displayed_Fields/";
+
+ axios.post(myurl, form).then(res => {
+
+ if (String(res.data.status) === String("true")) {
+ //console.log(" In Get_Partner_Object_Specific_Fields res.data.status = " + res.data.status);
+ //console.log(" In Get_Partner_Object_Specific_Fields res.data.message r_class = " + res.data.message);
+
+ setGet_Partner_Object_Specific_Fields_api("true");
+ setGet_Partner_Object_Specific_Fields_result(res.data.message);
+
+
+ setrows_champs_specifics(res.data.message);
+
+
+ }
+ else {
+ setGet_Partner_Object_Specific_Fields_api("false");
+ setGet_Partner_Object_Specific_Fields_message(res.data.message);
+ alert(res.data.message)
+ }
+
+ }).catch((error) => {
+ 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");
+ //setmyApimyApiMessage("")
+ })
+ }
+
+
+ const [rows_champs_specifics, setrows_champs_specifics] = useState([]);
+ const [display_champs_specifics, setdisplay_champs_specifics] = useState("0");
+
+ function afficher_champs_spec() {
+
+ setdisplay_champs_specifics("1");
+ //setrows_champs_specifics(spec_champs_valeur);
+
+ }
+
+ function findIndexByProperty(data, key, value) {
+ for (var i = 0; i < data.length; i++) {
+
+ if (data[i][key] == value) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+
+ function findValueByProperty(data, key, value) {
+ for (var i = 0; i < data.length; i++) {
+ if (data[i][key] == value) {
+
+ var tmp_val = JSON.parse(data[i]);
+
+ return tmp_val.field_value
+
+ }
+ }
+ return "";
+ }
+
+
+ const spec_field_updated_values = []
+ const [spec_field_updated_values_hooks, setspec_field_updated_values_hooks] = useState([]);
+
+
+ function change_champs_spec_handle() {
+
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+
+ if (document.getElementsByName(String(field_name))[0]) {
+
+ var field_value = document.getElementsByName(String(field_name))[0].value;
+ var new_val = { 'field_name': field_name, 'field_value': field_value }
+
+ var johnIndex = findIndexByProperty(spec_field_updated_values, 'field_name', field_name);
+ if (johnIndex > -1) {
+ spec_field_updated_values[johnIndex] = new_val;
+
+ } else {
+ spec_field_updated_values.push(new_val);
+ }
+ }
+
+ }
+
+ //setrows_champs_specifics(spec_champs_valeur);
+
+ //console.log(" OUTT spec_field_updated_values = ", spec_field_updated_values);
+ setspec_field_updated_values_hooks(spec_field_updated_values)
+ }
+ // -- end champs specifiques
+
+
return (
-
-
+
+ {selectionModel && selectionModel.length === 1 &&
-
+
}
@@ -6027,6 +6258,50 @@ const DisplayPartnerSession = (props) => {
}}
/>
+
+ {/* -- debut champs specifiques **/}
+
+
+
+
+
Vos champs spécifiques
+
+ {rows_champs_specifics &&
+ rows_champs_specifics.map((champ_spec) => (
+
+
{JSON.parse(champ_spec).field_label}
+
+ {
+ change_champs_spec_handle(e.target.value);
+ // setEmployee_data_changed("1");
+ }}
+ //onChange={change_champs_spec_handle}
+
+
+ />
+
+ ))}
+
+
+
+
+
+
+
+
+ {/* -- end champs specifiques **/}
@@ -6500,6 +6775,51 @@ const DisplayPartnerSession = (props) => {
}}
/>
+
+ {/* -- debut champs specifiques **/}
+
+
+
+ Vos champs spécifiques
+
+ {rows_champs_specifics &&
+ rows_champs_specifics.map((champ_spec) => (
+
+
{JSON.parse(champ_spec).field_label}
+
+ {
+ change_champs_spec_handle(e.target.value);
+ // setEmployee_data_changed("1");
+ }}
+ //onChange={change_champs_spec_handle}
+
+
+ />
+
+ ))}
+
+
+
+
+
+
+
+
+
+ {/* -- end champs specifiques **/}
+
diff --git a/src/components/DisplayPartnerStagiaires.js b/src/components/DisplayPartnerStagiaires.js
index 8ee3b0f..b98bff9 100644
--- a/src/components/DisplayPartnerStagiaires.js
+++ b/src/components/DisplayPartnerStagiaires.js
@@ -1465,6 +1465,16 @@ const DisplayPartnerStagiaires = (props) => {
document.getElementsByName("certif_date")[0].disabled = true;
document.getElementsByName("certif_date")[0].style.backgroundColor = "#ECEFF1";
}
+
+ // Pour les champs spécifiques
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+ if (document.getElementsByName(String(field_name))[0]) {
+ document.getElementsByName(String(field_name))[0].disabled = true;
+ document.getElementsByName(String(field_name))[0].style.backgroundColor = "#ECEFF1";
+ }
+ }
}
function EnableAttendeeDetailFields() {
@@ -1544,6 +1554,18 @@ const DisplayPartnerStagiaires = (props) => {
document.getElementsByName("certif_date")[0].disabled = false;
document.getElementsByName("certif_date")[0].style.backgroundColor = "#FFFFFF";
+
+ // Pour les champs spécifiques
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+ if (document.getElementsByName(String(field_name))[0]) {
+ document.getElementsByName(String(field_name))[0].disabled = false;
+ document.getElementsByName(String(field_name))[0].style.backgroundColor = "#FFFFFF";
+ }
+ }
+
+
}
@@ -1911,6 +1933,8 @@ const DisplayPartnerStagiaires = (props) => {
setdatagrid_columns_size_model2(10);
}
+ Get_Partner_Object_Specific_Fields("inscription");
+
window.scrollTo({
top: 0,
behavior: "smooth",
@@ -2170,6 +2194,40 @@ const DisplayPartnerStagiaires = (props) => {
setattendee_lms_pwd("xxxxxx");
}
+ /*
+ * Update 22/10/2023 :
+ Gestion des champs spécifiques. ils commencent tous par 'my_'
+ */
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+
+ if (mylocalattendee.hasOwnProperty(field_name)) {
+ var local_valeur = mylocalattendee[String(field_name)]
+
+ if (document.getElementById(String(field_name)))
+ document.getElementById(String(field_name)).value = local_valeur;
+
+ var new_val = { 'field_name': field_name, 'field_value': local_valeur }
+ var johnIndex = findIndexByProperty(spec_field_updated_values, 'field_name', field_name);
+
+ if (johnIndex > -1) {
+ spec_field_updated_values[johnIndex] = new_val;
+
+ } else {
+ spec_field_updated_values.push(new_val);
+ }
+
+ } else {
+
+ }
+ }
+
+ setspec_field_updated_values_hooks(spec_field_updated_values);
+ /*
+ * end Update 22/10/2023 :
+ */
+
var myelement;
@@ -2382,6 +2440,22 @@ const DisplayPartnerStagiaires = (props) => {
form.append("modefinancement", "");
+
+ /*
+ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
+ */
+ for (let i = 0; i < spec_field_updated_values_hooks.length; i++) {
+ if( String(spec_field_updated_values_hooks[i].field_name) === "float"){
+
+ }
+ else if ( String(spec_field_updated_values_hooks[i].field_name) === "string"){
+
+ }
+
+ form.append(String(spec_field_updated_values_hooks[i].field_name), String(spec_field_updated_values_hooks[i].field_value));
+ }
+
+
//console.log(" #### form = ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/AddStagiairetoClass/";
@@ -2479,6 +2553,22 @@ const DisplayPartnerStagiaires = (props) => {
else
form.append("client_rattachement_id", "");
+ /*
+ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
+*/
+ for (let i = 0; i < spec_field_updated_values_hooks.length; i++) {
+
+ if( String(spec_field_updated_values_hooks[i].field_name) === "float"){
+
+ }
+ else if ( String(spec_field_updated_values_hooks[i].field_name) === "string"){
+
+ }
+ form.append(String(spec_field_updated_values_hooks[i].field_name), String(spec_field_updated_values_hooks[i].field_value));
+
+
+ }
+
//console.log(" form == ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateStagiairetoClass/";
@@ -3081,6 +3171,16 @@ const DisplayPartnerStagiaires = (props) => {
document.getElementsByName("sessiondatefininscription")[0].style.backgroundColor = "#ECEFF1";
}
+ // Pour les champs spécifiques
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+ if (document.getElementsByName(String(field_name))[0]) {
+ document.getElementsByName(String(field_name))[0].disabled = true;
+ document.getElementsByName(String(field_name))[0].style.backgroundColor = "#ECEFF1";
+ }
+ }
+
setfields1desabled(true);
}
@@ -3410,7 +3510,7 @@ const DisplayPartnerStagiaires = (props) => {
//console.log(" ## result['status'] = ", result['status'])
if (String(result['status']) === String("true")) {
- console.log('Message :', result['message']);
+ //console.log('Message :', result['message']);
setGet_List_Of_All_PJ_result(result['message']);
setGet_List_Of_All_PJ_api("true");
@@ -3547,6 +3647,137 @@ const DisplayPartnerStagiaires = (props) => {
// -- end action en mass
+ // Gestion champs specifiques
+
+ /*
+ *** ALGORITHME
+ 1 - Récuperer la liste des champs specifiques de la collection concernée - Array : list_nom_champs_spec
+ 2 - Récupérer les caracteristiques de champs champs spécifique : "id, nom, label, type valeur, etc"
+ - avec un champ 'value' à vide. Mettre dans le tableau JSON, 'spec_champs_valeur'
+
+ 3 - Créer une nouvelle table qui permettra de gerer les hook : const [rows_champs_specifics, setrows_champs_specifics] = useState([]);
+ 4 - Afficher en html les elements 'rows_champs_specifics'
+ 5 - Gerer la modification avec la fonction 'change_champs_spec_handle'
+ 6 - On recuperer les valeur lors du click d'enregistrement.
+
+ */
+
+
+ const list_nom_champs_spec = []
+ const [spec_champs_valeur, setspec_champs_valeur] = useState([]);
+
+ //const spec_champs_valeur = ""
+
+ const [Get_Partner_Object_Specific_Fields_api, setGet_Partner_Object_Specific_Fields_api] = useState();
+ const [Get_Partner_Object_Specific_Fields_message, setGet_Partner_Object_Specific_Fields_message] = useState();
+ const [Get_Partner_Object_Specific_Fields_result, setGet_Partner_Object_Specific_Fields_result] = useState();
+ function Get_Partner_Object_Specific_Fields(local_collection_obj_metier) {
+
+ var form = new FormData();
+ const stored_cookie = getCookie('tokenmysypart');
+ form.append("token", stored_cookie);
+ form.append("object_name", local_collection_obj_metier);
+
+ var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_Object_Specific_Valide_Displayed_Fields/";
+
+ axios.post(myurl, form).then(res => {
+
+ if (String(res.data.status) === String("true")) {
+ //console.log(" In Get_Partner_Object_Specific_Fields res.data.status = " + res.data.status);
+ //console.log(" In Get_Partner_Object_Specific_Fields res.data.message r_class = " + res.data.message);
+
+ setGet_Partner_Object_Specific_Fields_api("true");
+ setGet_Partner_Object_Specific_Fields_result(res.data.message);
+
+
+ setrows_champs_specifics(res.data.message);
+
+
+ }
+ else {
+ setGet_Partner_Object_Specific_Fields_api("false");
+ setGet_Partner_Object_Specific_Fields_message(res.data.message);
+ alert(res.data.message)
+ }
+
+ }).catch((error) => {
+ 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");
+ //setmyApimyApiMessage("")
+ })
+ }
+
+
+ const [rows_champs_specifics, setrows_champs_specifics] = useState([]);
+ const [display_champs_specifics, setdisplay_champs_specifics] = useState("0");
+
+ function afficher_champs_spec() {
+
+ setdisplay_champs_specifics("1");
+ //setrows_champs_specifics(spec_champs_valeur);
+
+ }
+
+ function findIndexByProperty(data, key, value) {
+ for (var i = 0; i < data.length; i++) {
+
+ if (data[i][key] == value) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+
+ function findValueByProperty(data, key, value) {
+ for (var i = 0; i < data.length; i++) {
+ if (data[i][key] == value) {
+
+ var tmp_val = JSON.parse(data[i]);
+
+ return tmp_val.field_value
+
+ }
+ }
+ return "";
+ }
+
+
+ const spec_field_updated_values = []
+ const [spec_field_updated_values_hooks, setspec_field_updated_values_hooks] = useState([]);
+
+
+ function change_champs_spec_handle() {
+
+ for (let i = 0; i < rows_champs_specifics.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics[i]).field_name;
+
+ if (document.getElementsByName(String(field_name))[0]) {
+
+ var field_value = document.getElementsByName(String(field_name))[0].value;
+ var new_val = { 'field_name': field_name, 'field_value': field_value }
+
+ var johnIndex = findIndexByProperty(spec_field_updated_values, 'field_name', field_name);
+ if (johnIndex > -1) {
+ spec_field_updated_values[johnIndex] = new_val;
+
+ } else {
+ spec_field_updated_values.push(new_val);
+ }
+ }
+
+ }
+
+ //setrows_champs_specifics(spec_champs_valeur);
+
+ //console.log(" OUTT spec_field_updated_values = ", spec_field_updated_values);
+ setspec_field_updated_values_hooks(spec_field_updated_values)
+ }
+ // -- end champs specifiques
+
+
return (
{isLoading &&
@@ -4408,9 +4639,6 @@ const DisplayPartnerStagiaires = (props) => {
/>
-
-
-
Statut Inscription *
{
value={p_one_detail_client_rattachement_id}
onChange={(e) => {
setp_one_detail_client_rattachement_id(e.target.value);
-
- //console.log(" setp_one_detail_client_rattachement_id = ", e.target.value);
}
}
@@ -4471,6 +4697,46 @@ const DisplayPartnerStagiaires = (props) => {
+ {/* -- debut champs specifiques **/}
+
+
+
+
Vos champs spécifiques
+
+ {rows_champs_specifics &&
+ rows_champs_specifics.map((champ_spec) => (
+
+
{JSON.parse(champ_spec).field_label}
+
+ {
+ change_champs_spec_handle(e.target.value);
+ //setEmployee_data_changed("1");
+ }}
+ //onChange={change_champs_spec_handle}
+
+
+ />
+
+ ))}
+
+
+
+
+ {/* -- end champs specifiques **/}
+
+
@@ -4977,8 +5243,49 @@ const DisplayPartnerStagiaires = (props) => {
setparticipant_data_changed("1");
}}
/>
+
+
+ {/* -- debut champs specifiques **/}
+
+
+
+ Vos champs spécifiques
+
+ {rows_champs_specifics &&
+ rows_champs_specifics.map((champ_spec) => (
+
+
{JSON.parse(champ_spec).field_label}
+
+ {
+ change_champs_spec_handle(e.target.value);
+ setparticipant_data_changed("1");
+ }}
+ //onChange={change_champs_spec_handle}
+
+
+ />
+
+ ))}
+
+
+
+
+ {/* -- end champs specifiques **/}
+
{String(participant_data_changed) === "1" && String(participant_data_edit_mode) === "1" &&
/!\ Pensez à enregistrer les modifications
diff --git a/src/components/Employes.js b/src/components/Employes.js
index 6a30e63..b884cc4 100644
--- a/src/components/Employes.js
+++ b/src/components/Employes.js
@@ -1572,6 +1572,13 @@ const Employes = (props) => {
Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
*/
for (let i = 0; i < spec_field_updated_values_hooks.length; i++) {
+ if( String(spec_field_updated_values_hooks[i].field_name) === "float"){
+
+ }
+ else if ( String(spec_field_updated_values_hooks[i].field_name) === "string"){
+
+ }
+
form.append(String(spec_field_updated_values_hooks[i].field_name), String(spec_field_updated_values_hooks[i].field_value));
}
@@ -2126,15 +2133,22 @@ const Employes = (props) => {
form.append("ismanager", "0");
- /*
- Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
- */
+ /*
+ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenaire
+ */
for (let i = 0; i < spec_field_updated_values_hooks.length; i++) {
+ if( String(spec_field_updated_values_hooks[i].field_name) === "float"){
+
+ }
+ else if ( String(spec_field_updated_values_hooks[i].field_name) === "string"){
+
+ }
+
form.append(String(spec_field_updated_values_hooks[i].field_name), String(spec_field_updated_values_hooks[i].field_value));
}
- console.log(" form == ", form);
+ //console.log(" form == ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Ressource_Humaine/";
@@ -3490,10 +3504,6 @@ const Employes = (props) => {
}
-
-
-
-
const [rows_champs_specifics, setrows_champs_specifics] = useState([]);
const [display_champs_specifics, setdisplay_champs_specifics] = useState("0");
@@ -3557,7 +3567,7 @@ const Employes = (props) => {
//setrows_champs_specifics(spec_champs_valeur);
- console.log(" OUTT spec_field_updated_values = ", spec_field_updated_values);
+ //console.log(" OUTT spec_field_updated_values = ", spec_field_updated_values);
setspec_field_updated_values_hooks(spec_field_updated_values)
}
// -- end champs specifiques
@@ -4759,6 +4769,7 @@ const Employes = (props) => {
}
+ {/* -- debut champs specifiques **/}
@@ -4785,7 +4796,7 @@ const Employes = (props) => {
change_champs_spec_handle(e.target.value);
setEmployee_data_changed("1");
}}
- //onChange={change_champs_spec_handle}
+ //onChange={change_champs_spec_handle}
/>
@@ -4795,7 +4806,7 @@ const Employes = (props) => {
-
+ {/* -- end champs specifiques **/}
@@ -5394,7 +5405,7 @@ const Employes = (props) => {
-
+ {/* -- debut champs specifiques **/}
@@ -5422,7 +5433,7 @@ const Employes = (props) => {
change_champs_spec_handle(e.target.value);
setEmployee_data_changed("1");
}}
- //onChange={change_champs_spec_handle}
+ //onChange={change_champs_spec_handle}
/>
@@ -5436,7 +5447,7 @@ const Employes = (props) => {
-
+ {/* -- end champs specifiques **/}
{
@@ -5807,7 +5818,7 @@ const Employes = (props) => {
{String(Affectation_data_changed) === "1" && String(edite_affectation_form) === "1" &&
- /!\ Pensez à enregistrer les modifications
+ /!\ Pensez à enregistrer les modifications
}
diff --git a/src/components/GestionAdministrative.js b/src/components/GestionAdministrative.js
index f16763a..1883416 100644
--- a/src/components/GestionAdministrative.js
+++ b/src/components/GestionAdministrative.js
@@ -5010,6 +5010,239 @@ function GestionAdministrative(props) {
];
+ // Gestion champs specifiques
+
+ /*
+ *** ALGORITHME
+ 1 - Récuperer la liste des champs specifiques de la collection concernée - Array : list_nom_champs_spec
+ 2 - Récupérer les caracteristiques de champs champs spécifique : "id, nom, label, type valeur, etc"
+ - avec un champ 'value' à vide. Mettre dans le tableau JSON, 'spec_champs_valeur'
+
+ 3 - Créer une nouvelle table qui permettra de gerer les hook : const [rows_champs_specifics, setrows_champs_specifics] = useState([]);
+ 4 - Afficher en html les elements 'rows_champs_specifics'
+ 5 - Gerer la modification avec la fonction 'change_champs_spec_handle'
+ 6 - On recuperer les valeur lors du click d'enregistrement.
+
+ */
+
+
+ const list_nom_champs_spec_session = []
+ const [spec_champs_valeur_session, setspec_champs_valeur_session] = useState([]);
+
+ //const spec_champs_valeur = ""
+
+ const [Get_Partner_Object_Specific_Fields_session_api, setGet_Partner_Object_Specific_Fields_session_api] = useState();
+ const [Get_Partner_Object_Specific_Fields_session_message, setGet_Partner_Object_Specific_Fields_session_message] = useState();
+ const [Get_Partner_Object_Specific_Fields_session_result, setGet_Partner_Object_Specific_Fields_session_result] = useState();
+ function Get_Partner_Object_Specific_Fields_session(local_collection_obj_metier) {
+
+ var form = new FormData();
+ const stored_cookie = getCookie('tokenmysypart');
+ form.append("token", stored_cookie);
+ form.append("object_name", local_collection_obj_metier);
+
+ var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_Object_Specific_Valide_Displayed_Fields/";
+
+ axios.post(myurl, form).then(res => {
+
+ if (String(res.data.status) === String("true")) {
+ //console.log(" In Get_Partner_Object_Specific_Fields res.data.status = " + res.data.status);
+ //console.log(" In Get_Partner_Object_Specific_Fields res.data.message r_class = " + res.data.message);
+
+ setGet_Partner_Object_Specific_Fields_session_api("true");
+ setGet_Partner_Object_Specific_Fields_session_result(res.data.message);
+
+
+ setrows_champs_specifics_session(res.data.message);
+
+
+ }
+ else {
+ setGet_Partner_Object_Specific_Fields_session_api("false");
+ setGet_Partner_Object_Specific_Fields_session_message(res.data.message);
+ alert(res.data.message)
+ }
+
+ }).catch((error) => {
+ console.warn('Not good man :( Get_Partner_Object_Specific_Fields = ', error);
+ setGet_Partner_Object_Specific_Fields_session_api("false");
+ alert(" Impossible de recuperer la liste des collection et champs personnalisables");
+ //setmyApimyApiMessage("")
+ })
+ }
+
+
+ const [rows_champs_specifics_session, setrows_champs_specifics_session] = useState([]);
+ const [display_champs_specifics_session, setdisplay_champs_specifics_session] = useState("0");
+
+ function afficher_champs_spec_session() {
+
+ setdisplay_champs_specifics_session("1");
+ //setrows_champs_specifics(spec_champs_valeur);
+
+ }
+
+ function findIndexByProperty(data, key, value) {
+ for (var i = 0; i < data.length; i++) {
+
+ if (data[i][key] == value) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+
+ function findValueByProperty(data, key, value) {
+ for (var i = 0; i < data.length; i++) {
+ if (data[i][key] == value) {
+
+ var tmp_val = JSON.parse(data[i]);
+
+ return tmp_val.field_value
+
+ }
+ }
+ return "";
+ }
+
+
+ const spec_field_updated_values_session = []
+ const [spec_field_updated_values_hooks_session, setspec_field_updated_values_hooks_session] = useState([]);
+
+
+ function change_champs_spec_handle_session() {
+
+ for (let i = 0; i < rows_champs_specifics_session.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics_session[i]).field_name;
+
+ if (document.getElementsByName(String(field_name))[0]) {
+
+ var field_value = document.getElementsByName(String(field_name))[0].value;
+ var new_val = { 'field_name': field_name, 'field_value': field_value }
+
+ var johnIndex = findIndexByProperty(spec_field_updated_values_session, 'field_name', field_name);
+ if (johnIndex > -1) {
+ spec_field_updated_values_session[johnIndex] = new_val;
+
+ } else {
+ spec_field_updated_values_session.push(new_val);
+ }
+ }
+
+ }
+
+ //setrows_champs_specifics(spec_champs_valeur);
+
+ //console.log(" OUTT spec_field_updated_values = ", spec_field_updated_values);
+ setspec_field_updated_values_hooks_session(spec_field_updated_values_session)
+ }
+
+
+ const list_nom_champs_spec_stagiaire = []
+ const [spec_champs_valeur_stagiaire, setspec_champs_valeur_stagiaire] = useState([]);
+
+ //const spec_champs_valeur = ""
+
+ const [Get_Partner_Object_Specific_Fields_stagiaire_api, setGet_Partner_Object_Specific_Fields_stagiaire_api] = useState();
+ const [Get_Partner_Object_Specific_Fields_stagiaire_message, setGet_Partner_Object_Specific_Fields_stagiaire_message] = useState();
+ const [Get_Partner_Object_Specific_Fields_stagiaire_result, setGet_Partner_Object_Specific_Fields_stagiaire_result] = useState();
+ function Get_Partner_Object_Specific_Fields_stagiaire(local_collection_obj_metier) {
+
+ var form = new FormData();
+ const stored_cookie = getCookie('tokenmysypart');
+ form.append("token", stored_cookie);
+ form.append("object_name", local_collection_obj_metier);
+
+ var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_Object_Specific_Valide_Displayed_Fields/";
+
+ axios.post(myurl, form).then(res => {
+
+ if (String(res.data.status) === String("true")) {
+ //console.log(" In Get_Partner_Object_Specific_Fields res.data.status = " + res.data.status);
+ //console.log(" In Get_Partner_Object_Specific_Fields res.data.message r_class = " + res.data.message);
+
+ setGet_Partner_Object_Specific_Fields_stagiaire_api("true");
+ setGet_Partner_Object_Specific_Fields_stagiaire_result(res.data.message);
+
+
+ setrows_champs_specifics_stagiaire(res.data.message);
+
+
+ }
+ else {
+ setGet_Partner_Object_Specific_Fields_stagiaire_api("false");
+ setGet_Partner_Object_Specific_Fields_stagiaire_message(res.data.message);
+ alert(res.data.message)
+ }
+
+ }).catch((error) => {
+ console.warn('Not good man :( Get_Partner_Object_Specific_Fields = ', error);
+ setGet_Partner_Object_Specific_Fields_stagiaire_api("false");
+ alert(" Impossible de recuperer la liste des collection et champs personnalisables");
+ //setmyApimyApiMessage("")
+ })
+ }
+
+
+ const [rows_champs_specifics_stagiaire, setrows_champs_specifics_stagiaire] = useState([]);
+ const [display_champs_specifics_stagiaire, setdisplay_champs_specifics_stagiaire] = useState("0");
+
+ function afficher_champs_spec_stagiaire() {
+
+ setdisplay_champs_specifics_stagiaire("1");
+ //setrows_champs_specifics(spec_champs_valeur);
+
+ }
+
+
+
+
+ const spec_field_updated_values_stagiaire = []
+ const [spec_field_updated_values_hooks_stagiaire, setspec_field_updated_values_hooks_stagiaire] = useState([]);
+
+
+ function change_champs_spec_handle_stagiaire() {
+
+ for (let i = 0; i < rows_champs_specifics_stagiaire.length; i++) {
+
+ var field_name = JSON.parse(rows_champs_specifics_stagiaire[i]).field_name;
+
+ if (document.getElementsByName(String(field_name))[0]) {
+
+ var field_value = document.getElementsByName(String(field_name))[0].value;
+ var new_val = { 'field_name': field_name, 'field_value': field_value }
+
+ var johnIndex = findIndexByProperty(spec_field_updated_values_stagiaire, 'field_name', field_name);
+ if (johnIndex > -1) {
+ spec_field_updated_values_stagiaire[johnIndex] = new_val;
+
+ } else {
+ spec_field_updated_values_stagiaire.push(new_val);
+ }
+ }
+
+ }
+
+ //setrows_champs_specifics(spec_champs_valeur);
+
+ //console.log(" OUTT spec_field_updated_values = ", spec_field_updated_values);
+ setspec_field_updated_values_hooks_stagiaire(spec_field_updated_values_stagiaire)
+ }
+ // -- end champs specifiques
+
+
+
+
+
+
+ // -- end champs specifiques
+
+
+
+
+
return (
diff --git a/src/components/TestUrl_new.js b/src/components/TestUrl_new.js
index 928d146..8db00ae 100644
--- a/src/components/TestUrl_new.js
+++ b/src/components/TestUrl_new.js
@@ -419,7 +419,7 @@ const TestUrl_New = (props) => {
//setrows_champs_specifics(spec_champs_valeur);
- console.log(" OUTT spec_field_updated_values = ", spec_field_updated_values);
+ //console.log(" OUTT spec_field_updated_values = ", spec_field_updated_values);
}
// -- end champs specifiques