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 { FcPodiumWithAudience } from "react-icons/fc"; import { FcInfo } from "react-icons/fc"; import { LiaDharmachakraSolid } from "react-icons/lia"; import 'react-tooltip/dist/react-tooltip.css' import { Tooltip } from 'react-tooltip' import add_plus from "../mysy_img/plus.png"; import excel_icone from "../mysy_img/excel_icone.png"; import participants from "../mysy_img/participants.png"; import fileDownload from 'js-file-download'; import Popup from 'reactjs-popup'; import 'reactjs-popup/dist/index.css'; import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcCheckmark } 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 } 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 ColorPicker from 'react-pick-color'; import Visibility from '@mui/icons-material/Visibility'; import VisibilityOff from '@mui/icons-material/VisibilityOff'; import { Fab } from "@material-ui/core"; import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io"; import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai"; import Autocomplete from '@mui/material/Autocomplete'; import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif"; import { gridClasses } from '@mui/x-data-grid'; import Link from '@mui/material/Link'; import { PiDotsThree } from "react-icons/pi"; import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5"; import Rating from '@mui/material/Rating'; import Module_Selection_Evaluation_Apprenants from "./Module_Selection_Evaluation_Apprenants"; import AttachFileIcon from '@mui/icons-material/AttachFile'; import Module_Selection_Apprenants from "./Module_Selection_Apprenants"; import { FcAlarmClock, FcMultipleSmartphones, FcWorkflow } from "react-icons/fc"; import { makeStyles } from "@material-ui/core/styles"; import CancelPresentationIcon from '@mui/icons-material/CancelPresentation'; import { IconButton } from '@material-ui/core'; import Paper from '@material-ui/core/Paper'; import Draggable from 'react-draggable'; const useStyles = makeStyles((theme) => ({ dialog: { position: 'absolute', // left: 10, top: 400 }, paper: { overflowY: 'unset', }, customizedButton: { position: 'absolute', left: '95%', top: '-9%', backgroundColor: 'lightgray', color: 'gray', }, })); const Groupe_Apprenant = (props) => { const classes = useStyles(); const history = useHistory(); const [submenu, setsubmenu] = useState(""); const [rowss, setRows] = useState([]); const [selectionModel, setSelectionModel] = React.useState([]); const [isLoading, setLoading] = useState(); var date_today_90j = new Date(); date_today_90j.setDate(date_today_90j.getDate() + 90); const [p_filtre1, setp_filtre1] = useState(""); const [p_filtre1_value, setp_filtre1_value] = useState(""); const [p_filtre2, setp_filtre2] = useState(""); const [p_filtre2_value, setp_filtre2_value] = useState(""); const [p_filtre3, setp_filtre3] = useState(""); const [p_filtre3_value, setp_filtre3_value] = useState(""); const [p_filtre4, setp_filtre4] = useState(""); const [p_filtre4_value, setp_filtre4_value] = useState(""); function ExpandableCell_50({ value }) { const [expanded, setExpanded] = React.useState(false); return ( ); } function ExpandableCell_50_bg_hiligt({ value }) { const [expanded, setExpanded] = React.useState(false); return ( ); } const columns_grp_apprenant = [ { field: '_id', headerName: '_id', hide: true, Width: 0 }, { field: 'id', headerName: 'id', hide: true, Width: 0 }, { field: 'code', headerName: 'Code', flex: 1, hide: false, minWidth: 180, renderCell: (params) => , }, { field: 'nom', headerName: 'Nom', flex: 1, hide: false, minWidth: 180, renderCell: (params) => , }, { field: 'type_groupe_code', headerName: 'Type GRoupe', flex: 1, hide: false, minWidth: 180, renderCell: (params) => , }, { field: 'nb_membre', headerName: 'Nb membres', flex: 1, hide: false, minWidth: 180, renderCell: (params) => , }, { field: 'class_id', headerName: 'class_id', hide: true, Width: 0 }, { field: 'class_id_code', headerName: 'Ftion Code', minWidth: 150, flex: 1, renderCell: (params) => , renderCell: (cellValues) => { return (
{New_Getall_Partner_Class_Reduice_Fields_result && New_Getall_Partner_Class_Reduice_Fields_result.length > 0 && }
); } }, { field: 'session_id', headerName: 'session_id', hide: true, Width: 0 }, { field: 'session_code', headerName: 'Classe', minWidth: 150, flex: 1, renderCell: (params) => , renderCell: (cellValues) => { return (
{New_Getall_Partner_Session_Reduice_Fields_result && New_Getall_Partner_Session_Reduice_Fields_result.length > 0 && }
); } }, { field: "delete", headerName: 'Supprimer', renderCell: (cellValues) => { return ( ); } } ] const columns_grp_membre = [ { field: '_id', headerName: '_id', hide: true, Width: 0 }, { field: 'id', headerName: 'id', hide: true, Width: 0 }, { field: 'nom', headerName: 'nom', flex: 1, hide: false, minWidth: 180, renderCell: (params) => , }, { field: 'prenom', headerName: 'prenom', flex: 1, hide: false, minWidth: 180, renderCell: (params) => , }, { field: 'email', headerName: 'email', flex: 1, hide: false, minWidth: 180, renderCell: (params) => , }, { field: "delete", headerName: 'Supprimer', renderCell: (cellValues) => { return ( { // handleClick_delete(event, cellValues); }} > } modal nested position="center center" > {close => (
MySy Information
{' '} En confirmant cette opération, la personne sera supprimée du groupe .
)}
); } } ] const [Delete_List_Membre_From_Groupe_api, setDelete_List_Membre_From_Groupe_api] = useState(); const [Delete_List_Membre_From_Groupe_message, setDelete_List_Membre_From_Groupe_message] = useState(); const [Delete_List_Membre_From_Groupe_result, setDelete_List_Membre_From_Groupe_result] = useState(); function Delete_List_Membre_From_Groupe(local_tab_ids) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("groupe_inscription_id", selected_id); form.append("tab_ids", local_tab_ids); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Groupe_Inscrit_Membres/"; setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Delete_List_Membre_From_Groupe res.data.status = " + res.data.status); //console.log(" In Delete_List_Membre_From_Groupe res.data.message r_class = " + res.data.message); setLoading(false); if (String(res.data.status) === String("true")) { setDelete_List_Membre_From_Groupe_api("true"); setDelete_List_Membre_From_Groupe_result(res.data.message); setselectionModel_grp_membre([]); Getall_Groupe_Membres(selected_id); alert(res.data.message) } else { setDelete_List_Membre_From_Groupe_api("false"); setDelete_List_Membre_From_Groupe_message(res.data.message); alert(res.data.message); } }).catch((error) => { setLoading(false); console.warn('Delete_List_Membre_From_Groupe : Not good man :( mysearchtext = ' + error); setDelete_List_Membre_From_Groupe_api("false"); alert(" Impossible de supprimer les membres"); }) } const [selectionModel_grp_membre, setselectionModel_grp_membre] = React.useState([]); const New_Option_Filter = [ { "id": "code", "label": "Code Groupe ", "value": "code" }, { "id": "type_groupe_code", "label": "Type de groupe (TD, TP, etc) ", "value": "type_groupe_code" }, { "id": "class_external_code", "label": "Lié à la formation (code) ", "value": "class_external_code" }, { "id": "classcode_session_external_code", "label": "Lié à la Session (code ) ", "value": "code_session" }, { "id": "", "label": "", "value": "" }, { "id": "1", "label": "", "value": "1" }, // Cette ligne pour couvrir l'ajout d'une ligne de filter. C'est fait expres. ] function handleClick_delete_groupe(event, cellValues) { Delete_Given_Goupe(cellValues.row._id); } const [Delete_Given_Goupe_api, setDelete_Given_Goupe_api] = useState(); const [Delete_Given_Goupe_message, setDelete_Given_Goupe_message] = useState(); const [Delete_Given_Goupe_result, setDelete_Given_Goupe_result] = useState(); function Delete_Given_Goupe(local_grp_id) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("_id", local_grp_id); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Groupe_Inscrit/"; axios.post(myurl, form).then(res => { //console.log(" In Delete_Given_Goupe res.data.status = " + res.data.status); //console.log(" In Delete_Given_Goupe res.data.message r_class = " + res.data.message); if (String(res.data.status) === String("true")) { setDelete_Given_Goupe_api("true"); setDelete_Given_Goupe_result(res.data.message); Getall_Partner_Groupe_Inscrit(); setdisplay_grp_apprenant(""); setgrp_apprenant_data_changed(""); setgrp_apprenant_data_edit_mode(""); setgridline_id(""); setSelectionModel([]); alert(res.data.message); } else { setDelete_Given_Goupe_api("false"); setDelete_Given_Goupe_message(res.data.message); alert(res.data.message); } }).catch((error) => { console.warn('Delete_Given_Goupe : Not good man :( mysearchtext = ' + error); setDelete_Given_Goupe_api("false"); alert(" Impossible de supprimer le groupe "); }) } const [selectionModel_grp_apprenant, setselectionModel_grp_apprenant] = React.useState([]); const [selectionModel_grp_apprenant_participant, setselectionModel_grp_apprenant_participant] = React.useState([]); const [selected_id, setselected_id] = React.useState(""); const [display_grp_apprenant, setdisplay_grp_apprenant] = React.useState(""); const [grp_apprenant_data_changed, setgrp_apprenant_data_changed] = React.useState(""); const [grp_apprenant_data_edit_mode, setgrp_apprenant_data_edit_mode] = useState(""); const [add_one_grp_apprenant, setadd_one_grp_apprenant] = React.useState(""); const [gridline_id, setgridline_id] = useState(""); const [New_Getall_Partner_Session_Reduice_Fields_result, setNew_Getall_Partner_Session_Reduice_Fields_result] = useState([]); const [Getall_Partner_Session_Reduice_Fields_api, setGetall_Partner_Session_Reduice_Fields_api] = useState(); const [Getall_Partner_Session_Reduice_Fields_message, setGetall_Partner_Session_Reduice_Fields_message] = useState(); const [Getall_Partner_Session_Reduice_Fields_result, setGetall_Partner_Session_Reduice_Fields_result] = useState(); function Getall_Partner_Session_Reduice_Fields(event) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_Session_Ftion_Reduice_Fields/"; axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In Getall_Partner_Session_Reduice_Fields res.data.status = " + res.data.status); //console.log(" In Getall_Partner_Session_Reduice_Fields res.data.message r_class = " + res.data.message); setGetall_Partner_Session_Reduice_Fields_api("true"); setGetall_Partner_Session_Reduice_Fields_result(res.data.message); setRows(res.data.message); var new_data2 = []; const new_data = res.data.message.map((x) => { //--- var localid = JSON.parse(x).id; var local_id = JSON.parse(x)._id; var local_code_session = JSON.parse(x).code_session; var local_titre = JSON.parse(x).titre; var local_class_internal_url = JSON.parse(x).class_internal_url; var local_date_debut = JSON.parse(x).date_debut; var local_date_fin = JSON.parse(x).date_fin; //--- var node = { "_id": local_id, "id": localid, "label": local_code_session, "code_session": local_code_session, "titre": local_titre, "class_internal_url": local_class_internal_url, "date_debut": local_date_debut, "date_fin": local_date_fin, }; new_data2.push(node); }); //--- var node = { "_id": "", "id": "", "label": "", "code_session": "", "titre": "", "class_internal_url": "", "date_debut": "", "date_fin": "", }; new_data2.push(node); if (new_data2.length > 0) setNew_Getall_Partner_Session_Reduice_Fields_result(new_data2); } else { setGetall_Partner_Session_Reduice_Fields_api("false"); setGetall_Partner_Session_Reduice_Fields_message(res.data.message); alert(res.data.message); } }).catch((error) => { console.warn('Not good man :( Getall_Partner_Session_Reduice_Fields = ', error); setGetall_Partner_Session_Reduice_Fields_api("false"); alert(" Impossible de recuperer la liste des sessions de formation (classe)"); //setmyApimyApiMessage("") }) } const [New_Getall_Partner_Class_Reduice_Fields_result, setNew_Getall_Partner_Class_Reduice_Fields_result] = useState([]); const [Getall_Partner_Class_Reduice_Fields_api, setGetall_Partner_Class_Reduice_Fields_api] = useState(); const [Getall_Partner_Class_Reduice_Fields_message, setGetall_Partner_Class_Reduice_Fields_message] = useState(); const [Getall_Partner_Class_Reduice_Fields_result, setGetall_Partner_Class_Reduice_Fields_result] = useState(); function Getall_Partner_Class_Reduice_Fields(event) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_All_Class_Few_Fields/"; axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In Getall_Partner_Class_Reduice_Fields res.data.status = " + res.data.status); //console.log(" In Getall_Partner_Class_Reduice_Fields res.data.message r_class = " + res.data.message); setGetall_Partner_Class_Reduice_Fields_api("true"); setGetall_Partner_Class_Reduice_Fields_result(res.data.message); setRows(res.data.message); var new_data2 = []; const new_data = res.data.message.map((x) => { //--- var localid = JSON.parse(x).id; var local_id = JSON.parse(x)._id; var local_external_code = JSON.parse(x).external_code; var local_internal_code = JSON.parse(x).internal_code; var local_internal_url = JSON.parse(x).internal_url; //--- var node = { "_id": local_id, "id": localid, "label": local_external_code, "external_code": local_external_code, "internal_code": local_internal_code, "internal_url": local_internal_url }; new_data2.push(node); }); //--- var node = { "_id": "", "id": "", "label": "", "external_code": "", "internal_code": "", "internal_url": "" }; new_data2.push(node); if (new_data2.length > 0) setNew_Getall_Partner_Class_Reduice_Fields_result(new_data2); } else { setGetall_Partner_Class_Reduice_Fields_api("false"); setGetall_Partner_Class_Reduice_Fields_message(res.data.message); alert(res.data.message); } }).catch((error) => { console.warn('Not good man :( Getall_Partner_Class_Reduice_Fields = ', error); setGetall_Partner_Class_Reduice_Fields_api("false"); alert(" Impossible de recuperer la liste des formations"); //setmyApimyApiMessage("") }) } const [New_Getall_Partner_Groupe_Inscrit_result, setNew_Getall_Partner_Groupe_Inscrit_result] = useState([]); const [Getall_Partner_Groupe_Inscrit_api, setGetall_Partner_Groupe_Inscrit_api] = useState(); const [Getall_Partner_Groupe_Inscrit_message, setGetall_Partner_Groupe_Inscrit_message] = useState(); const [Getall_Partner_Groupe_Inscrit_result, setGetall_Partner_Groupe_Inscrit_result] = useState([]); function Getall_Partner_Groupe_Inscrit(event) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Groupe_Inscrit_With_Filter/"; axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In Getall_Partner_Groupe_Inscrit res.data.status = " + res.data.status); //console.log(" In Getall_Partner_Groupe_Inscrit res.data.message r_class = " + res.data.message); setGetall_Partner_Groupe_Inscrit_api("true"); setGetall_Partner_Groupe_Inscrit_result(res.data.message); var new_data2 = []; const new_data = res.data.message.map((x) => { //--- var localid = JSON.parse(x).id; var local_id = JSON.parse(x)._id; var local_code = JSON.parse(x).code; var local_nom = JSON.parse(x).nom; var local_type_groupe_code = JSON.parse(x).type_groupe_code; var local_class_id = JSON.parse(x).class_id; var local_session_id = JSON.parse(x).session_id; //--- var node = { "_id": local_id, "id": localid, "label": local_code, "code": local_code, "nom": local_nom, "type_groupe_code": local_type_groupe_code, "class_id": local_class_id, "session_id": local_session_id, }; new_data2.push(node); }); //--- var node = { "_id": "", "id": "", "label": "", "code": "", "nom": "", "type_groupe_code": "", "class_id": "", "session_id": "", }; new_data2.push(node); if (new_data2.length > 0) setNew_Getall_Partner_Groupe_Inscrit_result(new_data2); } else { setGetall_Partner_Groupe_Inscrit_api("false"); setGetall_Partner_Groupe_Inscrit_message(res.data.message); alert(res.data.message); } }).catch((error) => { console.warn('Not good man :( Getall_Partner_Groupe_Inscrit = ', error); setGetall_Partner_Groupe_Inscrit_api("false"); alert(" Impossible de recuperer la liste des groupes d'inscrits"); //setmyApimyApiMessage("") }) } useEffect(() => { Getall_Partner_Class_Reduice_Fields(); Getall_Partner_Session_Reduice_Fields(); Getall_Groupe_Apprenant_Type(); Getall_Partner_Groupe_Inscrit(); window.scrollTo({ top: 0, behavior: "smooth", }); }, []) const myRef_head = useRef(null); const myRef = useRef(null) const sleep = (milliseconds) => { return new Promise(resolve => setTimeout(resolve, milliseconds)) } function Enable_Grp_Apprenant_DetailFields() { setgrp_apprenant_data_edit_mode("1"); var liste_champs = ['detail_code', 'detail_nom', 'detail_description', 'detail_classe', 'detail_type_grp', 'detail_ftion', 'detail_nom'] for (let i = 0; i < liste_champs.length; i++) { if (document.getElementsByName(String(liste_champs[i])) && document.getElementsByName(String(liste_champs[i]))[0]) { document.getElementsByName(String(liste_champs[i]))[0].disabled = false; document.getElementsByName(String(liste_champs[i]))[0].style.backgroundColor = "#FFFFFF"; } } } async function Disable_Grp_Apprenant_DetailFields() { await sleep(5); setgrp_apprenant_data_edit_mode("0"); var liste_champs = ['detail_code', 'detail_nom', 'detail_description', 'detail_classe', 'detail_type_grp', 'detail_ftion', 'detail_nom'] for (let i = 0; i < liste_champs.length; i++) { if (document.getElementsByName(String(liste_champs[i])) && document.getElementsByName(String(liste_champs[i]))[0]) { document.getElementsByName(String(liste_champs[i]))[0].disabled = true; document.getElementsByName(String(liste_champs[i]))[0].style.backgroundColor = "#ECEFF1"; } } } async function submenu_detail() { await sleep(5); setsubmenu("detail_groupe"); inactive_active_menu_header("detail_groupe"); if (String(grp_apprenant_data_edit_mode) !== "1") { Disable_Grp_Apprenant_DetailFields(); } } async function submenu_apprenant() { Getall_Groupe_Membres(selected_id); await sleep(5); setsubmenu("apprenant"); inactive_active_menu_header("apprenant"); } async function submenu_piece_jointe() { await sleep(5); setsubmenu("piece_jointe"); inactive_active_menu_header("piece_jointe"); // Refresh affichage des pièces jointes Get_List_Of_All_PJ(props.client_id); } async function submenu_selection() { await sleep(5); setsubmenu("selection"); inactive_active_menu_header("selection"); } // Cette fontion desactive tous les menu header et reactive just le menu_header concerné function inactive_active_menu_header(current_menu_header) { const list_menu_header_names = ['detail_groupe', 'apprenant', 'piece_jointe', 'selection',] for (let i = 0; i < list_menu_header_names.length; i++) { if (document.getElementsByName(String(list_menu_header_names[i])) && document.getElementsByName(String(list_menu_header_names[i]))[0]) { document.getElementsByName(String(list_menu_header_names[i]))[0].style.fontWeight = "400"; document.getElementsByName(String(list_menu_header_names[i]))[0].style.backgroundColor = "#d8edfc"; document.getElementsByName(String(list_menu_header_names[i]))[0].style.color = "#3b3e40"; } } if (document.getElementsByName(String(current_menu_header)) && document.getElementsByName(String(current_menu_header))[0]) { document.getElementsByName(String(current_menu_header))[0].style.fontWeight = "700"; document.getElementsByName(String(current_menu_header))[0].style.backgroundColor = "#104277"; document.getElementsByName(String(current_menu_header))[0].style.color = "white"; } } // -- Gestion pièces jointes const [Download_one_attached_document_api, setDownload_one_attached_document_api] = useState(); const [Download_one_attached_document_result, setDownload_one_attached_document_result] = useState(); const [Download_one_attached_document_message, setDownload_one_attached_document_message] = useState(); const Download_one_attached_document = (event) => { const stored_cookie = getCookie('tokenmysypart'); var nom_fiche_detaillee = "Fiche_Detaillee.pdf"; var token = stored_cookie; var file_name = event.target.id; var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File/" + token + "/" + file_name; setLoading(true); axios.get(url, { responseType: 'blob', },) .then((res) => { setLoading(false); fileDownload(res.data, nom_fiche_detaillee); setDownload_one_attached_document_api("true"); }).catch((error) => { setLoading(false); console.error('Error:', error); setDownload_one_attached_document_api("false"); }); } const editorRef_competence = useRef(null); const [editorRef_competence_limite, seteditorRef_competence_limite] = useState(800); const [file_1_name, setfile_1_name] = useState(); const [sessions_file_change_1_api, setsessions_file_change_1_api] = useState(); const [sessions_file_change_1_result, setsessions_file_change_1_result] = useState(); const [sessions_file_change_1_message, setsessions_file_change_1_message] = useState(); const sessions_file_change_1 = event => { const fileUploaded = event.target.files[0]; let file_size = event.target.files[0].size; let file_type = event.target.files[0].type; console.log("file_size = ", file_size, " file_type = ", file_type); if (file_size > 10000000) { 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"); return; } setfile_1_name(event.target.files[0]); const formData = new FormData(); formData.append('File', fileUploaded); //formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA'); const stored_cookie = getCookie('tokenmysypart'); //formData.append("token", stored_cookie); //formData.append("class_internal_url", internal_url); //console.log("token = " + stored_cookie); return; }; const [file_2_name, setfile_2_name] = useState(); const [sessions_file_change_2_api, setsessions_file_change_2_api] = useState(); const [sessions_file_change_2_result, setsessions_file_change_2_result] = useState(); const [sessions_file_change_2_message, setsessions_file_change_2_message] = useState(); const sessions_file_change_2 = event => { const fileUploaded = event.target.files[0]; let file_size = event.target.files[0].size; let file_type = event.target.files[0].type; console.log("file_size = ", file_size, " file_type = ", file_type); if (file_size > 10000000) { 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"); return; } setfile_2_name(event.target.files[0]); const formData = new FormData(); formData.append('File', fileUploaded); //formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA'); const stored_cookie = getCookie('tokenmysypart'); //formData.append("token", stored_cookie); //formData.append("class_internal_url", internal_url); //console.log("token = " + stored_cookie); return; }; const [Record_All_PJ_api, setRecord_All_PJ_api] = useState(); const [Record_All_PJ_result, setRecord_All_PJ_result] = useState(); const [Record_All_PJ_message, setRecord_All_PJ_message] = useState(); function Record_All_PJ() { if (!p_detail_one_file_to_download_type_name) { alert(" Vous devez donner un nom à la pièce jointe"); return; } if (file_1_name && file_1_name.name) { //console.log(" ### Traitement de : ", file_1_name.name); const formData = new FormData(); formData.append('File', file_1_name); //formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA'); const stored_cookie = getCookie('tokenmysypart'); formData.append("token", stored_cookie); formData.append("file_business_object", p_detail_one_file_to_download_type_name); formData.append("file_name", file_1_name.name); formData.append("status", "0"); formData.append("object_owner_collection", "groupe_inscription"); formData.append("object_owner_id", selected_id); //formData.append("class_internal_url", internal_url); //console.log("token = " + stored_cookie); fetch( process.env.REACT_APP_API_URL + "myclass/api/Store_User_Downloaded_File/", { method: 'POST', body: formData, } ) .then((response) => response.json()) .then((result) => { //console.log(" ## result['status'] = ", result['status']) if (String(result['status']) === String("true")) { //console.log('Success:', result['message']); setRecord_All_PJ_result(result['message']); setRecord_All_PJ_api("true"); Get_List_Of_All_PJ(props.client_id); setfile_1_name(); setp_detail_one_file_to_download_type_name(); //GetCurrentClass_trainingsession(); alert(" La pièce jointe " + file_1_name.name + " a été bien enregistrée") } else { setRecord_All_PJ_message(result['message']); setRecord_All_PJ_api("false"); } }) .catch((error) => { console.error(' Record_All_PJ Error:', error); setRecord_All_PJ_api("false"); }); } if (file_2_name && file_2_name.name) { console.log(" ### Traitement de : ", file_2_name.name); } } const [Delete_one_attached_document_api, setDelete_one_attached_document_api] = useState(); const [Delete_one_attached_document_result, setDelete_one_attached_document_result] = useState(); const [Delete_one_attached_document_message, setDelete_one_attached_document_message] = useState(); const Delete_one_attached_document = (event) => { const stored_cookie = getCookie('tokenmysypart'); var formData = new FormData(); var nom_fiche_detaillee = "Fiche_Detaillee.pdf"; var file_name = event.target.id; formData.append("token", stored_cookie); formData.append("file_name", file_name); var url = process.env.REACT_APP_API_URL + "myclass/api/Delete_Stored_Downloaded_File/"; fetch( process.env.REACT_APP_API_URL + "myclass/api/Delete_Stored_Downloaded_File/", { method: 'POST', body: formData, } ) .then((response) => response.json()) .then((result) => { //console.log(" ## result['status'] = ", result['status']) if (String(result['status']) === String("true")) { //console.log('Success:', result['message']); setDelete_one_attached_document_result(result['message']); setDelete_one_attached_document_api("true"); Get_List_Of_All_PJ(props.client_id); alert(result['message']) } else { setDelete_one_attached_document_message(result['message']); setDelete_one_attached_document_api("false"); } }) .catch((error) => { console.error(' Record_All_PJ Error:', error); setDelete_one_attached_document_api("false"); alert(" Impossible de supprimer le document") }); } const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState(); const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState(); const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState(); function Get_List_Of_All_PJ(local_employee_id) { const formData = new FormData(); //formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA'); const stored_cookie = getCookie('tokenmysypart'); formData.append("token", stored_cookie); formData.append("object_owner_collection", "groupe_inscription"); formData.append("object_owner_id", selected_id); //formData.append("class_internal_url", internal_url); //console.log("token = " + stored_cookie); fetch( process.env.REACT_APP_API_URL + "myclass/api/Get_List_object_owner_collection_Stored_Files/", { method: 'POST', body: formData, } ) .then((response) => response.json()) .then((result) => { //console.log(" ## result['status'] = ", result['status']) if (String(result['status']) === String("true")) { //console.log('Message :', result['message']); setGet_List_Of_All_PJ_result(result['message']); setGet_List_Of_All_PJ_api("true"); } else { setGet_List_Of_All_PJ_message(result['message']); setGet_List_Of_All_PJ_api("false"); } }) .catch((error) => { console.error(' Get_List_Of_All_PJ Error:', error); setGet_List_Of_All_PJ_api("false"); }); } function Delete_file_1_name() { setfile_1_name(); } function Delete_file_2_name() { setfile_2_name(); } const [p_detail_one_file_to_download_type_name, setp_detail_one_file_to_download_type_name] = useState(); // -- end gestion pièces jointes function Ajout_1_grp_apprenant() { clear_DetailFieds(); setgrp_apprenant_data_edit_mode(""); setgrp_apprenant_data_changed(""); setdisplay_grp_apprenant(""); setselected_id(""); setgridline_id(""); setp_detail_color("#33b8ff") setadd_one_grp_apprenant("1"); setsubmenu("detail_groupe"); if (document.getElementById('myRef')) { // myRef.current.scrollIntoView({ behavior: "smooth" }); var divh = document.getElementById('myRef').offsetTop; window.scrollTo({ top: divh, behavior: "smooth", }); } } function Annule_Add_One_Evaluaton_DetailFields() { setgrp_apprenant_data_edit_mode(""); setgrp_apprenant_data_changed(""); setdisplay_grp_apprenant(""); setselected_id(""); setadd_one_grp_apprenant(""); setsubmenu(""); } const [New_Getall_Groupe_Apprenant_Type_result, setNew_Getall_Groupe_Apprenant_Type_result] = useState([]); const [Getall_Groupe_Apprenant_Type_api, setGetall_Groupe_Apprenant_Type_api] = useState(); const [Getall_Groupe_Apprenant_Type_message, setGetall_Groupe_Apprenant_Type_message] = useState(); const [Getall_Groupe_Apprenant_Type_result, setGetall_Groupe_Apprenant_Type_result] = useState(); function Getall_Groupe_Apprenant_Type(event) { var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Type_Groupe_Apprenant/"; axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In Getall_Groupe_Apprenant_Type res.data.status = " + res.data.status); //console.log(" In Getall_Groupe_Apprenant_Type res.data.message r_class = " + res.data.message); setGetall_Groupe_Apprenant_Type_api("true"); setGetall_Groupe_Apprenant_Type_result(res.data.message); setRows(res.data.message); var new_data2 = []; const new_data = res.data.message.map((x) => { //--- var localid = JSON.parse(x).id; var local_id = JSON.parse(x)._id; var local_code = JSON.parse(x).code; var local_description = JSON.parse(x).description; //--- var node = { "_id": local_id, "id": localid, "label": local_code + " - " + local_description, "code": local_code, "description": local_description, }; new_data2.push(node); }); //--- var node = { "_id": "", "id": "", "label": "", "code": "", "description": "", }; new_data2.push(node); if (new_data2.length > 0) setNew_Getall_Groupe_Apprenant_Type_result(new_data2); } else { setGetall_Groupe_Apprenant_Type_api("false"); setGetall_Groupe_Apprenant_Type_message(res.data.message); alert(res.data.message); } }).catch((error) => { console.warn('Not good man :( Getall_Groupe_Apprenant_Type = ', error); setGetall_Groupe_Apprenant_Type_api("false"); alert(" Impossible de recuperer la liste des type de groupe d'apprenants"); //setmyApimyApiMessage("") }) } const [GetAttendee_api, setGetAttendee_api] = useState(); const [GetAttendee_message, setGetAttendee_message] = useState(); const [GetAttendee_result, setGetAttendee_result] = useState(); function Get_Given_Groupe_Data(evaluation_id) { setgrp_apprenant_data_changed(""); setgrp_apprenant_data_edit_mode(""); var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("_id", evaluation_id); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Groupe_Inscrit_Data/"; setLoading(true); axios.post(myurl, form).then(res => { if (String(res.data.status) === "true") { setLoading(false); //console.log(" In Get_Given_Groupe_Data res.data.status = " + res.data.status); //console.log(" In Get_Given_Groupe_Data res.data.message r_class = " + res.data.message); setGetAttendee_api("true"); setGetAttendee_result(res.data.message); if (res.data.message.length > 0) { var mylocal_groupe = JSON.parse(res.data.message); if (mylocal_groupe.code) setp_detail_code(mylocal_groupe.code); else setp_detail_code(""); if (mylocal_groupe.nom) { setp_detail_nom(mylocal_groupe.nom); } else { setp_detail_nom(""); } if (mylocal_groupe.description) { setp_detail_description(mylocal_groupe.description); } else { setp_detail_description(""); } if (mylocal_groupe.color) { setp_detail_color(mylocal_groupe.color); } else { setp_detail_color(""); } if (mylocal_groupe.comment) { setp_detail_comment(mylocal_groupe.comment); } else { setp_detail_comment(""); } if (mylocal_groupe.class_id) { setp_detail_class_id(mylocal_groupe.class_id); } else { setp_detail_class_id(""); } if (mylocal_groupe.class_internal_url) { setp_detail_class_internal_url(mylocal_groupe.class_internal_url); } else { setp_detail_class_internal_url(""); } if (mylocal_groupe.type_groupe_code) { setp_detail_type_groupe_code(mylocal_groupe.type_groupe_code); } else { setp_detail_type_groupe_code(""); } if (mylocal_groupe.session_id) { setp_detail_session_id(mylocal_groupe.session_id); } else { setp_detail_session_id(""); } if (document.getElementById('myRef')) { var divh = document.getElementById('myRef').offsetTop; window.scrollTo({ top: divh, behavior: "smooth", }); } Disable_Grp_Apprenant_DetailFields(); } else { alert(" Aucune donnée recuperée"); } } else if (String(res.data.status) === String("Err_Connexion")) { alert('Erreur: ' + res.data.message); history.push("/Connexion"); } else { setLoading(false); setGetAttendee_api("false"); setGetAttendee_message(res.data.message); alert(res.data.message); } }).catch((error) => { console.warn('Not good man :( Get_Given_Groupe_Data = ', error); setGetAttendee_api("false"); alert(" Impossible de recuperer les données du groupe"); //setmyApimyApiMessage("") }) } function clean_all_filters() { setgridline_id(''); setp_filtre1(""); setp_filtre1_value(""); setp_filtre2(""); setp_filtre2_value(""); setp_filtre3(""); setp_filtre3_value(""); setp_filtre4(""); setp_filtre4_value(""); Getall_Partner_Groupe_Inscrit(); } function Annule_Groupe_DetailFields() { Get_Given_Groupe_Data(selected_id); setgrp_apprenant_data_changed(""); setgrp_apprenant_data_edit_mode(""); } const [p_detail_code, setp_detail_code] = React.useState(""); const [p_detail_nom, setp_detail_nom] = React.useState(""); const [p_detail_description, setp_detail_description] = React.useState(""); const [p_detail_comment, setp_detail_comment] = React.useState(""); const [p_detail_class_id, setp_detail_class_id] = React.useState(""); const [p_detail_class_internal_url, setp_detail_class_internal_url] = React.useState(""); const [p_detail_session_id, setp_detail_session_id] = React.useState(""); const [p_detail_type_groupe_code, setp_detail_type_groupe_code] = React.useState(""); const [p_detail_color, setp_detail_color] = React.useState("#33b8ff"); const [p_detail_nb_grp_auto, setp_detail_nb_grp_auto] = React.useState(""); const [p_detail_split_type_auto, setp_detail_split_type_auto] = React.useState(""); const [p_detail_class_id_auto, setp_detail_class_id_auto] = React.useState(""); const [p_detail_session_id_auto, setp_detail_session_id_auto] = React.useState(""); const [p_detail_class_internal_url_auto, setp_detail_class_internal_url_auto] = React.useState(""); const [p_detail_type_groupe_code_auto, setp_detail_type_groupe_code_auto] = React.useState(""); const [p_detail_split_racine, setp_detail_split_racine] = React.useState(""); function clear_DetailFieds() { setp_detail_code(""); setp_detail_nom(""); setp_detail_description(""); setp_detail_comment(""); setp_detail_class_id(""); setp_detail_session_id(""); setp_detail_type_groupe_code(""); setp_detail_color(""); } const [Add_Update_Grp_Apprenant_Data_api, setAdd_Update_Grp_Apprenant_Data_api] = useState(); const [Add_Update_Grp_Apprenant_Data_message, setAdd_Update_Grp_Apprenant_Data_message] = useState(); const [Add_Update_Grp_Apprenant_Data_result, setAdd_Update_Grp_Apprenant_Data_result] = useState(); function Add_Update_Grp_Apprenant_Data() { var form = new FormData(); //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("code", p_detail_code); form.append("nom", p_detail_nom); form.append("description", p_detail_description); form.append("type_groupe_code", p_detail_type_groupe_code); form.append("class_id", p_detail_class_id); form.append("session_id", p_detail_session_id); form.append("color", p_detail_color); var myurl = ""; if (selected_id && String(selected_id).length > 5) { form.append("_id", selected_id); myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Groupe_Inscrit/"; } else { myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Groupe_Inscrit/"; } setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Add_Update_Grp_Apprenant_Data res.data.status = " + res.data.status); //console.log(" In Add_Update_Grp_Apprenant_Data res.data.message r_class = " + res.data.message); setLoading(false); if (String(res.data.status) === String("true")) { setAdd_Update_Grp_Apprenant_Data_api("true"); setAdd_Update_Grp_Apprenant_Data_result(res.data.message); Disable_Grp_Apprenant_DetailFields(); setgrp_apprenant_data_changed(""); setgrp_apprenant_data_edit_mode(""); clear_DetailFieds(); handleClick_edit_evaluation_From_Line(gridline_id); if (selected_id && String(selected_id).length > 5) { Disable_Grp_Apprenant_DetailFields(); setgrp_apprenant_data_changed(""); setgrp_apprenant_data_edit_mode(""); setdisplay_grp_apprenant('1'); } else { Disable_Grp_Apprenant_DetailFields(); setgrp_apprenant_data_changed(""); setgrp_apprenant_data_edit_mode(""); setdisplay_grp_apprenant(""); setadd_one_grp_apprenant(""); setsubmenu(""); } Getall_Partner_Groupe_Inscrit(); alert(res.data.message); if (document.getElementById('myRef')) { // myRef.current.scrollIntoView({ behavior: "smooth" }); var divh = document.getElementById('myRef').offsetTop; window.scrollTo({ top: divh, behavior: "smooth", }); } } else { setAdd_Update_Grp_Apprenant_Data_api("false"); setAdd_Update_Grp_Apprenant_Data_message(res.data.message); alert(res.data.message); } }).catch((error) => { setLoading(false); console.log('UpdateStagiaireData : Not good man :( Add_Update_Grp_Apprenant_Data = ' + error); setAdd_Update_Grp_Apprenant_Data_api("false"); alert(" Impossible d'ajouter ou mettre à jour le groupe"); }) } function handleClick_edit_evaluation_From_Line(selected_row_id) { var line = JSON.parse(Getall_Partner_Groupe_Inscrit_result[selected_row_id]); setselected_id(line._id); setgridline_id(selected_row_id); Get_Given_Groupe_Data(line._id); setdisplay_grp_apprenant("1"); setadd_one_grp_apprenant(""); setgrp_apprenant_data_changed(""); setgrp_apprenant_data_edit_mode(""); submenu_detail(); //Getall_Evaluation_Participant_List(); } const [Getall_Partner_Groupe_Inscrit_With_Filter_api, setGetall_Partner_Groupe_Inscrit_With_Filter_api] = useState(); const [Getall_Partner_Groupe_Inscrit_With_Filter_message, setGetall_Partner_Groupe_Inscrit_With_Filter_message] = useState(); const [Getall_Partner_Groupe_Inscrit_With_Filter_result, setGetall_Partner_Groupe_Inscrit_With_Filter_result] = useState(); function Getall_Partner_Groupe_Inscrit_With_Filter(event) { var form = new FormData(); // Recuperation des parametres var filtre1 = p_filtre1; var filtre2 = p_filtre2; var filtre3 = p_filtre3; var filtre4 = p_filtre4; var filtre1_value = ""; var filtre2_value = ""; var filtre3_value = ""; var filtre4_value = ""; // Recuperation des valeurs de filtres if (p_filtre1_value) { filtre1_value = p_filtre1_value; form.append(filtre1, filtre1_value); } if (p_filtre2_value) { filtre2_value = p_filtre2_value; form.append(filtre2, filtre2_value); } if (p_filtre3_value) { filtre3_value = p_filtre3_value; form.append(filtre3, p_filtre3_value); } if (p_filtre4_value) { filtre4_value = p_filtre4_value; form.append(filtre4, p_filtre4_value); } const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Groupe_Inscrit_With_Filter/"; axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In Getall_Partner_Groupe_Inscrit_With_Filter res.data.status = " + res.data.status); //console.log(" In Getall_Partner_Groupe_Inscrit_With_Filter res.data.message r_class = " + res.data.message); setGetall_Partner_Groupe_Inscrit_With_Filter_api("true"); setGetall_Partner_Groupe_Inscrit_With_Filter_result(res.data.message); setGetall_Partner_Groupe_Inscrit_result(res.data.message); var new_data2 = []; const new_data = res.data.message.map((x) => { //--- var localid = JSON.parse(x).id; var local_id = JSON.parse(x)._id; var local_code = JSON.parse(x).code; var local_nom = JSON.parse(x).nom; var local_class_id = JSON.parse(x).class_id; var local_session_id = JSON.parse(x).session_id; var local_type_groupe_code = JSON.parse(x).type_groupe_code; //--- var node = { "_id": local_id, "id": localid, "label": local_code, "code": local_code, "nom": local_nom, "class_id": local_class_id, "session_id": local_session_id, "type_groupe_code": local_type_groupe_code, }; new_data2.push(node); }); //--- var node = { "_id": "", "id": "", "label": "", "code": "", "nom": "", "class_id": "", "session_id": "", "type_groupe_code": "", }; new_data2.push(node); if (new_data2.length > 0) setNew_Getall_Partner_Groupe_Inscrit_result(new_data2); } else { setGetall_Partner_Groupe_Inscrit_With_Filter_api("false"); setGetall_Partner_Groupe_Inscrit_With_Filter_message(res.data.message); } }).catch((error) => { console.warn('Not good man :( Getall_Partner_Groupe_Inscrit_With_Filter = ', error); setGetall_Partner_Groupe_Inscrit_With_Filter_api("false"); //setmyApimyApiMessage("") }) } const [New_Getall_Groupe_Membres_result, setNew_Getall_Groupe_Membres_result] = useState([]); const [Getall_Groupe_Membres_api, setGetall_Groupe_Membres_api] = useState(); const [Getall_Groupe_Membres_message, setGetall_Groupe_Membres_message] = useState(); const [Getall_Groupe_Membres_result, setGetall_Groupe_Membres_result] = useState([]); function Getall_Groupe_Membres(local_groupe_id) { var evalutaion_id = ""; var form = new FormData(); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("_id", local_groupe_id); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Groupe_Membres/"; axios.post(myurl, form).then(res => { if (String(res.data.status) === String("true")) { //console.log(" In Getall_Groupe_Membres res.data.status = " + res.data.status); //console.log(" In Getall_Groupe_Membres res.data.message r_class = " + res.data.message); setGetall_Groupe_Membres_api("true"); setGetall_Groupe_Membres_result(res.data.message); var new_data2 = []; const new_data = res.data.message.map((x) => { //--- var localid = JSON.parse(x).id; var local_id = JSON.parse(x)._id; var local_nom = JSON.parse(x).nom; var local_prenom = JSON.parse(x).prenom; var local_email = JSON.parse(x).email; var local_inscription_id = JSON.parse(x).inscription_id; //--- var node = { "_id": local_id, "id": localid, "label": local_nom, "nom": local_nom, "prenom": local_prenom, "email": local_email, "inscription_id": local_inscription_id, }; new_data2.push(node); }); if (new_data2) setNew_Getall_Groupe_Membres_result(new_data2); } else { setGetall_Groupe_Membres_api("false"); setGetall_Groupe_Membres_message(res.data.message); alert(res.data.message); } }).catch((error) => { console.warn('Not good man :( Getall_Groupe_Membres = ', error); setGetall_Groupe_Membres_api("false"); alert(" Impossible de recuperer la liste des membres du groupe"); //setmyApimyApiMessage("") }) } const [gridline_grp_member_id, setgridline_grp_member_id] = useState(""); function Export_Groupe_Membres_exel() { const stored_cookie = getCookie('tokenmysypart'); var nom_fichier_cmd = "export_notes.xlsx"; var url = process.env.REACT_APP_API_URL + "myclass/api/Export_To_Excel_List_Groupe_Membres/" + stored_cookie + "/" + selected_id + "/"; setLoading(true); axios.get(url, { responseType: 'blob', },) .then((res) => { setLoading(false); //console.log(" In Export_Dashbord_to_CSV res.data = " + res.data); if (String(res.data) === String("false")) { alert("Impossible d'exporter les membres (2) "); } else { fileDownload(res.data, nom_fichier_cmd) } }).catch((error) => { setLoading(false); console.error('Error:', error); alert(" Impossible d'exporter les membres ") }); setLoading(false); } function GetSelectedRows_Groupe_Membres_Ids() { var tab_tmp = [] for (var i = 0; i < selectionModel_grp_membre.length; i++) { //console.log(" ### selectionModel_insc[i] = ", selectionModel_insc[i]); var myid = parseInt(String(selectionModel_grp_membre[i])); //var line = JSON.parse(rowss[myid]); tab_tmp.push(myid); } return tab_tmp; } async function actionmass_grp_membre_Traitemet() { var liste_apprenant_id = GetSelectedRows_Groupe_Membres_Ids(); //console.log(" liste_preinscr_id = ", liste_preinscr_id); var tab_mongo_preins_ids = []; for (var i = 0; i < liste_apprenant_id.length; i++) { var line = Getall_Groupe_Membres_result[liste_apprenant_id[i]] var line_json = JSON.parse(line) //console.log(" line_json['prenom'] = ", line_json['prenom']); //console.log(" line_json['_id'] = ", line_json['_id']); tab_mongo_preins_ids.push(line_json['_id']) } if (String(actionmass_grp_membre_val) === String("delete_grp_membre")) { Delete_List_Membre_From_Groupe(tab_mongo_preins_ids); } } const [actionmass_grp_membre_val, setactionmass_grp_membre_val] = useState(""); const New_Option_grp_membre = [ { "id": "delete_grp_membre", "label": "Supprimer les membres", "value": "delete_grp_membre" }, { "id": "", "label": "", "value": "" }, ] const [Dialog_GRP_AUTOMATIC_message, setDialog_GRP_AUTOMATIC_message] = React.useState(false); const [Dialog_GRP_AUTOMATIC_open, setDialog_GRP_AUTOMATIC_open] = React.useState(false); const Dialog_GRP_AUTOMATIC_handleClose = () => { //alert(" Utiliser le bouton 'fermer' "); //setOpen(false); }; const Dialog_GRP_AUTOMATIC_handleClose_buton = () => { setDialog_GRP_AUTOMATIC_open(false); setp_detail_nb_grp_auto(""); setp_detail_split_type_auto(""); setp_detail_class_id_auto(""); setp_detail_session_id_auto(""); setp_detail_class_internal_url_auto(""); setp_detail_type_groupe_code_auto(""); setp_detail_split_racine(""); }; const New_Option_Groupe_By = [ { "id": "0", "label": "Ordre Alphabétique (nom)", "value": "0" }, { "id": "1", "label": "Aléatoire", "value": "1" }, { "id": "", "label": "", "value": "" }, ] const [Create_Automatic_Grp_api, setCreate_Automatic_Grp_api] = useState(); const [Create_Automatic_Grp_message, setCreate_Automatic_Grp_message] = useState(); const [Create_Automatic_Grp_result, setCreate_Automatic_Grp_result] = useState(); function Create_Automatic_Grp() { var form = new FormData(); //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("nb_groupe", p_detail_nb_grp_auto); form.append("split_type", p_detail_split_type_auto); form.append("type_groupe_code", p_detail_type_groupe_code_auto); form.append("class_id", p_detail_class_id_auto); form.append("session_id", p_detail_session_id_auto); form.append("racine", p_detail_split_racine); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Automatic_Creation_Groupe_Member_Inscrit/"; setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Create_Automatic_Grp res.data.status = " + res.data.status); //console.log(" In Create_Automatic_Grp res.data.message r_class = " + res.data.message); setLoading(false); if (String(res.data.status) === String("true")) { setCreate_Automatic_Grp_api("true"); setCreate_Automatic_Grp_result(res.data.message); Disable_Grp_Apprenant_DetailFields(); setgrp_apprenant_data_changed(""); setgrp_apprenant_data_edit_mode(""); setSelectionModel([]); clear_DetailFieds(); Dialog_GRP_AUTOMATIC_handleClose_buton(); Getall_Partner_Groupe_Inscrit(); alert(res.data.message); window.scrollTo({ top: 0, behavior: "smooth", }); } else { setCreate_Automatic_Grp_api("false"); setCreate_Automatic_Grp_message(res.data.message); alert(res.data.message); } }).catch((error) => { setLoading(false); console.log('UpdateStagiaireData : Not good man :( Create_Automatic_Grp = ' + error); setCreate_Automatic_Grp_api("false"); alert(" Impossible de créer les groupes "); }) } const [Automatic_Split_Membre_No_Grp_Creation_api, setAutomatic_Split_Membre_No_Grp_Creation_api] = useState(); const [Automatic_Split_Membre_No_Grp_Creation_message, setAutomatic_Split_Membre_No_Grp_Creation_message] = useState(); const [Automatic_Split_Membre_No_Grp_Creation_result, setAutomatic_Split_Membre_No_Grp_Creation_result] = useState(); function Automatic_Split_Membre_No_Grp_Creation() { var form = new FormData(); //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("split_type", p_detail_split_type_auto); form.append("class_id", p_detail_class_id_auto); form.append("session_id", p_detail_session_id_auto); form.append("type_groupe_code", p_detail_type_groupe_code_auto); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Automatic_Split_Member_Inscrit_To_Grps/"; setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Automatic_Split_Membre_No_Grp_Creation res.data.status = " + res.data.status); //console.log(" In Automatic_Split_Membre_No_Grp_Creation res.data.message r_class = " + res.data.message); setLoading(false); if (String(res.data.status) === String("true")) { setAutomatic_Split_Membre_No_Grp_Creation_api("true"); setAutomatic_Split_Membre_No_Grp_Creation_result(res.data.message); Disable_Grp_Apprenant_DetailFields(); setgrp_apprenant_data_changed(""); setgrp_apprenant_data_edit_mode(""); setSelectionModel([]); clear_DetailFieds(); Dialog_GRP_AUTOMATIC_handleClose_buton(); Getall_Partner_Groupe_Inscrit(); alert(res.data.message); window.scrollTo({ top: 0, behavior: "smooth", }); } else { setAutomatic_Split_Membre_No_Grp_Creation_api("false"); setAutomatic_Split_Membre_No_Grp_Creation_message(res.data.message); alert(res.data.message); } }).catch((error) => { setLoading(false); console.log('UpdateStagiaireData : Not good man :( Automatic_Split_Membre_No_Grp_Creation = ' + error); setAutomatic_Split_Membre_No_Grp_Creation_api("false"); alert(" Impossible de repartir les inscrits "); }) } const [actionmass_ftion_val, setactionmass_ftion_val] = useState(); const actionmass_ftion = (event) => { const value = event.target.value; if (String(value) === "supprimer") { setactionmass_ftion_val(value); } else { setactionmass_ftion_val(); } } const New_Option = [ { "id": "2", "label": "Supprimer", "value": "supprimer" }, ] async function actionmass_ftion_Traitemet() { var liste_grp_apprenant = GetSelectedRowsApprenantGrp(); if (String(actionmass_ftion_val) === String("supprimer")) { Delete_LIST_Grp(liste_grp_apprenant); } } const [Delete_LIST_Grp_api, setDelete_LIST_Grp_api] = useState(); const [Delete_LIST_Grp_message, setDelete_LIST_Grp_message] = useState(); const [Delete_LIST_Grp_result, setDelete_LIST_Grp_result] = useState(); function Delete_LIST_Grp(local_list_grp) { var form = new FormData(); //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); //console.log(" #### local_liste_session = ", local_liste_session) const stored_cookie = getCookie('tokenmysypart'); form.append("token", stored_cookie); form.append("_id", local_list_grp); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Groupe_Inscrit/"; setLoading(true); axios.post(myurl, form).then(res => { //console.log(" In Delete_LIST_Grp res.data.status = " + res.data.status); //console.log(" In Delete_LIST_Grp res.data.message r_class = " + res.data.message); setLoading(false); if (String(res.data.status) === String("true")) { setDelete_LIST_Grp_api("true"); setDelete_LIST_Grp_result(res.data.message); setselectionModel_grp_apprenant([]); setgridline_id(''); window.scrollTo({ top: 0, behavior: "smooth", }); Getall_Partner_Groupe_Inscrit(); alert(res.data.message); } else { setDelete_LIST_Grp_api("false"); setDelete_LIST_Grp_message(res.data.message); alert(res.data.message); } }).catch((error) => { setLoading(false); console.warn('Delete_LIST_Grp : Not good man :( mysearchtext = ' + error); setDelete_LIST_Grp_api("false"); alert(" Impossible de supprimer la liste des apprenants"); }) } function GetSelectedRowsApprenantGrp() { ///alert(" les lignes slected sont : " + selectionModel + " nb item = " + selectionModel.length); //const selectedRowsData = selectionModel.map((id) => rowss.find((row) => row.id === id)); //console.log(rowss[0]); var tab_tmp = [] for (var i = 0; i < selectionModel_grp_apprenant.length; i++) { var myid = parseInt(String(selectionModel_grp_apprenant[i])); var line = JSON.parse(Getall_Partner_Groupe_Inscrit_result[myid]); tab_tmp.push(line._id); //console.log(rowss[myid]['external_code']); } return tab_tmp; } const [submenu_grp_dialog, setsubmenu_grp_dialog] = useState("create"); function submenu_create_grp() { setsubmenu_grp_dialog("create"); } function submenu_update_grp_members() { setsubmenu_grp_dialog("update"); } const handleClose = () => { //setOpen(false); }; const [Dialog_GRP_COLOR_message, setDialog_GRP_COLOR_message] = React.useState(false); const [Dialog_GRP_COLOR_open, setDialog_GRP_COLOR_open] = React.useState(false); const Dialog_GRP_COLOR_handleClose = () => { //alert(" Utiliser le bouton 'fermer' "); //setOpen(false); }; const Dialog_GRP_COLOR_handleClose_buton = () => { setDialog_GRP_COLOR_open(false); }; return (
{isLoading &&
} {/*** Dialog pickup Color */} null} PaperProps={{ className: classes.paper, // Apply the paper style style: { overflowY: 'unset', position: 'absolute', //top: '5rem' }, }} hideBackdrop={true} disableScrollLock classes={{ paper: classes.dialog }} className="groupe_apprenant_dialog" > Choisir une couleur
Code couleur
{ setp_detail_color(color.hex); setgrp_apprenant_data_changed("1"); } } />
{/*** Fin ajout pickup Color */} {/*** Dialog GROUPE AUTOMATIC */} null} PaperProps={{ className: classes.paper, // Apply the paper style style: { overflowY: 'unset', position: 'absolute', //top: '5rem' }, }} hideBackdrop={true} disableScrollLock classes={{ paper: classes.dialog }} className="groupe_apprenant_dialog mysy_MuiPaper-root" > Création automatique des groupes {
}
Formation
{New_Getall_Partner_Class_Reduice_Fields_result && New_Getall_Partner_Class_Reduice_Fields_result.length > 0 && (data)._id === String(p_detail_class_id_auto))[0].label} onChange={(event, value) => { if (value && value._id) { setp_detail_class_id_auto(value._id); setp_detail_class_internal_url_auto(value.internal_url); setgrp_apprenant_data_changed("1"); } else { setp_detail_class_id_auto(""); setp_detail_class_internal_url_auto(""); setgrp_apprenant_data_changed("1"); } setp_detail_session_id(""); }} renderInput={(params) => } /> }
Classe
{New_Getall_Partner_Session_Reduice_Fields_result && New_Getall_Partner_Session_Reduice_Fields_result.length > 0 && (data).class_internal_url === String(p_detail_class_internal_url_auto))} value={New_Getall_Partner_Session_Reduice_Fields_result.filter((data) => (data)._id === String(p_detail_session_id_auto))[0].label} onChange={(event, value) => { if (value && value._id) { setp_detail_session_id_auto(value._id); setgrp_apprenant_data_changed("1"); } else { setp_detail_session_id_auto(""); setgrp_apprenant_data_changed("1"); } }} renderInput={(params) => } /> }
Type de Groupe
{New_Getall_Groupe_Apprenant_Type_result && New_Getall_Groupe_Apprenant_Type_result.length > 0 && (data).code === String(p_detail_type_groupe_code_auto))[0].label} onChange={(event, value) => { if (value && value.code) { setp_detail_type_groupe_code_auto(value.code); setgrp_apprenant_data_changed("1"); } else { setp_detail_type_groupe_code_auto(""); setgrp_apprenant_data_changed("1"); } }} renderInput={(params) => } /> }
Grouper les inscrits par { if (value.value) setp_detail_split_type_auto(value.value); else setp_detail_split_type_auto(""); }} renderInput={(params) => } />
{String(submenu_grp_dialog) === "create" &&
Nombre de Groupe { setp_detail_nb_grp_auto(e.target.value); } } />
Racine { setp_detail_split_racine(e.target.value); } } />
} {String(submenu_grp_dialog) === "update" &&
}
{String(submenu_grp_dialog) === "create" &&
} {String(submenu_grp_dialog) !== "create" && }
{/*** Fin ajout GROUPE AUTOMATIC */}

