14/05/2025 - 20h
parent
ac182ce675
commit
c5908167f2
|
@ -1485,6 +1485,68 @@ const Jury = (props) => {
|
|||
}
|
||||
|
||||
|
||||
const [Add_Update_Jury_Soutenance_Data_api, setAdd_Update_Jury_Soutenance_Data_api] = useState();
|
||||
const [Add_Update_Jury_Soutenance_Data_message, setAdd_Update_Jury_Soutenance_Data_message] = useState();
|
||||
const [Add_Update_Jury_Soutenance_Data_result, setAdd_Update_Jury_Soutenance_Data_result] = useState([]);
|
||||
function Add_Update_Jury_Soutenance_Data() {
|
||||
var form = new FormData();
|
||||
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
|
||||
form.append("jury_id", selected_id);
|
||||
form.append("agenda_id", selected_agenda_id);
|
||||
form.append("sujet", p_detail_soutenance_sujet);
|
||||
form.append("note", p_detail_soutenance_note);
|
||||
form.append("observation", p_detail_soutenance_observation);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_Jury_Soutenance/";
|
||||
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
//console.log(" In Add_Update_Jury_Soutenance_Data res.data.status = " + res.data.status);
|
||||
//console.log(" In Add_Update_Jury_Soutenance_Data res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setAdd_Update_Jury_Soutenance_Data_api("true");
|
||||
setAdd_Update_Jury_Soutenance_Data_result(res.data.message);
|
||||
Disable_Jury_Soutenance_DetailFields();
|
||||
|
||||
|
||||
// alert(res.data.message);
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("success");
|
||||
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
setAdd_Update_Jury_Soutenance_Data_api("false");
|
||||
setAdd_Update_Jury_Soutenance_Data_message(res.data.message);
|
||||
// alert(res.data.message);
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("error");
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
|
||||
console.log('UpdateStagiaireData : Not good man :( Add_Update_Jury_Soutenance_Data = ' + error);
|
||||
setAdd_Update_Jury_Soutenance_Data_api("false");
|
||||
alert(" Impossible d'ajouter ou mettre à jour les données de la soutenance du jury ");
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const [Add_Member_To_Jury_api, setAdd_Member_To_Jury_api] = useState();
|
||||
const [Add_Member_To_Jury_message, setAdd_Member_To_Jury_message] = useState();
|
||||
const [Add_Member_To_Jury_result, setAdd_Member_To_Jury_result] = useState([]);
|
||||
|
@ -1938,7 +2000,7 @@ const Jury = (props) => {
|
|||
|
||||
|
||||
function Enable_Jury_Soutenance_DetailFields() {
|
||||
setequipe_data_edit_mode("1");
|
||||
setsoutenance_data_edit_mode("1");
|
||||
|
||||
var liste_champs = ['detail_soutenance_sujet', 'detail_soutenance_observation', 'detail_soutenance_note']
|
||||
|
||||
|
@ -1951,11 +2013,32 @@ const Jury = (props) => {
|
|||
}
|
||||
}
|
||||
|
||||
async function Disable_Jury_Soutenance_DetailFields() {
|
||||
|
||||
|
||||
setsoutenance_data_edit_mode("0");
|
||||
await sleep(5);
|
||||
var liste_champs = ['detail_soutenance_sujet', 'detail_soutenance_observation', 'detail_soutenance_note']
|
||||
|
||||
for (let i = 0; i < liste_champs.length; i++) {
|
||||
|
||||
if (document.getElementsByName(String(liste_champs[i])) && document.getElementsByName(String(liste_champs[i]))[0]) {
|
||||
document.getElementsByName(String(liste_champs[i]))[0].disabled = true;
|
||||
document.getElementsByName(String(liste_champs[i]))[0].style.backgroundColor = "#ECEFF1";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function Annule_Jury_Soutenance_DetailFields() {
|
||||
// Get_Given_Jury_Data(selected_id);
|
||||
setsoutenance_data_edit_mode("");
|
||||
|
||||
Get_Jury_List_Apprenant_Soutenance(selected_agenda_id);
|
||||
setsoutenance_data_edit_mode("0");
|
||||
setsoutenance_data_changed("");
|
||||
Disable_Jury_Soutenance_DetailFields();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1976,10 +2059,15 @@ const Jury = (props) => {
|
|||
setselected_session_id("");
|
||||
setp_detail_email_jury("");
|
||||
setp_detail_chef_jury_id("");
|
||||
|
||||
}
|
||||
|
||||
|
||||
function clear_Soutenance_DetailFieds() {
|
||||
setp_detail_soutenance_sujet("");
|
||||
setp_detail_soutenance_observation("");
|
||||
setp_detail_soutenance_note("");
|
||||
}
|
||||
|
||||
const [p_detail_member_role, setp_detail_member_role] = React.useState("");
|
||||
|
||||
const [gridline_jury_member_id, setgridline_jury_member_id] = useState("");
|
||||
|
@ -2108,9 +2196,9 @@ const Jury = (props) => {
|
|||
const [p_detail_soutenance_observation, setp_detail_soutenance_observation] = React.useState("");
|
||||
const [p_detail_soutenance_note, setp_detail_soutenance_note] = React.useState("");
|
||||
|
||||
const [soutenance_data_edit_mode, setsoutenance_data_edit_mode] = React.useState("");
|
||||
const [soutenance_data_edit_mode, setsoutenance_data_edit_mode] = React.useState("0");
|
||||
const [soutenance_display, setsoutenance_display] = React.useState("");
|
||||
const [soutenance_data_changed, setsoutenance_data_changed] = React.useState("");
|
||||
const [soutenance_data_changed, setsoutenance_data_changed] = React.useState("");
|
||||
|
||||
|
||||
// -- Gestion pièces jointes
|
||||
|
@ -3220,6 +3308,84 @@ const Jury = (props) => {
|
|||
|
||||
|
||||
|
||||
const [Get_Jury_List_Apprenant_Soutenance_insc_api, setGet_Jury_List_Apprenant_Soutenance_insc_api] = useState();
|
||||
const [Get_Jury_List_Apprenant_Soutenance_insc_meassage, setGet_Jury_List_Apprenant_Soutenance_insc_meassage] = useState();
|
||||
const [Get_Jury_List_Apprenant_Soutenance_insc_result, setGet_Jury_List_Apprenant_Soutenance_insc_result] = useState([])
|
||||
function Get_Jury_List_Apprenant_Soutenance(local_agenda_id) {
|
||||
|
||||
var form = new FormData();
|
||||
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("jury_id", selected_id);
|
||||
form.append("agenda_id", local_agenda_id);
|
||||
|
||||
// console.log(" #### OKKKK ")
|
||||
setLoading(true);
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Jury_Soutenenace/";
|
||||
|
||||
fetch(myurl,
|
||||
{
|
||||
method: 'POST',
|
||||
body: form,
|
||||
})
|
||||
.then((data) => data.json())
|
||||
.then((data) => {
|
||||
setLoading(false);
|
||||
// console.log(' Get_Jury_List_Apprenant_Soutenance : Success:', data['message'], "data['status'] = ", data['status']);
|
||||
|
||||
if (String(data['status']) === String("true")) {
|
||||
|
||||
setGet_Jury_List_Apprenant_Soutenance_insc_result(data['message']);
|
||||
setGet_Jury_List_Apprenant_Soutenance_insc_api("true");
|
||||
|
||||
if (data['message'].length > 0 && JSON.parse(data['message'])) {
|
||||
var soutenance_JSON = JSON.parse(data['message']);
|
||||
if (soutenance_JSON.sujet) {
|
||||
setp_detail_soutenance_sujet(soutenance_JSON.sujet);
|
||||
} else {
|
||||
setp_detail_soutenance_sujet("");
|
||||
}
|
||||
|
||||
if (soutenance_JSON.observation) {
|
||||
setp_detail_soutenance_observation(soutenance_JSON.observation);
|
||||
} else {
|
||||
setp_detail_soutenance_observation("");
|
||||
}
|
||||
|
||||
if (soutenance_JSON.note) {
|
||||
setp_detail_soutenance_note(soutenance_JSON.note);
|
||||
} else {
|
||||
setp_detail_soutenance_note("");
|
||||
}
|
||||
|
||||
} else {
|
||||
setp_detail_soutenance_sujet("");
|
||||
setp_detail_soutenance_observation("");
|
||||
setp_detail_soutenance_note("");
|
||||
}
|
||||
|
||||
setsoutenance_data_edit_mode("0");
|
||||
Disable_Jury_Soutenance_DetailFields();
|
||||
|
||||
} else if (String(data['status']) === String("Err_Connexion")) {
|
||||
alert('Erreur: ' + data['message']);
|
||||
history.push("/Connexion");
|
||||
}
|
||||
else {
|
||||
setGet_Jury_List_Apprenant_Soutenance_insc_api("false");
|
||||
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.error('Error:', error);
|
||||
setGet_Jury_List_Apprenant_Soutenance_insc_api("false");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
const [jury_seance_ue_id, setjury_seance_ue_id] = useState("");
|
||||
|
||||
return (
|
||||
|
@ -4354,29 +4520,27 @@ const Jury = (props) => {
|
|||
className="datagridclass"
|
||||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
setsoutenance_data_edit_mode("");
|
||||
setsoutenance_display("");
|
||||
setsoutenance_data_changed("");
|
||||
setsubmenu_detail_seance("");
|
||||
setselected_jury_cible("")
|
||||
settab_selected_apprenant([]);
|
||||
setselectionModel_columns_jury_membre([]);
|
||||
setactionmass_jury_membre_val("");
|
||||
|
||||
Get_List_UE_From_Session_Id(newSelectionModel.row.session_id);
|
||||
|
||||
setselected_id(newSelectionModel.row._id);
|
||||
setgridline_id(newSelectionModel.row.id);
|
||||
|
||||
setselected_session_id(newSelectionModel.row.session_id);
|
||||
|
||||
|
||||
setselected_ue_id(newSelectionModel.row.ue_id);
|
||||
setselected_ue_code(newSelectionModel.row.ue_code)
|
||||
|
||||
setselected_jury_cible(newSelectionModel.row.cible);
|
||||
|
||||
setselectionModel_columns_jury_membre([]);
|
||||
setactionmass_jury_membre_val("");
|
||||
|
||||
handleClick_edit_jury_From_Line(newSelectionModel.row.id);
|
||||
|
||||
|
||||
settab_selected_apprenant([]);
|
||||
|
||||
|
||||
}}
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
|
@ -5744,6 +5908,10 @@ const Jury = (props) => {
|
|||
setsubmenu_detail_seance("display_jury_seance");
|
||||
GetCurrentSession(newSelectionModel.row.event_linked_collection_recid);
|
||||
|
||||
if (String(selected_jury_cible) === "soutenance") {
|
||||
Get_Jury_List_Apprenant_Soutenance(newSelectionModel.row._id);
|
||||
}
|
||||
|
||||
if (document.getElementById('myRef_note_classemment')) {
|
||||
var divh = document.getElementById('myRef_note_classemment').offsetTop;
|
||||
|
||||
|
@ -5831,7 +5999,7 @@ const Jury = (props) => {
|
|||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="div_row" ref={myRef} id="myRef"> </div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -5870,153 +6038,189 @@ const Jury = (props) => {
|
|||
|
||||
{String(submenu_detail_seance) === String("display_jury_seance") && String(selected_jury_cible) === "soutenance"
|
||||
&& GetCurrentSession_result.length > 0 &&
|
||||
<div style={{ "border": "None" }}>
|
||||
il s'agit d'un jury avec sujet, note et appreciation <br />
|
||||
<div style={{ "border": "None", width: '100%' }}>
|
||||
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Délibération du Jury</nav>
|
||||
|
||||
{String(soutenance_data_edit_mode) !== "1" && <div>
|
||||
|
||||
<div style={{ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', alignItems: 'center', flexWrap: 'wrap' }}>
|
||||
<div className="session_caract"> <b> Sujet </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_soutenance_sujet"
|
||||
id="detail_soutenance_sujet"
|
||||
<div style={{ width: "100%" }}>
|
||||
<b> Sujet </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: "100%", height:'5rem', }}
|
||||
required
|
||||
name="detail_soutenance_sujet"
|
||||
id="detail_soutenance_sujet"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_soutenance_sujet}
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
//fullWidth
|
||||
// sx={{ width: "80%" }}
|
||||
//className="disabled_style"
|
||||
value={p_detail_soutenance_sujet}
|
||||
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> Observation </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_soutenance_observation"
|
||||
id="detail_soutenance_observation"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_soutenance_observation}
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> Note </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_soutenance_note"
|
||||
id="detail_soutenance_note"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_soutenance_note}
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
InputProps={{ style: { border: "1px solid gainsboro", width: '90%', padding:'2px', height:'5rem', margin:'auto' } }}
|
||||
|
||||
|
||||
multiline
|
||||
minRows={2}
|
||||
maxRows={2}
|
||||
rows={2}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
|
||||
</div>
|
||||
<div style={{ width: "100%" }}>
|
||||
<b> Observation </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: "100%" }}
|
||||
required
|
||||
name="detail_soutenance_observation"
|
||||
id="detail_soutenance_observation"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
//fullWidth
|
||||
// sx={{ width: "80%" }}
|
||||
//className="disabled_style"
|
||||
value={p_detail_soutenance_observation}
|
||||
|
||||
|
||||
InputProps={{ style: { border: "1px solid gainsboro", width: '90%', padding:'2px', height:'5rem', margin:'auto' } }}
|
||||
|
||||
|
||||
multiline
|
||||
minRows={2}
|
||||
maxRows={2}
|
||||
rows={2}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div style={{ width: "100%" }}>
|
||||
<b> Note </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: "100%" }}
|
||||
required
|
||||
name="detail_soutenance_note"
|
||||
id="detail_soutenance_note"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
//fullWidth
|
||||
// sx={{ width: "80%" }}
|
||||
//className="disabled_style"
|
||||
value={p_detail_soutenance_note}
|
||||
|
||||
|
||||
InputProps={{ style: { border: "1px solid gainsboro", width: '90%', padding:'2px', margin:'auto' } }}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
</div>}
|
||||
|
||||
{String(soutenance_data_edit_mode) === "1" && <div>
|
||||
|
||||
<div style={{ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', alignItems: 'center', flexWrap: 'wrap' }}>
|
||||
<div className="session_caract"> <b> Sujet </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_soutenance_sujet"
|
||||
id="detail_soutenance_sujet"
|
||||
<div style={{ width: "100%" }}>
|
||||
<b> Sujet </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: "100%", }}
|
||||
required
|
||||
name="detail_soutenance_sujet"
|
||||
id="detail_soutenance_sujet"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_soutenance_sujet}
|
||||
onChange={(e) => {
|
||||
setp_detail_soutenance_sujet(e.target.value);
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
//fullWidth
|
||||
// sx={{ width: "80%" }}
|
||||
//className="disabled_style"
|
||||
value={p_detail_soutenance_sujet}
|
||||
onChange={(e) => {
|
||||
setp_detail_soutenance_sujet(e.target.value);
|
||||
|
||||
}}
|
||||
}}
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> Observation </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_soutenance_observation"
|
||||
id="detail_soutenance_observation"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_soutenance_observation}
|
||||
onChange={(e) => {
|
||||
setp_detail_soutenance_observation(e.target.value);
|
||||
|
||||
}}
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> Note </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_soutenance_note"
|
||||
id="detail_soutenance_note"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_soutenance_note}
|
||||
onChange={(e) => {
|
||||
setp_detail_soutenance_note(e.target.value);
|
||||
|
||||
}}
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
InputProps={{ style: { border: "1px solid gainsboro", width: '90%', padding:'2px', height:'5rem', margin:'auto' } }}
|
||||
|
||||
|
||||
multiline
|
||||
minRows={2}
|
||||
maxRows={2}
|
||||
rows={2}
|
||||
|
||||
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
|
||||
</div>
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
<div style={{ width: "100%" }}>
|
||||
<b> Observation </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: "100%" }}
|
||||
required
|
||||
name="detail_soutenance_observation"
|
||||
id="detail_soutenance_observation"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
//fullWidth
|
||||
// sx={{ width: "80%" }}
|
||||
//className="disabled_style"
|
||||
value={p_detail_soutenance_observation}
|
||||
onChange={(e) => {
|
||||
setp_detail_soutenance_observation(e.target.value);
|
||||
}}
|
||||
|
||||
InputProps={{ style: { border: "1px solid gainsboro", width: '90%', padding:'2px', height:'5rem', margin:'auto' } }}
|
||||
|
||||
|
||||
multiline
|
||||
minRows={2}
|
||||
maxRows={2}
|
||||
rows={2}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div style={{ width: "100%" }}>
|
||||
<b> Note </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: "80%" }}
|
||||
required
|
||||
name="detail_soutenance_note"
|
||||
id="detail_soutenance_note"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
//fullWidth
|
||||
// sx={{ width: "80%" }}
|
||||
//className="disabled_style"
|
||||
value={p_detail_soutenance_note}
|
||||
onChange={(e) => {
|
||||
setp_detail_soutenance_note(e.target.value);
|
||||
}}
|
||||
|
||||
InputProps={{ style: { border: "1px solid gainsboro", width: '90%', padding:'2px', margin:'auto' } }}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
|
||||
|
@ -6029,13 +6233,13 @@ const Jury = (props) => {
|
|||
|
||||
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
|
||||
|
||||
<Button variant="contained" className="bton_enreg" onClick={"Add_Update_Jury_Data"}>Enregistrer
|
||||
<Button variant="contained" className="bton_enreg" onClick={Add_Update_Jury_Soutenance_Data}>Enregistrer
|
||||
</Button>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }} >
|
||||
<Button variant="contained" className="bton_annule" onClick={"Annule_Add_One_Jury_DetailFields"} >Annuler
|
||||
<Button variant="contained" className="bton_annule" onClick={Annule_Jury_Soutenance_DetailFields} >Annuler
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue