28/10/2023 - 16h
parent
05dc0b6569
commit
d794377bdc
|
@ -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 (
|
||||
<div className="addclassmanual">
|
||||
{isLoading && <div className="loader-container">
|
||||
|
@ -1393,7 +1577,7 @@ const AddClassManual = (props) => {
|
|||
>
|
||||
{support_training_list.map((option) => (
|
||||
<MenuItem key={option.value} value={option.value} style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%", }}>
|
||||
{option.label}
|
||||
{option.label}
|
||||
</MenuItem>
|
||||
))}
|
||||
</TextField>
|
||||
|
@ -1437,7 +1621,7 @@ const AddClassManual = (props) => {
|
|||
value={mytrainingmetier}
|
||||
>
|
||||
{Get_List_Metiers_result && Get_List_Metiers_result.map((option) => (
|
||||
<MenuItem key={option} value={option} style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%", }}>
|
||||
<MenuItem key={option} value={option} style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%", }}>
|
||||
{option} <br />
|
||||
</MenuItem>
|
||||
))}
|
||||
|
@ -1566,6 +1750,39 @@ const AddClassManual = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
{/* -- debut champs specifiques **/}
|
||||
<div className="div_row" style={{ "border": 'none' }}>
|
||||
<hr />
|
||||
</div>
|
||||
<div className="div_row" style={{ "padding": "5px", "border": 'none' }}> Vos champs spécifiques<br />
|
||||
|
||||
{rows_champs_specifics &&
|
||||
rows_champs_specifics.map((champ_spec) => (
|
||||
|
||||
<div className="training_caract">
|
||||
<TextField
|
||||
name={JSON.parse(champ_spec).field_name}
|
||||
id={JSON.parse(champ_spec).field_name}
|
||||
label={JSON.parse(champ_spec).field_label}
|
||||
type="text"
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
onChange={(e) => {
|
||||
change_champs_spec_handle(e.target.value);
|
||||
//setEmployee_data_changed("1");
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
|
||||
<br />
|
||||
|
||||
</div>
|
||||
{/* -- end champs specifiques **/}
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "100%" }}>
|
||||
{String(datamodification) === String("1") && <div className="parter_div_filtrer_row">
|
||||
|
|
|
@ -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) => {
|
|||
|
||||
</div>}
|
||||
|
||||
|
||||
<div className="div_row" ref={myRef_detail} id="myRef_detail"> </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>
|
||||
|
||||
|
|
|
@ -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 (
|
||||
<div className="displaypartnersession">
|
||||
|
||||
|
@ -5435,13 +5666,13 @@ const DisplayPartnerSession = (props) => {
|
|||
<a href='/sample/template_import_session_formation.csv' download>Télécharger un fichier modèle</a>
|
||||
</div>
|
||||
</div>
|
||||
<div className="div_row"> </div>
|
||||
<div className="div_row">
|
||||
<div className="div_row"> </div>
|
||||
{selectionModel && selectionModel.length === 1 && <div className="div_row">
|
||||
<Button variant="outlined" ref={myRef} onClick={submenu_detail_session} className="detail_class_submenu" id='detail_session' name='detail_session'>Détail Session</Button>
|
||||
<Button variant="outlined" onClick={submenu_preinscrit} className="detail_class_submenu" id='preinscrit' name='preinscrit'>Preinscription ({String(nb_stagiaire_Preinscrit)}) </Button>
|
||||
<Button variant="outlined" onClick={submenu_inscrit} className="detail_class_submenu" id='inscrit' name='inscrit'>Inscription ({String(nb_stagiaire_Inscrit)}) </Button>
|
||||
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
||||
<div>
|
||||
|
@ -6027,6 +6258,50 @@ const DisplayPartnerSession = (props) => {
|
|||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* -- debut champs specifiques **/}
|
||||
|
||||
<div className="div_row">
|
||||
<hr />
|
||||
</div>
|
||||
<div className="div_row" style={{ "padding": "5px" }}> Vos champs spécifiques<br />
|
||||
|
||||
{rows_champs_specifics &&
|
||||
rows_champs_specifics.map((champ_spec) => (
|
||||
|
||||
<div className="session_caract"> {JSON.parse(champ_spec).field_label} <br />
|
||||
<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name={JSON.parse(champ_spec).field_name}
|
||||
id={JSON.parse(champ_spec).field_name}
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
|
||||
|
||||
className="disabled_style"
|
||||
onChange={(e) => {
|
||||
change_champs_spec_handle(e.target.value);
|
||||
// setEmployee_data_changed("1");
|
||||
}}
|
||||
//onChange={change_champs_spec_handle}
|
||||
|
||||
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
|
||||
</div>
|
||||
{/* -- end champs specifiques **/}
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -6500,6 +6775,51 @@ const DisplayPartnerSession = (props) => {
|
|||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* -- debut champs specifiques **/}
|
||||
<div className="div_row">
|
||||
<hr />
|
||||
</div>
|
||||
<div className="div_row" style={{ "padding": "5px" }}> Vos champs spécifiques<br />
|
||||
|
||||
{rows_champs_specifics &&
|
||||
rows_champs_specifics.map((champ_spec) => (
|
||||
|
||||
<div className="session_caract"> {JSON.parse(champ_spec).field_label} <br />
|
||||
<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name={JSON.parse(champ_spec).field_name}
|
||||
id={JSON.parse(champ_spec).field_name}
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
|
||||
|
||||
className="disabled_style"
|
||||
onChange={(e) => {
|
||||
change_champs_spec_handle(e.target.value);
|
||||
// setEmployee_data_changed("1");
|
||||
}}
|
||||
//onChange={change_champs_spec_handle}
|
||||
|
||||
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
<div className="div_row">
|
||||
|
||||
</div>
|
||||
|
||||
{/* -- end champs specifiques **/}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -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 (
|
||||
<div className="displaypartnerstagiaire">
|
||||
{isLoading && <div className="loader-container">
|
||||
|
@ -4408,9 +4639,6 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div className="session_caract"> Statut Inscription *<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
@ -4454,8 +4682,6 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
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) => {
|
|||
</TextField>
|
||||
</div>
|
||||
|
||||
{/* -- debut champs specifiques **/}
|
||||
<div className="div_row">
|
||||
<hr />
|
||||
</div>
|
||||
<div className="div_row" style={{ "padding": "5px" }}> Vos champs spécifiques<br />
|
||||
|
||||
{rows_champs_specifics &&
|
||||
rows_champs_specifics.map((champ_spec) => (
|
||||
|
||||
<div className="session_caract"> {JSON.parse(champ_spec).field_label} <br />
|
||||
<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name={JSON.parse(champ_spec).field_name}
|
||||
id={JSON.parse(champ_spec).field_name}
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
|
||||
|
||||
className="disabled_style"
|
||||
onChange={(e) => {
|
||||
change_champs_spec_handle(e.target.value);
|
||||
//setEmployee_data_changed("1");
|
||||
}}
|
||||
//onChange={change_champs_spec_handle}
|
||||
|
||||
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
|
||||
<br />
|
||||
|
||||
</div>
|
||||
{/* -- end champs specifiques **/}
|
||||
|
||||
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
|
||||
</div>
|
||||
|
@ -4977,8 +5243,49 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
setparticipant_data_changed("1");
|
||||
}}
|
||||
/>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
{/* -- debut champs specifiques **/}
|
||||
<div className="div_row" style={{ "border": 'none' }}>
|
||||
<hr />
|
||||
</div>
|
||||
<div className="div_row" style={{ "padding": "5px", "border": 'none' }}> Vos champs spécifiques<br />
|
||||
|
||||
{rows_champs_specifics &&
|
||||
rows_champs_specifics.map((champ_spec) => (
|
||||
|
||||
<div className="session_caract"> {JSON.parse(champ_spec).field_label} <br />
|
||||
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name={JSON.parse(champ_spec).field_name}
|
||||
id={JSON.parse(champ_spec).field_name}
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
|
||||
|
||||
className="disabled_style"
|
||||
onChange={(e) => {
|
||||
change_champs_spec_handle(e.target.value);
|
||||
setparticipant_data_changed("1");
|
||||
}}
|
||||
//onChange={change_champs_spec_handle}
|
||||
|
||||
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
|
||||
<br />
|
||||
|
||||
</div>
|
||||
{/* -- end champs specifiques **/}
|
||||
|
||||
<div className="div_row">
|
||||
{String(participant_data_changed) === "1" && String(participant_data_edit_mode) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
||||
/!\ Pensez à enregistrer les modifications
|
||||
|
|
|
@ -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) => {
|
|||
</TextField>
|
||||
</div>}
|
||||
|
||||
{/* -- debut champs specifiques **/}
|
||||
<div className="div_row">
|
||||
<hr />
|
||||
</div>
|
||||
|
@ -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) => {
|
|||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
{/* -- end champs specifiques **/}
|
||||
|
||||
<div className="div_row">
|
||||
<hr />
|
||||
|
@ -5394,7 +5405,7 @@ const Employes = (props) => {
|
|||
</div>
|
||||
|
||||
|
||||
|
||||
{/* -- debut champs specifiques **/}
|
||||
|
||||
<div className="div_row">
|
||||
<hr />
|
||||
|
@ -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) => {
|
|||
<div className="div_row" style={{ "border": "None" }}>
|
||||
|
||||
</div>
|
||||
|
||||
{/* -- end champs specifiques **/}
|
||||
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
||||
|
||||
{<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
|
||||
|
@ -5807,7 +5818,7 @@ const Employes = (props) => {
|
|||
|
||||
</div>
|
||||
{String(Affectation_data_changed) === "1" && String(edite_affectation_form) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
||||
/!\ Pensez à enregistrer les modifications
|
||||
/!\ Pensez à enregistrer les modifications
|
||||
</div>}
|
||||
|
||||
|
||||
|
|
|
@ -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 (
|
||||
<div className='gestionadministrative'>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue