29/11/2023 - 18h30

recette2
cherif 2023-11-29 16:56:44 +01:00
parent c1b9e22595
commit d55fc269c6
9 changed files with 3192 additions and 118 deletions

View File

@ -0,0 +1,96 @@
import React, { useRef, useState, useEffect } from "react";
import TextField from '@mui/material/TextField';
import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import CheckOut from "./CheckOut";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { Editor } from '@tinymce/tinymce-react';
import parse from 'html-react-parser';
import { FcViewDetails, FcDisapprove } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import add_plus from "../mysy_img/plus.png";
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import fileDownload from 'js-file-download'
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint } from "react-icons/fc";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns'
import moment from "moment";
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle } from "react-icons/ai";
import Box from '@mui/material/Box';
import { Typography, LinearProgress, sliderClasses } from '@mui/material';
import styled from 'styled-components';
import { CiTrash } from "react-icons/ci";
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { TransitionProps } from '@mui/material/transitions';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
//import FullCalendar from "@fullcalendar/react";
import daygridPlugin from "@fullcalendar/daygrid";
//import interactionPlugin from "@fullcalendar/interaction";
//import timeGridPlugin from "@fullcalendar/timegrid";
import { v4 as uuid } from "uuid";
import allLocales from '@fullcalendar/core/locales-all'
import { RepeatOnRounded } from "@mui/icons-material";
import { alignPropType } from "react-bootstrap/esm/types";
import FullCalendar, { formatDate } from "@fullcalendar/react";
import dayGridPlugin from "@fullcalendar/daygrid";
import timeGridPlugin from "@fullcalendar/timegrid";
import interactionPlugin from "@fullcalendar/interaction";
import {
ListItem,
ListItemText,
useTheme,
} from "@mui/material";
const Dashbord_Session = (props) => {
const myconntected_employee_id = props.conntected_employee_id;
const [selected_employee_id, setselected_employee_id] = useState(props.conntected_employee_id);
const history = useHistory();
const [isLoading, setLoading] = useState();
useEffect(() => {
window.scrollTo({
top: 0,
behavior: "smooth",
});
}, [myconntected_employee_id])
return (
<div className="dashbord_session">
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des sessions</h3>
</div>
)
}
export default Dashbord_Session;

View File

@ -122,6 +122,7 @@ const DisplayPartnerSession = (props) => {
{ field: '_id', headerName: '_id', hide: true },
{ field: 'class_internal_url', headerName: 'class_internal_url', hide: true },
{ field: 'code_session', headerName: 'Code session', hide: false, flex: 1, minWidth: 150 },
{ field: 'session_title', headerName: 'Titre', hide: false, flex: 1, minWidth: 150 },
{
field: 'statut', headerName: 'Statut', hide: true, width: datagrid_columns_size_model2,
@ -998,8 +999,9 @@ const DisplayPartnerSession = (props) => {
}
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Getall_TrainingSession res.data.status = " + res.data.status);
//console.log(" In Getall_TrainingSession res.data.message r_class = " + res.data.message);
@ -1014,6 +1016,7 @@ const DisplayPartnerSession = (props) => {
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Getall_TrainingSession = ', error);
setGetall_TrainingSession_api("false");
alert("Impossible de lancer la recherche")
@ -8273,6 +8276,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
class_external_code: JSON.parse(item).class_external_code,
prix_session: JSON.parse(item).prix_session,
published: JSON.parse(item).class_published,
session_title: JSON.parse(item).titre,
}
))}

View File

