branche_01062025
Cherif 2025-06-25 11:45:10 +02:00
parent 667ffccb49
commit a6baa4cbfe
29 changed files with 7108 additions and 3355 deletions

View File

@ -1,10 +1,10 @@
import React, { useState, useEffect } from "react";
import { BrowserRouter, Switch, Route } from "react-router-dom"
import { BrowserRouter, Route, Switch, useHistory } from "react-router-dom";
import './App.css';
import NotFound from './pages/NotFound'
import Contact from './pages/Contact'
import Connexion from './pages/Connexion'
import Login from './pages/Login';
import Recherche_new_v2 from "./pages/recherche_new_v2";
import Recherche_new_v3 from "./pages/recherche_new_v3";
@ -73,9 +73,11 @@ import New_Fonctionnalite_2025 from "./pages/new_p_fonctionnalite_2025";
import New_A_Propos_2025 from "./pages/new_p_a_propos_2025";
import New_Home_Page_2025 from "./pages/new_p_home_page_2025";
import Jmjformation_catalogue from "./pages/jmjformation_catalogue_public";
import New_Test_Header_Footer_2025 from "./pages/new_p_test_header_footer_2025";
import img_loading_spin from "./mysy_img/mysy_spin_loading.gif";
function App() {
@ -93,9 +95,12 @@ function App() {
return subdomain;
};
const history = useHistory();
const [isLoading, setLoading] = useState();
useEffect(() => {
setLoading(true);
let myurl = window.location.host;
let myurl_pathname = window.location.pathname;
@ -118,22 +123,28 @@ function App() {
var tab_action = ['/moncatalog', '/Display-Partner-Catalog-Detail-formation', 'Display-Partner-Catalog-Detail-formation', 'moncatalog'];
if (tab_myurl_pathname.length > 0 && !tab_action.includes(tab_myurl_pathname[1]) && !tab_reserved_subdomain.includes(subdomain)) {
var new_url = window.location.protocol + "//" + domain.split('.')[0] + "." + domain.split('.')[1] + "/moncatalog";
}
}
setLoading(false);
}, []);
return (
<div>
<div className="App">
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{/*API DEV = {process.env.REACT_APP_API_URL_DEV} <br/>
API REC = {process.env.REACT_APP_API_URL_REC}<br/>
API URL = {process.env.REACT_APP_API_URL}<br/>
@ -245,6 +256,7 @@ function App() {
<Route path="/" exact component={New_Home_Page_2025} />
<Route path="/jmjformation" exact component={Jmjformation_catalogue} />
{/* Debut Migration */}

View File

@ -221,57 +221,56 @@ const AddClassManual = (props) => {
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("formation", "write")) === "1" && <Popup
trigger={<Button
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'UE <i><font color="red"> définitivement supprimée de cette formation </font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_UE_From_Class(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, l'UE <i><font color="red"> définitivement supprimée de cette formation </font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_UE_From_Class(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
}
},
@ -305,53 +304,55 @@ const AddClassManual = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("formation", "write")) === "1" && <Popup
trigger={<Button
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la caractéristique financière sera <i><font color="red"> définitivement supprimée de cette formation </font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Given_Financial_Caracteristique(cellValues.row._id);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, la caractéristique financière sera <i><font color="red"> définitivement supprimée de cette formation </font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Given_Financial_Caracteristique(cellValues.row._id);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -417,55 +418,56 @@ const AddClassManual = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("formation", "write")) === "1" && <Popup
trigger={<Button
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'évaluation <i><font color="red"> définitivement supprimée de l'UE ainsi que de la formation </font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_evaluation_ue_class(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, l'évaluation <i><font color="red"> définitivement supprimée de l'UE ainsi que de la formation </font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_evaluation_ue_class(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
}
@ -2693,8 +2695,10 @@ const AddClassManual = (props) => {
};
function DataUpdated() {
setdatamodification("1");
setimportmessage();
if (String(props.check_user_acces_right("formation", "write")) === "1") {
setdatamodification("1");
setimportmessage();
}
}
@ -5614,7 +5618,6 @@ const AddClassManual = (props) => {
coefficient: JSON.parse(item).coefficient,
seuil_validation: JSON.parse(item).seuil_validation,
duration: JSON.parse(item).duration,
duration_unite: JSON.parse(item).duration_unite,
duration_concat: JSON.parse(item).duration_concat,
@ -5627,21 +5630,22 @@ const AddClassManual = (props) => {
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
clean_ue_data();
setgridline_ue_id(newSelectionModel.row.id);
setselected_ue_id(newSelectionModel.row._id)
if (String(props.check_user_acces_right("formation", "write")) === "1") {
clean_ue_data();
setgridline_ue_id(newSelectionModel.row.id);
setselected_ue_id(newSelectionModel.row._id)
var current_class_ue_data = New_Getall_Class_List_UE_result.filter((ue_data) => ue_data._id === String((newSelectionModel.row._id)))
var current_class_ue_data = New_Getall_Class_List_UE_result.filter((ue_data) => ue_data._id === String((newSelectionModel.row._id)))
// console.log(" ### current_class_ue_data[0] = ", current_class_ue_data[0]);
setselected_ue_credit_ects(current_class_ue_data[0]['credit']);
setselected_ue_is_noted(current_class_ue_data[0]['is_noted']);
setselected_ue_pres_dist_hyp(current_class_ue_data[0]['pres_dist_hyp']);
setselected_ue_coefficient(current_class_ue_data[0]['coefficient']);
setselected_ue_seuil_validation(current_class_ue_data[0]['seuil_validation']);
setadd_one_eu_to_class("0");
setDialog_Unite_Enseignement_open(true);
// console.log(" ### current_class_ue_data[0] = ", current_class_ue_data[0]);
setselected_ue_credit_ects(current_class_ue_data[0]['credit']);
setselected_ue_is_noted(current_class_ue_data[0]['is_noted']);
setselected_ue_pres_dist_hyp(current_class_ue_data[0]['pres_dist_hyp']);
setselected_ue_coefficient(current_class_ue_data[0]['coefficient']);
setselected_ue_seuil_validation(current_class_ue_data[0]['seuil_validation']);
setadd_one_eu_to_class("0");
setDialog_Unite_Enseignement_open(true);
}
}}
@ -5657,9 +5661,6 @@ const AddClassManual = (props) => {
getCellClassName={(params) => {
// Pour la gestion de la couleur de zone double cliquée
if (String(params.row.id) === String(ue_gridline_id)) {
return 'line--statut--selected';
@ -5706,7 +5707,7 @@ const AddClassManual = (props) => {
<br />
<div className="div_row" style={{ "border": "None" }}>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={(e) => {
Getall_Partner_List_UE();
setadd_one_eu_to_class("1")
@ -5716,7 +5717,7 @@ const AddClassManual = (props) => {
id='menu_import_participant' name='menu_import_participant'>Ajout 1 UE &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</div>
</div>}
</div>
</div>
</div>}
@ -5789,19 +5790,19 @@ const AddClassManual = (props) => {
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
if (String(props.check_user_acces_right("formation", "write")) === "1") {
setadd_ue_evalution("0");
setsetgridline_evaluation_ue_id(newSelectionModel.row.id);
setselected_eu_evalution_id(newSelectionModel.row.type_evaluation_id)
setselected_ue_id(newSelectionModel.row.class_ue_id);
setp_detail_max_note(newSelectionModel.row.max_note);
setp_detail_ponderation_type_eval(newSelectionModel.row.ponderation_type_eval);
setclass_unite_enseignement_type_evaluation_id(newSelectionModel.row._id);
setadd_ue_evalution("0");
setsetgridline_evaluation_ue_id(newSelectionModel.row.id);
setselected_eu_evalution_id(newSelectionModel.row.type_evaluation_id)
setselected_ue_id(newSelectionModel.row.class_ue_id);
setp_detail_max_note(newSelectionModel.row.max_note);
setp_detail_ponderation_type_eval(newSelectionModel.row.ponderation_type_eval);
setclass_unite_enseignement_type_evaluation_id(newSelectionModel.row._id);
Getall_Partner_Type_Evalution_List();
setDialog_Evaluation_Unite_Enseignement_open(true);
Getall_Partner_Type_Evalution_List();
setDialog_Evaluation_Unite_Enseignement_open(true);
}
}}
@ -5849,7 +5850,7 @@ const AddClassManual = (props) => {
<br />
<div className="div_row" style={{ "border": "None" }}>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={(e) => {
Getall_Partner_Type_Evalution_List();
setadd_ue_evalution("1")
@ -5859,7 +5860,7 @@ const AddClassManual = (props) => {
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Evaluation UE &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</div>
</div>}
</div>
<br />
@ -5873,7 +5874,7 @@ const AddClassManual = (props) => {
<a data-tooltip-id="detail_regle_calcul2" data-tooltip-html={New_Get_List_Regle_Calcul_Note_Formation_result.filter((data) => (data)._id === String(selected_class_note_calculation_id))[0].calcul_rule}>
<FcInfo />
</a>
<br/>
<br />
<Autocomplete
disablePortal
@ -5881,7 +5882,7 @@ const AddClassManual = (props) => {
id="regle_calcul_note_formation"
className="disabled_style"
options={New_Get_List_Regle_Calcul_Note_Formation_result}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
value={New_Get_List_Regle_Calcul_Note_Formation_result.filter((data) => (data)._id === String(selected_class_note_calculation_id))[0].label}
onChange={(event, value) => {
if (value && value._id) {
@ -5903,7 +5904,7 @@ const AddClassManual = (props) => {
</div>
</div>
{String(props.ispending) === String("0") && <div className="parter_div_filtrer_row">
{/*String(props.ispending) === String("0") && <div className="parter_div_filtrer_row">
{(String(datamodification) === String("1") || String(editor_tochange) === String("1")) && <div className="parter_div_filtrer_row_gauche" >
@ -5970,7 +5971,7 @@ const AddClassManual = (props) => {
</div>}
</div>}
</div>*/}
@ -5984,7 +5985,7 @@ const AddClassManual = (props) => {
<div style={{ "padding": "5px", "marginRight": "10px" }}>
<br />
<div className="div_row" style={{ "padding": "5px", "border": "None", "marginBottom": "1px" }}>
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row" style={{ "padding": "5px", "border": "None", "marginBottom": "1px" }}>
<div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
@ -6019,7 +6020,7 @@ const AddClassManual = (props) => {
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style enable_style"
value={p_detail_one_file_to_download_type_name}
onChange={(e) => {
@ -6040,7 +6041,7 @@ const AddClassManual = (props) => {
{Record_All_PJ_api && String(Record_All_PJ_api) === "false" && <div className="koUpdateData"> {Record_All_PJ_message} </div>}
</div>
</div>}
{file_1_name && file_1_name.name && <div className="div_row" style={{ "padding": "5px", "border": "none" }}>
@ -6066,7 +6067,7 @@ const AddClassManual = (props) => {
id={(JSON.parse(val).file_name)} onClick={Download_one_attached_document}> Télécharger &nbsp;</font></nav>
<Popup
{String(props.check_user_acces_right("formation", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -6114,7 +6115,7 @@ const AddClassManual = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</div>
))}
@ -6149,10 +6150,11 @@ const AddClassManual = (props) => {
required
name="external_code"
label="Code"
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_external_code}
@ -6173,7 +6175,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_title}
onChange={(e) => {
@ -6192,6 +6194,7 @@ const AddClassManual = (props) => {
className="disabled_style"
options={New_Getall_Training_Employee_No_Filter_result}
value={p_formateur_label}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onChange={(event, value) => {
if (value && value._id) {
setp_formateur_id(value._id);
@ -6225,6 +6228,7 @@ const AddClassManual = (props) => {
className="disabled_style"
options={cpf}
value={mycpf_label}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onChange={(event, value) => {
if (value && value.value) {
@ -6254,6 +6258,7 @@ const AddClassManual = (props) => {
className="disabled_style"
options={certif}
value={mycertif_label}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onChange={(event, value) => {
if (value && value.value) {
@ -6279,7 +6284,7 @@ const AddClassManual = (props) => {
<Autocomplete
disablePortal
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
name="class_level"
id="class_level"
className="disabled_style"
@ -6313,6 +6318,7 @@ const AddClassManual = (props) => {
className="disabled_style"
options={publiee}
value={mypublished_label}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onChange={(event, value) => {
if (value && value.value) {
// console.log(" value = ", value);
@ -6341,7 +6347,7 @@ const AddClassManual = (props) => {
<Autocomplete
disablePortal
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
name="training_support"
id="training_support"
className="disabled_style"
@ -6372,7 +6378,7 @@ const AddClassManual = (props) => {
{New_Get_List_Domaines_result && New_Get_List_Domaines_result.length > 0 && <div className="training_caract">
<Autocomplete
disablePortal
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
name="domaine"
id="domaine"
className="disabled_style"
@ -6404,7 +6410,7 @@ const AddClassManual = (props) => {
<div className="training_caract">
<Autocomplete
disablePortal
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
name="metier"
id="metier"
className="disabled_style"
@ -6436,7 +6442,7 @@ const AddClassManual = (props) => {
{(!mytrainingdomaine || String(mytrainingdomaine).trim().length <= 0 || String(mytrainingdomaine).trim() === "") && <div className="training_caract">
<Autocomplete
disablePortal
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
name="metier"
id="metier"
className="disabled_style"
@ -6467,7 +6473,7 @@ const AddClassManual = (props) => {
<div className="training_caract">
<Autocomplete
disablePortal
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
name="categorie"
id="categorie"
className="disabled_style"
@ -6499,7 +6505,7 @@ const AddClassManual = (props) => {
{(!mytrainingdomaine || String(mytrainingdomaine).trim().length <= 0 || String(mytrainingdomaine).trim() === "") && <div className="training_caract">
<Autocomplete
disablePortal
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
name="categorie"
id="categorie"
className="disabled_style"
@ -6529,7 +6535,7 @@ const AddClassManual = (props) => {
{New_Getall_Parter_referentiel_padagogique_result && New_Getall_Parter_referentiel_padagogique_result.length > 0 && <div className="training_caract">
<Autocomplete
disablePortal
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
name="ref_peda"
id="ref_peda"
className="disabled_style"
@ -6577,7 +6583,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_duree}
onChange={(e) => {
@ -6593,6 +6599,7 @@ const AddClassManual = (props) => {
name="duration_unit"
id="duration_unit"
className="disabled_style"
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
options={New_duration_unit_list}
value={mytrainingdurationunit}
onChange={(event, value) => {
@ -6621,7 +6628,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_price}
onChange={(e) => {
@ -6656,7 +6663,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_url}
onChange={(e) => {
@ -6674,7 +6681,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_lms_class_code}
onChange={(e) => {
@ -6693,7 +6700,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_class_inscription_url}
onChange={(e) => {
@ -6720,7 +6727,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_class_banner_img_url}
@ -6743,7 +6750,7 @@ const AddClassManual = (props) => {
shrink: true,
}}
inputProps={{ min: "1", max: "5", step: "0.5" }}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_note}
onChange={(e) => {
@ -6761,7 +6768,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_version_catalogue}
onChange={(e) => {
@ -6780,7 +6787,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_recyclage_delai}
onChange={(e) => {
@ -6799,7 +6806,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
value={p_detail_recyclage_alert}
onChange={(e) => {
@ -6840,7 +6847,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
onChange={(e) => {
change_champs_spec_handle(e.target.value);
@ -6857,7 +6864,7 @@ const AddClassManual = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
className="disabled_style"
onChange={(e) => {
change_champs_spec_handle(e.target.value);
@ -6929,7 +6936,7 @@ const AddClassManual = (props) => {
</div>}
{submenu && String(submenu) === "finance" && <div>
{submenu && String(submenu) === "finance" && String(props.check_user_acces_right("formation", "write")) === "1" && <div>
<div>
<div style={{ height: 550, width: '100%', paddingRight: '10px', paddingLeft: '10px' }}>
@ -6999,27 +7006,27 @@ const AddClassManual = (props) => {
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
if (String(props.check_user_acces_right("formation", "write")) === "1") {
setfinance_data_gridline_id(newSelectionModel.row.id);
setselected_finance_data_id(newSelectionModel.row._id)
setfinance_data_gridline_id(newSelectionModel.row.id);
setselected_finance_data_id(newSelectionModel.row._id)
var current_class_finance_data = New_Getall_Class_Finance_Caracteristic_result.filter((finance_data) => finance_data._id === String((newSelectionModel.row._id)))
var current_class_finance_data = New_Getall_Class_Finance_Caracteristic_result.filter((finance_data) => finance_data._id === String((newSelectionModel.row._id)))
// console.log(" ### current_class_ue_data = ", current_class_finance_data);
setp_detail_fin_data_code(current_class_finance_data[0]['code']);
setp_detail_fin_data_description(current_class_finance_data[0]['description']);
setp_detail_fin_data_commentaire(current_class_finance_data[0]['commentaire']);
setp_detail_fin_data_montant(current_class_finance_data[0]['montant']);
setp_detail_fin_data_type_cout(current_class_finance_data[0]['type_cout']);
if (String(current_class_finance_data[0]['inclus_calcul']) === "1")
setp_detail_fin_data_inclus_calcul(true);
else
setp_detail_fin_data_inclus_calcul(false);
// console.log(" ### current_class_ue_data = ", current_class_finance_data);
setp_detail_fin_data_code(current_class_finance_data[0]['code']);
setp_detail_fin_data_description(current_class_finance_data[0]['description']);
setp_detail_fin_data_commentaire(current_class_finance_data[0]['commentaire']);
setp_detail_fin_data_montant(current_class_finance_data[0]['montant']);
setp_detail_fin_data_type_cout(current_class_finance_data[0]['type_cout']);
if (String(current_class_finance_data[0]['inclus_calcul']) === "1")
setp_detail_fin_data_inclus_calcul(true);
else
setp_detail_fin_data_inclus_calcul(false);
setDialog_Financial_Data_open(true);
setDialog_Financial_Data_open(true);
}
}}
@ -7080,7 +7087,7 @@ const AddClassManual = (props) => {
<br />
<div className="div_row" style={{ "border": "None" }}>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={(e) => {
clean_financial_data_fields();
setDialog_Financial_Data_open(true);
@ -7089,7 +7096,7 @@ const AddClassManual = (props) => {
id='menu_import_participant' name='menu_import_participant'>Ajout 1 caracteristiques &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</div>
</div>}
</div>
</div>
@ -7105,15 +7112,13 @@ const AddClassManual = (props) => {
{submenu && String(submenu) === "detail_formation" && <div>
<div style={{ "width": "100%" }}>
{String(props.check_user_acces_right("formation", "write")) === "1" && <div style={{ "width": "100%" }}>
{String(datamodification) === String("1") && <div className="parter_div_filtrer_row">
<div className="koUpdateData" style={{ "color": "orange", "textAlign": "center" }}> /!\ Pensez à enregistrer les modifications</div>
</div>}
{String(props.ispending) === String("0") && <div className="parter_div_filtrer_row">
{(String(datamodification) === String("1") || String(editor_tochange) === String("1")) && <div className="parter_div_filtrer_row_gauche" >
<Button variant="contained" onClick={RecordTraining} startIcon={<AiTwotoneSave />} className="bton_enreg2">ENREGISTRER LA FORMATION </Button>
</div>
@ -7214,7 +7219,7 @@ const AddClassManual = (props) => {
{importmessage}
</div>}
</div>
</div>}
<div className="training_data">
@ -7225,12 +7230,11 @@ const AddClassManual = (props) => {
<nav className="nav_descrip_champs" > Description * (max 1000 caractères) &nbsp; </nav>
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
{String(props.check_user_acces_right("formation", "write")) === "1" && <a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
<nav className="nav_ia">
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
onClick={(e) => {
const regex = /(<([^>]+)>)/gi;
var initial_text_no_html = editorRef_description.current.getContent().replace(regex, " ");
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
@ -7243,12 +7247,13 @@ const AddClassManual = (props) => {
}} />
</nav>
</a>
</a>}
</div>
<Editor
onInit={(evt, editor) => editorRef_description.current = editor}
initialValue={field_description}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
@ -7281,7 +7286,7 @@ const AddClassManual = (props) => {
<nav className="nav_descrip_champs" > Objectif* (max 1000 caractères) &nbsp;
</nav>
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
{String(props.check_user_acces_right("formation", "write")) === "1" && <a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
<nav className="nav_ia">
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
@ -7299,13 +7304,14 @@ const AddClassManual = (props) => {
}} />
</nav>
</a>
</a>}
</div>
<Editor
onInit={(evt, editor) => editorRef_objectif.current = editor}
initialValue={field_objectif}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
@ -7336,7 +7342,7 @@ const AddClassManual = (props) => {
<nav className="nav_descrip_champs" > Programme (max 1000 caractères) &nbsp; </nav>
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
{String(props.check_user_acces_right("formation", "write")) === "1" && <a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
<nav className="nav_ia">
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
@ -7356,13 +7362,14 @@ const AddClassManual = (props) => {
}} />
</nav>
</a>
</a>}
</div>
<Editor
onInit={(evt, editor) => editorRef_programme.current = editor}
initialValue={field_programme}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
@ -7394,6 +7401,7 @@ const AddClassManual = (props) => {
onInit={(evt, editor) => editorRef_methode_pedago.current = editor}
initialValue={field_methode_pedago}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
@ -7426,6 +7434,7 @@ const AddClassManual = (props) => {
onInit={(evt, editor) => editorRef_suivi_eval.current = editor}
initialValue={field_suivi_eval}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
@ -7459,6 +7468,7 @@ const AddClassManual = (props) => {
onInit={(evt, editor) => editorRef_handicap.current = editor}
initialValue={field_handicap}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
@ -7489,7 +7499,7 @@ const AddClassManual = (props) => {
<div className="titre_training_text" style={{ "width": "100%", "float": "left" }}>
<nav className="nav_descrip_champs" > Pré-requis &nbsp; </nav>
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
{String(props.check_user_acces_right("formation", "write")) === "1" && <a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
<nav className="nav_ia">
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
@ -7507,13 +7517,14 @@ const AddClassManual = (props) => {
}} />
</nav>
</a>
</a>}
</div>
<Editor
onInit={(evt, editor) => editorRef_prerequis.current = editor}
initialValue={field_prerequis}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
@ -7545,6 +7556,7 @@ const AddClassManual = (props) => {
onInit={(evt, editor) => editorRef_pourqui.current = editor}
initialValue={field_pourqui}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
@ -7576,6 +7588,7 @@ const AddClassManual = (props) => {
onInit={(evt, editor) => editorRef_mots_cle.current = editor}
initialValue={field_mots_cle}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
@ -7606,7 +7619,7 @@ const AddClassManual = (props) => {
<nav className="nav_descrip_champs" > Plus produit &nbsp; </nav>
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
{String(props.check_user_acces_right("formation", "write")) === "1" && <a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
<nav className="nav_ia">
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
@ -7624,12 +7637,13 @@ const AddClassManual = (props) => {
}} />
</nav>
</a>
</a>}
</div>
<Editor
onInit={(evt, editor) => editorRef_plus_produit.current = editor}
initialValue={field_plus_produit}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
@ -7660,7 +7674,7 @@ const AddClassManual = (props) => {
<nav className="nav_descrip_champs" > Attestation : Contenu de la formation(max 800 caractères) <i> (à afficher sur l'attestation) </i> </nav>
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
{String(props.check_user_acces_right("formation", "write")) === "1" && <a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
<nav className="nav_ia">
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
@ -7678,12 +7692,13 @@ const AddClassManual = (props) => {
}} />
</nav>
</a>
</a>}
</div>
<Editor
onInit={(evt, editor) => editorRef_contenu_attestation.current = editor}
initialValue={field_contenu_attestation}
onKeyUp={editor_keyup}
disabled={!Boolean(props.check_user_acces_right("formation", "write"))}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
@ -7842,7 +7857,7 @@ const AddClassManual = (props) => {
</div>
</a>
<div className="div_row_droite_image">
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_droite_image">
<input type="file" id="files_img_class" accept="image/*" onChange={imglogoclasschangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /> <br />
<label for="files_img_class" className="bton_image_class">Charger une image</label><br />
<nav className="bton_supprime_image_class" onClick={removeRecodedClassImage}>Supprimer l'image</nav><br />
@ -7850,10 +7865,10 @@ const AddClassManual = (props) => {
{isimgclassdeleted && String(isimgclassdeleted) === "1" && <nav className="koUpdateData"> {isimgclassdeleted_message}</nav>}
{isimgclassdeleted && String(isimgclassdeleted) === "0" && <nav className="okUpdateData"> {isimgclassdeleted_message}</nav>}
{isimgclassSelected && String(isimgclassSaved) === "0" && <nav className="koUpdateData"> {isimgclassSaved_message}</nav>}
</div>
</div>}
</div>
<div className="div_row_bis tips_img_class">
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_bis tips_img_class">
<li>
L'image doit etre carrée.
</li>
@ -7867,7 +7882,7 @@ const AddClassManual = (props) => {
<li>
La taille de l'image ne doit pas dépasser 1 mega octet
</li>
</div>
</div>}
</div>
</Box>
@ -7965,7 +7980,6 @@ const AddClassManual = (props) => {
disablePortal
id="competence_nom"
name="competence_nom"
fullWidth
options={New_Getall_Employee_Statistic_Question_List_result}

View File

@ -353,12 +353,16 @@ const AddParnerClient = (props) => {
}
function DataUpdated() {
setdatamodification("1");
if (String(props.check_user_acces_right("client", "write")) === "1") {
setdatamodification("1");
}
}
function DataEditMode() {
setformedit_mode("1");
Enable_fields();
if (String(props.check_user_acces_right("client", "write")) === "1") {
setformedit_mode("1");
Enable_fields();
}
}
function AnnulerEdit() {
@ -371,23 +375,31 @@ const AddParnerClient = (props) => {
}
function DataUpdated_Invoice_Data() {
setdatamodification_invoice("1");
if (String(props.check_user_acces_right("client", "write")) === "1") {
setdatamodification_invoice("1");
}
}
function DataEditMode_Invoice_Data() {
setformedit_mode_invoice("1");
Enable_invoice_fields();
if (String(props.check_user_acces_right("client", "write")) === "1") {
setformedit_mode_invoice("1");
Enable_invoice_fields();
}
}
function DataUpdated_Contact_Data() {
setdatamodification_contact("1");
if (String(props.check_user_acces_right("client", "write")) === "1") {
setdatamodification_contact("1");
}
}
function DataEditMode_Contact_Data() {
setformedit_mode_contact("1");
Enable_contact_fields();
if (String(props.check_user_acces_right("client", "write")) === "1") {
setformedit_mode_contact("1");
Enable_contact_fields();
}
}
@ -3301,7 +3313,7 @@ const AddParnerClient = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> Gestion compte intranet </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> Gestion compte intranet </DialogTitle>
<DialogContent className="DialogContent_width" >
@ -3428,6 +3440,7 @@ const AddParnerClient = (props) => {
&nbsp; <br /><br />
<nav style={{ "paddingLeft": "10px" }}>
<Radio
disabled={Boolean(String(props.check_user_acces_right("client", "write")))}
checked={p_client_is_company === '1'}
onChange={(e) => {
DataEditMode();
@ -3443,7 +3456,7 @@ const AddParnerClient = (props) => {
},
}}
/>&nbsp;Société &nbsp;
/>&nbsp;Société &nbsp;
<Radio
checked={p_client_is_company === '0'}
@ -3458,6 +3471,7 @@ const AddParnerClient = (props) => {
/> &nbsp; Particulier
<Radio
checked={p_client_is_company === '2'}
disabled={Boolean(String(props.check_user_acces_right("client", "write")))}
onChange={(e) => {
DataEditMode();
setp_client_is_company('2');
@ -3930,6 +3944,7 @@ const AddParnerClient = (props) => {
<nav style={{ "paddingLeft": "10px" }}>
<Radio
checked={p_client_is_company === '1'}
disabled={Boolean(String(props.check_user_acces_right("client", "write")))}
onChange={(e) => {
DataEditMode();
setp_client_is_company('1');
@ -3949,6 +3964,8 @@ const AddParnerClient = (props) => {
<Radio
checked={p_client_is_company === '0'}
disabled={Boolean(String(props.check_user_acces_right("client", "write")))}
onChange={(e) => {
DataEditMode();
setp_client_is_company('0');
@ -3961,6 +3978,7 @@ const AddParnerClient = (props) => {
<Radio
checked={p_client_is_company === '2'}
disabled={Boolean(String(props.check_user_acces_right("client", "write")))}
onChange={(e) => {
DataEditMode();
setp_client_is_company('2');
@ -3983,8 +4001,10 @@ const AddParnerClient = (props) => {
cursor: 'pointer',
float: "left", textAlign: 'center'
}} onClick={(e) => {
setp_conf_new_login("");
setDialog_mysy_intranet_account_open(true);
if (String(props.check_user_acces_right("client", "write")) === "1") {
setp_conf_new_login("");
setDialog_mysy_intranet_account_open(true);
}
}}>
<MdManageAccounts style={{ fontSize: '20px' }} /> &nbsp;
@ -4310,13 +4330,14 @@ const AddParnerClient = (props) => {
<a data-tooltip-id="tooltip_financeur" data-tooltip-html="Si ce type s'applique aux organismes finaceurs, cliquez 'OUI' ">
<nav className="disabled_style" style={{ "height": '3rem', border: "none" }}
onChange={(e) => {
if (String(props.check_user_acces_right("client", "write")) === "1") {
DataEditMode();
if (p_client_is_financeur === true)
setp_client_is_financeur(false)
else {
DataEditMode();
if (p_client_is_financeur === true)
setp_client_is_financeur(false)
else {
setp_client_is_financeur(true);
setp_client_is_financeur(true);
}
}
}}
@ -4334,12 +4355,14 @@ const AddParnerClient = (props) => {
<a data-tooltip-id="tooltip_fsseur" data-tooltip-html="Si ce type s'applique aux fournisseurs, cliquez 'OUI' ">
<nav className="disabled_style" style={{ "height": '3rem', border: "none" }}
onChange={(e) => {
DataEditMode();
if (p_client_is_fournisseur === true)
setp_client_is_fournisseur(false)
else {
if (String(props.check_user_acces_right("client", "write")) === "1") {
DataEditMode();
if (p_client_is_fournisseur === true)
setp_client_is_fournisseur(false)
else {
setp_client_is_fournisseur(true);
setp_client_is_fournisseur(true);
}
}
}}
@ -4361,12 +4384,14 @@ const AddParnerClient = (props) => {
<a data-tooltip-id="tooltip_is_client" data-tooltip-html="Si ce type s'applique aux clients, cliquez 'OUI' ">
<nav className="disabled_style" style={{ "height": '3rem', border: "none" }}
onChange={(e) => {
DataEditMode();
if (p_client_is_client === true)
setp_client_is_client(false)
else {
if (String(props.check_user_acces_right("client", "write")) === "1") {
DataEditMode();
if (p_client_is_client === true)
setp_client_is_client(false)
else {
setp_client_is_client(true);
setp_client_is_client(true);
}
}
}}
@ -4383,11 +4408,11 @@ const AddParnerClient = (props) => {
&nbsp;
</div>
{String(datamodification) === "1" && <div className="div_row">
{String(props.check_user_acces_right("client", "write")) === "1" && String(datamodification) === "1" && <div className="div_row">
<div className="koUpdateData" style={{ "color": "orange", "textAlign": "center" }}> /!\ Pensez à enregistrer les modifications</div></div>}
{String(formedit_mode) === "1" && <div className="div_row">
{String(props.check_user_acces_right("client", "write")) === "1" && String(formedit_mode) === "1" && <div className="div_row">
<div className="div_row_gauche">
<Button variant="contained" color="success" className="bton_enreg " onClick={recordPartnerClient}>Enregistrer &nbsp; <AiTwotoneSave /> </Button>
</div>
@ -4398,7 +4423,7 @@ const AddParnerClient = (props) => {
}
{String(formedit_mode) !== "1" && <div className="div_row">
{String(props.check_user_acces_right("client", "write")) === "1" && String(formedit_mode) !== "1" && <div className="div_row">
<div className="div_row_droite" style={{ "textAlign": "right" }}>
<Button variant="contained" color="success" className="bton_edit" onClick={DataEditMode}> Editer </Button>
@ -4633,10 +4658,10 @@ const AddParnerClient = (props) => {
</div>
</div>
}
{String(formedit_mode_invoice) !== "1" && <div className="div_row">
{String(props.check_user_acces_right("client", "write")) === "1" && String(formedit_mode_invoice) !== "1" && <div className="div_row">
<div className="div_row_droite" style={{ "textAlign": "right" }}>
<Button variant="contained" color="success" className="bton_edit" onClick={DataEditMode_Invoice_Data}> Modifier</Button>
<Button variant="contained" color="success" className="bton_edit" onClick={DataEditMode_Invoice_Data}> Editer</Button>
</div>
</div>
}
@ -4646,7 +4671,7 @@ const AddParnerClient = (props) => {
{String(submenu).trim() === "submenu_contact" && <div className="training_data">
{String(addcontact) !== "1" && <div className="div_row" style={{ "marginLeft": "5px", "marginRight": "5px", "paddingRight": "10px" }}>
<div className="div_row" onClick={Add_Contact} style={{ "cursor": "pointer" }}> <AiOutlineUserAdd /> Ajouter un contact </div>
{String(props.check_user_acces_right("client", "write")) === "1" && <div className="div_row" onClick={Add_Contact} style={{ "cursor": "pointer" }}> <AiOutlineUserAdd /> Ajouter un contact </div>}
<div className="div_row scroll_mysy" style={{ "height": "30rem", }}>
<div className="contact_grid">
@ -4673,16 +4698,16 @@ const AddParnerClient = (props) => {
<nav style={{ "width": "10%", "float": "left" }}>
{String(props.check_user_acces_right("client", "write")) === "1" && <nav style={{ "width": "10%", "float": "left" }}>
<Tooltip className="tooltip_css" id="tooltip_edit" />
<a data-tooltip-id="tooltip_edit" data-tooltip-html="Editer le contact">
<CiEdit style={{ "border": "1px solid", "cursor": "pointer" }} contactmail={String(JSON.parse(client).email)} contact_id={String(JSON.parse(client)._id)} onClick={Display_Part_Client_Contact} /> &nbsp; &nbsp;
</a>
</nav>
</nav>}
<Popup
{String(props.check_user_acces_right("client", "write")) === "1" && <Popup
trigger={
<nav style={{ "width": "10%", "float": "right", "cursor": "pointer" }}>
<Tooltip className="tooltip_css" id="tooltip_delete" />
@ -4736,7 +4761,7 @@ const AddParnerClient = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</nav>
@ -5087,9 +5112,9 @@ const AddParnerClient = (props) => {
<Button variant="contained" color="success" className="bton_enreg " onClick={retour_liste_contact}>Liste Contacts &nbsp; <GrOrderedList /> </Button>
</div>
<div className="div_row_droite" style={{ "textAlign": "right" }}>
{String(props.check_user_acces_right("client", "write")) === "1" && <div className="div_row_droite" style={{ "textAlign": "right" }}>
<Button variant="contained" color="success" className="bton_edit" onClick={DataEditMode_Contact_Data}> Editer</Button>
</div>
</div>}
</div>
}
@ -5109,7 +5134,7 @@ const AddParnerClient = (props) => {
<div className="div_row">
<div className="div_row" style={{ "padding": "5px" }}>
<div style={{ "fontSize": "12px" }}>
{String(props.check_user_acces_right("client", "write")) === "1" && <div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
<input
style={{ display: "none" }}
@ -5130,7 +5155,7 @@ const AddParnerClient = (props) => {
</Fab>
</label>
</div>
</div>}
{file_1_name && file_1_name.name &&
<nav style={{ "fontSize": "12px" }}>
<div className="session_caract">Nom du fichier <br />
@ -5189,7 +5214,7 @@ const AddParnerClient = (props) => {
name={(JSON.parse(val).file_name)}
id={(JSON.parse(val).file_name)} onClick={Download_one_attached_document}> Télécharger &nbsp;</font></nav>
<Popup
{String(props.check_user_acces_right("client", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -5237,7 +5262,7 @@ const AddParnerClient = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</div>
))}

View File

@ -222,7 +222,6 @@ const Apprenant = (props) => {
field: "Detail", headerName: 'Voir détail', disableExport: true,
renderCell: (cellValues) => {
return (
<Button
onClick={(event) => {
@ -234,6 +233,7 @@ const Apprenant = (props) => {
</Button>
);
}
},
@ -242,54 +242,55 @@ const Apprenant = (props) => {
field: "delete", headerName: 'Supprimer', disableExport: true,
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
trigger={<Button
<Popup
trigger={<Button
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'apprenant sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_Apprenant(event, cellValues);
close();
}}> Valider </button>
En confirmant cette opération, l'apprenant sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_Apprenant(event, cellValues);
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -488,53 +489,55 @@ const Apprenant = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
trigger={<Button
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, le suivi pédagogique sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_suivi_pedago(event, cellValues);
close();
}}> Valider </button>
En confirmant cette opération, le suivi pédagogique sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_suivi_pedago(event, cellValues);
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -655,7 +658,7 @@ const Apprenant = (props) => {
const [p_detail_email, setp_detail_email] = useState("");
const [p_detail_naissance, setp_detail_naissance] = useState(new Date().toLocaleDateString('fr-FR'));
const [p_detail_is_ent_compte, setp_detail_is_ent_compte] = useState("");
const [p_detail_is_ent_compte, setp_detail_is_ent_compte] = useState("");
// ajout 04/06/2025
const [p_detail_is_handicap, setp_detail_is_handicap] = useState(false);
@ -843,7 +846,7 @@ const Apprenant = (props) => {
setp_detail_civilite("");
}
if (mylocaltraining.is_ent_compte) {
if (mylocaltraining.is_ent_compte) {
setp_detail_is_ent_compte(mylocaltraining.is_ent_compte);
} else {
setp_detail_is_ent_compte("");
@ -7248,7 +7251,7 @@ const Apprenant = (props) => {
employeur: JSON.parse(item).employeur,
client_nom: JSON.parse(item).client_rattachement_nom,
is_ent_compte: JSON.parse(item).is_ent_compte,
is_ent_compte: JSON.parse(item).is_ent_compte,
}
@ -7333,7 +7336,7 @@ const Apprenant = (props) => {
<div className="div_row">
{selectionModel && selectionModel.length >= 1 && <div className="block_en_mass">
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && selectionModel && selectionModel.length >= 1 && <div className="block_en_mass">
<nav >Traitement en masse </nav>
&nbsp;
<Autocomplete
@ -7369,7 +7372,7 @@ const Apprenant = (props) => {
{actionmass_ftion_val && <nav className='block_en_mass_bton_action'>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && actionmass_ftion_val && <nav className='block_en_mass_bton_action'>
<Popup
trigger={<Button className="bton_enreg" style={{ "width": "90%" }}>
@ -7450,7 +7453,7 @@ const Apprenant = (props) => {
<div className="div_row" style={{ "border": "None" }}>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={submenu_import_apprenant} className="detail_class_submenu bton_import_excel"
id='menu_import_participant' name='menu_import_participant'>Importer des apprenants excel &nbsp;
@ -7478,7 +7481,7 @@ const Apprenant = (props) => {
/>
<a href='/sample/template_import_apprenant.csv' download>Télécharger un fichier modèle</a>
</div>
</div>}
</div>
<div className="div_row" ref={myRef_details} id="myRef_details"> &nbsp;</div>
@ -7498,7 +7501,7 @@ const Apprenant = (props) => {
</div>}
{String(add_One_Apprenant) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(add_One_Apprenant) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }}>
<nav style={{
@ -8130,7 +8133,7 @@ const Apprenant = (props) => {
</div>
<div className="div_row_gauche_image">
{<input type="file" id="files_img_class" accept="image/*" onChange={imglogoclasschangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} />}
{<nav>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <nav>
<Tooltip className="tooltip_css" id="tooltip_speacker" />
<a data-tooltip-id="tooltip_speacker" data-tooltip-html=" <div className='div_row_bis tips_img_class'>
<li>
@ -8900,26 +8903,26 @@ const Apprenant = (props) => {
</div>
</div>
{String(apprenant_data_changed) === "1" && String(apprenant_data_edit_mode) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(apprenant_data_changed) === "1" && String(apprenant_data_edit_mode) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
/!\ Pensez à enregistrer les modifications
</div>}
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(apprenant_data_changed) === "1" && String(apprenant_data_edit_mode) === "1" && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(apprenant_data_changed) === "1" && String(apprenant_data_edit_mode) === "1" && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
<Button variant="contained" className="bton_enreg" onClick={Update_Apprenant_Data}>Enregistrer les modifications
</Button>
</div>}
{String(apprenant_data_edit_mode) === "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }} >
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(apprenant_data_edit_mode) === "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }} >
<Button variant="contained" className="bton_annule" onClick={Annule_Detail_Apprenant_Fields}>Annuler
</Button>
</div>}
</div>
{String(apprenant_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(apprenant_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Detail_Apprenant_Fields}>Editer
</Button>
@ -9077,12 +9080,12 @@ const Apprenant = (props) => {
</div>
<div className="tuteur_field" style={{ "cursor": "pointer" }} onClick={(e) => {
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <div className="tuteur_field" style={{ "cursor": "pointer" }} onClick={(e) => {
setquel_tuteur("1");
setDialog_tuteur_1_open(true);
}}> Voir plus <RiMoreFill /> <FcEditImage style={{ "fontSize": "large" }} />
</div>
</div>}
@ -9226,12 +9229,12 @@ const Apprenant = (props) => {
</div>
<div className="tuteur_field" style={{ "cursor": "pointer" }} onClick={(e) => {
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <div className="tuteur_field" style={{ "cursor": "pointer" }} onClick={(e) => {
setquel_tuteur("2");
setDialog_tuteur_1_open(true);
}}> Voir plus <RiMoreFill /> <FcEditImage style={{ "fontSize": "large" }} />
</div>
</div>}
</div>
</div>
</div>
@ -9260,7 +9263,7 @@ const Apprenant = (props) => {
</div>
{String(apprenant_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(apprenant_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Detail_Apprenant_Fields}>Editer
</Button>
@ -9417,11 +9420,11 @@ const Apprenant = (props) => {
<Button variant="outlined" onClick={submenu_add_one_inscription}
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Button variant="outlined" onClick={submenu_add_one_inscription}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajouter 1 inscription &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
<br />
@ -9439,7 +9442,9 @@ const Apprenant = (props) => {
inscription_id={selected_apprenant_id}
related_collection={"apprenant"}
read_access={props.read_access}
write_access={props.write_access} />
write_access={props.write_access}
check_user_acces_right={props.check_user_acces_right}
origin={"apprenant"} />
</div>}
{String(display_detail_historique) === "1" && String(add_One_Apprenant) !== "1" && selected_apprenant_id && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
@ -9452,7 +9457,7 @@ const Apprenant = (props) => {
<div className="div_row" >
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "padding": "5px" }}> Pièces Jointes </nav>
<div className="div_row" style={{ "padding": "5px" }}>
<div style={{ "fontSize": "12px" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
<input
style={{ display: "none" }}
@ -9474,7 +9479,7 @@ const Apprenant = (props) => {
</Fab>
</label>
</div>
</div>}
{file_1_name && file_1_name.name &&
<nav style={{ "fontSize": "12px" }}>
<div className="session_caract">Nom du fichier <br />
@ -9528,7 +9533,7 @@ const Apprenant = (props) => {
{Get_List_Of_All_PJ_result && Get_List_Of_All_PJ_result.map((val) => (
<div className="div_row_list_pj" >
<nav style={{ "color": "green", "cursor": "pointer" }} onClick={Download_one_attached_document} name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}> Télécharger &nbsp;<i> {(JSON.parse(val).file_business_object)}</i> </nav> <br />
<Popup
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -9576,7 +9581,7 @@ const Apprenant = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</div>
))}
@ -9726,11 +9731,11 @@ const Apprenant = (props) => {
<Button variant="outlined" onClick={add_suivi_ped_funct}
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Button variant="outlined" onClick={add_suivi_ped_funct}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Suivi &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
<br />
@ -10496,7 +10501,7 @@ const Apprenant = (props) => {
</div>
{String(given_suivi_ped_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(given_suivi_ped_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Suivi_Pedago_Fields}>Editer
</Button>

View File

@ -576,7 +576,7 @@ const DisplayDetailClass_new_v2 = (props) => {
//console.log(" ON PASSE&nbsp; au&nbsp;MIN");
var local_tmp_val = 2100 + decalage_pr_certificat;
var local_main_h_px = 4800 + decalage_pr_certificat;
local_tmp = local_tmp_val + "px";
main_h_px = local_main_h_px + "px";

View File

@ -432,89 +432,14 @@ const DisplayPartnerPromotion = (props) => {
},
{ field: 'duration', headerName: 'Durée', minWidth: datagrid_columns_size_model2, align: "center", hide: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
/* {
field: "Detail", headerName: 'Voir détail', disableExport: true,
renderCell: (cellValues) => {
return (
<Button
onClick={(event) => {
setLoading(true);
setsessionChanged(false);
handleClick_edit_session_From_Line(cellValues.row.id); }}
>
<FcViewDetails />
</Button>
);
}
},*/
/* {
field: "delete", headerName: 'Supprimer', disableExport: true,
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
onClick={(event) => {
//handleClick_delete_Session_Formation(event, cellValues);
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la promotion de formation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_Session_Formation(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>
);
}
},*/
{
field: 'bton_vertif', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center",
renderCell: (cellValues) => {
return (
<div>
<nav style={{ width: '100%', 'textAlign': 'center' }}>
{String(props.check_user_acces_right("session", "write")) === "1" && <nav style={{ width: '100%', 'textAlign': 'center' }}>
<IconButton
aria-label="more"
id="long-button2"
@ -724,7 +649,7 @@ const DisplayPartnerPromotion = (props) => {
</Dialog>}
{/*** FIN GESTION Dialog menu item pour suppression*/}
</nav>
</nav>}
</div>
);
},
@ -850,54 +775,57 @@ const DisplayPartnerPromotion = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("session", "write")) === "1" && <Popup
trigger={<Button
onClick={(event) => {
handleClick_accept(event, cellValues);
}}
onClick={(event) => {
handleClick_accept(event, cellValues);
}}
>
<FcAcceptDatabase />
</Button>}
modal
nested
position="center center"
>
<FcAcceptDatabase />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
Confirmer la mise à jour des informations du stagiaire
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_update_data(event, cellValues);
close();
}}> Valider </button>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
Confirmer la mise à jour des informations du stagiaire
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_update_data(event, cellValues);
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
}
@ -910,7 +838,7 @@ const DisplayPartnerPromotion = (props) => {
return (
<div>
<nav style={{ width: '100%', 'textAlign': 'center' }}>
{String(props.check_user_acces_right("session", "write")) === "1" && <nav style={{ width: '100%', 'textAlign': 'center' }}>
<IconButton
aria-label="more"
id="long-button"
@ -1262,7 +1190,7 @@ const DisplayPartnerPromotion = (props) => {
{/*** FIN GESTION Dialog pour supprimer preinscription*/}
</nav>
</nav>}
</div>
);
@ -1377,36 +1305,38 @@ const DisplayPartnerPromotion = (props) => {
field: "split_invoice", headerName: 'Eclat. Fact',
renderCell: (cellValues) => {
return (
<Button
<>
{String(props.check_user_acces_right("session", "write")) === "1" && <Button
onClick={(event) => {
onClick={(event) => {
if (String(cellValues.row.client_rattachement_id) === String(cellValues.row.client_facture)) {
// alert(" Le client facturé est le même que client. Aucun partage à faire");
setdisplay_alert_mysy("1");
setalert_message("Le client facturé est le même que client. Aucun partage à faire");
setalert_type("error");
return;
}
setselected_inscription_id(cellValues.row._id);
setp_detail_invoice_split_type("percent");
setp_detail_invoice_split_client_rattachement_id(cellValues.row.client_rattachement_id);
setp_detail_invoice_split_facture_client_rattachement_id(cellValues.row.client_facture);
setp_detail_invoice_split_inscrit_nom(cellValues.row.nom);
setp_detail_invoice_split_inscrit_prenom(cellValues.row.prenom);
setp_detail_invoice_split_facture_done(cellValues.row.invoiced);
if (String(cellValues.row.client_rattachement_id) === String(cellValues.row.client_facture)) {
// alert(" Le client facturé est le même que client. Aucun partage à faire");
setdisplay_alert_mysy("1");
setalert_message("Le client facturé est le même que client. Aucun partage à faire");
setalert_type("error");
return;
}
setselected_inscription_id(cellValues.row._id);
setp_detail_invoice_split_type("percent");
setp_detail_invoice_split_client_rattachement_id(cellValues.row.client_rattachement_id);
setp_detail_invoice_split_facture_client_rattachement_id(cellValues.row.client_facture);
setp_detail_invoice_split_inscrit_nom(cellValues.row.nom);
setp_detail_invoice_split_inscrit_prenom(cellValues.row.prenom);
setp_detail_invoice_split_facture_done(cellValues.row.invoiced);
setp_detail_invoice_split_changed("");
setp_detail_invoice_split_changed("");
Get_Inscription_Split_Invoice(cellValues.row._id);
setDialog_SPLIT_INVOICE_open(true);
Get_Inscription_Split_Invoice(cellValues.row._id);
setDialog_SPLIT_INVOICE_open(true);
}}
>
{cellValues.row.has_invoice_split && String(cellValues.row.has_invoice_split) !== "1" && <AccountTreeIcon style={{ color: "blue" }} />}
{cellValues.row.has_invoice_split && String(cellValues.row.has_invoice_split) === "1" && <AccountTreeIcon style={{ color: "green" }} />}
}}
>
{cellValues.row.has_invoice_split && String(cellValues.row.has_invoice_split) !== "1" && <AccountTreeIcon style={{ color: "blue" }} />}
{cellValues.row.has_invoice_split && String(cellValues.row.has_invoice_split) === "1" && <AccountTreeIcon style={{ color: "green" }} />}
</Button>
</Button>}
</>
);
@ -1421,7 +1351,7 @@ const DisplayPartnerPromotion = (props) => {
return (
<div>
<nav style={{ width: '100%', 'textAlign': 'center' }}>
{String(props.check_user_acces_right("session", "write")) === "1" && <nav style={{ width: '100%', 'textAlign': 'center' }}>
<IconButton
aria-label="more"
id="long-button"
@ -1666,7 +1596,7 @@ const DisplayPartnerPromotion = (props) => {
{/*** FIN GESTION Dialog menu item pour push lms*/}
</nav>
</nav>}
</div>
);
@ -1768,22 +1698,24 @@ const DisplayPartnerPromotion = (props) => {
renderCell: (cellValues) => {
return (
<Button
<>
{String(props.check_user_acces_right("session", "write")) === "1" && <Button
onClick={(event) => {
onClick={(event) => {
setp_detail_emargement_comment(cellValues.row.comment);
setp_detail_emargement_comment(cellValues.row.comment);
setselected_emargement_user(cellValues.row.prenom + " " + cellValues.row.nom);
setselected_emargement_date("Du " + cellValues.row.sequence_start + " au " + cellValues.row.sequence_end);
setselected_emargement_id(cellValues.row._id);
setDialog_COMMENT_EMARGEMENTE_open(true);
}}
>
<FcComments />
setselected_emargement_user(cellValues.row.prenom + " " + cellValues.row.nom);
setselected_emargement_date("Du " + cellValues.row.sequence_start + " au " + cellValues.row.sequence_end);
setselected_emargement_id(cellValues.row._id);
setDialog_COMMENT_EMARGEMENTE_open(true);
}}
>
<FcComments />
</Button>
</Button>}
</>
);
}
@ -1854,40 +1786,42 @@ const DisplayPartnerPromotion = (props) => {
renderCell: (cellValues) => {
return (
<Button
<>
{String(props.check_user_acces_right("session", "write")) === "1" && <Button
onClick={(event) => {
onClick={(event) => {
setsequence_gridline_id(cellValues.row.id);
setselected_detail_sequence_title(cellValues.row.sequence_title);
setsequence_gridline_id(cellValues.row.id);
setselected_detail_sequence_title(cellValues.row.sequence_title);
setselected_sequence_startDate(cellValues.row.sequence_start);
setselected_sequence_endDate(cellValues.row.sequence_end);
setselected_sequence_startDate(cellValues.row.sequence_start);
setselected_sequence_endDate(cellValues.row.sequence_end);
setp_detail_sequence_agenda(cellValues.row.agenda);
setp_detail_sequence_objectif(cellValues.row.objectif);
setp_detail_sequence_comment(cellValues.row.commentaire);
setp_detail_sequence_agenda(cellValues.row.agenda);
setp_detail_sequence_objectif(cellValues.row.objectif);
setp_detail_sequence_comment(cellValues.row.commentaire);
Getall_List_Sequence_Ressource(cellValues.row._id);
Getall_List_Sequence_Ressource(cellValues.row._id);
setselected_sequence_id(cellValues.row._id);
setdisplay_detail_sequence("1");
setselected_sequence_id(cellValues.row._id);
setdisplay_detail_sequence("1");
Get_List_Of_All_PJ_For_Session(cellValues.row._id);
Get_List_Of_All_PJ_For_Session(cellValues.row._id);
if (document.getElementById('myRef_seq_ressource')) {
var divh = document.getElementById('myRef_seq_ressource').offsetTop;
window.scrollTo({
top: divh,
behavior: "smooth",
});
}
if (document.getElementById('myRef_seq_ressource')) {
var divh = document.getElementById('myRef_seq_ressource').offsetTop;
window.scrollTo({
top: divh,
behavior: "smooth",
});
}
}}
>
<FcViewDetails />
}}
>
<FcViewDetails />
</Button>
</Button>}
</>
);
}
@ -1898,31 +1832,33 @@ const DisplayPartnerPromotion = (props) => {
renderCell: (cellValues) => {
return (
<Button
<>
{String(props.check_user_acces_right("session", "write")) === "1" && <Button
onClick={(event) => {
onClick={(event) => {
setsequence_gridline_id(cellValues.row.id);
setdisplay_detail_sequence("");
setp_detail_sequence_title(cellValues.row.sequence_title);
setselected_sequence_id(cellValues.row._id);
var date_du = new Date(moment(cellValues.row.sequence_start, "DD/MM/YYYY HH:mm"));
var date_au = new Date(moment(cellValues.row.sequence_end, "DD/MM/YYYY HH:mm"));
setsequence_gridline_id(cellValues.row.id);
setdisplay_detail_sequence("");
setp_detail_sequence_title(cellValues.row.sequence_title);
setselected_sequence_id(cellValues.row._id);
var date_du = new Date(moment(cellValues.row.sequence_start, "DD/MM/YYYY HH:mm"));
var date_au = new Date(moment(cellValues.row.sequence_end, "DD/MM/YYYY HH:mm"));
setsequence_startDate(date_du);
setsequence_endDate(date_au);
setsequence_startDate(date_du);
setsequence_endDate(date_au);
setp_detail_sequence_agenda(cellValues.row.agenda);
setp_detail_sequence_objectif(cellValues.row.objectif);
setp_detail_sequence_comment(cellValues.row.commentaire);
setp_detail_sequence_agenda(cellValues.row.agenda);
setp_detail_sequence_objectif(cellValues.row.objectif);
setp_detail_sequence_comment(cellValues.row.commentaire);
setupdate_sequence("1");
submenu_update_sequence();
}}
>
<FcViewDetails />
setupdate_sequence("1");
submenu_update_sequence();
}}
>
<FcViewDetails />
</Button>
</Button>}
</>
);
}
@ -1933,56 +1869,59 @@ const DisplayPartnerPromotion = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("session", "write")) === "1" && <Popup
trigger={<Button
onClick={(event) => {
onClick={(event) => {
}}
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la séquence sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Data(cellValues.row._id);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, la séquence sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Data(cellValues.row._id);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -2007,57 +1946,60 @@ const DisplayPartnerPromotion = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("session", "write")) === "1" && <Popup
trigger={<Button
onClick={(event) => {
onClick={(event) => {
}}
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la ressource sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Ressource_Data(cellValues.row._id);
console.log('cellValues.row = ', cellValues.row);
close();
}}> Valider </button>
En confirmant cette opération, la ressource sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Ressource_Data(cellValues.row._id);
console.log('cellValues.row = ', cellValues.row);
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -2095,53 +2037,56 @@ const DisplayPartnerPromotion = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("session", "write")) === "1" && <Popup
trigger={<Button
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la caractéristique financière sera <i><font color="red"> définitivement supprimée de cette formation </font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Given_Financial_Caracteristique(cellValues.row._id);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, la caractéristique financière sera <i><font color="red"> définitivement supprimée de cette formation </font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Given_Financial_Caracteristique(cellValues.row._id);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -6909,7 +6854,7 @@ const DisplayPartnerPromotion = (props) => {
setalert_type("success");
if (document.getElementById('myRef_head')) {
if (document.getElementById('myRef_head')) {
var divh = document.getElementById('myRef_head').offsetTop;
window.scrollTo({
@ -20784,7 +20729,7 @@ const DisplayPartnerPromotion = (props) => {
<div className="div_row">
{selectionModel && selectionModel.length >= 1 && <div className="block_en_mass">
{String(props.check_user_acces_right("session", "write")) === "1" && selectionModel && selectionModel.length >= 1 && <div className="block_en_mass">
<nav >Traitement en masse </nav>
&nbsp;
<TextField
@ -20946,18 +20891,22 @@ const DisplayPartnerPromotion = (props) => {
<Button variant="outlined" onClick={submenu_preinscrit} className="detail_class_submenu" id='preinscrit' name='preinscrit'>Preinscript. ({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>
<Button variant="outlined" onClick={submenu_editique} className="detail_class_submenu" id='editique' name='editique' style={{ background: '#6C3483', color: "#FFFFFF", "fontWeight": '700' }}>Gestion </Button>
<Button variant="outlined" onClick={submenu_emargement} className="detail_class_submenu" id='emargement' name='emargement'>Emargement </Button>
{/*<Button variant="outlined" onClick={submenu_evaluation} className="detail_class_submenu" id='menu_eval' name='menu_eval'>Les avis (old)</Button>*/}
<Button variant="outlined" onClick={submenu_attestation} className="detail_class_submenu" id='menu_eval' name='menu_eval'>Attestation</Button>
<Button variant="outlined" onClick={submenu_q_positionnement} className="detail_class_submenu" id='q_positionnement' name='q_positionnement'>Q. Position </Button>
<Button variant="outlined" ref={myRef} onClick={submenu_evaluation_session} className="detail_class_submenu" id='evaluation_session' name='evaluation_session'> Evaluation</Button>
<Button variant="outlined" onClick={submenu_finance} className="detail_class_submenu" id='finance' name='finance'>Finance </Button>
{String(props.check_user_acces_right("session", "write")) === "1" &&
<Button variant="outlined" onClick={submenu_editique} className="detail_class_submenu" id='editique' name='editique' style={{ background: '#6C3483', color: "#FFFFFF", "fontWeight": '700' }}>Gestion </Button>}
{String(props.check_user_acces_right("session", "write")) === "1" &&
<Button variant="outlined" onClick={submenu_emargement} className="detail_class_submenu" id='emargement' name='emargement'>Emargement </Button>}
{/*<Button variant="outlined" onClick={submenu_evaluation} className="detail_class_submenu" id='menu_eval' name='menu_eval'>Les avis (old)</Button>*/}
{String(props.check_user_acces_right("session", "write")) === "1" && <Button variant="outlined" onClick={submenu_attestation} className="detail_class_submenu" id='menu_eval' name='menu_eval'>Attestation</Button>}
{String(props.check_user_acces_right("session", "write")) === "1" && <Button variant="outlined" onClick={submenu_q_positionnement} className="detail_class_submenu" id='q_positionnement' name='q_positionnement'>Q. Position </Button>}
{String(props.check_user_acces_right("session", "write")) === "1" && <Button variant="outlined" ref={myRef} onClick={submenu_evaluation_session} className="detail_class_submenu" id='evaluation_session' name='evaluation_session'> Evaluation</Button>}
{String(props.check_user_acces_right("session", "write")) === "1" && <Button variant="outlined" onClick={submenu_finance} className="detail_class_submenu" id='finance' name='finance'>Finance </Button>}
<Button variant="outlined" onClick={submenu_piece_jointe} className="detail_class_submenu" id='piece_jointe' name='piece_jointe'>Pièces Jointes </Button>
{String(props.formation_initiale) === "1" && <Button variant="outlined" onClick={submenu_notes_classement} className="detail_class_submenu" id='notes_classement' name='notes_classement'>Notes & Classem.</Button>}
{String(props.check_user_acces_right("session", "write")) === "1" && String(props.formation_initiale) === "1" && <Button variant="outlined" onClick={submenu_notes_classement} className="detail_class_submenu" id='notes_classement' name='notes_classement'>Notes & Classem.</Button>}
@ -21981,7 +21930,7 @@ const DisplayPartnerPromotion = (props) => {
/!\ Pensez à enregistrer les modifications
</div>}
{<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("session", "write")) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
@ -22865,7 +22814,7 @@ const DisplayPartnerPromotion = (props) => {
</Box>
{selectionModel_sequence && selectionModel_sequence.length > 1 &&
{String(props.check_user_acces_right("session", "write")) === "1" && selectionModel_sequence && selectionModel_sequence.length > 1 &&
<div className="block_en_mass">
<nav>Traitement en masse / Séquence</nav>
&nbsp;<select
@ -23602,7 +23551,7 @@ const DisplayPartnerPromotion = (props) => {
/>
</Box>
{selectionModel_preinsc && selectionModel_preinsc.length >= 1 &&
{String(props.check_user_acces_right("session", "write")) === "1" && selectionModel_preinsc && selectionModel_preinsc.length >= 1 &&
<div className="div_row" style={{ "border": "none", "marginLeft": "10px" }}>
<div className="block_en_mass">
<nav className='traitement_mass'>Traitement en masse</nav>
@ -23707,7 +23656,7 @@ const DisplayPartnerPromotion = (props) => {
</div>}
<br />
{String(addOneParticipant) !== "1" && selected_code_session && selected_internal_url &&
{String(props.check_user_acces_right("session", "write")) === "1" && String(addOneParticipant) !== "1" && selected_code_session && selected_internal_url &&
<div id='ajout_participant' style={{ "textAlign": "left", "float": "left", "width": "100%", padding: '10px' }}>
<Button variant="outlined"
@ -24494,7 +24443,7 @@ const DisplayPartnerPromotion = (props) => {
/>
</Box>
{selectionModel_insc && selectionModel_insc.length >= 1 &&
{String(props.check_user_acces_right("session", "write")) === "1" && selectionModel_insc && selectionModel_insc.length >= 1 &&
<div className="block_en_mass">
<nav className='traitement_mass'>Traitement en masse / Inscrit</nav>
&nbsp;
@ -24631,7 +24580,7 @@ const DisplayPartnerPromotion = (props) => {
<br />
{String(addOneParticipant) !== "1" && selected_code_session && selected_internal_url && <div id='ajout_participant' style={{ "textAlign": "left", "float": "left", "width": "100%", padding: '10px' }}>
{String(props.check_user_acces_right("session", "write")) === "1" && String(addOneParticipant) !== "1" && selected_code_session && selected_internal_url && <div id='ajout_participant' style={{ "textAlign": "left", "float": "left", "width": "100%", padding: '10px' }}>
<Button variant="outlined"
@ -25465,7 +25414,7 @@ const DisplayPartnerPromotion = (props) => {
</div>}
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("session", "write")) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(participant_data_edit_mode) === "1" &&
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
@ -25479,10 +25428,10 @@ const DisplayPartnerPromotion = (props) => {
<Button variant="contained" className="bton_annule" onClick={AnnuleAttendeeDetailFields}>Annuler
</Button>
</div>}
</div>
</div>}
{String(participant_data_edit_mode) !== "1" && <div className="div_row" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("session", "write")) === "1" && String(participant_data_edit_mode) !== "1" && <div className="div_row" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
@ -26076,7 +26025,7 @@ const DisplayPartnerPromotion = (props) => {
<div className="div_row"> &nbsp; </div>
<div className="div_row">
{selectionModel_emarg && selectionModel_emarg.length >= 1 &&
{String(props.check_user_acces_right("session", "write")) === "1" && selectionModel_emarg && selectionModel_emarg.length >= 1 &&
<div className="block_en_mass">
<nav >Traitement en masse </nav><br />
&nbsp;
@ -26560,19 +26509,12 @@ const DisplayPartnerPromotion = (props) => {
/>
</Box>
{selectionModel_evaluation && selectionModel_evaluation.length >= 1 &&
{String(props.check_user_acces_right("session", "write")) === "1" && selectionModel_evaluation && selectionModel_evaluation.length >= 1 &&
<div className="block_en_mass">
<br />
<nav >Traitement en masse / Evaluation</nav><br />
&nbsp;
{/* &nbsp;<select
id={"actionmassemarg"} name={"actionmassemarg"}
onChange={actionmass_evaluation}
className="action_mass">
<option selected value="n/a">Choisir une action</option>
<option value="demande evaluation">Demande évaluation</option>
</select> &nbsp;*/}
<Autocomplete
disablePortal
@ -26691,7 +26633,7 @@ const DisplayPartnerPromotion = (props) => {
<div className="session_data">
<br />
<div className="div_row">
<div className="div_row" style={{ "padding": "5px" }}>
{String(props.check_user_acces_right("session", "write")) === "1" && <div className="div_row" style={{ "padding": "5px" }}>
<div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
@ -26747,7 +26689,7 @@ const DisplayPartnerPromotion = (props) => {
{Record_All_PJ_api && String(Record_All_PJ_api) === "false" && <div className="koUpdateData"> {Record_All_PJ_message} </div>}
</div>
</div>}
@ -26768,7 +26710,7 @@ const DisplayPartnerPromotion = (props) => {
{Get_List_Of_All_PJ_For_Session_result && Get_List_Of_All_PJ_For_Session_result.map((val) => (
<div className="div_row_list_pj" >
<nav style={{ "color": "green", "cursor": "pointer" }} onClick={Download_one_attached_document} name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}> Télécharger &nbsp;<i> {(JSON.parse(val).file_business_object)}</i> </nav> <br />
<Popup
{String(props.check_user_acces_right("session", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -26816,7 +26758,7 @@ const DisplayPartnerPromotion = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</div>
))}

File diff suppressed because it is too large Load Diff

View File

@ -8,8 +8,6 @@ import { getCookie, setCookie } from 'react-use-cookie';
import AttachFileIcon from '@mui/icons-material/AttachFile';
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { Editor } from '@tinymce/tinymce-react';
import { IoShareSocialOutline } from "react-icons/io5";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import add_plus from "../mysy_img/plus.png";
@ -321,116 +319,117 @@ const DisplayPartnerStagiaires = (props) => {
renderCell: (cellValues) => {
return (
<nav>
{cellValues.row.status && String(cellValues.row.status) === "1" &&
<>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <nav>
{cellValues.row.status && String(cellValues.row.status) === "1" &&
<Popup
trigger={<Button
<Popup
trigger={<Button
>
Annuler
</Button>}
modal
nested
position="center center"
>
Annuler
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'inscription du stagiaire sera <i><font color="red"> définitivement annulée</font></i>. <br />
Il (le stagiaire) sera automatiquement <i><font color="red"> notifié par email de l'annulation de son inscription. </font></i> <br />
<br /> Motif du annulation : <br />
<textarea name='motif_refus' id="motif_refus" style={{ "width": "80%" }}
rows="3" maxlength="180" />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_refuse(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, l'inscription du stagiaire sera <i><font color="red"> définitivement annulée</font></i>. <br />
Il (le stagiaire) sera automatiquement <i><font color="red"> notifié par email de l'annulation de son inscription. </font></i> <br />
<br /> Motif du annulation : <br />
<textarea name='motif_refus' id="motif_refus" style={{ "width": "80%" }}
rows="3" maxlength="180" />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_refuse(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>
}
}
{cellValues.row.status && String(cellValues.row.status) === "0" &&
<Popup
trigger={<Button
{cellValues.row.status && String(cellValues.row.status) === "0" &&
<Popup
trigger={<Button
>
<FcApproval /> Valider inscr.
</Button>}
modal
nested
position="center center"
>
<FcApproval /> Valider inscr.
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'inscription du stagiaire sera définitivement validée. <br />
Il (le stagiaire) sera automatiquement notifié par email de la validation de son inscription. <br />
Le stagiaire passera de l'onglet "préinscrit" vers l'onglet "inscription".<br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_accept(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'inscription du stagiaire sera définitivement validée. <br />
Il (le stagiaire) sera automatiquement notifié par email de la validation de son inscription. <br />
Le stagiaire passera de l'onglet "préinscrit" vers l'onglet "inscription".<br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_accept(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
}
)}
</Popup>
}
{/*cellValues.row.status && String(cellValues.row.status) === "-1" &&
{/*cellValues.row.status && String(cellValues.row.status) === "-1" &&
<Popup
@ -488,85 +487,71 @@ const DisplayPartnerStagiaires = (props) => {
</nav>
</nav>}
</>
)
}
},
/*{
field: "Impr.", headerName: 'Imprimer detail', disableExport: true,
renderCell: (cellValues) => {
return (
<Button
onClick={(event) => {
Print_Detail_Inscription(event, cellValues);
}}
>
<FcPrint />
</Button>
);
}
},*/
{
field: "delete", headerName: 'Supprimer', disableExport: true,
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" &&
<Popup
trigger={<Button
<Popup
trigger={<Button
onClick={(event) => {
handleClick_delete(event, cellValues);
}}
>
<CiTrash />
onClick={(event) => {
handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'inscription du stagiaire sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'inscription du stagiaire sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -1060,7 +1045,7 @@ const DisplayPartnerStagiaires = (props) => {
function Getall_TrainingParticipant(event) {
setSelectionModel([]);
var form = new FormData();
@ -5674,7 +5659,7 @@ const DisplayPartnerStagiaires = (props) => {
setselected_list_inscription_id(tab_tmp_inscription_id.join());
setselected_list_session_id(tab_tmp_session_id.join());
return tab_tmp;
}
@ -7116,7 +7101,7 @@ const DisplayPartnerStagiaires = (props) => {
//console.log(" ## form =", form)
// return;
// return;
setLoading(true);
@ -9396,7 +9381,7 @@ const DisplayPartnerStagiaires = (props) => {
<div className="div_row">
{selectionModel && selectionModel.length >= 1 && <div className="block_en_mass">
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && selectionModel && selectionModel.length >= 1 && <div className="block_en_mass">
<nav >Traitement en masse </nav>
&nbsp;
<Autocomplete
@ -9431,7 +9416,7 @@ const DisplayPartnerStagiaires = (props) => {
/>
{actionmass_ftion_val && String(actionmass_ftion_val) !== "sendemail"
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && actionmass_ftion_val && String(actionmass_ftion_val) !== "sendemail"
&& String(actionmass_ftion_val) !== "pushdocument" && <nav className='block_en_mass_bton_action'>
<Popup
trigger={<Button className="bton_enreg" style={{ "width": "90%" }}>
@ -9528,7 +9513,7 @@ const DisplayPartnerStagiaires = (props) => {
<div className="div_row" style={{ "border": "None" }}>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={submenu_import_stagiaire} className="detail_class_submenu bton_import_excel"
id='menu_import_participant' name='menu_import_participant'>Importer des participants excel &nbsp;
@ -9557,12 +9542,12 @@ const DisplayPartnerStagiaires = (props) => {
/>
<a href='/sample/template_import_stagiaires.csv' download>Télécharger un fichier modèle</a>
</div>
</div>}
</div>
<div className="div_row" ref={myRef_details} id="myRef_details"> &nbsp;</div>
{selected_id && String(selected_id).length > 0 && <div className="div_row">
<nav style={{ textAlign: 'center', padding: '10px', fontFamily: 'DM Sans' }}> <b>{p_detail_prenom} </b> &nbsp;
<b>{p_detail_nom}</b> &nbsp;&nbsp;&nbsp; Email <b>{p_detail_mail} </b> &nbsp;&nbsp;&nbsp; Session <b> {p_detail_session_class}</b>
<b>{String(p_detail_nom)}</b> &nbsp;&nbsp;&nbsp; Email <b>{String(p_detail_mail)} </b> &nbsp;&nbsp;&nbsp; Session <b> {String(p_detail_session_class)}</b>
</nav>
</div>}
@ -9587,7 +9572,7 @@ const DisplayPartnerStagiaires = (props) => {
{String(addOneParticipant) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(addOneParticipant) === "1" && <div className="div_row session_data" style={{ "border": "None", "backgroundColor": "#F0F0F0" }}>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}>Ajout d'un nouveau participant </nav>
@ -11099,7 +11084,7 @@ const DisplayPartnerStagiaires = (props) => {
{String(participant_data_edit_mode) !== "1" && String(inscription_invoiced) !== "1" && p_detail_apprenant_id && String(p_detail_apprenant_id).trim().length > 3 && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(participant_data_edit_mode) !== "1" && String(inscription_invoiced) !== "1" && p_detail_apprenant_id && String(p_detail_apprenant_id).trim().length > 3 && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={EnableAttendeeDetailFields_Deja_Inscrit}>Editer
</Button>
</div>}
@ -11109,7 +11094,7 @@ const DisplayPartnerStagiaires = (props) => {
{String(participant_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(selected_id_status) !== "1" && (!p_detail_apprenant_id || String(p_detail_apprenant_id).trim().length <= 3) &&
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(selected_id_status) !== "1" && (!p_detail_apprenant_id || String(p_detail_apprenant_id).trim().length <= 3) &&
<Button variant="contained" className="bton_edit" onClick={EnableAttendeeDetailFields}>Editer
</Button>}
@ -11747,7 +11732,7 @@ const DisplayPartnerStagiaires = (props) => {
</div>
<div className="div_row" style={{ "padding": "5px" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <div className="div_row" style={{ "padding": "5px" }}>
<div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
@ -11803,7 +11788,7 @@ const DisplayPartnerStagiaires = (props) => {
{Record_All_PJ_api && String(Record_All_PJ_api) === "false" && <div className="koUpdateData"> {Record_All_PJ_message} </div>}
</div>
</div>}
{file_1_name && file_1_name.name && <div className="div_row">
@ -11823,7 +11808,7 @@ const DisplayPartnerStagiaires = (props) => {
{Get_List_Of_All_PJ_result && Get_List_Of_All_PJ_result.map((val) => (
<div className="div_row_list_pj" >
<nav style={{ "color": "green", "cursor": "pointer" }} onClick={Download_one_attached_document} name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}> Télécharger &nbsp;<i> {(JSON.parse(val).file_business_object)}</i> </nav> <br />
<Popup
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -11871,7 +11856,7 @@ const DisplayPartnerStagiaires = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</div>
))}
@ -11910,6 +11895,7 @@ const DisplayPartnerStagiaires = (props) => {
disablePortal
disableCloseOnSelect
getOptionLabel={(option) => option.label}
disabled={Boolean(String(props.check_user_acces_right("stagiaire", "write")))}
options={New_Get_List_UE_From_Class_Id_result}
defaultValue={New_Get_List_UE_From_Class_Id_result.filter((data) => {
@ -11960,7 +11946,7 @@ const DisplayPartnerStagiaires = (props) => {
disablePortal
disableCloseOnSelect
getOptionLabel={(option) => option.label}
disabled={Boolean(String(props.check_user_acces_right("stagiaire", "write")))}
options={New_Getall_Class_List_Evalution_result}
defaultValue={New_Getall_Class_List_Evalution_result.filter((data) => {
@ -12010,11 +11996,11 @@ const DisplayPartnerStagiaires = (props) => {
</div>
<div className="div_row">
{ueChanged && String(ueChanged) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && ueChanged && String(ueChanged) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
/!\ Pensez à enregistrer les modifications
</div>}
{<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>

View File

@ -763,7 +763,7 @@ const DistplayPartnerTraningsPage = (props) => {
return (
<div>
{(!cellValues.row.lms_class_code || String(cellValues.row.lms_class_code).length <= 2) &&
{(!cellValues.row.lms_class_code || String(cellValues.row.lms_class_code).length <= 2) && String(props.check_user_acces_right("formation", "write")) === "1" &&
<nav style={{ width: '100%', 'textAlign': 'center' }}>
<IconButton
aria-label="more"
@ -1062,7 +1062,7 @@ const DistplayPartnerTraningsPage = (props) => {
</nav>}
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length > 2 && <nav style={{ width: '100%', 'textAlign': 'center' }}>
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length > 2 && String(props.check_user_acces_right("formation", "write")) === "1" && <nav style={{ width: '100%', 'textAlign': 'center' }}>
<IconButton
aria-label="more"
id="long-button"
@ -3718,7 +3718,7 @@ const DistplayPartnerTraningsPage = (props) => {
<div className="div_row"> &nbsp; </div>
<div className="div_row">
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row">
{selectionModel && selectionModel.length >= 1 && <div className="block_en_mass">
<nav >Traitement en masse </nav>
&nbsp;<br />
@ -3843,14 +3843,14 @@ const DistplayPartnerTraningsPage = (props) => {
</div>}
</div>
</div>}
{selectionModel && selectionModel.length >= 1 && <div className="div_row" style={{ "border": "None" }}>
<hr className="hr_break" />
</div>}
&nbsp;
<div className='div_row' >
{props.check_user_acces_right("formation", "write") === "1" && <div className='div_row' >
<Button variant="outlined" onClick={changeHandler2} className="detail_class_submenu bton_add_session_long"
id='menu_import_formation' name='menu_import_formation'>Choisir un fichier et importer &nbsp;<GrDocumentCsv style={{ "fontSize": "large" }} /> <SendIcon />
@ -3863,7 +3863,6 @@ const DistplayPartnerTraningsPage = (props) => {
name="liste_formation_file"
onChange={handleSubmission}
/>
&nbsp;
<Button variant="outlined" onClick={Createtraining}
@ -3878,9 +3877,9 @@ const DistplayPartnerTraningsPage = (props) => {
<a href='/sample/template_import_formations.csv' download><nav style={{ "fontSize": "14px" }}>Télécharger un fichier modèle</nav></a>
</div>
</div>}
<div className="import_excel_text">
{props.check_user_acces_right("formation", "write") === "1" && <div className="import_excel_text">
<nav className="titre1"> Comment utiliser le fichier d'import des formations ? </nav>
<nav style={{ "color": "orange" }}>
@ -3901,7 +3900,7 @@ const DistplayPartnerTraningsPage = (props) => {
</ul>
<a href='/sample/MySy_Import_formation_csv.pdf' download>Télécharger le guide complet pour plus d'informations</a><br />
<br />
</div>
</div>}
<div style={{ "width": "50%" }}> &nbsp; </div>
</div>

View File

@ -1190,7 +1190,7 @@ const Display_Partner_Catalog_DetailClass_new_v2 = (props) => {
const subdomain = domain.split('.')[0];
var form = new FormData();
form.append("subdomain", subdomain);
form.append("subdomain", "colasrail");
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_Data_From_Subdomain/";

File diff suppressed because it is too large Load Diff

View File

@ -6,20 +6,13 @@ import Button from '@mui/material/Button';
import axios from "axios";
import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import CheckOut from "./CheckOut";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { Editor } from '@tinymce/tinymce-react';
import parse from 'html-react-parser';
import { FcViewDetails, FcDisapprove } from "react-icons/fc";
import { FcPodiumWithAudience } from "react-icons/fc";
import { FcInfo } from "react-icons/fc";
import { LiaDharmachakraSolid } from "react-icons/lia";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import add_plus from "../mysy_img/plus.png";
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import fileDownload from 'js-file-download';
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
@ -41,11 +34,10 @@ import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import ColorPicker from 'react-pick-color';
import Visibility from '@mui/icons-material/Visibility';
import VisibilityOff from '@mui/icons-material/VisibilityOff';
import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
import { AiTwotoneSave } from "react-icons/ai";
import Autocomplete from '@mui/material/Autocomplete';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
@ -53,12 +45,11 @@ import { gridClasses } from '@mui/x-data-grid';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
import Rating from '@mui/material/Rating';
import Module_Selection_Evaluation_Apprenants from "./Module_Selection_Evaluation_Apprenants";
import AttachFileIcon from '@mui/icons-material/AttachFile';
import Module_Selection_Apprenants from "./Module_Selection_Apprenants";
import { FcAlarmClock, FcMultipleSmartphones, FcWorkflow } from "react-icons/fc";
import { FcMultipleSmartphones } from "react-icons/fc";
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
@ -72,8 +63,7 @@ import {
GridToolbarFilterButton, GridToolbarDensitySelector, GridToolbarExportContainer, useGridApiContext,
gridFilteredSortedRowIdsSelector,
gridVisibleColumnFieldsSelector,
GridValueGetterParams,
GridPreferencePanelsValue,
} from '@mui/x-data-grid';
import * as XLSX from 'xlsx';
@ -264,65 +254,68 @@ const Groupe_Apprenant = (props) => {
field: "delete", headerName: 'Supprimer', disableExport: true,
renderCell: (cellValues) => {
return (
<nav>
{String(cellValues.row.nb_membre) !== "0" && <Button onClick={(e) => {
alert(" Vous devez supprimer les membres avant de supprimer le groupe");
}}>
<CiTrash />
<>
</Button>}
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <nav>
{String(cellValues.row.nb_membre) !== "0" && <Button onClick={(e) => {
alert(" Vous devez supprimer les membres avant de supprimer le groupe");
}}>
<CiTrash />
{String(cellValues.row.nb_membre) === "0" &&
<Popup
trigger={<Button
</Button>}
{String(cellValues.row.nb_membre) === "0" &&
<Popup
trigger={<Button
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, le groupe sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_groupe(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, le groupe sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_groupe(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>}
)}
</Popup>}
</nav>
</nav>}
</>
);
}
}
@ -341,59 +334,60 @@ const Groupe_Apprenant = (props) => {
field: "delete", headerName: 'Supprimer', disableExport: true,
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
trigger={<Button
<Popup
trigger={<Button
onClick={(event) => {
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
// handleClick_delete(event, cellValues);
}}
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la personne sera <i><font color="red"> supprimée du groupe </font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
var tab = []
tab.push(String(cellValues.row._id));
Delete_List_Membre_From_Groupe(tab);
close();
}}> Valider </button>
En confirmant cette opération, la personne sera <i><font color="red"> supprimée du groupe </font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
var tab = []
tab.push(String(cellValues.row._id));
Delete_List_Membre_From_Groupe(tab);
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -2418,7 +2412,7 @@ const Groupe_Apprenant = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> Choisir une couleur</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> Choisir une couleur</DialogTitle>
<DialogContent className="DialogContent_color_pickup_width" >
<DialogContentText>
@ -2437,6 +2431,7 @@ const Groupe_Apprenant = (props) => {
}}
name="detail_grp_color"
id="detail_grp_color"
disabled={Boolean(String(props.check_user_acces_right("stagiaire", "write")))}
onChange={(color) => {
setp_detail_color(color.hex);
setgrp_apprenant_data_changed("1");
@ -2501,7 +2496,7 @@ const Groupe_Apprenant = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> Création automatique des groupes </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> Création automatique des groupes </DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
@ -3288,7 +3283,7 @@ const Groupe_Apprenant = (props) => {
<div className="div_row" style={{ "border": "None" }} id="bton_gestion_grp" name="bton_gestion_grp">
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined"
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Button variant="outlined"
className="detail_class_submenu bton_add_session bton_add_session_create_automatic" style={{ "width": "40%" }}
id='menu_import_participant' name='menu_import_participant' onClick={(event) => {
@ -3300,16 +3295,16 @@ const Groupe_Apprenant = (props) => {
}} > Gestion automatique
&nbsp; <FcMultipleSmartphones />
</Button>
</Button>}
&nbsp;
<Button variant="outlined" onClick={Ajout_1_grp_apprenant}
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Button variant="outlined" onClick={Ajout_1_grp_apprenant}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Grp &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
</div>
</div>
@ -3320,7 +3315,7 @@ const Groupe_Apprenant = (props) => {
{selected_id && String(selected_id).length > 5 && <div className="div_row">
<Button variant="outlined" onClick={submenu_detail} className="detail_class_submenu" id='detail_groupe' name='detail_groupe'>Détail Evaluation</Button>
<Button variant="outlined" onClick={submenu_apprenant} className="detail_class_submenu" id='apprenant' name='apprenant'>Membres </Button>
<Button variant="outlined" onClick={submenu_selection} className="detail_class_submenu" id='selection' name='selection'>Sélection </Button>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Button variant="outlined" onClick={submenu_selection} className="detail_class_submenu" id='selection' name='selection'>Sélection </Button>}
<Button variant="outlined" onClick={submenu_piece_jointe} className="detail_class_submenu" id='piece_jointe' name='piece_jointe'>Pièces Jointes </Button>
</div>}
@ -3642,7 +3637,9 @@ const Groupe_Apprenant = (props) => {
<div className="session_caract"> Code couleur &nbsp;
<nav className="disabled_style" style={{ backgroundColor: p_detail_color, cursor: 'pointer', borderRadius: '10px', paddingTop: '15px' }} onClick={(event, value) => {
setDialog_GRP_COLOR_open(true)
if (String(props.check_user_acces_right("stagiaire", "write")) === "1")
setDialog_GRP_COLOR_open(true)
}}
> &nbsp; Cliquer pour choisir </nav>
@ -3669,7 +3666,7 @@ const Groupe_Apprenant = (props) => {
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{ String(grp_apprenant_data_edit_mode) === "1" && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
{String(grp_apprenant_data_edit_mode) === "1" && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
<Button variant="contained" className="bton_enreg" onClick={Add_Update_Grp_Apprenant_Data}>Enregistrer les modifications
</Button>
@ -3683,7 +3680,7 @@ const Groupe_Apprenant = (props) => {
</div>
{String(grp_apprenant_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(grp_apprenant_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Grp_Apprenant_DetailFields}>Editer
</Button>
@ -3697,7 +3694,7 @@ const Groupe_Apprenant = (props) => {
</div>}
{String(add_one_grp_apprenant) === "1" && String(display_grp_apprenant) !== "1" && <div className="div_row session_data">
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && String(add_one_grp_apprenant) === "1" && String(display_grp_apprenant) !== "1" && <div className="div_row session_data">
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "paddingTop": "10px", "paddingLeft": "5px" }}> Ajouter un nouveau groupe </nav>
@ -3880,7 +3877,8 @@ const Groupe_Apprenant = (props) => {
<div className="session_caract"> Code couleur &nbsp;
<nav className="disabled_style" style={{ backgroundColor: p_detail_color, cursor: 'pointer', borderRadius: '10px', paddingTop: '15px' }} onClick={(event, value) => {
setDialog_GRP_COLOR_open(true)
if (String(props.check_user_acces_right("stagiaire", "write")) === "1")
setDialog_GRP_COLOR_open(true)
}}
> &nbsp; Cliquer pour choisir </nav>
@ -3934,7 +3932,7 @@ const Groupe_Apprenant = (props) => {
<div className="div_row session_data">
<div className="div_row" style={{ "padding": "5px", 'paddingTop': '15px' }}>
<div style={{ "fontSize": "12px" }}>
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
<input
style={{ display: "none" }}
@ -3955,7 +3953,7 @@ const Groupe_Apprenant = (props) => {
</Fab>
</label>
</div>
</div>}
{file_1_name && file_1_name.name &&
<nav style={{ "fontSize": "12px" }}>
<div className="session_caract">Nom du fichier <br />
@ -4014,7 +4012,7 @@ const Groupe_Apprenant = (props) => {
name={(JSON.parse(val).file_name)}
id={(JSON.parse(val).file_name)} onClick={Download_one_attached_document}> Télécharger &nbsp;</font></nav>
<Popup
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -4062,7 +4060,7 @@ const Groupe_Apprenant = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</div>
))}

View File

@ -1,31 +1,22 @@
import React, { useRef, useState, useEffect } from "react";
import Button from '@mui/material/Button';
import { getCookie } from 'react-use-cookie';
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import axios from "axios";
import Box from '@mui/material/Box';
import { useHistory } from "react-router-dom";
import { FcIdea } from "react-icons/fc";
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import img_paypal from "./../mysy_img/paypal.png"
import moment from "moment";
import {
CardElement,
useStripe,
useElements,
} from '@stripe/react-stripe-js';
import { Elements } from '@stripe/react-stripe-js';
import { loadStripe } from '@stripe/stripe-js';
import { PaymentElement } from '@stripe/react-stripe-js';
import Popup from 'reactjs-popup';
import SendIcon from '@mui/icons-material/Send';
import Popup from 'reactjs-popup';
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
import EditIcon from '@mui/icons-material/Edit';
import { MdDeleteForever } from "react-icons/md";
import Fab from '@mui/material/Fab';
import { IoIosAddCircleOutline, IoMdTrash } from "react-icons/io";
@ -279,7 +270,7 @@ function HebergementLms(props) {
img_height = this.height;
img_width = this.width;
_URL.revokeObjectURL(objectUrl);
// console.log(" img_width = ", img_width, " img_height = ", img_height)
// console.log(" img_width = ", img_width, " img_height = ", img_height)
if (parseFloat(img_width) > 130 && parseFloat(img_width) < 260 &&
parseFloat(img_height) > 60 && parseFloat(img_height) < 150) {
@ -753,7 +744,9 @@ function HebergementLms(props) {
<div className="session_caract">Choisir un exemple de thème : <br />
<select id="lms_theme_liste" name="lms_theme_liste" value={selected_lms_theme} onChange={handleChangeselected_lms_theme} className="selectsession">
<select id="lms_theme_liste" name="lms_theme_liste"
disabled={Boolean(String(props.check_user_acces_right("lms", "write")))}
value={selected_lms_theme} onChange={handleChangeselected_lms_theme} className="selectsession">
<option value="">Choisir un modèle </option>
{GetLms_Themes_result &&
GetLms_Themes_result.map((lms_theme) => (
@ -774,7 +767,7 @@ function HebergementLms(props) {
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
{<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("lms", "write")) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
<div className="div_row_gauche " style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
<Button variant="contained" className="btn_modif" onClick={"One_annuleSessionUpdate"}>Annuler
@ -807,7 +800,7 @@ function HebergementLms(props) {
</div>}
<div style={{ "width": "250px", textAlign: 'left', "marginTop": "1rem", marginBottom: '1rem' }} onClick={(e) => {
{String(props.check_user_acces_right("lms", "write")) === "1" && <div style={{ "width": "250px", textAlign: 'left', "marginTop": "1rem", marginBottom: '1rem' }} onClick={(e) => {
e.preventDefault();
}}>
@ -883,7 +876,7 @@ Le nom du fichier ne contient que des caractères alphanumériques </i>">
</nav>
</a>
</div>
</div>}
@ -910,13 +903,13 @@ Le nom du fichier ne contient que des caractères alphanumériques </i>">
</nav>*/}
<br />
{logo_file_name && <nav className="okUpdateData"><i>{logo_file_name}</i></nav>}
<input type="file"
{String(props.check_user_acces_right("lms", "write")) === "1" && <input type="file"
accept=".png"
ref={hiddenFileInput_logo}
style={{ display: 'none' }}
name="liste_formation_file"
onChange={handleSubmission_logo}
/>
/>}
{img_logo_file && <nav> Fichier à importer : {img_logo_file.name} <br />
<img src={img_logo_file} alt={""} />
@ -938,7 +931,7 @@ Le nom du fichier ne contient que des caractères alphanumériques </i>">
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("lms", "write")) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
<div className="div_row" style={{
@ -964,7 +957,7 @@ Le nom du fichier ne contient que des caractères alphanumériques </i>">
</div>
</div>
</div>}
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
@ -983,7 +976,7 @@ Le nom du fichier ne contient que des caractères alphanumériques </i>">
</Button>*/}
</div>}
<div style={{ "width": "250px", marginLeft: 'auto', marginRight: 'auto', "marginTop": "1rem", marginBottom: '1rem' }} onClick={(e) => {
{String(props.check_user_acces_right("lms", "write")) === "1" && <div style={{ "width": "250px", marginLeft: 'auto', marginRight: 'auto', "marginTop": "1rem", marginBottom: '1rem' }} onClick={(e) => {
e.preventDefault();
}}>
@ -1059,7 +1052,7 @@ Le nom du fichier ne contient que des caractères alphanumériques </i>">
</nav>
</a>
</div>
</div>}
@ -1072,13 +1065,13 @@ Le nom du fichier ne contient que des caractères alphanumériques </i>">
{bg_file_name && <nav className="okUpdateData"><i>{bg_file_name}</i></nav>}
<input type="file"
{String(props.check_user_acces_right("lms", "write")) === "1" && <input type="file"
accept=".png"
ref={hiddenFileInput_bg}
style={{ display: 'none' }}
name="liste_formation_file"
onChange={handleSubmission_bg}
/>
/>}
{img_bg_file && <nav> Fichier à importer : {img_bg_file.name} <br />
<img src={img_bg_file} alt={""} className="img_bg_file_css" />
@ -1097,7 +1090,7 @@ Le nom du fichier ne contient que des caractères alphanumériques </i>">
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
<div className="div_row">
{String(props.check_user_acces_right("lms", "write")) === "1" && <div className="div_row">
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
<div className="div_row" style={{
@ -1128,7 +1121,7 @@ Le nom du fichier ne contient que des caractères alphanumériques </i>">
&nbsp;
</div>
</div>
</div>}
</div>
</div>}

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@ import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
import { getCookie, setCookie } from 'react-use-cookie';
import { getCookie, } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
@ -20,7 +20,6 @@ import 'reactjs-popup/dist/index.css';
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns'
import moment from "moment";
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle } from "react-icons/ai";
@ -48,7 +47,6 @@ import { FcAcceptDatabase, FcPlanner } from "react-icons/fc";
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
import Module_Historique_Action from "./Module_Historique_Action";
import ToggleSwitch from "./ToggleSwitch";
import daygridPlugin from "@fullcalendar/daygrid";
import FullCalendar, { formatDate } from "@fullcalendar/react";
@ -242,66 +240,68 @@ const Jury = (props) => {
field: "delete", headerName: 'Supprimer', disableExport: true,
renderCell: (cellValues) => {
return (
<nav>
{String(cellValues.row.nb_membre) !== "0" && <Button onClick={(e) => {
alert(" Vous devez supprimer les membres avant de supprimer le jury");
}}>
<CiTrash />
<>
{String(props.check_user_acces_right("jury", "write")) === "1" && <nav>
{String(cellValues.row.nb_membre) !== "0" && <Button onClick={(e) => {
alert(" Vous devez supprimer les membres avant de supprimer le jury");
}}>
<CiTrash />
</Button>}
</Button>}
{String(cellValues.row.nb_membre) === "0" &&
<Popup
trigger={<Button
{String(cellValues.row.nb_membre) === "0" &&
<Popup
trigger={<Button
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, le jury sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Given_Jury(cellValues.row._id);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, le jury sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Given_Jury(cellValues.row._id);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>}
)}
</Popup>}
</nav>
</nav>}
</>
);
}
}
@ -342,61 +342,62 @@ const Jury = (props) => {
field: "delete", headerName: 'Supprimer', disableExport: true,
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("jury", "write")) === "1" && <Popup
trigger={<Button
<Popup
trigger={<Button
onClick={(event) => {
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
// handleClick_delete(event, cellValues);
}}
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la personne sera <i><font color="red"> supprimée de l'équipe </font></i>. <br />
En confirmant cette opération, la personne sera <i><font color="red"> supprimée de l'équipe </font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
var tab = []
tab.push(String(cellValues.row._id));
Delete_List_Membre_From_Jury(tab);
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
var tab = []
tab.push(String(cellValues.row._id));
Delete_List_Membre_From_Jury(tab);
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -446,7 +447,7 @@ const Jury = (props) => {
renderCell: (cellValues) => {
return (
<nav>
<Button onClick={(e) => {
{String(props.check_user_acces_right("jury", "write")) === "1" && <Button onClick={(e) => {
Get_Jury_List_Apprenant_Soutenance(cellValues.row._id, cellValues.row.jury_soutenance_id);
@ -462,10 +463,7 @@ const Jury = (props) => {
}}>
<TbUsersGroup />
</Button>
</Button>}
</nav>
);
}
@ -476,7 +474,7 @@ const Jury = (props) => {
renderCell: (cellValues) => {
return (
<nav>
<Popup
{String(props.check_user_acces_right("jury", "write")) === "1" && <Popup
trigger={<Button
>
<CiTrash />
@ -522,7 +520,7 @@ const Jury = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</nav>
);
@ -534,7 +532,7 @@ const Jury = (props) => {
renderCell: (cellValues) => {
return (
<div>
<nav style={{ width: '100%', 'textAlign': 'center' }}>
{String(props.check_user_acces_right("jury", "write")) === "1" && <nav style={{ width: '100%', 'textAlign': 'center' }}>
<IconButton
aria-label="more"
id="long-button"
@ -630,7 +628,7 @@ const Jury = (props) => {
</nav>
</nav>}
</div>
);
},
@ -658,7 +656,7 @@ const Jury = (props) => {
renderCell: (cellValues) => {
return (
<nav>
<Popup
{String(props.check_user_acces_right("jury", "write")) === "1" && <Popup
trigger={<Button
>
<CiTrash />
@ -704,7 +702,7 @@ const Jury = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</nav>
);
@ -2066,7 +2064,7 @@ const Jury = (props) => {
async function submenu_detail() {
await sleep(5);
setsubmenu("detail_jury");
inactive_active_menu_header("detail_jury");
@ -2078,7 +2076,7 @@ const Jury = (props) => {
}
async function submenu_membres() {
await sleep(5);
setsubmenu("membre");
inactive_active_menu_header("membre");
@ -2090,7 +2088,7 @@ const Jury = (props) => {
}
async function submenu_piece_jointe() {
await sleep(5);
setsubmenu("piece_jointe");
inactive_active_menu_header("piece_jointe");
@ -2105,7 +2103,7 @@ const Jury = (props) => {
}
async function submenu_selection() {
await sleep(5);
setsubmenu("selection");
inactive_active_menu_header("selection");
@ -3027,9 +3025,6 @@ const Jury = (props) => {
const handleSelect_V2 = (info) => {
GetListeInscrit();
setGet_Jury_List_Apprenant_Seance_insc_result([]);
setselected_agenda_id("");
@ -6606,11 +6601,11 @@ const Jury = (props) => {
&nbsp;
<Button variant="outlined" onClick={Ajout_1_jury}
{String(props.check_user_acces_right("jury", "write")) === "1" && <Button variant="outlined" onClick={Ajout_1_jury}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Jury &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
</div>
</div>
@ -7346,12 +7341,12 @@ const Jury = (props) => {
&nbsp;
</div>
<div className="div_row" style={{ "border": "None" }}>
{String(equipe_data_changed) === "1" && String(equipe_data_edit_mode) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("jury", "write")) === "1" && String(equipe_data_changed) === "1" && String(equipe_data_edit_mode) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
/!\ Pensez à enregistrer les modifications
</div>}
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("jury", "write")) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(equipe_data_edit_mode) === "1" && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
@ -7364,10 +7359,10 @@ const Jury = (props) => {
<Button variant="contained" className="bton_annule" onClick={Annule_Jury_DetailFields}>Annuler
</Button>
</div>}
</div>
</div>}
{String(equipe_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("jury", "write")) === "1" && String(equipe_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Jury_DetailFields}>Editer
</Button>
@ -8104,7 +8099,7 @@ const Jury = (props) => {
<div className="div_row session_data">
<div className="div_row" style={{ "padding": "5px", 'paddingTop': '15px' }}>
<div style={{ "fontSize": "12px" }}>
{String(props.check_user_acces_right("jury", "write")) === "1" && <div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
<input
style={{ display: "none" }}
@ -8125,7 +8120,7 @@ const Jury = (props) => {
</Fab>
</label>
</div>
</div>}
{file_1_name && file_1_name.name &&
<nav style={{ "fontSize": "12px" }}>
<div className="session_caract">Nom du fichier <br />
@ -8184,7 +8179,7 @@ const Jury = (props) => {
name={(JSON.parse(val).file_name)}
id={(JSON.parse(val).file_name)} onClick={Download_one_attached_document}> Télécharger &nbsp;</font></nav>
<Popup
{String(props.check_user_acces_right("jury", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -8232,7 +8227,7 @@ const Jury = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</div>
))}
@ -8382,23 +8377,25 @@ const Jury = (props) => {
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
setselected_agenda_id(newSelectionModel.row._id);
setselected_jury_soutenance_id(newSelectionModel.row.jury_soutenance_id);
setp_detail_linked_collection_recid(newSelectionModel.row.jury_session_id);
setsubmenu_detail_seance("display_jury_seance");
GetCurrentSession(newSelectionModel.row.jury_session_id);
if (String(props.check_user_acces_right("jury", "write")) === "1") {
setselected_agenda_id(newSelectionModel.row._id);
setselected_jury_soutenance_id(newSelectionModel.row.jury_soutenance_id);
setp_detail_linked_collection_recid(newSelectionModel.row.jury_session_id);
setsubmenu_detail_seance("display_jury_seance");
GetCurrentSession(newSelectionModel.row.jury_session_id);
if (String(selected_jury_cible) === "soutenance") {
Get_Jury_List_Apprenant_Soutenance(newSelectionModel.row._id, newSelectionModel.row.jury_soutenance_id);
}
if (String(selected_jury_cible) === "soutenance") {
Get_Jury_List_Apprenant_Soutenance(newSelectionModel.row._id, newSelectionModel.row.jury_soutenance_id);
}
if (document.getElementById('myRef_note_classemment')) {
var divh = document.getElementById('myRef_note_classemment').offsetTop;
if (document.getElementById('myRef_note_classemment')) {
var divh = document.getElementById('myRef_note_classemment').offsetTop;
window.scrollTo({
top: divh,
behavior: "smooth",
});
window.scrollTo({
top: divh,
behavior: "smooth",
});
}
}
}}
@ -8567,7 +8564,7 @@ const Jury = (props) => {
<div className="div_row" style={{ "border": "None" }}>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined"
{String(props.check_user_acces_right("jury", "write")) === "1" && <Button variant="outlined"
onClick={(event) => {
GetListeInscrit();
setGet_Jury_List_Apprenant_Seance_insc_result([]);
@ -8593,7 +8590,7 @@ const Jury = (props) => {
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Soutenance &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
</div>
</div>
@ -8786,7 +8783,7 @@ const Jury = (props) => {
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
{String(soutenance_data_edit_mode) === "1" && <div className="div_row" style={{ "border": "None" }}>
{String(props.check_user_acces_right("jury", "write")) === "1" && String(soutenance_data_edit_mode) === "1" && <div className="div_row" style={{ "border": "None" }}>
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
@ -8810,8 +8807,8 @@ const Jury = (props) => {
{String(soutenance_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Jury_Soutenance_DetailFields}>Editer
</Button>
{String(props.check_user_acces_right("jury", "write")) === "1" && <Button variant="contained" className="bton_edit" onClick={Enable_Jury_Soutenance_DetailFields}>Editer
</Button>}
</div>}

View File

@ -29,8 +29,8 @@ import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { TransitionProps } from '@mui/material/transitions';
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
import { IoAddCircleOutline } from "react-icons/io5";
import ToggleSwitch from "./ToggleSwitch";
import ToggleSwitch_v2_mysy from "./ToggleSwitch_v2_mysy";
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
@ -143,57 +143,58 @@ const Materiel_Salle = (props) => {
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("materiel", "write")) === "1" && <Popup
trigger={<Button
<Popup
trigger={<Button
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la salle sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, la salle sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -217,56 +218,58 @@ const Materiel_Salle = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("materiel", "write")) === "1" && <Popup
trigger={<Button
onClick={(event) => {
//handleClick_delete(event, cellValues);
}}
onClick={(event) => {
//handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la fonction sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_affection(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, la fonction sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_affection(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -287,67 +290,6 @@ const Materiel_Salle = (props) => {
{ field: 'related_target_collection_id_nom', headerName: 'Cible Nom', flex: 1, hide: false, },
{ field: 'target_related_collection', headerName: 'Type', hide: true },
{ field: 'target_related_collection_id', headerName: 'Type ID', hide: true },
{/*
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
onClick={(event) => {
//handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la fonction sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_affection(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>
);
}
*/}
]
@ -371,7 +313,7 @@ const Materiel_Salle = (props) => {
const [Partner_Debut_Journee, setPartner_Debut_Journee] = useState("7:00");
const [Partner_Fin_Journee, setPartner_Fin_Journee] = useState("20:00");
const [New_Getall_Partner_Site_Formation_result, setNew_Getall_Partner_Site_Formation_result] = useState([]);
const [Getall_Partner_Site_Formation_api, setGetall_Partner_Site_Formation_api] = useState();
@ -2734,16 +2676,18 @@ const Materiel_Salle = (props) => {
// Pas d'acces en ecriture.
return;
}
setp_detail_title("Nouvelle")
setp_detail_start(info.start)
setp_detail_end(info.end)
setp_detail_comment("");
setp_detail_sequence_session_id("");
setp_detail_event_id("");
if (String(props.check_user_acces_right("materiel", "write")) === "1") {
setp_detail_title("Nouvelle")
setp_detail_start(info.start)
setp_detail_end(info.end)
setp_detail_comment("");
setp_detail_sequence_session_id("");
setp_detail_event_id("");
setStartDate(info.start);
setendDate(info.end);
setDialog_1_open(true);
setStartDate(info.start);
setendDate(info.end);
setDialog_1_open(true);
}
};
const [Get_List_Agenda_Events_For_Given_User_api, setGet_List_Agenda_Events_For_Given_User_api] = useState();
@ -2946,47 +2890,48 @@ const Materiel_Salle = (props) => {
const handleEventClick = (arg) => {
if (String(props.check_user_acces_right("materiel", "write")) === "1") {
setp_detail_title(arg.event.title)
setp_detail_start(arg.event.start)
setp_detail_end(arg.event.end)
setp_detail_event_id(arg.event.id);
setp_detail_title(arg.event.title)
setp_detail_start(arg.event.start)
setp_detail_end(arg.event.end)
setp_detail_event_id(arg.event.id);
if (arg.event.extendedProps.comment) {
setp_detail_comment(arg.event.extendedProps.comment);
if (arg.event.extendedProps.comment) {
setp_detail_comment(arg.event.extendedProps.comment);
}
else
setp_detail_comment("");
}
else
setp_detail_comment("");
if (arg.event.extendedProps.sequence_session_id) {
setp_detail_sequence_session_id(arg.event.extendedProps.sequence_session_id);
if (arg.event.extendedProps.sequence_session_id) {
setp_detail_sequence_session_id(arg.event.extendedProps.sequence_session_id);
}
else
setp_detail_sequence_session_id("");
}
else
setp_detail_sequence_session_id("");
if (arg.event.extendedProps.justified) {
if (String(arg.event.extendedProps.justified) === "true")
setp_detail_justified(true);
if (arg.event.extendedProps.justified) {
if (String(arg.event.extendedProps.justified) === "true")
setp_detail_justified(true);
else
setp_detail_justified(false);
}
else
setp_detail_justified(false);
if (arg.event.extendedProps.type) {
setp_detail_event_type(arg.event.extendedProps.type);
}
else
setp_detail_event_type("");
setStartDate(arg.event.start);
setendDate(arg.event.end);
setDialog_1_open(true);
}
else
setp_detail_justified(false);
if (arg.event.extendedProps.type) {
setp_detail_event_type(arg.event.extendedProps.type);
}
else
setp_detail_event_type("");
setStartDate(arg.event.start);
setendDate(arg.event.end);
setDialog_1_open(true);
}
const [Delete_One_Agenda_Event_api, setDelete_One_Agenda_Event_api] = useState();
@ -3136,7 +3081,7 @@ const Materiel_Salle = (props) => {
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogContent>
<DialogContentText>
{Dialog_1_message}
@ -3180,7 +3125,7 @@ const Materiel_Salle = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_1_message}
@ -3388,7 +3333,7 @@ const Materiel_Salle = (props) => {
</Dialog>
{/*** FIn Dialog detail eventement */}
<h3 style={{ fontFamily: 'DM Sans' }}> Les Salles </h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Les salles </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -3771,11 +3716,11 @@ const Materiel_Salle = (props) => {
*/}
<Button variant="outlined" onClick={submenu_add_one_materiel}
{String(props.check_user_acces_right("materiel", "write")) === "1" && <Button variant="outlined" onClick={submenu_add_one_materiel}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Salle &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
<br />
{session_file_name && <nav><i>{session_file_name}</i></nav>}
@ -3816,7 +3761,7 @@ const Materiel_Salle = (props) => {
</div>
<div className="div_row_droite_image">
<input type="file" id="files_img_class" accept="image/*" onChange={imglogoclasschangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{<nav>
{String(props.check_user_acces_right("materiel", "write")) === "1" && <nav>
<label for="files_img_class" className="bton_image_class">Charger une photo</label><br />
@ -3870,9 +3815,10 @@ const Materiel_Salle = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_ref_interne}
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
onChange={(e) => {
setp_detail_ref_interne(e.target.value);
setmateriel_data_changed("1");
@ -3892,7 +3838,7 @@ const Materiel_Salle = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
className="disabled_style"
value={p_detail_nom}
onChange={(e) => {
@ -3914,7 +3860,7 @@ const Materiel_Salle = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
className="disabled_style"
value={p_detail_description}
onChange={(e) => {
@ -3943,7 +3889,7 @@ const Materiel_Salle = (props) => {
className="disabled_style"
options={New_Getall_Partner_Site_Formation_result}
value={New_Getall_Partner_Site_Formation_result.filter((data) => (data)._id === String(p_detail_site_formation))[0].label}
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
onChange={(event, value) => {
if (value && value._id) {
setp_detail_site_formation(value._id);
@ -3968,11 +3914,11 @@ const Materiel_Salle = (props) => {
required
name="detail_site_formation"
id="detail_site_formation"
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={New_Getall_Partner_Site_Formation_result.filter((data) => (data)._id === String(p_detail_site_formation))[0].label}
/>
@ -3989,11 +3935,11 @@ const Materiel_Salle = (props) => {
required
name="detail_prix_achat"
id="detail_prix_achat"
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style disabled_style_moitier"
value={p_detail_prix_achat}
onChange={(e) => {
@ -4008,12 +3954,12 @@ const Materiel_Salle = (props) => {
required
name="detail_prix_achat_by"
id="detail_prix_achat_by"
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
InputLabelProps={{
shrink: true,
}}
inputProps={{ min: "1", max: "1000", step: "1" }}
disabled={false}
className="disabled_style disabled_style_moitier"
value={New_Price_by.filter((data) => (data).value === String(p_detail_prix_achat_by))[0].label}
@ -4024,7 +3970,7 @@ const Materiel_Salle = (props) => {
id="detail_prix_achat_by"
className="disabled_style disabled_style_moitier"
value={New_Price_by.filter((data) => (data).value === String(p_detail_prix_achat_by))[0].label}
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
options={New_Price_by}
onChange={(event, value) => {
if (value && value.value) {
@ -4057,7 +4003,7 @@ const Materiel_Salle = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
className="disabled_style"
value={p_detail_complement_adresse}
onChange={(e) => {
@ -4079,7 +4025,7 @@ const Materiel_Salle = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
className="disabled_style"
value={p_detail_capacite_ideale}
onChange={(e) => {
@ -4101,7 +4047,7 @@ const Materiel_Salle = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
className="disabled_style"
value={p_detail_capacite_max}
onChange={(e) => {
@ -4117,13 +4063,16 @@ const Materiel_Salle = (props) => {
<div className="session_caract" >
Accès handicapé ?<br />
<nav className="disabled_style" style={{ "height": '3rem', border: "none" }}
onChange={(e) => {
setmateriel_data_changed("1");
if (p_detail_acces_handicape === true)
setp_detail_acces_handicape(false)
else {
if (String(props.check_user_acces_right("materiel", "write")) === "1") {
setmateriel_data_changed("1");
if (p_detail_acces_handicape === true)
setp_detail_acces_handicape(false)
else {
setp_detail_acces_handicape(true);
setp_detail_acces_handicape(true);
}
}
}}
@ -4144,7 +4093,7 @@ const Materiel_Salle = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={false}
disabled={Boolean(String(props.check_user_acces_right("materiel", "write")))}
className="disabled_style"
value={p_detail_detail}
onChange={(e) => {
@ -4179,7 +4128,7 @@ const Materiel_Salle = (props) => {
</div>
{String(materiel_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("materiel", "write")) === "1" && String(materiel_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Materiel_DetailFields}>Editer
</Button>
@ -4631,11 +4580,11 @@ const Materiel_Salle = (props) => {
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={add_one_affectation_block}
{String(props.check_user_acces_right("materiel", "write")) === "1" && <Button variant="outlined" onClick={add_one_affectation_block}
className="detail_class_submenu bton_add_session"
id='menu_add_participant' name='menu_add_participant'>Ajout 1 affectation &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
<br />
@ -4938,7 +4887,7 @@ const Materiel_Salle = (props) => {
</div>}
{String(edite_affectation_form) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("materiel", "write")) === "1" && String(edite_affectation_form) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Detail_Affectation_Fields}>Editer
</Button>

View File

@ -126,57 +126,59 @@ const Materiels = (props) => {
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("materiel", "write")) === "1" &&
<Popup
trigger={<Button
<Popup
trigger={<Button
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, le matériel sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, le matériel sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -199,57 +201,59 @@ const Materiels = (props) => {
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("materiel", "write")) === "1" &&
<Popup
trigger={<Button
<Popup
trigger={<Button
onClick={(event) => {
//handleClick_delete(event, cellValues);
}}
>
<CiTrash />
onClick={(event) => {
//handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la fonction sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_affection(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la fonction sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_affection(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -676,7 +680,7 @@ const Materiels = (props) => {
.catch((error) => {
console.error('Error:', error);
setliste_sessions_file_change_api("false");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'importer le materiel ");
setalert_type("error");
@ -702,19 +706,19 @@ const Materiels = (props) => {
if (p_one_detail_ref_interne.trim() == "") {
setdisplay_alert_mysy("1");
setalert_message(" Vous devez saisir la référence interne du materiel");
setalert_type("error");
setalert_message(" Vous devez saisir la référence interne du materiel");
setalert_type("error");
return;
}
if (p_one_detail_nom.trim() == "") {
setdisplay_alert_mysy("1");
setalert_message(" Vous devez saisir le nom du materiel");
setalert_type("error");
setalert_message(" Vous devez saisir le nom du materiel");
setalert_type("error");
return;
}
@ -823,8 +827,8 @@ const Materiels = (props) => {
console.warn('UpdateStagiaireData : Not good man :( Add_One_Materiel_Data = ' + error);
setAdd_One_Materiel_Data_api("false");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'ajouter le materiel");
setalert_type("error");
setalert_message(" Impossible d'ajouter le materiel");
setalert_type("error");
})
@ -868,10 +872,10 @@ const Materiels = (props) => {
console.warn('Not good man :( Getall_Training_Materiel_No_Salle_No_Filter = ', error);
setGetall_Training_Materiel_No_Salle_No_Filter_api("false");
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer la liste du materiel");
setalert_type("error");
setalert_message(" Impossible de recuperer la liste du materiel");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -1264,7 +1268,7 @@ const Materiels = (props) => {
Getall_Materiel_Affectation(materiel_id);
Getall_Materiel_Rattachement(materiel_id);
if (document.getElementById('myRef')) {
var divh = document.getElementById('myRef').offsetTop;
window.scrollTo({
@ -2897,7 +2901,7 @@ const Materiels = (props) => {
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogContent>
<DialogContentText>
{Dialog_1_message}
@ -2941,7 +2945,7 @@ const Materiels = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_1_message}
@ -3564,11 +3568,11 @@ const Materiels = (props) => {
*/}
<Button variant="outlined" onClick={submenu_add_one_materiel}
{String(props.check_user_acces_right("materiel", "write")) === "1" && <Button variant="outlined" onClick={submenu_add_one_materiel}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Materiel &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
<br />
{session_file_name && <nav><i>{session_file_name}</i></nav>}
@ -3618,7 +3622,7 @@ const Materiels = (props) => {
</div>
<div className="div_row_droite_image">
<input type="file" id="files_img_class" accept="image/*" onChange={imglogoclasschangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{<nav>
{String(props.check_user_acces_right("materiel", "write")) === "1" && <nav>
<label for="files_img_class" className="bton_image_class">Charger une photo</label><br />
@ -3985,7 +3989,7 @@ const Materiels = (props) => {
</div>
{String(materiel_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("materiel", "write")) === "1" && String(materiel_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Materiel_DetailFields}>Editer
</Button>
@ -4427,11 +4431,11 @@ const Materiels = (props) => {
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={add_one_affectation_block}
{String(props.check_user_acces_right("materiel", "write")) === "1" && <Button variant="outlined" onClick={add_one_affectation_block}
className="detail_class_submenu bton_add_session"
id='menu_add_participant' name='menu_add_participant'>Ajout 1 affectation &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
<br />
@ -4734,7 +4738,7 @@ const Materiels = (props) => {
</div>}
{String(edite_affectation_form) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("materiel", "write")) === "1" && String(edite_affectation_form) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Detail_Affectation_Fields}>Editer
</Button>

View File

@ -1,4 +1,4 @@
import React, { useRef, useState, useEffect } from "react";
import React, { useRef, useState, useEffect } from "react";
import TextField from '@mui/material/TextField';
import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
@ -18,7 +18,7 @@ import moment from "moment";
import Box from '@mui/material/Box';
import { CiBoxList } from "react-icons/ci";
import { CiBoxList } from "react-icons/ci";
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
@ -82,7 +82,7 @@ const Module_Absence = (props) => {
{ field: 'event_comment', headerName: 'Comment', flex: 1, hide: true, editable: false, },
]
@ -512,48 +512,50 @@ const Module_Absence = (props) => {
const handleEventClick = (arg) => {
if (String(selected_attendee_email).length < 2) {
alert(" Vous devez choisir un stagiaire");
return;
}
if (String(props.check_user_acces_right("stagiaire", "write")) === "1") {
if (String(selected_attendee_email).length < 2) {
alert(" Vous devez choisir un stagiaire");
return;
}
setp_detail_title(arg.event.title)
setp_detail_start(arg.event.start)
setp_detail_end(arg.event.end)
setp_detail_event_id(arg.event.id);
setp_detail_title(arg.event.title)
setp_detail_start(arg.event.start)
setp_detail_end(arg.event.end)
setp_detail_event_id(arg.event.id);
if (arg.event.extendedProps.comment) {
setp_detail_comment(arg.event.extendedProps.comment);
}
else
setp_detail_comment("");
if (arg.event.extendedProps.comment) {
setp_detail_comment(arg.event.extendedProps.comment);
}
else
setp_detail_comment("");
if (arg.event.extendedProps.justified) {
if (String(arg.event.extendedProps.justified) === "true")
setp_detail_justified(true);
if (arg.event.extendedProps.justified) {
if (String(arg.event.extendedProps.justified) === "true")
setp_detail_justified(true);
else
setp_detail_justified(false);
}
else
setp_detail_justified(false);
if (arg.event.extendedProps.type) {
setp_detail_event_type(arg.event.extendedProps.type);
}
else
setp_detail_event_type("");
setStartDate(arg.event.start);
setendDate(arg.event.end);
setDialog_1_open(true);
}
else
setp_detail_justified(false);
if (arg.event.extendedProps.type) {
setp_detail_event_type(arg.event.extendedProps.type);
}
else
setp_detail_event_type("");
setStartDate(arg.event.start);
setendDate(arg.event.end);
setDialog_1_open(true);
}
@ -888,7 +890,7 @@ const Module_Absence = (props) => {
setdisplay_view("list");
}
return (
<div className="module_agenda">
@ -904,7 +906,7 @@ const Module_Absence = (props) => {
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_1_message}
@ -1100,14 +1102,14 @@ const Module_Absence = (props) => {
</Dialog>
<h3 style={{ fontFamily:'DM Sans' }}> Planning </h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Planning </h3>
<div style={{ "textAlign": "right", "float": "right", "width": "100%" }}>
Affichage : <nav className="mode_affichage" onClick={func_display_planning_view}> <FcPlanner /> planning </nav>
<nav className="mode_affichage" onClick={func_display_list_view}> <CiBoxList /> Liste </nav>
</div>
{String(display_view) === "planning" && <div style={{ "width": "98%", "marginLeft": "5px" }}>
&nbsp;

View File

@ -225,77 +225,79 @@ const Module_Session_Planification = (props) => {
field: "modifier", headerName: 'Modifier', minWidth: 200, flex: 1,
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("session", "write")) === "1" && <Button
<Button
onClick={(event) => {
onClick={(event) => {
setsequence_gridline_id(cellValues.row.id);
setdisplay_detail_sequence("");
setp_detail_sequence_title(cellValues.row.sequence_title);
setselected_sequence_id(cellValues.row._id);
var date_du = new Date(moment(cellValues.row.sequence_start, "DD/MM/YYYY HH:mm"));
var date_au = new Date(moment(cellValues.row.sequence_end, "DD/MM/YYYY HH:mm"));
setsequence_gridline_id(cellValues.row.id);
setdisplay_detail_sequence("");
setp_detail_sequence_title(cellValues.row.sequence_title);
setselected_sequence_id(cellValues.row._id);
var date_du = new Date(moment(cellValues.row.sequence_start, "DD/MM/YYYY HH:mm"));
var date_au = new Date(moment(cellValues.row.sequence_end, "DD/MM/YYYY HH:mm"));
setsequence_startDate(date_du);
setsequence_endDate(date_au);
setsequence_startDate(date_du);
setsequence_endDate(date_au);
setsubmenu_seq_dialog("dialog_detail");
setsubmenu_seq_dialog("dialog_detail");
setselectionModel_sequence([]);
Getall_List_Sequence_Ressource(cellValues.row._id);
setselectionModel_sequence([]);
Getall_List_Sequence_Ressource(cellValues.row._id);
setp_detail_event_type(cellValues.row.type);
setp_detail_event_type(cellValues.row.type);
setp_detail_sequence_agenda(cellValues.row.agenda);
setp_detail_sequence_objectif(cellValues.row.objectif);
setp_detail_sequence_comment(cellValues.row.commentaire);
setp_detail_sequence_agenda(cellValues.row.agenda);
setp_detail_sequence_objectif(cellValues.row.objectif);
setp_detail_sequence_comment(cellValues.row.commentaire);
setp_detail_mode_animation(cellValues.row.mode_animation);
setp_detail_mode_animation(cellValues.row.mode_animation);
setp_detail_sequence_groupe_apprenant_id(cellValues.row.grp_apprenant_id);
setp_detail_sequence_groupe_apprenant_id(cellValues.row.grp_apprenant_id);
if (cellValues.row.ue_id) {
if (cellValues.row.ue_id) {
setp_detail_sequence_ue_id(cellValues.row.ue_id);
Get_List_Given_UE_Planif_lines(cellValues.row.ue_id);
setp_detail_sequence_ue_id(cellValues.row.ue_id);
Get_List_Given_UE_Planif_lines(cellValues.row.ue_id);
} else {
} else {
setp_detail_sequence_ue_id("");
//---
var node = {
"_id": "",
"id": "",
"label": "",
"code": "",
"titre": "",
"volume_horaire": "",
"in_use": "",
};
var new_data2 = [];
new_data2.push(node);
setNew_Get_List_Given_UE_Planif_lines_result(new_data2);
setp_detail_sequence_ue_id("");
//---
var node = {
"_id": "",
"id": "",
"label": "",
"code": "",
"titre": "",
"volume_horaire": "",
"in_use": "",
};
var new_data2 = [];
new_data2.push(node);
setNew_Get_List_Given_UE_Planif_lines_result(new_data2);
}
}
if (cellValues.row.unite_enseignement_planif_id) {
setp_detail_sequence_ue_planif_line_id(cellValues.row.unite_enseignement_planif_id);
} else {
setp_detail_sequence_ue_planif_line_id("");
}
if (cellValues.row.unite_enseignement_planif_id) {
setp_detail_sequence_ue_planif_line_id(cellValues.row.unite_enseignement_planif_id);
} else {
setp_detail_sequence_ue_planif_line_id("");
}
// console.log(" New_Get_List_Given_UE_Planif_lines_result", New_Get_List_Given_UE_Planif_lines_result);
// console.log(" New_Get_List_Given_UE_Planif_lines_result", New_Get_List_Given_UE_Planif_lines_result);
setupdate_sequence("1");
submenu_update_sequence();
}}
>
<FcViewDetails />
setupdate_sequence("1");
submenu_update_sequence();
}}
>
<FcViewDetails />
</Button>
</Button>}
</>
);
}
@ -306,56 +308,58 @@ const Module_Session_Planification = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("session", "write")) === "1" && <Popup
trigger={<Button
onClick={(event) => {
onClick={(event) => {
}}
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la séquence sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Data(cellValues.row._id);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, la séquence sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Data(cellValues.row._id);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -404,57 +408,60 @@ const Module_Session_Planification = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("session", "write")) === "1" &&
<Popup
trigger={<Button
onClick={(event) => {
onClick={(event) => {
}}
>
<CiTrash />
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la ressource sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Ressource_Data(cellValues.row._id);
//console.log('cellValues.row = ', cellValues.row);
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la ressource sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Ressource_Data(cellValues.row._id);
//console.log('cellValues.row = ', cellValues.row);
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -1964,10 +1971,8 @@ const Module_Session_Planification = (props) => {
const handleSelect_event_type_semaine = (info) => {
setDialog_seq_CREATION_SEMAINE_TYPE_open(false);
setp_detail_sequence_event_type_semaine_title("Nouvelle")
setsequence_event_type_semaine_startDate(info.start)
setsequence_event_type_semaine_endDate(info.end)
@ -2253,123 +2258,125 @@ const Module_Session_Planification = (props) => {
};
const handleEventClick = (arg) => {
if (String(props.check_user_acces_right("session", "write")) === "1") {
if (document.getElementById('myRef_seq_calendrier_01')) {
var divh = document.getElementById('myRef_seq_calendrier_01').offsetTop;
setposition_h_myRef_seq_calendrier_01(document.getElementById('myRef_seq_calendrier_01').offsetTop)
window.scrollTo({
top: divh,
behavior: "smooth",
});
if (document.getElementById('myRef_seq_calendrier_01')) {
var divh = document.getElementById('myRef_seq_calendrier_01').offsetTop;
setposition_h_myRef_seq_calendrier_01(document.getElementById('myRef_seq_calendrier_01').offsetTop)
window.scrollTo({
top: divh,
behavior: "smooth",
});
// console.log(" ### divh = ", divh)
}
// console.log(" ### divh = ", divh)
}
setp_detail_sequence_title(arg.event.title)
setsequence_startDate(arg.event.start)
setsequence_endDate(arg.event.end)
setp_detail_event_id(arg.event.id);
setsubmenu_seq_dialog("dialog_detail");
setp_detail_sequence_title(arg.event.title)
setsequence_startDate(arg.event.start)
setsequence_endDate(arg.event.end)
setp_detail_event_id(arg.event.id);
setsubmenu_seq_dialog("dialog_detail");
setGetall_List_Sequence_Ressource_result([]);
setselectionModel_sequence([]);
setGetall_List_Sequence_Ressource_result([]);
setselectionModel_sequence([]);
// console.log(" ### arg.event.extendedProps = ", arg.event.extendedProps);
// console.log(" ### arg.event.extendedProps = ", arg.event.extendedProps);
//console.log(" ### arg.event.extendedProps.local_type = ", arg.event.extendedProps.local_type);
//console.log(" ### arg.event.extendedProps.local_type = ", arg.event.extendedProps.local_type);
if (arg.event.extendedProps._id) {
setselected_sequence_id(arg.event.extendedProps._id);
Getall_List_Sequence_Ressource(arg.event.extendedProps._id);
}
else
setselected_sequence_id("");
if (arg.event.extendedProps._id) {
setselected_sequence_id(arg.event.extendedProps._id);
Getall_List_Sequence_Ressource(arg.event.extendedProps._id);
}
else
setselected_sequence_id("");
if (arg.event.extendedProps.local_comment) {
setp_detail_sequence_comment(arg.event.extendedProps.local_comment);
}
else
setp_detail_sequence_comment("");
if (arg.event.extendedProps.local_comment) {
setp_detail_sequence_comment(arg.event.extendedProps.local_comment);
}
else
setp_detail_sequence_comment("");
if (arg.event.extendedProps.local_mode_animation) {
setp_detail_mode_animation(arg.event.extendedProps.local_mode_animation);
}
else
setp_detail_mode_animation("");
if (arg.event.extendedProps.local_mode_animation) {
setp_detail_mode_animation(arg.event.extendedProps.local_mode_animation);
}
else
setp_detail_mode_animation("");
if (arg.event.extendedProps.local_type) {
setp_detail_event_type(arg.event.extendedProps.local_type);
}
else
setp_detail_event_type("");
if (arg.event.extendedProps.local_type) {
setp_detail_event_type(arg.event.extendedProps.local_type);
}
else
setp_detail_event_type("");
if (arg.event.extendedProps.local_ue_id) {
setp_detail_sequence_ue_id(arg.event.extendedProps.local_ue_id);
Get_List_Given_UE_Planif_lines(arg.event.extendedProps.local_ue_id);
}
else {
setp_detail_sequence_ue_id("");
//---
var node = {
"_id": "",
"id": "",
"label": "",
"code": "",
"titre": "",
"volume_horaire": "",
"in_use": "",
if (arg.event.extendedProps.local_ue_id) {
setp_detail_sequence_ue_id(arg.event.extendedProps.local_ue_id);
Get_List_Given_UE_Planif_lines(arg.event.extendedProps.local_ue_id);
}
else {
setp_detail_sequence_ue_id("");
//---
var node = {
"_id": "",
"id": "",
"label": "",
"code": "",
"titre": "",
"volume_horaire": "",
"in_use": "",
};
var new_data2 = [];
new_data2.push(node);
setNew_Get_List_Given_UE_Planif_lines_result(new_data2);
}
};
var new_data2 = [];
new_data2.push(node);
setNew_Get_List_Given_UE_Planif_lines_result(new_data2);
}
if (arg.event.extendedProps.local_grp_apprenant_id) {
setp_detail_sequence_groupe_apprenant_id(arg.event.extendedProps.local_grp_apprenant_id);
// console.log(" ## arg.event.extendedProps.local_grp_apprenant_id = ", arg.event.extendedProps.local_grp_apprenant_id)
}
else
setp_detail_sequence_groupe_apprenant_id("");
if (arg.event.extendedProps.local_grp_apprenant_id) {
setp_detail_sequence_groupe_apprenant_id(arg.event.extendedProps.local_grp_apprenant_id);
// console.log(" ## arg.event.extendedProps.local_grp_apprenant_id = ", arg.event.extendedProps.local_grp_apprenant_id)
}
else
setp_detail_sequence_groupe_apprenant_id("");
if (arg.event.extendedProps.local_objectif) {
setp_detail_sequence_objectif(arg.event.extendedProps.local_objectif);
}
else
setp_detail_sequence_objectif("");
if (arg.event.extendedProps.local_objectif) {
setp_detail_sequence_objectif(arg.event.extendedProps.local_objectif);
}
else
setp_detail_sequence_objectif("");
if (arg.event.extendedProps._id) {
setp_detail_event_id(arg.event.extendedProps._id);
}
else
setp_detail_event_id("");
if (arg.event.extendedProps._id) {
setp_detail_event_id(arg.event.extendedProps._id);
}
else
setp_detail_event_id("");
if (arg.event.extendedProps.local_agenda) {
setp_detail_sequence_agenda(arg.event.extendedProps.local_agenda);
}
else
setp_detail_sequence_agenda("");
if (arg.event.extendedProps.local_agenda) {
setp_detail_sequence_agenda(arg.event.extendedProps.local_agenda);
}
else
setp_detail_sequence_agenda("");
if (arg.event.extendedProps.local_ue_planif_line_id) {
setp_detail_sequence_ue_planif_line_id(arg.event.extendedProps.local_ue_planif_line_id);
if (arg.event.extendedProps.local_ue_planif_line_id) {
setp_detail_sequence_ue_planif_line_id(arg.event.extendedProps.local_ue_planif_line_id);
}
else {
setp_detail_sequence_ue_planif_line_id("");
}
setDialog_DIALOG_AGENDA_open(true);
}
else {
setp_detail_sequence_ue_planif_line_id("");
}
setDialog_DIALOG_AGENDA_open(true);
}
@ -2757,22 +2764,24 @@ const Module_Session_Planification = (props) => {
const [selected_formulaire_id, setselected_formulaire_id] = useState();
const handleSelect = (info) => {
setp_detail_sequence_title("Nouvelle")
setsequence_startDate(info.start)
setsequence_endDate(info.end)
setp_detail_sequence_agenda("");
setp_detail_event_id("");
setselected_sequence_id("");
setp_detail_sequence_objectif("");
setp_detail_sequence_comment("");
if (String(props.check_user_acces_right("session", "write")) === "1") {
setp_detail_sequence_title("Nouvelle")
setsequence_startDate(info.start)
setsequence_endDate(info.end)
setp_detail_sequence_agenda("");
setp_detail_event_id("");
setselected_sequence_id("");
setp_detail_sequence_objectif("");
setp_detail_sequence_comment("");
setp_detail_mode_animation("");
setp_detail_mode_animation("");
setsubmenu_seq_dialog("dialog_detail");
setsubmenu_seq_dialog("dialog_detail");
setGetall_List_Sequence_Ressource_result([]);
setselectionModel_sequence([]);
setDialog_DIALOG_AGENDA_open(true);
setGetall_List_Sequence_Ressource_result([]);
setselectionModel_sequence([]);
setDialog_DIALOG_AGENDA_open(true);
}
};
@ -3503,7 +3512,7 @@ const Module_Session_Planification = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: position_h_choix_planning,
top: position_h_choix_planning,
margin: "2px",
},
}}
@ -3789,7 +3798,7 @@ const Module_Session_Planification = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: position_h_myRef_seq_calendrier_01,
top: position_h_myRef_seq_calendrier_01,
margin: "2px",
},
}}
@ -4505,6 +4514,9 @@ const Module_Session_Planification = (props) => {
if (value && value.value) {
setDialog_seq_ressource_1_selected_type_ressource(value.value);
setsequence_startDate(selected_sequence_startDate);
setsequence_endDate(selected_sequence_endDate);
} else {
setDialog_seq_ressource_1_selected_type_ressource("");
setGet_Ressource_Avabilities_avability_check("");
@ -4534,6 +4546,7 @@ const Module_Session_Planification = (props) => {
onChange={(event, value) => {
if (value && value._id) {
setDialog_seq_ressource_1_selected_ressource_id(value._id);
//console.log(" ### check_ressource_avabilities = ", check_ressource_avabilities)
@ -5428,7 +5441,7 @@ const Module_Session_Planification = (props) => {
style: {
overflowY: 'unset',
position: 'absolute',
top: position_h_myRef_seq_calendrier_01,
top: position_h_myRef_seq_calendrier_01,
margin: "2px",
},
}}
@ -6315,7 +6328,8 @@ const Module_Session_Planification = (props) => {
</Box>
{selectionModel_sequence && selectionModel_sequence.length > 1 &&
{selectionModel_sequence && selectionModel_sequence.length > 1 && String(props.origin) === "session" &&
String(props.check_user_acces_right("session", "write")) === "1" &&
<div className="block_en_mass">
<nav>Traitement en masse / Séquence</nav>
@ -6630,73 +6644,75 @@ const Module_Session_Planification = (props) => {
</div>}
{!new_planification_lines || new_planification_lines.length <= 0 && <div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
{!new_planification_lines || new_planification_lines.length <= 0 && String(props.origin) === "session" &&
String(props.check_user_acces_right("session", "write")) === "1" &&
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined"
className="detail_class_submenu bton_add_session bton_add_session_create_automatic" style={{ "width": "40%" }}
id='menu_import_participant' name='menu_import_participant' onClick={(event) => {
if (String(props.selected_session_invoiced_statut) === "1") {
alert(" La session est en cours de facturation ")
} else if (String(props.selected_session_invoiced_statut) === "2") {
alert(" La session est déjà facturée ")
} else {
<Button variant="outlined"
className="detail_class_submenu bton_add_session bton_add_session_create_automatic" style={{ "width": "40%" }}
id='menu_import_participant' name='menu_import_participant' onClick={(event) => {
if (String(props.selected_session_invoiced_statut) === "1") {
alert(" La session est en cours de facturation ")
} else if (String(props.selected_session_invoiced_statut) === "2") {
alert(" La session est déjà facturée ")
} else {
setDialog_seq_choix_model_emargement_open(true);
setDialog_seq_planif_periode_type("");
}
setDialog_seq_choix_model_emargement_open(true);
setDialog_seq_planif_periode_type("");
}
}} > Planification automatique
&nbsp; <FcMultipleSmartphones />
</Button>
}} > Planification automatique
&nbsp; <FcMultipleSmartphones />
</Button>
&nbsp;
<Button variant="outlined"
onClick={(event) => {
if (String(props.selected_session_invoiced_statut) === "1") {
alert(" La session est en cours de facturation ")
} else if (String(props.selected_session_invoiced_statut) === "2") {
alert(" La session est déjà facturée ")
} else {
&nbsp;
<Button variant="outlined"
onClick={(event) => {
if (String(props.selected_session_invoiced_statut) === "1") {
alert(" La session est en cours de facturation ")
} else if (String(props.selected_session_invoiced_statut) === "2") {
alert(" La session est déjà facturée ")
} else {
submenu_add_one_sequence()
}
submenu_add_one_sequence()
}
}}
}}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Séq. &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Séq. &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
&nbsp;
{String(active_planif_modele) !== "1" && <Button variant="outlined"
onClick={(event) => {
setaction_modele_planning("");
setactive_planif_modele("1");
}}
&nbsp;
{String(active_planif_modele) !== "1" && <Button variant="outlined"
onClick={(event) => {
setaction_modele_planning("");
setactive_planif_modele("1");
}}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Activer Modèle &nbsp;
<FcTemplate style={{ "fontSize": "large", "color": "green" }} />
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Activer Modèle &nbsp;
<FcTemplate style={{ "fontSize": "large", "color": "green" }} />
</Button>}
</Button>}
{String(active_planif_modele) === "1" && <Button variant="outlined"
onClick={(event) => {
setaction_modele_planning("");
setactive_planif_modele("");
}}
{String(active_planif_modele) === "1" && <Button variant="outlined"
onClick={(event) => {
setaction_modele_planning("");
setactive_planif_modele("");
}}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Désactiver Modèle &nbsp;
<FcTemplate style={{ "fontSize": "large", "color": "green" }} />
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Désactiver Modèle &nbsp;
<FcTemplate style={{ "fontSize": "large", "color": "green" }} />
</Button>}
</Button>}
<br />
<br />
</div>}
</div>}
{String(active_planif_modele) === "1" && <div style={{ "textAlign": "right", "float": "right", "width": "40%", "marginRight": '20px' }}>
@ -6747,7 +6763,7 @@ const Module_Session_Planification = (props) => {
setDialog_RECORD_MODEL_PLANNING_open(true);
}
}}>
<FcAcceptDatabase /> Traiter
<FcAcceptDatabase /> Traiter
</Button>}
@ -6879,7 +6895,7 @@ const Module_Session_Planification = (props) => {
</div>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined"
{String(props.check_user_acces_right("session", "write")) === "1" && <Button variant="outlined"
onClick={(event) => {
if (String(props.selected_session_invoiced_statut) === "1") {
alert(" La session est en cours de facturation ")
@ -6896,7 +6912,7 @@ const Module_Session_Planification = (props) => {
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Ressource &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
<br />

View File

@ -29,7 +29,6 @@ let PageSize = 10;
const Mon_Catalogue_Public = (props) => {
const { type, categorie } = useParams();
const { NewSearchText } = useParams();
const [v11, setv11] = useState("");
@ -919,22 +918,11 @@ const Mon_Catalogue_Public = (props) => {
var ip = "";
Get_Subdomain_Partner_Data(window.location.host)
Get_Subdomain_Partner_Data(window.location.host);
async function fetchData() {
// const result = await axios('https://geolocation-db.com/json/',);
/* setuserIp("172.71.122.128");
setcountry_code("FR");
setcountry_name("France");
setcity("Paris");
setpostal("75001");
setlatitude("48.861000061035156");
setlongitude("2.3380000591278076");
setIPv4("172.71.122.128");
setstate("France");*/
let windowWidth = window.innerWidth;
@ -953,71 +941,12 @@ const Mon_Catalogue_Public = (props) => {
}
}
if (categorie && String(categorie).length > 0) {
getClassByMetier_categorie(categorie);
}
else {
DisplayXfirstClas(result.data);
}
DisplayXfirstClas(result.data);
}
fetchData();
async function loadSuggestedWord() {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Suggested_Word/";
//alert(" URL = "+process.env.REACT_APP_API_URL + "myclass/api/Get_Suggested_Word/");
//console.log(" ### URL ##### = "+process.env.REACT_APP_API_URL + "myclass/api/Get_Suggested_Word/");
var form = new FormData();
fetch(
process.env.REACT_APP_API_URL + "myclass/api/Get_Suggested_Word/",
{
method: 'POST',
}
).then((response) => response.json())
.then((result) => {
//console.log('Success:', result['message']);
setsuggestedwords(result['message']);
})
.catch((error) => {
console.error('Error:');
});
}
loadSuggestedWord();
async function loadSuggestedFrCities() {
fetch(
process.env.REACT_APP_API_URL + "myclass/api/Get_Suggested_Fr_Cities/",
{
method: 'POST',
}
).then((response) => response.json())
.then((result) => {
//console.log(' loadSuggestedFrCities CITIES = Success:', result['message']);
setsuggestedcities(result['message']);
//console.log(" CITIES = " + result['message']);
})
.catch((error) => {
console.error('Error:');
});
}
loadSuggestedFrCities();
async function loadDomainMetier() {
var form = new FormData();
@ -1060,7 +989,7 @@ const Mon_Catalogue_Public = (props) => {
});
}
//loadDomainMetier();
loadDomainMetier();
async function loadDomain() {
@ -1478,9 +1407,6 @@ const Mon_Catalogue_Public = (props) => {
}
var my_local_user_connect;
var my_local_part_connect;

View File

@ -9,18 +9,14 @@ import { useHistory } from "react-router-dom";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { FcViewDetails, FcDisapprove } from "react-icons/fc";
import { FcViewDetails, } from "react-icons/fc";
import { FcInfo } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import fileDownload from 'js-file-download';
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcCheckmark } from "react-icons/fc";
import { FcCancel, FcApproval, FcAcceptDatabase, } from "react-icons/fc";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns'
@ -28,7 +24,6 @@ import moment from "moment";
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle } from "react-icons/ai";
import Box from '@mui/material/Box';
import { CiTrash } from "react-icons/ci";
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
import Dialog from '@mui/material/Dialog';
@ -48,7 +43,6 @@ import { gridClasses } from '@mui/x-data-grid';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
import Rating from '@mui/material/Rating';
import Module_Selection_Evaluation_Apprenants from "./Module_Selection_Evaluation_Apprenants";
import AttachFileIcon from '@mui/icons-material/AttachFile';
import { GoDuplicate } from "react-icons/go";
@ -226,54 +220,55 @@ const Notes_Evaluation = (props) => {
field: "dupliquer", headerName: 'Dupliquer',
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <Popup
trigger={<Button
>
<GoDuplicate />
<Popup
trigger={<Button
</Button>}
modal
nested
position="center center"
>
<GoDuplicate />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'évaluation sera <i> duppliquée </i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Duplicate_Evaluation_Data(cellValues.row._id);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, l'évaluation sera <i> duppliquée </i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Duplicate_Evaluation_Data(cellValues.row._id);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
}
@ -303,54 +298,56 @@ const Notes_Evaluation = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <Popup
trigger={<Button
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'évaluation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_evaluation(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, l'évaluation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_evaluation(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -378,57 +375,59 @@ const Notes_Evaluation = (props) => {
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
<>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <Popup
trigger={<Button
onClick={(event) => {
onClick={(event) => {
}}
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la ressource sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Ressource_Data(cellValues.row._id);
console.log('cellValues.row = ', cellValues.row);
close();
}}> Valider </button>
En confirmant cette opération, la ressource sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Ressource_Data(cellValues.row._id);
console.log('cellValues.row = ', cellValues.row);
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -506,7 +505,7 @@ const Notes_Evaluation = (props) => {
{ field: 'prenom', headerName: 'prenom', flex: 1, hide: false, minWidth: 180, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'email', headerName: 'email', flex: 1, hide: false, minWidth: 180, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'groupe', headerName: 'groupe', flex: 1, hide: false, minWidth: 180, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'note', headerName: 'Note', width: 200, editable: true, renderCell: (params) => <ExpandableCell_50_bg_hiligt {...params} />, align: "center", },
{ field: 'note', headerName: 'Note', width: 200, editable:Boolean(props.check_user_acces_right("note_evaluation", "write")), renderCell: (params) => <ExpandableCell_50_bg_hiligt {...params} />, align: "center", },
{ field: 'convocation_send_date', headerName: 'Conv. Envoyé', width: 200, editable: false, renderCell: (params) => <ExpandableCell_50_bg_hiligt {...params} />, align: "center", },
{ field: 'convocation_send_type', headerName: 'Conv. Par', width: 200, editable: false, renderCell: (params) => <ExpandableCell_50_bg_hiligt {...params} />, align: "center", },
@ -516,60 +515,60 @@ const Notes_Evaluation = (props) => {
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <Popup
trigger={<Button
<Popup
trigger={<Button
onClick={(event) => {
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
// handleClick_delete(event, cellValues);
}}
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'inscrit sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
var tab = []
tab.push(String(cellValues.row._id));
Delete_List_Participant_From_Evaluation(tab);
close();
}}> Valider </button>
En confirmant cette opération, l'inscrit sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
var tab = []
tab.push(String(cellValues.row._id));
Delete_List_Participant_From_Evaluation(tab);
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
}
@ -2353,8 +2352,8 @@ const Notes_Evaluation = (props) => {
setLoading(true);
axios.post(myurl, form).then(res => {
// console.log(" In Record_Evaluation_Participants_Notes res.data.status = " + res.data.status);
// console.log(" In Record_Evaluation_Participants_Notes res.data.message r_class = " + res.data.message);
// console.log(" In Record_Evaluation_Participants_Notes res.data.status = " + res.data.status);
// console.log(" In Record_Evaluation_Participants_Notes res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
@ -4344,7 +4343,7 @@ const Notes_Evaluation = (props) => {
onRowDoubleClick={(newSelectionModel) => {
Getall_Evaluation_Participant_List(newSelectionModel.row._id);
Getall_Evaluation_Participant_List(newSelectionModel.row._id);
handleClick_edit_evaluation_From_Line(newSelectionModel.row.id);
setselectionModel_evalutions_participant([]);
@ -4399,14 +4398,14 @@ const Notes_Evaluation = (props) => {
<div className="div_row" style={{ "border": "None" }}>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={planifier_one_evaluation}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Planifier 1 Eval &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</div>
</div>}
</div>
</div>
@ -4416,7 +4415,7 @@ const Notes_Evaluation = (props) => {
<Button variant="outlined" onClick={submenu_detail} className="detail_class_submenu" id='detail_evaluation' name='detail_evaluation'>Détail Evaluation</Button>
<Button variant="outlined" onClick={submenu_apprenant} className="detail_class_submenu" id='apprenant' name='apprenant'>Apprenants & Groupes</Button>
<Button variant="outlined" onClick={submenu_ressources} className="detail_class_submenu" id='ressources' name='ressources'>Ressources </Button>
<Button variant="outlined" onClick={submenu_selection} className="detail_class_submenu" id='selection' name='selection'>Selection </Button>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <Button variant="outlined" onClick={submenu_selection} className="detail_class_submenu" id='selection' name='selection'>Selection </Button>}
<Button variant="outlined" onClick={submenu_piece_jointe} className="detail_class_submenu" id='piece_jointe' name='piece_jointe'>Pièces Jointes </Button>
</div>}
@ -5164,13 +5163,13 @@ const Notes_Evaluation = (props) => {
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
<div className="div_row" style={{ "border": "None" }}>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <div className="div_row" style={{ "border": "None" }}>
{String(evaluation_data_changed) === "1" && String(evaluation_data_edit_mode) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
/!\ Pensez à enregistrer les modifications
</div>}
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(evaluation_data_changed) === "1" && String(evaluation_data_edit_mode) === "1" && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
@ -5183,10 +5182,10 @@ const Notes_Evaluation = (props) => {
<Button variant="contained" className="bton_annule" onClick={Annule_Evaluaton_DetailFields}>Annuler
</Button>
</div>}
</div>
</div>}
{String(evaluation_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && String(evaluation_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Evaluation_DetailFields}>Editer
</Button>
@ -5196,7 +5195,7 @@ const Notes_Evaluation = (props) => {
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
</div>
</div>}
</div>}
@ -5679,9 +5678,9 @@ const Notes_Evaluation = (props) => {
<div style={{ "border": "None" }}>
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px", fontFamily: 'DM Sans' }}> Liste des apprenants ou Groupes d'apprenants </nav>
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px", fontFamily: 'DM Sans' }}> Liste des apprenants ou groupes d'apprenants </nav>
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
<Button className="bton_emarge" onClick={(event) => {
Getall_Evaluation_Participant_List(selected_id);
@ -5693,7 +5692,7 @@ const Notes_Evaluation = (props) => {
</div>
</div>}
<div style={{ height: 650, width: '100%', paddingRight: '5px' }}>
&nbsp;
@ -5838,7 +5837,7 @@ const Notes_Evaluation = (props) => {
/>
</Box>
{selectionModel_evalutions_participant && selectionModel_evalutions_participant.length >= 1 &&
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && selectionModel_evalutions_participant && selectionModel_evalutions_participant.length >= 1 &&
<div className="div_row" style={{ "border": "none", "marginLeft": "10px" }}>
<div className="block_en_mass">
<nav className='traitement_mass'>Traitement en masse</nav>
@ -5874,7 +5873,7 @@ const Notes_Evaluation = (props) => {
&nbsp;
{actionmass_eval_inscr_val && String(actionmass_eval_inscr_val).length > 1 && <nav className='block_en_mass_bton_action'>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && actionmass_eval_inscr_val && String(actionmass_eval_inscr_val).length > 1 && <nav className='block_en_mass_bton_action'>
<Popup
trigger={<Button className="bton_enreg" style={{ "width": "90%" }}>
<FcAcceptDatabase /> Traiter
@ -5937,12 +5936,12 @@ const Notes_Evaluation = (props) => {
<br />
</div>
{String(noted_changed) === "1" && <div className="div_row">
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && String(noted_changed) === "1" && <div className="div_row">
<div className="koUpdateData" style={{ "color": "orange", "textAlign": "center" }}> /!\ Pensez à enregistrer les modifications</div>
</div>}
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
<Popup
@ -6000,7 +5999,7 @@ const Notes_Evaluation = (props) => {
</div>
</div>
</div>}
<div className="div_row"> &nbsp; </div>
@ -6083,11 +6082,11 @@ const Notes_Evaluation = (props) => {
</div>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={submenu_add_one_Ressource}
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <Button variant="outlined" onClick={submenu_add_one_Ressource}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Ressource &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</Button>}
<br />
@ -6110,7 +6109,7 @@ const Notes_Evaluation = (props) => {
<div className="div_row session_data">
<div className="div_row" style={{ "padding": "5px", 'paddingTop': '15px' }}>
<div style={{ "fontSize": "12px" }}>
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
<input
style={{ display: "none" }}
@ -6131,7 +6130,8 @@ const Notes_Evaluation = (props) => {
</Fab>
</label>
</div>
</div>}
{file_1_name && file_1_name.name &&
<nav style={{ "fontSize": "12px" }}>
<div className="session_caract">Nom du fichier <br />
@ -6190,7 +6190,7 @@ const Notes_Evaluation = (props) => {
name={(JSON.parse(val).file_name)}
id={(JSON.parse(val).file_name)} onClick={Download_one_attached_document}> Télécharger &nbsp;</font></nav>
<Popup
{String(props.check_user_acces_right("note_evaluation", "write")) === "1" && <Popup
trigger={
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
@ -6238,7 +6238,7 @@ const Notes_Evaluation = (props) => {
</div>
</div>
)}
</Popup>
</Popup>}
</div>
))}

View File

@ -1025,7 +1025,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_apprenant");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des stagiaires");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des apprenants");
}
}
@ -2141,14 +2141,17 @@ const Partner = (props) => {
<Sidebar className="my_sidebar">
<Menu className="my_menu">
<SubMenu label="Espace E-Learning" className="my_chart" id="my_e_learning" name="my_e_learning" icon={<CameraOutdoorSharpIcon color={"quatro"} />} style={{ overflow: 'hidden' }}>
{String(has_partner_lms_url) === "1" && <MenuItem onClick={(e) => {
e.preventDefault();
window.open(
partner_lms_url,
'_blank'
);
if (String(check_user_acces_right("lms", "write")) === "1") {
e.preventDefault();
window.open(
partner_lms_url,
'_blank'
);
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du E-Learning");
}
}} className="sousmenu" icon={<FcVideoCall className="icone_menu" />}> MON HEBERGEMENT </MenuItem>}
@ -2351,7 +2354,8 @@ const Partner = (props) => {
<div className="div_droite">
<Notes_Evaluation ispending={partnerstatus} currentpack={partnerPackService} conntected_employee_id={conntected_employee_id}
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale} />
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale}
check_user_acces_right={check_user_acces_right} />
</div>
}
@ -2372,7 +2376,8 @@ const Partner = (props) => {
<div className="div_droite">
<Groupe_Apprenant ispending={partnerstatus} currentpack={partnerPackService} conntected_employee_id={conntected_employee_id}
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale} />
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale}
check_user_acces_right={check_user_acces_right} />
</div>
}
@ -2522,7 +2527,9 @@ const Partner = (props) => {
{String(menu) === "setuplms" &&
<div className="div_droite">
<HebergementLms conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("lms", "read")} write_access={check_user_acces_right("lms", "write")} />
<HebergementLms conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("lms", "read")}
write_access={check_user_acces_right("lms", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}
@ -3168,7 +3175,8 @@ const Partner = (props) => {
<div className="div_droite div_droite_ralonge">
<Partner_Config_Ftion_Initiale ispending={partnerstatus} currentpack={partnerPackService} conntected_employee_id={conntected_employee_id}
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale} />
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale}
check_user_acces_right={check_user_acces_right} />
</div>
}
@ -3176,7 +3184,8 @@ const Partner = (props) => {
<div className="div_droite div_droite_ralonge">
<Notes_Evaluation ispending={partnerstatus} currentpack={partnerPackService} conntected_employee_id={conntected_employee_id}
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale} />
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale}
check_user_acces_right={check_user_acces_right} />
</div>
}
@ -3197,7 +3206,8 @@ const Partner = (props) => {
<div className="div_droite div_droite_ralonge">
<Groupe_Apprenant ispending={partnerstatus} currentpack={partnerPackService} conntected_employee_id={conntected_employee_id}
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale} />
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale}
check_user_acces_right={check_user_acces_right} />
</div>
}
@ -3346,7 +3356,10 @@ const Partner = (props) => {
{String(menu) === "setuplms" &&
<div className="div_droite div_droite_ralonge">
<HebergementLms conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("lms", "read")} write_access={check_user_acces_right("lms", "write")} />
<HebergementLms conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("lms", "read")}
write_access={check_user_acces_right("lms", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}

View File

@ -2,7 +2,7 @@ import React, { useRef, useState, useEffect } from "react";
import axios from "axios";
import Button from '@mui/material/Button';
import SendIcon from '@mui/icons-material/Send';
import { getCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
@ -17,7 +17,7 @@ import DialogTitle from '@mui/material/DialogTitle';
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import Box from '@mui/material/Box';
import Footer from "./Fotter";
import { DataGrid, GridToolbar, frFR, GridCellParams } from '@mui/x-data-grid';
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcDeleteDatabase } from "react-icons/fc";
@ -26,12 +26,11 @@ import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import AddParnerClient from "./AddPartnerClient";
//import { FcHome} from "react-icons/fc";
import { alpha } from '@mui/material/styles';
import { gridClasses } from '@mui/x-data-grid';
import { AiOutlineUserAdd } from "react-icons/ai";
import TextField from '@mui/material/TextField';
import MenuItem from '@mui/material/MenuItem';
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle } from "react-icons/ai";
import { CiTrash } from "react-icons/ci";
@ -205,60 +204,60 @@ const Partner_Client = (props) => {
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("client", "write")) === "1" && <Popup
trigger={<Button
<Popup
trigger={<Button
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, le client sera <i><font color="red"> définitivement supprimé</font></i>. <br />
Avant, assurez-vous de n'avoir aucun stagiaire, un devis ou commande rattaché au client.
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_supprimer(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, le client sera <i><font color="red"> définitivement supprimé</font></i>. <br />
Avant, assurez-vous de n'avoir aucun stagiaire, un devis ou commande rattaché au client.
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_supprimer(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
}
@ -768,7 +767,7 @@ const Partner_Client = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">client</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">client</DialogTitle>
<DialogContent className="DialogContent_width">
<div className="div_row_dialog">
@ -907,7 +906,7 @@ const Partner_Client = (props) => {
<div className="div_row">
<h3 style={{ fontFamily:'DM Sans' }}> Mes clients & Organismes Financeurs</h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Clients & Organismes Financeurs</h3>
<div className="titre1"> Utilisez les filtres !</div>
<div>
@ -1228,7 +1227,7 @@ const Partner_Client = (props) => {
<div className="div_row" ref={myRef_detail_client}>
{String(props.check_user_acces_right("client", "write")) === "1" && <div className="div_row" ref={myRef_detail_client}>
<Button variant="outlined" onClick={submenu_import_part_client_mass} className="detail_class_submenu bton_import_excel"
id='menu_import_participant' name='menu_import_participant'>Choisir un fichier et Importer &nbsp;
@ -1258,7 +1257,7 @@ const Partner_Client = (props) => {
onChange={liste_part_client_file_change}
/>
</div>
</div>}
</div>
@ -1268,7 +1267,7 @@ const Partner_Client = (props) => {
<div className="titre1"> Detail client / Financeur : {Client_email}</div>
<AddParnerClient client_mail={Client_email} close_detail_client={close_detail_client} father_scroll_to_top={father_scroll_to_top}
client_id={selected_id} />
client_id={selected_id} check_user_acces_right={props.check_user_acces_right} />
</div>}
@ -1277,7 +1276,8 @@ const Partner_Client = (props) => {
<div className="titre1"> Detail client / Financeur : {Client_email}</div>
<div ref={myRef_add_client}> &nbsp;</div>
<AddParnerClient client_mail={Client_email} close_detail_client={close_detail_client} new_customer="1" client_id={selected_id}
Get_List_Partner_Clients={Get_List_Partner_Clients} father_scroll_to_top={father_scroll_to_top} />
Get_List_Partner_Clients={Get_List_Partner_Clients} father_scroll_to_top={father_scroll_to_top}
check_user_acces_right={props.check_user_acces_right} />
</div>}

View File

@ -4,16 +4,16 @@ import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
import { getCookie, setCookie } from 'react-use-cookie';
import { getCookie, } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { IoMdAddCircle, } from "react-icons/io";
import { FcViewDetails, FcDisapprove } from "react-icons/fc";
import { FcViewDetails, } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css';
import { Tooltip } from 'react-tooltip';
@ -41,18 +41,12 @@ import Module_Historique_Action from "./Module_Historique_Action";
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import { Global } from "recharts";
import { FcAddDatabase } from "react-icons/fc";
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
import { IoAddCircleOutline } from "react-icons/io5";
import ToggleSwitch from "./ToggleSwitch";
import ToggleSwitch_v2_mysy from "./ToggleSwitch_v2_mysy";
import { FcInfo } from "react-icons/fc";
import Link from '@mui/material/Link';
import { PiDotsThree, PiHeartStraightBreakLight } from "react-icons/pi";
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
import ChevronRightIcon from '@mui/icons-material/ChevronRight';
import { TreeView } from '@mui/x-tree-view/TreeView';
import { TreeItem } from '@mui/x-tree-view/TreeItem';
import { PiDotsThree, } from "react-icons/pi";
import { makeStyles } from "@material-ui/core/styles";
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
@ -66,8 +60,7 @@ import {
GridToolbarFilterButton, GridToolbarDensitySelector, GridToolbarExportContainer, useGridApiContext,
gridFilteredSortedRowIdsSelector,
gridVisibleColumnFieldsSelector,
GridValueGetterParams,
GridPreferencePanelsValue,
} from '@mui/x-data-grid';
import * as XLSX from 'xlsx';
@ -210,58 +203,58 @@ const Partner_Commande = (props) => {
field: "delete", headerName: 'Supprimer', disableExport: true,
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("commande", "write")) === "1" && <Popup
trigger={<Button
<Popup
trigger={<Button
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, le document sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, le document sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
}
@ -452,57 +445,59 @@ const Partner_Commande = (props) => {
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("commande", "write")) === "1" &&
<Popup
trigger={<Button
<Popup
trigger={<Button
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la ligne sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_Order_line(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la ligne sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_Order_line(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -1032,7 +1027,7 @@ const Partner_Commande = (props) => {
l'_id du client*/
Getall_Parter_Orders_With_Filter_On_Client_Id(orderid);
console.log(" ~### 222 mes facture props action, orderid = ", action, orderid);
// console.log(" ~### 222 mes facture props action, orderid = ", action, orderid);
} else {
Getall_Parter_Orders_No_Filter();
@ -5421,7 +5416,7 @@ const Partner_Commande = (props) => {
<div className="div_row" style={{ "padding": "5px" }}>
<div style={{ "fontSize": "12px" }}>
{String(props.check_user_acces_right("commande", "write")) === "1" && <div style={{ "fontSize": "12px" }}>
<label htmlFor="upload_convention_file">
<input
style={{ display: "none" }}
@ -5442,7 +5437,7 @@ const Partner_Commande = (props) => {
</Fab>
</label>
</div>
</div>}
</div>
@ -6940,7 +6935,7 @@ const Partner_Commande = (props) => {
<div className="div_row" style={{ "border": "None" }}>
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
{String(props.check_user_acces_right("commande", "write")) === "1" && <div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
{/*<Button variant="outlined" onClick={submenu_import_order} className="detail_class_submenu bton_import_excel"
id='menu_import_participant' name='menu_import_participant'>Importer des commande / devis Excel &nbsp;
@ -6962,7 +6957,7 @@ const Partner_Commande = (props) => {
</Button>
</div>
</div>}
</div>
<div className="div_row" ref={myRef} id="myRef"> &nbsp;</div>
@ -8114,16 +8109,16 @@ const Partner_Commande = (props) => {
</div>
<div style={{ "width": "23%", "float": "left", "textAlign": "right", "paddingTop": "2rem" }}>
{String(p_detail_header_statut_label).toLowerCase() === "brouillon" &&
{String(props.check_user_acces_right("commande", "write")) === "1" && String(p_detail_header_statut_label).toLowerCase() === "brouillon" &&
String(p_detail_header_statut_label).toLowerCase() !== "facturé" && <Button variant="outlined" onClick={Confirm_Order_Data} className="detail_class_submenu bton_add_sous_menu_cmd_gauche"> Confirmer</Button>
}
{String(p_detail_header_statut_label).toLowerCase() === "en cours" &&
{String(props.check_user_acces_right("commande", "write")) === "1" && String(p_detail_header_statut_label).toLowerCase() === "en cours" &&
String(p_detail_header_type).toLowerCase() === "commande" && <Button variant="outlined" onClick={Make_Order_Ready_To_Invoice} className="detail_class_submenu bton_add_sous_menu_cmd_gauche bton_put_to_invoice" > Prêt pour Facturation </Button>
}
{String(selected_order_header_type) === "commande" &&
{String(props.check_user_acces_right("commande", "write")) === "1" && String(selected_order_header_type) === "commande" &&
String(p_detail_header_statut_label).toLowerCase() === "traité" &&
<Popup
trigger={
@ -8172,7 +8167,7 @@ const Partner_Commande = (props) => {
}
{String(selected_order_header_type) === "devis" &&
{String(props.check_user_acces_right("commande", "write")) === "1" && String(selected_order_header_type) === "devis" &&
(String(p_detail_header_statut_label).toLowerCase().trim() === "en cours" || String(p_detail_header_statut_label).toLowerCase().trim() === "gagné") &&
String(p_detail_header_order_header_ref_interne) === "" &&
<Button variant="outlined" onClick={Convert_Quotation_To_Order_Data} className="detail_class_submenu bton_add_sous_menu_cmd_gauche"> Convertir en Cmd </Button>
@ -8191,7 +8186,7 @@ const Partner_Commande = (props) => {
}
{String(selected_order_header_type) === "devis" && String(p_detail_header_statut_label).toLowerCase() === "en cours" &&
{String(props.check_user_acces_right("commande", "write")) === "1" && String(selected_order_header_type) === "devis" && String(p_detail_header_statut_label).toLowerCase() === "en cours" &&
<Popup
trigger={
<Button variant="outlined" className="detail_class_submenu bton_add_sous_menu_cmd_gauche"> Valider et Reserver </Button>
@ -8240,10 +8235,10 @@ const Partner_Commande = (props) => {
}
{String(p_detail_header_statut_label).toLowerCase() !== "facturé" && <Button variant="outlined" onClick={Cancel_Order_Data} className="detail_class_submenu bton_add_sous_menu_cmd_gauche"> Annuler </Button>}
{String(props.check_user_acces_right("commande", "write")) === "1" && String(p_detail_header_statut_label).toLowerCase() !== "facturé" && <Button variant="outlined" onClick={Cancel_Order_Data} className="detail_class_submenu bton_add_sous_menu_cmd_gauche"> Annuler </Button>}
{String(p_detail_header_statut_label).toLowerCase() !== "traité" &&
{String(props.check_user_acces_right("commande", "write")) === "1" && String(p_detail_header_statut_label).toLowerCase() !== "traité" &&
String(p_detail_header_statut_label).toLowerCase() !== "facturé" &&
<Popup
trigger={<Button variant="outlined" className="detail_class_submenu bton_add_sous_menu_cmd_gauche"> Supprimer </Button>}
@ -8305,8 +8300,8 @@ const Partner_Commande = (props) => {
<Button variant="outlined" onClick={Compute_Order_Header_Price} className="detail_class_submenu bton_add_sous_menu_cmd_gauche" id='order_header_main' name='order_header_main'>Mettre a jour prix</Button>}
{String(p_detail_header_statut_label).toLowerCase() !== "brouillon" && <Button variant="outlined" onClick={print_order_pdf} className="detail_class_submenu bton_add_sous_menu_cmd_gauche" id='order_header_main' name='order_header_main'>Imprimer pdf</Button>}
{String(p_detail_header_statut_label).toLowerCase() !== "brouillon" && <Button variant="outlined" onClick={Check_Electronic_Sign_Before_Sending_Email} className="detail_class_submenu bton_add_sous_menu_cmd_gauche" id='order_header_main' name='order_header_main'>envoyer par mail</Button>}
{String(props.check_user_acces_right("commande", "write")) === "1" && String(p_detail_header_statut_label).toLowerCase() !== "brouillon" && <Button variant="outlined" onClick={print_order_pdf} className="detail_class_submenu bton_add_sous_menu_cmd_gauche" id='order_header_main' name='order_header_main'>Imprimer pdf</Button>}
{String(props.check_user_acces_right("commande", "write")) === "1" && String(p_detail_header_statut_label).toLowerCase() !== "brouillon" && <Button variant="outlined" onClick={Check_Electronic_Sign_Before_Sending_Email} className="detail_class_submenu bton_add_sous_menu_cmd_gauche" id='order_header_main' name='order_header_main'>envoyer par mail</Button>}
<br /> <br />
@ -8347,7 +8342,7 @@ const Partner_Commande = (props) => {
</div>
{String(order_data_edit_mode) !== "1" && String(p_detail_header_statut_label).toLowerCase() !== "facturé" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("commande", "write")) === "1" && String(order_data_edit_mode) !== "1" && String(p_detail_header_statut_label).toLowerCase() !== "facturé" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Order_Header_DetailFields}>Editer
</Button>
@ -8362,11 +8357,11 @@ const Partner_Commande = (props) => {
<div className="session_data" >
<div style={{ "border": "None" }}>
<nav onClick={Ajouter_une_ligne_article} style={{ "fontSize": "18px", "fontWeight": '600', "marginLeft": "10px", "marginTop": "10px", "cursor": "pointer" }}
{String(props.check_user_acces_right("commande", "write")) === "1" && <nav onClick={Ajouter_une_ligne_article} style={{ "fontSize": "18px", "fontWeight": '600', "marginLeft": "10px", "marginTop": "10px", "cursor": "pointer" }}
className="bton_add_line"> <Button> Ajouter 1 article
&nbsp; <FcAddDatabase style={{ "fontSize": "medium" }} />
</Button>
</nav>
</nav>}
<div style={{ height: 550, width: '100%', paddingRight: '1px' }}>
&nbsp;
@ -8502,7 +8497,7 @@ const Partner_Commande = (props) => {
</div>
{String(order_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
{String(props.check_user_acces_right("commande", "write")) === "1" && String(order_data_edit_mode) !== "1" && <div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_edit" onClick={Enable_Order_Header_DetailFields}>Editer
</Button>

View File

@ -5,29 +5,27 @@ import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
import { useParams } from 'react-router-dom';
import { getCookie, setCookie } from 'react-use-cookie';
import { getCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import CheckOut from "./CheckOut";
import {
DataGrid, frFR, GridToolbar,
} from '@mui/x-data-grid';
import * as XLSX from 'xlsx';
import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { IoMdAddCircle } from "react-icons/io";
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
import { FcViewDetails, FcInfo } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import add_plus from "../mysy_img/plus.png";
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import fileDownload from 'js-file-download'
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint } from "react-icons/fc";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns'
@ -35,13 +33,12 @@ import moment from "moment";
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle } from "react-icons/ai";
import Box from '@mui/material/Box';
import { Typography, LinearProgress, sliderClasses } from '@mui/material';
import styled from 'styled-components';
import { CiTrash } from "react-icons/ci";
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
import Autocomplete from '@mui/material/Autocomplete';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
import { IoAddCircleOutline } from "react-icons/io5";
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
@ -55,17 +52,16 @@ import {
GridToolbarFilterButton, GridToolbarDensitySelector, GridToolbarExportContainer, useGridApiContext,
gridFilteredSortedRowIdsSelector,
gridVisibleColumnFieldsSelector,
GridValueGetterParams,
GridPreferencePanelsValue,
} from '@mui/x-data-grid';
//import { utils, writeFileXLSX } from "xlsx";
import { ContextMenu, ContextMenuTrigger } from "react-contextmenu";
import zIndex from "@material-ui/core/styles/zIndex";
import { ContextMenu } from "react-contextmenu";
import { FcOpenedFolder } from "react-icons/fc";
import Module_Historique_Action from "./Module_Historique_Action";
import { GridExportCsvOptions } from '@mui/x-data-grid';
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
@ -185,89 +181,6 @@ const Partner_Facture = (props) => {
{ field: 'reste_to_paye', headerName: 'A payer', width: 150, hide: false, editable: false },
{ field: 'credit_note_ref', headerName: 'Ref. Avoir', width: 150, hide: true, editable: false, },
/* {
field: "Detail", headerName: 'Voir detail',
renderCell: (cellValues) => {
return (
<Button
onClick={(event) => {
Display_Detail_Employe(event, cellValues);
}}
>
<FcViewDetails />
</Button>
);
}
},*/
{/*
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, le document sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
//handleClick_delete(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>
);
}
*/
}
]
@ -338,67 +251,7 @@ const Partner_Facture = (props) => {
);
}
},
{/*
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<Popup
trigger={<Button
onClick={(event) => {
// handleClick_delete(event, cellValues);
}}
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la ligne sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
//handleClick_delete_Order_line(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>
);
}
*/
},
{ field: 'order_line_comment', headerName: 'Commentaire', width: 150, hide: true, editable: false, },
]
@ -416,53 +269,54 @@ const Partner_Facture = (props) => {
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("facture_client", "write")) === "1" && <Popup
trigger={<Button
>
<CiTrash />
<Popup
trigger={<Button
</Button>}
modal
nested
position="center center"
>
<CiTrash />
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, le paiement sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_Paiement(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
En confirmant cette opération, le paiement sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_Paiement(event, cellValues);
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
</div>
)}
</Popup>
)}
</Popup>}
</>
);
@ -2843,7 +2697,7 @@ const Partner_Facture = (props) => {
className="partner_commande"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> Détail ligne Facture <font style={{ fontWeight: "700" }}> {String(invoice_internal_ref)} </font> </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> Détail ligne Facture <font style={{ fontWeight: "700" }}> {String(invoice_internal_ref)} </font> </DialogTitle>
<DialogContent>
@ -3077,7 +2931,7 @@ const Partner_Facture = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}>
<div>
@ -3156,7 +3010,7 @@ const Partner_Facture = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}>
<DialogContentText>
Envoi Facture par email
@ -3300,7 +3154,7 @@ const Partner_Facture = (props) => {
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> Paiement </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> Paiement </DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_Paiement_1_message}
@ -3469,7 +3323,7 @@ const Partner_Facture = (props) => {
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> Annotation </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> Annotation </DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "15rem" }}>
<DialogContentText>
{Dialog_annotation_1_message}
@ -3547,7 +3401,7 @@ const Partner_Facture = (props) => {
{/******** FIN Menu Clique Droit test */}
<h3 style={{ fontFamily:'DM Sans' }}> Mes Factures </h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Mes Factures </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -4629,14 +4483,14 @@ const Partner_Facture = (props) => {
</div>
<div style={{ "width": "23%", "float": "left", "textAlign": "right", "paddingTop": "2rem" }}>
<Button variant="outlined" onClick={print_invoice_pdf} className="detail_class_submenu" id='order_header_main' name='order_header_main'>Imprimer pdf</Button>
<Button variant="outlined" onClick={(event) => {
{String(props.check_user_acces_right("facture_client", "write")) === "1" && <Button variant="outlined" onClick={print_invoice_pdf} className="detail_class_submenu" id='order_header_main' name='order_header_main'>Imprimer pdf</Button>}
{String(props.check_user_acces_right("facture_client", "write")) === "1" && <Button variant="outlined" onClick={(event) => {
setDialog_send_invoice_with_PJ_open(true);
}
} className="detail_class_submenu" id='order_header_main' name='order_header_main'>envoyer par mail</Button>
} className="detail_class_submenu" id='order_header_main' name='order_header_main'>envoyer par mail</Button>}
{String(history_securite_read) === "1" && <Button variant="outlined" onClick={(event) => {
{String(props.check_user_acces_right("facture_client", "write")) === "1" && String(history_securite_read) === "1" && <Button variant="outlined" onClick={(event) => {
setDialog_invoice_history_open(true);
}
} className="detail_class_submenu" id='invoice_history_bton' name='invoice_history_bton'>Historique
@ -4645,17 +4499,17 @@ const Partner_Facture = (props) => {
<div className="div_row"> &nbsp; </div>
<Button variant="outlined" onClick={(event) => {
{String(props.check_user_acces_right("facture_client", "write")) === "1" && <Button variant="outlined" onClick={(event) => {
setDialog_annotation_1_open(true);
}
} className="detail_class_submenu" id='order_header_main' name='order_header_main' style={{ "background": "#b9f6ca" }}> Annotation</Button>
} className="detail_class_submenu" id='order_header_main' name='order_header_main' style={{ "background": "#b9f6ca" }}> Annotation</Button>}
<div className="div_row"> &nbsp; </div>
{p_detail_header_invoice_header_type && String(p_detail_header_invoice_header_type) === "facture" &&
{String(props.check_user_acces_right("facture_client", "write")) === "1" && p_detail_header_invoice_header_type && String(p_detail_header_invoice_header_type) === "facture" &&
String(p_detail_header_credit_note_ref) === "" &&
<Popup
trigger={

View File

@ -1,6 +1,5 @@
import Display_Partner_Catalog_DetailClass_new_v2 from "../components/Display_Partner_Catalog_DetailClass_new_v2";
import Navigation from "../components/Navigation";
export default function display_partner_catalog_detailclass() {
return (

View File

@ -0,0 +1,19 @@
import Jmjformation_Catalogue_Public from "../components/Jmjformation_Catalogue_Public";
const jmjformation_catalogue_public = () => {
return (
<div>
<div>
<Jmjformation_Catalogue_Public />
</div>
</div>
)
}
export default jmjformation_catalogue_public;

View File

@ -1,6 +1,4 @@
import Mon_Catalogue_Public from "../components/Mon_Catalogue_Public";
import Navigation from "../components/Navigation";
import Footer from "./footer";
const mon_catalogue_public = () => {

View File

@ -46,7 +46,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: normal;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -230,7 +230,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: normal;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -412,7 +412,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: normal;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -594,7 +594,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: normal;
font-style: italic;
background-color: gray;
font-weight: normal;