22/10/2023 - 18h00
parent
9a58edae93
commit
de91f4b79b
|
@ -555,6 +555,7 @@ const Employes = (props) => {
|
|||
Get_List_RH_Profils();
|
||||
Get_Employee_Related_Target_Collection_Data();
|
||||
|
||||
Get_Partner_Object_Specific_Fields("ressource_humaine");
|
||||
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
|
@ -716,6 +717,7 @@ const Employes = (props) => {
|
|||
const [employee_data_changed, setemployee_data_changed] = useState("");
|
||||
const [employee_data_edit_mode, setemployee_data_edit_mode] = useState("");
|
||||
|
||||
|
||||
const [GetAttendee_api, setGetAttendee_api] = useState();
|
||||
const [GetAttendee_message, setGetAttendee_message] = useState();
|
||||
const [GetAttendee_result, setGetAttendee_result] = useState();
|
||||
|
@ -852,6 +854,41 @@ const Employes = (props) => {
|
|||
setp_detail_resp_hierarchie_prenom("");
|
||||
}
|
||||
|
||||
/*
|
||||
* 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 (mylocal_employe.hasOwnProperty(field_name)) {
|
||||
var local_valeur = mylocal_employe[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 :
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
@ -1328,6 +1365,16 @@ const Employes = (props) => {
|
|||
document.getElementsByName("detail_resp_hierarchie_id")[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 Enable_Employee_DetailFields() {
|
||||
|
@ -1392,7 +1439,15 @@ const Employes = (props) => {
|
|||
document.getElementsByName("detail_resp_hierarchie_id")[0].disabled = false;
|
||||
document.getElementsByName("detail_resp_hierarchie_id")[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";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -1512,7 +1567,15 @@ const Employes = (props) => {
|
|||
|
||||
form.append("_id", selected_id);
|
||||
|
||||
//console.log(" form == ", form);
|
||||
|
||||
/*
|
||||
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++) {
|
||||
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/Update_Ressource_Humaine/";
|
||||
|
||||
|
@ -2888,9 +2951,6 @@ const Employes = (props) => {
|
|||
local_read = true;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (JSON.parse(x).module_name === module_nom && module_acces === "read") {
|
||||
return '{"_id": "' + local_id + '", "module_name": "' + module_nom + '", "valide": "1", "locked": "0", "id": "' + localid + '", "read": ' + new_value + ', "write": ' + local_write + '}';
|
||||
}
|
||||
|
@ -3327,7 +3387,7 @@ const Employes = (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");
|
||||
|
||||
|
@ -3359,6 +3419,142 @@ const Employes = (props) => {
|
|||
|
||||
// -- end gestion pièces jointes
|
||||
|
||||
|
||||
// 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_list_specific_field_partner_by_object/";
|
||||
|
||||
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="employes">
|
||||
<Dialog
|
||||
|
@ -4555,6 +4751,43 @@ const Employes = (props) => {
|
|||
</TextField>
|
||||
</div>}
|
||||
|
||||
<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">
|
||||
<hr />
|
||||
|
|
|
@ -39,6 +39,7 @@ import DialogContentText from '@mui/material/DialogContentText';
|
|||
import DialogTitle from '@mui/material/DialogTitle';
|
||||
import { TransitionProps } from '@mui/material/transitions';
|
||||
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||
import { Global } from "recharts";
|
||||
|
||||
|
||||
const Partner_Commande = (props) => {
|
||||
|
@ -525,6 +526,7 @@ const Partner_Commande = (props) => {
|
|||
}
|
||||
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
Get_List_Partner_Clients();
|
||||
|
@ -1190,7 +1192,7 @@ const Partner_Commande = (props) => {
|
|||
|
||||
|
||||
if (mylocalclient) {
|
||||
if (mylocalclient.email){
|
||||
if (mylocalclient.email) {
|
||||
setp_detail_header_email_client(mylocalclient.email);
|
||||
//console.log(" ### mylocalclient.email = ", mylocalclient.email);
|
||||
}
|
||||
|
@ -2024,31 +2026,31 @@ const Partner_Commande = (props) => {
|
|||
|
||||
|
||||
// Controle des champs obligatoires
|
||||
if( !p_add_line_item || String(p_add_line_item).length < 2){
|
||||
if (!p_add_line_item || String(p_add_line_item).length < 2) {
|
||||
alert(" Vous devez choisir un article ");
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(" ### p_add_line_item = ", p_add_line_item);
|
||||
|
||||
if (!p_add_line_item_qty || parseFloat(String(p_add_line_item_qty)) <= 0){
|
||||
if (!p_add_line_item_qty || parseFloat(String(p_add_line_item_qty)) <= 0) {
|
||||
alert(" La quantité choisie est incorrecte ");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!p_add_line_item_price || parseFloat(String(p_add_line_item_price)) < 0){
|
||||
if (!p_add_line_item_price || parseFloat(String(p_add_line_item_price)) < 0) {
|
||||
alert(" Le prix unitaire est incorrecte ");
|
||||
return;
|
||||
}
|
||||
|
||||
if( String(p_add_line_item_type_reduction) === "percent" &&
|
||||
( parseFloat(String(p_add_line_item_reduction_value)) < 0 || parseFloat(String(p_add_line_item_reduction_value)) > 100 ) ){
|
||||
if (String(p_add_line_item_type_reduction) === "percent" &&
|
||||
(parseFloat(String(p_add_line_item_reduction_value)) < 0 || parseFloat(String(p_add_line_item_reduction_value)) > 100)) {
|
||||
alert(" Pour une reduction de type 'pourcentage', la valeur doit être comprise entre 0 et 100 ");
|
||||
return;
|
||||
}
|
||||
|
||||
if( String(p_add_line_item_type_reduction) === "fixe" &&
|
||||
( parseFloat(String(p_add_line_item_reduction_value)) < 0 || parseFloat(String(p_add_line_item_reduction_value)) > parseFloat(String(p_add_line_item_price)) ) ){
|
||||
if (String(p_add_line_item_type_reduction) === "fixe" &&
|
||||
(parseFloat(String(p_add_line_item_reduction_value)) < 0 || parseFloat(String(p_add_line_item_reduction_value)) > parseFloat(String(p_add_line_item_price)))) {
|
||||
alert(" Pour une reduction de type 'fixe', la valeur ne doit pas excéder le prix unitaire de l'article ");
|
||||
return;
|
||||
}
|
||||
|
@ -2094,7 +2096,7 @@ const Partner_Commande = (props) => {
|
|||
|
||||
const Update_Dialog_Detail_Article_open = () => {
|
||||
Add_Update_One_Order_Line_Data();
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -2184,12 +2186,12 @@ const Partner_Commande = (props) => {
|
|||
|
||||
|
||||
|
||||
if( !p_add_cmd_header_client_id || String(p_add_cmd_header_client_id).length < 2 ){
|
||||
if (!p_add_cmd_header_client_id || String(p_add_cmd_header_client_id).length < 2) {
|
||||
alert(" Vous devez choisir un client");
|
||||
return;
|
||||
}
|
||||
//console.log("### form = ", form);
|
||||
|
||||
|
||||
|
||||
var myurl = ""
|
||||
|
||||
|
@ -2813,6 +2815,8 @@ const Partner_Commande = (props) => {
|
|||
|
||||
const [isLoading, setLoading] = useState();
|
||||
|
||||
|
||||
|
||||
return (
|
||||
|
||||
<div className="partner_commande">
|
||||
|
@ -2820,6 +2824,7 @@ const Partner_Commande = (props) => {
|
|||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
|
||||
|
||||
<Dialog
|
||||
open={Dialog_1_open}
|
||||
onClose={Dialog_1_handleClose}
|
||||
|
@ -2858,7 +2863,7 @@ const Partner_Commande = (props) => {
|
|||
{String(p_detail_header_statut_label).toLowerCase() !== "facturé" && <div className="session_caract_Dialog" > Article
|
||||
|
||||
<TextField
|
||||
required
|
||||
required
|
||||
autoFocus
|
||||
margin="dense"
|
||||
id="ref_article"
|
||||
|
@ -3231,7 +3236,7 @@ const Partner_Commande = (props) => {
|
|||
|
||||
<div className="session_caract_Dialog" > Client
|
||||
<TextField
|
||||
required
|
||||
required
|
||||
autoFocus
|
||||
margin="dense"
|
||||
id="ref_client"
|
||||
|
|
|
@ -25,6 +25,7 @@ import FullCalendar from "@fullcalendar/react";
|
|||
import daygridPlugin from "@fullcalendar/daygrid";
|
||||
import interactionPlugin from "@fullcalendar/interaction";
|
||||
import { v4 as uuid } from "uuid";
|
||||
import { isCompositeComponent } from "react-dom/test-utils";
|
||||
|
||||
const locales = {
|
||||
'en-US': enUS,
|
||||
|
@ -178,6 +179,7 @@ const TestUrl_New = (props) => {
|
|||
useEffect(() => {
|
||||
Get_Personnalisable_Collections();
|
||||
Get_Personnalisable_Collection_and_Fields();
|
||||
Get_Partner_Object_Specific_Fields("ressource_humaine");
|
||||
|
||||
}, [])
|
||||
|
||||
|
@ -290,6 +292,137 @@ const TestUrl_New = (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 = []
|
||||
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_list_specific_field_partner_by_object/";
|
||||
|
||||
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 = []
|
||||
|
||||
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);
|
||||
}
|
||||
// -- end champs specifiques
|
||||
|
||||
return (
|
||||
<div className="testurl_new">
|
||||
<Helmet>
|
||||
|
@ -304,16 +437,53 @@ const TestUrl_New = (props) => {
|
|||
<h3> Page de test * testurl_new </h3>
|
||||
parametres courseid = {courseid}, tabid = {tabid}
|
||||
<br />
|
||||
{/* <div>
|
||||
<Calendar
|
||||
localizer={localizer}
|
||||
events={myEventsList}
|
||||
startAccessor="start"
|
||||
endAccessor="end"
|
||||
style={{ height: 500 }}
|
||||
/>
|
||||
</div>*/}
|
||||
<div style={{"width":"90%", "marginLeft":"1%"}}>
|
||||
|
||||
<Button variant="contained" className="bton_enreg"
|
||||
onClick={afficher_champs_spec}>
|
||||
Display Spec fields
|
||||
</Button>
|
||||
|
||||
<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={change_champs_spec_handle}
|
||||
|
||||
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
|
||||
<br />
|
||||
|
||||
<Button variant="contained" className="bton_enreg"
|
||||
onClick={"get_champs_spec"}>
|
||||
Display valeurs des champs spec
|
||||
</Button>
|
||||
|
||||
<nav> Liste des valeurs des champs spec </nav>
|
||||
{rows_champs_specifics &&
|
||||
rows_champs_specifics.map((champ_spec) => (
|
||||
<div className="session_caract"> '{champ_spec.field_value}' </div>
|
||||
))}
|
||||
|
||||
<br />
|
||||
|
||||
<div style={{ "width": "90%", "marginLeft": "1%" }}>
|
||||
<FullCalendar
|
||||
editable
|
||||
selectable
|
||||
|
@ -338,7 +508,6 @@ const TestUrl_New = (props) => {
|
|||
value={p_document_name}
|
||||
onChange={(e) => {
|
||||
setp_document_name(e.target.value);
|
||||
|
||||
}}
|
||||
>
|
||||
<MenuItem value="convocation" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Convocation </MenuItem>
|
||||
|
|
Loading…
Reference in New Issue