29/10/2025 - 22h
parent
3007151444
commit
7288b00f5a
13
src/App.js
13
src/App.js
|
|
@ -95,9 +95,13 @@ function App() {
|
|||
const New_Sign_Up_2025 = lazy(() => import("./pages/new_p_sign_up_2025"));
|
||||
const New_Sign_In_2025 = lazy(() => import("./pages/new_p_sign_in_2025"));
|
||||
const Student_Account = lazy(() => import("./pages/student_account"));
|
||||
const Account = lazy(() => import("./pages/account"));
|
||||
const Student_Planning = lazy(() => import("./pages/mon_ent_student_planning"));
|
||||
|
||||
|
||||
const Account = lazy(() => import("./pages/account"));
|
||||
const TestUrl = lazy(() => import("./pages/testurl"));
|
||||
const Mon_Ent_Student = lazy(() => import("./pages/mon_ent_student"));
|
||||
|
||||
const Mon_Intranet_Public = lazy(() => import("./pages/mon_intranet_public"));
|
||||
const Mon_Catalogue_Public = lazy(() => import("./pages/mon_catalogue_public"));
|
||||
const Recherche_new_v4 = lazy(() => import("./pages/recherche_new_v4"));
|
||||
|
|
@ -114,7 +118,7 @@ function App() {
|
|||
|
||||
const UpdateAttendeeList = lazy(() => import("./pages/updateattendeelist"));
|
||||
const SurveyDocument = lazy(() => import("./pages/surveydocument"));
|
||||
const SurveyDocument_Qr_Code = lazy(() => import("./pages/surveydocument_qr_code"));
|
||||
const SurveyDocument_Qr_Code = lazy(() => import("./pages/surveydocument_qr_code"));
|
||||
|
||||
const ESignDiplayDignedDocument = lazy(() => import("./pages/edigndiplaydigneddocument"));
|
||||
const ESign = lazy(() => import("./pages/eSigne"));
|
||||
|
|
@ -280,13 +284,13 @@ function App() {
|
|||
|
||||
<Route path="/qr_emargement/:session_id/:partner_owner_recid/:my_safe_token" exact component={Emarge_QR_Code} />
|
||||
|
||||
<Route path="/qr_survey_eval/:session_id/:survey_type/:qr_code_safe_token" exact component={Survey_Eval_QR_Code} />
|
||||
<Route path="/qr_survey_eval/:session_id/:survey_type/:qr_code_safe_token" exact component={Survey_Eval_QR_Code} />
|
||||
|
||||
<Route path="/E_Signature/:document_id" exact component={ESign} />
|
||||
<Route path="/E_Document/:document_id/:partner_owner_recid/:secret_key_signature" exact component={ESignDiplayDignedDocument} />
|
||||
|
||||
<Route path="/Survey/:survey_id/" exact component={SurveyDocument} />
|
||||
<Route path="/Survey/qrcode/:survey_id/" exact component={SurveyDocument_Qr_Code} />
|
||||
<Route path="/Survey/qrcode/:survey_id/" exact component={SurveyDocument_Qr_Code} />
|
||||
<Route path="/UpadateAttendeeList/:client_id/:session_id/:partner_owner_recid/" exact component={UpdateAttendeeList} />
|
||||
|
||||
<Route path="/automatic-quotation/:partner_owner_recid/:objid/" exact component={AutomaticQuotation} />
|
||||
|
|
@ -362,6 +366,7 @@ function App() {
|
|||
<Route path="/DeleteUserAccount/:token" exact component={DeleteUserAccount} />
|
||||
|
||||
<Route path="/mysy-student-account" exact component={Student_Account} />
|
||||
<Route path="/mysy-student-planning" exact component={Student_Planning} />
|
||||
|
||||
{/* Fin Migration */}
|
||||
|
||||
|
|
|
|||
|
|
@ -2800,7 +2800,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
</div>}
|
||||
|
||||
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) !== "1" && <div className="session_caract"><b> Bloc </b><br />
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) !== "1" && <div className="session_caract"><b> Bloc Format.</b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -2816,7 +2816,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
/>
|
||||
</div>}
|
||||
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) === "1" && <div className="session_caract"><b> Bloc </b><br />
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) === "1" && <div className="session_caract"><b> Bloc Format.</b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -2861,7 +2861,10 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" />
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>
|
||||
|
||||
|
|
@ -2885,7 +2888,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
/>
|
||||
|
||||
</div>}
|
||||
</div>}
|
||||
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) === "1" && <div>
|
||||
<div className="session_caract"> Compétences<br />
|
||||
|
|
@ -2939,13 +2942,13 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) === "1" && New_Get_List_Regle_Calcul_Note_UE_result && New_Get_List_Regle_Calcul_Note_UE_result.length > 0 &&
|
||||
<div className="session_caract"> Règle de calcul note
|
||||
<Tooltip className="tooltip_css" id="detail_regle_calcul2" />
|
||||
<Tooltip className="tooltip_css" id="detail_regle_calcul2" />
|
||||
<a data-tooltip-id="detail_regle_calcul2" data-tooltip-html={New_Get_List_Regle_Calcul_Note_UE_result.filter((data) => (data)._id === String(p_detail_note_ue_calculation_rule_id))[0].calcul_rule}>
|
||||
<FcInfo />
|
||||
</a>
|
||||
|
||||
|
||||
<br />
|
||||
|
||||
|
||||
<br />
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
name="detail_ue_note_ue_calculation_rule_id"
|
||||
|
|
@ -2964,7 +2967,10 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="Choisir" />
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>
|
||||
</div>}
|
||||
|
|
@ -3229,7 +3235,10 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" />
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>
|
||||
</a>
|
||||
|
|
@ -3455,7 +3464,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
|
||||
|
||||
<Button variant="contained" className="bton_enreg" onClick={Add_Update_UE_Data}>Enregistrer les modifications
|
||||
<Button variant="contained" className="bton_enreg" onClick={Add_Update_UE_Data}>Enregistrer
|
||||
</Button>
|
||||
|
||||
</div>
|
||||
|
|
@ -3777,7 +3786,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
|
||||
|
||||
<Button variant="contained" className="bton_enreg" onClick={Add_Update_UE_Data}>Enregistrer les modifications
|
||||
<Button variant="contained" className="bton_enreg" onClick={Add_Update_UE_Data}>Enregistrer
|
||||
</Button>
|
||||
|
||||
</div>
|
||||
|
|
@ -4031,7 +4040,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Bloc <br />
|
||||
<div className="session_caract"> Bloc Format.<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -4068,7 +4077,10 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" />
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>
|
||||
|
||||
|
|
@ -4119,7 +4131,10 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="Formule de calcul" />
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>}
|
||||
|
||||
|
|
@ -4238,7 +4253,10 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" />
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ const useStyles = makeStyles((theme) => ({
|
|||
// left: 10,
|
||||
top: 400
|
||||
},
|
||||
|
||||
|
||||
paper: {
|
||||
overflowY: 'unset',
|
||||
},
|
||||
|
|
@ -61,8 +61,13 @@ const ENT_Student_Header = () => {
|
|||
const [partnerconnected, setpartnerconnected] = useState("0");
|
||||
const stored_user = getCookie('tokenmysych');
|
||||
const stored_part = getCookie('tokenmysypart');
|
||||
const stored_apprenant_id = getCookie('tokenmysychapprenant');
|
||||
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych'], { path: '/' });
|
||||
const [partcookie, setpartCookie, removepartCookie] = useCookies(['tokenmysypart'], { path: '/' });
|
||||
|
||||
const [cookie_apprenant_id, setCookie_apprenant_id, removeCookie_apprenant_id] = useCookies(['tokenmysychapprenant'], { path: '/' });
|
||||
|
||||
const [PartnerMenu, setPartnerMenu] = React.useState(null);
|
||||
const [AccountMenu, setAccountMenu] = React.useState(null);
|
||||
const [ProduitMenu, setproduitMenu] = React.useState(null);
|
||||
|
|
@ -71,6 +76,7 @@ const ENT_Student_Header = () => {
|
|||
var local_user_connect = 0;
|
||||
var local_part_connect = 0;
|
||||
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
setuserconnected("0");
|
||||
local_user_connect = 0;
|
||||
|
|
@ -175,6 +181,10 @@ const ENT_Student_Header = () => {
|
|||
removeCookie("tokenmysych", { path: '/' });
|
||||
|
||||
|
||||
setCookie_apprenant_id("tokenmysychapprenant", "", { path: '/' });
|
||||
removeCookie_apprenant_id("tokenmysychapprenant", { path: '/' });
|
||||
|
||||
|
||||
}
|
||||
history.push("/ent_student");
|
||||
}
|
||||
|
|
@ -211,7 +221,7 @@ const ENT_Student_Header = () => {
|
|||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
|
||||
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title" >MySy Information</DialogTitle>
|
||||
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" >MySy Information</DialogTitle>
|
||||
<DialogContent className="DialogContent_width">
|
||||
<DialogContentText>
|
||||
Confirmez la deconnexion de l'ENT <br />
|
||||
|
|
@ -266,38 +276,23 @@ const ENT_Student_Header = () => {
|
|||
}} />
|
||||
|
||||
<nav className="menu-list">
|
||||
<a href="/apropos" className="menu-link">À propos</a>
|
||||
<a href="/fonctionnalites" className="menu-link">Fonctionnalités</a>
|
||||
<a href="#" className="menu-link">
|
||||
<nav onClick={(e) => {
|
||||
history.push("/tarif/#debut");
|
||||
// window.open("/tarif/#debut", "_self");
|
||||
}}>Tarifs </nav>
|
||||
</a>
|
||||
<a href="/Recherche-Article-formation" className="menu-link">Blog</a>
|
||||
<a href="/mysy-student-account" className="menu-link">Formations</a>
|
||||
<a href="/mysy-student-planning" className="menu-link">Planning</a>
|
||||
|
||||
<a href="/Recherche-Article-formation" className="menu-link">Notes</a>
|
||||
<div className="separator"></div>
|
||||
<a href="/marketplace" className="menu-link">Marketplace</a>
|
||||
<a href="/marketplace" className="menu-link">Documents</a>
|
||||
<div className="separator"></div>
|
||||
<a href="/marketplace" className="menu-link">Emails</a>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div className="cta-login">
|
||||
<div className="cta-buttons">
|
||||
<button className="btn btn-primary" onClick={(e) => {
|
||||
e.preventDefault();
|
||||
var date2 = new Date();
|
||||
const format2 = "YYYY-MM";
|
||||
var dateTime2 = moment(date2).format(format2);
|
||||
window.open(
|
||||
"https://calendly.com/mysytraining/demo-mysy-training-solution?month=" + String(dateTime2),
|
||||
'_blank'
|
||||
);
|
||||
}}>Réserver une démo</button>
|
||||
|
||||
</div>
|
||||
<div className="cta-buttons hide_on_mobile">
|
||||
{String(someoneconnected) !== String("1") && <button className="btn btn-secondary" onClick={handleAccountCreation}>Créer un compte</button>}
|
||||
|
||||
{String(someoneconnected) === String("1") && <button className="btn btn-secondary" onClick={handleAccountConnexion_v2}>Mon compte</button>}
|
||||
{String(someoneconnected) === String("1") && <button className="btn btn-primary" onClick={handleAccountConnexion_v2}>Mon compte</button>}
|
||||
|
||||
</div>
|
||||
<div className="separator hide_on_mobile"></div>
|
||||
|
|
|
|||
|
|
@ -20,10 +20,14 @@ function Module_Connexion_Ent_Student() {
|
|||
const [isconnected, setisconnected] = useState("");
|
||||
const [cookie_acces_right, setCookie_acces_right, removeCookie_acces_right] = useCookies(['mysy_user_access_right']);
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych'], { path: '/' });
|
||||
const [cookie_apprenant_id, setCookie_apprenant_id, removeCooki_apprenant_ide] = useCookies(['tokenmysychapprenant'], { path: '/' });
|
||||
const [cookie_part, setCookie_part, removeCookie_part] = useCookies(['tokenmysypart'], { path: '/' });
|
||||
const [retval, setretval] = useState("0");
|
||||
const [myApimyApiMessage, setmyApimyApiMessage] = useState("");
|
||||
const [initpasswd, setinitpasswd] = useState();
|
||||
|
||||
const [selected_apprenant_id, setselected_apprenant_id] = useState("");
|
||||
|
||||
const [result, setResult] = useState("");
|
||||
const [myApiResponse, setmyApiResponse] = useState("false");
|
||||
const url_login = process.env.REACT_APP_API_URL + "myclass/api/Ent_Student_login/";
|
||||
|
|
@ -131,12 +135,15 @@ function Module_Connexion_Ent_Student() {
|
|||
}
|
||||
).then((response) => response.json())
|
||||
.then((result) => {
|
||||
//console.log('Success:', result['message'], "result['status'] = ", result['status']);
|
||||
// console.log('Success:', result['message'], "result['status'] = ", result['status'], "result['apprenant_id'] = ", result['apprenant_id']);
|
||||
|
||||
var val = result['status'];
|
||||
|
||||
if (String(val) === String("true")) {
|
||||
setCookie("tokenmysych", result['message']);
|
||||
setCookie("tokenmysychapprenant", result['apprenant_id']);
|
||||
|
||||
setselected_apprenant_id(result['apprenant_id'])
|
||||
|
||||
// Verification vers quelle page les renvoyer
|
||||
if (obj === "training" && String(objid).length > 0) {
|
||||
|
|
@ -148,7 +155,8 @@ function Module_Connexion_Ent_Student() {
|
|||
history.push({
|
||||
pathname: "/mysy-student-account",
|
||||
state: {
|
||||
firstconnexion: String(result['firstconnexion'])
|
||||
firstconnexion: String(result['firstconnexion']),
|
||||
apprenant_id: String(result['apprenant_id'])
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -364,7 +372,7 @@ function Module_Connexion_Ent_Student() {
|
|||
setcurrentpawdvisible(false);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
return (
|
||||
<div style={{ width: "100%", float: "left" }}>
|
||||
|
||||
|
|
@ -377,16 +385,16 @@ function Module_Connexion_Ent_Student() {
|
|||
<div className="display_screen_600_901">
|
||||
|
||||
<div style={{ width: '100%', }}>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Bienvenue sur Espace Numérique de Travail </h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Bienvenue sur Espace Numérique de Travail </h3>
|
||||
</div>
|
||||
|
||||
<div style={{ width: '100%', }}>
|
||||
<div style={{ width: '100%', }}>
|
||||
|
||||
<div style={{ width: '50%', float: 'left' }}>
|
||||
<img src={ent_studend_img} style={{width:'100%'}}/>
|
||||
<div style={{ width: '50%', float: 'left' }}>
|
||||
<img src={ent_studend_img} style={{ width: '100%' }} />
|
||||
</div>
|
||||
|
||||
<div style={{ width: '50%', float: 'left', paddingTop:'2rem' }}>
|
||||
<div style={{ width: '50%', float: 'left', paddingTop: '2rem' }}>
|
||||
<div className="div_centre_master">
|
||||
<div className="div_centre_002">
|
||||
<Button variant="outlined" onClick={menu_user_account} className="signin_menu"
|
||||
|
|
|
|||
|
|
@ -642,10 +642,6 @@ registerLocale('fr', fr);
|
|||
setDialog_DIALOG_AGENDA_open(true);
|
||||
}
|
||||
|
||||
const Dialog_DIALOG_AGENDA_handleClose = () => {
|
||||
//alert(" Utiliser le bouton 'fermer' ");
|
||||
//setOpen(false);
|
||||
};
|
||||
|
||||
const Dialog_DIALOG_AGENDA_handleClose_buton = () => {
|
||||
setDialog_DIALOG_AGENDA_open(false);
|
||||
|
|
@ -1620,7 +1616,7 @@ registerLocale('fr', fr);
|
|||
|
||||
|
||||
return (
|
||||
<div className="module_ent_mes_formations" >
|
||||
<div className="module_ent_mes_formations" >
|
||||
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
|
|
|
|||
|
|
@ -73,6 +73,14 @@ import Paper from '@material-ui/core/Paper';
|
|||
import Draggable from 'react-draggable';
|
||||
import { IconButton } from '@material-ui/core';
|
||||
|
||||
|
||||
import FullCalendar from "@fullcalendar/react";
|
||||
import daygridPlugin from "@fullcalendar/daygrid";
|
||||
import interactionPlugin from "@fullcalendar/interaction";
|
||||
import timeGridPlugin from "@fullcalendar/timegrid";
|
||||
import allLocales from '@fullcalendar/core/locales-all';
|
||||
|
||||
|
||||
function PaperComponent(props) {
|
||||
return (
|
||||
<Draggable
|
||||
|
|
@ -105,12 +113,102 @@ const useStyles = makeStyles((theme) => ({
|
|||
}));
|
||||
|
||||
const Module_Ent_Mon_Planning = (props) => {
|
||||
registerLocale('fr', fr);
|
||||
registerLocale('fr', fr);
|
||||
const classes = useStyles();
|
||||
|
||||
const history = useHistory();
|
||||
const [submenu, setsubmenu] = useState("");
|
||||
|
||||
const handleSelect = (info) => {
|
||||
return;
|
||||
};
|
||||
|
||||
const handleEventClick = (arg) => {
|
||||
|
||||
//console.log(" ## ARG = ", arg.event)
|
||||
// console.log(" ## arg.event.id = ", arg.event.id)
|
||||
|
||||
setp_detail_sequence_title(arg.event.title)
|
||||
setsequence_startDate(arg.event.start)
|
||||
setsequence_endDate(arg.event.end)
|
||||
setp_detail_event_id(arg.event.id);
|
||||
|
||||
if (arg.event.extendedProps.type) {
|
||||
setp_detail_event_type(arg.event.extendedProps.type);
|
||||
}
|
||||
else
|
||||
setp_detail_event_type("");
|
||||
|
||||
|
||||
if (arg.event.extendedProps.local_comment) {
|
||||
setp_detail_sequence_comment(arg.event.extendedProps.local_comment);
|
||||
}
|
||||
else
|
||||
setp_detail_sequence_comment("");
|
||||
|
||||
|
||||
if (arg.event.extendedProps.local_mode_animation) {
|
||||
if (String(arg.event.extendedProps.local_mode_animation) === "1")
|
||||
setp_detail_mode_animation_label("Distanciel");
|
||||
else if (String(arg.event.extendedProps.local_mode_animation) === "2")
|
||||
setp_detail_mode_animation_label("Hybride");
|
||||
else if (String(arg.event.extendedProps.local_mode_animation) === "0")
|
||||
setp_detail_mode_animation_label("Présentiel");
|
||||
}
|
||||
else
|
||||
setp_detail_mode_animation_label("");
|
||||
|
||||
if (arg.event.extendedProps.local_objectif) {
|
||||
setp_detail_sequence_objectif(arg.event.extendedProps.local_objectif);
|
||||
}
|
||||
else
|
||||
setp_detail_sequence_objectif("");
|
||||
|
||||
if (arg.event.extendedProps._id) {
|
||||
setp_detail_event_id(arg.event.extendedProps._id);
|
||||
|
||||
}
|
||||
else
|
||||
setp_detail_event_id("");
|
||||
|
||||
|
||||
if (arg.event.extendedProps.local_agenda) {
|
||||
setp_detail_sequence_agenda(arg.event.extendedProps.local_agenda);
|
||||
|
||||
}
|
||||
else
|
||||
setp_detail_sequence_agenda("");
|
||||
|
||||
setDialog_DIALOG_AGENDA_open(true);
|
||||
}
|
||||
|
||||
const [p_detail_mode_animation_label, setp_detail_mode_animation_label] = useState("");
|
||||
|
||||
const [Partner_Debut_Journee, setPartner_Debut_Journee] = useState("7:00");
|
||||
const [Partner_Fin_Journee, setPartner_Fin_Journee] = useState("20:00");
|
||||
|
||||
const [p_detail_justified, setp_detail_justified] = useState(false);
|
||||
const [p_detail_event_type, setp_detail_event_type] = useState("");
|
||||
|
||||
const [p_detail_event_id, setp_detail_event_id] = useState();
|
||||
const [p_detail_sequence_title, setp_detail_sequence_title] = useState();
|
||||
const [p_detail_sequence_comment, setp_detail_sequence_comment] = useState();
|
||||
const [p_detail_sequence_agenda, setp_detail_sequence_agenda] = useState();
|
||||
const [p_detail_sequence_objectif, setp_detail_sequence_objectif] = useState();
|
||||
const [sequence_startDate, setsequence_startDate] = useState(new Date());
|
||||
const [sequence_endDate, setsequence_endDate] = useState(new Date());
|
||||
|
||||
const renderEventContent = (eventInfo) => {
|
||||
//console.log(eventInfo);
|
||||
return (
|
||||
<>
|
||||
<b>{eventInfo.timeText}</b><br />
|
||||
<i>{eventInfo.event.title}</i><br />
|
||||
{eventInfo.event.extendedProps.local_mode_animation && String(eventInfo.event.extendedProps.local_mode_animation) === "1" &&
|
||||
<i><b>Distanciel</b></i>}
|
||||
</>
|
||||
)
|
||||
};
|
||||
|
||||
|
||||
const filters = [
|
||||
|
|
@ -207,7 +305,7 @@ registerLocale('fr', fr);
|
|||
|
||||
<Button
|
||||
|
||||
onClick={(event) => {
|
||||
onClick={(event) => {
|
||||
//handleClick_edit_apprenant_From_Line(cellValues.row.id);
|
||||
}}
|
||||
>
|
||||
|
|
@ -278,38 +376,321 @@ registerLocale('fr', fr);
|
|||
},
|
||||
]
|
||||
|
||||
const [isLoading, setLoading] = useState();
|
||||
const [isLoading, setLoading] = useState();
|
||||
|
||||
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("");
|
||||
|
||||
const [p_filtre1, setp_filtre1] = useState("");
|
||||
const [p_filtre1_value, setp_filtre1_value] = useState("");
|
||||
|
||||
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
|
||||
const [alert_message, setalert_message] = useState("");
|
||||
const [alert_type, setalert_type] = useState("");
|
||||
|
||||
function clear_alert_message() {
|
||||
setalert_message("");
|
||||
}
|
||||
function clear_alert_type() {
|
||||
setalert_type("");
|
||||
}
|
||||
|
||||
function clear_display_alert_mysy() {
|
||||
setdisplay_alert_mysy("");
|
||||
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("");
|
||||
|
||||
|
||||
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
|
||||
const [alert_message, setalert_message] = useState("");
|
||||
const [alert_type, setalert_type] = useState("");
|
||||
|
||||
function clear_alert_message() {
|
||||
setalert_message("");
|
||||
}
|
||||
function clear_alert_type() {
|
||||
setalert_type("");
|
||||
}
|
||||
|
||||
function clear_display_alert_mysy() {
|
||||
setdisplay_alert_mysy("");
|
||||
}
|
||||
|
||||
const [Get_Given_Class_Data_api, setGet_Given_Class_Data_api] = useState();
|
||||
const [Get_Given_Class_Data_message, setGet_Given_Class_Data_message] = useState();
|
||||
const [Get_Given_Class_Data_result, setGet_Given_Class_Data_result] = useState();
|
||||
function Get_Given_Class_Data(local_class_id) {
|
||||
|
||||
var form = new FormData();
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
form.append("class_id", local_class_id);
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_Ent_Student_Given_Class_From_Class_Id/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
// console.log(" In Get_Given_Class_Data res.data.status = " + res.data.status);
|
||||
// console.log(" In Get_Given_Class_Data res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setGet_Given_Class_Data_api("true");
|
||||
setGet_Given_Class_Data_result(res.data.message);
|
||||
|
||||
if (document.getElementById('myRef_detail')) {
|
||||
var divh = document.getElementById('myRef_detail').offsetTop;
|
||||
window.scrollTo({
|
||||
top: divh,
|
||||
behavior: "smooth",
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
else if (String(res.data.status) === String("Err_Connexion")) {
|
||||
alert('Erreur: ' + res.data.message);
|
||||
history.push("/ent_student");
|
||||
}
|
||||
else {
|
||||
setGet_Given_Class_Data_api("false");
|
||||
setGet_Given_Class_Data_message(res.data.message);
|
||||
alert('Erreur: ' + res.data.message);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Given_Class_Data = ', error);
|
||||
setGet_Given_Class_Data_api("false");
|
||||
alert('Erreur: Impossible les données de la formation');
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const [selected_session_id, setselected_session_id] = useState("");
|
||||
|
||||
const [Getall_Sequence_Of_Session_result_planning_view, setGetall_Sequence_Of_Session_result_planning_view] = useState([]);
|
||||
|
||||
const [Getall_Sequence_Of_Session_api, setGetall_Sequence_Of_Session_api] = useState();
|
||||
const [Getall_Sequence_Of_Session_message, setGetall_Sequence_Of_Session_message] = useState();
|
||||
const [Getall_Sequence_Of_Session_result, setGetall_Sequence_Of_Session_result] = useState();
|
||||
function Getall_Sequence_Of_Session(local_session_id) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
const stored_apprenant_id = getCookie('tokenmysychapprenant');
|
||||
|
||||
|
||||
|
||||
form.append("token", stored_cookie);
|
||||
form.append("apprenant_id", stored_apprenant_id);
|
||||
if (String(local_session_id).length > 3) {
|
||||
form.append("session_id", local_session_id);
|
||||
}
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_Session_Sequence_List/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
// console.log(" In Getall_Sequence_Of_Session res.data.status = " + res.data.status);
|
||||
// console.log(" In Getall_Sequence_Of_Session res.data.message r_class = " + res.data.message);
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
||||
// console.log(" In Getall_Sequence_Of_Session res.data.nb_sequence r_class = " + res.data.nb_sequence);
|
||||
setGetall_Sequence_Of_Session_api("true");
|
||||
setGetall_Sequence_Of_Session_result(res.data.message);
|
||||
|
||||
// console.log(" ##NB_Sequence iii = ", res.data.nb_sequence);
|
||||
|
||||
|
||||
var new_data2 = [];
|
||||
const new_data = res.data.message.map((x) => {
|
||||
|
||||
//---
|
||||
var localid = JSON.parse(x)._id; // on donne volontairement a l'id la valeur de '_id'
|
||||
var local_id = JSON.parse(x)._id;
|
||||
var local_title = JSON.parse(x).sequence_title;
|
||||
var local_start = new Date(moment(JSON.parse(x).sequence_start, "DD/MM/YYYY hh:mm"))
|
||||
var local_end = new Date(moment(JSON.parse(x).sequence_end, "DD/MM/YYYY hh:mm"))
|
||||
|
||||
|
||||
var local_agenda = JSON.parse(x).agenda;
|
||||
var local_objectif = JSON.parse(x).objectif;
|
||||
var local_session_id = JSON.parse(x).session_id;
|
||||
var local_session_comment = JSON.parse(x).commentaire;
|
||||
var local_mode_animation = JSON.parse(x).mode_animation;
|
||||
var local_session_color = "#3788d8";
|
||||
|
||||
|
||||
if (local_mode_animation === "1") {
|
||||
// sequence en distantiel, on va mettre un code couleur
|
||||
local_session_color = "#4ea860"
|
||||
}
|
||||
|
||||
|
||||
var local_type = JSON.parse(x).type;
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": localid,
|
||||
"id": localid,
|
||||
"title": local_title,
|
||||
"start": local_start,
|
||||
"end": local_end,
|
||||
"local_mode_animation": local_mode_animation,
|
||||
"local_agenda": local_agenda,
|
||||
"local_objectif": local_objectif,
|
||||
"local_comment": local_session_comment,
|
||||
"color": local_session_color,
|
||||
"type": local_type,
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
|
||||
});
|
||||
|
||||
if (new_data2.length > 0) {
|
||||
setGetall_Sequence_Of_Session_result_planning_view(new_data2);
|
||||
//console.log(" ### new_data2 = ", new_data2);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
setGetall_Sequence_Of_Session_api("false");
|
||||
setGetall_Sequence_Of_Session_message(res.data.message);
|
||||
// alert(res.data.message);
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("error");
|
||||
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Getall_Sequence_Of_Session = ', error);
|
||||
setGetall_Sequence_Of_Session_api("false");
|
||||
alert("Impossible de récuperer la liste des séquences")
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const [New_Get_List_Ent_Session_Promotion_result, setNew_Get_List_Ent_Session_Promotion_result] = useState([]);
|
||||
|
||||
const [Get_List_Ent_Session_Promotion_api, setGet_List_Ent_Session_Promotion_api] = useState();
|
||||
const [Get_List_Ent_Session_Promotion_message, setGet_List_Ent_Session_Promotion_message] = useState();
|
||||
const [Get_List_Ent_Session_Promotion_result, setGet_List_Ent_Session_Promotion_result] = useState();
|
||||
function Get_List_Ent_Session_Promotion(event) {
|
||||
|
||||
var form = new FormData();
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
const stored_apprenant_id = getCookie('tokenmysychapprenant');
|
||||
|
||||
form.append("token", stored_cookie);
|
||||
form.append("apprenant_id", stored_apprenant_id);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_List_Session_Promotion/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
//console.log(" In Get_List_Ent_Session_Promotion res.data.status = " + res.data.status);
|
||||
// console.log(" In Get_List_Ent_Session_Promotion res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setGet_List_Ent_Session_Promotion_api("true");
|
||||
setGet_List_Ent_Session_Promotion_result(res.data.message);
|
||||
|
||||
var new_data2 = [];
|
||||
const new_data = res.data.message.map((x) => {
|
||||
|
||||
//---
|
||||
var localid = JSON.parse(x).id;
|
||||
var inscription_id = JSON.parse(x).inscription_id;
|
||||
var session_id = JSON.parse(x).session_id;
|
||||
var session_code_session = JSON.parse(x).session_code_session;
|
||||
var session_titre = JSON.parse(x).session_titre;
|
||||
var session_date_du = JSON.parse(x).session_date_du;
|
||||
var session_date_au = JSON.parse(x).session_date_au;
|
||||
var class_id = JSON.parse(x).class_id;
|
||||
var class_title = JSON.parse(x).class_title;
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"id": localid,
|
||||
"label": session_code_session + " " + session_titre + " - " + session_date_du + " au " + session_date_au,
|
||||
"inscription_id": inscription_id,
|
||||
"session_id": session_id,
|
||||
"session_code_session": session_code_session,
|
||||
"session_titre": session_titre,
|
||||
"session_date_du": session_date_du,
|
||||
"session_date_au": session_date_au,
|
||||
"class_id": class_id,
|
||||
"class_title": class_title,
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
});
|
||||
|
||||
var node = {
|
||||
"id": "",
|
||||
"label": "",
|
||||
"inscription_id": "",
|
||||
"session_id": "",
|
||||
"session_code_session": "",
|
||||
"session_titre": "",
|
||||
"session_date_du": "",
|
||||
"session_date_au": "",
|
||||
"class_id": "",
|
||||
"class_title": "",
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
if (new_data2.length > 0)
|
||||
setNew_Get_List_Ent_Session_Promotion_result(new_data2);
|
||||
|
||||
}
|
||||
else if (String(res.data.status) === String("Err_Connexion")) {
|
||||
alert('Erreur: ' + res.data.message);
|
||||
history.push("/ent_student");
|
||||
}
|
||||
else {
|
||||
setGet_List_Ent_Session_Promotion_api("false");
|
||||
setGet_List_Ent_Session_Promotion_message(res.data.message);
|
||||
alert('Erreur: ' + res.data.message);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_List_Ent_Session_Promotion = ', error);
|
||||
setGet_List_Ent_Session_Promotion_api("false");
|
||||
alert('Erreur: Impossible de recuperer la liste des promotions et sessions');
|
||||
})
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
Getall_Sequence_Of_Session("");
|
||||
Get_List_Ent_Session_Promotion();
|
||||
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
behavior: "smooth",
|
||||
});
|
||||
|
||||
}, [props.apprenant_id])
|
||||
|
||||
|
||||
const [Dialog_DIALOG_AGENDA_message, setDialog_DIALOG_AGENDA_message] = React.useState(false);
|
||||
const [Dialog_DIALOG_AGENDA_open, setDialog_DIALOG_AGENDA_open] = React.useState(false);
|
||||
function Dialog_DIALOG_AGENDA_handle_change_participant_session(message) {
|
||||
setDialog_DIALOG_AGENDA_message(message);
|
||||
setDialog_DIALOG_AGENDA_open(true);
|
||||
}
|
||||
|
||||
|
||||
const Dialog_DIALOG_AGENDA_handleClose_buton = () => {
|
||||
setDialog_DIALOG_AGENDA_open(false);
|
||||
};
|
||||
|
||||
|
||||
return (
|
||||
<div className="module_ent_mon_planning">
|
||||
<div className="module_ent_mon_planning" style={{ width: '90%', maxWidth: '1500px', margin: 'auto' }}>
|
||||
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
|
|
@ -327,8 +708,219 @@ registerLocale('fr', fr);
|
|||
}
|
||||
{/*** FIN Affichage des messages d'alerte*/}
|
||||
|
||||
{/**** Dialogue pour AGENDA */}
|
||||
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Mes apprenants </h3>
|
||||
<Dialog
|
||||
open={Dialog_DIALOG_AGENDA_open}
|
||||
// onClose={Dialog_DIALOG_AGENDA_handleClose}
|
||||
|
||||
className="module_agenda"
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
|
||||
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
|
||||
|
||||
>
|
||||
|
||||
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" >MySy Information</DialogTitle>
|
||||
<DialogContent className="DialogContent_width">
|
||||
<DialogContentText>
|
||||
{Dialog_DIALOG_AGENDA_message}
|
||||
</DialogContentText>
|
||||
|
||||
<div className="session_caract_Dialog" >
|
||||
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
|
||||
|
||||
<nav style={{ "float": "right", "width": "65%" }}>
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_event_type"
|
||||
id="event_dialog_event_type"
|
||||
fullWidth
|
||||
value={p_detail_event_type}
|
||||
disabled={true}
|
||||
/>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog" >
|
||||
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Animation </nav>
|
||||
|
||||
<nav style={{ "float": "right", "width": "65%" }}>
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_event_type"
|
||||
id="event_dialog_event_type"
|
||||
fullWidth
|
||||
value={p_detail_mode_animation_label}
|
||||
disabled={true}
|
||||
/>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div className="session_caract_Dialog" > Titre
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_title"
|
||||
id="event_dialog_title"
|
||||
fullWidth
|
||||
value={p_detail_sequence_title}
|
||||
disabled={true}
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog" > Debut
|
||||
<DatePicker
|
||||
name="event_dialog_start"
|
||||
id="event_dialog_start"
|
||||
selected={sequence_startDate}
|
||||
className="disabled_style session_caract_Dialog_DatePicker"
|
||||
style={{ width: "99%" }}
|
||||
locale={'fr'}
|
||||
showTimeSelect
|
||||
timeFormat="HH:mm"
|
||||
timeIntervals={15}
|
||||
dateFormat="dd/MM/yyyy HH:mm"
|
||||
is24Hour
|
||||
readOnly={true}
|
||||
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog" > Fin
|
||||
<DatePicker
|
||||
name="event_dialog_end"
|
||||
id="event_dialog_end"
|
||||
selected={sequence_endDate}
|
||||
className="disabled_style session_caract_Dialog_DatePicker"
|
||||
style={{ width: "99%" }}
|
||||
locale={'fr'}
|
||||
showTimeSelect
|
||||
timeFormat="HH:mm"
|
||||
timeIntervals={15}
|
||||
dateFormat="dd/MM/yyyy HH:mm"
|
||||
is24Hour
|
||||
readOnly={true}
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog_comment_2_lines" > Agenda
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_agenda"
|
||||
id="event_dialog_agenda"
|
||||
fullWidth
|
||||
|
||||
multiline
|
||||
minRows={2}
|
||||
maxRows={2}
|
||||
rows={2}
|
||||
disabled={true}
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog_comment_2_lines" > Objectif
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_objectif"
|
||||
id="event_dialog_objectif"
|
||||
|
||||
fullWidth
|
||||
value={p_detail_sequence_objectif}
|
||||
multiline
|
||||
minRows={2}
|
||||
maxRows={2}
|
||||
rows={2}
|
||||
disabled={true}
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog_comment_2_lines" > Commentaire
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_comment"
|
||||
id="event_dialog_comment"
|
||||
|
||||
fullWidth
|
||||
value={p_detail_sequence_comment}
|
||||
multiline
|
||||
minRows={2}
|
||||
maxRows={2}
|
||||
rows={2}
|
||||
disabled={true}
|
||||
/>
|
||||
</div>
|
||||
</DialogContent>
|
||||
|
||||
|
||||
|
||||
<DialogActions>
|
||||
<IconButton
|
||||
autoFocus
|
||||
onClick={Dialog_DIALOG_AGENDA_handleClose_buton}
|
||||
color="primary"
|
||||
className={classes.customizedButton}
|
||||
>
|
||||
<CancelPresentationIcon />
|
||||
</IconButton>
|
||||
|
||||
<div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
|
||||
</div>
|
||||
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
|
||||
<Button onClick={Dialog_DIALOG_AGENDA_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</DialogActions>
|
||||
|
||||
</Dialog>
|
||||
|
||||
|
||||
{/*** fin dialogue pr agenda */}
|
||||
|
||||
|
||||
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> ENT Full Planning </h3>
|
||||
<div>
|
||||
<div className="titre1"> Utilisez les filtres !</div>
|
||||
<div className="div_row" style={{ "marginBottom": "5px" }}>
|
||||
|
|
@ -491,6 +1083,79 @@ registerLocale('fr', fr);
|
|||
</div>
|
||||
<br />
|
||||
|
||||
|
||||
<div className="session_caract_Dialog"> <b> Session / Promo </b><br />
|
||||
{New_Get_List_Ent_Session_Promotion_result && New_Get_List_Ent_Session_Promotion_result.length > 0 &&
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
name="finance_data_type_cout"
|
||||
id="finance_data_type_cout"
|
||||
|
||||
fullWidth
|
||||
|
||||
options={New_Get_List_Ent_Session_Promotion_result}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.session_id) {
|
||||
setselected_session_id(value.session_id);
|
||||
Getall_Sequence_Of_Session(value.session_id);
|
||||
} else {
|
||||
setselected_session_id("");
|
||||
Getall_Sequence_Of_Session("");
|
||||
}
|
||||
|
||||
}}
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{Getall_Sequence_Of_Session_result_planning_view && Getall_Sequence_Of_Session_result_planning_view.length > 0 && <div className="div_row">
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Planning </nav>
|
||||
<div className="div_row" style={{ "border": "None" }}></div>
|
||||
|
||||
|
||||
<div style={{ "width": "98%", "marginLeft": "5px", }}>
|
||||
<FullCalendar
|
||||
height={550}
|
||||
locales={allLocales}
|
||||
locale={'fr'}
|
||||
editable
|
||||
selectable
|
||||
//events={events}
|
||||
events={Getall_Sequence_Of_Session_result_planning_view}
|
||||
|
||||
select={handleSelect}
|
||||
headerToolbar={{
|
||||
start: "today prev next",
|
||||
center: "title",
|
||||
end: "dayGridMonth,timeGridWeek,timeGridDay",
|
||||
}}
|
||||
//eventContent={(info) => <EventItem info={info} />}
|
||||
//plugins={[timeGridPlugin]}
|
||||
plugins={[timeGridPlugin, daygridPlugin, interactionPlugin]}
|
||||
views={["dayGridMonth", "dayGridWeek", "dayGridDay"]}
|
||||
slotMinTime={Partner_Debut_Journee}
|
||||
slotMaxTime={Partner_Fin_Journee}
|
||||
scrollTime='08:00'
|
||||
displayEventEnd={true}
|
||||
eventContent={renderEventContent}
|
||||
eventClick={handleEventClick}
|
||||
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
|
||||
</div >
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ const useStyles = makeStyles((theme) => ({
|
|||
|
||||
|
||||
const Module_Session_Planification = (props) => {
|
||||
registerLocale('fr', fr);
|
||||
registerLocale('fr', fr);
|
||||
const classes = useStyles();
|
||||
|
||||
const history = useHistory();
|
||||
|
|
@ -626,6 +626,10 @@ registerLocale('fr', fr);
|
|||
const [p_detail_sequence_groupe_apprenant_id, setp_detail_sequence_groupe_apprenant_id] = useState("");
|
||||
const [p_detail_sequence_ue_id, setp_detail_sequence_ue_id] = useState("");
|
||||
|
||||
const [p_detail_sequence_ue_titre, setp_detail_sequence_ue_titre] = useState("");
|
||||
const [p_detail_sequence_ue_code, setp_detail_sequence_ue_code] = useState("");
|
||||
|
||||
|
||||
const [p_detail_sequence_ue_planif_line_id, setp_detail_sequence_ue_planif_line_id] = useState("");
|
||||
|
||||
|
||||
|
|
@ -649,11 +653,20 @@ registerLocale('fr', fr);
|
|||
// console.log(" TOTOTOTOTO ", eventInfo.event);
|
||||
return (
|
||||
<>
|
||||
<b>{eventInfo.timeText}</b><br />
|
||||
|
||||
{eventInfo.event.extendedProps.local_mode_animation && String(eventInfo.event.extendedProps.local_mode_animation) === "1" &&
|
||||
<i><b>{eventInfo.timeText} - Distanciel</b><br /></i>}
|
||||
|
||||
{eventInfo.event.extendedProps.local_mode_animation !== "1" &&
|
||||
<i><b>{eventInfo.timeText}</b><br /></i>}
|
||||
|
||||
<i>{eventInfo.event.title}</i><br />
|
||||
<i>{eventInfo.event.extendedProps.grp_code}</i>
|
||||
{eventInfo.event.extendedProps.local_mode_animation && String(eventInfo.event.extendedProps.local_mode_animation) === "1" &&
|
||||
<i><b>Distanciel</b></i>}
|
||||
|
||||
|
||||
|
||||
{eventInfo.event.extendedProps.local_ue_titre && eventInfo.event.extendedProps.local_ue_titre !== "" &&
|
||||
<i style={{ fontFamily: 'DM Sans', fontSize: '13px' }}><br />{eventInfo.event.extendedProps.local_ue_titre}</i>}
|
||||
|
||||
</>
|
||||
)
|
||||
|
|
@ -1549,6 +1562,9 @@ registerLocale('fr', fr);
|
|||
var local_session_type = JSON.parse(x).type;
|
||||
|
||||
var local_session_ue_id = JSON.parse(x).ue_id;
|
||||
var local_session_ue_titre = JSON.parse(x).ue_titre;
|
||||
var local_session_ue_code = JSON.parse(x).ue_code;
|
||||
|
||||
var local_session_grp_apprenant_id = JSON.parse(x).grp_apprenant_id;
|
||||
|
||||
var local_session_ue_planif_line_id = JSON.parse(x).unite_enseignement_planif_id;
|
||||
|
|
@ -1581,6 +1597,9 @@ registerLocale('fr', fr);
|
|||
"local_comment": local_session_comment,
|
||||
"local_type": local_session_type,
|
||||
"local_ue_id": local_session_ue_id,
|
||||
"local_ue_titre": local_session_ue_titre,
|
||||
"local_ue_code": local_session_ue_code,
|
||||
|
||||
"local_grp_apprenant_id": local_session_grp_apprenant_id,
|
||||
"local_ue_planif_line_id": local_session_ue_planif_line_id,
|
||||
|
||||
|
|
@ -1759,12 +1778,23 @@ registerLocale('fr', fr);
|
|||
var local_session_type = (x).type;
|
||||
|
||||
var local_session_ue_id = (x).ue_id;
|
||||
|
||||
var local_session_ue_titre = (x).ue_titre;
|
||||
var local_session_ue_code = (x).ue_code;
|
||||
|
||||
var local_session_grp_apprenant_id = (x).grp_apprenant_id;
|
||||
|
||||
var local_session_ue_planif_line_id = (x).unite_enseignement_planif_id;
|
||||
var local_session_color = (x).grp_apprenant_color;
|
||||
var local_session_grp_code = (x).grp_apprenant_code;
|
||||
|
||||
var local_mode_animation = (x).mode_animation;
|
||||
|
||||
// Si il n'y pas de relief avec le groupe d'apprenant, on va introduire un relief avec la notion de présentiel et distantiel
|
||||
if (local_mode_animation === "1") {
|
||||
// sequence en distantiel, on va mettre un code couleur
|
||||
local_session_color = "#4ea860"
|
||||
}
|
||||
|
||||
//---
|
||||
var node = {
|
||||
|
|
@ -1776,10 +1806,13 @@ registerLocale('fr', fr);
|
|||
"grp_code": local_session_grp_code,
|
||||
"color": local_session_color,
|
||||
"local_agenda": local_agenda,
|
||||
"local_mode_animation": local_mode_animation,
|
||||
"local_objectif": local_objectif,
|
||||
"local_comment": local_session_comment,
|
||||
"local_type": local_session_type,
|
||||
"local_ue_id": local_session_ue_id,
|
||||
"local_ue_titre": local_session_ue_titre,
|
||||
"local_ue_code": local_session_ue_code,
|
||||
"local_grp_apprenant_id": local_session_grp_apprenant_id,
|
||||
"local_ue_planif_line_id": local_session_ue_planif_line_id,
|
||||
|
||||
|
|
@ -1843,6 +1876,8 @@ registerLocale('fr', fr);
|
|||
setp_detail_sequence_ue_planif_line_id("");
|
||||
setp_detail_sequence_groupe_apprenant_id("");
|
||||
setp_detail_sequence_ue_id("");
|
||||
setp_detail_sequence_ue_titre("");
|
||||
setp_detail_sequence_ue_code("");
|
||||
seteu_planif_line_insdispo("");
|
||||
setp_detail_sequence_ue_planif_line_id("");
|
||||
setDialog_seq_1_open(false);
|
||||
|
|
@ -1895,6 +1930,8 @@ registerLocale('fr', fr);
|
|||
setp_detail_sequence_ue_planif_line_id("");
|
||||
setp_detail_sequence_groupe_apprenant_id("");
|
||||
setp_detail_sequence_ue_id("");
|
||||
setp_detail_sequence_ue_titre("");
|
||||
setp_detail_sequence_ue_code("");
|
||||
seteu_planif_line_insdispo("");
|
||||
setp_detail_sequence_ue_planif_line_id("");
|
||||
|
||||
|
|
@ -2416,9 +2453,24 @@ registerLocale('fr', fr);
|
|||
if (arg.event.extendedProps.local_ue_id) {
|
||||
setp_detail_sequence_ue_id(arg.event.extendedProps.local_ue_id);
|
||||
Get_List_Given_UE_Planif_lines(arg.event.extendedProps.local_ue_id);
|
||||
|
||||
if (arg.event.extendedProps.local_ue_titre) {
|
||||
setp_detail_sequence_ue_titre(arg.event.extendedProps.local_ue_titre);
|
||||
|
||||
}
|
||||
|
||||
if (arg.event.extendedProps.local_ue_code) {
|
||||
setp_detail_sequence_ue_code(arg.event.extendedProps.local_ue_code);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
setp_detail_sequence_ue_id("");
|
||||
setp_detail_sequence_ue_titre("");
|
||||
setp_detail_sequence_ue_code("");
|
||||
//---
|
||||
var node = {
|
||||
"_id": "",
|
||||
|
|
@ -3427,6 +3479,8 @@ registerLocale('fr', fr);
|
|||
|
||||
function Close_Dialog_RECORD_MODEL_PLANNING() {
|
||||
setDialog_RECORD_MODEL_PLANNING_open(false);
|
||||
setp_model_planning_code("");
|
||||
setp_model_planning_nom("");
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -3549,6 +3603,15 @@ registerLocale('fr', fr);
|
|||
|
||||
var title = x.title;
|
||||
|
||||
var local_mode_animation = "";
|
||||
if (x.local_mode_animation)
|
||||
local_mode_animation = x.local_mode_animation
|
||||
|
||||
|
||||
var local_volume_theorique = "";
|
||||
if (x.local_volume_theorique)
|
||||
local_volume_theorique = x.local_volume_theorique
|
||||
|
||||
|
||||
|
||||
var start = moment(x.start).format("DD/MM/YYYY HH:mm");
|
||||
|
|
@ -3565,7 +3628,8 @@ registerLocale('fr', fr);
|
|||
"grp_code": grp_code,
|
||||
"id": id,
|
||||
"local_agenda": local_agenda,
|
||||
|
||||
"local_volume_theorique": local_volume_theorique,
|
||||
"local_mode_animation": local_mode_animation,
|
||||
"local_agenda": local_agenda,
|
||||
"local_comment": local_comment,
|
||||
"local_grp_apprenant_id": local_grp_apprenant_id,
|
||||
|
|
@ -3651,7 +3715,7 @@ registerLocale('fr', fr);
|
|||
};
|
||||
|
||||
const myRef_choix_planning = useRef(null)
|
||||
const [position_h_choix_planning, setposition_h_choix_planning] = useState('1000');
|
||||
const [position_h_choix_planning, setposition_h_choix_planning] = useState('700');
|
||||
|
||||
|
||||
return (
|
||||
|
|
@ -6831,7 +6895,6 @@ registerLocale('fr', fr);
|
|||
|
||||
{display_view && String(display_view) === "planning" &&
|
||||
<div style={{ "border": "None" }}>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Affichage planning</h3>
|
||||
|
||||
|
||||
<div style={{ "width": "98%", "marginLeft": "5px", }} >
|
||||
|
|
@ -7006,9 +7069,13 @@ registerLocale('fr', fr);
|
|||
setplanning_model_new_application_date();
|
||||
if (String(action_modele_planning) === "gestion") {
|
||||
Getall_Partner_Modele_Planning();
|
||||
setplanning_model_new_application_date(SessionstartDate);
|
||||
setDialog_MODEL_PLANNING_open(true);
|
||||
} else if (String(action_modele_planning) === "record") {
|
||||
setp_model_planning_code("");
|
||||
setp_model_planning_nom("");
|
||||
setDialog_RECORD_MODEL_PLANNING_open(true);
|
||||
|
||||
}
|
||||
}}>
|
||||
<FcAcceptDatabase /> Traiter
|
||||
|
|
|
|||
|
|
@ -635,33 +635,7 @@ const Partner_Securite_Data = (props) => {
|
|||
</div>
|
||||
}
|
||||
|
||||
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 } }}>
|
||||
|
||||
{/*<FormControl sx={{ m: 1, width: '90%' }} size="small" className="texte_area_passwd">
|
||||
<Label>Mot de passe actuel</Label>
|
||||
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
|
||||
<OutlinedInput
|
||||
id="current_pwd"
|
||||
name="current_pwd"
|
||||
type={values.showPassword1 ? 'text' : 'password'}
|
||||
value={values.password1}
|
||||
onChange={handleChange1('password1')}
|
||||
endAdornment={
|
||||
<InputAdornment position="end">
|
||||
<IconButton
|
||||
aria-label="toggle password visibility"
|
||||
onClick={handleClickShowPassword_current_pwd}
|
||||
edge="end"
|
||||
>
|
||||
{currentpawdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
}
|
||||
|
||||
/>
|
||||
</FormControl>
|
||||
*/}
|
||||
|
||||
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 } }}>
|
||||
{<TextField
|
||||
id="current_pwd"
|
||||
name="current_pwd"
|
||||
|
|
@ -686,58 +660,8 @@ const Partner_Securite_Data = (props) => {
|
|||
|
||||
/>
|
||||
}
|
||||
{/* <TextField
|
||||
id="current_pwd_v2"
|
||||
name="current_pwd_v2"
|
||||
type={valuesPass1_v2.showPassword1_v2 ? 'text' : 'password'}
|
||||
value={valuesPass1_v2.password1_v2}
|
||||
label="New pwdddd"
|
||||
onChange={handleChange2_v2('password1')}
|
||||
sx={{ m: 1, width: '90%' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="end">
|
||||
<IconButton
|
||||
aria-label="toggle password visibility"
|
||||
onClick={handleClickShowPassword_current_pwd_v2}
|
||||
edge="end"
|
||||
>
|
||||
{currentpawdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
|
||||
|
||||
/> */}
|
||||
|
||||
|
||||
{/* <FormControl sx={{ m: 1, width: '90%' }} size="small" className="texte_area_passwd">
|
||||
<Label>Nouveau mot de passe</Label>
|
||||
<InputLabel htmlFor="outlined-adornment-password2"></InputLabel>
|
||||
<OutlinedInput
|
||||
id="new_pwd"
|
||||
name="new_pwd"
|
||||
type={values.showPassword ? 'text' : 'password'}
|
||||
value={values.password2}
|
||||
onChange={handleChange2('password2')}
|
||||
endAdornment={
|
||||
<InputAdornment position="end">
|
||||
<IconButton
|
||||
aria-label="toggle password visibility"
|
||||
onClick={handleClickShowPassword_new_pwd}
|
||||
edge="end"
|
||||
>
|
||||
{newpawdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
}
|
||||
|
||||
/>
|
||||
</FormControl> */}
|
||||
|
||||
|
||||
{<TextField
|
||||
|
||||
label="Nouveau mot de passe"
|
||||
id="new_pwd"
|
||||
name="new_pwd"
|
||||
|
|
@ -762,30 +686,7 @@ const Partner_Securite_Data = (props) => {
|
|||
/>
|
||||
}
|
||||
|
||||
{/*<FormControl sx={{ m: 1, width: '90%' }} size="small" className="texte_area_passwd">
|
||||
<Label>Confirmation du nouveau mot de passe</Label>
|
||||
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
|
||||
<OutlinedInput
|
||||
id="new_pwd_conf"
|
||||
name="new_pwd_conf"
|
||||
type={values.showPassword ? 'text' : 'password'}
|
||||
value={values.password3}
|
||||
onChange={handleChange3('password3')}
|
||||
endAdornment={
|
||||
<InputAdornment position="end">
|
||||
<IconButton
|
||||
aria-label="toggle password visibility"
|
||||
onClick={handleClickShowPassword_new_pwd_conf}
|
||||
onMouseDown={handleMouseDownPassword}
|
||||
edge="end"
|
||||
>
|
||||
{confpwdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
}
|
||||
|
||||
/>
|
||||
</FormControl> */}
|
||||
|
||||
|
||||
{<TextField
|
||||
|
||||
|
|
|
|||
|
|
@ -25,13 +25,15 @@ import Module_Ent_Mes_Documents from "./Module_Ent_Mes_Documents";
|
|||
import Module_Ent_Mon_Planning from "./Module_Ent_Mon_Planning";
|
||||
import Module_Ent_Mes_Formations from "./Module_Ent_Mes_Formations";
|
||||
import Module_Ent_Mes_Notes from "./Module_Ent_Mes_Notes";
|
||||
|
||||
|
||||
function Student_Account() {
|
||||
const [menu, setmenu] = useState("mes_formations");
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
|
||||
const [cookie_apprenant_id, setCookie_apprenant_id, removeCookie_apprenant_id] = useCookies(['tokenmysychapprenant']);
|
||||
const [result, setResult] = useState("");
|
||||
const [myApiResponse, setmyApiResponse] = useState("");
|
||||
const stored_user = getCookie('tokenmysych');
|
||||
const stored_apprenant_id = getCookie('tokenmysychapprenant');
|
||||
const history = useHistory();
|
||||
const [country_code, setcountry_code] = useState("");
|
||||
const [country_name, setcountry_name] = useState("");
|
||||
|
|
@ -139,6 +141,7 @@ function Student_Account() {
|
|||
/* si c'est une connexion partner qui est active */
|
||||
if (typeof (stored_user) != "undefined") {
|
||||
removeCookie('tokenmysych', { path: '/' });
|
||||
removeCookie_apprenant_id('tokenmysychapprenant', { path: '/' });
|
||||
history.push("/ent_student");
|
||||
}
|
||||
}
|
||||
|
|
@ -316,7 +319,7 @@ function Student_Account() {
|
|||
formData.append('File', selectedFile);
|
||||
formData.append("token", stored_user);
|
||||
formData.append("type", "user");
|
||||
// formData.append("apprenant_id", apprenant_id);
|
||||
// formData.append("apprenant_id", apprenant_id);
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/recordImage/",
|
||||
{
|
||||
|
|
@ -342,7 +345,6 @@ function Student_Account() {
|
|||
return (
|
||||
<div className="account" style={{ background: '#f4f4fb' }}>
|
||||
|
||||
|
||||
<Helmet>
|
||||
<title>Création compte MySy Trainig Technology</title>
|
||||
<meta name="description" content="Éditeur Français de logiciels pour organisme de formation. Avec solutions de E-Learning, gestion administrative et gestion relation client nous accompagnons les organismes de formation à réaliser l’audit QUALIOPI en toute sérénité. Nous sommes les moins cher du marché. Nous vous accompagnons automatiser vos process : inscription, évaluation, émargement (qr-code), Check-list QUALIOPI, Personnalisation et édition documents, Gestion formateurs, Catalogue formations personnalisé" />
|
||||
|
|
@ -361,54 +363,8 @@ function Student_Account() {
|
|||
<h1 className="h1_transparent">Intranet Apprenant - Connexion MySy Training Technology </h1>
|
||||
</div>
|
||||
<div>
|
||||
<div className="div_gauche">
|
||||
<div>
|
||||
<img class="img-responsive img_user" src={userimgprofil} align="center" alt="MySy Training profile image" />
|
||||
|
||||
{!isSelected && <div className="nonlable">
|
||||
<input type="file" id="files" accept="image/*" onChange={changeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} />
|
||||
<label for="files" className="label">Changer image</label>
|
||||
</div>}
|
||||
|
||||
{isSelected && <div className="nonlable">
|
||||
<Button variant="outlined" onClick={sendImage} >Enregistrer</Button>
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
<div className="nom_prenom"> {username && <b> {username} </b>}
|
||||
{!username && <b> xxxx </b>} </div>
|
||||
<hr className="my_hr" />
|
||||
|
||||
{/** Menu pour un utilisateur de type 'user'. Exemple, l'intranet du client d'un client */}
|
||||
|
||||
|
||||
|
||||
{/** Menu pour un utilisateur NON type 'user' exemple un apprenant */}
|
||||
{connected_user_data && connected_user_data.type &&
|
||||
String(connected_user_data.type) === "student" &&
|
||||
<div>
|
||||
|
||||
|
||||
<div className="sousmenu" onClick={displayPersoInfo}> INFORMATIONS PERSONNELLES</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={funct_menu_mes_formations}> MES FORMATIONS</div>
|
||||
<hr className="my_hr" />
|
||||
{/* <div className="sousmenu" onClick={funct_menu_mon_planning}> MON PLANNING</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={"displayProfil_Objectif"}> MES NOTES</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={"displayProfil_Objectif"}> MES DOCUMENTS</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Modules_Mes_Documents}> MODULE TOUS DOCUMENTS</div>
|
||||
<hr className="my_hr" />
|
||||
*/}
|
||||
|
||||
{/* <div className="sousmenu" onClick={deletemyaccount}> SUPPRIMER MON COMPTE</div>
|
||||
<hr className="my_hr" />*/}
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
<div className="div_droite" style={{ border: 'none' }}>
|
||||
<div className="div_row" style={{ border: 'none' }}>
|
||||
|
||||
{String(firstConnexion) === "1" &&
|
||||
<div className="div_droite firstConnexion">
|
||||
|
|
@ -431,11 +387,11 @@ function Student_Account() {
|
|||
|
||||
</div>}
|
||||
|
||||
{connected_user_data && connected_user_data.type &&
|
||||
<h3 style={{ fontFamily: 'DM Sans', textAlign: 'center' }}> Espace numérique de travail </h3>}
|
||||
{connected_user_data && connected_user_data.type &&
|
||||
<h3 style={{ fontFamily: 'DM Sans', textAlign: 'center' }}> Espace numérique de travail 28/10/2025</h3>}
|
||||
|
||||
|
||||
{String(menu) === String("affichage") && <UpdateUserInfo apprenant_id={apprenant_id}/>}
|
||||
{String(menu) === String("affichage") && <UpdateUserInfo apprenant_id={apprenant_id} />}
|
||||
|
||||
{String(menu) === String("recherche") && <UserHistoryRecherche />}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,460 @@
|
|||
import React, { useState, useEffect } from "react";
|
||||
import UpdateUserInfo from "./UpdateUserInfo";
|
||||
import bannerimg from "../mysy_img/MYSY_banner_compte.png";
|
||||
import profileimg from "../mysy_img/MYSY-profil-2.png";
|
||||
import Button from '@mui/material/Button';
|
||||
import { useHistory } from "react-router-dom";
|
||||
|
||||
import UserHistoryRecherche from "./UserHistoryRecherche";
|
||||
import { confirmAlert } from 'react-confirm-alert'; // Import
|
||||
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
|
||||
import { Helmet } from "react-helmet";
|
||||
import { useCookies } from "react-cookie";
|
||||
import axios from "axios";
|
||||
import { getCookie, } from 'react-use-cookie';
|
||||
|
||||
import UpgradeToPro from "./UpgradeToPro"
|
||||
import Profil_Objectif from "./ProfilObjectif";
|
||||
import { useLocation } from "react-router-dom";
|
||||
import { FaHandPointRight } from "react-icons/fa";
|
||||
import Intranet_Factures_Client from "./Intranet_Factures_Client";
|
||||
import Intranet_Tous_Documents from "./Intranet_Tous_Documents";
|
||||
import Modules_Mes_Documents from "./Modules_Mes_Documents";
|
||||
import Intranet_Mes_Stagiaires from "./Intranet_Mes_Stagiaires";
|
||||
import Module_Ent_Mes_Documents from "./Module_Ent_Mes_Documents";
|
||||
import Module_Ent_Mon_Planning from "./Module_Ent_Mon_Planning";
|
||||
import Module_Ent_Mes_Formations from "./Module_Ent_Mes_Formations";
|
||||
import Module_Ent_Mes_Notes from "./Module_Ent_Mes_Notes";
|
||||
|
||||
function Student_Account_ORIG_28102025() {
|
||||
const [menu, setmenu] = useState("mes_formations");
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
|
||||
const [result, setResult] = useState("");
|
||||
const [myApiResponse, setmyApiResponse] = useState("");
|
||||
const stored_user = getCookie('tokenmysych');
|
||||
const history = useHistory();
|
||||
const [country_code, setcountry_code] = useState("");
|
||||
const [country_name, setcountry_name] = useState("");
|
||||
const [city, setcity] = useState("");
|
||||
const [postal, setpostal] = useState("");
|
||||
const [latitude, setlatitude] = useState("");
|
||||
const [longitude, setlongitude] = useState("");
|
||||
const [IPv4, setIPv4] = useState("");
|
||||
const [state, setstate] = useState("");
|
||||
const [userimgprofil, setuserimgprofil] = useState();
|
||||
const [userIp, setuserIp] = useState("");
|
||||
const [username, setusername] = useState("");
|
||||
const [migratedaccount, setmigratedaccount] = useState("0");
|
||||
|
||||
const apiUrl = process.env.REACT_APP_API_URL;
|
||||
const formData = new FormData();
|
||||
|
||||
//alert("stored_user = "+stored_user);
|
||||
const location = useLocation();
|
||||
useEffect(() => {
|
||||
|
||||
var list_menu = ["affichage", "recherche", "upgradecompte", "profil_objectif", "mes_factures", "mes_documents"]
|
||||
|
||||
// getImage();
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
//alert(" début puch");
|
||||
history.push("/ent_student");
|
||||
}
|
||||
|
||||
|
||||
async function fetchData() {
|
||||
const result = await axios('https://geolocation-db.com/json/',);
|
||||
//alert(result.data.IPv4);
|
||||
setuserIp(result.data.IPv4);
|
||||
setcountry_code(result.data.country_code);
|
||||
setcountry_name(result.data.country_name);
|
||||
setcity(result.data.city);
|
||||
setpostal(result.data.postal);
|
||||
setlatitude(result.data.latitude);
|
||||
setlongitude(result.data.longitude);
|
||||
setIPv4(result.data.IPv4);
|
||||
setstate(result.data.state);
|
||||
setuserIp(result.data.IPv4);
|
||||
}
|
||||
GetUserNameFromToken();
|
||||
|
||||
fetchData();
|
||||
|
||||
|
||||
if (location && location.state && location.state.menu) {
|
||||
// displayProfil_Objectif();
|
||||
}
|
||||
|
||||
if (location && location.state && location.state.firstconnexion) {
|
||||
setfirstConnexion(location.state.firstconnexion);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}, []);
|
||||
|
||||
const [myimage, setmyimage] = useState();
|
||||
const [isimage, setisimage] = useState();
|
||||
|
||||
function getImage(e) {
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/getRecodedImage/";
|
||||
var form = new FormData();
|
||||
form.append("token", stored_user);
|
||||
form.append("type", "user");
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
if (res.data.status != "False") {
|
||||
//console.log(" getImage : In test res.data.status = " + res.data.status);
|
||||
//console.log(" getImage: res.data.message.img = " + res.data.message);
|
||||
if (res.data.message.img.length > 0) {
|
||||
setisimage("True");
|
||||
}
|
||||
else {
|
||||
setisimage("False");
|
||||
}
|
||||
setmyimage(res.data.message.img);
|
||||
var ch_img = "data:image/png;base64," + res.data.message.img;
|
||||
setuserimgprofil(ch_img);
|
||||
}
|
||||
else {
|
||||
//console.log(" In Erreur res.data.status = " + res.data.status);
|
||||
//console.log(" In Erreur res.data.message = " + res.data.message);
|
||||
setisimage("False");
|
||||
setuserimgprofil(profileimg);
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.warn('Not good man :( mysearchtext = ');
|
||||
setisimage("False");
|
||||
setuserimgprofil(profileimg);
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const [firstConnexion, setfirstConnexion] = useState("");
|
||||
|
||||
|
||||
function logout_confirmation() {
|
||||
/* si c'est une connexion partner qui est active */
|
||||
if (typeof (stored_user) != "undefined") {
|
||||
removeCookie('tokenmysych', { path: '/' });
|
||||
history.push("/ent_student");
|
||||
}
|
||||
}
|
||||
|
||||
function logout() {
|
||||
confirmAlert({
|
||||
title: 'Deconnexion ?',
|
||||
message: 'Confirmez la deconnexion',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
onClick: () => logout_confirmation()
|
||||
},
|
||||
{
|
||||
label: 'Non',
|
||||
onClick: () => { return }
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
function funct_menu_mes_formations() {
|
||||
setmenu("mes_formations");
|
||||
}
|
||||
|
||||
function funct_menu_mon_planning() {
|
||||
setmenu("planning");
|
||||
}
|
||||
|
||||
const displayProfil_Modules_Mes_Documents = () => {
|
||||
setmenu("modules_mes_documents");
|
||||
};
|
||||
|
||||
const upgradetopro = () => {
|
||||
setmenu("upgradecompte");
|
||||
};
|
||||
|
||||
const displayPersoInfo = () => {
|
||||
setmenu("affichage");
|
||||
};
|
||||
|
||||
|
||||
|
||||
const [connected_user_data, setconnected_user_data] = useState();
|
||||
|
||||
function GetUserNameFromToken(event) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
form.append("token", stored_user);
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_user_account/";
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
// console.log(" In GetUserNameFromToken res.data.status = " + res.data.status);
|
||||
// console.log(" In GetUserNameFromToken res.data.message = " + res.data.message);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
||||
setusername(JSON.parse(res.data.message).email);
|
||||
|
||||
|
||||
if (JSON.parse(res.data.message).type && String(JSON.parse(res.data.message).type) === "student") {
|
||||
if (JSON.parse(res.data.message).apprenant_id) {
|
||||
setapprenant_id(JSON.parse(res.data.message).apprenant_id);
|
||||
}
|
||||
}
|
||||
|
||||
setconnected_user_data(JSON.parse(res.data.message));
|
||||
|
||||
}
|
||||
else {
|
||||
//console.log(" In GetUserNameFromToken res.data.status = " + res.data.status);
|
||||
//console.log(" In GetUserNameFromToken res.data.message = " + res.data.message);
|
||||
//setmyApiResponse("false");
|
||||
//setmyApimyApiMessage("")
|
||||
}
|
||||
|
||||
|
||||
}).catch((error) => {
|
||||
console.warn('In GetUserNameFromToken Not good man :( mysearchtext = ', error);
|
||||
//setmyApiResponse("false");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
function finaldeleteuseraccount(e) {
|
||||
|
||||
var form = new FormData();
|
||||
form.append("token", stored_user);
|
||||
// Ajout des info IP user
|
||||
form.append("user_ip", IPv4);
|
||||
form.append("user_country_code", country_code);
|
||||
form.append("user_country_name", country_name);
|
||||
form.append("user_city", city);
|
||||
form.append("user_postal", postal);
|
||||
form.append("user_latitude", latitude);
|
||||
form.append("user_longitude", longitude);
|
||||
form.append("user_state", state);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/send_mail_delete_user/";
|
||||
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
if (String(res.data.status) != String("false")) {
|
||||
//console.log(" In test res.data.status = " + res.data.status);
|
||||
//console.log(" In test res.data.message = " + res.data.message);
|
||||
setmyApiResponse("true");
|
||||
setResult(res.data.message)
|
||||
alert(res.data.message);
|
||||
|
||||
}
|
||||
else {
|
||||
//console.log(" In test res.data.status = " + res.data.status);
|
||||
//console.log(" In test res.data.message = " + res.data.message);
|
||||
setmyApiResponse("false");
|
||||
//setmyApimyApiMessage("")
|
||||
}
|
||||
|
||||
|
||||
}).catch((error) => {
|
||||
console.warn('Not good man :( mysearchtext = ');
|
||||
setmyApiResponse("false");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function deletemyaccount(e) {
|
||||
confirmAlert({
|
||||
title: 'Suppremier votre compte',
|
||||
message: 'Cette action va supprimer toutes vos données, Confirmez-vous la suppression du compte ?',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
onClick: () => finaldeleteuseraccount()
|
||||
},
|
||||
{
|
||||
label: 'Non',
|
||||
onClick: () => { return }
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
const [selectedFile, setSelectedFile] = useState();
|
||||
const [isSelected, setIsSelected] = useState(false);
|
||||
const [isnewimage, setisnewimage] = useState();
|
||||
|
||||
const [apprenant_id, setapprenant_id] = useState("");
|
||||
|
||||
|
||||
const changeHandler = (event) => {
|
||||
let file_size = event.target.files[0].size;
|
||||
|
||||
//or if you like to have name and type
|
||||
let file_name = event.target.files[0].name;
|
||||
let file_type = event.target.files[0].type;
|
||||
|
||||
|
||||
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
|
||||
if (file_size > 10000000) {
|
||||
alert("L'image doit faire moins de 100 Kilo Octets");
|
||||
return;
|
||||
}
|
||||
setSelectedFile(event.target.files[0]);
|
||||
setIsSelected(true);
|
||||
setuserimgprofil(URL.createObjectURL(event.target.files[0]));
|
||||
};
|
||||
|
||||
function sendImage(e) {
|
||||
formData.append('File', selectedFile);
|
||||
formData.append("token", stored_user);
|
||||
formData.append("type", "user");
|
||||
// formData.append("apprenant_id", apprenant_id);
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/recordImage/",
|
||||
{
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
}
|
||||
).then((response) => response.json())
|
||||
.then((result) => {
|
||||
//console.log('Success:', result['message']);
|
||||
setIsSelected(false);
|
||||
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Error:');
|
||||
setIsSelected(true);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return (
|
||||
<div className="account" style={{ background: '#f4f4fb' }}>
|
||||
|
||||
|
||||
<Helmet>
|
||||
<title>Création compte MySy Trainig Technology</title>
|
||||
<meta name="description" content="Éditeur Français de logiciels pour organisme de formation. Avec solutions de E-Learning, gestion administrative et gestion relation client nous accompagnons les organismes de formation à réaliser l’audit QUALIOPI en toute sérénité. Nous sommes les moins cher du marché. Nous vous accompagnons automatiser vos process : inscription, évaluation, émargement (qr-code), Check-list QUALIOPI, Personnalisation et édition documents, Gestion formateurs, Catalogue formations personnalisé" />
|
||||
<meta name="robots" content="index,follow" />
|
||||
<meta name="title" content="Création compte MySy Trainig Technology" />
|
||||
<link rel="canonical" href={window.location.href} />
|
||||
</Helmet>
|
||||
|
||||
<h1 style={{ fontSize: '0.1px', opacity: '0' }}>Éditeur Français de logiciels pour organisme de formation. Avec solutions de E-Learning, gestion administrative et gestion relation client nous accompagnons les organismes de formation à réaliser l’audit QUALIOPI en toute sérénité. Nous sommes les moins cher du marché. Nous vous accompagnons automatiser vos process : inscription, évaluation, émargement (qr-code), Check-list QUALIOPI, Personnalisation et édition documents,
|
||||
Gestion formateurs, Catalogue formations personnalisé </h1>
|
||||
|
||||
|
||||
|
||||
<div className="div_mobile">
|
||||
<div>
|
||||
<h1 className="h1_transparent">Intranet Apprenant - Connexion MySy Training Technology </h1>
|
||||
</div>
|
||||
<div>
|
||||
<div className="div_gauche">
|
||||
<div>
|
||||
<img class="img-responsive img_user" src={userimgprofil} align="center" alt="MySy Training profile image" />
|
||||
|
||||
{!isSelected && <div className="nonlable">
|
||||
<input type="file" id="files" accept="image/*" onChange={changeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} />
|
||||
<label for="files" className="label">Changer image</label>
|
||||
</div>}
|
||||
|
||||
{isSelected && <div className="nonlable">
|
||||
<Button variant="outlined" onClick={sendImage} >Enregistrer</Button>
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
<div className="nom_prenom"> {username && <b> {username} </b>}
|
||||
{!username && <b> xxxx </b>} </div>
|
||||
<hr className="my_hr" />
|
||||
|
||||
{/** Menu pour un utilisateur de type 'user'. Exemple, l'intranet du client d'un client */}
|
||||
|
||||
|
||||
|
||||
{/** Menu pour un utilisateur NON type 'user' exemple un apprenant */}
|
||||
{connected_user_data && connected_user_data.type &&
|
||||
String(connected_user_data.type) === "student" &&
|
||||
<div>
|
||||
|
||||
|
||||
<div className="sousmenu" onClick={displayPersoInfo}> INFORMATIONS PERSONNELLES</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={funct_menu_mes_formations}> MES FORMATIONS</div>
|
||||
<hr className="my_hr" />
|
||||
{/* <div className="sousmenu" onClick={funct_menu_mon_planning}> MON PLANNING</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={"displayProfil_Objectif"}> MES NOTES</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={"displayProfil_Objectif"}> MES DOCUMENTS</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Modules_Mes_Documents}> MODULE TOUS DOCUMENTS</div>
|
||||
<hr className="my_hr" />
|
||||
*/}
|
||||
|
||||
{/* <div className="sousmenu" onClick={deletemyaccount}> SUPPRIMER MON COMPTE</div>
|
||||
<hr className="my_hr" />*/}
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
<div className="div_droite" style={{ border: 'none' }}>
|
||||
|
||||
{String(firstConnexion) === "1" &&
|
||||
<div className="div_droite firstConnexion">
|
||||
<div className="firstConnexion_text">
|
||||
<b>Cher Utilisateur, c'est votre première connexion, </b> <br /> <br />
|
||||
Nous sommes ravis de vous accueillir. Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFORMATIONS"</i> ==> Pavé <i>"SECURITE"</i> puis <i>"MODIFIER"</i> <br /><br />
|
||||
<Button onClick={(e) => setfirstConnexion()} className="firstConnexion_bton"> <FaHandPointRight /> Fermer</Button><br />
|
||||
<br /> Merci.
|
||||
</div>
|
||||
|
||||
</div>}
|
||||
|
||||
{String(myApiResponse) === String("true") && <div className="okUpdateData">
|
||||
{result}
|
||||
|
||||
</div>}
|
||||
|
||||
{String(myApiResponse) !== String("true") && <div className="koUpdateData">
|
||||
{result}
|
||||
|
||||
</div>}
|
||||
|
||||
{connected_user_data && connected_user_data.type &&
|
||||
<h3 style={{ fontFamily: 'DM Sans', textAlign: 'center' }}> Espace numérique de travail laaa</h3>}
|
||||
|
||||
|
||||
{String(menu) === String("affichage") && <UpdateUserInfo apprenant_id={apprenant_id}/>}
|
||||
|
||||
{String(menu) === String("recherche") && <UserHistoryRecherche />}
|
||||
|
||||
{String(menu) === String("upgradecompte") && <UpgradeToPro />}
|
||||
|
||||
{String(menu) === String("profil_objectif") && <Profil_Objectif />}
|
||||
|
||||
{String(menu) === String("mes_formations") &&
|
||||
<Module_Ent_Mes_Formations apprenant_id={apprenant_id}
|
||||
/>}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default Student_Account_ORIG_28102025;
|
||||
|
||||
|
|
@ -171,17 +171,17 @@ function UpdateUserInfo(props) {
|
|||
}
|
||||
|
||||
if (mylocaltraining.mob_phone) {
|
||||
|
||||
|
||||
document.getElementsByName("mob_phone")[0].value = mylocaltraining.mob_phone;
|
||||
document.getElementsByName("mob_phone")[0].disabled = true;
|
||||
document.getElementsByName("mob_phone")[0].style.backgroundColor = "#ECEFF1";
|
||||
|
||||
|
||||
} else {
|
||||
document.getElementsByName("mob_phone")[0].value = "";
|
||||
document.getElementsByName("mob_phone")[0].disabled = true;
|
||||
document.getElementsByName("mob_phone")[0].style.backgroundColor = "#ECEFF1";
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (mylocaltraining.link_linkedin) {
|
||||
document.getElementsByName("link_linkedin")[0].value = mylocaltraining.link_linkedin;
|
||||
|
|
@ -232,7 +232,7 @@ function UpdateUserInfo(props) {
|
|||
document.getElementsByName("last_name")[0].disabled = true;
|
||||
document.getElementsByName("last_name")[0].style.backgroundColor = "#ECEFF1";
|
||||
}
|
||||
|
||||
|
||||
|
||||
desablefield1();
|
||||
|
||||
|
|
@ -725,7 +725,7 @@ function UpdateUserInfo(props) {
|
|||
/>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div className="session_caract"> <b> LinkedIn </b> <br />
|
||||
<TextField
|
||||
|
|
@ -915,187 +915,15 @@ function UpdateUserInfo(props) {
|
|||
</div>
|
||||
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
|
||||
|
||||
{/* <TextField
|
||||
required
|
||||
label="Nom"
|
||||
name="last_name"
|
||||
className="texte_area"
|
||||
sx={{ m: 1, width: '48%', fontFamily: 'DM Sans' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<AccountCircle />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
|
||||
|
||||
<TextField
|
||||
name="surname"
|
||||
label="Prénom"
|
||||
className="texte_area"
|
||||
sx={{ m: 1, width: '48%', fontFamily: 'DM Sans' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<AccountCircle />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
<br />
|
||||
|
||||
<TextField
|
||||
name="mob_phone"
|
||||
label="Téléphone"
|
||||
className="texte_area"
|
||||
sx={{ m: 1, width: '48%' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<PhoneIcon />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
|
||||
|
||||
<TextField
|
||||
name="mail"
|
||||
className="texte_area"
|
||||
label="Adresse mail"
|
||||
sx={{ m: 1, width: '48%' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<EmailIcon />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
<br />
|
||||
|
||||
<TextField
|
||||
name="link_linkedin"
|
||||
label="LinkedIn"
|
||||
className="texte_area"
|
||||
sx={{ m: 1, width: '48%' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<LinkedInIcon />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
|
||||
|
||||
<TextField
|
||||
name="link_facebook"
|
||||
label="Facebook"
|
||||
className="texte_area"
|
||||
sx={{ m: 1, width: '48%' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<FacebookIcon />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
|
||||
|
||||
<TextField
|
||||
name="link_twitter"
|
||||
label="Twitter"
|
||||
className="texte_area"
|
||||
sx={{ m: 1, width: '48%' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<TwitterIcon />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
<br />
|
||||
<TextField
|
||||
name="adr_street"
|
||||
label="Adresse"
|
||||
className="texte_area_adress"
|
||||
sx={{ m: 1, width: '90%' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<HomeIcon />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
<br />
|
||||
<TextField
|
||||
className="texte_area"
|
||||
name="adr_zip"
|
||||
label="Code Postal"
|
||||
sx={{ m: 1, width: '48%' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<HomeIcon />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
|
||||
<TextField
|
||||
className="texte_area"
|
||||
name="adr_city"
|
||||
label="Ville"
|
||||
sx={{ m: 1, width: '48%' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<HomeIcon />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
<br />
|
||||
|
||||
<TextField
|
||||
className="texte_area"
|
||||
name="adr_country"
|
||||
label="Pays"
|
||||
sx={{ m: 1, width: '48%' }}
|
||||
InputProps={{
|
||||
startAdornment: (
|
||||
<InputAdornment position="start">
|
||||
<HomeIcon />
|
||||
</InputAdornment>
|
||||
),
|
||||
}}
|
||||
variant="standard"
|
||||
/>
|
||||
<br />*/}
|
||||
|
||||
<div className="div_row22">
|
||||
{fields1desabled == false && <div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={RecordData}>Enregistrer</Button>
|
||||
<div className="div_row_gauche" style={{ "textAlign": "left" }}>
|
||||
<Button variant="contained" color="success" className="div_row22 btn_enreg" onClick={RecordData}>Enregistrer</Button>
|
||||
</div>
|
||||
<div className="div_row_droite">
|
||||
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={desablefield1}>Annuler</Button>
|
||||
<div className="div_row_droite" style={{ "textAlign": "right" }}>
|
||||
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={desablefield1}>Annuler</Button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
|
@ -1113,86 +941,96 @@ function UpdateUserInfo(props) {
|
|||
|
||||
|
||||
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 } }}>
|
||||
|
||||
<FormControl sx={{ m: 1, width: '90%' }} variant="standard" size="small" className="texte_area_passwd">
|
||||
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
|
||||
<OutlinedInput
|
||||
id="current_pwd"
|
||||
name="current_pwd"
|
||||
type={values.showPassword1 ? 'text' : 'password'}
|
||||
value={values.password1}
|
||||
onChange={handleChange1('password1')}
|
||||
endAdornment={
|
||||
<InputAdornment position="end">
|
||||
<IconButton
|
||||
aria-label="toggle password visibility"
|
||||
onClick={handleClickShowPassword_current_pwd}
|
||||
edge="end"
|
||||
>
|
||||
{currentpawdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
}
|
||||
label="Password 1"
|
||||
/>
|
||||
</FormControl>
|
||||
<div style={{ width: "100%", float: 'left' }}>
|
||||
<div> <b> Actuel Password </b> <br />
|
||||
<FormControl sx={{ m: 1, width: '100%' }} variant="standard" size="small" className="texte_area_passwd">
|
||||
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
|
||||
<OutlinedInput
|
||||
id="current_pwd"
|
||||
name="current_pwd"
|
||||
type={values.showPassword1 ? 'text' : 'password'}
|
||||
value={values.password1}
|
||||
onChange={handleChange1('password1')}
|
||||
endAdornment={
|
||||
<InputAdornment position="end">
|
||||
<IconButton
|
||||
aria-label="toggle password visibility"
|
||||
onClick={handleClickShowPassword_current_pwd}
|
||||
edge="end"
|
||||
>
|
||||
{currentpawdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
}
|
||||
label=""
|
||||
/>
|
||||
</FormControl>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div style={{ width: "100%", float: 'left' }}>
|
||||
<div> <b> Nouveau Password </b> <br />
|
||||
<FormControl sx={{ m: 1, width: '100%' }} variant="standard" size="small" className="texte_area_passwd">
|
||||
<InputLabel htmlFor="outlined-adornment-password2"></InputLabel>
|
||||
<OutlinedInput
|
||||
id="new_pwd"
|
||||
name="new_pwd"
|
||||
type={values.showPassword ? 'text' : 'password'}
|
||||
value={values.password2}
|
||||
onChange={handleChange2('password2')}
|
||||
endAdornment={
|
||||
<InputAdornment position="end">
|
||||
<IconButton
|
||||
aria-label="toggle password visibility"
|
||||
onClick={handleClickShowPassword_new_pwd}
|
||||
edge="end"
|
||||
>
|
||||
{newpawdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
}
|
||||
label=""
|
||||
/>
|
||||
</FormControl>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<FormControl sx={{ m: 1, width: '90%' }} variant="standard" size="small" className="texte_area_passwd">
|
||||
<InputLabel htmlFor="outlined-adornment-password2"></InputLabel>
|
||||
<OutlinedInput
|
||||
id="new_pwd"
|
||||
name="new_pwd"
|
||||
type={values.showPassword ? 'text' : 'password'}
|
||||
value={values.password2}
|
||||
onChange={handleChange2('password2')}
|
||||
endAdornment={
|
||||
<InputAdornment position="end">
|
||||
<IconButton
|
||||
aria-label="toggle password visibility"
|
||||
onClick={handleClickShowPassword_new_pwd}
|
||||
edge="end"
|
||||
>
|
||||
{newpawdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
}
|
||||
label="Password 2"
|
||||
/>
|
||||
</FormControl>
|
||||
<br />
|
||||
|
||||
<FormControl sx={{ m: 1, width: '90%' }} variant="standard" size="small" className="texte_area_passwd">
|
||||
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
|
||||
<OutlinedInput
|
||||
id="new_pwd_conf"
|
||||
name="new_pwd_conf"
|
||||
type={values.showPassword ? 'text' : 'password'}
|
||||
value={values.password3}
|
||||
onChange={handleChange3('password3')}
|
||||
endAdornment={
|
||||
<InputAdornment position="end">
|
||||
<IconButton
|
||||
aria-label="toggle password visibility"
|
||||
onClick={handleClickShowPassword_new_pwd_conf}
|
||||
onMouseDown={handleMouseDownPassword}
|
||||
edge="end"
|
||||
>
|
||||
{confpwdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
}
|
||||
label="Password"
|
||||
/>
|
||||
</FormControl>
|
||||
<div style={{ width: "100%", float: 'left' }}>
|
||||
<div> <b> Nouveau Password (2) </b> <br />
|
||||
<FormControl sx={{ m: 1, width: '100%' }} variant="standard" size="small" className="texte_area_passwd">
|
||||
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
|
||||
<OutlinedInput
|
||||
id="new_pwd_conf"
|
||||
name="new_pwd_conf"
|
||||
type={values.showPassword ? 'text' : 'password'}
|
||||
value={values.password3}
|
||||
onChange={handleChange3('password3')}
|
||||
endAdornment={
|
||||
<InputAdornment position="end">
|
||||
<IconButton
|
||||
aria-label="toggle password visibility"
|
||||
onClick={handleClickShowPassword_new_pwd_conf}
|
||||
onMouseDown={handleMouseDownPassword}
|
||||
edge="end"
|
||||
>
|
||||
{confpwdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</IconButton>
|
||||
</InputAdornment>
|
||||
}
|
||||
label=""
|
||||
/>
|
||||
</FormControl>
|
||||
</div>
|
||||
</div>
|
||||
<div className="div_row22">
|
||||
|
||||
{pwdfieldsdesabled == false && <div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={UpdateUserPwd}>Enregistrer</Button>
|
||||
<div className="div_row_gauche" style={{ "textAlign": "left" }}>
|
||||
<Button variant="contained" color="success" className="div_row22 btn_enreg" onClick={UpdateUserPwd}>Enregistrer</Button>
|
||||
</div>
|
||||
<div className="div_row_droite">
|
||||
<Button variant="contained" color="success" className="div_row22 btn_modif " onClick={desablesecurtypwdfields}>Annuler</Button>
|
||||
<div className="div_row_droite" style={{ "textAlign": "right" }} >
|
||||
<Button variant="contained" color="success" className="div_row22 btn_modif"onClick={desablesecurtypwdfields}>Annuler</Button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
import Ent_Mon_Planning from "../components/Module_Ent_Mon_Planning"
|
||||
import ENT_Student_New_C_Header_2025_V2 from "../components/ENT_Student_header_automatic_files/ENT_Student_Header";
|
||||
import New_C_Footer_Without_Testimony_2025_V2 from "../components/footer_automatic_files/Layout_Without_Testimony";
|
||||
import New_Navigation_ENT_Student_2025 from "../components/New_Navigation_ENT_Student_2025";
|
||||
|
||||
const mon_ent_student_planning = () => {
|
||||
|
||||
|
||||
return (
|
||||
<div>
|
||||
<New_Navigation_ENT_Student_2025 />
|
||||
<ENT_Student_New_C_Header_2025_V2 />
|
||||
<Ent_Mon_Planning />
|
||||
<New_C_Footer_Without_Testimony_2025_V2 />
|
||||
|
||||
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export default mon_ent_student_planning;
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
import Navigation from "../components/Navigation";
|
||||
import Ent_Intranet from "./../components/Ent_Intranet";
|
||||
import ENT_Student_New_C_Header_2025_V2 from "../components/ENT_Student_header_automatic_files/ENT_Student_Header";
|
||||
import New_C_Footer_Without_Testimony_2025_V2 from "../components/footer_automatic_files/Layout_Without_Testimony";
|
||||
import New_Navigation_ENT_Student_2025 from "../components/New_Navigation_ENT_Student_2025";
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,4 +1,7 @@
|
|||
.module_ent_mes_formations {
|
||||
width: 100%;
|
||||
max-width: 1500px;
|
||||
margin: auto;
|
||||
|
||||
.loader-container {
|
||||
width: 100%;
|
||||
|
|
@ -12,7 +15,7 @@
|
|||
z-index: 1;
|
||||
top: 0px;
|
||||
opacity: 80%;
|
||||
left: 0px;
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.tooltip_css {
|
||||
|
|
@ -2406,8 +2409,9 @@
|
|||
}
|
||||
|
||||
.block_central_gauche {
|
||||
width: 94%;
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin: auto;
|
||||
max-width: 1400px;
|
||||
padding-left: 3%;
|
||||
padding-right: 3%;
|
||||
background: #f4f4fb;
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
|
|
@ -1840,7 +1840,7 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
|
|
@ -2536,7 +2536,7 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@
|
|||
font-size: small !important;
|
||||
padding-top: 0.2rem;
|
||||
padding-bottom: 0.2rem;
|
||||
height: 3.5rem;
|
||||
}
|
||||
|
||||
.titre1 {
|
||||
|
|
@ -83,10 +84,12 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
padding-bottom: 0.8rem;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.big_hr {
|
||||
|
|
@ -242,6 +245,7 @@
|
|||
font-size: small !important;
|
||||
padding-top: 0.2rem;
|
||||
padding-bottom: 0.2rem;
|
||||
height: 3.5rem;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -251,10 +255,12 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
padding-bottom: 0.8rem;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.big_hr {
|
||||
|
|
@ -386,10 +392,12 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
padding-bottom: 0.8rem;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -420,6 +428,7 @@
|
|||
font-size: small !important;
|
||||
padding-top: 0.2rem;
|
||||
padding-bottom: 0.2rem;
|
||||
height: 3.5rem;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -522,10 +531,12 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
padding-bottom: 0.8rem;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -554,6 +565,7 @@
|
|||
font-size: medium !important;
|
||||
padding-top: 0.2rem;
|
||||
padding-bottom: 0.2rem;
|
||||
height: 3.5rem;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue