14/06/2026 - 12h
parent
5053d6b951
commit
22eaf4528f
|
|
@ -11704,7 +11704,9 @@ const AddClassManual = (props) => {
|
|||
id="competence_nom"
|
||||
name="competence_nom"
|
||||
fullWidth
|
||||
|
||||
sx={{
|
||||
backgroundColor: "#FFF",
|
||||
}}
|
||||
options={New_Getall_Employee_Statistic_Question_List_result}
|
||||
value={New_Getall_Employee_Statistic_Question_List_result.filter((data) => (data)._id === String(selected_statistic_question_id))[0].label}
|
||||
|
||||
|
|
|
|||
|
|
@ -990,14 +990,7 @@ const AddParnerClient = (props) => {
|
|||
})
|
||||
}
|
||||
|
||||
const [New_Getall_Training_Employee_No_Filter_result, setNew_Getall_Training_Employee_No_Filter_result] = useState([{
|
||||
"_id": "",
|
||||
"id": "",
|
||||
"label": "",
|
||||
"nom": "",
|
||||
"prenom": "",
|
||||
"ismanager": ""
|
||||
}]);
|
||||
const [New_Getall_Training_Employee_No_Filter_result, setNew_Getall_Training_Employee_No_Filter_result] = useState([]);
|
||||
|
||||
const [Getall_Training_Employee_No_Filter_api, setGetall_Training_Employee_No_Filter_api] = useState();
|
||||
const [Getall_Training_Employee_No_Filter_message, setGetall_Training_Employee_No_Filter_message] = useState();
|
||||
|
|
@ -4088,8 +4081,8 @@ const AddParnerClient = (props) => {
|
|||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Get_All_Paiement_of_Client res.data.status = " + res.data.status);
|
||||
console.log(" In Get_All_Paiement_of_Client res.data.message r_class = " + res.data.message);
|
||||
console.log(" In Get_All_Paiement_of_Client res.data.total_payed_amount r_class = " + res.data.total_payed_amount);
|
||||
// console.log(" In Get_All_Paiement_of_Client res.data.message r_class = " + res.data.message);
|
||||
// console.log(" In Get_All_Paiement_of_Client res.data.total_payed_amount r_class = " + res.data.total_payed_amount);
|
||||
setGet_All_Paiement_of_Client_api("true");
|
||||
setGet_All_Paiement_of_Client_result(res.data.message);
|
||||
setNew_Get_All_Paiement_Total_Payed(res.data.total_payed_amount);
|
||||
|
|
@ -7910,7 +7903,7 @@ const AddParnerClient = (props) => {
|
|||
<div style={{ width: '100%', float: 'left' }}>
|
||||
|
||||
<div className="Grid_2_col_sub_colone_header">
|
||||
Rôle principal exist
|
||||
Rôle principal
|
||||
</div>
|
||||
<div className="div_row" style={{ paddingBottom: '0px' }}> </div>
|
||||
|
||||
|
|
|
|||
|
|
@ -8723,11 +8723,11 @@ const Apprenant = (props) => {
|
|||
<div className="session_data" ref={myRef_head} id="myRef_head">
|
||||
<div style={{ "border": "None" }}>
|
||||
|
||||
<div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
|
||||
<div style={{ height: 850, width: '100%', paddingRight: '5px' }}>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
height: 500,
|
||||
height: 800,
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
'& .cell--presentiel': {
|
||||
|
|
@ -8811,7 +8811,7 @@ const Apprenant = (props) => {
|
|||
))}
|
||||
|
||||
columns={columns}
|
||||
pageSize={10}
|
||||
pageSize={20}
|
||||
className="datagridclass"
|
||||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
|
|
@ -8853,7 +8853,7 @@ const Apprenant = (props) => {
|
|||
|
||||
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
rowsPerPageOptions={[20]}
|
||||
disableSelectionOnClick
|
||||
/* components={{
|
||||
Toolbar: GridToolbar,
|
||||
|
|
@ -10151,7 +10151,7 @@ const Apprenant = (props) => {
|
|||
}}
|
||||
disabled={false}
|
||||
className="disabled_style enable_style"
|
||||
value={p_detail_nom}
|
||||
value={p_detail_nom_fille}
|
||||
onChange={(e) => {
|
||||
setp_detail_nom_fille(e.target.value);
|
||||
setapprenant_data_changed("1");
|
||||
|
|
@ -11192,11 +11192,11 @@ const Apprenant = (props) => {
|
|||
<div className="session_data" >
|
||||
<div style={{ "border": "None" }}>
|
||||
|
||||
<div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
|
||||
<div style={{ height: 850, width: '100%', paddingRight: '5px' }}>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
height: 500,
|
||||
height: 800,
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
|
||||
|
|
@ -11247,7 +11247,7 @@ const Apprenant = (props) => {
|
|||
))}
|
||||
|
||||
columns={columns_suivi_pedagogique}
|
||||
pageSize={10}
|
||||
pageSize={20}
|
||||
className="datagridclass"
|
||||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
|
|
@ -11264,7 +11264,7 @@ const Apprenant = (props) => {
|
|||
|
||||
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
rowsPerPageOptions={[20]}
|
||||
disableSelectionOnClick
|
||||
components={{
|
||||
Toolbar: GridToolbar,
|
||||
|
|
|
|||
|
|
@ -9170,6 +9170,9 @@ const Autre_RH = (props) => {
|
|||
id="combo-box-demo"
|
||||
className="block_en_mass_select"
|
||||
fullWidth
|
||||
sx={{
|
||||
backgroundColor: "#FFF",
|
||||
}}
|
||||
options={New_Option}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.value) {
|
||||
|
|
@ -12029,6 +12032,9 @@ const Autre_RH = (props) => {
|
|||
id="combo-box-demo"
|
||||
className="block_en_mass_select"
|
||||
fullWidth
|
||||
sx={{
|
||||
backgroundColor: "#FFF",
|
||||
}}
|
||||
options={New_Option_Evaluation_Masse}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.value) {
|
||||
|
|
@ -12811,7 +12817,9 @@ const Autre_RH = (props) => {
|
|||
name="competence_nom"
|
||||
|
||||
fullWidth
|
||||
|
||||
sx={{
|
||||
backgroundColor: "#FFF",
|
||||
}}
|
||||
options={New_Getall_Employee_Statistic_Question_List_result}
|
||||
value={New_Getall_Employee_Statistic_Question_List_result.filter((data) => (data)._id === String(selected_statistic_question_id))[0].label}
|
||||
|
||||
|
|
|
|||
|
|
@ -2424,19 +2424,19 @@ const Config_Documents = (props) => {
|
|||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
|
|
@ -2538,19 +2538,19 @@ const Config_Documents = (props) => {
|
|||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
|
|
@ -2661,11 +2661,11 @@ const Config_Documents = (props) => {
|
|||
<div className="session_data">
|
||||
<div style={{ "border": "None" }}>
|
||||
|
||||
<div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
|
||||
<div style={{ height: 850, width: '100%', paddingRight: '5px' }}>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
height: 500,
|
||||
height: 800,
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
|
||||
|
|
@ -2682,10 +2682,10 @@ const Config_Documents = (props) => {
|
|||
|
||||
|
||||
"& .MuiDataGrid-columnHeaders": {
|
||||
backgroundColor: "#dfe8f2",
|
||||
color: "#0a2a4d",
|
||||
fontSize: '14px',
|
||||
fontFamily:'DM Sans',
|
||||
backgroundColor: "#dfe8f2",
|
||||
color: "#0a2a4d",
|
||||
fontSize: '14px',
|
||||
fontFamily: 'DM Sans',
|
||||
},
|
||||
|
||||
'& .line--statut--selected': {
|
||||
|
|
@ -2738,7 +2738,7 @@ const Config_Documents = (props) => {
|
|||
))}
|
||||
|
||||
columns={columns}
|
||||
pageSize={10}
|
||||
pageSize={20}
|
||||
className="datagridclass"
|
||||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
|
|
@ -2748,7 +2748,7 @@ const Config_Documents = (props) => {
|
|||
|
||||
}}
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
rowsPerPageOptions={[20]}
|
||||
//disableSelectionOnClick
|
||||
components={{
|
||||
Toolbar: GridToolbar,
|
||||
|
|
@ -3151,8 +3151,8 @@ const Config_Documents = (props) => {
|
|||
height: 700,
|
||||
menubar: true,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
@ -3183,8 +3183,8 @@ const Config_Documents = (props) => {
|
|||
menubar: true,
|
||||
readonly: 1,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
@ -3240,8 +3240,8 @@ const Config_Documents = (props) => {
|
|||
height: 700,
|
||||
menubar: true,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
@ -3278,8 +3278,8 @@ const Config_Documents = (props) => {
|
|||
height: 700,
|
||||
menubar: true,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
@ -3406,19 +3406,20 @@ const Config_Documents = (props) => {
|
|||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
sx={{
|
||||
background: '#FFF',
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
|
|
@ -3633,8 +3634,8 @@ const Config_Documents = (props) => {
|
|||
height: 700,
|
||||
menubar: true,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
@ -3675,8 +3676,8 @@ const Config_Documents = (props) => {
|
|||
height: 700,
|
||||
menubar: true,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
|
|||
import { Fab } from "@material-ui/core";
|
||||
import fileDownload from 'js-file-download'
|
||||
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
|
||||
import Checkbox from '@mui/material/Checkbox';
|
||||
import Checkbox from '@mui/material/Checkbox';
|
||||
import Autocomplete from '@mui/material/Autocomplete';
|
||||
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
|
||||
|
||||
|
|
@ -137,66 +137,66 @@ const Config_Documents_Super_Admin = (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}>
|
||||
×
|
||||
</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_annuler"
|
||||
onClick={() => {
|
||||
console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
|
||||
|
||||
);
|
||||
}
|
||||
}*/
|
||||
/* {
|
||||
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}>
|
||||
×
|
||||
</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_annuler"
|
||||
onClick={() => {
|
||||
console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
|
||||
|
||||
);
|
||||
}
|
||||
}*/
|
||||
|
||||
]
|
||||
|
||||
|
|
@ -2056,7 +2056,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
|
||||
if (file_size > 10000000) {
|
||||
alert("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -2156,7 +2156,7 @@ const Config_Documents_Super_Admin = (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}
|
||||
|
|
@ -2176,7 +2176,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
className="displaypartnersession"
|
||||
>
|
||||
|
||||
<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">
|
||||
|
||||
<div className="session_caract_Dialog" > Type Document
|
||||
|
|
@ -2273,7 +2273,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
|
||||
</Dialog>
|
||||
|
||||
<h3 style={{ fontFamily:'DM Sans' }}> Configuration documents (Admin) </h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Configuration documents (Admin) </h3>
|
||||
<div className="div_row">
|
||||
<div className="titre1"> Utilisez les filtres !</div>
|
||||
<div className="div_row" style={{ "marginBottom": "5px" }}>
|
||||
|
|
@ -2295,19 +2295,19 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
|
|
@ -2409,19 +2409,19 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
|
|
@ -2532,11 +2532,11 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
<div className="session_data">
|
||||
<div style={{ "border": "None" }}>
|
||||
|
||||
<div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
|
||||
<div style={{ height: 850, width: '100%', paddingRight: '5px' }}>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
height: 500,
|
||||
height: 800,
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
|
||||
|
|
@ -2553,10 +2553,10 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
|
||||
|
||||
"& .MuiDataGrid-columnHeaders": {
|
||||
backgroundColor: "#dfe8f2",
|
||||
color: "#0a2a4d",
|
||||
fontSize: '14px',
|
||||
fontFamily:'DM Sans',
|
||||
backgroundColor: "#dfe8f2",
|
||||
color: "#0a2a4d",
|
||||
fontSize: '14px',
|
||||
fontFamily: 'DM Sans',
|
||||
},
|
||||
|
||||
'& .line--statut--selected': {
|
||||
|
|
@ -2610,7 +2610,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
))}
|
||||
|
||||
columns={columns}
|
||||
pageSize={10}
|
||||
pageSize={20}
|
||||
className="datagridclass"
|
||||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
|
|
@ -2620,7 +2620,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
|
||||
}}
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
rowsPerPageOptions={[20]}
|
||||
//disableSelectionOnClick
|
||||
components={{
|
||||
Toolbar: GridToolbar,
|
||||
|
|
@ -2686,7 +2686,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
|
||||
|
||||
{String(display_detail_document) === "1" && String(add_one_document) !== "1" && <div className="div_row">
|
||||
<h3 style={{ fontFamily:'DM Sans' }}> Détail document <i> {p_detail_nom} </i></h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Détail document <i> {p_detail_nom} </i></h3>
|
||||
|
||||
<div className="div_row">
|
||||
|
||||
|
|
@ -2752,11 +2752,11 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
|
||||
{String(partner_document_data_edit_mode) !== "1" && String(p_detail_type_doc) === "email" && <div className="div_row_gauche texte_area_filter" >
|
||||
Joindre en PDF <br />
|
||||
|
||||
|
||||
<Checkbox
|
||||
name="document_join_pdf"
|
||||
className="disabled_style"
|
||||
checked={p_detail_joint_pdf}
|
||||
checked={p_detail_joint_pdf}
|
||||
/>
|
||||
|
||||
</div>}
|
||||
|
|
@ -2798,7 +2798,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
}}
|
||||
/>
|
||||
|
||||
</div>}
|
||||
</div>}
|
||||
|
||||
{String(partner_document_data_edit_mode) === "1" && <div className="div_row_gauche texte_area_filter" >
|
||||
Version par defaut <br />
|
||||
|
|
@ -3024,8 +3024,8 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
height: 700,
|
||||
menubar: true,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
@ -3056,8 +3056,8 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
menubar: true,
|
||||
readonly: 1,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
@ -3079,7 +3079,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
|
||||
<div className="div_row" >
|
||||
|
||||
{p_detail_joint_pdf === true && p_detail_type_doc === "email" && <div className="div_row" style={{ "border": "None", "width": "98%", "marginLeft": "1%", "marginRight": "1%", "float": "left" }}>
|
||||
{p_detail_joint_pdf === true && p_detail_type_doc === "email" && <div className="div_row" style={{ "border": "None", "width": "98%", "marginLeft": "1%", "marginRight": "1%", "float": "left" }}>
|
||||
<Button variant="outlined"
|
||||
onClick={(event) => {
|
||||
setdocument_principal_ou_corp_mail("1");
|
||||
|
|
@ -3093,7 +3093,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
</div>}
|
||||
|
||||
|
||||
{p_detail_joint_pdf === true && p_detail_type_doc === "email" && String(document_principal_ou_corp_mail) === "2" &&
|
||||
{p_detail_joint_pdf === true && p_detail_type_doc === "email" && String(document_principal_ou_corp_mail) === "2" &&
|
||||
<div style={{ "width": "98%", "marginLeft": "1%", "marginRight": "1%", "float": "left" }}>
|
||||
|
||||
<div className="titre_training_text"> Modifier le Corps du mail </div>
|
||||
|
|
@ -3113,8 +3113,8 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
height: 700,
|
||||
menubar: true,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
@ -3151,8 +3151,8 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
height: 700,
|
||||
menubar: true,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
@ -3198,7 +3198,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
{String(partner_document_data_edit_mode) !== "1" && <div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
|
|
@ -3216,7 +3216,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
</div>}
|
||||
|
||||
{String(display_detail_document) !== "1" && String(add_one_document) === "1" && <div className="div_row">
|
||||
<h3 style={{ fontFamily:'DM Sans' }}> Personnaliser un nouveau document </h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Personnaliser un nouveau document </h3>
|
||||
<div className="div_row" style={{ "textAlign": "left" }}>
|
||||
|
||||
<div className="div_row_gauche"> Choisir le document à ajouter <br />
|
||||
|
|
@ -3238,19 +3238,20 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
sx={{
|
||||
background: '#FFF',
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
|
|
@ -3332,7 +3333,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
{String(p_one_detail_type_doc) === "email" && <div className="div_row_gauche texte_area_filter" >
|
||||
Joindre en PDF <br />
|
||||
|
||||
<Checkbox
|
||||
<Checkbox
|
||||
name="document_join_pdf"
|
||||
// className="disabled_style"
|
||||
checked={p_detail_joint_pdf}
|
||||
|
|
@ -3425,7 +3426,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
|
||||
<div className="div_row" >
|
||||
|
||||
{p_detail_joint_pdf === true && p_detail_type_doc === "email" && <div className="div_row" style={{ "border": "None", "width": "98%", "marginLeft": "1%", "marginRight": "1%", "float": "left" }}>
|
||||
{p_detail_joint_pdf === true && p_detail_type_doc === "email" && <div className="div_row" style={{ "border": "None", "width": "98%", "marginLeft": "1%", "marginRight": "1%", "float": "left" }}>
|
||||
<Button variant="outlined"
|
||||
onClick={(event) => {
|
||||
setdocument_principal_ou_corp_mail("1");
|
||||
|
|
@ -3439,7 +3440,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
</div>}
|
||||
|
||||
|
||||
{p_detail_joint_pdf === true && p_detail_type_doc === "email" && String(document_principal_ou_corp_mail) === "2" &&
|
||||
{p_detail_joint_pdf === true && p_detail_type_doc === "email" && String(document_principal_ou_corp_mail) === "2" &&
|
||||
<div style={{ "width": "98%", "marginLeft": "1%", "marginRight": "1%", "float": "left" }}>
|
||||
|
||||
<div className="titre_training_text"> Créer le Corps du mail </div>
|
||||
|
|
@ -3465,8 +3466,8 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
height: 700,
|
||||
menubar: true,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
@ -3507,8 +3508,8 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
height: 700,
|
||||
menubar: true,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount',
|
||||
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
|
||||
|
||||
],
|
||||
|
|
|
|||
|
|
@ -10187,11 +10187,11 @@ const Employes = (props) => {
|
|||
<div className="session_data">
|
||||
<div style={{ "border": "None" }}>
|
||||
|
||||
<div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
|
||||
<div style={{ height: 850, width: '100%', paddingRight: '5px' }}>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
height: 500,
|
||||
height: 800,
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
fontFamily: "Plus Jakarta Sans, sans-serif", color: '#EEF1F6',
|
||||
|
|
@ -10335,7 +10335,7 @@ const Employes = (props) => {
|
|||
|
||||
}}
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
rowsPerPageOptions={[15]}
|
||||
disableSelectionOnClick
|
||||
components={{
|
||||
Toolbar: GridToolbar,
|
||||
|
|
@ -10420,6 +10420,9 @@ const Employes = (props) => {
|
|||
id="combo-box-demo"
|
||||
className="block_en_mass_select"
|
||||
fullWidth
|
||||
sx={{
|
||||
backgroundColor: "#FFF",
|
||||
}}
|
||||
options={New_Option}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.value) {
|
||||
|
|
@ -13836,6 +13839,9 @@ const Employes = (props) => {
|
|||
id="combo-box-demo"
|
||||
className="block_en_mass_select"
|
||||
fullWidth
|
||||
sx={{
|
||||
backgroundColor: "#FFF",
|
||||
}}
|
||||
options={New_Option_Evaluation_Masse}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.value) {
|
||||
|
|
@ -14611,7 +14617,9 @@ const Employes = (props) => {
|
|||
name="competence_nom"
|
||||
|
||||
fullWidth
|
||||
|
||||
sx={{
|
||||
backgroundColor: "#FFF",
|
||||
}}
|
||||
options={New_Getall_Employee_Statistic_Question_List_result}
|
||||
value={New_Getall_Employee_Statistic_Question_List_result.filter((data) => (data)._id === String(selected_statistic_question_id))[0].label}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,14 @@ import { BsCheck2Circle } from "react-icons/bs";
|
|||
import Box from '@mui/material/Box';
|
||||
import { FlagTriangleRight } from 'lucide-react';
|
||||
import { CiBoxList } from "react-icons/ci";
|
||||
|
||||
import {
|
||||
Clock,
|
||||
User,
|
||||
UserCheck,
|
||||
UserX,
|
||||
Hourglass,
|
||||
MinusCircle,
|
||||
} from "lucide-react";
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
import DialogActions from '@mui/material/DialogActions';
|
||||
import DialogContent from '@mui/material/DialogContent';
|
||||
|
|
@ -583,7 +590,7 @@ const Module_Absence = (props) => {
|
|||
//console.log(eventInfo);
|
||||
return (
|
||||
<>
|
||||
<div style={{ width: '100%', float: 'left', height: '30px' }}> <div style={{ width: '65%', float: 'left' }}> <b> {eventInfo.timeText}</b> </div>
|
||||
{/*<> <div style={{ width: '100%', float: 'left', height: '30px' }}> <div style={{ width: '65%', float: 'left' }}> <b> {eventInfo.timeText}</b> </div>
|
||||
<div style={{ width: '30%', float: 'right', textAlign: 'right', paddingLeft: '10px' }}>
|
||||
{eventInfo.event.extendedProps.justified && eventInfo.event.extendedProps.justified === "true" &&
|
||||
<nav style={{ background: '#c2f0bc', borderRadius: '20rem', textAlign: 'center', height: '20px', width: '20px', width: '20px' }}> <FlagTriangleRight size={14} style={{ color: 'green' }} /> </nav>}
|
||||
|
|
@ -593,11 +600,73 @@ const Module_Absence = (props) => {
|
|||
</div>
|
||||
|
||||
</div>
|
||||
{eventInfo.event.title && <> <i>{eventInfo.event.title}</i> <br /></>}
|
||||
{eventInfo.event.extendedProps.code_session && <> <i>{eventInfo.event.extendedProps.code_session}</i> <br /></>}
|
||||
{eventInfo.event.title && <> <i>{eventInfo.event.title}</i> <br /></>}
|
||||
{eventInfo.event.extendedProps.code_session && <> <i>{eventInfo.event.extendedProps.code_session}</i> <br /></>}
|
||||
</>*/}
|
||||
|
||||
{eventInfo.event.extendedProps.justified && eventInfo.event.extendedProps.justified === "true" &&
|
||||
<div className={"calendar-slot slot-green"} style={{ height: '100%' }}>
|
||||
<div className="slot-left-line" />
|
||||
|
||||
<div className="slot-header">
|
||||
<div className="slot-time">
|
||||
<Clock size={18} strokeWidth={2.5} />
|
||||
<span>{eventInfo.timeText}</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div className="slot-content">
|
||||
<div className="slot-title">{eventInfo.event.title}</div>
|
||||
<div className="slot-subtitle">{eventInfo.event.extendedProps.code_session}</div>
|
||||
</div>
|
||||
|
||||
<div className={"absence-badge badge-green"}>
|
||||
<div className="absence-icon">
|
||||
<UserCheck size={30} strokeWidth={2.6} />
|
||||
</div>
|
||||
|
||||
<div className="absence-text">
|
||||
<div className="absence-label">Justifiée</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
||||
{!eventInfo.event.extendedProps.justified || eventInfo.event.extendedProps.justified !== "true" &&
|
||||
<div className={"calendar-slot slot-orange"} style={{ height: '100%' }}>
|
||||
<div className="slot-left-line" />
|
||||
|
||||
<div className="slot-header">
|
||||
<div className="slot-time">
|
||||
<UserX size={18} strokeWidth={2.5} />
|
||||
<span>{eventInfo.timeText}</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div className="slot-content">
|
||||
<div className="slot-title">{eventInfo.event.title}</div>
|
||||
<div className="slot-subtitle">{eventInfo.event.extendedProps.code_session}</div>
|
||||
</div>
|
||||
|
||||
<div className={"absence-badge badge-orange"}>
|
||||
<div className="absence-icon">
|
||||
<UserX size={30} strokeWidth={2.6} />
|
||||
</div>
|
||||
|
||||
<div className="absence-text">
|
||||
<div className="absence-label">Non justifiée</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
||||
</>
|
||||
|
||||
|
||||
)
|
||||
};
|
||||
|
||||
|
|
@ -1677,6 +1746,7 @@ const Module_Absence = (props) => {
|
|||
|
||||
|
||||
<FullCalendar
|
||||
height={800}
|
||||
locales={allLocales}
|
||||
locale={'fr'}
|
||||
editable
|
||||
|
|
@ -1897,4 +1967,292 @@ width: 100%;
|
|||
font-size: 13px;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.calendar-slot {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
border-radius: 14px;
|
||||
padding: 8px 8px;
|
||||
overflow: hidden;
|
||||
color: #ffffff;
|
||||
font-family: "DM Sans", Arial, Helvetica, sans-serif;
|
||||
box-shadow: 0 18px 35px rgba(15, 23, 42, 0.16);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.slot-left-line {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 10px;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.22);
|
||||
}
|
||||
|
||||
.slot-blue {
|
||||
background: linear-gradient(135deg, #3d8df2 0%, #216dc7 100%);
|
||||
}
|
||||
|
||||
.slot-green {
|
||||
background: linear-gradient(135deg, #2fc96b 0%, #16a34a 100%);
|
||||
}
|
||||
|
||||
.slot-orange {
|
||||
background: linear-gradient(135deg, #ffb31a 0%, #fb8c00 100%);
|
||||
}
|
||||
|
||||
.slot-gray {
|
||||
background: linear-gradient(135deg, #9ca3af 0%, #64748b 100%);
|
||||
}
|
||||
|
||||
.slot-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
gap: 1px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.slot-time {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
font-size: 14px;
|
||||
font-weight: 800;
|
||||
letter-spacing: -0.4px;
|
||||
}
|
||||
|
||||
.slot-mode {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 10px 14px;
|
||||
border-radius: 10px;
|
||||
font-size: 12px;
|
||||
font-weight: 800;
|
||||
background: rgba(15, 23, 42, 0.14);
|
||||
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.slot-content {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.slot-title {
|
||||
font-size: 12px;
|
||||
line-height: 15px;
|
||||
font-weight: 850;
|
||||
letter-spacing: -0.6px;
|
||||
}
|
||||
|
||||
.slot-subtitle {
|
||||
margin-top: 2px;
|
||||
font-size: 12px;
|
||||
line-height: 26px;
|
||||
font-weight: 600;
|
||||
opacity: 0.92;
|
||||
}
|
||||
|
||||
.absence-badge {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 18px;
|
||||
|
||||
padding: 6px 10px;
|
||||
border-radius: 10px;
|
||||
background: #ffffff;
|
||||
box-sizing: border-box;
|
||||
box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
|
||||
}
|
||||
|
||||
.absence-icon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border-radius: 999px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.absence-text {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.absence-label {
|
||||
font-size: 12px;
|
||||
line-height: 15px;
|
||||
font-weight: 850;
|
||||
}
|
||||
|
||||
.absence-description {
|
||||
margin-top: 6px;
|
||||
font-size: 12px;
|
||||
line-height: 22px;
|
||||
font-weight: 500;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.badge-green {
|
||||
background: linear-gradient(180deg, #f0fdf4 0%, #ffffff 100%);
|
||||
border-left: 3px solid #16a34a;
|
||||
}
|
||||
|
||||
.badge-green .absence-icon,
|
||||
.badge-green .absence-label {
|
||||
color: #15803d;
|
||||
}
|
||||
|
||||
.badge-red {
|
||||
background: linear-gradient(180deg, #fff7f5 0%, #ffffff 100%);
|
||||
border-left: 3px solid #ef3b2d;
|
||||
}
|
||||
|
||||
.badge-red .absence-icon,
|
||||
.badge-red .absence-label {
|
||||
color: #dc2626;
|
||||
}
|
||||
|
||||
.badge-orange {
|
||||
background: linear-gradient(180deg, #fff7ed 0%, #ffffff 100%);
|
||||
border-left: 3px solid #f59e0b;
|
||||
}
|
||||
|
||||
.badge-orange .absence-icon,
|
||||
.badge-orange .absence-label {
|
||||
color: #d97706;
|
||||
}
|
||||
|
||||
.badge-gray {
|
||||
background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
|
||||
border-left: 3px solid #64748b;
|
||||
}
|
||||
|
||||
.badge-gray .absence-icon,
|
||||
.badge-gray .absence-label {
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.compact-slot {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
min-height: 74px;
|
||||
padding: 8px 9px;
|
||||
border-radius: 8px;
|
||||
color: #ffffff;
|
||||
font-family: "DM Sans", Arial, Helvetica, sans-serif;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.compact-top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 6px;
|
||||
margin-bottom: 8px;
|
||||
font-size: 12px;
|
||||
font-weight: 850;
|
||||
}
|
||||
|
||||
.compact-title {
|
||||
font-size: 12px;
|
||||
line-height: 15px;
|
||||
font-weight: 750;
|
||||
}
|
||||
|
||||
.compact-status {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
max-width: 128px;
|
||||
padding: 3px 6px;
|
||||
border-radius: 999px;
|
||||
font-size: 10px;
|
||||
font-weight: 850;
|
||||
background: #ffffff;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.compact-status span {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.compact-status.badge-green {
|
||||
color: #15803d;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.compact-status.badge-red {
|
||||
color: #dc2626;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.compact-status.badge-orange {
|
||||
color: #d97706;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.compact-status.badge-gray {
|
||||
color: #64748b;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.calendar-slot {
|
||||
min-height: 180px;
|
||||
padding: 18px 16px;
|
||||
}
|
||||
|
||||
.slot-time {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.slot-mode {
|
||||
font-size: 12px;
|
||||
padding: 7px 10px;
|
||||
}
|
||||
|
||||
.slot-title {
|
||||
font-size: 14px;
|
||||
line-height: 25px;
|
||||
}
|
||||
|
||||
.slot-subtitle {
|
||||
font-size: 12px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.absence-badge {
|
||||
gap: 12px;
|
||||
padding: 12px 14px;
|
||||
}
|
||||
|
||||
.absence-icon {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
.absence-label {
|
||||
font-size: 12px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.absence-description {
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.fc-v-event {
|
||||
display: block;
|
||||
background: #FFF;
|
||||
border: none;
|
||||
}
|
||||
`;
|
||||
|
|
@ -21,7 +21,14 @@ import moment from "moment";
|
|||
import Box from '@mui/material/Box';
|
||||
|
||||
import { CiBoxList } from "react-icons/ci";
|
||||
|
||||
import {
|
||||
Clock,
|
||||
User,
|
||||
UserCheck,
|
||||
UserX,
|
||||
Hourglass,
|
||||
MinusCircle,
|
||||
} from "lucide-react";
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
import DialogActions from '@mui/material/DialogActions';
|
||||
import DialogContent from '@mui/material/DialogContent';
|
||||
|
|
@ -342,6 +349,7 @@ const Module_ENT_Absence = (props) => {
|
|||
const stored_cookie = getCookie('tokenmysych');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("apprenant_id", props.apprenant_id);
|
||||
form.append("inscription_id", props.inscription_id);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_Absence/";
|
||||
|
|
@ -427,6 +435,7 @@ const Module_ENT_Absence = (props) => {
|
|||
const stored_cookie = getCookie('tokenmysych');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("apprenant_id", props.apprenant_id);
|
||||
form.append("inscription_id", props.inscription_id);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_total_Heure_Absence/";
|
||||
|
|
@ -705,7 +714,7 @@ const Module_ENT_Absence = (props) => {
|
|||
//console.log(eventInfo);
|
||||
return (
|
||||
<>
|
||||
<div style={{ width: '100%', float: 'left', height: '30px' }}> <div style={{ width: '65%', float: 'left' }}> <b> {eventInfo.timeText}</b> </div>
|
||||
{/*<> <div style={{ width: '100%', float: 'left', height: '30px' }}> <div style={{ width: '65%', float: 'left' }}> <b> {eventInfo.timeText}</b> </div>
|
||||
<div style={{ width: '30%', float: 'right', textAlign: 'right', paddingLeft: '10px' }}>
|
||||
{eventInfo.event.extendedProps.justified && eventInfo.event.extendedProps.justified === "true" &&
|
||||
<nav style={{ background: '#c2f0bc', borderRadius: '20rem', textAlign: 'center', height: '20px', width: '20px', width: '20px' }}> <FlagTriangleRight size={14} style={{ color: 'green' }} /> </nav>}
|
||||
|
|
@ -716,9 +725,66 @@ const Module_ENT_Absence = (props) => {
|
|||
|
||||
</div>
|
||||
{eventInfo.event.title && <> <i>{eventInfo.event.title}</i> <br /></>}
|
||||
</>*/}
|
||||
|
||||
{eventInfo.event.extendedProps.justified && eventInfo.event.extendedProps.justified === "true" &&
|
||||
<div className={"calendar-slot slot-green"} style={{ height: '100%' }}>
|
||||
<div className="slot-left-line" />
|
||||
|
||||
<div className="slot-header">
|
||||
<div className="slot-time">
|
||||
<Clock size={18} strokeWidth={2.5} />
|
||||
<span>{eventInfo.timeText}</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div className="slot-content">
|
||||
<div className="slot-title">{eventInfo.event.title}</div>
|
||||
<div className="slot-subtitle">{eventInfo.event.extendedProps.code_session}</div>
|
||||
</div>
|
||||
|
||||
<div className={"absence-badge badge-green"}>
|
||||
<div className="absence-icon">
|
||||
<UserCheck size={30} strokeWidth={2.6} />
|
||||
</div>
|
||||
|
||||
<div className="absence-text">
|
||||
<div className="absence-label">Justifiée</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
||||
{!eventInfo.event.extendedProps.justified || eventInfo.event.extendedProps.justified !== "true" &&
|
||||
<div className={"calendar-slot slot-orange"} style={{ height: '100%' }}>
|
||||
<div className="slot-left-line" />
|
||||
|
||||
<div className="slot-header">
|
||||
<div className="slot-time">
|
||||
<UserX size={18} strokeWidth={2.5} />
|
||||
<span>{eventInfo.timeText}</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div className="slot-content">
|
||||
<div className="slot-title">{eventInfo.event.title}</div>
|
||||
<div className="slot-subtitle">{eventInfo.event.extendedProps.code_session}</div>
|
||||
</div>
|
||||
|
||||
<div className={"absence-badge badge-orange"}>
|
||||
<div className="absence-icon">
|
||||
<UserX size={30} strokeWidth={2.6} />
|
||||
</div>
|
||||
|
||||
<div className="absence-text">
|
||||
<div className="absence-label">Non justifiée</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
</>
|
||||
)
|
||||
|
|
@ -923,7 +989,7 @@ const Module_ENT_Absence = (props) => {
|
|||
|
||||
useEffect(() => {
|
||||
|
||||
|
||||
console.log(" INSCRIT ID = ", props.inscription_id);
|
||||
// Get_Connected_User_List_Agenda_Events();
|
||||
//Get_Partner_Debut_Fin_Journee();
|
||||
Get_ENT_Apprenant_Absence();
|
||||
|
|
@ -1224,32 +1290,8 @@ const Module_ENT_Absence = (props) => {
|
|||
|
||||
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
|
||||
|
||||
<nav style={{ "float": "right", "width": "65%" }}>
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_type"
|
||||
id="event_dialog_type"
|
||||
|
||||
select
|
||||
fullWidth
|
||||
|
||||
value={p_detail_event_type}
|
||||
onChange={(e) => {
|
||||
if (String(props.write_access) === "1") {
|
||||
setp_detail_event_type(e.target.value);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
>
|
||||
<MenuItem value="absence" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Absence </MenuItem>
|
||||
<MenuItem value="planning" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Planning </MenuItem>
|
||||
<MenuItem value="autre" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Autre </MenuItem>
|
||||
|
||||
</TextField>
|
||||
|
||||
<nav style={{ "float": "right", "width": "65%", "paddingTop": "15px" }}>
|
||||
Absence
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
|
@ -1258,14 +1300,7 @@ const Module_ENT_Absence = (props) => {
|
|||
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Justifié ? </nav>
|
||||
|
||||
<nav style={{ "float": "right", "width": "50%" }}
|
||||
onClick={(e) => {
|
||||
if (p_detail_justified === true)
|
||||
setp_detail_justified(false);
|
||||
else
|
||||
setp_detail_justified(true);
|
||||
|
||||
}
|
||||
}
|
||||
disabled={true}
|
||||
|
||||
id="toggleSwitchNav" name="toggleSwitchNav">
|
||||
<ToggleSwitch_v2_mysy id="toggleSwitch" name="toggleSwitch" checked={p_detail_justified}
|
||||
|
|
@ -1444,7 +1479,7 @@ const Module_ENT_Absence = (props) => {
|
|||
|
||||
</Dialog>
|
||||
|
||||
|
||||
|
||||
|
||||
{local_heure_non_justifie && local_heure_non_justifie.length > 0 && <h3 style={{ fontFamily: 'DM Sans', fontSize: '26px', width: '100%', textAlign: "center" }}> Absences - {Get_ENT_Apprenant_Total_Heure_Absence_result &&
|
||||
<font style={{ "color": "orange", "textAlign": "center" }}>
|
||||
|
|
@ -1469,6 +1504,7 @@ const Module_ENT_Absence = (props) => {
|
|||
|
||||
<div className="bloc_planning" style={{ fontSize: '12px' }}>
|
||||
<FullCalendar
|
||||
height={800}
|
||||
locales={allLocales}
|
||||
locale={'fr'}
|
||||
|
||||
|
|
@ -1673,5 +1709,309 @@ width: 100%;
|
|||
}
|
||||
.fc-event-main{
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
|
||||
.fc .fc-timegrid-slot {
|
||||
height: 35px !important;
|
||||
}
|
||||
|
||||
.fc .fc-timegrid-slot-label-cushion {
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
color: #475569;
|
||||
}
|
||||
|
||||
.fc .fc-timegrid-axis-cushion {
|
||||
font-size: 13px;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.calendar-slot {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
border-radius: 14px;
|
||||
padding: 8px 8px;
|
||||
overflow: hidden;
|
||||
color: #ffffff;
|
||||
font-family: "DM Sans", Arial, Helvetica, sans-serif;
|
||||
box-shadow: 0 18px 35px rgba(15, 23, 42, 0.16);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.slot-left-line {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 10px;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.22);
|
||||
}
|
||||
|
||||
.slot-blue {
|
||||
background: linear-gradient(135deg, #3d8df2 0%, #216dc7 100%);
|
||||
}
|
||||
|
||||
.slot-green {
|
||||
background: linear-gradient(135deg, #2fc96b 0%, #16a34a 100%);
|
||||
}
|
||||
|
||||
.slot-orange {
|
||||
background: linear-gradient(135deg, #ffb31a 0%, #fb8c00 100%);
|
||||
}
|
||||
|
||||
.slot-gray {
|
||||
background: linear-gradient(135deg, #9ca3af 0%, #64748b 100%);
|
||||
}
|
||||
|
||||
.slot-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
gap: 1px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.slot-time {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
font-size: 14px;
|
||||
font-weight: 800;
|
||||
letter-spacing: -0.4px;
|
||||
}
|
||||
|
||||
.slot-mode {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 10px 14px;
|
||||
border-radius: 10px;
|
||||
font-size: 12px;
|
||||
font-weight: 800;
|
||||
background: rgba(15, 23, 42, 0.14);
|
||||
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.slot-content {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.slot-title {
|
||||
font-size: 12px;
|
||||
line-height: 15px;
|
||||
font-weight: 850;
|
||||
letter-spacing: -0.6px;
|
||||
}
|
||||
|
||||
.slot-subtitle {
|
||||
margin-top: 2px;
|
||||
font-size: 12px;
|
||||
line-height: 26px;
|
||||
font-weight: 600;
|
||||
opacity: 0.92;
|
||||
}
|
||||
|
||||
.absence-badge {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 18px;
|
||||
|
||||
padding: 6px 10px;
|
||||
border-radius: 10px;
|
||||
background: #ffffff;
|
||||
box-sizing: border-box;
|
||||
box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
|
||||
}
|
||||
|
||||
.absence-icon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border-radius: 999px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.absence-text {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.absence-label {
|
||||
font-size: 12px;
|
||||
line-height: 15px;
|
||||
font-weight: 850;
|
||||
}
|
||||
|
||||
.absence-description {
|
||||
margin-top: 6px;
|
||||
font-size: 12px;
|
||||
line-height: 22px;
|
||||
font-weight: 500;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.badge-green {
|
||||
background: linear-gradient(180deg, #f0fdf4 0%, #ffffff 100%);
|
||||
border-left: 3px solid #16a34a;
|
||||
}
|
||||
|
||||
.badge-green .absence-icon,
|
||||
.badge-green .absence-label {
|
||||
color: #15803d;
|
||||
}
|
||||
|
||||
.badge-red {
|
||||
background: linear-gradient(180deg, #fff7f5 0%, #ffffff 100%);
|
||||
border-left: 3px solid #ef3b2d;
|
||||
}
|
||||
|
||||
.badge-red .absence-icon,
|
||||
.badge-red .absence-label {
|
||||
color: #dc2626;
|
||||
}
|
||||
|
||||
.badge-orange {
|
||||
background: linear-gradient(180deg, #fff7ed 0%, #ffffff 100%);
|
||||
border-left: 3px solid #f59e0b;
|
||||
}
|
||||
|
||||
.badge-orange .absence-icon,
|
||||
.badge-orange .absence-label {
|
||||
color: #d97706;
|
||||
}
|
||||
|
||||
.badge-gray {
|
||||
background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
|
||||
border-left: 3px solid #64748b;
|
||||
}
|
||||
|
||||
.badge-gray .absence-icon,
|
||||
.badge-gray .absence-label {
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.compact-slot {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
min-height: 74px;
|
||||
padding: 8px 9px;
|
||||
border-radius: 8px;
|
||||
color: #ffffff;
|
||||
font-family: "DM Sans", Arial, Helvetica, sans-serif;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.compact-top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 6px;
|
||||
margin-bottom: 8px;
|
||||
font-size: 12px;
|
||||
font-weight: 850;
|
||||
}
|
||||
|
||||
.compact-title {
|
||||
font-size: 12px;
|
||||
line-height: 15px;
|
||||
font-weight: 750;
|
||||
}
|
||||
|
||||
.compact-status {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
max-width: 128px;
|
||||
padding: 3px 6px;
|
||||
border-radius: 999px;
|
||||
font-size: 10px;
|
||||
font-weight: 850;
|
||||
background: #ffffff;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.compact-status span {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.compact-status.badge-green {
|
||||
color: #15803d;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.compact-status.badge-red {
|
||||
color: #dc2626;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.compact-status.badge-orange {
|
||||
color: #d97706;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.compact-status.badge-gray {
|
||||
color: #64748b;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.calendar-slot {
|
||||
min-height: 180px;
|
||||
padding: 18px 16px;
|
||||
}
|
||||
|
||||
.slot-time {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.slot-mode {
|
||||
font-size: 12px;
|
||||
padding: 7px 10px;
|
||||
}
|
||||
|
||||
.slot-title {
|
||||
font-size: 14px;
|
||||
line-height: 25px;
|
||||
}
|
||||
|
||||
.slot-subtitle {
|
||||
font-size: 12px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.absence-badge {
|
||||
gap: 12px;
|
||||
padding: 12px 14px;
|
||||
}
|
||||
|
||||
.absence-icon {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
.absence-label {
|
||||
font-size: 12px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.absence-description {
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.fc-v-event {
|
||||
display: block;
|
||||
background: #FFF;
|
||||
border: none;
|
||||
}
|
||||
`;
|
||||
|
|
@ -2280,7 +2280,7 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
setdeclare_absence("1");
|
||||
|
||||
}} className="bton_enreg_dialog" >Déclater une absence</Button>
|
||||
}} className="bton_enreg_dialog" >Déclarer une absence</Button>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
|
@ -3252,7 +3252,9 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
<Module_ENT_Absence attendee_email={props.email_apprenant}
|
||||
apprenant_id={props.apprenant_id}
|
||||
class_id={selected_id} />
|
||||
class_id={selected_id}
|
||||
inscription_id={selected_inscription_id}
|
||||
/>
|
||||
|
||||
|
||||
</div>}
|
||||
|
|
|
|||
|
|
@ -1124,19 +1124,19 @@ const Module_Evaluation_Positionnement = (props) => {
|
|||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
|
|
@ -1368,6 +1368,9 @@ const Module_Evaluation_Positionnement = (props) => {
|
|||
id="combo-box-demo"
|
||||
className="block_en_mass_select"
|
||||
fullWidth
|
||||
sx={{
|
||||
backgroundColor: "#FFF",
|
||||
}}
|
||||
options={New_Option_q_position_Masse}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.value) {
|
||||
|
|
|
|||
|
|
@ -51,7 +51,8 @@ import 'react-tooltip/dist/react-tooltip.css'
|
|||
|
||||
import TextareaAutosize from '@mui/material/TextareaAutosize';
|
||||
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
|
||||
|
||||
import VisibilityIcon from '@mui/icons-material/Visibility';
|
||||
import ArrowCircleDownIcon from '@mui/icons-material/ArrowCircleDown';
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
|
||||
|
|
@ -202,13 +203,52 @@ const Module_Relance_Client_Facture = (props) => {
|
|||
{ field: '_id', headerName: '_id', hide: true, disableExport: true, },
|
||||
{ field: 'id', headerName: 'id', hide: true, disableExport: true },
|
||||
{ field: 'client_id', headerName: 'client_id', hide: true, disableExport: true },
|
||||
{ field: 'relance_date', headerName: 'Date Relance', maxwidth: 250, flex: 1, hide: false, editable: false },
|
||||
{ field: 'stored_document_id', headerName: 'stored_document_id', hide: true, disableExport: true },
|
||||
{ field: 'strored_document_file_extention', headerName: 'strored_document_file_extention', hide: true, disableExport: true },
|
||||
{ field: 'strored_document_file_business_object', headerName: 'strored_document_file_business_object', hide: true, disableExport: true },
|
||||
|
||||
|
||||
{ field: 'relance_date', headerName: 'Date Relance', maxwidth: 200, flex: 1, hide: false, editable: false },
|
||||
{
|
||||
field: 'total_reste_to_paye', headerName: 'Montant Rel.', maxwidth: 250, flex: 1, hide: false, editable: false, align: 'right', headerAlign: "right",
|
||||
renderCell: (params) => <ExpandableCell_String_to_monetaire {...params} />,
|
||||
},
|
||||
{ field: 'relance_level', headerName: 'Niveau Relance', hide: false, minWidth: 200, flex: 1, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, align: 'center', headerAlign: "center" },
|
||||
|
||||
{ field: 'relance_level', headerName: 'Niveau Relance', hide: false, minWidth: 200, flex: 1, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, align: 'center', headerAlign: "center" },
|
||||
|
||||
{ field: 'mode_envoi', headerName: 'Envoi par', hide: false, minWidth: 150, flex: 1, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, align: 'center', headerAlign: "center" },
|
||||
|
||||
|
||||
{
|
||||
field: 'Visualiser', headerName: 'Visualiser', minWidth: 50, flex: 1, maxWidth: 100, hide: false, editable: false,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<nav style={{ width: '100%', 'textAlign': 'center', cursor: 'pointer' }} onClick={(e) => {
|
||||
preview_document_pdf(cellValues.row.stored_document_id, cellValues.row.strored_document_file_extention, cellValues.row.strored_document_file_business_object);
|
||||
setselected_doc_name(cellValues.row.strored_document_file_business_object);
|
||||
setDialog_Preview_Doc_open(true);
|
||||
}}>
|
||||
<VisibilityIcon style={{ color: '#6a329f' }} />
|
||||
</nav>)
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
{
|
||||
field: 'Télécharger', headerName: 'Télécharger', minWidth: 50, flex: 1, maxWidth: 100, hide: false, editable: false,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<nav style={{ width: '100%', 'textAlign': 'center', cursor: 'pointer' }} onClick={(e) => {
|
||||
print_document_pdf(cellValues.row.stored_document_id, cellValues.row.strored_document_file_extention, cellValues.row.strored_document_file_business_object);
|
||||
setselected_doc_name(cellValues.row.strored_document_file_business_object);
|
||||
|
||||
}}>
|
||||
<ArrowCircleDownIcon style={{ color: '#107758' }} />
|
||||
</nav>)
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
|
|
@ -229,6 +269,37 @@ const Module_Relance_Client_Facture = (props) => {
|
|||
renderCell: (params) => <ExpandableCell_String_to_monetaire {...params} />,
|
||||
},
|
||||
|
||||
/*{
|
||||
field: 'Visualiser', headerName: 'Visualiser', minWidth: 50, flex: 1, maxWidth: 100, hide: false, editable: false,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<nav style={{ width: '100%', 'textAlign': 'center', cursor: 'pointer' }} onClick={(e) => {
|
||||
preview_document_pdf(cellValues.row._id, cellValues.row.file_extention, cellValues.row.file_business_object);
|
||||
setselected_doc_name(cellValues.row.file_business_object);
|
||||
setDialog_Preview_Doc_open(true);
|
||||
}}>
|
||||
<VisibilityIcon style={{ color: '#6a329f' }} />
|
||||
</nav>)
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
{
|
||||
field: 'Télécharger', headerName: 'Télécharger', minWidth: 50, flex: 1, maxWidth: 100, hide: false, editable: false,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<nav style={{ width: '100%', 'textAlign': 'center', cursor: 'pointer' }} onClick={(e) => {
|
||||
print_document_pdf(cellValues.row._id, cellValues.row.file_extention, cellValues.row.file_business_object);
|
||||
setselected_doc_name(cellValues.row.file_business_object);
|
||||
|
||||
}}>
|
||||
<ArrowCircleDownIcon style={{ color: '#107758' }} />
|
||||
</nav>)
|
||||
},
|
||||
|
||||
},*/
|
||||
|
||||
|
||||
]
|
||||
|
|
@ -252,7 +323,7 @@ const Module_Relance_Client_Facture = (props) => {
|
|||
|
||||
axios.post(myurl, form).then(res => {
|
||||
//console.log(" In Get_List_Relance_Client_Facture res.data.status = " + res.data.status);
|
||||
// console.log(" In Get_List_Relance_Client_Facture res.data.message r_class = " + res.data.message);
|
||||
// console.log(" In Get_List_Relance_Client_Facture res.data.message r_class = " + res.data.message);
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setGet_List_Relance_Client_Facture_api("true");
|
||||
|
|
@ -842,6 +913,78 @@ const Module_Relance_Client_Facture = (props) => {
|
|||
})
|
||||
}
|
||||
|
||||
function preview_document_pdf(doc_id, file_extention, file_business_object) {
|
||||
|
||||
var part_cookie = getCookie('tokenmysypart');
|
||||
|
||||
|
||||
var nom_fichier_cmd = String(file_business_object) + "." + String(file_extention);
|
||||
// console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- doc_id = ", doc_id);
|
||||
|
||||
var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File_From_Id/" + part_cookie + "/" + doc_id;
|
||||
|
||||
//console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- selected_id = ", selected_id, " --- url =", url);
|
||||
|
||||
axios.get(url, { responseType: 'blob', },)
|
||||
.then((res) => {
|
||||
|
||||
const blob = new Blob([res.data], { type: 'application/pdf' });
|
||||
const url = URL.createObjectURL(blob);
|
||||
setselected_doc_img(url);
|
||||
|
||||
// fileDownload(res.data, nom_fichier_cmd)
|
||||
}).catch((error) => {
|
||||
console.error('Error:', error);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
const [print_doc_id, setprint_doc_id] = useState("");
|
||||
const [print_file_extention, setprint_file_extention] = useState("");
|
||||
const [print_file_business_object, setprint_file_business_object] = useState("");
|
||||
function print_document_pdf(doc_id, file_extention, file_business_object) {
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
|
||||
var nom_fichier_cmd = String(file_business_object) + "." + String(file_extention);
|
||||
// console.log(" stored_cookie = ", stored_cookie, " --- doc_id = ", doc_id);
|
||||
|
||||
var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File_From_Id/" + stored_cookie + "/" + doc_id;
|
||||
|
||||
//console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- selected_id = ", selected_id, " --- url =", url);
|
||||
|
||||
axios.get(url, { responseType: 'blob', },)
|
||||
.then((res) => {
|
||||
fileDownload(res.data, nom_fichier_cmd)
|
||||
}).catch((error) => {
|
||||
console.error('Error:', error);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
const [Dialog_Preview_Doc_message, setDialog_Preview_Doc_message] = React.useState(false);
|
||||
const [Dialog_Preview_Doc_open, setDialog_Preview_Doc_open] = React.useState(false);
|
||||
function Dialog_Preview_Doc_handle_change_participant_session(message) {
|
||||
setDialog_Preview_Doc_message(message);
|
||||
setDialog_Preview_Doc_open(true);
|
||||
}
|
||||
|
||||
const Dialog_Preview_Doc_handleClose = () => {
|
||||
|
||||
};
|
||||
|
||||
const Dialog_Preview_Doc_handleClose_buton = () => {
|
||||
setDialog_Preview_Doc_open(false);
|
||||
};
|
||||
|
||||
const [selected_doc_name, setselected_doc_name] = React.useState("");
|
||||
const [selected_doc_img, setselected_doc_img] = React.useState("");
|
||||
|
||||
|
||||
|
||||
return (
|
||||
<div className="module_relance_client_facture">
|
||||
|
||||
|
|
@ -860,6 +1003,70 @@ const Module_Relance_Client_Facture = (props) => {
|
|||
}
|
||||
{/*** FIN Affichage des messages d'alerte*/}
|
||||
|
||||
{/***** Dialog Preview Image */}
|
||||
<Dialog
|
||||
open={Dialog_Preview_Doc_open}
|
||||
// onClose={Dialog_Preview_Doc_handleClose}
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
|
||||
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
width: '50rem',
|
||||
maxWidth: 'unset',
|
||||
background: '#efefef',
|
||||
borderRadius: '20px!important'
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
|
||||
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans", paddingBottom: '5px' }} id="draggable-dialog-title" >{selected_doc_name}</DialogTitle>
|
||||
<DialogContent>
|
||||
<DialogContentText>
|
||||
{Dialog_Preview_Doc_message}
|
||||
</DialogContentText>
|
||||
|
||||
<div style={{ width: '100%', height: '45rem' }}> <br />
|
||||
|
||||
{selected_doc_img &&
|
||||
<iframe src={selected_doc_img} style={{ height: '43rem', width: '96%' }}></iframe>}
|
||||
|
||||
</div>
|
||||
|
||||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
<IconButton
|
||||
// autoFocus
|
||||
onClick={Dialog_Preview_Doc_handleClose_buton}
|
||||
color="primary"
|
||||
className={classes.customizedButton}
|
||||
>
|
||||
<CancelPresentationIcon />
|
||||
</IconButton>
|
||||
|
||||
</DialogActions>
|
||||
</Dialog>
|
||||
|
||||
{/***** FIN Dialog Preview Image */}
|
||||
|
||||
|
||||
|
||||
|
||||
{/* Dialog pour gerer les Relance_Client */}
|
||||
<Dialog
|
||||
|
|
@ -917,19 +1124,19 @@ const Module_Relance_Client_Facture = (props) => {
|
|||
}
|
||||
}}
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
|
|
@ -975,19 +1182,19 @@ const Module_Relance_Client_Facture = (props) => {
|
|||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}} />
|
||||
sx={{
|
||||
"& .MuiOutlinedInput-root": {
|
||||
"& fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&:hover fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
"&.Mui-focused fieldset": {
|
||||
border: "solid #e8eef6 1px;",
|
||||
},
|
||||
},
|
||||
}} />
|
||||
}
|
||||
/>
|
||||
|
||||
|
|
@ -1298,7 +1505,7 @@ const Module_Relance_Client_Facture = (props) => {
|
|||
}}
|
||||
componentsProps={{ toolbar: { data_colums: columns_facture_retard } }}
|
||||
|
||||
// checkboxSelection
|
||||
// checkboxSelection
|
||||
disableSelectionOnClick
|
||||
onSelectionModelChange={(newSelectionModel) => {
|
||||
setselectionModel_relance(newSelectionModel);
|
||||
|
|
@ -1457,7 +1664,7 @@ const Module_Relance_Client_Facture = (props) => {
|
|||
}}
|
||||
componentsProps={{ toolbar: { data_colums: columns_relances } }}
|
||||
|
||||
// checkboxSelection
|
||||
// checkboxSelection
|
||||
disableSelectionOnClick
|
||||
onSelectionModelChange={(newSelectionModel) => {
|
||||
setselectionModel_relance(newSelectionModel);
|
||||
|
|
@ -1489,12 +1696,18 @@ const Module_Relance_Client_Facture = (props) => {
|
|||
relance_date: JSON.parse(item).relance_date,
|
||||
relance_level: JSON.parse(item).relance_level,
|
||||
total_reste_to_paye: JSON.parse(item).total_reste_to_paye,
|
||||
mode_envoi: JSON.parse(item).mode_envoi,
|
||||
|
||||
stored_document_id: JSON.parse(item).stored_document_id,
|
||||
strored_document_file_extention: JSON.parse(item).strored_document_file_extention,
|
||||
strored_document_file_business_object: JSON.parse(item).strored_document_file_business_object,
|
||||
|
||||
|
||||
}
|
||||
))}
|
||||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
console.log(" ## newSelectionModel = ", newSelectionModel.row.total_reste_to_paye)
|
||||
// console.log(" ## newSelectionModel = ", newSelectionModel.row.total_reste_to_paye)
|
||||
|
||||
}}
|
||||
columns={columns_relances}
|
||||
|
|
|
|||
|
|
@ -7702,7 +7702,7 @@ const Module_Session_Planification = (props) => {
|
|||
|
||||
{display_view && String(display_view) === "list" && <div style={{ "border": "None", minHeight: '800px', background: '#FFF' }}>
|
||||
|
||||
<div style={{ height: 750, width: '100%', paddingRight: '1px', background: '#FFF', marginBottom: '1rem' }}>
|
||||
<div style={{ height: 8550, width: '100%', paddingRight: '1px', background: '#FFF', marginBottom: '1rem' }}>
|
||||
|
||||
<Box
|
||||
|
||||
|
|
@ -8012,7 +8012,7 @@ const Module_Session_Planification = (props) => {
|
|||
<FullCalendar
|
||||
height={750}
|
||||
locales={allLocales}
|
||||
locale={'fr'}
|
||||
locale={'fr'}
|
||||
editable
|
||||
selectable
|
||||
//events={events}
|
||||
|
|
|
|||
|
|
@ -470,8 +470,6 @@ const Modules_Mes_Documents = (props) => {
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
const [print_doc_id, setprint_doc_id] = useState("");
|
||||
const [print_file_extention, setprint_file_extention] = useState("");
|
||||
const [print_file_business_object, setprint_file_business_object] = useState("");
|
||||
|
|
|
|||
|
|
@ -1950,12 +1950,12 @@ const Partner_Client = (props) => {
|
|||
</div>
|
||||
|
||||
<div className="div_row session_data" >
|
||||
<div style={{ height: 650, width: '100%', paddingRight: '1px' }}>
|
||||
<div style={{ height: 850, width: '100%', paddingRight: '1px' }}>
|
||||
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
height: "600px",
|
||||
height: "800px",
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
'& .cell--presentiel': {
|
||||
|
|
@ -2021,10 +2021,10 @@ const Partner_Client = (props) => {
|
|||
))}
|
||||
|
||||
columns={columns_clients}
|
||||
pageSize={10}
|
||||
pageSize={20}
|
||||
className="datagridclass"
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
rowsPerPageOptions={[20]}
|
||||
//disableSelectionOnClick
|
||||
checkboxSelection
|
||||
components={{
|
||||
|
|
|
|||
Loading…
Reference in New Issue