From 5174a61d98a9fb4d75f974a15bdf47ea3d6d8c7b Mon Sep 17 00:00:00 2001 From: cherif Date: Mon, 13 Nov 2023 12:50:05 +0100 Subject: [PATCH] 13/11/2023 - 12h30 --- src/components/DisplayPartnerSession.js | 9 + src/components/DisplayPartnerStagiaires.js | 5 + .../DisplayPartnerTrainingsPagination.js | 11 + src/components/Employes.js | 5 + src/components/Module_Agenda.js | 237 ++++++++++++++++-- src/components/Partner.js | 14 +- src/components/Partner_Commande.js | 5 + src/styles/components/_module_agenda.scss | 10 + 8 files changed, 266 insertions(+), 30 deletions(-) diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js index e7579f2..3645db7 100644 --- a/src/components/DisplayPartnerSession.js +++ b/src/components/DisplayPartnerSession.js @@ -5859,6 +5859,15 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair pageSize={10} className="datagridclass" + onRowDoubleClick={(newSelectionModel) => { + alert(" ok"); + console.log(" ### newSelectionModel.row = ", newSelectionModel.row); + handleClick_edit_session_From_Line(newSelectionModel.row.id); + + }} + + + rowsPerPageOptions={[10]} disableSelectionOnClick components={{ diff --git a/src/components/DisplayPartnerStagiaires.js b/src/components/DisplayPartnerStagiaires.js index e84b333..e836204 100644 --- a/src/components/DisplayPartnerStagiaires.js +++ b/src/components/DisplayPartnerStagiaires.js @@ -4269,6 +4269,11 @@ const DisplayPartnerStagiaires = (props) => { pageSize={10} className="datagridclass" + onRowDoubleClick={(newSelectionModel) => { + handleClick_edit_session_From_Line(newSelectionModel.row.id); + + }} + rowsPerPageOptions={[10]} disableSelectionOnClick components={{ diff --git a/src/components/DisplayPartnerTrainingsPagination.js b/src/components/DisplayPartnerTrainingsPagination.js index bb54780..86ec08f 100644 --- a/src/components/DisplayPartnerTrainingsPagination.js +++ b/src/components/DisplayPartnerTrainingsPagination.js @@ -538,6 +538,9 @@ const DistplayPartnerTraningsPage = (props) => { } + + + function selectedFilter1(event) { setselectedfilt1(event.value); } @@ -1455,6 +1458,14 @@ const DistplayPartnerTraningsPage = (props) => { pageSize={10} className="datagridclass" + onRowDoubleClick={(newSelectionModel) => { + setreftrainingtoupdate(newSelectionModel.row.internal_url); + setexternalcodetraining_toupdate(newSelectionModel.row.external_code); + setupdatetraining(true); + + } + } + rowsPerPageOptions={[10]} //disableSelectionOnClick components={{ diff --git a/src/components/Employes.js b/src/components/Employes.js index b994cf9..4fa78f6 100644 --- a/src/components/Employes.js +++ b/src/components/Employes.js @@ -4214,6 +4214,11 @@ const Employes = (props) => { pageSize={10} className="datagridclass" + onRowDoubleClick={(newSelectionModel) => { + handleClick_edit_employee_From_Line(newSelectionModel.row.id); + + }} + rowsPerPageOptions={[10]} disableSelectionOnClick components={{ diff --git a/src/components/Module_Agenda.js b/src/components/Module_Agenda.js index e170ddd..a69e957 100644 --- a/src/components/Module_Agenda.js +++ b/src/components/Module_Agenda.js @@ -239,8 +239,8 @@ const Module_Agenda = (props) => { function Get_List_Agenda_Events_For_Given_User(local_selected_id) { var local_related_collection = p_filtre1; - - + + var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); @@ -310,10 +310,161 @@ const Module_Agenda = (props) => { }) } + const [Get_List_Agenda_Events_For_Me_api, setGet_List_Agenda_Events_For_Me_api] = useState(); + const [Get_List_Agenda_Events_For_Me_message, setGet_List_Agenda_Events_For_Me_message] = useState(); + const [Get_List_Agenda_Events_For_Me_result, setGet_List_Agenda_Events_For_Me_result] = useState(); + function Get_List_Agenda_Events_For_Me(local_selected_id) { + + var local_related_collection = p_filtre1; + + + var form = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + + form.append("token", stored_cookie); + form.append("related_collection", "ressource_humaine"); + form.append("related_collection_recid", local_selected_id); + + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_Agenda_Event_List/"; + + setLoading(true); + + axios.post(myurl, form).then(res => { + //console.log(" In Get_List_Agenda_Events_For_Me res.data.status = " + res.data.status); + //console.log(" In Get_List_Agenda_Events_For_Me res.data.message r_class = " + res.data.message); + setLoading(false); + if (String(res.data.status) === String("true")) { + setGet_List_Agenda_Events_For_Me_api("true"); + setGet_List_Agenda_Events_For_Me_result(res.data.message); + + var tab_event = [] + var filtre2 = res.data.message.map(obj => { + + var local_val = {} + if (JSON.parse(obj).comment) { + local_val = { + 'title': String(JSON.parse(obj).event_title), + 'start': String(JSON.parse(obj).event_start), + 'end': String(JSON.parse(obj).event_end), + 'id': String(JSON.parse(obj)._id), + 'comment': String(JSON.parse(obj).comment), + } + } else { + local_val = { + 'title': String(JSON.parse(obj).event_title), + 'start': String(JSON.parse(obj).event_start), + 'end': String(JSON.parse(obj).event_end), + 'id': String(JSON.parse(obj)._id), + 'comment': "", + } + + } + tab_event.push(local_val); + + + + }); + setmysy_events(tab_event); + + + } + else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + } + else { + setGet_List_Agenda_Events_For_Me_api("false"); + setGet_List_Agenda_Events_For_Me_message(res.data.message); + } + + }).catch((error) => { + setLoading(false); + console.warn('Not good man :( Get_List_Agenda_Events_For_Me = ', error); + setGet_List_Agenda_Events_For_Me_api("false"); + //setmyApimyApiMessage("") + }) + } + + + const [GetAttendee_api, setGetAttendee_api] = useState(); + const [GetAttendee_message, setGetAttendee_message] = useState(); + const [GetAttendee_result, setGetAttendee_result] = useState(); + function Get_Ressource_Data(local_selected_id) { + + var local_related_collection = p_filtre1; + + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("related_collection", local_related_collection); + form.append("related_collection_recid", local_selected_id); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_Ressource_Info_Data/"; + + axios.post(myurl, form).then(res => { + + if (String(res.data.status) === "true") { + //console.log(" In Get_Ressource_Data res.data.status = " + res.data.status); + //console.log(" In Get_Ressource_Data res.data.message r_class = " + res.data.message); + setGetAttendee_api("true"); + setGetAttendee_result(res.data.message); + var nom_prenom = ""; + + + if (res.data.message.length > 0) { + var mylocal_employe = JSON.parse(res.data.message); + + + if (JSON.parse(res.data.message).nom) { + nom_prenom = JSON.parse(res.data.message).nom; + } + + if (JSON.parse(res.data.message).prenom) { + nom_prenom = String(nom_prenom) + " " + String(JSON.parse(res.data.message).prenom); + } + + + } + setagenda_owner_name(nom_prenom); + + if (String(p_filtre1) === "ressource_humaine") + setagenda_owner_type("Eployé"); + else if (String(p_filtre1) === "ressource_materielle") + setagenda_owner_type("Materiel"); + + } else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + } + + else { + setGetAttendee_api("false"); + setGetAttendee_message(res.data.message); + alert(res.data.message); + } + + }).catch((error) => { + console.warn('Not good man :( Get_Ressource_Data = ', error); + setGetAttendee_api("false"); + alert(" Impossible de recuperer les données de l'employé"); + //setmyApimyApiMessage("") + }) + } + + const myEventsList = [] const [events, setEvents] = useState([]); const handleSelect = (info) => { + + if (String(props.write_access) !== "1") { + // Pas d'acces en ecriture. + return; + } + setp_detail_title("Nouvelle") setp_detail_start(info.start) setp_detail_end(info.end) @@ -330,7 +481,7 @@ const Module_Agenda = (props) => { /*const { start, end } = info; const eventNamePrompt = prompt("Enter, Nom evenment"); if (eventNamePrompt) { - + setEvents([ ...events, { @@ -354,6 +505,8 @@ const Module_Agenda = (props) => { }; const handleEventClick = (arg) => { + + setp_detail_title(arg.event.title) setp_detail_start(arg.event.start) setp_detail_end(arg.event.end) @@ -445,8 +598,8 @@ const Module_Agenda = (props) => { const Update_One_Agenda_Event = event => { var local_related_collection = p_filtre1; - - + + if (moment(endDate) <= moment(startDate)) { alert(" Les dates de début et de fin sont incohérentes"); return; @@ -625,14 +778,20 @@ const Module_Agenda = (props) => { const [display_other_agenda, setdisplay_other_agenda] = useState(); + const [agenda_owner_name, setagenda_owner_name] = useState("Mon Planning"); + const [agenda_owner_type, setagenda_owner_type] = useState("Employe"); + + function show_other_agenda() { setdisplay_other_agenda("1"); } function show_my_agenda() { + setp_filtre1("ressource_humaine"); + setagenda_owner_name("Mon Planning"); setselected_employee_id(myconntected_employee_id); setdisplay_other_agenda(); - Get_List_Agenda_Events_For_Given_User(myconntected_employee_id); + Get_List_Agenda_Events_For_Me(myconntected_employee_id); } return ( @@ -662,11 +821,13 @@ const Module_Agenda = (props) => { name="event_dialog_title" id="event_dialog_title" + fullWidth value={p_detail_title} onChange={(e) => { - setp_detail_title(e.target.value); + if (String(props.write_access) === "1") + setp_detail_title(e.target.value); } } @@ -679,7 +840,13 @@ const Module_Agenda = (props) => { name="event_dialog_start" id="event_dialog_start" selected={startDate} - onChange={(date) => setStartDate(date)} + onChange={(date) => { + if (String(props.write_access) === "1") + return setStartDate(date); + } + } + + className="disabled_style enable_style" locale='fr-FR' showTimeSelect @@ -698,7 +865,14 @@ const Module_Agenda = (props) => { name="event_dialog_end" id="event_dialog_end" selected={endDate} - onChange={(date) => setendDate(date)} + + onChange={(date) => { + if (String(props.write_access) === "1") + return setendDate(date); + } + } + + className="disabled_style enable_style" locale='fr-FR' showTimeSelect @@ -722,7 +896,8 @@ const Module_Agenda = (props) => { value={p_detail_comment} onChange={(e) => { - setp_detail_comment(e.target.value); + if (String(props.write_access) === "1") + setp_detail_comment(e.target.value); } } multiline @@ -737,15 +912,17 @@ const Module_Agenda = (props) => { + +
-
+ {String(props.write_access) === "1" &&
{p_detail_event_id && String(p_detail_event_id) !== "" && } {(!p_detail_event_id || String(p_detail_event_id) === "") && } -
+
}
@@ -755,7 +932,8 @@ const Module_Agenda = (props) => { - {p_detail_event_id && String(p_detail_event_id) !== "" && + + {String(props.write_access) === "1" && p_detail_event_id && String(p_detail_event_id) !== "" &&
} - {display_other_agenda && String(display_other_agenda) === "1" && } @@ -802,6 +980,7 @@ const Module_Agenda = (props) => { sx={{ m: 1, width: '100%' }} value={p_filtre1} onChange={(e) => { + setp_filtre1(e.target.value); setselected_employee_id(""); setselected_related_collection(e.target.value); @@ -832,15 +1011,19 @@ const Module_Agenda = (props) => { className="disabled_style" value={selected_employee_id} onChange={(e) => { + + Get_Ressource_Data(e.target.value) setselected_employee_id(e.target.value); Get_List_Agenda_Events_For_Given_User(e.target.value); + + }} > {Getall_Training_Employee_No_Filter_result && Getall_Training_Employee_No_Filter_result.map((myclient) => ( - - {JSON.parse(myclient)._id} - {JSON.parse(myclient).nom}  {JSON.parse(myclient).prenom} + + {JSON.parse(myclient).nom}  {JSON.parse(myclient).prenom} ))} @@ -864,15 +1047,16 @@ const Module_Agenda = (props) => { disabled={false} className="disabled_style" value={selected_employee_id} - onChange={(e) => { + onChange={(e) => { + Get_Ressource_Data(e.target.value) setselected_employee_id(e.target.value); Get_List_Agenda_Events_For_Given_User(e.target.value); - }} + }} > {Getall_Training_Materiel_No_Filter_result && Getall_Training_Materiel_No_Filter_result.map((myclient) => ( + style={{ "paddingLeft": "25px", "textAlign": "left", "width": "100%" }}> {JSON.parse(myclient).nom}  @@ -883,14 +1067,21 @@ const Module_Agenda = (props) => {
} - +
}
 
+
+ {agenda_owner_name && String(agenda_owner_name) === "Mon Planning" &&
{agenda_owner_name}
} + {agenda_owner_name && String(agenda_owner_name) !== "Mon Planning" &&
Vous êtes sur le planning de {agenda_owner_name} - ({agenda_owner_type})
} +
+
+   + { // check du droit d'acces de l'utilisateur function check_user_acces_right(local_module, local_action) { - console.log(" ### connected_user_access_right = ", connected_user_access_right); - console.log(" #### check_user_acces_right = ", local_module, " --- local_action = ", local_action); + //console.log(" ### connected_user_access_right = ", connected_user_access_right); + //console.log(" #### check_user_acces_right = ", local_module, " --- local_action = ", local_action); if (String(local_action) === "read") { for (let i = 0; i < connected_user_access_right.length; i++) { @@ -383,7 +383,7 @@ const Partner = (props) => { } function module_agenda_func(event) { - var security_retval = check_user_acces_right("config_document", "read"); + var security_retval = check_user_acces_right("module_agenda", "read"); if (security_retval === 1) { setmenu("module_agenda"); setapiexcelimportmessage(); @@ -1013,8 +1013,8 @@ const Partner = (props) => {
- {String(menu) !== "infopartner" &&
AGENDA & PLANNING
} - {String(menu) === "infopartner" &&
AGENDA & PLANNING
} + {String(menu) !== "module_agenda" &&
PLANNING
} + {String(menu) === "module_agenda" &&
PLANNING
}
{String(menu) !== "abonnement" &&
ABONNEMENT
} @@ -1400,7 +1400,7 @@ const Partner = (props) => { {String(menu) === "module_agenda" &&
- +
} diff --git a/src/components/Partner_Commande.js b/src/components/Partner_Commande.js index b825d90..d3cba9a 100644 --- a/src/components/Partner_Commande.js +++ b/src/components/Partner_Commande.js @@ -5089,6 +5089,11 @@ const Partner_Commande = (props) => { pageSize={10} className="datagridclass" + onRowDoubleClick={(newSelectionModel) => { + handleClick_edit_order_From_Line(newSelectionModel.row.id); + + }} + rowsPerPageOptions={[10]} //disableSelectionOnClick components={{ diff --git a/src/styles/components/_module_agenda.scss b/src/styles/components/_module_agenda.scss index 1a21f68..1671c73 100644 --- a/src/styles/components/_module_agenda.scss +++ b/src/styles/components/_module_agenda.scss @@ -1,5 +1,7 @@ .module_agenda { + + .modal { position: fixed; z-index:9999; @@ -185,6 +187,7 @@ .css-11u53oe-MuiSelect-select-MuiInputBase-input-MuiOutlinedInput-input { padding: 1px !important; + padding-right: 1rem !important; } .selectsession { @@ -588,6 +591,7 @@ .css-11u53oe-MuiSelect-select-MuiInputBase-input-MuiOutlinedInput-input { padding: 1px !important; + padding-right: 1rem !important; } .block_en_mass { @@ -755,6 +759,7 @@ .css-11u53oe-MuiSelect-select-MuiInputBase-input-MuiOutlinedInput-input { padding: 1px !important; + padding-right: 1rem !important; } .selectsession { @@ -1160,6 +1165,7 @@ .css-11u53oe-MuiSelect-select-MuiInputBase-input-MuiOutlinedInput-input { padding: 1px !important; + padding-right: 1rem !important; } .block_en_mass { @@ -1357,6 +1363,7 @@ .css-11u53oe-MuiSelect-select-MuiInputBase-input-MuiOutlinedInput-input { padding: 1px !important; + padding-right: 1rem !important; } .selectsession { @@ -1867,6 +1874,7 @@ .css-11u53oe-MuiSelect-select-MuiInputBase-input-MuiOutlinedInput-input { padding: 1px !important; + padding-right: 1rem !important; } .selectsession { @@ -2430,6 +2438,7 @@ .css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root { height: 3.5rem !important; font-size: small !important; + } @@ -2440,4 +2449,5 @@ .css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input { padding-left: 5px !important; + padding-right: 1rem !important; } \ No newline at end of file