@ -1482,6 +1482,49 @@ const DisplayPartnerStagiaires = (props) => {
document.getElementsByName(String(field_name))[0].style.backgroundColor = "#ECEFF1";
}
}
// on desactive les champs "tuteurs". Pour info, ces champs ne sont jamais "enable"
if (document.getElementsByName("detail_tuteur1_nom")[0]) {
document.getElementsByName("detail_tuteur1_nom")[0].disabled = true;
document.getElementsByName("detail_tuteur1_nom")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("detail_tuteur1_prenom")[0]) {
document.getElementsByName("detail_tuteur1_prenom")[0].disabled = true;
document.getElementsByName("detail_tuteur1_prenom")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("detail_tuteur1_email")[0]) {
document.getElementsByName("detail_tuteur1_email")[0].disabled = true;
document.getElementsByName("detail_tuteur1_email")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("detail_tuteur1_phone")[0]) {
document.getElementsByName("detail_tuteur1_phone")[0].disabled = true;
document.getElementsByName("detail_tuteur1_phone")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("detail_tuteur2_nom")[0]) {
document.getElementsByName("detail_tuteur2_nom")[0].disabled = true;
document.getElementsByName("detail_tuteur2_nom")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("detail_tuteur2_prenom")[0]) {
document.getElementsByName("detail_tuteur2_prenom")[0].disabled = true;
document.getElementsByName("detail_tuteur2_prenom")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("detail_tuteur2_email")[0]) {
document.getElementsByName("detail_tuteur2_email")[0].disabled = true;
document.getElementsByName("detail_tuteur2_email")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("detail_tuteur2_phone")[0]) {
document.getElementsByName("detail_tuteur2_phone")[0].disabled = true;
document.getElementsByName("detail_tuteur2_phone")[0].style.backgroundColor = "#ECEFF1";
}
}
function EnableAttendeeDetailFields() {
@ -2006,14 +2049,24 @@ const DisplayPartnerStagiaires = (props) => {
const [p_detail_tuteur1_prenom, setp_detail_tuteur1_prenom] = useState("");
const [p_detail_tuteur1_email, setp_detail_tuteur1_email] = useState("");
const [p_detail_tuteur1_telephone, setp_detail_tuteur1_telephone] = useState("");
const [p_detail_tuteur1_adresse, setp_detail_tuteur1_adresse] = useState("");
const [p_detail_tuteur1_cp, setp_detail_tuteur1_cp] = useState("");
const [p_detail_tuteur1_ville, setp_detail_tuteur1_ville] = useState("");
const [p_detail_tuteur1_pays, setp_detail_tuteur1_pays] = useState("");
const [p_detail_tuteur1_include_com, setp_detail_tuteur1_include_com] = useState("");
const [p_detail_tuteur2_nom, setp_detail_tuteur2_nom] = useState("");
const [p_detail_tuteur2_prenom, setp_detail_tuteur2_prenom] = useState("");
const [p_detail_tuteur2_email, setp_detail_tuteur2_email] = useState("");
const [p_detail_tuteur2_telephone, setp_detail_tuteur2_telephone] = useState("");
const [p_detail_tuteur2_adresse, setp_detail_tuteur2_adresse] = useState("");
const [p_detail_tuteur2_cp, setp_detail_tuteur2_cp] = useState("");
const [p_detail_tuteur2_ville, setp_detail_tuteur2_ville] = useState("");
const [p_detail_tuteur2_pays, setp_detail_tuteur2_pays] = useState("");
const [p_detail_tuteur2_include_com, setp_detail_tuteur2_include_com] = useState("");
//---
const [p_one_formation, setp_one_formation] = useState();
const [p_one_detail_session_class, setp_one_detail_session_class] = useState();
@ -2224,7 +2277,7 @@ const DisplayPartnerStagiaires = (props) => {
// Recuperation des tuteurs
if (mylocalattendee.tuteur1_nom) {
setp_detail_tuteur1_nom(mylocalattendee.tuteur1_nom);
}
if (mylocalattendee.tuteur1_prenom) {
@ -2256,7 +2309,52 @@ const DisplayPartnerStagiaires = (props) => {
}
if (mylocalattendee.tuteur1_include_com) {
setp_detail_tuteur1_include_com(mylocalattendee.tuteur1_include_com);
if (String(mylocalattendee.tuteur1_include_com) === "1")
setp_detail_tuteur1_include_com(true);
else
setp_detail_tuteur1_include_com(false);
}
if (mylocalattendee.tuteur2_nom) {
setp_detail_tuteur2_nom(mylocalattendee.tuteur2_nom);
}
if (mylocalattendee.tuteur2_prenom) {
setp_detail_tuteur2_prenom(mylocalattendee.tuteur2_prenom);
}
if (mylocalattendee.tuteur2_email) {
setp_detail_tuteur2_email(mylocalattendee.tuteur2_email);
}
if (mylocalattendee.tuteur2_telephone) {
setp_detail_tuteur2_telephone(mylocalattendee.tuteur2_telephone);
}
if (mylocalattendee.tuteur2_adresse) {
setp_detail_tuteur2_adresse(mylocalattendee.tuteur2_adresse);
}
if (mylocalattendee.tuteur2_cp) {
setp_detail_tuteur2_cp(mylocalattendee.tuteur2_cp);
}
if (mylocalattendee.tuteur2_ville) {
setp_detail_tuteur2_ville(mylocalattendee.tuteur2_ville);
}
if (mylocalattendee.tuteur2_pays) {
setp_detail_tuteur2_pays(mylocalattendee.tuteur2_pays);
}
if (mylocalattendee.tuteur2_include_com) {
if (String(mylocalattendee.tuteur2_include_com) === "1")
setp_detail_tuteur2_include_com(true);
else
setp_detail_tuteur2_include_com(false);
}
/*
@ -3906,6 +4004,8 @@ const DisplayPartnerStagiaires = (props) => {
const [quel_tuteur, setquel_tuteur] = useState("1");
const [Add_Update_Stagiaire_Tuteur_api, setAdd_Update_Stagiaire_Tuteur_api] = useState();
const [Add_Update_Stagiaire_Tuteur_message, setAdd_Update_Stagiaire_Tuteur_message] = useState();
@ -3920,62 +4020,125 @@ const DisplayPartnerStagiaires = (props) => {
}
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("_id", selected_id);
if (p_detail_tuteur1_nom)
form.append("tuteur1_nom", p_detail_tuteur1_nom);
else
form.append("tuteur1_nom", "");
if (String(quel_tuteur) === "1") {
if (p_detail_tuteur1_nom)
form.append("tuteur1_nom", p_detail_tuteur1_nom);
else
form.append("tuteur1_nom", "");
if (p_detail_tuteur1_prenom)
form.append("tuteur1_prenom", p_detail_tuteur1_prenom);
else
form.append("tuteur1_prenom", "");
if (p_detail_tuteur1_email && String(p_detail_tuteur2_email).trim() !== "") {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_detail_tuteur1_email.match(validRegex)) {
alert("L'adresse email est invalide.");
return;
}
form.append("tuteur1_email", p_detail_tuteur1_email);
}
if (p_detail_tuteur1_telephone)
form.append("tuteur1_telephone", p_detail_tuteur1_telephone);
else
form.append("tuteur1_telephone", "");
if (p_detail_tuteur1_adresse)
form.append("tuteur1_adresse", p_detail_tuteur1_adresse);
else
form.append("tuteur1_adresse", "");
if (p_detail_tuteur1_cp)
form.append("tuteur1_cp", p_detail_tuteur1_cp);
else
form.append("tuteur1_cp", "");
if (p_detail_tuteur1_ville)
form.append("tuteur1_ville", p_detail_tuteur1_ville);
else
form.append("tuteur1_ville", "");
if (p_detail_tuteur1_pays)
form.append("tuteur1_pays", p_detail_tuteur1_pays);
else
form.append("tuteur1_pays", "");
if (p_detail_tuteur1_prenom)
form.append("tuteur1_prenom", p_detail_tuteur1_prenom);
else
form.append("tuteur1_prenom", "");
if (p_detail_tuteur1_include_com && String(p_detail_tuteur1_include_com) === "true")
form.append("tuteur1_include_com", "1");
else
form.append("tuteur1_include_com", "0");
if (p_detail_tuteur1_email)
form.append("tuteur1_email", p_detail_tuteur1_email);
else
form.append("tuteur1_email", "");
}
if (String(quel_tuteur) === "2") {
if (p_detail_tuteur2_nom)
form.append("tuteur2_nom", p_detail_tuteur2_nom);
else
form.append("tuteur2_nom", "");
if (p_detail_tuteur1_telephone)
form.append("tuteur1_telephone", p_detail_tuteur1_telephone);
else
form.append("tuteur1_telephone", "");
if (p_detail_tuteur2_prenom)
form.append("tuteur2_prenom", p_detail_tuteur2_prenom);
else
form.append("tuteur2_prenom", "");
if (p_detail_tuteur2_email && String(p_detail_tuteur2_email).trim() !== "" ) {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!p_detail_tuteur2_email.match(validRegex)) {
alert("L'adresse email est invalide.");
return;
}
form.append("tuteur2_email", p_detail_tuteur2_email);
}
if (p_detail_tuteur1_adresse)
form.append("tuteur1_adresse", p_detail_tuteur1_adresse);
else
form.append("tuteur1_adresse", "");
if (p_detail_tuteur2_telephone)
form.append("tuteur2_telephone", p_detail_tuteur2_telephone);
else
form.append("tuteur2_telephone", "");
if (p_detail_tuteur1_cp)
form.append("tuteur1_cp", p_detail_tuteur1_cp);
else
form.append("tuteur1_cp", "");
if (p_detail_tuteur2_adresse)
form.append("tuteur2_adresse", p_detail_tuteur2_adresse);
else
form.append("tuteur2_adresse", "");
if (p_detail_tuteur1_ville)
form.append("tuteur1_ville", p_detail_tuteur1_ville);
else
form.append("tuteur1_ville", "");
if (p_detail_tuteur1_pays)
form.append("tuteur1_pays", p_detail_tuteur1_pays);
else
form.append("tuteur1_pays", "");
if (p_detail_tuteur2_cp)
form.append("tuteur2_cp", p_detail_tuteur2_cp);
else
form.append("tuteur2_cp", "");
if (p_detail_tuteur2_ville)
form.append("tuteur2_ville", p_detail_tuteur2_ville);
else
form.append("tuteur2_ville", "");
if (p_detail_tuteur2_pays)
form.append("tuteur2_pays", p_detail_tuteur2_pays);
else
form.append("tuteur2_pays", "");
if (p_detail_tuteur1_include_com)
form.append("tuteur1_include_com", p_detail_tuteur1_include_com);
else
form.append("tuteur1_include_com", "");
if (p_detail_tuteur2_include_com && String(p_detail_tuteur2_include_com) === "true")
form.append("tuteur2_include_com", "1");
else
form.append("tuteur2_include_com", "0");
}
var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateStagiairetoClass_Tuteurs/";
setLoading(true);
@ -4040,12 +4203,15 @@ const DisplayPartnerStagiaires = (props) => {
>
<DialogTitle>Tuteur</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogTitle>Tuteur {quel_tuteur}</DialogTitle>
{String(quel_tuteur) === "1" && <DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_tuteur_1_message}
</DialogContentText>
<div className="session_caract_Dialog" > Nom
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -4163,14 +4329,142 @@ const DisplayPartnerStagiaires = (props) => {
</div>
<div className="session_caract_Dialog" > Inclure Communication
<Switch defaultChecked />
<Switch checked={p_detail_tuteur1_include_com} onChange={(e) => {
setp_detail_tuteur1_include_com(e.target.checked)
}} />
</div>
</DialogContent>}
{String(quel_tuteur) === "2" && <DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_tuteur_1_message}
</DialogContentText>
<div className="session_caract_Dialog" > Nom
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur2_nom}
onChange={(e) => {
setp_detail_tuteur2_nom(e.target.value);
}
}
/>
</div>
<div className="session_caract_Dialog" > Prenom
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur2_prenom}
onChange={(e) => {
setp_detail_tuteur2_prenom(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Email
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur2_email}
onChange={(e) => {
setp_detail_tuteur2_email(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Téléphone
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur2_telephone}
onChange={(e) => {
setp_detail_tuteur2_telephone(e.target.value);
}}
/>
</div>
</DialogContent>
<div className="session_caract_Dialog" > Adresse
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur2_adresse}
onChange={(e) => {
setp_detail_tuteur2_adresse(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Code postal
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur2_cp}
onChange={(e) => {
setp_detail_tuteur2_cp(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Ville
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur2_ville}
onChange={(e) => {
setp_detail_tuteur2_ville(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Pays
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur2_pays}
onChange={(e) => {
setp_detail_tuteur2_pays(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Inclure Communication
<Switch checked={p_detail_tuteur2_include_com} onChange={(e) => {
setp_detail_tuteur2_include_com(e.target.checked)
}} />
</div>
</DialogContent>}
<DialogActions>
@ -5855,6 +6149,7 @@ const DisplayPartnerStagiaires = (props) => {
</div>
<div className="tuteur_field" style={{ "cursor": "pointer" }} onClick={(e) => {
setquel_tuteur("1");
setDialog_tuteur_1_open(true);
}}> Voir plus <RiMoreFill />
@ -5870,8 +6165,8 @@ const DisplayPartnerStagiaires = (props) => {
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_nom"
id="detail_tuteur1_nom"
name="detail_tuteur2_nom"
id="detail_tuteur2_nom"
InputLabelProps={{
shrink: true,
@ -5879,9 +6174,9 @@ const DisplayPartnerStagiaires = (props) => {
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_nom}
value={p_detail_tuteur2_nom}
onChange={(e) => {
setp_detail_tuteur1_nom(e.target.value);
setp_detail_tuteur2_nom(e.target.value);
setparticipant_data_changed("1");
}}
/>
@ -5893,17 +6188,17 @@ const DisplayPartnerStagiaires = (props) => {
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_prenom"
id="detail_tuteur1_prenom"
name="detail_tuteur2_prenom"
id="detail_tuteur2_prenom"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_prenom}
value={p_detail_tuteur2_prenom}
onChange={(e) => {
setp_detail_tuteur1_prenom(e.target.value);
setp_detail_tuteur2_prenom(e.target.value);
setparticipant_data_changed("1");
}}
/>
@ -5915,17 +6210,17 @@ const DisplayPartnerStagiaires = (props) => {
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_email"
id="detail_tuteur1_email"
name="detail_tuteur2_email"
id="detail_tuteur2_email"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_email}
value={p_detail_tuteur2_email}
onChange={(e) => {
setp_detail_tuteur1_email(e.target.value);
setp_detail_tuteur2_email(e.target.value);
setparticipant_data_changed("1");
}}
/>
@ -5937,22 +6232,29 @@ const DisplayPartnerStagiaires = (props) => {
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_phone"
id="detail_tuteur1_phone"
name="detail_tuteur2_phone"
id="detail_tuteur2_phone"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_telephone}
value={p_detail_tuteur2_telephone}
onChange={(e) => {
setp_detail_tuteur1_telephone(e.target.value);
setp_detail_tuteur2_telephone(e.target.value);
setparticipant_data_changed("1");
}}
/>
</div>
<div className="tuteur_field" style={{ "cursor": "pointer" }} onClick={(e) => {
setquel_tuteur("2");
setDialog_tuteur_1_open(true);
}}> Voir plus <RiMoreFill />
</div>
</div>
</div>

View File

@ -1334,7 +1334,8 @@ const [Get_Partner_Debut_Fin_Journee_api, setGet_Partner_Debut_Fin_Journee_api]
select={handleSelect}
headerToolbar={{
start: "today prev next",
end: "dayGridMonth dayGridWeek dayGridDay",
center: "title",
end: "dayGridMonth,timeGridWeek,timeGridDay",
}}
//eventContent={(info) => <EventItem info={info} />}
//plugins={[timeGridPlugin]}

View File

@ -39,15 +39,28 @@ import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { TransitionProps } from '@mui/material/transitions';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import FullCalendar from "@fullcalendar/react";
//import FullCalendar from "@fullcalendar/react";
import daygridPlugin from "@fullcalendar/daygrid";
import interactionPlugin from "@fullcalendar/interaction";
import timeGridPlugin from "@fullcalendar/timegrid";
//import interactionPlugin from "@fullcalendar/interaction";
//import timeGridPlugin from "@fullcalendar/timegrid";
import { v4 as uuid } from "uuid";
import allLocales from '@fullcalendar/core/locales-all'
import { RepeatOnRounded } from "@mui/icons-material";
import { alignPropType } from "react-bootstrap/esm/types";
import FullCalendar, { formatDate } from "@fullcalendar/react";
import dayGridPlugin from "@fullcalendar/daygrid";
import timeGridPlugin from "@fullcalendar/timegrid";
import interactionPlugin from "@fullcalendar/interaction";
import {
ListItem,
ListItemText,
useTheme,
} from "@mui/material";
const Module_Agenda = (props) => {
const myconntected_employee_id = props.conntected_employee_id;
@ -683,6 +696,11 @@ const Module_Agenda = (props) => {
Getall_Training_Materiel_No_Filter();
Get_Partner_Debut_Fin_Journee();
window.scrollTo({
top: 0,
behavior: "smooth",
});
}, [myconntected_employee_id])
@ -1210,7 +1228,8 @@ const Module_Agenda = (props) => {
select={handleSelect}
headerToolbar={{
start: "today prev next",
end: "dayGridMonth dayGridWeek dayGridDay",
center: "title",
end: "dayGridMonth,timeGridWeek,timeGridDay",
}}
//eventContent={(info) => <EventItem info={info} />}
//plugins={[timeGridPlugin]}
@ -1231,7 +1250,6 @@ const Module_Agenda = (props) => {
</div>
</div>
)
}

View File

@ -55,6 +55,7 @@ import Config_Champs_Personnalise from "./Config_Champs_Personnalise";
import Module_Agenda from "./Module_Agenda";
import Partner_Configuration_Session_Steps from "./Partner_Config_Session_Steps";
import Partner_Configuration_Jours_Travail from "./Partner_Config_Jours_Travail";
import Dashbord_Session from "./Dashbord_Session";
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
@ -311,7 +312,8 @@ const Partner = (props) => {
var list_menu = ['creation', 'infopartner', 'statistique', 'abonnement', 'affichage', 'ordervalide',
'mes_sessions', 'setuplms', 'facture', 'pricing', 'mes_clients', 'mes_devis', 'mes_cmd',
'mes_stagiaires', 'mes_employes', 'mon_materiel', 'config_document', 'factures_client', "config_technique",
"config_champ_specific", "module_agenda", "config_session_steps", "config_jours_heures"]
"config_champ_specific", "module_agenda", "config_session_steps", "config_jours_heures", "dashobrd_formation",
"dashobrd_session"]
if (action && list_menu.includes(action)) {
@ -346,6 +348,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/creation");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des formations");
}
@ -357,6 +360,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/infopartner");
document.body.style.backgroundColor = "#ffffff";
}
@ -368,6 +372,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/config_document");
document.body.style.backgroundColor = "#141b2d";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
}
@ -381,6 +386,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/config_champ_specific");
document.body.style.backgroundColor = "#141b2d";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
}
@ -393,6 +399,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/module_agenda");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
}
@ -407,6 +414,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/config_technique");
document.body.style.backgroundColor = "#141b2d";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
}
@ -419,6 +427,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/config_session_steps");
document.body.style.backgroundColor = "#141b2d";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
}
@ -432,6 +441,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/config_jours_heures");
document.body.style.backgroundColor = "#141b2d";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
}
@ -445,6 +455,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/factures_client");
document.body.style.backgroundColor = "#ffffff";
/*} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
}*/
@ -458,6 +469,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/statistique");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des formations");
}
@ -470,6 +482,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/setuplms");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du E-Learning");
}
@ -483,6 +496,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/facture");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des commandes");
}
@ -496,6 +510,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/abonnement");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des abonnements");
}
@ -509,6 +524,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/pricing");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des prix");
}
@ -523,6 +539,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/mes_clients");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des clients");
}
@ -535,6 +552,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/mes_devis");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des commandes");
}
@ -548,6 +566,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/mes_cmd");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des commandes");
}
@ -563,6 +582,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/mes_sessions");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des sessions");
}
@ -575,6 +595,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/mes_stagiaires");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des stagiaires");
}
@ -587,6 +608,7 @@ const Partner = (props) => {
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/mes_employes");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des employés");
}
@ -599,12 +621,41 @@ const Partner = (props) => {
setmenu("mon_materiel");
setapiexcelimportmessage();
setformation_file_name();
document.body.style.backgroundColor = "#ffffff";
history.push("/Partner/mon_materiel");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
}
}
function config_dashbord_formation_func(event) {
var security_retval = check_user_acces_right("dashbord", "read");
if (security_retval === 1) {
setmenu("dashbord_formation");
setapiexcelimportmessage();
setformation_file_name();
history.push("/Partner/dashbord_formation");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
}
}
function config_dashbord_session_func(event) {
var security_retval = check_user_acces_right("dashbord", "read");
if (security_retval === 1) {
setmenu("dashbord_session");
setapiexcelimportmessage();
setformation_file_name();
document.body.style.backgroundColor = "#141b2d";
history.push("/Partner/dashbord_session");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
}
}
function DiplaytrainingList(event) {
@ -988,7 +1039,7 @@ const Partner = (props) => {
<div className="div_mobile">
<div className="div_mobile" id="div_mobile">
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
@ -1138,63 +1189,20 @@ const Partner = (props) => {
<div class="separator"> Configuration </div>
{/*
<div>
<hr className="my_hr" />
{String(menu) !== "config_document" && <div className="sousmenu" onClick={config_document_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu" />&nbsp;MES DOCUMENTS</div>}
{String(menu) === "config_document" && <div className="sousmenu_selected" onClick={config_document_func}> &nbsp;&nbsp; <FcFinePrint className="icone_menu" />&nbsp;MES DOCUMENTS</div>}
</div>
<div>
<hr className="my_hr" />
{String(menu) !== "config_champ_specific" && <div className="sousmenu" onClick={config_specfic_fields_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu" />&nbsp;CHAMP SPECIFIQUE</div>}
{String(menu) === "config_champ_specific" && <div className="sousmenu_selected" onClick={config_specfic_fields_func}> &nbsp;&nbsp; <FcFinePrint className="icone_menu" />&nbsp;CHAMP SPECIFIQUE</div>}
</div>
<div>
<hr className="my_hr" />
{String(menu) !== "config_technique" && <div className="sousmenu" onClick={config_technique_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu" />&nbsp;TECHNIQUE</div>}
{String(menu) === "config_technique" && <div className="sousmenu_selected" onClick={config_technique_func}> &nbsp;&nbsp; <FcFinePrint className="icone_menu" />&nbsp;TECHNIQUE</div>}
</div>
<div>
<hr className="my_hr" />
{String(menu) !== "config_session_steps" && <div className="sousmenu" onClick={config_session_steps_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu" />&nbsp;SESSION ETAPE</div>}
{String(menu) === "config_session_steps" && <div className="sousmenu_selected" onClick={config_session_steps_func}> &nbsp;&nbsp; <FcFinePrint className="icone_menu" />&nbsp;SESSION ETAPE</div>}
</div>
<div>
<hr className="my_hr" />
{String(menu) !== "config_jours_heures" && <div className="sousmenu" onClick={config_jours_travaille_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu" />&nbsp;JOURS & HEURES</div>}
{String(menu) === "config_jours_heures" && <div className="sousmenu_selected" onClick={config_jours_travaille_func}> &nbsp;&nbsp; <FcFinePrint className="icone_menu" />&nbsp;JOURS & HEURES</div>}
</div>
<hr className="my_hr" />
*/}
<Dropdown title="Configuration Technique"
<Dropdown title="Configuration Technique &nbsp;&nbsp;"
onOpen={(event) => {
//document.getElementById('div_gauche').style.height = "1500px";
//document.getElementById('div_gauche').height = "1500px";
}}
onClose={(event) => {
//document.getElementById('div_gauche').style.height = "auto";
// document.getElementById('div_gauche').height = "auto";
}}
>
<Dropdown.Item >
{String(menu) !== "config_document" && <div className="sousmenu" onClick={config_document_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu"/>&nbsp;MES DOCUMENTS</div>}
{String(menu) === "config_document" && <div className="sousmenu_selected" onClick={config_document_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu"/>&nbsp;MES DOCUMENTS</div>}
{String(menu) !== "config_document" && <div className="sousmenu" onClick={config_document_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu" />&nbsp;MES DOCUMENTS</div>}
{String(menu) === "config_document" && <div className="sousmenu_selected" onClick={config_document_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu" />&nbsp;MES DOCUMENTS</div>}
</Dropdown.Item>
<Dropdown.Item>
@ -1224,6 +1232,35 @@ const Partner = (props) => {
</Dropdown>
<Dropdown title="Tableaux de bord &nbsp;&nbsp;"
onOpen={(event) => {
}}
onClose={(event) => {
}}
>
<Dropdown.Item >
{String(menu) !== "dashbord_formation" && <div className="sousmenu" onClick={config_dashbord_formation_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu" />&nbsp;FORMATION</div>}
{String(menu) === "dashbord_formation" && <div className="sousmenu_selected" onClick={config_dashbord_formation_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu" />&nbsp;FORMATION</div>}
</Dropdown.Item>
<Dropdown.Item>
{String(menu) !== "dashbord_session" && <div className="sousmenu" onClick={config_dashbord_session_func}>&nbsp;&nbsp;<FcFinePrint className="icone_menu" />&nbsp;SESSION</div>}
{String(menu) === "dashbord_session" && <div className="sousmenu_selected" onClick={config_dashbord_session_func}> &nbsp;&nbsp; <FcFinePrint className="icone_menu" />&nbsp;SESSION</div>}
</Dropdown.Item>
</Dropdown>
</div>
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) === "1" &&
@ -1519,6 +1556,14 @@ const Partner = (props) => {
}
{String(menu) === "dashbord_session" && <div className="div_droite">
<Dashbord_Session conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("dashbord", "read")} write_access={check_user_acces_right("dashbord", "write")} />
</div>
}
<div className="pieddepage">
<Footer />

View File

@ -648,7 +648,8 @@ const TestUrl_New = (props) => {
select={handleSelect}
headerToolbar={{
start: "today prev next",
end: "dayGridMonth dayGridWeek dayGridDay",
center: "title",
end: "dayGridMonth,timeGridWeek,timeGridDay",
}}
//eventContent={(info) => <EventItem info={info} />}
//plugins={[timeGridPlugin]}

File diff suppressed because it is too large Load Diff

View File

@ -87,4 +87,5 @@
@import "./components/partner_configuration_session_step";
@import "./components/module_absence";
@import "./components/partner_configuration_jours_travail";
@import "./components/dashbord_session";