Les groupes d'apprenants

Utilisez les filtres !
{New_Option_Filter && New_Option_Filter.length > 0 && (data).value === String(p_filtre1))[0].label} options={New_Option_Filter} onChange={(event, value) => { if (value && value.value) { setp_filtre1(value.value); } }} renderInput={(params) => } />}
{p_filtre1 && { setp_filtre1_value(e.target.value); }} InputProps={{ endAdornment: ( { setp_filtre1_value(""); }} /> ), }} /> }
{p_filtre1 && } {p_filtre1 && }
{p_filtre2 &&
{New_Option_Filter && New_Option_Filter.length > 0 && (data).value === String(p_filtre2))[0].label} options={New_Option_Filter} onChange={(event, value) => { if (value && value.value) { setp_filtre2(value.value); } }} renderInput={(params) => } />}
{String(p_filtre2).length > 2 && setp_filtre2_value(e.target.value)} InputProps={{ endAdornment: ( { setp_filtre2_value(""); }} /> ), }} />}
{String(p_filtre2).length > 2 && } {String(p_filtre2).length > 2 && }
} {p_filtre3 &&
{New_Option_Filter && New_Option_Filter.length > 0 && (data).value === String(p_filtre3))[0].label} options={New_Option_Filter} onChange={(event, value) => { if (value && value.value) { setp_filtre3(value.value); } }} renderInput={(params) => } />}
{String(p_filtre3).length > 2 && setp_filtre3_value(e.target.value)} InputProps={{ endAdornment: ( { setp_filtre3_value(""); }} /> ), }} />}
{String(p_filtre2).length > 2 && } {String(p_filtre3).length > 2 && }
}

  { setselectionModel_grp_apprenant(newSelectionModel); /*if (newSelectionModel.length === 1) handleClick_edit_employee_From_Line(newSelectionModel);*/ if (newSelectionModel.length !== 1) { /* setsubmenu(); setdisplay_detail_employe(); setadd_One_Employee();*/ } }} selectionModel={selectionModel_grp_apprenant} localeText={frFR.components.MuiDataGrid.defaultProps.localeText} rows={Getall_Partner_Groupe_Inscrit_result.map((item, index) => ( { id: index, _id: JSON.parse(item)._id, code: JSON.parse(item).code, nom: JSON.parse(item).nom, type_groupe_code: JSON.parse(item).type_groupe_code, class_id: JSON.parse(item).class_id, session_id: JSON.parse(item).session_id, nb_membre: JSON.parse(item).nb_membre, } ))} columns={columns_grp_apprenant} pageSize={10} className="datagridclass" onRowDoubleClick={(newSelectionModel) => { setselected_id(newSelectionModel.row._id); setgridline_id(newSelectionModel.row.id); handleClick_edit_evaluation_From_Line(newSelectionModel.row.id); }} rowsPerPageOptions={[10]} disableSelectionOnClick components={{ Toolbar: GridToolbar, }} //sx={datagridSx} getCellClassName={(params) => { }} getRowClassName={(params) => { // Pour la gestion de la couleur de zone double cliquée if (String(params.row.id) === String(gridline_id)) { return 'line--statut--selected'; } else if (parseInt(String(params.row.id)) % 2 === 0) { return 'line--statut--pair'; } else if (parseInt(String(params.row.id)) % 2 !== 0) { return 'line--statut--impair'; } }} getEstimatedRowHeight={() => 200} getRowHeight={() => "auto"} sx={{ "& .MuiDataGrid-cellContent": { minHeight: 50, } }} />
{selectionModel_grp_apprenant && selectionModel_grp_apprenant.length >= 1 &&
  { if (value && value.value) { if (String(value.value) === "supprimer" || String(value.value) === "dupliquer" || String(value.value) === "exporter" || String(value.value) === "inscrire") { setactionmass_ftion_val(value.value); } else { setactionmass_ftion_val(); } } }} renderInput={(params) => } /> {actionmass_ftion_val && }
}
 
 
{selected_id && String(selected_id).length > 5 &&
} {String(submenu) === "detail_groupe" &&
{String(display_grp_apprenant) === "1" && String(add_one_grp_apprenant) !== "1" &&
{String(grp_apprenant_data_edit_mode) !== "1" &&
Code
Nom
Description
Formation
{New_Getall_Partner_Class_Reduice_Fields_result && New_Getall_Partner_Class_Reduice_Fields_result.length > 0 && (data)._id === String(p_detail_class_id))[0].label} />}
Classe
{New_Getall_Partner_Session_Reduice_Fields_result && New_Getall_Partner_Session_Reduice_Fields_result.length > 0 && (data)._id === String(p_detail_session_id))[0].label} />}
Type de Groupe
{New_Getall_Groupe_Apprenant_Type_result && New_Getall_Groupe_Apprenant_Type_result.length > 0 && (data).code === String(p_detail_type_groupe_code))[0].label} />}
Code couleur  
 
} {String(grp_apprenant_data_edit_mode) === "1" &&
Code
{ setp_detail_code(e.target.value); setgrp_apprenant_data_changed("1"); } } />
Nom
{ setp_detail_nom(e.target.value); setgrp_apprenant_data_changed("1"); } } />
Description
{ setp_detail_description(e.target.value); setgrp_apprenant_data_changed("1"); } } />
Formation
{New_Getall_Partner_Class_Reduice_Fields_result && New_Getall_Partner_Class_Reduice_Fields_result.length > 0 && (data)._id === String(p_detail_class_id))[0].label} onChange={(event, value) => { if (value && value._id) { setp_detail_class_id(value._id); setp_detail_class_internal_url(value.internal_url); setgrp_apprenant_data_changed("1"); } else { setp_detail_class_id(""); setp_detail_class_internal_url(""); setgrp_apprenant_data_changed("1"); } setp_detail_session_id(""); }} renderInput={(params) => } /> }
Classe
{New_Getall_Partner_Session_Reduice_Fields_result && New_Getall_Partner_Session_Reduice_Fields_result.length > 0 && (data).class_internal_url === String(p_detail_class_internal_url))} value={New_Getall_Partner_Session_Reduice_Fields_result.filter((data) => (data)._id === String(p_detail_session_id))[0].label} onChange={(event, value) => { if (value && value._id) { setp_detail_session_id(value._id); setgrp_apprenant_data_changed("1"); } else { setp_detail_session_id(""); setgrp_apprenant_data_changed("1"); } }} renderInput={(params) => } /> }
Type de Groupe
{New_Getall_Groupe_Apprenant_Type_result && New_Getall_Groupe_Apprenant_Type_result.length > 0 && (data).code === String(p_detail_type_groupe_code))[0].label} onChange={(event, value) => { if (value && value.code) { setp_detail_type_groupe_code(value.code); setgrp_apprenant_data_changed("1"); } else { setp_detail_type_groupe_code(""); setgrp_apprenant_data_changed("1"); } }} renderInput={(params) => } /> }
Code couleur  
 
 
}
 
