23/05/2026 - 20h00
parent
05906fdf67
commit
5304730e7b
|
|
@ -106,7 +106,7 @@ function App() {
|
|||
|
||||
const Intranet_Client_Account = lazy(() => import("./pages/intranet_client_account"));
|
||||
|
||||
|
||||
|
||||
|
||||
const Account = lazy(() => import("./pages/account"));
|
||||
const TestUrl = lazy(() => import("./pages/testurl"));
|
||||
|
|
@ -121,6 +121,10 @@ function App() {
|
|||
const Maintenance = lazy(() => import("./pages/maintenance_page"));
|
||||
const MySyIA = lazy(() => import("./pages/iamysy"));
|
||||
const AutomaticQuotation = lazy(() => import("./pages/automaticquotation"));
|
||||
|
||||
const Automatic_Absence_Action = lazy(() => import("./pages/Absence_Action_From_Mail"));
|
||||
|
||||
|
||||
const Emarge_QR_Code = lazy(() => import("./pages/emarge_qr_code"));
|
||||
|
||||
const Survey_Eval_QR_Code = lazy(() => import("./pages/survey_eval_qr_code"));
|
||||
|
|
@ -309,6 +313,8 @@ function App() {
|
|||
|
||||
<Route path="/automatic-quotation/:partner_owner_recid/:objid/" exact component={AutomaticQuotation} />
|
||||
|
||||
<Route path="/absence/:action/:partner_owner_recid/:objid/" exact component={Automatic_Absence_Action} />
|
||||
|
||||
<Route path="/intelligence-artificielle-mysy-training/" exact component={MySyIA} />
|
||||
|
||||
{/**** New design 2025 */}
|
||||
|
|
|
|||
|
|
@ -1342,7 +1342,7 @@ const Apprenant = (props) => {
|
|||
const formData = new FormData();
|
||||
formData.append('File', file_1_name);
|
||||
//formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA');
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
|
||||
formData.append("token", stored_cookie);
|
||||
formData.append("file_business_object", p_detail_one_file_to_download_type_name);
|
||||
|
|
@ -1353,7 +1353,16 @@ const Apprenant = (props) => {
|
|||
formData.append("type_document", "");
|
||||
|
||||
if (file_date_expiration) {
|
||||
formData.append("file_date_expiration", file_date_expiration);
|
||||
if (file_date_expiration instanceof Date) {
|
||||
const jour = String(file_date_expiration.getDate()).padStart(2, "0");
|
||||
const mois = String(file_date_expiration.getMonth() + 1).padStart(2, "0");
|
||||
const annee = file_date_expiration.getFullYear();
|
||||
|
||||
var local_date = `${jour}/${mois}/${annee}`;
|
||||
formData.append("file_date_expiration", local_date);
|
||||
} else {
|
||||
formData.append("file_date_expiration", file_date_expiration);
|
||||
}
|
||||
} else {
|
||||
formData.append("file_date_expiration", "01/01/2099");
|
||||
}
|
||||
|
|
@ -6820,7 +6829,7 @@ const Apprenant = (props) => {
|
|||
{ "id": "permis", "label": "Permis Conduire", "value": "permis" },
|
||||
{ "id": "passport", "label": "Passport", "value": "passport" },
|
||||
{ "id": "titre_sejour", "label": "Titre Séjour", "value": "titre_sejour" },
|
||||
{ "id": "autre", "label": "Autre", "value": "passport" },
|
||||
{ "id": "autre", "label": "Autre", "value": "autre" },
|
||||
{ "id": "", "label": "", "value": "" },
|
||||
]
|
||||
|
||||
|
|
@ -10789,7 +10798,8 @@ const Apprenant = (props) => {
|
|||
|
||||
{String(display_detail_absence) === "1" && String(add_One_Apprenant) !== "1" && selected_apprenant_id && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
|
||||
<Module_Absence attendee_email={selected_apprenant_email}
|
||||
inscription_id={selected_apprenant_id}
|
||||
inscription_id={""}
|
||||
apprenant_id={selected_apprenant_id}
|
||||
related_collection={"apprenant"}
|
||||
read_access={props.read_access}
|
||||
write_access={props.write_access}
|
||||
|
|
|
|||
|
|
@ -7117,7 +7117,16 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
formData.append("type_document", "");
|
||||
|
||||
if (file_date_expiration) {
|
||||
formData.append("file_date_expiration", file_date_expiration);
|
||||
if (file_date_expiration instanceof Date) {
|
||||
const jour = String(file_date_expiration.getDate()).padStart(2, "0");
|
||||
const mois = String(file_date_expiration.getMonth() + 1).padStart(2, "0");
|
||||
const annee = file_date_expiration.getFullYear();
|
||||
|
||||
var local_date = `${jour}/${mois}/${annee}`;
|
||||
formData.append("file_date_expiration", local_date);
|
||||
} else {
|
||||
formData.append("file_date_expiration", file_date_expiration);
|
||||
}
|
||||
} else {
|
||||
formData.append("file_date_expiration", "01/01/2099");
|
||||
}
|
||||
|
|
@ -8724,6 +8733,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
{ "id": "permis", "label": "Permis Conduire", "value": "permis" },
|
||||
{ "id": "passport", "label": "Passport", "value": "passport" },
|
||||
{ "id": "titre_sejour", "label": "Titre Séjour", "value": "titre_sejour" },
|
||||
{ "id": "autre", "label": "Autre", "value": "autre" },
|
||||
{ "id": "", "label": "", "value": "" },
|
||||
]
|
||||
|
||||
|
|
@ -15364,13 +15374,13 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
name="type_piece_identite"
|
||||
id="type_piece_identite"
|
||||
value={New_Option_Piece_Identite.filter((data) => (data).value === String(p_detail_piece_identite_type))[0].label}
|
||||
|
||||
|
||||
className="disabled_style"
|
||||
|
||||
options={New_Option_Piece_Identite}
|
||||
onChange={(event, value) => {
|
||||
setparticipant_data_changed("1");
|
||||
setp_detail_tel_changed("1");
|
||||
setparticipant_data_changed("1");
|
||||
setp_detail_tel_changed("1");
|
||||
if (value && value.value) {
|
||||
setp_detail_piece_identite_type(value.value);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -5086,7 +5086,16 @@ const Employes = (props) => {
|
|||
formData.append("type_document", "");
|
||||
|
||||
if (file_date_expiration) {
|
||||
formData.append("file_date_expiration", file_date_expiration);
|
||||
if (file_date_expiration instanceof Date) {
|
||||
const jour = String(file_date_expiration.getDate()).padStart(2, "0");
|
||||
const mois = String(file_date_expiration.getMonth() + 1).padStart(2, "0");
|
||||
const annee = file_date_expiration.getFullYear();
|
||||
|
||||
var local_date = `${jour}/${mois}/${annee}`;
|
||||
formData.append("file_date_expiration", local_date);
|
||||
} else {
|
||||
formData.append("file_date_expiration", file_date_expiration);
|
||||
}
|
||||
} else {
|
||||
formData.append("file_date_expiration", "01/01/2099");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ import DatePicker from "react-datepicker";
|
|||
import "react-datepicker/dist/react-datepicker.css";
|
||||
import Autocomplete from '@mui/material/Autocomplete';
|
||||
import moment from "moment";
|
||||
|
||||
import { BsCheck2Circle } from "react-icons/bs";
|
||||
import Box from '@mui/material/Box';
|
||||
|
||||
import { FlagTriangleRight } from 'lucide-react';
|
||||
import { CiBoxList } from "react-icons/ci";
|
||||
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
|
|
@ -575,8 +575,20 @@ const Module_Absence = (props) => {
|
|||
//console.log(eventInfo);
|
||||
return (
|
||||
<>
|
||||
<b>{eventInfo.timeText}</b><br />
|
||||
{eventInfo.event.extendedProps.code_session && <i>{eventInfo.event.extendedProps.code_session}</i>}
|
||||
<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>}
|
||||
|
||||
{eventInfo.event.extendedProps.justified && eventInfo.event.extendedProps.justified !== "true" &&
|
||||
<nav style={{ background: '#f57373', borderRadius: '20rem', textAlign: 'center', height: '20px', width: '20px', width: '20px' }}> <FlagTriangleRight size={14} style={{ color: 'red' }} /> </nav>}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{eventInfo.event.title && <> <i>{eventInfo.event.title}</i> <br /></>}
|
||||
{eventInfo.event.extendedProps.code_session && <> <i>{eventInfo.event.extendedProps.code_session}</i> <br /></>}
|
||||
|
||||
|
||||
</>
|
||||
)
|
||||
};
|
||||
|
|
@ -876,11 +888,15 @@ const Module_Absence = (props) => {
|
|||
}, [attendee_email])
|
||||
|
||||
|
||||
const [local_heure_non_justifie, setlocal_heure_non_justifie] = useState();
|
||||
|
||||
const [Get_ENT_Apprenant_Total_Heure_api, setGet_ENT_Apprenant_Total_Heure_api] = useState();
|
||||
const [Get_ENT_Apprenant_Total_Heure_message, setGet_ENT_Apprenant_Total_Heure_message] = useState();
|
||||
const [Get_ENT_Apprenant_Total_Heure_result, setGet_ENT_Apprenant_Total_Heure_result] = useState();
|
||||
function Get_ENT_Apprenant_Total_Heure(event) {
|
||||
|
||||
setlocal_heure_non_justifie();
|
||||
|
||||
var form = new FormData();
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
|
||||
|
|
@ -896,13 +912,14 @@ const Module_Absence = (props) => {
|
|||
|
||||
axios.post(myurl, form).then(res => {
|
||||
//console.log(" In Get_ENT_Apprenant_Total_Heure res.data.status = " + res.data.status);
|
||||
console.log(" In Get_ENT_Apprenant_Total_Heure res.data.message r_class = " + res.data.message);
|
||||
//console.log(" In Get_ENT_Apprenant_Total_Heure res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setGet_ENT_Apprenant_Total_Heure_api("true");
|
||||
setGet_ENT_Apprenant_Total_Heure_result(res.data.message);
|
||||
|
||||
setlocal_heure_non_justifie(JSON.parse(res.data.message).total_heure_absence_non_justifie)
|
||||
|
||||
}
|
||||
else if (String(res.data.status) === String("Err_Connexion")) {
|
||||
|
|
@ -985,6 +1002,7 @@ const Module_Absence = (props) => {
|
|||
form.append("token", stored_cookie);
|
||||
form.append("_id", p_detail_event_id);
|
||||
form.append("inscription_id", props.inscription_id);
|
||||
form.append("apprenant_id", props.apprenant_id);
|
||||
form.append("related_collection", props.related_collection);
|
||||
|
||||
form.append("event_title", new_title);
|
||||
|
|
@ -1322,19 +1340,19 @@ const Module_Absence = (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" } }}
|
||||
|
||||
/>
|
||||
|
|
@ -1485,8 +1503,15 @@ const Module_Absence = (props) => {
|
|||
|
||||
</Dialog>
|
||||
|
||||
<h3 style={{ fontFamily: 'DM Sans', fontSize:'26px', width:'100%', textAlign:"center" }}> Absences - {Get_ENT_Apprenant_Total_Heure_result && <font style={{ "color": "orange", "textAlign": "center" }}>
|
||||
{JSON.parse(Get_ENT_Apprenant_Total_Heure_result).total_heure} heure(s) </font>}</h3>
|
||||
{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_result &&
|
||||
<font style={{ "color": "orange", "textAlign": "center" }}>
|
||||
{JSON.parse(Get_ENT_Apprenant_Total_Heure_result).total_heure} heure(s) <font style={{ "color": "red", "textAlign": "center" }} > dont {JSON.parse(Get_ENT_Apprenant_Total_Heure_result).total_heure_absence_non_justifie} non justifiée (s) </font> </font>}
|
||||
</h3>}
|
||||
|
||||
{!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_result &&
|
||||
<font style={{ "color": "orange", "textAlign": "center" }}>
|
||||
{JSON.parse(Get_ENT_Apprenant_Total_Heure_result).total_heure} heure(s) </font>}
|
||||
</h3>}
|
||||
|
||||
<div style={{ "textAlign": "right", "float": "right", "width": "100%" }}>
|
||||
Affichage : <nav className="mode_affichage" onClick={func_display_planning_view}> <FcPlanner /> planning </nav>
|
||||
|
|
@ -1522,7 +1547,7 @@ const Module_Absence = (props) => {
|
|||
displayEventEnd={true}
|
||||
eventContent={renderEventContent}
|
||||
eventClick={handleEventClick}
|
||||
|
||||
hiddenDays={[0]}
|
||||
|
||||
/>
|
||||
|
||||
|
|
@ -1704,4 +1729,19 @@ 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;
|
||||
}
|
||||
`;
|
||||
|
|
@ -15,7 +15,7 @@ import fr from 'date-fns/locale/fr';
|
|||
import { registerLocale } from 'react-datepicker';
|
||||
import DatePicker from "react-datepicker";
|
||||
import "react-datepicker/dist/react-datepicker.css";
|
||||
|
||||
import { FlagTriangleRight } from 'lucide-react';
|
||||
import moment from "moment";
|
||||
|
||||
import Box from '@mui/material/Box';
|
||||
|
|
@ -200,7 +200,6 @@ const Module_ENT_Absence = (props) => {
|
|||
'start': String(JSON.parse(obj).event_start),
|
||||
'end': String(JSON.parse(obj).event_end),
|
||||
'id': String(JSON.parse(obj)._id),
|
||||
|
||||
'type': String(JSON.parse(obj).event_type),
|
||||
'justified': String(JSON.parse(obj).justified),
|
||||
'session_id': String(JSON.parse(obj).session_id),
|
||||
|
|
@ -416,12 +415,14 @@ const Module_ENT_Absence = (props) => {
|
|||
})
|
||||
}
|
||||
|
||||
const [local_heure_non_justifie, setlocal_heure_non_justifie] = useState();
|
||||
|
||||
const [Get_ENT_Apprenant_Total_Heure_Absence_api, setGet_ENT_Apprenant_Total_Heure_Absence_api] = useState();
|
||||
const [Get_ENT_Apprenant_Total_Heure_Absence_message, setGet_ENT_Apprenant_Total_Heure_Absence_message] = useState();
|
||||
const [Get_ENT_Apprenant_Total_Heure_Absence_result, setGet_ENT_Apprenant_Total_Heure_Absence_result] = useState();
|
||||
function Get_ENT_Apprenant_Total_Heure_Absence(event) {
|
||||
|
||||
setlocal_heure_non_justifie();
|
||||
var form = new FormData();
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
form.append("token", stored_cookie);
|
||||
|
|
@ -434,13 +435,15 @@ const Module_ENT_Absence = (props) => {
|
|||
|
||||
axios.post(myurl, form).then(res => {
|
||||
//console.log(" In Get_ENT_Apprenant_Total_Heure_Absence res.data.status = " + res.data.status);
|
||||
console.log(" In Get_ENT_Apprenant_Total_Heure_Absence res.data.message r_class = " + res.data.message);
|
||||
// console.log(" In Get_ENT_Apprenant_Total_Heure_Absence res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setGet_ENT_Apprenant_Total_Heure_Absence_api("true");
|
||||
setGet_ENT_Apprenant_Total_Heure_Absence_result(res.data.message);
|
||||
|
||||
setlocal_heure_non_justifie(JSON.parse(res.data.message).total_heure_absence_non_justifie)
|
||||
|
||||
|
||||
}
|
||||
else if (String(res.data.status) === String("Err_Connexion")) {
|
||||
|
|
@ -702,8 +705,21 @@ const Module_ENT_Absence = (props) => {
|
|||
//console.log(eventInfo);
|
||||
return (
|
||||
<>
|
||||
<b>{eventInfo.timeText}</b><br />
|
||||
{eventInfo.event.extendedProps.code_session && <i>{eventInfo.event.extendedProps.code_session}</i>}
|
||||
<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>}
|
||||
|
||||
{eventInfo.event.extendedProps.justified && eventInfo.event.extendedProps.justified !== "true" &&
|
||||
<nav style={{ background: '#f57373', borderRadius: '20rem', textAlign: 'center', height: '20px', width: '20px', width: '20px' }}> <FlagTriangleRight size={14} style={{ color: 'red' }} /> </nav>}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{eventInfo.event.title && <> <i>{eventInfo.event.title}</i> <br /></>}
|
||||
|
||||
|
||||
|
||||
|
||||
</>
|
||||
)
|
||||
};
|
||||
|
|
@ -1425,11 +1441,21 @@ const Module_ENT_Absence = (props) => {
|
|||
|
||||
|
||||
</DialogActions>}
|
||||
|
||||
|
||||
</Dialog>
|
||||
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Absences - {Get_ENT_Apprenant_Total_Heure_Absence_result && <font style={{ "color": "orange", "textAlign": "center" }}> {JSON.parse(Get_ENT_Apprenant_Total_Heure_Absence_result).total_heure_absence} heure(s) </font>}
|
||||
</h3>
|
||||
|
||||
|
||||
{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" }}>
|
||||
{JSON.parse(Get_ENT_Apprenant_Total_Heure_Absence_result).total_heure_absence} heure(s) <font style={{ "color": "red", "textAlign": "center" }} > dont {JSON.parse(Get_ENT_Apprenant_Total_Heure_Absence_result).total_heure_absence_non_justifie} non justifiée (s) </font> </font>}
|
||||
</h3>}
|
||||
|
||||
{!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" }}>
|
||||
{JSON.parse(Get_ENT_Apprenant_Total_Heure_Absence_result).total_heure_absence} heure(s) </font>}
|
||||
</h3>}
|
||||
|
||||
|
||||
<div style={{ "textAlign": "right", "float": "right", "width": "100%" }}>
|
||||
Affichage : <nav className="mode_affichage" onClick={func_display_planning_view}> <FcPlanner /> planning </nav>
|
||||
|
|
@ -1468,6 +1494,7 @@ const Module_ENT_Absence = (props) => {
|
|||
eventContent={renderEventContent}
|
||||
eventClick={handleEventClick}
|
||||
editable={false}
|
||||
hiddenDays={[0]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -453,9 +453,9 @@ const Module_Email_Management = (props) => {
|
|||
}
|
||||
}
|
||||
|
||||
console.log(" ### form = ",form)
|
||||
//console.log(" ### form = ", form)
|
||||
|
||||
// return;
|
||||
// return;
|
||||
|
||||
setLoading(true);
|
||||
|
||||
|
|
@ -503,7 +503,7 @@ const Module_Email_Management = (props) => {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
Get_Partner_List_SendEmail_Document("SENDEMAIL_MODELE");
|
||||
|
|
@ -764,23 +764,23 @@ const Module_Email_Management = (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" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
}
|
||||
/>}
|
||||
</div>
|
||||
|
||||
|
|
@ -924,8 +924,8 @@ const Module_Email_Management = (props) => {
|
|||
height: 400,
|
||||
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',
|
||||
|
||||
],
|
||||
|
|
@ -1024,7 +1024,7 @@ const Module_Email_Management = (props) => {
|
|||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
className="gest_bton_popup_annuler"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
|
|
@ -1068,6 +1068,8 @@ const Module_Email_Management = (props) => {
|
|||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
<Popup
|
||||
|
|
|
|||
|
|
@ -792,10 +792,10 @@ registerLocale('fr', fr);
|
|||
formData.append("apprenant_id", props.apprenant_id);
|
||||
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
setLoading(true);
|
||||
|
||||
|
||||
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_List_object_owner_collection_Stored_Files/",
|
||||
{
|
||||
|
|
|
|||
|
|
@ -21,12 +21,13 @@ import { FcInfo } from "react-icons/fc";
|
|||
import Popup from 'reactjs-popup';
|
||||
import 'reactjs-popup/dist/index.css';
|
||||
import parse from 'html-react-parser';
|
||||
import FormControlLabel from '@mui/material/FormControlLabel';
|
||||
import { FcAcceptDatabase, } from "react-icons/fc";
|
||||
import { format } from 'date-fns'
|
||||
import InputAdornment from '@mui/material/InputAdornment';
|
||||
import { AiFillCloseCircle, AiOutlineConsoleSql } from "react-icons/ai";
|
||||
import Box from '@mui/material/Box';
|
||||
|
||||
import AttachFileIcon from '@mui/icons-material/AttachFile';
|
||||
import Modules_ENT_Mes_Documents from "./Modules_ENT_Mes_Documents";
|
||||
|
||||
import { CiTrash } from "react-icons/ci";
|
||||
|
|
@ -512,26 +513,31 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
const [Getall_Sequence_Of_Session_api, setGetall_Sequence_Of_Session_api] = useState();
|
||||
const [Getall_Sequence_Of_Session_message, setGetall_Sequence_Of_Session_message] = useState();
|
||||
const [Getall_Sequence_Of_Session_result, setGetall_Sequence_Of_Session_result] = useState();
|
||||
function Getall_Sequence_Of_Session(local_session_id, local_associated_inscription_id) {
|
||||
const [Getall_Sequence_Of_Session_result, setGetall_Sequence_Of_Session_result] = useState([]);
|
||||
function Getall_Sequence_Of_Session(local_session_id, local_inscription_id) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
const stored_apprenant_id = getCookie('tokenmysychapprenant');
|
||||
|
||||
form.append("token", stored_cookie);
|
||||
form.append("session_id", local_session_id);
|
||||
form.append("apprenant_id", props.apprenant_id);
|
||||
if (local_associated_inscription_id)
|
||||
form.append("inscription_id", local_associated_inscription_id);
|
||||
else
|
||||
form.append("inscription_id", selected_inscription_id);
|
||||
form.append("apprenant_id", stored_apprenant_id);
|
||||
if (String(local_session_id).length > 3) {
|
||||
form.append("session_id", local_session_id);
|
||||
}
|
||||
|
||||
if (String(local_inscription_id).length > 3) {
|
||||
form.append("inscription_id", local_inscription_id);
|
||||
}
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_Session_Sequence_List/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
// console.log(" In Getall_Sequence_Of_Session res.data.status = " + res.data.status);
|
||||
// console.log(" In Getall_Sequence_Of_Session res.data.message r_class = " + res.data.message);
|
||||
//console.log(" In Getall_Sequence_Of_Session res.data.message r_class = " + res.data.message);
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
||||
|
|
@ -545,7 +551,6 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
var new_data2 = [];
|
||||
const new_data = res.data.message.map((x) => {
|
||||
|
||||
|
||||
//---
|
||||
var localid = JSON.parse(x)._id; // on donne volontairement a l'id la valeur de '_id'
|
||||
var local_id = JSON.parse(x)._id;
|
||||
|
|
@ -559,7 +564,17 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
var local_session_id = JSON.parse(x).session_id;
|
||||
var local_session_comment = JSON.parse(x).commentaire;
|
||||
var local_mode_animation = JSON.parse(x).mode_animation;
|
||||
var local_session_color = "#3788d8";
|
||||
var local_obligatoire = JSON.parse(x).obligatoire;
|
||||
|
||||
var local_session_color = JSON.parse(x).grp_apprenant_color;
|
||||
var local_session_grp_code = JSON.parse(x).grp_apprenant_code;
|
||||
|
||||
var local_liste_groupe_code = JSON.parse(x).liste_groupe_code;
|
||||
|
||||
|
||||
var local_domaine_competence_id = JSON.parse(x).domaine_competence_id;
|
||||
var local_sequence_code_couleur_setup = JSON.parse(x).sequence_code_couleur_setup;
|
||||
|
||||
|
||||
var local_type = JSON.parse(x).type;
|
||||
|
||||
|
|
@ -573,17 +588,40 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
local_session_color = "#4ea860";
|
||||
}
|
||||
|
||||
|
||||
else if (JSON.parse(x).sequence_code_couleur_setup && JSON.parse(x).sequence_code_couleur_setup === "grp_apprenant") {
|
||||
// On affiche les couleurs par couleur de bloc de compétence aux quel est rattaché l'UE
|
||||
local_session_color = JSON.parse(x).grp_apprenant_color
|
||||
} else {
|
||||
local_session_color = "#3573CB"
|
||||
}
|
||||
|
||||
|
||||
if (local_type === "eval" && couleur_seq && couleur_seq.length > 0) {
|
||||
local_session_color = couleur_seq;
|
||||
|
||||
}
|
||||
if (JSON.parse(x).sequence_code_couleur_setup && JSON.parse(x).sequence_code_couleur_setup === "ue") {
|
||||
// On affiche les couleurs par couleur de bloc de compétence aux quel est rattaché l'UE
|
||||
local_session_color = JSON.parse(x).domaine_competence_color
|
||||
}
|
||||
|
||||
var local_obligatoire = JSON.parse(x).obligatoire;
|
||||
var local_type = JSON.parse(x).type;
|
||||
|
||||
var local_last_emargement_request_date = ""
|
||||
if (JSON.parse(x).last_emargement_request_date) {
|
||||
local_last_emargement_request_date = JSON.parse(x).last_emargement_request_date;
|
||||
var local_session_ue_id = JSON.parse(x).ue_id;
|
||||
var local_session_ue_titre = JSON.parse(x).ue_titre;
|
||||
var local_session_ue_code = JSON.parse(x).ue_code;
|
||||
var local_session_grp_apprenant_id = JSON.parse(x).grp_apprenant_id;
|
||||
|
||||
var local_session_ue_planif_line_id = JSON.parse(x).unite_enseignement_planif_id;
|
||||
var local_session_grp_code = JSON.parse(x).grp_apprenant_code;
|
||||
|
||||
var local_mode_animation = JSON.parse(x).mode_animation;
|
||||
var local_liste_groupe_code = JSON.parse(x).liste_groupe_code;
|
||||
|
||||
var local_tab_grp_apprenant_ids = []
|
||||
if (JSON.parse(x).tab_grp_apprenant_ids) {
|
||||
local_tab_grp_apprenant_ids = JSON.parse(x).tab_grp_apprenant_ids
|
||||
}
|
||||
|
||||
var local_tab_ressource_humaine = ""
|
||||
|
|
@ -592,17 +630,13 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
}
|
||||
|
||||
|
||||
var local_tab_ressource_materiel = ""
|
||||
if (JSON.parse(x).tab_ressource_materiel) {
|
||||
local_tab_ressource_materiel = JSON.parse(x).tab_ressource_materiel;
|
||||
|
||||
}
|
||||
|
||||
// console.log(" ## local_type=== ", local_type)
|
||||
|
||||
//console.log(" ## local_session_color=== ", local_session_color)
|
||||
|
||||
|
||||
// console.log(" ## ENT local_session_color = ", local_session_color)
|
||||
//---
|
||||
var node = {
|
||||
"_id": localid,
|
||||
|
|
@ -611,14 +645,29 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
"start": local_start,
|
||||
"end": local_end,
|
||||
"local_mode_animation": local_mode_animation,
|
||||
"local_obligatoire": local_obligatoire,
|
||||
"local_agenda": local_agenda,
|
||||
"local_objectif": local_objectif,
|
||||
"local_comment": local_session_comment,
|
||||
"color": local_session_color,
|
||||
"type": local_type,
|
||||
|
||||
"local_ue_id": local_session_ue_id,
|
||||
"local_ue_titre": local_session_ue_titre,
|
||||
"local_ue_code": local_session_ue_code,
|
||||
|
||||
"local_domaine_competence_id": local_domaine_competence_id,
|
||||
"local_sequence_code_couleur_setup": local_sequence_code_couleur_setup,
|
||||
|
||||
|
||||
"local_grp_apprenant_id": local_session_grp_apprenant_id,
|
||||
"local_ue_planif_line_id": local_session_ue_planif_line_id,
|
||||
"tab_grp_apprenant_ids": local_tab_grp_apprenant_ids,
|
||||
"liste_groupe_code": local_liste_groupe_code,
|
||||
|
||||
"local_tab_ressource_humaine": local_tab_ressource_humaine.toString(),
|
||||
"local_tab_ressource_materiel": local_tab_ressource_materiel.toString(),
|
||||
"local_obligatoire": local_obligatoire,
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
|
|
@ -627,7 +676,7 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
if (new_data2.length > 0) {
|
||||
setGetall_Sequence_Of_Session_result_planning_view(new_data2);
|
||||
// console.log(" ### new_data2 = ", new_data2);
|
||||
// console.log(" ### ENT - new_data2 = ", new_data2);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -652,6 +701,7 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
}
|
||||
|
||||
|
||||
|
||||
const New_Option_mode_animation = [
|
||||
{ "id": "1", "label": "Distanciel", "value": "1" },
|
||||
{ "id": "2", "label": "Hybride", "value": "2" },
|
||||
|
|
@ -896,6 +946,7 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
const [p_detail_event_id, setp_detail_event_id] = useState();
|
||||
const [p_detail_sequence_title, setp_detail_sequence_title] = useState();
|
||||
const [p_detail_sequence_id, setp_detail_sequence_id] = useState();
|
||||
const [p_detail_sequence_comment, setp_detail_sequence_comment] = useState();
|
||||
const [p_detail_sequence_agenda, setp_detail_sequence_agenda] = useState();
|
||||
const [p_detail_sequence_objectif, setp_detail_sequence_objectif] = useState();
|
||||
|
|
@ -903,6 +954,10 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
const [sequence_endDate, setsequence_endDate] = useState(new Date());
|
||||
|
||||
|
||||
const [absence_motif, setabsence_motif] = useState("");
|
||||
const [absence_comment, setabsence_comment] = useState("");
|
||||
|
||||
|
||||
const [selected_detail_sequence_title, setselected_detail_sequence_title] = useState();
|
||||
const [selected_detail_sequence_comment, setselected_detail_sequence_comment] = useState();
|
||||
const [selected_sequence_startDate, setselected_sequence_startDate] = useState(new Date());
|
||||
|
|
@ -923,7 +978,12 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
|
||||
const Dialog_DIALOG_AGENDA_handleClose_buton = () => {
|
||||
|
||||
setDialog_DIALOG_AGENDA_open(false);
|
||||
setabsence_motif("");
|
||||
setabsence_comment("");
|
||||
setdeclare_absence("")
|
||||
settab_email_pieces_jointes_result([])
|
||||
};
|
||||
|
||||
const New_Option_Type_Event = [
|
||||
|
|
@ -942,20 +1002,33 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
const handleEventClick = (arg) => {
|
||||
|
||||
//console.log(" ## ARG = ", arg.event)
|
||||
// console.log(" ## ARG = ", arg.event)
|
||||
// console.log(" ## arg.event.id = ", arg.event.id)
|
||||
setabsence_motif("");
|
||||
setabsence_comment("");
|
||||
setdeclare_absence("")
|
||||
settab_email_pieces_jointes_result([])
|
||||
|
||||
|
||||
setp_detail_sequence_title(arg.event.title)
|
||||
setsequence_startDate(arg.event.start)
|
||||
setsequence_endDate(arg.event.end)
|
||||
setp_detail_event_id(arg.event.id);
|
||||
|
||||
|
||||
|
||||
if (arg.event.extendedProps.type) {
|
||||
setp_detail_event_type(arg.event.extendedProps.type);
|
||||
}
|
||||
else
|
||||
setp_detail_event_type("");
|
||||
|
||||
if (arg.event.extendedProps._id) {
|
||||
setp_detail_sequence_id(arg.event.extendedProps._id);
|
||||
}
|
||||
else
|
||||
setp_detail_sequence_id("");
|
||||
|
||||
|
||||
if (arg.event.extendedProps.local_comment) {
|
||||
setp_detail_sequence_comment(arg.event.extendedProps.local_comment);
|
||||
|
|
@ -1551,9 +1624,6 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
|
||||
|
||||
const [sessions_file_change_1_convention_api, setsessions_file_change_1_convention_api] = useState();
|
||||
const [sessions_file_change_1_convention_result, setsessions_file_change_1_convention_result] = useState();
|
||||
const [sessions_file_change_1_convention_message, setsessions_file_change_1_convention_message] = useState();
|
||||
const sessions_file_change_1_convention = event => {
|
||||
|
||||
|
||||
|
|
@ -1563,19 +1633,18 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
|
||||
if (file_type !== "application/pdf") {
|
||||
// alert("Le fichier n'est pas de type PDF");
|
||||
// alert("Le fichier n'est pas de type PDF");
|
||||
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message("Le fichier n'est pas de type PDF");
|
||||
setalert_type("error");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (file_size > 10000000) {
|
||||
// alert("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
// alert("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
// console.log("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
|
||||
setdisplay_alert_mysy("1");
|
||||
|
|
@ -1589,9 +1658,8 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
var new_tmp = [];
|
||||
|
||||
if (tab_convention_pieces_jointes_result && tab_convention_pieces_jointes_result.length > 0) {
|
||||
|
||||
tab_convention_pieces_jointes_result.map((x) => {
|
||||
if (tab_email_pieces_jointes_result && tab_email_pieces_jointes_result.length > 0) {
|
||||
tab_email_pieces_jointes_result.map((x) => {
|
||||
new_tmp.push(x);
|
||||
|
||||
});
|
||||
|
|
@ -1600,14 +1668,13 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
new_tmp.push(event.target.files[0])
|
||||
|
||||
settab_convention_pieces_jointes_result(new_tmp);
|
||||
|
||||
settab_email_pieces_jointes_result(new_tmp);
|
||||
|
||||
//console.log(" tab_convention_pieces_jointes_result = ", tab_convention_pieces_jointes_result)
|
||||
return;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
const [file_2_name, setfile_2_name] = useState();
|
||||
|
||||
const [sessions_file_change_2_api, setsessions_file_change_2_api] = useState();
|
||||
|
|
@ -1816,12 +1883,14 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
formData.append("token", stored_cookie);
|
||||
formData.append("object_owner_collection", "inscription");
|
||||
formData.append("object_owner_id", local_employee_id);
|
||||
formData.append("object_owner_id", selected_inscription_id);
|
||||
formData.append("apprenant_id", props.apprenant_id);
|
||||
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
||||
console.log( "### formData = ", formData)
|
||||
setLoading(true);
|
||||
|
||||
fetch(
|
||||
|
|
@ -1914,6 +1983,122 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
const [tuteur_apprenant_selected_nom, settuteur_apprenant_selected_nom] = useState("");
|
||||
const [tuteur_apprenant_selected_prenom, settuteur_apprenant_selected_prenom] = useState("");
|
||||
|
||||
const [tab_email_pieces_jointes_result, settab_email_pieces_jointes_result] = useState([]);
|
||||
|
||||
|
||||
function Delete_Email_Attached_Doc(event) {
|
||||
|
||||
var doc_to_del_name = event.target.id;
|
||||
const myArray = tab_email_pieces_jointes_result;
|
||||
|
||||
|
||||
console.log(" Suppression du fichier : ", doc_to_del_name)
|
||||
let new_myArray = myArray.filter(file => file.name !== String(doc_to_del_name));
|
||||
|
||||
//console.log(" new_myArray = ", new_myArray);
|
||||
|
||||
|
||||
var new_tab = []
|
||||
for (let i = 0; i < new_myArray.length; i++) {
|
||||
new_tab.push(new_myArray[i]);
|
||||
}
|
||||
|
||||
settab_email_pieces_jointes_result(new_tab);
|
||||
|
||||
|
||||
}
|
||||
|
||||
const [include_client, setinclude_client] = useState(false);
|
||||
const [include_tuteur, setinclude_tuteur] = useState(false);
|
||||
|
||||
const [store_file_in_ent, setstore_file_in_ent] = useState(false);
|
||||
|
||||
const handleChange_file_to_ent = (event) => {
|
||||
if (event.currentTarget.checked) {
|
||||
setstore_file_in_ent(true);
|
||||
}
|
||||
else {
|
||||
setstore_file_in_ent(false);
|
||||
}
|
||||
}
|
||||
|
||||
const New_Option_Absence_Raison = [
|
||||
{ "id": "transport", "label": "Transport", "value": "transport" },
|
||||
{ "id": "sante", "label": "Santé", "value": "sante" },
|
||||
{ "id": "autre", "label": "Autre", "value": "passport" },
|
||||
{ "id": "", "label": "", "value": "" },
|
||||
]
|
||||
|
||||
|
||||
const [Add_ENT_Absence_Etudiant_api, setAdd_ENT_Absence_Etudiant_api] = useState();
|
||||
const [Add_ENT_Absence_Etudiant_message, setAdd_ENT_Absence_Etudiant_message] = useState();
|
||||
const [Add_ENT_Absence_Etudiant_result, setAdd_ENT_Absence_Etudiant_result] = useState();
|
||||
const Add_ENT_Absence_Etudiant = event => {
|
||||
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
const stored_apprenant_id = getCookie('tokenmysychapprenant');
|
||||
|
||||
var form = new FormData();
|
||||
form.append("token", stored_cookie);
|
||||
form.append("apprenant_id", props.apprenant_id);
|
||||
form.append("session_id", selected_session_id);
|
||||
form.append("sequence_id", p_detail_sequence_id);
|
||||
form.append("inscription_id", selected_inscription_id);
|
||||
form.append("raison", absence_motif);
|
||||
form.append("comment", absence_comment);
|
||||
|
||||
for (let i = 0; i < tab_email_pieces_jointes_result.length; i++) {
|
||||
form.append('File', tab_email_pieces_jointes_result[i]);
|
||||
|
||||
}
|
||||
|
||||
//console.log(" form == ", form);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Create_Ent_Student_Absence/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
//console.log(" In Add_ENT_Absence_Etudiant res.data.status = " + res.data.status);
|
||||
//console.log(" In Add_ENT_Absence_Etudiant res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setAdd_ENT_Absence_Etudiant_api("true");
|
||||
setAdd_ENT_Absence_Etudiant_result(res.data.message);
|
||||
|
||||
|
||||
|
||||
// alert(res.data.message);
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("success");
|
||||
Dialog_DIALOG_AGENDA_handleClose_buton();
|
||||
|
||||
}
|
||||
else {
|
||||
setAdd_ENT_Absence_Etudiant_api("false");
|
||||
setAdd_ENT_Absence_Etudiant_message(res.data.message);
|
||||
// alert(res.data.message);
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("error");
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
|
||||
|
||||
setLoading(false);
|
||||
console.warn('UpdateStagiaireData : Not good man :( Add_ENT_Absence_Etudiant = ' + error);
|
||||
setAdd_ENT_Absence_Etudiant_api("false");
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(" Impossible d'envoyer la demande d'absence");
|
||||
setalert_type("error");
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const [declare_absence, setdeclare_absence] = useState("0");
|
||||
|
||||
return (
|
||||
<div className="module_ent_mes_formations" >
|
||||
|
|
@ -1954,6 +2139,8 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
maxWidth: 'unset',
|
||||
width: '40rem'
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
|
|
@ -1969,47 +2156,25 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
>
|
||||
|
||||
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" >MySy Information</DialogTitle>
|
||||
<DialogContent className="DialogContent_width">
|
||||
<DialogContent className="DialogContent_width" style={{ "width": "40rem" }}>
|
||||
<DialogContentText>
|
||||
{Dialog_DIALOG_AGENDA_message}
|
||||
</DialogContentText>
|
||||
|
||||
<nav style={{ "float": "left", "width": "100%" }}>
|
||||
<div className="session_caract_Dialog" style={{ width: '50%' }}>
|
||||
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
|
||||
|
||||
<nav style={{ "float": "right", "width": "65%" }}>
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
<div className="session_caract_Dialog" > Animation <br />
|
||||
|
||||
name="event_dialog_event_type"
|
||||
id="event_dialog_event_type"
|
||||
fullWidth
|
||||
value={p_detail_event_type}
|
||||
disabled={true}
|
||||
/>
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
name="event_dialog_event_type"
|
||||
id="event_dialog_event_type"
|
||||
fullWidth
|
||||
value={p_detail_mode_animation_label}
|
||||
disabled={true}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog" style={{ width: '50%' }}>
|
||||
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Animation </nav>
|
||||
|
||||
<nav style={{ "float": "right", "width": "65%" }}>
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_event_type"
|
||||
id="event_dialog_event_type"
|
||||
fullWidth
|
||||
value={p_detail_mode_animation_label}
|
||||
disabled={true}
|
||||
/>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
|
||||
<div className="session_caract_Dialog" > Titre
|
||||
<TextField
|
||||
|
|
@ -2066,7 +2231,7 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
</div>
|
||||
|
||||
</nav>
|
||||
<div className="session_caract_Dialog_comment_2_lines" > Agenda
|
||||
{declare_absence !== "1" && <div className="session_caract_Dialog_comment_2_lines" > Agenda
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
|
|
@ -2082,9 +2247,9 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
|
||||
/>
|
||||
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
<div className="session_caract_Dialog_comment_2_lines" > Objectif
|
||||
{declare_absence !== "1" && <div className="session_caract_Dialog_comment_2_lines" > Objectif
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
|
|
@ -2100,24 +2265,215 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
disabled={true}
|
||||
/>
|
||||
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
<div className="session_caract_Dialog_comment_2_lines" > Commentaire
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
{declare_absence !== "1" && <div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
|
||||
</div>
|
||||
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
|
||||
<Button onClick={(event) => {
|
||||
setabsence_motif("");
|
||||
setabsence_comment("");
|
||||
setdeclare_absence("")
|
||||
settab_email_pieces_jointes_result([])
|
||||
|
||||
name="event_dialog_comment"
|
||||
id="event_dialog_comment"
|
||||
setdeclare_absence("1");
|
||||
|
||||
fullWidth
|
||||
value={p_detail_sequence_comment}
|
||||
multiline
|
||||
minRows={2}
|
||||
maxRows={2}
|
||||
rows={2}
|
||||
disabled={true}
|
||||
/>
|
||||
</div>
|
||||
}} className="bton_enreg_dialog" >Déclater une absence</Button>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
{declare_absence === "1" && <>
|
||||
<div style={{ width: '100%' }}>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog" > Motif <br />
|
||||
{New_Option_Absence_Raison && New_Option_Absence_Raison.length > 0 &&
|
||||
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
name="detail_classe"
|
||||
id="detail_classe"
|
||||
// className="disabled_style"
|
||||
//className="disabled_style enable_style"
|
||||
// options={New_Getall_Partner_Session_Reduice_Fields_result}
|
||||
options={New_Option_Absence_Raison}
|
||||
fullWidth
|
||||
|
||||
onChange={(event, value) => {
|
||||
|
||||
if (value && value.value) {
|
||||
setabsence_motif(value.value);
|
||||
} else {
|
||||
setabsence_motif("");
|
||||
}
|
||||
}}
|
||||
|
||||
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;",
|
||||
},
|
||||
},
|
||||
}}
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>
|
||||
|
||||
}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div className="session_caract_Dialog" > <b> Commentaire </b>
|
||||
<TextareaAutosize
|
||||
name="absence_motif"
|
||||
id="absence_motif"
|
||||
aria-label="minimum height"
|
||||
minRows={3}
|
||||
maxRows={3}
|
||||
maxLength={255}
|
||||
//placeholder="Minimum 3 rows"
|
||||
style={{
|
||||
border: "1px solid #e8eef6", width: '99%', padding: '2px',
|
||||
maxHeight: '4rem', height: '4rem', minHeight: '4rem', marginBottom: '1rem',
|
||||
fontFamily: 'DM Sans'
|
||||
}}
|
||||
value={absence_comment}
|
||||
onChange={(e) => {
|
||||
setabsence_comment(e.target.value);
|
||||
|
||||
}}
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div className="div_row" style={{ "padding": "5px" }}>
|
||||
|
||||
<div style={{ "fontSize": "12px" }}>
|
||||
<label htmlFor="upload_convention_file">
|
||||
<input
|
||||
style={{ display: "none" }}
|
||||
id="upload_convention_file"
|
||||
name="upload_convention_file"
|
||||
type="file"
|
||||
onChange={sessions_file_change_1_convention}
|
||||
/>
|
||||
|
||||
<Fab
|
||||
color="secondary"
|
||||
size="small"
|
||||
component="span"
|
||||
aria-label="add"
|
||||
variant="extended"
|
||||
>
|
||||
<IoMdAddCircle /> <nav style={{ "fontSize": "12px" }}> Ajouter un fichier </nav>
|
||||
</Fab>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{tab_email_pieces_jointes_result && <div className="div_row" style={{ "padding": "5px" }}>
|
||||
|
||||
<div className="div_row">
|
||||
Liste des pièces jointes <br />
|
||||
|
||||
|
||||
{tab_email_pieces_jointes_result && <div className="div_row" style={{ "padding": "5px", "border": "None" }}>
|
||||
<div className="div_row" style={{ "padding": "5px", "border": "None", "marginBottom": "1px" }}>
|
||||
|
||||
<div className="div_row" style={{ "padding": "5px", "border": "None" }}>
|
||||
{tab_email_pieces_jointes_result && tab_email_pieces_jointes_result.map((val) => (
|
||||
<div className="div_row_list_pj" >
|
||||
|
||||
<nav name={((val).name)}
|
||||
id={((val).name)}> <i> <AttachFileIcon />{((val).name)} </i> <font style={{ "color": "green", }}
|
||||
name={((val).name)}
|
||||
id={((val).name)} onClick={"Download_one_attached_document"}> </font></nav>
|
||||
|
||||
<Popup
|
||||
trigger={
|
||||
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
|
||||
|
||||
|
||||
}
|
||||
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">
|
||||
{' '}
|
||||
|
||||
Confirmer <font color="red"> la suppression </font> de la pièce jointe. <br />
|
||||
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
|
||||
Delete_Email_Attached_Doc(event);
|
||||
close();
|
||||
}}
|
||||
name={((val).name)} id={((val).name)}
|
||||
> 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>
|
||||
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</>}
|
||||
</DialogContent>
|
||||
|
||||
|
||||
|
|
@ -2132,14 +2488,16 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
<CancelPresentationIcon />
|
||||
</IconButton>
|
||||
|
||||
<div className="div_row">
|
||||
{declare_absence === "1" && <div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
|
||||
</div>
|
||||
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
|
||||
<Button onClick={Dialog_DIALOG_AGENDA_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
|
||||
<Button onClick={(event) => {
|
||||
Add_ENT_Absence_Etudiant();
|
||||
}} className="bton_enreg_dialog" > Envoyer l'absence </Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
</DialogActions>
|
||||
|
||||
|
|
@ -2186,19 +2544,19 @@ const Module_Ent_Mes_Formations = (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" } }}
|
||||
|
||||
/>
|
||||
|
|
@ -2579,7 +2937,6 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
eventClick={handleEventClick}
|
||||
editable={false}
|
||||
hiddenDays={[0]}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
|
@ -2884,6 +3241,7 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
<Modules_ENT_Mes_Documents
|
||||
apprenant_id={props.apprenant_id}
|
||||
class_id={selected_id}
|
||||
inscription_id={selected_inscription_id}
|
||||
/>
|
||||
|
||||
</div>}
|
||||
|
|
@ -2895,6 +3253,7 @@ const Module_Ent_Mes_Formations = (props) => {
|
|||
<Module_ENT_Absence attendee_email={props.email_apprenant}
|
||||
apprenant_id={props.apprenant_id}
|
||||
class_id={selected_id} />
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
|
|
@ -3036,10 +3395,6 @@ width: 100%;
|
|||
|
||||
.fc-event-main{
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.fc-event-main{
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.fc .fc-timegrid-slot {
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ const Module_Ent_Mon_Planning = (props) => {
|
|||
const [sequence_endDate, setsequence_endDate] = useState(new Date());
|
||||
|
||||
const renderEventContent = (eventInfo) => {
|
||||
//console.log(eventInfo);
|
||||
console.log(eventInfo);
|
||||
|
||||
var local_grp = []
|
||||
if (eventInfo.event.extendedProps.tab_grp_apprenant_ids) {
|
||||
|
|
@ -552,10 +552,7 @@ const Module_Ent_Mon_Planning = (props) => {
|
|||
local_session_color = "#4ea860";
|
||||
}
|
||||
|
||||
if (JSON.parse(x).sequence_code_couleur_setup && JSON.parse(x).sequence_code_couleur_setup === "ue") {
|
||||
// On affiche les couleurs par couleur de bloc de compétence aux quel est rattaché l'UE
|
||||
local_session_color = JSON.parse(x).domaine_competence_color
|
||||
}
|
||||
|
||||
else if (JSON.parse(x).sequence_code_couleur_setup && JSON.parse(x).sequence_code_couleur_setup === "grp_apprenant") {
|
||||
// On affiche les couleurs par couleur de bloc de compétence aux quel est rattaché l'UE
|
||||
local_session_color = JSON.parse(x).grp_apprenant_color
|
||||
|
|
@ -567,6 +564,10 @@ const Module_Ent_Mon_Planning = (props) => {
|
|||
if (local_type === "eval" && couleur_seq && couleur_seq.length > 0) {
|
||||
local_session_color = couleur_seq;
|
||||
|
||||
}
|
||||
if (JSON.parse(x).sequence_code_couleur_setup && JSON.parse(x).sequence_code_couleur_setup === "ue") {
|
||||
// On affiche les couleurs par couleur de bloc de compétence aux quel est rattaché l'UE
|
||||
local_session_color = JSON.parse(x).domaine_competence_color
|
||||
}
|
||||
|
||||
var local_type = JSON.parse(x).type;
|
||||
|
|
@ -576,8 +577,7 @@ const Module_Ent_Mon_Planning = (props) => {
|
|||
var local_session_ue_code = JSON.parse(x).ue_code;
|
||||
var local_session_grp_apprenant_id = JSON.parse(x).grp_apprenant_id;
|
||||
|
||||
var local_session_ue_planif_line_id = JSON.parse(x).unite_enseignement_planif_id;
|
||||
var local_session_color = JSON.parse(x).grp_apprenant_color;
|
||||
var local_session_ue_planif_line_id = JSON.parse(x).unite_enseignement_planif_id;
|
||||
var local_session_grp_code = JSON.parse(x).grp_apprenant_code;
|
||||
|
||||
var local_mode_animation = JSON.parse(x).mode_animation;
|
||||
|
|
@ -586,10 +586,21 @@ const Module_Ent_Mon_Planning = (props) => {
|
|||
var local_tab_grp_apprenant_ids = []
|
||||
if (JSON.parse(x).tab_grp_apprenant_ids) {
|
||||
local_tab_grp_apprenant_ids = JSON.parse(x).tab_grp_apprenant_ids
|
||||
} else {
|
||||
}
|
||||
|
||||
var local_tab_ressource_humaine = ""
|
||||
if (JSON.parse(x).tab_ressource_humaine) {
|
||||
local_tab_ressource_humaine = JSON.parse(x).tab_ressource_humaine;
|
||||
|
||||
}
|
||||
|
||||
|
||||
var local_tab_ressource_materiel = ""
|
||||
if (JSON.parse(x).tab_ressource_materiel) {
|
||||
local_tab_ressource_materiel = JSON.parse(x).tab_ressource_materiel;
|
||||
}
|
||||
|
||||
console.log(" ## ENT local_session_color = ", local_session_color)
|
||||
//---
|
||||
var node = {
|
||||
"_id": localid,
|
||||
|
|
@ -618,6 +629,9 @@ const Module_Ent_Mon_Planning = (props) => {
|
|||
"tab_grp_apprenant_ids": local_tab_grp_apprenant_ids,
|
||||
"liste_groupe_code": local_liste_groupe_code,
|
||||
|
||||
"local_tab_ressource_humaine": local_tab_ressource_humaine.toString(),
|
||||
"local_tab_ressource_materiel": local_tab_ressource_materiel.toString(),
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
|
|
@ -626,7 +640,7 @@ const Module_Ent_Mon_Planning = (props) => {
|
|||
|
||||
if (new_data2.length > 0) {
|
||||
setGetall_Sequence_Of_Session_result_planning_view(new_data2);
|
||||
//console.log(" ### new_data2 = ", new_data2);
|
||||
console.log(" ### ENT - new_data2 = ", new_data2);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1093,6 +1107,7 @@ const Module_Ent_Mon_Planning = (props) => {
|
|||
displayEventEnd={true}
|
||||
eventContent={renderEventContent}
|
||||
eventClick={handleEventClick}
|
||||
hiddenDays={[0]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
|
@ -1122,4 +1137,19 @@ 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;
|
||||
}
|
||||
`;
|
||||
|
|
@ -1753,7 +1753,7 @@ const Module_Session_Planification = (props) => {
|
|||
local_session_color = "#3573CB"
|
||||
}
|
||||
|
||||
|
||||
console.log(" ## PROMO local_session_color = ", local_session_color)
|
||||
//---
|
||||
var node = {
|
||||
"_id": local_id,
|
||||
|
|
|
|||
|
|
@ -407,6 +407,7 @@ const Modules_ENT_Mes_Documents = (props) => {
|
|||
useEffect(() => {
|
||||
|
||||
|
||||
console.log(" props.inscription_id={selected_inscription_id} = ", props.inscription_id)
|
||||
let windowWidth = window.innerWidth;
|
||||
if (windowWidth <= 991) {
|
||||
setDevice('mobile');
|
||||
|
|
@ -784,11 +785,11 @@ const Modules_ENT_Mes_Documents = (props) => {
|
|||
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
|
||||
formData.append("token", stored_cookie);
|
||||
|
||||
|
||||
formData.append("token", stored_cookie);
|
||||
formData.append("apprenant_id", props.apprenant_id);
|
||||
formData.append("object_owner_collection", "inscription");
|
||||
formData.append("object_owner_id", props.inscription_id);
|
||||
|
||||
if (props.class_id && props.class_id.length > 5) {
|
||||
formData.append("class_id", props.class_id);
|
||||
|
|
@ -799,9 +800,7 @@ const Modules_ENT_Mes_Documents = (props) => {
|
|||
formData.append("object_owner_collection", props.object_owner_collection);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
setLoading(true);
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ const Partner_Configuration_Technique = (props) => {
|
|||
const columns = [
|
||||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'id', headerName: 'id', hide: true },
|
||||
{ field: 'config_name', headerName: 'Configuration', hide: false, flex: 1, editable: false },
|
||||
{ field: 'config_name', headerName: 'Configuration', hide: true, flex: 1, editable: false },
|
||||
{ field: 'config_desc', headerName: 'Description', flex: 1, hide: false, editable: false },
|
||||
{ field: 'config_value', headerName: 'Valeur Config.', flex: 1, hide: false, editable: false },
|
||||
]
|
||||
|
|
|
|||
|
|
@ -2402,10 +2402,11 @@ const Session_Admission_FI = (props) => {
|
|||
]
|
||||
|
||||
const New_Option_Piece_Identite = [
|
||||
{ "id": "cni", "label": "CNI", "value": "cni" },
|
||||
{ "id": "cni", "label": "CNI", "value": "cni" },
|
||||
{ "id": "permis", "label": "Permis Conduire", "value": "permis" },
|
||||
{ "id": "titre_sejour", "label": "Titre Séjour", "value": "titre_sejour" },
|
||||
{ "id": "passport", "label": "Passport", "value": "passport" },
|
||||
{ "id": "titre_sejour", "label": "Titre Séjour", "value": "titre_sejour" },
|
||||
{ "id": "autre", "label": "Autre", "value": "autre" },
|
||||
{ "id": "", "label": "", "value": "" },
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -650,10 +650,12 @@ function UpdateUserInfo(props) {
|
|||
{ "id": "permis", "label": "Permis Conduire", "value": "permis" },
|
||||
{ "id": "passport", "label": "Passport", "value": "passport" },
|
||||
{ "id": "titre_sejour", "label": "Titre Séjour", "value": "titre_sejour" },
|
||||
{ "id": "autre", "label": "Autre", "value": "autre" },
|
||||
{ "id": "", "label": "", "value": "" },
|
||||
]
|
||||
|
||||
|
||||
|
||||
const New_Option_Famille_Situation = [
|
||||
{ "id": "marie", "label": "Marié", "value": "marie" },
|
||||
{ "id": "pacse", "label": "Pacsé", "value": "pacse" },
|
||||
|
|
@ -1094,7 +1096,7 @@ function UpdateUserInfo(props) {
|
|||
<div style={{ width: '100%', float: 'left' }}>
|
||||
|
||||
<div className="Grid_2_col_sub_colone_header">
|
||||
|
||||
|
||||
</div>
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<div className="div_row_gauche" style={{ width: '20%', maxWidth: '200px' }}>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,181 @@
|
|||
import React, { useState, useEffect, useRef } from "react";
|
||||
import Navigation from "../components/Navigation";
|
||||
import bannerimg2 from "./../mysy_img/MYSY-LOGO-BLUE.png";
|
||||
import ok_png from "./../mysy_img/Ok_PNG.png";
|
||||
import { Helmet } from "react-helmet";
|
||||
import Footer from "../components/Fotter";
|
||||
import Header from "../components/Header";
|
||||
import { useParams } from 'react-router-dom';
|
||||
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||
import axios from "axios";
|
||||
import New_Navigation_2025 from "../components/New_Navigation_2025";
|
||||
import New_C_Header_2025_V2 from "../components/header_automatic_files/Header";
|
||||
import New_C_Footer_Without_Testimony_2025_V2 from "../components/footer_automatic_files/Layout_Without_Testimony";
|
||||
|
||||
const Absence_Action_From_Mail = () => {
|
||||
|
||||
|
||||
const { action, partner_owner_recid, objid } = useParams();
|
||||
|
||||
const [tempo, settempo] = useState(".");
|
||||
setInterval(check, 3000);
|
||||
|
||||
|
||||
window.setTimeout(function () {
|
||||
if (String(already_run) === "true")
|
||||
window.location.href = "/";
|
||||
}, 10000);
|
||||
|
||||
|
||||
function check() {
|
||||
var val = " . " + tempo;
|
||||
//alert(" val = "+val);
|
||||
settempo(val);
|
||||
|
||||
}
|
||||
|
||||
const [isLoading, setLoading] = useState(false);
|
||||
|
||||
const [already_run, setalready_run] = useState(false);
|
||||
const [quotation_ref, setquotation_ref] = useState("");
|
||||
|
||||
|
||||
const [Absence_Motif_Accept_Refuse_api, setAbsence_Motif_Accept_Refuse_api] = useState();
|
||||
const [Absence_Motif_Accept_Refuse_message, setAbsence_Motif_Accept_Refuse_message] = useState();
|
||||
const [Absence_Motif_Accept_Refuse_result, setAbsence_Motif_Accept_Refuse_result] = useState();
|
||||
function Absence_Motif_Accept_Refuse() {
|
||||
|
||||
setalready_run(true);
|
||||
|
||||
var form = new FormData();
|
||||
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
|
||||
|
||||
|
||||
form.append("partner_owner_recid", partner_owner_recid);
|
||||
form.append("agenda_id", objid);
|
||||
|
||||
var myurl = ""
|
||||
|
||||
if (action === "accept")
|
||||
myurl = process.env.REACT_APP_API_URL + "myclass/api/Absence_Accept_Motif_From_Mail_No_Token/";
|
||||
else if (action === "refuse")
|
||||
myurl = process.env.REACT_APP_API_URL + "myclass/api/Absence_Refuse_Motif_From_Mail_No_Token/";
|
||||
|
||||
setLoading(true);
|
||||
|
||||
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
console.log(" In Absence_Motif_Accept_Refuse res.data.status = " + res.data.status);
|
||||
console.log(" In Absence_Motif_Accept_Refuse res.data.message r_class = " + res.data.message);
|
||||
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
||||
setAbsence_Motif_Accept_Refuse_api("true");
|
||||
setAbsence_Motif_Accept_Refuse_result(res.data.message);
|
||||
setAbsence_Motif_Accept_Refuse_message(res.data.message);
|
||||
setquotation_ref(res.data.quotation_ref)
|
||||
|
||||
//myRef_head.current.scrollIntoView({ behavior: "smooth" });
|
||||
|
||||
}
|
||||
else {
|
||||
setAbsence_Motif_Accept_Refuse_api("false");
|
||||
setAbsence_Motif_Accept_Refuse_message(res.data.message);
|
||||
if (String(setquotation_ref) === "")
|
||||
alert(res.data.message);
|
||||
}
|
||||
setLoading(false);
|
||||
|
||||
}).catch((error) => {
|
||||
|
||||
setLoading(false);
|
||||
console.warn('UpdateStagiaireData : Not good man :( Absence_Motif_Accept_Refuse = ' + error);
|
||||
setAbsence_Motif_Accept_Refuse_api("false");
|
||||
alert(" Impossible de créer le devis");
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const initialized = useRef(false)
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
if (!initialized.current) {
|
||||
initialized.current = true
|
||||
|
||||
if (String(already_run) === "false")
|
||||
Absence_Motif_Accept_Refuse();
|
||||
}
|
||||
|
||||
}, []);
|
||||
|
||||
|
||||
return (
|
||||
<div className="notfound">
|
||||
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
|
||||
|
||||
<div>
|
||||
<Navigation />
|
||||
</div>
|
||||
<Helmet>
|
||||
<title>MySy Training, Emargement</title>
|
||||
<meta name="description" content="Nous sommes une base de données uniquement dediée aux formations et tutoriels" />
|
||||
<meta name="robots" content="index,follow" />
|
||||
<meta name="title" content="Trouver des Formations.Acces libre.Qualité top" />
|
||||
<link rel="canonical" href={`${process.env.REACT_APP_BASE_URL}` + "/Emargement"} />
|
||||
|
||||
</Helmet>
|
||||
<New_C_Header_2025_V2 />
|
||||
|
||||
|
||||
<div className="div_mobile">
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
{/*<div className="nom_prenom"> Votre devis est en cours de création <img src={ok_png} className="img_ok" /> </div>*/}
|
||||
<div className="nom_prenom">
|
||||
<div>
|
||||
|
||||
|
||||
{Absence_Motif_Accept_Refuse_api && String(Absence_Motif_Accept_Refuse_api) === "false" && (
|
||||
<div style={{ color: "red", marginTop: "10rem" }}>
|
||||
Cette demande a déjà été traitée, ou le document est introuvable. <br />
|
||||
|
||||
Vous allez être redirigé vers le moteur de recherche dans quelques secondes {tempo}
|
||||
|
||||
</div>
|
||||
)}
|
||||
|
||||
{Absence_Motif_Accept_Refuse_api && String(Absence_Motif_Accept_Refuse_api) === "true" &&
|
||||
<div style={{ "color": "green", "marginTop": "10rem" }}>
|
||||
|
||||
{action === 'accept' && <div>
|
||||
<img src={ok_png} className="img_ok" /> Le motif d'absence a été accepté <br />
|
||||
</div>}
|
||||
|
||||
{action !== 'accept' && <div>
|
||||
<img src={ok_png} className="img_ok" /> Le motif d'absence a été refusé <br />
|
||||
</div>}
|
||||
|
||||
|
||||
Vous allez être redirigé vers le moteur de recherche dans quelques secondes {tempo}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<New_C_Footer_Without_Testimony_2025_V2 />
|
||||
|
||||
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default Absence_Action_From_Mail;
|
||||
|
|
@ -131,7 +131,7 @@
|
|||
border: 1px solid #9cf;
|
||||
color: #3b3e40;
|
||||
font-family: "DM Sans", "sans-serif";
|
||||
font-size: 11px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.1rem;
|
||||
font-weight: normal;
|
||||
width: 100%;
|
||||
|
|
@ -678,6 +678,14 @@
|
|||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
.div_row_list_pj {
|
||||
width: 100%;
|
||||
border-left: 3mm ridge rgba(211, 220, 50, .6);
|
||||
float: left;
|
||||
font-size: medium;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 601px) and (max-width: 991px) {
|
||||
|
|
@ -1307,6 +1315,14 @@
|
|||
|
||||
}
|
||||
|
||||
.div_row_list_pj {
|
||||
width: 50%;
|
||||
border-left: 3mm ridge rgba(211, 220, 50, .6);
|
||||
float: left;
|
||||
font-size: medium;
|
||||
text-align: left;
|
||||
padding-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 992px) and (max-width: 1199px) {
|
||||
|
|
@ -1839,6 +1855,15 @@
|
|||
|
||||
}
|
||||
|
||||
.div_row_list_pj {
|
||||
width: 30%;
|
||||
border-left: 3mm ridge rgba(211, 220, 50, .6);
|
||||
float: left;
|
||||
font-size: medium;
|
||||
text-align: left;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
|
|
@ -1994,7 +2019,7 @@
|
|||
|
||||
.session_caract_Dialog {
|
||||
font-family: 'DM Sans';
|
||||
color: #0a2a4d;
|
||||
color: #0a2a4d;
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
float: left;
|
||||
|
|
@ -2499,6 +2524,15 @@
|
|||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
.div_row_list_pj {
|
||||
width: 30%;
|
||||
border-left: 3mm ridge rgba(211, 220, 50, .6);
|
||||
float: left;
|
||||
font-size: medium;
|
||||
text-align: left;
|
||||
padding-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
// end media
|
||||
|
|
@ -2553,11 +2587,11 @@
|
|||
}
|
||||
|
||||
|
||||
.css-1v4ccyo {
|
||||
border: solid #e8eef6 1px;
|
||||
.css-1v4ccyo {
|
||||
border: solid #e8eef6 1px;
|
||||
height: 3.5rem !important;
|
||||
font-size: small;
|
||||
color: #0a2a4d !important;
|
||||
color: #0a2a4d !important;
|
||||
}
|
||||
|
||||
option {
|
||||
|
|
@ -2654,11 +2688,11 @@
|
|||
width: 110%;
|
||||
}
|
||||
|
||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
|
||||
color: #0a2a4d !important;
|
||||
|
||||
font-size: small !important;
|
||||
font-family: "DM Sans" !important;
|
||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
|
||||
color: #0a2a4d !important;
|
||||
|
||||
font-size: small !important;
|
||||
font-family: "DM Sans" !important;
|
||||
padding-left: 5px !important;
|
||||
padding-right: 1rem !important;
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
.module_email_management {
|
||||
|
||||
|
||||
|
||||
.test01 {
|
||||
font-size: 3rem;
|
||||
// color: red;
|
||||
|
|
|
|||
Loading…
Reference in New Issue