04/11/2025 - 12h
parent
7288b00f5a
commit
283aac8b6f
|
|
@ -80,6 +80,7 @@ import New_Test_Header_Footer_2025 from "./pages/new_p_test_header_footer_2025";
|
|||
*/
|
||||
import img_loading_spin from "./mysy_img/mysy_spin_loading.gif";
|
||||
|
||||
|
||||
function App() {
|
||||
|
||||
const New_Marktplace_2025 = lazy(() => import("./pages/new_p_marketplace_2025"));
|
||||
|
|
@ -94,8 +95,8 @@ function App() {
|
|||
const New_Tarif_2025 = lazy(() => import("./pages/new_p_tarif_2025"));
|
||||
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 Student_Planning = lazy(() => import("./pages/mon_ent_student_planning"));
|
||||
const Student_Account_Ent = lazy(() => import("./pages/student_account_ent"));
|
||||
|
||||
|
||||
|
||||
const Account = lazy(() => import("./pages/account"));
|
||||
|
|
@ -365,8 +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} />
|
||||
<Route path="/mysy-student-ent/:local_props_apprenant_id/:local_props_menu" exact component={Student_Account_Ent} />
|
||||
|
||||
{/* Fin Migration */}
|
||||
|
||||
|
|
|
|||
|
|
@ -4358,7 +4358,6 @@ const AddClassManual = (props) => {
|
|||
const [selected_ue_is_noted, setselected_ue_is_noted] = useState("");
|
||||
const [selected_ue_pres_dist_hyp, setselected_ue_pres_dist_hyp] = useState("");
|
||||
const [selected_ue_coefficient, setselected_ue_coefficient] = useState("");
|
||||
|
||||
const [selected_ue_seuil_validation, setselected_ue_seuil_validation] = useState("");
|
||||
|
||||
|
||||
|
|
@ -7479,7 +7478,7 @@ const AddClassManual = (props) => {
|
|||
</div>
|
||||
</div>}
|
||||
|
||||
{submenu && String(submenu) === "admission" && <div> admission </div>}
|
||||
{submenu && String(submenu) === "admission" && <div> </div>}
|
||||
|
||||
{submenu && String(submenu) === "note_evaluation" && <div>
|
||||
|
||||
|
|
@ -7661,7 +7660,7 @@ const AddClassManual = (props) => {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{/*String(props.ispending) === String("0") && <div className="parter_div_filtrer_row">
|
||||
{String(props.ispending) === String("0") && <div className="parter_div_filtrer_row" style={{marginTop:'2rem', marginBottom:'3rem'}}>
|
||||
|
||||
|
||||
{(String(datamodification) === String("1") || String(editor_tochange) === String("1")) && <div className="parter_div_filtrer_row_gauche" >
|
||||
|
|
@ -7669,66 +7668,13 @@ const AddClassManual = (props) => {
|
|||
</div>
|
||||
}
|
||||
|
||||
{String(datamodification) !== String("1") && String(editor_tochange) !== String("1") && String(props.mytrainingclass.ref) !== "" &&
|
||||
<div className="parter_div_filtrer_row_droite" >
|
||||
|
||||
<Popup
|
||||
trigger={
|
||||
<Button variant="contained" startIcon={<DeleteIcon />} className="bton_suppr2"> SUPPRIMER LA FORMATION </Button>
|
||||
|
||||
}
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, la formation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
Avant, assurez-vous de n'avoir aucune session rattachée à la formation.
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
DeleteClass(event);
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
{(String(datamodification) === String("1") || String(editor_tochange) === String("1")) && String(props.mytrainingclass.ref) !== "" && <div className="parter_div_filtrer_row_droite" >
|
||||
<Button variant="contained" onClick={UndoModif} startIcon={<IoArrowUndoCircle />} className="bton_suppr2"> ANNULER LES MODIFICATIONS </Button>
|
||||
|
||||
</div>}
|
||||
|
||||
</div>*/}
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10298,7 +10298,7 @@ registerLocale('fr', fr);
|
|||
|
||||
{String(submenu) === "droit_acces" && <div className="div_row">
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Droits d'accès système </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Droits d'accès système </nav>
|
||||
|
||||
<div className="session_data" style={{ "background": warning_bg_color }}>
|
||||
|
||||
|
|
|
|||
|
|
@ -7989,7 +7989,9 @@ const Conseil_Classe = (props) => {
|
|||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" />
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -12524,7 +12524,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|| local_type_document === "CONVENTION_STAGIAIRE_INDIVIDUELLE_PDF"
|
||||
|| local_type_document === "CONVENTION_STAGIAIRE_ENTREPRISE_MAIL"
|
||||
|| local_type_document === "CONVENTION_STAGIAIRE_ENTREPRISE_PDF") {
|
||||
|
||||
|
||||
setselected_convention_id(mylocaltraining[local_type_document]);
|
||||
}
|
||||
|
||||
|
|
@ -25979,6 +25979,8 @@ const DisplayPartnerSession = (props) => {
|
|||
fullWidth
|
||||
options={New_Option_Inscription}
|
||||
onChange={(event, value) => {
|
||||
setselected_convocation_id("");
|
||||
setselected_convention_id("");
|
||||
if (value && value.value) {
|
||||
if (String(value.value) === "confirmation" || String(value.value) === "impression" || String(value.value) === "annule inscription" ||
|
||||
String(value.value) === "facturer" || String(value.value) === "emarg_qr_code"
|
||||
|
|
@ -25987,6 +25989,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|| String(value.value) === "convention_entreprise"
|
||||
|| String(value.value) === "convention_individuelle") {
|
||||
setactionmass_insc_val(value.value);
|
||||
|
||||
}
|
||||
else {
|
||||
setactionmass_insc_val("");
|
||||
|
|
@ -26012,6 +26015,9 @@ const DisplayPartnerSession = (props) => {
|
|||
String(actionmass_insc_val) === "facturer")
|
||||
&& <nav className='block_en_mass_bton_action'>
|
||||
<Button className="bton_enreg" style={{ "width": "90%" }} onClick={(event) => {
|
||||
setselected_convocation_id("");
|
||||
setselected_convention_id("");
|
||||
|
||||
actionmass_insc_Traitemet();
|
||||
setactionmass_insc_val("");
|
||||
|
||||
|
|
|
|||
|
|
@ -810,13 +810,13 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
if (local_ue.ects) {
|
||||
setp_detail_ects(local_ue.ects);
|
||||
} else {
|
||||
setp_detail_ects("");
|
||||
setp_detail_ects("1");
|
||||
}
|
||||
|
||||
if (local_ue.seuil_validation) {
|
||||
setp_detail_seuil_validation(local_ue.seuil_validation);
|
||||
} else {
|
||||
setp_detail_seuil_validation("");
|
||||
setp_detail_seuil_validation("1");
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -986,6 +986,20 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
form.append("ects", p_detail_ects);
|
||||
form.append("seuil_validation", p_detail_seuil_validation);
|
||||
|
||||
if (!p_detail_ects || p_detail_ects == "") {
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message("Le champs 'ECTS' est invalide ");
|
||||
setalert_type("error");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!p_detail_seuil_validation || p_detail_seuil_validation == "") {
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message("Le champs 'Seuil Validation' est invalide ");
|
||||
setalert_type("error");
|
||||
return;
|
||||
}
|
||||
|
||||
form.append("vh_cm", p_detail_cours_cm);
|
||||
form.append("vh_tp", p_detail_cours_tp);
|
||||
form.append("vh_tpg", p_detail_cours_tpg);
|
||||
|
|
@ -1200,8 +1214,8 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
const [p_detail_duration, setp_detail_duration] = useState("");
|
||||
const [p_detail_duration_unite, setp_detail_duration_unite] = useState("");
|
||||
|
||||
const [p_detail_ects, setp_detail_ects] = useState("");
|
||||
const [p_detail_seuil_validation, setp_detail_seuil_validation] = useState("");
|
||||
const [p_detail_ects, setp_detail_ects] = useState("1");
|
||||
const [p_detail_seuil_validation, setp_detail_seuil_validation] = useState("1");
|
||||
const [p_detail_tab_competence, setp_detail_tab_competence] = useState([]);
|
||||
|
||||
const [p_detail_note_ue_calculation_rule_id, setp_detail_note_ue_calculation_rule_id] = useState([]);
|
||||
|
|
@ -2841,7 +2855,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) === "1" &&
|
||||
New_Get_List_Domaines_result && New_Get_List_Domaines_result.length > 0 && <div className="session_caract">Domaine <br />
|
||||
New_Get_List_Domaines_result && New_Get_List_Domaines_result.length > 0 && <div className="session_caract">Domaine Ftion.<br />
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
|
||||
|
|
@ -2871,7 +2885,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
</div>}
|
||||
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) !== "1" &&
|
||||
New_Get_List_Domaines_result && New_Get_List_Domaines_result.length > 0 && <div className="session_caract">Domaine <br />
|
||||
New_Get_List_Domaines_result && New_Get_List_Domaines_result.length > 0 && <div className="session_caract">Domaine Ftion. <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -2904,14 +2918,11 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
value={val}
|
||||
options={New_Getall_Partner_Competence_List_result}
|
||||
className="disabled_style disabled_style_no_border"
|
||||
renderInput={(params) => (
|
||||
<TextField
|
||||
{...params}
|
||||
label=""
|
||||
placeholder="Ajout"
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
}
|
||||
|
||||
/>
|
||||
|
||||
|
|
@ -3079,7 +3090,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
</div>}
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) === "1" && <div>
|
||||
<div className="session_caract"> ECTS <br />
|
||||
<div className="session_caract"> <b>ECTS </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -3104,7 +3115,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
</div>}
|
||||
|
||||
{ue_data_edit_mode && String(ue_data_edit_mode) !== "1" && <div>
|
||||
<div className="session_caract"> Seuil Validation <br />
|
||||
<div className="session_caract"> <b> Seuil Validation </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -4057,7 +4068,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
|
||||
/>
|
||||
</div>
|
||||
{New_Get_List_Domaines_result && New_Get_List_Domaines_result.length > 0 && <div className="session_caract"> Domaine <br />
|
||||
{New_Get_List_Domaines_result && New_Get_List_Domaines_result.length > 0 && <div className="session_caract"> Domaine Ftion.<br />
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
|
||||
|
|
@ -4165,7 +4176,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> ECTS <br />
|
||||
<div className="session_caract"> <b> ECTS </b> <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -4187,7 +4198,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Seuil Validation <br />
|
||||
<div className="session_caract"> <b> Seuil Validation </b><br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import './ENT_Student_Header.css';
|
|||
import moment from "moment";
|
||||
import { getCookie } from 'react-use-cookie';
|
||||
import { useHistory } from "react-router-dom";
|
||||
|
||||
|
||||
import Header_MySy_Logo from '../../img_new_design_2025/header_mysy_logo.png';
|
||||
import Header_User from '../../img_new_design_2025/header_user.png';
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
|
|
@ -76,7 +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;
|
||||
|
|
@ -106,8 +106,9 @@ const ENT_Student_Header = () => {
|
|||
|
||||
|
||||
const handleMyAccount = () => {
|
||||
const stored_apprenant_id = getCookie('tokenmysychapprenant');
|
||||
setAccountMenu(null);
|
||||
history.push("/mysy-user-account")
|
||||
history.push("/mysy-student-ent/" + String(stored_apprenant_id) + "/apprenant_account_data")
|
||||
};
|
||||
|
||||
const handleAccountConnexion = () => {
|
||||
|
|
@ -270,18 +271,15 @@ const ENT_Student_Header = () => {
|
|||
<header className="header_new_2025">
|
||||
<div className="header-content">
|
||||
<div className="logo-menu">
|
||||
<img src={Header_MySy_Logo} alt="Logo MySy" className="logo" style={{ cursor: 'pointer' }} onClick={(e) => {
|
||||
// e.preventDefault();
|
||||
history.push("/");
|
||||
}} />
|
||||
<img src={Header_MySy_Logo} alt="Logo MySy" className="logo" style={{ cursor: 'default' }} />
|
||||
|
||||
<nav className="menu-list">
|
||||
<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>
|
||||
<a href={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/mes_formations"} className="menu-link">Formations</a>
|
||||
<a href={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/mon_planning"} className="menu-link">Planning</a>
|
||||
<a href={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/mes_notes"} className="menu-link">Notes</a>
|
||||
|
||||
<div className="separator"></div>
|
||||
<a href="/marketplace" className="menu-link">Documents</a>
|
||||
<a href={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/mes_documents"} className="menu-link">Documents</a>
|
||||
<div className="separator"></div>
|
||||
<a href="/marketplace" className="menu-link">Emails</a>
|
||||
</nav>
|
||||
|
|
@ -290,9 +288,9 @@ const ENT_Student_Header = () => {
|
|||
<div className="cta-login">
|
||||
|
||||
<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-primary" onClick={handleAccountConnexion_v2}>Mon compte</button>}
|
||||
{String(someoneconnected) === String("1") &&
|
||||
<a href={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/apprenant_account_data"} className="btn btn-primary">Mon compte</a>
|
||||
}
|
||||
|
||||
</div>
|
||||
<div className="separator hide_on_mobile"></div>
|
||||
|
|
|
|||
|
|
@ -782,10 +782,10 @@ registerLocale('fr', fr);
|
|||
|
||||
</div>
|
||||
|
||||
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>
|
||||
<div style={{ "marginLeft": "auto", "marginRight": "auto" }}>
|
||||
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
||||
|
||||
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
|
||||
<div className="div_row_gauche" style={{ "textAlign": 'left', }}>
|
||||
|
||||
<Button variant="contained" className="bton_enreg" onClick={(e) => {
|
||||
setDialog_SIGN_VALIDATION_open(true);
|
||||
|
|
@ -794,7 +794,7 @@ registerLocale('fr', fr);
|
|||
|
||||
</div>
|
||||
|
||||
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }} >
|
||||
<div className="div_row_droite" style={{ "textAlign": 'right',}} >
|
||||
<Button variant="contained" className="bton_annule" onClick={Dialog_Message_handleClose_buton}>Annuler
|
||||
</Button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -934,7 +934,7 @@ function Emarge_QR_Code() {
|
|||
|
||||
<Button variant="contained" className="bton_image_class" onClick={(e) => {
|
||||
setDialog_SIGN_MANUSCRITE_open(true);
|
||||
}}>Signer manuellement
|
||||
}}>Signer manuellement
|
||||
</Button>
|
||||
|
||||
|
||||
|
|
@ -951,10 +951,10 @@ function Emarge_QR_Code() {
|
|||
|
||||
</div>
|
||||
|
||||
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>
|
||||
<div style={{ width: "100%", "marginLeft": "auto", "marginRight": "auto" }}>
|
||||
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
||||
|
||||
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
|
||||
<div className="div_row_gauche" style={{ "textAlign": 'left' }}>
|
||||
|
||||
<Popup
|
||||
trigger={
|
||||
|
|
@ -1013,7 +1013,7 @@ function Emarge_QR_Code() {
|
|||
|
||||
</div>
|
||||
|
||||
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }} >
|
||||
<div className="div_row_droite" style={{ "textAlign": 'right', }} >
|
||||
<Button variant="contained" className="bton_annule" onClick={(e) => {
|
||||
Signature_E_Document(0);
|
||||
}}>J'etais Absent
|
||||
|
|
|
|||
|
|
@ -1314,7 +1314,7 @@ registerLocale('fr', fr);
|
|||
|
||||
Get_Partner_Object_Specific_Fields("ressource_humaine");
|
||||
|
||||
Getall_Survey_formateur_evaluation_By_Session();
|
||||
// Getall_Survey_formateur_evaluation_By_Session();
|
||||
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
|
|
@ -1366,6 +1366,7 @@ registerLocale('fr', fr);
|
|||
Getall_Employee_Affectation(employe_id);
|
||||
Getall_Employee_Acces_Right(employe_id);
|
||||
Getall_Employee_Contrat(employe_id);
|
||||
Getall_Survey_formateur_evaluation_By_Session();
|
||||
Get_Partner_Purchase_Prices();
|
||||
|
||||
Get_List_Of_All_PJ(employe_id);
|
||||
|
|
@ -8876,7 +8877,7 @@ registerLocale('fr', fr);
|
|||
|
||||
|
||||
{String(submenu) === "detail_employe" && String(add_One_Employee) !== "1" && <div className="div_row">
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Détail Employé </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Détail Employé </nav>
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<div className="div_row_gauche">
|
||||
|
||||
|
|
@ -10512,7 +10513,7 @@ registerLocale('fr', fr);
|
|||
|
||||
{String(submenu) === "affectation" && <div className="div_row" style={{ paddingRight: '10px' }}>
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Liste Affectations </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Liste Affectations </nav>
|
||||
<div className="session_data">
|
||||
<div style={{ "border": "None" }}>
|
||||
|
||||
|
|
@ -10604,7 +10605,7 @@ registerLocale('fr', fr);
|
|||
|
||||
<nav ref={myRef_affectation} id="myRef_affectation"> </nav>
|
||||
{String(display_affectation) === "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Détail Affectation </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Détail Affectation </nav>
|
||||
|
||||
<div className="session_data" >
|
||||
<div className="session_caract">Poste Occupé <br />
|
||||
|
|
@ -10863,7 +10864,7 @@ registerLocale('fr', fr);
|
|||
<nav ref={myRef_new_affectation} id="myRef_new_affectation"> </nav>
|
||||
{String(Add_new_affectation) === "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Nouvelle affectation </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Nouvelle affectation </nav>
|
||||
<div className="session_data" >
|
||||
<div>
|
||||
<div className="session_caract">Poste Occupé <br />
|
||||
|
|
@ -11039,7 +11040,7 @@ registerLocale('fr', fr);
|
|||
|
||||
{String(submenu) === "droit_acces" && <div className="div_row">
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Droits d'accès système </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Droits d'accès système </nav>
|
||||
|
||||
<div className="session_data" style={{ "background": warning_bg_color }}>
|
||||
|
||||
|
|
@ -11257,7 +11258,7 @@ registerLocale('fr', fr);
|
|||
<Tooltip className="tooltip_css" id="scope" style={{ "fontSize": "12px" }} />
|
||||
<a data-tooltip-id="scope" data-tooltip-html="Par exemple l'utilisateur ne peut voir que les données liées à la formation 'f01' ">
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Périmetre d'accès <FcInfo /> </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Périmetre d'accès <FcInfo /> </nav>
|
||||
</a>
|
||||
|
||||
{New_GetCurrentPartnerClass_result && New_GetCurrentPartnerClass_result.length > 0 && <div className="session_caract" > <b>Liste formations </b> <br />
|
||||
|
|
@ -11361,7 +11362,7 @@ registerLocale('fr', fr);
|
|||
</div>}
|
||||
|
||||
{String(submenu) === "contrat" && <div className="div_row" style={{ "paddingRight": "10px" }} ref={myRef_contrat}>
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Détail contrat(s) </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Détail contrat(s) </nav>
|
||||
|
||||
|
||||
<div style={{ height: 550, width: '100%', paddingRight: '1px', "marginLeft": "10px", "marginRight": "10px", }}>
|
||||
|
|
@ -11466,7 +11467,7 @@ registerLocale('fr', fr);
|
|||
|
||||
{String(submenu) === "piece_jointe" && <div className="div_row" style={{ paddingRight: '10px' }}>
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Les pièces jointes </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Les pièces jointes </nav>
|
||||
|
||||
<div className="session_data">
|
||||
<br />
|
||||
|
|
@ -11613,7 +11614,7 @@ registerLocale('fr', fr);
|
|||
|
||||
{String(submenu) === "competence" && <div className="div_row" style={{ pInitialiseraddingRight: '10px' }}>
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Les Compétences </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Les Compétences </nav>
|
||||
<div className="session_data" style={{ "minHeight": '15rem', "paddingLeft": "10px", "paddingRight": "10px" }}>
|
||||
<br />
|
||||
|
||||
|
|
@ -11683,7 +11684,7 @@ registerLocale('fr', fr);
|
|||
|
||||
{String(submenu) === "evaluation" && <div className="div_row" style={{ paddingRight: '10px' }}>
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Les evaluations </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Les evaluations </nav>
|
||||
|
||||
|
||||
|
||||
|
|
@ -11903,7 +11904,7 @@ registerLocale('fr', fr);
|
|||
<div className="titre1"> {p_detail_prenom} {p_detail_nom} : Suivi pédagoqigue </div>
|
||||
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> </nav>
|
||||
|
||||
<div className="session_data" ref={myRef_head} id="myRef_head">
|
||||
<div style={{ "border": "None" }}>
|
||||
|
|
@ -12051,7 +12052,7 @@ registerLocale('fr', fr);
|
|||
|
||||
|
||||
{String(add_one_suivi_ped) === "1" && String(display_given_suivi_ped) !== "1" && <div>
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Nouveau suivi pédagogique</nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Nouveau suivi pédagogique</nav>
|
||||
|
||||
|
||||
<div className="session_caract"> <b>Sujet </b> <br />
|
||||
|
|
@ -12191,7 +12192,7 @@ registerLocale('fr', fr);
|
|||
</div>}
|
||||
|
||||
{String(add_one_suivi_ped) !== "1" && String(display_given_suivi_ped) === "1" && <div>
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Détail suivi pédagogique</nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Détail suivi pédagogique</nav>
|
||||
|
||||
{String(given_suivi_ped_data_edit_mode) !== "1" && <div className="div_row" style={{ "border": "None" }}>
|
||||
|
||||
|
|
@ -12550,7 +12551,7 @@ registerLocale('fr', fr);
|
|||
|
||||
{String(submenu) === "statistiques" && <div className="div_row" style={{ paddingRight: '10px' }}>
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Les statistiques </nav>
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", fontFamily:'DM Sans' }}> Les statistiques </nav>
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1920,8 +1920,10 @@ const Equipe_Team = (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" } }}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5710,8 +5710,10 @@ const Jury = (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" } }}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -151,9 +151,9 @@ function Module_Connexion_Ent_Student() {
|
|||
history.push("/Display-Detail-formation/" + objid);
|
||||
}
|
||||
else {
|
||||
// Redirection par defaut vers la compte de l'apprenant - ENT
|
||||
// Redirection par defaut vers les formations de l'apprenant - ENT
|
||||
history.push({
|
||||
pathname: "/mysy-student-account",
|
||||
pathname: "/mysy-student-ent/"+String(result['apprenant_id'])+"/mes_formations",
|
||||
state: {
|
||||
firstconnexion: String(result['firstconnexion']),
|
||||
apprenant_id: String(result['apprenant_id'])
|
||||
|
|
|
|||
|
|
@ -390,7 +390,7 @@ registerLocale('fr', fr);
|
|||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
// console.log(" In Getall_Sequence_Of_Session res.data.status = " + res.data.status);
|
||||
console.log(" In Getall_Sequence_Of_Session res.data.message r_class = " + res.data.message);
|
||||
// console.log(" In Getall_Sequence_Of_Session res.data.message r_class = " + res.data.message);
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
||||
|
|
@ -2355,7 +2355,7 @@ registerLocale('fr', fr);
|
|||
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
String(submenu) === "notes" && Get_Given_Class_Data_result && Get_Given_Class_Data_result.length > 0 && <div className="div_row" >
|
||||
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Notes </nav>
|
||||
|
|
@ -2527,74 +2527,7 @@ registerLocale('fr', fr);
|
|||
|
||||
</div>
|
||||
|
||||
{/* <div className="div_row" style={{ "padding": "5px" }}>
|
||||
|
||||
<div style={{ "fontSize": "12px" }}>
|
||||
<label htmlFor="upload-photo">
|
||||
<input
|
||||
style={{ display: "none" }}
|
||||
id="upload-photo"
|
||||
name="upload-photo"
|
||||
type="file"
|
||||
onChange={sessions_file_change_1}
|
||||
/>
|
||||
|
||||
<Fab
|
||||
color="secondary"
|
||||
size="small"
|
||||
component="span"
|
||||
aria-label="add"
|
||||
variant="extended"
|
||||
>
|
||||
<IoMdAddCircle /> <nav style={{ "fontSize": "12px" }}> Ajouter un fichier </nav>
|
||||
</Fab>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
{file_1_name && file_1_name.name &&
|
||||
<nav style={{ "fontSize": "12px" }}>
|
||||
<div className="session_caract">Nom du fichier <br />
|
||||
<TextField
|
||||
name="file_to_download_type_name"
|
||||
id="file_to_download_type_name"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
|
||||
disabled={false}
|
||||
className="disabled_style enable_style"
|
||||
value={p_detail_one_file_to_download_type_name}
|
||||
onChange={(e) => {
|
||||
setp_detail_one_file_to_download_type_name(e.target.value);
|
||||
|
||||
}}
|
||||
/>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
Fichier : {file_1_name.name} <br /> <font style={{ "cursor": "pointer" }}
|
||||
onClick={Delete_file_1_name}> Supprimer <IoIosRemoveCircleOutline /> </font>
|
||||
</nav>}
|
||||
|
||||
{Record_All_PJ_api && String(Record_All_PJ_api) === "true" && <div className="okUpdateData"> Pièce jointe enregistrée </div>}
|
||||
|
||||
{Record_All_PJ_api && String(Record_All_PJ_api) === "false" && <div className="koUpdateData"> {Record_All_PJ_message} </div>}
|
||||
|
||||
|
||||
</div>*/}
|
||||
|
||||
|
||||
{/*file_1_name && file_1_name.name && <div className="div_row">
|
||||
|
||||
<div className="div_row_gauche">
|
||||
<Button variant="contained" onClick={Record_All_PJ}
|
||||
startIcon={<AiTwotoneSave />} className="bton_enreg">ENREGISTRER LA PIECE</Button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>*/}
|
||||
|
||||
|
||||
{Get_List_Of_All_PJ_result && <div className="div_row" style={{ "padding": "5px" }}>
|
||||
<div className="div_row">
|
||||
|
|
@ -2603,55 +2536,7 @@ registerLocale('fr', fr);
|
|||
{Get_List_Of_All_PJ_result && Get_List_Of_All_PJ_result.map((val) => (
|
||||
<div className="div_row_list_pj" style={{ fontFamily: "DM Sans", fontSize: '14px' }}>
|
||||
<nav style={{ "color": "green", "cursor": "pointer" }} onClick={Download_one_attached_document} name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}> Télécharger <i> {(JSON.parse(val).file_business_object)}</i> </nav> <br />
|
||||
{/*<Popup
|
||||
trigger={
|
||||
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
|
||||
|
||||
|
||||
}
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, la pièce jointe sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
|
||||
Delete_one_attached_document(event);
|
||||
close();
|
||||
}}
|
||||
name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}
|
||||
> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup_annuler"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>*/}
|
||||
|
||||
|
||||
</div>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ const useStyles = makeStyles((theme) => ({
|
|||
}));
|
||||
|
||||
const Module_Ent_Mes_Notes = (props) => {
|
||||
registerLocale('fr', fr);
|
||||
registerLocale('fr', fr);
|
||||
const classes = useStyles();
|
||||
|
||||
const history = useHistory();
|
||||
|
|
@ -164,152 +164,209 @@ registerLocale('fr', fr);
|
|||
</div>
|
||||
);
|
||||
}
|
||||
const columns_apprenant_inscriptions = [
|
||||
{ field: 'id', headerName: 'id', hide: true },
|
||||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'session_id', headerName: 'session_id', hide: true, Width: 1 },
|
||||
{ field: 'session_code', headerName: 'Code Session', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'class_title', headerName: 'Titre Formation', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'class_internal_url', headerName: 'class_internal_url', hide: true, Width: 1 },
|
||||
{
|
||||
field: 'status', headerName: 'Statut', hide: false, flex: 1, minWidth: 50, maxWidth: 70,
|
||||
valueFormatter: (params) => {
|
||||
if (String(params.value) === "0")
|
||||
return "Pré.";
|
||||
else if (String(params.value) === "1")
|
||||
return "Ins";
|
||||
else if (String(params.value) === "-1")
|
||||
return "Ann";
|
||||
else if (String(params.value) === "2")
|
||||
return "Enc";
|
||||
else
|
||||
return "???";
|
||||
}
|
||||
},
|
||||
const columns_notes = [
|
||||
{ field: '_id', headerName: '_id', hide: true, editable: false, Width: 0 },
|
||||
{ field: 'evaluation_id', headerName: 'evaluation_id', hide: true, editable: false, Width: 0 },
|
||||
{ field: 'inscription_id', headerName: 'inscription_id', hide: true, editable: false, Width: 0 },
|
||||
{ field: 'note_evaluation_id', headerName: 'session_id', hide: true, editable: false, Width: 0 },
|
||||
|
||||
{ field: 'client_rattachement_id', headerName: 'client__id', hide: true, Width: 1 },
|
||||
{ field: 'client_rattachement_nom', headerName: 'Client', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
{ field: 'date_debut', headerName: 'Début', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'date_fin', headerName: 'Fin', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'presentiel', headerName: 'Présentiel', hide: false, flex: 1, minWidth: 50, maxWidth: 70 },
|
||||
{ field: 'distanciel', headerName: 'Distantiel', hide: false, flex: 1, minWidth: 50, maxWidth: 70 },
|
||||
|
||||
{ field: 'class_recyclage_delai', headerName: 'Recycl. Delai', hide: false, flex: 1, minWidth: 100, },
|
||||
{ field: 'class_recyclage_periodicite', headerName: 'Recycl. Perio', hide: false, flex: 1, minWidth: 100, },
|
||||
{ field: 'nb_jour_avant_recyclage', headerName: 'Jrs avant Recycl.', hide: false, flex: 1, minWidth: 100, },
|
||||
{ field: 'id', headerName: 'id', hide: true, Width: 0 },
|
||||
{ field: 'class_eu_id', headerName: 'class_eu_id', hide: true, Width: 0 },
|
||||
{ field: 'type_eval_id', headerName: 'type_eval_id', hide: true, Width: 0 },
|
||||
|
||||
|
||||
{
|
||||
field: "Detail", headerName: 'Voir détail',
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<Button
|
||||
|
||||
onClick={(event) => {
|
||||
|
||||
|
||||
//handleClick_edit_apprenant_From_Line(cellValues.row.id);
|
||||
}}
|
||||
>
|
||||
<FcViewDetails />
|
||||
|
||||
</Button>
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
field: "delete", headerName: 'Supprimer',
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
>
|
||||
<CiTrash />
|
||||
|
||||
</Button>}
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, l'inscription sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
//handleClick_delete_Apprenant(event, cellValues);
|
||||
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup_annuler"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
{ field: 'class_ue_code', headerName: 'Code UE', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'class_ue_titre', headerName: 'Titre UE', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'note_evaluation_code', headerName: 'Evaluation', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'eval_date_heure_debut', headerName: 'Debut Eval', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'eval_date_heure_fin', headerName: 'Fin Eval', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'note', headerName: 'Note', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
]
|
||||
|
||||
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 [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 [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 [Get_All_Notes_Of_Evaluations_api, setGet_All_Notes_Of_Evaluations_api] = useState();
|
||||
const [Get_All_Notes_Of_Evaluations_message, setGet_All_Notes_Of_Evaluations_message] = useState();
|
||||
const [Get_All_Notes_Of_Evaluations_result, setGet_All_Notes_Of_Evaluations_result] = useState([]);
|
||||
function Get_All_Notes_Of_Evaluations(local_session_id, local_inscription_id) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
|
||||
form.append("token", stored_cookie);
|
||||
form.append("tab_session_id", local_session_id);
|
||||
form.append("tab_inscription_id", local_inscription_id);
|
||||
form.append("apprenant_id", props.apprenant_id);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_Participant_Notes/";
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
// console.log(" In Get_All_Notes_Of_Evaluations res.data.status = " + res.data.status);
|
||||
//console.log(" In Get_All_Notes_Of_Evaluations res.data.message r_class = " + res.data.message);
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
||||
setGet_All_Notes_Of_Evaluations_api("true");
|
||||
setGet_All_Notes_Of_Evaluations_result(res.data.message);
|
||||
}
|
||||
else {
|
||||
setGet_All_Notes_Of_Evaluations_api("false");
|
||||
setGet_All_Notes_Of_Evaluations_message(res.data.message);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
console.warn('Not good man :( Get_All_Notes_Of_Evaluations = ', error);
|
||||
setGet_All_Notes_Of_Evaluations_api("false");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const [gridline_id, setgridline_id] = 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 [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(() => {
|
||||
Get_List_Ent_Session_Promotion();
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
behavior: "smooth",
|
||||
});
|
||||
|
||||
}, [props.apprenant_id])
|
||||
|
||||
|
||||
const [selectionModel_notes, setselectionModel_notes] = React.useState([]);
|
||||
const [selected_session_id, setselected_session_id] = useState("");
|
||||
const [selected_inscription_id, setselected_inscription_id] = useState("");
|
||||
|
||||
return (
|
||||
<div className="module_ent_mes_notes">
|
||||
|
|
@ -493,6 +550,191 @@ registerLocale('fr', fr);
|
|||
|
||||
</div>
|
||||
<br />
|
||||
<div className="session_caract_Dialog"> <b> Choisir une Session ou une Promotion </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);
|
||||
setselected_inscription_id(value.inscription_id);
|
||||
Get_All_Notes_Of_Evaluations(value.session_id, value.inscription_id);
|
||||
|
||||
} else {
|
||||
setselected_session_id("");
|
||||
setselected_inscription_id("");
|
||||
setGet_All_Notes_Of_Evaluations_result([]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}}
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>}
|
||||
|
||||
|
||||
</div>
|
||||
<br />
|
||||
|
||||
{<div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
|
||||
|
||||
|
||||
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px", fontFamily: 'DM Sans' }}> Les notes </nav>
|
||||
|
||||
|
||||
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
|
||||
<Button className="bton_emarge" onClick={(event) => {
|
||||
// Export_Inscrit_Notes();
|
||||
}}>Export excel</Button>
|
||||
</div>
|
||||
|
||||
<div className="session_data">
|
||||
<div style={{ "border": "None", paddingRight: '10px' }}>
|
||||
|
||||
{Get_All_Notes_Of_Evaluations_result && Get_All_Notes_Of_Evaluations_result.length > 0 && <div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
height: 500,
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
|
||||
|
||||
|
||||
"& .MuiDataGrid-columnHeaders": {
|
||||
backgroundColor: "#c8cfd5",
|
||||
color: "black",
|
||||
fontSize: 14
|
||||
},
|
||||
|
||||
|
||||
'& .line--statut--pair': {
|
||||
backgroundColor: 'rgba(235, 235, 235, .7)',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--impair': {
|
||||
backgroundColor: '#FFFFFF',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--selected': {
|
||||
backgroundColor: '#FBF2EF',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
}}
|
||||
>
|
||||
<DataGrid
|
||||
checkboxSelection
|
||||
|
||||
onSelectionModelChange={(newSelectionModel) => {
|
||||
setselectionModel_notes(newSelectionModel);
|
||||
/*if (newSelectionModel.length === 1)
|
||||
handleClick_edit_session_From_Line(newSelectionModel);*/
|
||||
if (newSelectionModel.length !== 1) {
|
||||
|
||||
}
|
||||
}}
|
||||
selectionModel={selectionModel_notes}
|
||||
|
||||
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
|
||||
rows={Get_All_Notes_Of_Evaluations_result.map((item, index) => (
|
||||
{
|
||||
id: index,
|
||||
_id: JSON.parse(item)._id,
|
||||
evaluation_id: JSON.parse(item).evaluation_id,
|
||||
inscription_id: JSON.parse(item).inscription_id,
|
||||
note_evaluation_id: JSON.parse(item).note_evaluation_id,
|
||||
class_eu_id: JSON.parse(item).class_eu_id,
|
||||
type_eval_id: JSON.parse(item).type_eval_id,
|
||||
class_ue_code: JSON.parse(item).class_ue_code,
|
||||
class_ue_titre: JSON.parse(item).class_ue_titre,
|
||||
note_evaluation_code: JSON.parse(item).note_evaluation_code,
|
||||
eval_date_heure_debut: JSON.parse(item).eval_date_heure_debut,
|
||||
eval_date_heure_fin: JSON.parse(item).eval_date_heure_fin,
|
||||
note: JSON.parse(item).note,
|
||||
|
||||
}
|
||||
))}
|
||||
|
||||
columns={columns_notes}
|
||||
pageSize={10}
|
||||
className="datagridclass"
|
||||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
|
||||
}}
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
disableSelectionOnClick
|
||||
components={{
|
||||
Toolbar: GridToolbar,
|
||||
}}
|
||||
//sx={datagridSx}
|
||||
getCellClassName={(params) => {
|
||||
//field === 'distantiel'
|
||||
if (params.field === 'distantiel' && String(params.value) === "1") {
|
||||
return 'cell--distantiel';
|
||||
}
|
||||
if (params.field === "presentiel" && String(params.value) == "1") {
|
||||
return 'cell--presentiel';
|
||||
}
|
||||
|
||||
|
||||
//field === "statut"
|
||||
if (params.field === "status" && String(params.value) == "0") {
|
||||
return 'cell--statut--preinscrit';
|
||||
}
|
||||
|
||||
if (params.field === "status" && String(params.value) == "1") {
|
||||
return 'cell--statut--inscrit';
|
||||
}
|
||||
|
||||
if (params.field === "status" && String(params.value) == "-1") {
|
||||
return 'cell--statut--annule';
|
||||
}
|
||||
|
||||
}}
|
||||
getRowClassName={(params) => {
|
||||
// Pour la gestion de la couleur de zone double cliquée
|
||||
if (String(params.row.id) === String(gridline_id)) {
|
||||
|
||||
return 'line--statut--selected';
|
||||
}
|
||||
|
||||
else if (parseInt(String(params.row.id)) % 2 === 0) {
|
||||
return 'line--statut--pair';
|
||||
}
|
||||
else if (parseInt(String(params.row.id)) % 2 !== 0) {
|
||||
return 'line--statut--impair';
|
||||
}
|
||||
|
||||
}}
|
||||
getEstimatedRowHeight={() => 200}
|
||||
getRowHeight={() => "auto"}
|
||||
|
||||
/>
|
||||
</Box>
|
||||
<br />
|
||||
|
||||
</div>}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
</div >
|
||||
);
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ const useStyles = makeStyles((theme) => ({
|
|||
color: 'gray',
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
const Module_Ent_Mon_Planning = (props) => {
|
||||
registerLocale('fr', fr);
|
||||
const classes = useStyles();
|
||||
|
|
@ -918,10 +918,10 @@ const Module_Ent_Mon_Planning = (props) => {
|
|||
|
||||
{/*** fin dialogue pr agenda */}
|
||||
|
||||
|
||||
|
||||
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> ENT Full Planning </h3>
|
||||
<div>
|
||||
{/*<div>
|
||||
<div className="titre1"> Utilisez les filtres !</div>
|
||||
<div className="div_row" style={{ "marginBottom": "5px" }}>
|
||||
<div className="div_row_gauche texte_area_filter" >
|
||||
|
|
@ -1080,11 +1080,11 @@ const Module_Ent_Mon_Planning = (props) => {
|
|||
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
</div>*/}
|
||||
<br />
|
||||
|
||||
|
||||
<div className="session_caract_Dialog"> <b> Session / Promo </b><br />
|
||||
<div className="session_caract_Dialog"> <b> Choisir une Session ou une Promotion </b><br />
|
||||
{New_Get_List_Ent_Session_Promotion_result && New_Get_List_Ent_Session_Promotion_result.length > 0 &&
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ const Module_Session_Evaluation = (props) => {
|
|||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'form_code', headerName: 'Form. Code', hide: true, minwidth: 200, flex: 1, hideable: true, resizable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'email', headerName: 'email', minwidth: 300, flex: 1, hideable: true, resizable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'nom', headerName: 'nom', minwidth: 300, flex: 1, hide: false, editable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'nom', headerName: 'nom', minwidth: 300, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'prenom', headerName: 'prenom', minwidth: 300, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{
|
||||
field: 'status', headerName: 'Statut', width: 100, editable: false, flex: true,
|
||||
|
|
@ -145,7 +145,7 @@ const Module_Session_Evaluation = (props) => {
|
|||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'form_code', headerName: 'Form. Code', hide: true, minwidth: 200, flex: 1, hideable: true, resizable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'email', headerName: 'email', minwidth: 300, flex: 1, hideable: true, resizable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'nom', headerName: 'nom', minwidth: 300, flex: 1, hide: false, editable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'nom', headerName: 'nom', minwidth: 300, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'prenom', headerName: 'prenom', minwidth: 300, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{
|
||||
field: 'status', headerName: 'Statut', width: 100, editable: false, flex: true,
|
||||
|
|
@ -192,7 +192,7 @@ const Module_Session_Evaluation = (props) => {
|
|||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'form_code', headerName: 'Form. Code', hide: true, minwidth: 200, flex: 1, hideable: true, resizable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'email', headerName: 'email', minwidth: 300, flex: 1, hideable: true, resizable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'nom', headerName: 'nom', minwidth: 300, flex: 1, hide: false, editable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'nom', headerName: 'nom', minwidth: 300, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'prenom', headerName: 'prenom', minwidth: 300, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{
|
||||
field: 'status', headerName: 'Statut', width: 100, editable: false, flex: true,
|
||||
|
|
@ -241,7 +241,7 @@ const Module_Session_Evaluation = (props) => {
|
|||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'form_code', headerName: 'Form. Code', hide: true, minwidth: 200, flex: 1, hideable: true, resizable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'email', headerName: 'email', minwidth: 300, flex: 1, hideable: true, resizable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'nom', headerName: 'nom', minwidth: 300, flex: 1, hide: false, editable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'nom', headerName: 'nom', minwidth: 300, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'prenom', headerName: 'prenom', minwidth: 300, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{
|
||||
field: 'status', headerName: 'Statut', width: 100, editable: false, flex: true,
|
||||
|
|
|
|||
|
|
@ -6934,7 +6934,7 @@ const Module_Session_Planification = (props) => {
|
|||
|
||||
</div>}
|
||||
|
||||
<div className="div_row" style={{ "border": "None", "textAlign": "right" }}>
|
||||
<div className="div_row" style={{ "border": "None", "textAlign": "right", marginTop:'2rem', marginBottom:'1rem' }}>
|
||||
|
||||
<Button variant="outlined" onClick={Apply_Planning_To_Session}
|
||||
className="detail_class_submenu bton_add_session"
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ import MoreVertIcon from '@mui/icons-material/MoreVert';
|
|||
import Menu from '@mui/material/Menu';
|
||||
|
||||
const Modules_Mes_Documents = (props) => {
|
||||
registerLocale('fr', fr);
|
||||
registerLocale('fr', fr);
|
||||
const { action, orderid } = useParams();
|
||||
|
||||
|
||||
|
|
@ -281,32 +281,110 @@ registerLocale('fr', fr);
|
|||
|
||||
const autorized_type_document = ['devis', 'convention', 'convocation', 'attestation'];
|
||||
|
||||
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(() => {
|
||||
|
||||
|
||||
console.log(" ### props.type_document = ", props.type_document)
|
||||
if (props.partner_client_id && props.type_document && autorized_type_document.includes(String(props.type_document)) &&
|
||||
props.partner_owner_recid === "") {
|
||||
setmyprops_type_document(props.type_document);
|
||||
setp_filtre1("filter_type_document");
|
||||
setp_filtre1_value(props.type_document);
|
||||
Get_All_Documents_With_Filter();
|
||||
|
||||
|
||||
} else if (props.partner_client_id && props.type_document && String(props.type_document) === "all" &&
|
||||
props.partner_owner_recid === "") {
|
||||
Get_All_Documents_With_Filter();
|
||||
}
|
||||
|
||||
else if (props.partner_owner_recid && props.partner_client_id === "") {
|
||||
Get_All_Documents_With_Filter();
|
||||
}
|
||||
|
||||
else {
|
||||
Get_List_Of_All_PJ();
|
||||
}
|
||||
|
||||
|
||||
Get_List_Ent_Session_Promotion();
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
behavior: "smooth",
|
||||
});
|
||||
|
||||
}, [])
|
||||
|
||||
|
|
@ -525,7 +603,7 @@ registerLocale('fr', fr);
|
|||
function getExcelData(apiRef) {
|
||||
// Select rows and columns
|
||||
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
|
||||
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
|
||||
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__");
|
||||
|
||||
// Format the data. Here we only keep the value
|
||||
const data = filteredSortedRowIds.map((id) => {
|
||||
|
|
@ -550,7 +628,7 @@ registerLocale('fr', fr);
|
|||
|
||||
function handleExport(apiRef, data_colums) {
|
||||
const data = getExcelData(apiRef);
|
||||
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__" );
|
||||
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__");
|
||||
|
||||
|
||||
const local_config = {
|
||||
|
|
@ -644,25 +722,19 @@ registerLocale('fr', fr);
|
|||
};
|
||||
|
||||
const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState();
|
||||
const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState();
|
||||
const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState([]);
|
||||
const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState();
|
||||
function Get_List_Of_All_PJ() {
|
||||
function Get_List_Of_All_PJ(local_selected_inscription_id) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
const formData = new FormData();
|
||||
|
||||
var user_cookie = getCookie('tokenmysych');
|
||||
var part_cookie = getCookie('tokenmysypart');
|
||||
|
||||
|
||||
var stored_cookie = "";
|
||||
|
||||
if (props.type_user_connected && String(props.type_user_connected) === "partner_account")
|
||||
stored_cookie = part_cookie;
|
||||
else if (props.type_user_connected && String(props.type_user_connected) === "user_account")
|
||||
stored_cookie = user_cookie;
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
|
||||
formData.append("token", stored_cookie);
|
||||
formData.append("object_owner_id", props.partner_client_id);
|
||||
formData.append("object_owner_collection", "inscription");
|
||||
formData.append("object_owner_id", local_selected_inscription_id);
|
||||
formData.append("apprenant_id", props.apprenant_id);
|
||||
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
|
|
@ -670,7 +742,7 @@ registerLocale('fr', fr);
|
|||
setLoading(true);
|
||||
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/Get_List_object_owner_collection_Stored_Files/",
|
||||
process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_List_object_owner_collection_Stored_Files/",
|
||||
{
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
|
|
@ -680,9 +752,9 @@ registerLocale('fr', fr);
|
|||
.then((result) => {
|
||||
setLoading(false);
|
||||
|
||||
//console.log(" ## result['status'] = ", result['status'])
|
||||
// console.log(" ## result['status'] = ", result['status'])
|
||||
if (String(result['status']) === String("true")) {
|
||||
// console.log('Message :', result['message']);
|
||||
// console.log('Message :', result['message']);
|
||||
setGet_List_Of_All_PJ_result(result['message']);
|
||||
setGet_List_Of_All_PJ_api("true");
|
||||
|
||||
|
|
@ -709,27 +781,19 @@ registerLocale('fr', fr);
|
|||
const [Download_one_attached_document_api, setDownload_one_attached_document_api] = useState();
|
||||
const [Download_one_attached_document_result, setDownload_one_attached_document_result] = useState();
|
||||
const [Download_one_attached_document_message, setDownload_one_attached_document_message] = useState();
|
||||
|
||||
const Download_one_attached_document = (event) => {
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
|
||||
var user_cookie = getCookie('tokenmysych');
|
||||
var part_cookie = getCookie('tokenmysypart');
|
||||
|
||||
|
||||
var stored_cookie = "";
|
||||
|
||||
if (props.type_user_connected && String(props.type_user_connected) === "partner_account")
|
||||
stored_cookie = part_cookie;
|
||||
else if (props.type_user_connected && String(props.type_user_connected) === "user_account")
|
||||
stored_cookie = user_cookie;
|
||||
|
||||
var nom_fiche_detaillee = "Fiche_Detaillee.pdf";
|
||||
var token = stored_cookie;
|
||||
var file_name = event.target.id;
|
||||
|
||||
|
||||
var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File/" + token + "/" + file_name;
|
||||
setLoading(true);
|
||||
var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_Stored_Downloaded_File/" + token + "/" + file_name + "/" + props.apprenant_id;
|
||||
|
||||
setLoading(true);
|
||||
axios.get(url, { responseType: 'blob', },)
|
||||
.then((res) => {
|
||||
setLoading(false);
|
||||
|
|
@ -749,7 +813,7 @@ registerLocale('fr', fr);
|
|||
const [Get_All_Documents_With_Filter_result, setGet_All_Documents_With_Filter_result] = useState();
|
||||
function Get_All_Documents_With_Filter() {
|
||||
|
||||
|
||||
|
||||
setgridline_id("");
|
||||
|
||||
var form = new FormData();
|
||||
|
|
@ -806,7 +870,7 @@ registerLocale('fr', fr);
|
|||
form.append("date_create_start_date", String(p_date_du));
|
||||
form.append("date_create_end_date", String(p_date_au));
|
||||
}
|
||||
else if (p_filtre3_value && p_filtre3 && String(p_filtre3) !== "date_creation") {
|
||||
else if (p_filtre3_value && p_filtre3 && String(p_filtre3) !== "date_creation") {
|
||||
filtre3_value = p_filtre3_value;
|
||||
form.append(filtre3, filtre3_value);
|
||||
}
|
||||
|
|
@ -850,18 +914,11 @@ registerLocale('fr', fr);
|
|||
const [p_date_du, setp_date_du] = useState(new Date().toLocaleDateString('fr-FR'));
|
||||
const [p_date_au, setp_date_au] = useState(new Date().toLocaleDateString('fr-FR'));
|
||||
|
||||
/***
|
||||
* IMPORTANT
|
||||
* Ce module permet d'afficher et telecharger tous les documents qui sont dans la collection 'download_files', c'est à dire :
|
||||
* 1 - Les documents importés manuellement sur l'espace du client
|
||||
* 2 - Les devis signés electroniquement (en effet ils sont automatiquement importés dans l'espace du client)
|
||||
* 3 - Les Convention signés electroniquement (en effet ils sont automatiquement importés dans l'espace du client)
|
||||
* 4 - A ajouter : les convocations adressées à ses apprenants
|
||||
* 5 - A ajouter : les attestations adressées à ses apprenants
|
||||
*
|
||||
* /!\ /!\ /!\ /!\ /!\ /!\ /!\ Les factures sont bien dans la collection, mais pour recuperer il faut passer par la collection 'partner_invoice_header'
|
||||
* /!\ /!\ /!\ /!\ /!\ /!\ /!\ raison pour laquel, on va mettre les documents d'un coté et les facture de l'autre.
|
||||
*/
|
||||
|
||||
const [selected_session_id, setselected_session_id] = useState("");
|
||||
const [selected_inscription_id, setselected_inscription_id] = useState("");
|
||||
|
||||
|
||||
return (
|
||||
|
||||
<div className="modules_mes_documents">
|
||||
|
|
@ -869,8 +926,8 @@ registerLocale('fr', fr);
|
|||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
|
||||
{props.my_title && <h3 style={{ fontFamily:'DM Sans' }}> {props.my_title} </h3>}
|
||||
{!props.my_title && <h3 style={{ fontFamily:'DM Sans' }}> Tous vos documents </h3>}
|
||||
{props.my_title && <h3 style={{ fontFamily: 'DM Sans' }}> {props.my_title} </h3>}
|
||||
{!props.my_title && <h3 style={{ fontFamily: 'DM Sans' }}> Tous vos documents </h3>}
|
||||
<div className="div_row">
|
||||
<div className="titre1"> Utilisez les filtres !</div>
|
||||
<div className="div_row" style={{ "marginBottom": "5px" }}>
|
||||
|
|
@ -1261,230 +1318,74 @@ registerLocale('fr', fr);
|
|||
<br />
|
||||
</div>
|
||||
|
||||
<div className="div_row" style={{ "border": "None", paddingRight: '10px' }}>
|
||||
|
||||
<div className="session_data">
|
||||
<div className="session_caract_Dialog"> <b> Choisir une Session ou une Promotion </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
|
||||
|
||||
<div style={{ "border": "None" }}>
|
||||
<div style={{ height: 650, width: '100%', paddingRight: '5px' }}>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
height: 600,
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
options={New_Get_List_Ent_Session_Promotion_result}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.session_id) {
|
||||
setselected_session_id(value.session_id);
|
||||
setselected_inscription_id(value.inscription_id);
|
||||
Get_List_Of_All_PJ( value.inscription_id);
|
||||
|
||||
// Gestion des cellule "statut"
|
||||
'& .cell--status--encours': {
|
||||
backgroundColor: '#E6F7C8',
|
||||
color: '#1a3e72',
|
||||
fontWeight: 'light',
|
||||
},
|
||||
'& .cell--status--traite': {
|
||||
backgroundColor: '#E6CEAA',
|
||||
color: '#F9E79F',
|
||||
fontWeight: 'light',
|
||||
},
|
||||
} else {
|
||||
setselected_session_id("");
|
||||
setselected_inscription_id("");
|
||||
setGet_List_Of_All_PJ_result([]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}}
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/*"& .MuiDataGrid-virtualScrollerRenderZone": {
|
||||
"& .MuiDataGrid-row": {
|
||||
"&:nth-child(2n)": { backgroundColor: "rgba(235, 235, 235, .7)" }
|
||||
}
|
||||
},*/
|
||||
"& .MuiDataGrid-columnHeaders": {
|
||||
backgroundColor: "#c8cfd5",
|
||||
color: "black",
|
||||
fontSize: 14
|
||||
},
|
||||
'& .line--statut--selected': {
|
||||
backgroundColor: '#FBF2EF',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--pair': {
|
||||
backgroundColor: 'rgba(235, 235, 235, .7)',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--impair': {
|
||||
backgroundColor: '#FFFFFF',
|
||||
color: 'black',
|
||||
},
|
||||
/>
|
||||
}
|
||||
/>}
|
||||
|
||||
|
||||
'& .line--statut--payed': {
|
||||
backgroundColor: '#EAFAF1',
|
||||
color: '#239B56',
|
||||
fontWeight: '700'
|
||||
},
|
||||
|
||||
|
||||
}}
|
||||
>
|
||||
<DataGrid
|
||||
|
||||
components={{
|
||||
Toolbar: CustomToolbar
|
||||
}}
|
||||
componentsProps={{ toolbar: { data_colums: columns } }}
|
||||
|
||||
// checkboxSelection
|
||||
disableSelectionOnClick
|
||||
onSelectionModelChange={(newSelectionModel) => {
|
||||
setSelectionModel(newSelectionModel);
|
||||
/*if (newSelectionModel.length === 1)
|
||||
handleClick_edit_invoice_From_Line(newSelectionModel);*/
|
||||
if (newSelectionModel.length !== 1) {
|
||||
//clean_order_detail_fields();
|
||||
//setsubmenu();
|
||||
setdisplay_detail_invoice();
|
||||
|
||||
|
||||
}
|
||||
}}
|
||||
|
||||
|
||||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
setgridline_id(newSelectionModel.row.id);
|
||||
// setp_detail_header_client_nom_id(newSelectionModel.row.order_header_client_id);
|
||||
// handleClick_edit_invoice_From_Line(newSelectionModel.row.id);
|
||||
}
|
||||
}
|
||||
selectionModel={selectionModel}
|
||||
|
||||
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
|
||||
rows={rowss.map((item, index) => (
|
||||
{
|
||||
id: index,
|
||||
_id: JSON.parse(item)._id,
|
||||
file_name: JSON.parse(item).file_name,
|
||||
file_business_object: JSON.parse(item).file_business_object,
|
||||
object_owner_collection: JSON.parse(item).object_owner_collection,
|
||||
type_document: JSON.parse(item).type_document,
|
||||
file_extention: JSON.parse(item).file_extention,
|
||||
client_raison_sociale: JSON.parse(item).client_raison_sociale,
|
||||
client_nom: JSON.parse(item).client_nom,
|
||||
creation_date: JSON.parse(item).creation_date,
|
||||
}
|
||||
))}
|
||||
|
||||
columns={columns}
|
||||
pageSize={10}
|
||||
className="datagridclass"
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
//disableSelectionOnClick
|
||||
/* components={{
|
||||
Toolbar: GridToolbar,
|
||||
}}*/
|
||||
|
||||
|
||||
//sx={datagridSx}
|
||||
getCellClassName={(params) => {
|
||||
|
||||
}}
|
||||
getRowClassName={(params) => {
|
||||
|
||||
// Pour la gestion de la couleur de zone double cliquée
|
||||
if (String(params.row.id) === String(gridline_id)) {
|
||||
return 'line--statut--selected';
|
||||
}
|
||||
else if (parseInt(String(params.row.id)) % 2 === 0) {
|
||||
return 'line--statut--pair';
|
||||
}
|
||||
else if (parseInt(String(params.row.id)) % 2 !== 0) {
|
||||
return 'line--statut--impair';
|
||||
}
|
||||
}}
|
||||
|
||||
|
||||
/>
|
||||
</Box>
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="div_row" > </div>
|
||||
|
||||
{/* <div className="div_row" style={{ "border": "None", paddingRight: '10px' }}>
|
||||
<div>
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<hr className="hr_break" />
|
||||
</div>
|
||||
|
||||
<div className="div_row" style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "padding": "5px" }}>
|
||||
Pièces jointes
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{Get_List_Of_All_PJ_result && <div className="div_row" style={{ "padding": "5px" }}>
|
||||
<div className="div_row">
|
||||
<b> Liste des pièces jointes </b> <br />
|
||||
Liste des pièces jointes <br />
|
||||
<div className="div_row">
|
||||
{Get_List_Of_All_PJ_result && Get_List_Of_All_PJ_result.map((val) => (
|
||||
<div className="div_row_list_pj" >
|
||||
<nav name={(JSON.parse(val).file_name)}
|
||||
id={(JSON.parse(val).file_name)}> <i> <AttachFileIcon />{(JSON.parse(val).file_business_object)} </i> <br /><font style={{ "color": "green", "cursor": "pointer" }}
|
||||
name={(JSON.parse(val).file_name)}
|
||||
id={(JSON.parse(val).file_name)} onClick={Download_one_attached_document}> Télécharger </font></nav>
|
||||
<div className="div_row_list_pj" style={{ fontFamily: "DM Sans", fontSize: '14px' }}>
|
||||
<nav style={{ "color": "green", "cursor": "pointer" }} onClick={Download_one_attached_document} name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}> Télécharger <i> {(JSON.parse(val).file_business_object)}</i> </nav> <br />
|
||||
|
||||
<Popup
|
||||
trigger={
|
||||
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
|
||||
|
||||
|
||||
}
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, la pièce jointe sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
|
||||
// Delete_one_attached_document(event);
|
||||
close();
|
||||
}}
|
||||
name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}
|
||||
> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup_annuler"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>}
|
||||
</div>*/}
|
||||
|
||||
<div className="div_row" ref={myRef} id="myRef" > </div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ const New_ButtonHilight_ENT_Student_2025 = () => {
|
|||
stored_part = getCookie('tokenmysypart');
|
||||
|
||||
|
||||
|
||||
|
||||
var local_user_connect = 0;
|
||||
var local_part_connect = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import { FaHandPointRight } from "react-icons/fa";
|
|||
import { useParams } from 'react-router-dom'
|
||||
import Popup from 'reactjs-popup';
|
||||
import 'reactjs-popup/dist/index.css';
|
||||
|
||||
|
||||
function OrderConfirmation_3DS(props) {
|
||||
const [menu, setmenu] = useState("");
|
||||
const history = useHistory();
|
||||
|
|
|
|||
|
|
@ -571,9 +571,10 @@ const Partner_Configuration_Technique = (props) => {
|
|||
const columns_list_competence = [
|
||||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'id', headerName: 'id', hide: true },
|
||||
{ field: 'domaine_competence_id', headerName: 'domaine_competence_id', hide: true },
|
||||
{ field: 'code', headerName: 'Code', flex: 1, hide: false, editable: false },
|
||||
{ field: 'description', headerName: 'Description', flex: 1, hide: false, editable: false },
|
||||
{ field: 'domaine', headerName: 'Domaine', flex: 1, hide: false, editable: false },
|
||||
{ field: 'domaine_competence_nom', headerName: 'Domaine Compét.', flex: 1, hide: false, editable: false },
|
||||
{ field: 'metier', headerName: 'Métier', flex: 1, hide: false, editable: false },
|
||||
{ field: 'commentaire', headerName: 'Commentaire', flex: 1, hide: false, editable: false },
|
||||
|
||||
|
|
@ -717,6 +718,18 @@ const Partner_Configuration_Technique = (props) => {
|
|||
},
|
||||
},
|
||||
|
||||
{
|
||||
field: 'creation_date', headerName: 'Date Création', flex: 1, hide: false, editable: false,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
|
||||
{cellValues.row.creation_date && <> {String(cellValues.row.creation_date).substring(0, 16)} </>}
|
||||
</div>
|
||||
|
||||
);
|
||||
},
|
||||
},
|
||||
|
||||
{ field: 'message', headerName: 'MEssage', flex: 1, hide: true, editable: false },
|
||||
{ field: 'error_message', headerName: 'Erreur', flex: 1, hide: false, editable: false },
|
||||
|
||||
|
|
@ -793,6 +806,8 @@ const Partner_Configuration_Technique = (props) => {
|
|||
|
||||
useEffect(() => {
|
||||
|
||||
|
||||
Getall_Default_Domaine_Competence_List();
|
||||
Getall_Parter_config_Points();
|
||||
Getall_Parter_type_client();
|
||||
Getall_Parter_groupe_client();
|
||||
|
|
@ -1423,6 +1438,89 @@ const Partner_Configuration_Technique = (props) => {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
const [New_Getall_Default_Domaine_Competence_List_result, setNew_Getall_Default_Domaine_Competence_List_result] = useState([]);
|
||||
|
||||
const [Getall_Default_Domaine_Competence_List_api, setGetall_Default_Domaine_Competence_List_api] = useState();
|
||||
const [Getall_Default_Domaine_Competence_List_message, setGetall_Default_Domaine_Competence_List_message] = useState();
|
||||
const [Getall_Default_Domaine_Competence_List_result, setGetall_Default_Domaine_Competence_List_result] = useState([]);
|
||||
function Getall_Default_Domaine_Competence_List(event) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Competence_Domaine/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
setLoading(false);
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Getall_Default_Domaine_Competence_List res.data.status = " + res.data.status);
|
||||
// console.log(" In Getall_Default_Domaine_Competence_List res.data.message r_class = " + res.data.message);
|
||||
setGetall_Default_Domaine_Competence_List_api("true");
|
||||
setGetall_Default_Domaine_Competence_List_result(res.data.message);
|
||||
|
||||
var new_data2 = [];
|
||||
const new_data = res.data.message.map((x) => {
|
||||
|
||||
//---
|
||||
var localid = JSON.parse(x).id;
|
||||
var local_id = JSON.parse(x)._id;
|
||||
var local_description = JSON.parse(x).description;
|
||||
var local_code = JSON.parse(x).code;
|
||||
var local_nom = JSON.parse(x).nom;
|
||||
//---
|
||||
var node = {
|
||||
"_id": local_id,
|
||||
"id": localid,
|
||||
"label": local_code + " - " + local_nom,
|
||||
"code": local_code,
|
||||
"description": local_description,
|
||||
"nom": local_nom,
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
});
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": "",
|
||||
"id": "",
|
||||
"label": "",
|
||||
"code": "",
|
||||
"description": "",
|
||||
"nom": "",
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
setNew_Getall_Default_Domaine_Competence_List_result(new_data2);
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
setGetall_Default_Domaine_Competence_List_api("false");
|
||||
setGetall_Default_Domaine_Competence_List_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_Default_Domaine_Competence_List = ', error);
|
||||
setGetall_Default_Domaine_Competence_List_api("false");
|
||||
alert(" Impossible de recuperer la liste des domaines de compétence ");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const [display_detail_quotation_config, setdisplay_detail_quotation_config] = React.useState();
|
||||
|
||||
const [display_detail_config, setdisplay_detail_config] = React.useState();
|
||||
|
|
@ -3071,7 +3169,7 @@ const Partner_Configuration_Technique = (props) => {
|
|||
form.append("competence_id", selected_competence_id);
|
||||
form.append("code", p_detail_competence_code);
|
||||
form.append("description", p_detail_competence_description);
|
||||
form.append("domaine", p_detail_competence_domaine);
|
||||
form.append("domaine_competence_id", p_detail_competence_domaine);
|
||||
form.append("metier", p_detail_competence_metier);
|
||||
form.append("commentaire", p_detail_competence_commentaire);
|
||||
|
||||
|
|
@ -3080,7 +3178,7 @@ const Partner_Configuration_Technique = (props) => {
|
|||
myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Competence/";
|
||||
form.append("code", p_detail_competence_code);
|
||||
form.append("description", p_detail_competence_description);
|
||||
form.append("domaine", p_detail_competence_domaine);
|
||||
form.append("domaine_competence_id", p_detail_competence_domaine);
|
||||
form.append("metier", p_detail_competence_metier);
|
||||
form.append("commentaire", p_detail_competence_commentaire);
|
||||
|
||||
|
|
@ -3513,10 +3611,32 @@ const Partner_Configuration_Technique = (props) => {
|
|||
|
||||
<Dialog
|
||||
open={Dialog_competence_1_open}
|
||||
onClose={Dialog_competence_1_handleClose}
|
||||
// onClose={Dialog_competence_1_handleClose}
|
||||
|
||||
className="displaypartnersession"
|
||||
|
||||
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"
|
||||
disableEnforceFocus={true}
|
||||
|
||||
>
|
||||
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> Compétence </DialogTitle>
|
||||
|
|
@ -3562,7 +3682,39 @@ const Partner_Configuration_Technique = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog" > Domaine
|
||||
{New_Getall_Default_Domaine_Competence_List_result && New_Getall_Default_Domaine_Competence_List_result.length > 0 && <div className="session_caract_Dialog" > Domaine Compétence
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
name="event_dialog_competence_domaine"
|
||||
id="event_dialog_competence_domaine"
|
||||
fullWidth
|
||||
|
||||
options={New_Getall_Default_Domaine_Competence_List_result}
|
||||
value={New_Getall_Default_Domaine_Competence_List_result.filter((data) => (data)._id === String(p_detail_competence_domaine))[0].label}
|
||||
onChange={(event, value) => {
|
||||
|
||||
if (value && value._id) {
|
||||
setp_detail_competence_domaine(value._id);
|
||||
|
||||
} else {
|
||||
setp_detail_competence_domaine("");
|
||||
}
|
||||
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
{/*<div className="session_caract_Dialog" > Domaine
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
|
|
@ -3578,7 +3730,7 @@ const Partner_Configuration_Technique = (props) => {
|
|||
}
|
||||
/>
|
||||
|
||||
</div>
|
||||
</div>*/}
|
||||
|
||||
|
||||
<div className="session_caract_Dialog" > Métier
|
||||
|
|
@ -4472,7 +4624,7 @@ const Partner_Configuration_Technique = (props) => {
|
|||
</DialogActions>
|
||||
|
||||
</Dialog>
|
||||
|
||||
|
||||
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Votre configuration </h3>
|
||||
<div className="div_row" ref={myRef_head} id="myRef_head" >
|
||||
|
|
@ -5597,9 +5749,10 @@ const Partner_Configuration_Technique = (props) => {
|
|||
_id: JSON.parse(item)._id,
|
||||
code: JSON.parse(item).code,
|
||||
description: JSON.parse(item).description,
|
||||
domaine: JSON.parse(item).domaine,
|
||||
domaine_competence_id: JSON.parse(item).domaine,
|
||||
metier: JSON.parse(item).metier,
|
||||
commentaire: JSON.parse(item).commentaire,
|
||||
domaine_competence_nom: JSON.parse(item).domaine_competence_nom,
|
||||
|
||||
}
|
||||
))}
|
||||
|
|
@ -5613,7 +5766,7 @@ const Partner_Configuration_Technique = (props) => {
|
|||
setselected_competence_id(newSelectionModel.row._id);
|
||||
setp_detail_competence_code(newSelectionModel.row.code);
|
||||
setp_detail_competence_description(newSelectionModel.row.description);
|
||||
setp_detail_competence_domaine(newSelectionModel.row.domaine);
|
||||
setp_detail_competence_domaine(newSelectionModel.row.domaine_competence_id);
|
||||
setp_detail_competence_metier(newSelectionModel.row.metier);
|
||||
setp_detail_competence_commentaire(newSelectionModel.row.commentaire);
|
||||
|
||||
|
|
@ -7116,6 +7269,8 @@ const Partner_Configuration_Technique = (props) => {
|
|||
|
||||
statut: JSON.parse(item).statut,
|
||||
sent: JSON.parse(item).sent,
|
||||
creation_date: JSON.parse(item).creation_date,
|
||||
|
||||
error_message: JSON.parse(item).error_message,
|
||||
smtp_account_From_User: JSON.parse(item).smtp_account_From_User,
|
||||
smtp_account_user: JSON.parse(item).smtp_account_user,
|
||||
|
|
|
|||
|
|
@ -1,17 +1,21 @@
|
|||
import React, { useState, useEffect } from "react";
|
||||
import UpdateUserInfo from "../components/UpdateUserInfo";
|
||||
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 "../components/UserHistoryRecherche";
|
||||
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||
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 Alert from '@mui/material/Alert';
|
||||
import AlertTitle from '@mui/material/AlertTitle';
|
||||
import Stack from '@mui/material/Stack';
|
||||
|
||||
|
||||
import UpgradeToPro from "./UpgradeToPro"
|
||||
import Profil_Objectif from "./ProfilObjectif";
|
||||
|
|
@ -23,11 +27,21 @@ 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_Alert_Confirmation from "./Module_Alert_Confirmation";
|
||||
import Module_Ent_Mes_Notes from "./Module_Ent_Mes_Notes";
|
||||
|
||||
function Student_Account() {
|
||||
const [menu, setmenu] = useState("mes_formations");
|
||||
import { useParams } from 'react-router-dom'
|
||||
|
||||
function Student_Account_Ent() {
|
||||
|
||||
const { local_props_apprenant_id, local_props_menu } = useParams()
|
||||
|
||||
|
||||
const [menu, setmenu] = useState(local_props_menu);
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
|
||||
const [cookie_apprenant_id, setCookie_apprenant_id, removeCookie_apprenant_id] = useCookies(['tokenmysychapprenant']);
|
||||
const [result, setResult] = useState("");
|
||||
|
|
@ -92,7 +106,7 @@ function Student_Account() {
|
|||
setfirstConnexion(location.state.firstconnexion);
|
||||
}
|
||||
|
||||
|
||||
Get_Ent_Message_Alert();
|
||||
|
||||
|
||||
}, []);
|
||||
|
|
@ -294,7 +308,7 @@ function Student_Account() {
|
|||
const [isSelected, setIsSelected] = useState(false);
|
||||
const [isnewimage, setisnewimage] = useState();
|
||||
|
||||
const [apprenant_id, setapprenant_id] = useState("");
|
||||
const [apprenant_id, setapprenant_id] = useState(local_props_apprenant_id);
|
||||
|
||||
|
||||
const changeHandler = (event) => {
|
||||
|
|
@ -340,7 +354,100 @@ function Student_Account() {
|
|||
|
||||
|
||||
|
||||
const [New_Get_Ent_Message_Alert_result, setNew_Get_Ent_Message_Alert_result] = useState([]);
|
||||
|
||||
const [Get_Ent_Message_Alert_api, setGet_Ent_Message_Alert_api] = useState();
|
||||
const [Get_Ent_Message_Alert_message, setGet_Ent_Message_Alert_message] = useState();
|
||||
const [Get_Ent_Message_Alert_result, setGet_Ent_Message_Alert_result] = useState([]);
|
||||
function Get_Ent_Message_Alert(event) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
form.append("token", stored_cookie);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Ent_Alert_Message/";
|
||||
|
||||
setLoading(true);
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Get_Ent_Message_Alert res.data.status = " + res.data.status);
|
||||
// console.log(" In Get_Ent_Message_Alert res.data.message r_class = " + res.data.message);
|
||||
setGet_Ent_Message_Alert_api("true");
|
||||
setGet_Ent_Message_Alert_result(res.data.message);
|
||||
|
||||
var new_data2 = [];
|
||||
const new_data = res.data.message.map((x) => {
|
||||
|
||||
//---
|
||||
var localid = JSON.parse(x).id;
|
||||
var local_id = JSON.parse(x)._id;
|
||||
var local_code = JSON.parse(x).code;
|
||||
var local_priorite = JSON.parse(x).priorite;
|
||||
var local_message = JSON.parse(x).message;
|
||||
var local_date_debut = JSON.parse(x).date_debut;
|
||||
var local_date_fin = JSON.parse(x).date_fin;
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": local_id,
|
||||
"id": localid,
|
||||
"label": local_code,
|
||||
"code": local_code,
|
||||
"priorite": local_priorite,
|
||||
"message": local_message,
|
||||
"date_debut": local_date_debut,
|
||||
"date_fin": local_date_fin,
|
||||
};
|
||||
new_data2.push(node);
|
||||
});
|
||||
|
||||
|
||||
|
||||
if (new_data2.length > 0)
|
||||
setNew_Get_Ent_Message_Alert_result(new_data2);
|
||||
}
|
||||
else {
|
||||
setGet_Ent_Message_Alert_api("false");
|
||||
setGet_Ent_Message_Alert_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 :( Get_Ent_Message_Alert = ', error);
|
||||
setGet_Ent_Message_Alert_api("false");
|
||||
alert(" Impossible de recuperer la liste des messages d'alerte");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
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 [isLoading, setLoading] = useState();
|
||||
|
||||
return (
|
||||
<div className="account" style={{ background: '#f4f4fb' }}>
|
||||
|
|
@ -358,7 +465,23 @@ function Student_Account() {
|
|||
|
||||
|
||||
|
||||
<div className="div_mobile">
|
||||
<div className="div_mobile"> {isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
|
||||
{/*** Affichage des messages d'alerte*/}
|
||||
{display_alert_mysy && String(display_alert_mysy) === "1" &&
|
||||
<Module_Alert_Confirmation alert_message={alert_message}
|
||||
alert_type={alert_type}
|
||||
clear_alert_message={clear_alert_message}
|
||||
clear_alert_type={clear_alert_type}
|
||||
clear_display_alert_mysy={clear_display_alert_mysy}
|
||||
/>
|
||||
}
|
||||
{/*** FIN Affichage des messages d'alerte*/}
|
||||
|
||||
|
||||
|
||||
<div>
|
||||
<h1 className="h1_transparent">Intranet Apprenant - Connexion MySy Training Technology </h1>
|
||||
</div>
|
||||
|
|
@ -390,27 +513,108 @@ function Student_Account() {
|
|||
{connected_user_data && connected_user_data.type &&
|
||||
<h3 style={{ fontFamily: 'DM Sans', textAlign: 'center' }}> Espace numérique de travail 28/10/2025</h3>}
|
||||
|
||||
{/*** Si on A DES MESSAGES d'ALERTE, alors, alors on AFFICHE la zonne */}
|
||||
{New_Get_Ent_Message_Alert_result && New_Get_Ent_Message_Alert_result.length > 0 && <div style={{ width: "100%", float: 'left' }}>
|
||||
<div style={{ width: '30%', float: 'left', padding: '20px' }}>
|
||||
{New_Get_Ent_Message_Alert_result && New_Get_Ent_Message_Alert_result.length > 0 &&
|
||||
New_Get_Ent_Message_Alert_result.map((message) => (
|
||||
<Stack sx={{ width: '100%', }} spacing={2}>
|
||||
{message.priorite === "1" &&
|
||||
<Alert variant="outlined" sx={{ border: 0, marginBottom: '20px' }} severity="warning">
|
||||
<AlertTitle sx={{ fontFamily: 'DM Sans', fontSize: '20px', textAlign: 'left', float: 'left' }}>Important</AlertTitle>
|
||||
<font style={{ fontFamily: 'DM Sans', fontSize: '16px', textAlign: 'left', float: 'left' }}> {message.message} </font>
|
||||
</Alert>}
|
||||
|
||||
{String(menu) === String("affichage") && <UpdateUserInfo apprenant_id={apprenant_id} />}
|
||||
{message.priorite === "2" &&
|
||||
<Alert variant="outlined" sx={{ border: 0, marginBottom: '20px' }} severity="info">
|
||||
<AlertTitle sx={{ fontFamily: 'DM Sans', fontSize: '20px', textAlign: 'left', float: 'left' }}>Information</AlertTitle>
|
||||
<font style={{ fontFamily: 'DM Sans', fontSize: '16px', textAlign: 'left', float: 'left' }}> {message.message} </font>
|
||||
</Alert>}
|
||||
|
||||
{String(menu) === String("recherche") && <UserHistoryRecherche />}
|
||||
{message.priorite === "0" &&
|
||||
<Alert variant="outlined" sx={{ border: 0, marginBottom: '20px', }} severity="error">
|
||||
<AlertTitle sx={{ fontFamily: 'DM Sans', fontSize: '20px', textAlign: 'left', float: 'left' }}>Urgent </AlertTitle>
|
||||
<font style={{ fontFamily: 'DM Sans', fontSize: '16px', textAlign: 'left', float: 'left' }}> {message.message} </font>
|
||||
</Alert>}
|
||||
</Stack>
|
||||
))}
|
||||
|
||||
{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 style={{ width: '69%', float: 'right' }}>
|
||||
|
||||
{String(menu) === String("apprenant_account_data") && <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}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("mon_planning") &&
|
||||
<Module_Ent_Mon_Planning apprenant_id={apprenant_id}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("mes_notes") &&
|
||||
<Module_Ent_Mes_Notes apprenant_id={apprenant_id}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("mes_documents") &&
|
||||
<Modules_Mes_Documents apprenant_id={apprenant_id}
|
||||
/>}
|
||||
|
||||
</div>
|
||||
|
||||
</div>}
|
||||
|
||||
|
||||
{/*** Si on A DES PASSSSS MESSAGES d'ALERTE, alors, alors on NNNNN'AFFICHE PASSSSSSSSSSSSla zonne */}
|
||||
{New_Get_Ent_Message_Alert_result.length <= 0 && <div style={{ width: "100%", float: 'left' }}>
|
||||
|
||||
|
||||
<div style={{ width: '100%', maxWidth: '1600px', margin: 'auto' }}>
|
||||
|
||||
{String(menu) === String("apprenant_account_data") && <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}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("mon_planning") &&
|
||||
<Module_Ent_Mon_Planning apprenant_id={apprenant_id}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("mes_notes") &&
|
||||
<Module_Ent_Mes_Notes apprenant_id={apprenant_id}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("mes_documents") &&
|
||||
<Modules_Mes_Documents apprenant_id={apprenant_id}
|
||||
/>}
|
||||
|
||||
</div>
|
||||
|
||||
</div>}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div >
|
||||
);
|
||||
}
|
||||
|
||||
export default Student_Account;
|
||||
export default Student_Account_Ent;
|
||||
|
||||
|
|
@ -1,460 +0,0 @@
|
|||
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;
|
||||
|
||||
|
|
@ -929,10 +929,10 @@ function Survey_Eval_QR_Code() {
|
|||
|
||||
</div>
|
||||
|
||||
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>
|
||||
<div style={{ width: "100%", "marginLeft": "auto", "marginRight": "auto" }}>
|
||||
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
||||
|
||||
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
|
||||
<div className="div_row_gauche" style={{ "textAlign": 'left', }}>
|
||||
|
||||
<Popup
|
||||
trigger={
|
||||
|
|
@ -991,7 +991,7 @@ function Survey_Eval_QR_Code() {
|
|||
|
||||
</div>
|
||||
|
||||
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }} >
|
||||
<div className="div_row_droite" style={{ "textAlign": 'right', }} >
|
||||
<Button variant="contained" className="bton_annule" onClick={(e) => {
|
||||
Signature_E_Document(0);
|
||||
}}>J'etais Absent
|
||||
|
|
|
|||
|
|
@ -590,7 +590,7 @@ function UpdateUserInfo(props) {
|
|||
|
||||
|
||||
return (
|
||||
<div className='updateuserinfo'>
|
||||
<div className='updateuserinfo' style={{ padding: '20px' }}>
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
|
|
@ -609,7 +609,7 @@ function UpdateUserInfo(props) {
|
|||
|
||||
|
||||
<div className="titre1"> Données personnelles </div>
|
||||
<hr className="my_hr" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -727,7 +727,7 @@ function UpdateUserInfo(props) {
|
|||
|
||||
|
||||
|
||||
<div className="session_caract"> <b> LinkedIn </b> <br />
|
||||
<div className="session_caract"> LinkedIn <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -753,7 +753,7 @@ function UpdateUserInfo(props) {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> Facebook </b> <br />
|
||||
<div className="session_caract"> Facebook <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -779,7 +779,7 @@ function UpdateUserInfo(props) {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> X (Twitter) </b> <br />
|
||||
<div className="session_caract"> X (Twitter) <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -805,7 +805,7 @@ function UpdateUserInfo(props) {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> Adresse </b> <br />
|
||||
<div className="session_caract"> Adresse <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -831,7 +831,7 @@ function UpdateUserInfo(props) {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> Code Postal </b> <br />
|
||||
<div className="session_caract"> Code Postal <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -857,7 +857,7 @@ function UpdateUserInfo(props) {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> Ville </b> <br />
|
||||
<div className="session_caract"> Ville <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -883,7 +883,7 @@ function UpdateUserInfo(props) {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> <b> Pays </b> <br />
|
||||
<div className="session_caract"> Pays <br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
@ -920,29 +920,31 @@ function UpdateUserInfo(props) {
|
|||
<div className="div_row22">
|
||||
{fields1desabled == false && <div className="div_row">
|
||||
<div className="div_row_gauche" style={{ "textAlign": "left" }}>
|
||||
<Button variant="contained" color="success" className="div_row22 btn_enreg" onClick={RecordData}>Enregistrer</Button>
|
||||
<Button variant="contained" color="success" className="div_row22 btn_enreg" onClick={RecordData}>Enregistrer</Button>
|
||||
</div>
|
||||
<div className="div_row_droite" style={{ "textAlign": "right" }}>
|
||||
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={desablefield1}>Annuler</Button>
|
||||
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={desablefield1}>Annuler</Button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
{fields1desabled == true &&
|
||||
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={enablefieds1}>Modifier</Button>
|
||||
}
|
||||
{fields1desabled == true && <div className="div_row">
|
||||
<div className="div_row_droite" style={{ "textAlign": "right" }} >
|
||||
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={enablefieds1}>Editer</Button>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
</Box>
|
||||
|
||||
<hr className="my_hr" />
|
||||
|
||||
<div style={{ "width": "10%" }}> </div>
|
||||
<div className="titre1"> Securité </div>
|
||||
<hr className="my_hr" />
|
||||
|
||||
|
||||
|
||||
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 } }}>
|
||||
<div style={{ width: "100%", float: 'left' }}>
|
||||
<div> <b> Actuel Password </b> <br />
|
||||
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, }}>
|
||||
<div style={{ width: "100%", float: 'left', fontFamily: 'DM Sans' }}>
|
||||
<div style={{ fontFamily: 'DM Sans' }}> Mot de passe actuel <br />
|
||||
<FormControl sx={{ m: 1, width: '100%' }} variant="standard" size="small" className="texte_area_passwd">
|
||||
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
|
||||
<OutlinedInput
|
||||
|
|
@ -968,8 +970,8 @@ function UpdateUserInfo(props) {
|
|||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div style={{ width: "100%", float: 'left' }}>
|
||||
<div> <b> Nouveau Password </b> <br />
|
||||
<div style={{ width: "100%", float: 'left', fontFamily: 'DM Sans' }}>
|
||||
<div style={{ fontFamily: 'DM Sans' }}> Nouveau mot de passe <br />
|
||||
<FormControl sx={{ m: 1, width: '100%' }} variant="standard" size="small" className="texte_area_passwd">
|
||||
<InputLabel htmlFor="outlined-adornment-password2"></InputLabel>
|
||||
<OutlinedInput
|
||||
|
|
@ -996,8 +998,8 @@ function UpdateUserInfo(props) {
|
|||
</div>
|
||||
<br />
|
||||
|
||||
<div style={{ width: "100%", float: 'left' }}>
|
||||
<div> <b> Nouveau Password (2) </b> <br />
|
||||
<div style={{ width: "100%", float: 'left', fontFamily: 'DM Sans' }}>
|
||||
<div style={{ fontFamily: 'DM Sans' }}> Nouveau mot de passe (2) <br />
|
||||
<FormControl sx={{ m: 1, width: '100%' }} variant="standard" size="small" className="texte_area_passwd">
|
||||
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
|
||||
<OutlinedInput
|
||||
|
|
@ -1027,16 +1029,18 @@ function UpdateUserInfo(props) {
|
|||
|
||||
{pwdfieldsdesabled == false && <div className="div_row">
|
||||
<div className="div_row_gauche" style={{ "textAlign": "left" }}>
|
||||
<Button variant="contained" color="success" className="div_row22 btn_enreg" onClick={UpdateUserPwd}>Enregistrer</Button>
|
||||
<Button variant="contained" color="success" className="div_row22 btn_enreg" onClick={UpdateUserPwd}>Enregistrer</Button>
|
||||
</div>
|
||||
<div className="div_row_droite" style={{ "textAlign": "right" }} >
|
||||
<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>
|
||||
}
|
||||
{pwdfieldsdesabled == true &&
|
||||
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={enablesecurtypwdfields}>Modifier</Button>
|
||||
}
|
||||
{pwdfieldsdesabled == true && <div className="div_row">
|
||||
<div className="div_row_droite" style={{ "textAlign": "right" }} >
|
||||
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={enablesecurtypwdfields}>Editer</Button>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ const useStyles = makeStyles((theme) => ({
|
|||
// left: 10,
|
||||
top: 400
|
||||
},
|
||||
|
||||
|
||||
paper: {
|
||||
overflowY: 'unset',
|
||||
},
|
||||
|
|
@ -61,6 +61,7 @@ const Header_ENT_Student = () => {
|
|||
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 [PartnerMenu, setPartnerMenu] = React.useState(null);
|
||||
|
|
@ -100,8 +101,9 @@ const Header_ENT_Student = () => {
|
|||
|
||||
|
||||
const handleMyAccount = () => {
|
||||
const stored_apprenant_id = getCookie('tokenmysychapprenant');
|
||||
setAccountMenu(null);
|
||||
history.push("/mysy-user-account")
|
||||
history.push("/mysy-student-ent/" + String(stored_apprenant_id) + "/apprenant_account_data")
|
||||
};
|
||||
|
||||
const handleAccountConnexion = () => {
|
||||
|
|
@ -160,7 +162,7 @@ const Header_ENT_Student = () => {
|
|||
setsomeoneconnected("0");
|
||||
setDialog_1_open(false);
|
||||
history.push("/recherche-formation");
|
||||
}
|
||||
}
|
||||
|
||||
function user_logout_confirmation() {
|
||||
/* si c'est une connexion partner qui est active */
|
||||
|
|
@ -211,7 +213,7 @@ const Header_ENT_Student = () => {
|
|||
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 <br />
|
||||
|
|
@ -266,38 +268,26 @@ const Header_ENT_Student = () => {
|
|||
}} />
|
||||
|
||||
<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={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/mes_formations"} className="menu-link">Formations</a>
|
||||
<a href={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/mon_planning"} className="menu-link">Planning</a>
|
||||
<a href={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/mes_notes"} className="menu-link">Notes</a>
|
||||
|
||||
{/*<a href="/Recherche-Article-formation" className="menu-link">Blog</a>*/}
|
||||
<div className="separator"></div>
|
||||
<a href="/marketplace" className="menu-link">Marketplace</a>
|
||||
<a href={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/mes_documents"} 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") &&
|
||||
<a href={"/mysy-student-ent/" + `${stored_apprenant_id}` + "/apprenant_account_data"} className="btn btn-primary">Mon compte</a>
|
||||
}
|
||||
|
||||
</div>
|
||||
<div className="separator hide_on_mobile"></div>
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
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";
|
||||
import Student_Account from "./../components/Student_Account";
|
||||
const student_account = () => {
|
||||
import Student_Account_Ent from "../components/Student_Account_Ent";
|
||||
const student_account_ent = () => {
|
||||
|
||||
return (
|
||||
<div>
|
||||
<New_Navigation_ENT_Student_2025 />
|
||||
<ENT_Student_New_C_Header_2025_V2 />
|
||||
<Student_Account />
|
||||
<Student_Account_Ent />
|
||||
<New_C_Footer_Without_Testimony_2025_V2 />
|
||||
</div>
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
export default student_account;
|
||||
export default student_account_ent;
|
||||
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
width: 100%;
|
||||
max-width: 1500px;
|
||||
margin: auto;
|
||||
|
||||
|
||||
.loader-container {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
.module_ent_mes_notes {
|
||||
|
||||
width: 100%;
|
||||
max-width: 1500px;
|
||||
margin: auto;
|
||||
|
||||
.loader-container {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
.module_ent_mon_planning {
|
||||
|
||||
width: 100%;
|
||||
max-width: 1500px;
|
||||
margin: auto;
|
||||
|
||||
.loader-container {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
|
|
@ -1719,7 +1723,7 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
|
|
@ -2310,7 +2314,7 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
|
|
|
|||
Loading…
Reference in New Issue