{String(grp_apprenant_data_changed) === "1" && String(grp_apprenant_data_edit_mode) === "1" &&
/!\ Pensez à enregistrer les modifications
}
{String(grp_apprenant_data_changed) === "1" && String(grp_apprenant_data_edit_mode) === "1" &&
} {String(grp_apprenant_data_edit_mode) === "1" &&
}
{String(grp_apprenant_data_edit_mode) !== "1" &&
}
 
} {String(add_one_grp_apprenant) === "1" && String(display_grp_apprenant) !== "1" &&
Code
{ setp_detail_code(e.target.value); setgrp_apprenant_data_changed("1"); } } />
Nom
{ setp_detail_nom(e.target.value); setgrp_apprenant_data_changed("1"); } } />
Description
{ setp_detail_description(e.target.value); setgrp_apprenant_data_changed("1"); } } />
Formation
{New_Getall_Partner_Class_Reduice_Fields_result && New_Getall_Partner_Class_Reduice_Fields_result.length > 0 && (data)._id === String(p_detail_class_id))[0].label} onChange={(event, value) => { if (value && value._id) { setp_detail_class_id(value._id); setp_detail_class_internal_url(value.internal_url); setgrp_apprenant_data_changed("1"); } else { setp_detail_class_id(""); setp_detail_class_internal_url(""); setgrp_apprenant_data_changed("1"); } setp_detail_session_id(""); }} renderInput={(params) => } /> }
Classe
{New_Getall_Partner_Session_Reduice_Fields_result && New_Getall_Partner_Session_Reduice_Fields_result.length > 0 && (data).class_internal_url === String(p_detail_class_internal_url))} value={New_Getall_Partner_Session_Reduice_Fields_result.filter((data) => (data)._id === String(p_detail_session_id))[0].label} onChange={(event, value) => { if (value && value._id) { setp_detail_session_id(value._id); setgrp_apprenant_data_changed("1"); } else { setp_detail_session_id(""); setgrp_apprenant_data_changed("1"); } }} renderInput={(params) => } /> }
Type de Groupe
{New_Getall_Groupe_Apprenant_Type_result && New_Getall_Groupe_Apprenant_Type_result.length > 0 && (data).code === String(p_detail_type_groupe_code))[0].label} onChange={(event, value) => { if (value && value.code) { setp_detail_type_groupe_code(value.code); setgrp_apprenant_data_changed("1"); } else { setp_detail_type_groupe_code(""); setgrp_apprenant_data_changed("1"); } }} renderInput={(params) => } /> }
Code couleur  
 
 
 
}
} {String(submenu) === "piece_jointe" &&
{file_1_name && file_1_name.name && } {Record_All_PJ_api && String(Record_All_PJ_api) === "true" &&
Pièce jointe enregistrée
} {Record_All_PJ_api && String(Record_All_PJ_api) === "false" &&
{Record_All_PJ_message}
}
{file_1_name && file_1_name.name &&
} {Get_List_Of_All_PJ_result &&
Liste des pièces jointes
{Get_List_Of_All_PJ_result && Get_List_Of_All_PJ_result.map((val) => (
Supprimer } modal nested position="center center" > {close => (
MySy Information
{' '} En confirmant cette opération, la pièce jointe sera définitivement supprimée.
)}
))}
}
 
} {String(submenu) === "selection" &&
} {String(submenu) === "apprenant" &&

  { setselectionModel_grp_membre(newSelectionModel); /*if (newSelectionModel.length === 1) handleClick_edit_employee_From_Line(newSelectionModel);*/ if (newSelectionModel.length !== 1) { /* setsubmenu(); setdisplay_detail_employe(); setadd_One_Employee();*/ } }} selectionModel={selectionModel_grp_membre} localeText={frFR.components.MuiDataGrid.defaultProps.localeText} rows={New_Getall_Groupe_Membres_result.map((item, index) => ( { id: index, _id: (item)._id, nom: (item).nom, prenom: (item).prenom, email: (item).email, groupe: (item).groupe, } ))} columns={columns_grp_membre} pageSize={10} className="datagridclass" onRowDoubleClick={(newSelectionModel) => { /* setselected_id(newSelectionModel.row._id); setgridline_id(newSelectionModel.row.id); handleClick_edit_evaluation_From_Line(newSelectionModel.row.id); */ }} rowsPerPageOptions={[10]} disableSelectionOnClick components={{ Toolbar: GridToolbar, }} //sx={datagridSx} getCellClassName={(params) => { // Traitement de la cellule 'notes' if (String(params.field) === "note") { return 'cell--note'; } }} getRowClassName={(params) => { // Pour la gestion de la couleur de zone double cliquée //console.log(" ### params.row = ", params.row); if (String(params.row.id) === String(gridline_grp_member_id)) { return 'line--statut--selected'; } else if (parseInt(String(params.row.id)) % 2 === 0) { return 'line--statut--pair'; } else if (parseInt(String(params.row.id)) % 2 !== 0) { return 'line--statut--impair'; } }} getEstimatedRowHeight={() => 200} getRowHeight={() => "auto"} sx={{ "& .MuiDataGrid-cellContent": { minHeight: 50, } }} /> {selectionModel_grp_membre && selectionModel_grp_membre.length >= 1 &&
  { if (value && value.value) { if (String(value.value) === "delete_grp_membre") { setactionmass_grp_membre_val(value.value); } else { setactionmass_grp_membre_val(""); } } else { setactionmass_grp_membre_val(""); } }} renderInput={(params) => } />   {actionmass_grp_membre_val && String(actionmass_grp_membre_val).length > 1 && }
}
 
}
); } export default Groupe_Apprenant;