15/12/25 - 13h
parent
09894d2904
commit
ec05e93ddb
|
|
@ -96,7 +96,9 @@ function App() {
|
|||
const New_Sign_Up_2025 = lazy(() => import("./pages/new_p_sign_up_2025"));
|
||||
const New_Sign_In_2025 = lazy(() => import("./pages/new_p_sign_in_2025"));
|
||||
const Student_Account_Ent = lazy(() => import("./pages/student_account_ent"));
|
||||
|
||||
|
||||
const Intranet_Client_Account = lazy(() => import("./pages/intranet_client_account"));
|
||||
|
||||
|
||||
|
||||
const Account = lazy(() => import("./pages/account"));
|
||||
|
|
@ -359,14 +361,15 @@ function App() {
|
|||
<Route path="/PartnerLogin0" exact component={PartnerLogin0} />
|
||||
<Route path="/PartnerLogin1" exact component={PartnerLogin1} />
|
||||
|
||||
<Route path="/mysy-user-account" exact component={Account} />
|
||||
<Route path="/mysy-user-account" exact component={Intranet_Client_Account} />
|
||||
<Route path="/Ajout-Article-formation" exact component={AddArticle} />
|
||||
<Route path="/ResetUserPwd/:token/:accounttype" exact component={ResetUserPwd} />
|
||||
|
||||
|
||||
<Route path="/DeleteUserAccount/:token" exact component={DeleteUserAccount} />
|
||||
|
||||
<Route path="/mysy-student-ent/:local_props_apprenant_id/:local_props_menu" exact component={Student_Account_Ent} />
|
||||
<Route path="/mysy-student-ent/:local_props_apprenant_id/:local_props_menu" exact component={Student_Account_Ent} />
|
||||
<Route path="/mysy-user-account/:local_props_client_id/:local_props_menu" exact component={Intranet_Client_Account} />
|
||||
|
||||
{/* Fin Migration */}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import React, { useState, useEffect } from "react";
|
||||
import UpdateUserInfo from "../components/UpdateUserInfo";
|
||||
import UpdateUserInfo_Intranet_Client from "../components/UpdateUserInfo_Intranet_Client";
|
||||
import bannerimg from "../mysy_img/MYSY_banner_compte.png";
|
||||
import profileimg from "../mysy_img/MYSY-profil-2.png";
|
||||
import Button from '@mui/material/Button';
|
||||
|
|
@ -21,13 +22,25 @@ 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_Commande_Devis from "./Intranet_Commande_Devis";
|
||||
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 { useParams } from 'react-router-dom';
|
||||
import Module_Intranet_Client_Internal_Email_Management from "./Module_Intranet_Client_Internal_Email_Management";
|
||||
|
||||
function Account() {
|
||||
|
||||
const { local_props_client_id, local_props_menu } = useParams();
|
||||
|
||||
|
||||
const [menu, setmenu] = useState("mes_stagiaires");
|
||||
|
||||
|
||||
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
|
||||
const [cookie_client_id, setCookie_client_id, removeCookie_client_id] = useCookies(['tokenmysychclient']);
|
||||
const [result, setResult] = useState("");
|
||||
const [myApiResponse, setmyApiResponse] = useState("");
|
||||
const stored_user = getCookie('tokenmysych');
|
||||
|
|
@ -52,10 +65,18 @@ function Account() {
|
|||
const location = useLocation();
|
||||
useEffect(() => {
|
||||
|
||||
|
||||
|
||||
var list_menu = ["affichage", "recherche", "upgradecompte", "profil_objectif", "mes_factures", "mes_documents"]
|
||||
|
||||
if (local_props_menu && String(local_props_menu) === "affichage") {
|
||||
setmenu("affichage")
|
||||
}
|
||||
|
||||
getImage();
|
||||
|
||||
console.log(" ## local_props_client_id = ", local_props_client_id, " ## local_props_menu = ", local_props_menu)
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
//alert(" début puch");
|
||||
history.push("/Connexion");
|
||||
|
|
@ -109,7 +130,7 @@ function Account() {
|
|||
//console.log(" getImage: res.data.message.img = " + res.data.message);
|
||||
if (res.data.message.img.length > 0) {
|
||||
setisimage("True");
|
||||
}
|
||||
}
|
||||
else {
|
||||
setisimage("False");
|
||||
}
|
||||
|
|
@ -138,7 +159,8 @@ function Account() {
|
|||
/* si c'est une connexion partner qui est active */
|
||||
if (typeof (stored_user) != "undefined") {
|
||||
removeCookie('tokenmysych', { path: '/' });
|
||||
history.push("/Connexion");
|
||||
removeCookie_client_id('tokenmysychclient', { path: '/' });
|
||||
history.push("/intranet");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -379,7 +401,7 @@ function Account() {
|
|||
<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>
|
||||
|
|
@ -398,7 +420,7 @@ function Account() {
|
|||
{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>
|
||||
|
|
@ -481,12 +503,23 @@ function Account() {
|
|||
{result}
|
||||
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
{String(menu) === String("mes_factures") && connected_user_data && connected_user_data.partner_owner_recid &&
|
||||
connected_user_data.partner_client_id &&
|
||||
<Intranet_Factures_Client partner_client_id={connected_user_data.partner_client_id}
|
||||
partner_owner_recid={connected_user_data.partner_owner_recid}
|
||||
my_title={"MES FACTURES"}
|
||||
type_document={"devis"}
|
||||
type_user_connected={"user_account"}
|
||||
filter_all_document={"0"}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("mes_devis") && connected_user_data && connected_user_data.partner_owner_recid &&
|
||||
connected_user_data.partner_client_id &&
|
||||
<Intranet_Commande_Devis
|
||||
partner_client_id={connected_user_data.partner_client_id}
|
||||
partner_owner_recid={""}
|
||||
my_title={"MES DEVIS"}
|
||||
type_document={"devis"}
|
||||
type_user_connected={"user_account"}
|
||||
|
|
@ -503,19 +536,10 @@ function Account() {
|
|||
my_title={"Gestion Documentaire"}
|
||||
type_user_connected={"user_account"}
|
||||
type_document={"all"}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("mes_devis") && connected_user_data && connected_user_data.partner_owner_recid &&
|
||||
connected_user_data.partner_client_id &&
|
||||
<Modules_Mes_Documents
|
||||
partner_client_id={connected_user_data.partner_client_id}
|
||||
partner_owner_recid={""}
|
||||
my_title={"MES DEVIS"}
|
||||
type_document={"devis"}
|
||||
type_user_connected={"user_account"}
|
||||
filter_all_document={"0"}
|
||||
/>}
|
||||
|
||||
|
||||
|
||||
{String(menu) === String("mes_conventions") && connected_user_data && connected_user_data.partner_owner_recid &&
|
||||
connected_user_data.partner_client_id &&
|
||||
<Modules_Mes_Documents partner_client_id={connected_user_data.partner_client_id}
|
||||
|
|
@ -558,10 +582,12 @@ function Account() {
|
|||
|
||||
{String(menu) === String("mes_documents") && <Profil_Objectif />}
|
||||
|
||||
{String(menu) === String("affichage") && <UpdateUserInfo_Intranet_Client />}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
import React, { useRef, useState, useEffect } from "react";
|
||||
import TextField from '@mui/material/TextField';
|
||||
import MenuItem from '@mui/material/MenuItem';
|
||||
import Menu from '@mui/material/Menu';
|
||||
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
|
||||
import Button from '@mui/material/Button';
|
||||
import axios from "axios";
|
||||
import MoreVertIcon from '@mui/icons-material/MoreVert';
|
||||
import { getCookie, setCookie } from 'react-use-cookie';
|
||||
import AttachFileIcon from '@mui/icons-material/AttachFile';
|
||||
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
|
||||
|
|
@ -20,6 +22,7 @@ import {
|
|||
FcCancel, FcApproval, FcAcceptDatabase,
|
||||
FcPrint, FcExpired
|
||||
} from "react-icons/fc";
|
||||
import { FcDownload } from "react-icons/fc";
|
||||
import fr from 'date-fns/locale/fr';
|
||||
import { registerLocale } from 'react-datepicker';
|
||||
import DatePicker from "react-datepicker";
|
||||
|
|
@ -152,6 +155,31 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
const [datagrid_columns_size_model1, setdatagrid_columns_size_model1] = useState(200);
|
||||
const [datagrid_columns_size_model2, setdatagrid_columns_size_model2] = useState(80);
|
||||
|
||||
const ITEM_HEIGHT = 48;
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick_option_button_vertical = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose_option_button_vertical = (event, value) => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
const options_menu_vertical = [
|
||||
'Valider Inscr.',
|
||||
'Annuler Inscr.',
|
||||
'PréInscrire',
|
||||
'Supprimer',
|
||||
];
|
||||
|
||||
const [menu_gestion_value, setmenu_gestion_value] = useState("");
|
||||
|
||||
const [working_cellValues, setworking_cellValues] = useState(false);
|
||||
const [dialogOpen_supp, setdialogOpen_supp] = useState(false);
|
||||
const Dialog_menuitem_close_supp = () => {
|
||||
setdialogOpen_supp(false)
|
||||
};
|
||||
|
||||
|
||||
const columns = [
|
||||
{ field: '_id', headerName: '_id', hide: true, editable: false, Width: 0, disableExport: true, },
|
||||
{ field: 'session_id', headerName: 'session_id', hide: true, editable: false, Width: 0, disableExport: true, },
|
||||
|
|
@ -249,10 +277,10 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
return "???";
|
||||
},
|
||||
},
|
||||
{ field: 'code_session', headerName: 'Code Promo', hideable: true, editable: false, minWidth: 150, flex: 1 },
|
||||
{ field: 'code_session', headerName: 'Session/Promo', hideable: true, editable: false, minWidth: 150, flex: 1 },
|
||||
{ field: 'title', headerName: 'Formation', minWidth: datagrid_columns_size_model1, align: "center", hideable: true, editable: false, hide: true },
|
||||
{
|
||||
field: 'distantiel', headerName: 'Distantiel', width: datagrid_columns_size_model2,
|
||||
field: 'distantiel', headerName: 'Distantiel', width: datagrid_columns_size_model2, hide: true,
|
||||
valueFormatter: (params) => {
|
||||
if (String(params.value) === "0")
|
||||
return "Non";
|
||||
|
|
@ -263,7 +291,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
},
|
||||
},
|
||||
{
|
||||
field: 'presentiel', headerName: 'Presentiel', width: datagrid_columns_size_model2,
|
||||
field: 'presentiel', headerName: 'Presentiel', width: datagrid_columns_size_model2, hide: true,
|
||||
valueFormatter: (params) => {
|
||||
if (String(params.value) === "0")
|
||||
return "Non";
|
||||
|
|
@ -275,12 +303,12 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
},
|
||||
{ field: 'domaine', headerName: 'Domaine', minWidth: datagrid_columns_size_model2, align: "center", hide: true, hideable: true, editable: false },
|
||||
{ field: 'date_debut', headerName: 'Du', minWidth: 90, maxWidth: 100, flex: 1, hideable: true, editable: false },
|
||||
{ field: 'date_fin', headerName: 'Au', minWidth: 90, maxWidth: 100, flex: 1, hideable: true, editable: false },
|
||||
{ field: 'date_debut', headerName: 'Du', minWidth: 90, maxWidth: 100, flex: 1, hideable: true, editable: false, hide: true },
|
||||
{ field: 'date_fin', headerName: 'Au', minWidth: 90, maxWidth: 100, flex: 1, hideable: true, editable: false, hide: true },
|
||||
{ field: 'class_internal_url', headerName: 'class_internal_url', hide: true, editable: false },
|
||||
|
||||
{
|
||||
field: 'invoiced', headerName: 'Facturé', minWidth: 100, flex: 1, maxWidth: 150, hide: false, editable: false,
|
||||
field: 'invoiced', headerName: 'Facturé', minWidth: 100, flex: 1, maxWidth: 150, hide: true, editable: false,
|
||||
valueFormatter: (params) => {
|
||||
if (String(params.value) === "1")
|
||||
return "Oui";
|
||||
|
|
@ -293,10 +321,10 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
{ field: 'class_recyclage_delai', headerName: 'Recycl. Delai', hide: true, flex: 1, minWidth: 100, },
|
||||
{ field: 'class_recyclage_periodicite', headerName: 'Recycl. Perio', hide: true, flex: 1, minWidth: 100, },
|
||||
{ field: 'nb_jour_avant_recyclage', headerName: 'Jrs avant Recycl.', hide: false, flex: 1, minWidth: 100, },
|
||||
{ field: 'nb_jour_avant_recyclage', headerName: 'Jrs avant Recycl.', hide: true, flex: 1, minWidth: 100, },
|
||||
|
||||
|
||||
{
|
||||
/*{
|
||||
field: "Detail", headerName: 'Voir détail', disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
|
@ -316,155 +344,427 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
);
|
||||
}
|
||||
},
|
||||
},*/
|
||||
/* {
|
||||
field: 'Action', headerName: 'Action', hide: false, minWidth: 100, maxWidth: 150, flex: 1, disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
|
||||
return (
|
||||
<>
|
||||
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <nav>
|
||||
{cellValues.row.status && String(cellValues.row.status) === "1" &&
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
>
|
||||
Annuler
|
||||
|
||||
</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 du stagiaire sera <i><font color="red"> annulée</font></i>. <br />
|
||||
Il (le stagiaire) sera automatiquement <i><font color="red"> notifié par email de l'annulation de son inscription. </font></i> <br />
|
||||
<br /> Motif du annulation : <br />
|
||||
<textarea name='motif_refus' id="motif_refus" style={{ "width": "80%" }}
|
||||
rows="3" maxlength="180" />
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_refuse(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
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>
|
||||
|
||||
}
|
||||
|
||||
{cellValues.row.status && String(cellValues.row.status) === "0" &&
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
|
||||
>
|
||||
<FcApproval /> Valider inscr.
|
||||
|
||||
</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 du stagiaire sera définitivement validée. <br />
|
||||
Il (le stagiaire) sera automatiquement notifié par email de la validation de son inscription. <br />
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_accept(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
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>
|
||||
}
|
||||
|
||||
{cellValues.row.status && String(cellValues.row.status) === "-1" &&
|
||||
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
>
|
||||
<FcDownload />
|
||||
Réinscrire
|
||||
|
||||
|
||||
</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, le stagaire sera réinscrit à la meme session <br />
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
//handleClick_accept(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
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>
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</nav>}
|
||||
</>
|
||||
)
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
field: "delete", headerName: 'Supprimer', disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<>
|
||||
{String(props.check_user_acces_right("stagiaire", "write")) === "1" &&
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
onClick={(event) => {
|
||||
handleClick_delete(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<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 du stagiaire 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(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
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: 'Action', headerName: 'Action', hide: false, minWidth: 100, maxWidth: 150, flex: 1, disableExport: true,
|
||||
field: 'bton_vertif', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center", disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
|
||||
return (
|
||||
<>
|
||||
{String(props.check_user_acces_right("stagiaire", "write")) === "1" && <nav>
|
||||
{cellValues.row.status && String(cellValues.row.status) === "1" &&
|
||||
<div>
|
||||
{String(props.check_user_acces_right("session", "write")) === "1" && <nav style={{ width: '100%', 'textAlign': 'center' }}>
|
||||
<IconButton
|
||||
aria-label="more"
|
||||
id="long-button2"
|
||||
aria-controls={open ? 'long-menu_p2' : undefined}
|
||||
aria-expanded={open ? 'true' : undefined}
|
||||
aria-haspopup="true"
|
||||
// onClick={handleClick_option_button_vertical}
|
||||
onClick={(e) => {
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
handleClick_option_button_vertical(e);
|
||||
setworking_cellValues(cellValues);
|
||||
|
||||
// setsession_id_for_decalage(cellValues.row._id);
|
||||
if (cellValues.row.date_debut) {
|
||||
var local_date_du = new Date(moment(cellValues.row.date_debut, "DD/MM/YYYY HH:mm:ss"));
|
||||
// setsession_debut_for_decalage(local_date_du);
|
||||
//setsession_new_debut_for_decalage(local_date_du);
|
||||
}
|
||||
|
||||
if (cellValues.row.date_fin) {
|
||||
var local_date_au = new Date(moment(cellValues.row.date_fin, "DD/MM/YYYY HH:mm:ss"));
|
||||
// setsession_fin_for_decalage(local_date_au);
|
||||
|
||||
}
|
||||
|
||||
}}
|
||||
|
||||
>
|
||||
<MoreVertIcon />
|
||||
</IconButton>
|
||||
<Menu
|
||||
id="long-menu_p2"
|
||||
MenuListProps={{
|
||||
'aria-labelledby': 'long-button2',
|
||||
}}
|
||||
anchorEl={anchorEl}
|
||||
open={open}
|
||||
onClose={handleClose_option_button_vertical}
|
||||
slotProps={{
|
||||
paper: {
|
||||
style: {
|
||||
maxHeight: ITEM_HEIGHT * 4.5,
|
||||
width: '20ch',
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
borderRadius: '0px !important',
|
||||
lineHeight: '3rem'
|
||||
},
|
||||
},
|
||||
}}
|
||||
>
|
||||
{options_menu_vertical.map((option) => (
|
||||
<MenuItem key={option}
|
||||
|
||||
|
||||
onClick={(e) => {
|
||||
//handleClose_option_button_vertical(e, option);
|
||||
|
||||
setselected_internal_url(working_cellValues.row.class_internal_url);
|
||||
setp_detail_session_class_id(working_cellValues.row.session_id);
|
||||
setp_detail_mail(working_cellValues.row.email);
|
||||
setselected_id(working_cellValues.row._id);
|
||||
setp_detail_session_class(working_cellValues.row.code_session);
|
||||
|
||||
|
||||
submenu_detail_stagaire("");
|
||||
setaddOneParticipant("");
|
||||
setdisplay_detail_stagiaire("");
|
||||
|
||||
setAnchorEl(null);
|
||||
setmenu_gestion_value(String(option));
|
||||
|
||||
if (option && String(option) === 'Valider Inscr.') {
|
||||
setdialogOpen_supp(true);
|
||||
}
|
||||
else if (option && String(option) === 'Annuler Inscr.') {
|
||||
setdialogOpen_supp(true);
|
||||
}
|
||||
else if (option && String(option) === 'PréInscrire') {
|
||||
|
||||
setdialogOpen_supp(true);
|
||||
}
|
||||
else if (option && String(option) === 'Supprimer') {
|
||||
setdialogOpen_supp(true);
|
||||
}
|
||||
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
{option}
|
||||
</MenuItem>
|
||||
))}
|
||||
</Menu>
|
||||
|
||||
</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 du stagiaire sera <i><font color="red"> définitivement annulée</font></i>. <br />
|
||||
|
||||
{/*** GESTION Dialog menu item pour suppression */}
|
||||
{dialogOpen_supp && <Dialog
|
||||
open={dialogOpen_supp}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
// position: 'absolute',
|
||||
top: '7rem',
|
||||
border: '1px solid #F1F1F1',
|
||||
margin: "2px",
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
|
||||
<DialogContent className="DialogContent_width">
|
||||
|
||||
<div>
|
||||
<button className="gest_close" onClick={Dialog_menuitem_close_supp}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
|
||||
{String(menu_gestion_value) === "Supprimer" && <> En confirmant cette opération, l'inscription sera <i><font color="red"> définitivement supprimée</font></i>. <br /> </>}
|
||||
{String(menu_gestion_value) === "PréInscrire" && <> En confirmant cette opération, l'apprenant sera <i><font color="red"> à nouveau PREINSCRIT </font></i>. <br /> </>}
|
||||
{String(menu_gestion_value) === "Annuler Inscr." && <>
|
||||
|
||||
|
||||
En confirmant cette opération, l'inscription du stagiaire sera <i><font color="red"> annulée</font></i>. <br />
|
||||
Il (le stagiaire) sera automatiquement <i><font color="red"> notifié par email de l'annulation de son inscription. </font></i> <br />
|
||||
<br /> Motif du annulation : <br />
|
||||
<textarea name='motif_refus' id="motif_refus" style={{ "width": "80%" }}
|
||||
rows="3" maxlength="180" />
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_refuse(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
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>
|
||||
|
||||
}
|
||||
|
||||
{cellValues.row.status && String(cellValues.row.status) === "0" &&
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
|
||||
>
|
||||
<FcApproval /> Valider inscr.
|
||||
|
||||
</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">
|
||||
{' '}
|
||||
|
||||
<br /> </>}
|
||||
{String(menu_gestion_value) === "Valider Inscr." && <>
|
||||
En confirmant cette opération, l'inscription du stagiaire sera définitivement validée. <br />
|
||||
Il (le stagiaire) sera automatiquement notifié par email de la validation de son inscription. <br />
|
||||
Le stagiaire passera de l'onglet "préinscrit" vers l'onglet "inscription".<br />
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_accept(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
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>
|
||||
}
|
||||
|
||||
{/*cellValues.row.status && String(cellValues.row.status) === "-1" &&
|
||||
</>}
|
||||
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
>
|
||||
<FcDownload />
|
||||
Réinscrire
|
||||
|
||||
|
||||
</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, le stagaire sera réinscrit à la meme session <br />
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
//handleClick_accept(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
if (String(menu_gestion_value) === "Supprimer") {
|
||||
Delete_LIST_Stagiaires(working_cellValues.row._id);
|
||||
}
|
||||
else if (String(menu_gestion_value) === "PréInscrire") {
|
||||
Re_Preinscrire_Cancelled_Attendee();
|
||||
}
|
||||
else if (String(menu_gestion_value) === "Annuler Inscr.") {
|
||||
handleClick_refuse(event, working_cellValues);
|
||||
}
|
||||
else if (String(menu_gestion_value) === "Valider Inscr.") {
|
||||
handleClick_accept(event, working_cellValues);
|
||||
}
|
||||
|
||||
Dialog_menuitem_close_supp();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
|
|
@ -472,8 +772,8 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
<button
|
||||
className="gest_bton_popup_annuler"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
console.log('modal closed ');
|
||||
Dialog_menuitem_close_supp();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
|
|
@ -481,85 +781,19 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
|
||||
*/ }
|
||||
|
||||
|
||||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
</DialogActions>
|
||||
|
||||
|
||||
</Dialog>}
|
||||
{/*** FIN GESTION Dialog menu item pour suppression*/}
|
||||
</nav>}
|
||||
</>
|
||||
)
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
field: "delete", headerName: 'Supprimer', disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<>
|
||||
{String(props.check_user_acces_right("stagiaire", "write")) === "1" &&
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
onClick={(event) => {
|
||||
handleClick_delete(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<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 du stagiaire 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(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
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>}
|
||||
</>
|
||||
|
||||
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
]
|
||||
|
|
@ -4549,8 +4783,6 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
var form = new FormData();
|
||||
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
|
||||
|
||||
|
||||
|
||||
if (p_detail_session_class.length <= 0) {
|
||||
// alert(" Vous devez choisir une session");
|
||||
setdisplay_alert_mysy("1");
|
||||
|
|
@ -4589,7 +4821,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
// alert(" La mise à jour a été correctement faite.");
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(" La mise à jour a été correctement faite.");
|
||||
setalert_type("error");
|
||||
setalert_type("success");
|
||||
|
||||
|
||||
//myRef_head.current.scrollIntoView({ behavior: "smooth" });
|
||||
|
|
@ -12464,7 +12696,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
|
||||
|
||||
<div className="session_data" style={{ "minHeight": '15rem', "paddingLeft": "10px", "paddingRight": "10px" }}>
|
||||
<div className="titre1"> Liste des évaluations</div>
|
||||
Evaluation <br />
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import React, { useState, useEffect } from 'react';
|
||||
import './ENT_Student_Header.css';
|
||||
import './ENT_Student_Header.css';
|
||||
import moment from "moment";
|
||||
import { getCookie } from 'react-use-cookie';
|
||||
import { useHistory } from "react-router-dom";
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -62,7 +62,7 @@ import {
|
|||
GridPreferencePanelsValue,
|
||||
|
||||
} from '@mui/x-data-grid';
|
||||
|
||||
|
||||
//import { utils, writeFileXLSX } from "xlsx";
|
||||
import { ContextMenu, ContextMenuTrigger } from "react-contextmenu";
|
||||
import zIndex from "@material-ui/core/styles/zIndex";
|
||||
|
|
@ -76,7 +76,7 @@ import Menu from '@mui/material/Menu';
|
|||
const Intranet_Factures_Client = (props) => {
|
||||
|
||||
const { action, orderid } = useParams();
|
||||
registerLocale('fr', fr);
|
||||
registerLocale('fr', fr);
|
||||
|
||||
const history = useHistory();
|
||||
const [submenu, setsubmenu] = useState("");
|
||||
|
|
@ -131,8 +131,8 @@ registerLocale('fr', fr);
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
const options_menu_vertical = [
|
||||
|
||||
const options_menu_vertical = [
|
||||
'',
|
||||
'Télécharger',
|
||||
];
|
||||
|
|
@ -185,7 +185,7 @@ const options_menu_vertical = [
|
|||
handleClick_option_button_vertical(e);
|
||||
|
||||
setselected_id(cellValues.row._id);
|
||||
|
||||
|
||||
|
||||
}}
|
||||
>
|
||||
|
|
@ -201,7 +201,7 @@ const options_menu_vertical = [
|
|||
|
||||
onClose={handleClose_option_button_vertical}
|
||||
onClick={(e) => {
|
||||
|
||||
|
||||
}}
|
||||
|
||||
slotProps={{
|
||||
|
|
@ -222,7 +222,7 @@ const options_menu_vertical = [
|
|||
onClick={(e) => {
|
||||
|
||||
if (option && String(option) === "Télécharger") {
|
||||
|
||||
|
||||
print_invoice_pdf();
|
||||
}
|
||||
setAnchorEl(null);
|
||||
|
|
@ -258,7 +258,7 @@ const options_menu_vertical = [
|
|||
);
|
||||
}
|
||||
},*/
|
||||
{/*
|
||||
/* {
|
||||
field: "delete", headerName: 'Supprimer',
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
|
@ -317,8 +317,8 @@ const options_menu_vertical = [
|
|||
|
||||
);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
]
|
||||
|
||||
|
|
@ -1073,7 +1073,7 @@ const options_menu_vertical = [
|
|||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Getall_Parter_Invoice_No_Filter res.data.status = " + res.data.status);
|
||||
//console.log(" In Getall_Parter_Invoice_No_Filter res.data.message r_class = " + res.data.message);
|
||||
// console.log(" In Getall_Parter_Invoice_No_Filter res.data.total_data r_class = ", res.data.total_data);
|
||||
// console.log(" In Getall_Parter_Invoice_No_Filter res.data.total_data r_class = ", res.data.total_data);
|
||||
setGetall_Parter_Invoice_No_Filter_api("true");
|
||||
setGetall_Parter_Invoice_No_Filter_result(res.data.message);
|
||||
setRows(res.data.message);
|
||||
|
|
@ -1139,7 +1139,7 @@ const options_menu_vertical = [
|
|||
|
||||
useEffect(() => {
|
||||
|
||||
// sethistory_securite_read(props.check_user_acces_right("historique", "read"))
|
||||
// sethistory_securite_read(props.check_user_acces_right("historique", "read"))
|
||||
Get_List_Partner_Clients();
|
||||
|
||||
|
||||
|
|
@ -1153,7 +1153,7 @@ const options_menu_vertical = [
|
|||
//console.log(" ~### mes facture props action, orderid = ", action, orderid);
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
Getall_Parter_Invoice_With_Filter_On_Client_Id(props.partner_client_id);
|
||||
|
||||
}
|
||||
|
|
@ -2605,7 +2605,7 @@ const options_menu_vertical = [
|
|||
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) => {
|
||||
|
|
@ -2630,7 +2630,7 @@ const options_menu_vertical = [
|
|||
|
||||
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 = {
|
||||
|
|
@ -2812,7 +2812,7 @@ const options_menu_vertical = [
|
|||
className="partner_commande"
|
||||
>
|
||||
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> Détail ligne Facture <font style={{ fontWeight: "700" }}> {String(invoice_internal_ref)} </font> </DialogTitle>
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> Détail ligne Facture <font style={{ fontWeight: "700" }}> {String(invoice_internal_ref)} </font> </DialogTitle>
|
||||
<DialogContent>
|
||||
|
||||
|
||||
|
|
@ -3026,7 +3026,7 @@ const options_menu_vertical = [
|
|||
static
|
||||
onClose={() => null} >
|
||||
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> MySy Information</DialogTitle>
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
|
||||
<DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}>
|
||||
|
||||
<div>
|
||||
|
|
@ -3075,7 +3075,7 @@ const options_menu_vertical = [
|
|||
static
|
||||
onClose={() => null} >
|
||||
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> MySy Information</DialogTitle>
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
|
||||
<DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}>
|
||||
<DialogContentText>
|
||||
Envoi Facture par email
|
||||
|
|
@ -3188,7 +3188,7 @@ const options_menu_vertical = [
|
|||
|
||||
>
|
||||
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> Paiement </DialogTitle>
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> Paiement </DialogTitle>
|
||||
<DialogContent className="DialogContent_width">
|
||||
<DialogContentText>
|
||||
{Dialog_Paiement_1_message}
|
||||
|
|
@ -3326,7 +3326,7 @@ const options_menu_vertical = [
|
|||
|
||||
>
|
||||
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily:'DM Sans'}} id="draggable-dialog-title"> Annotation </DialogTitle>
|
||||
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> Annotation </DialogTitle>
|
||||
<DialogContent className="DialogContent_width" style={{ "minHeight": "15rem" }}>
|
||||
<DialogContentText>
|
||||
{Dialog_annotation_1_message}
|
||||
|
|
@ -3395,7 +3395,7 @@ const options_menu_vertical = [
|
|||
|
||||
{/******** FIN Menu Clique Droit test */}
|
||||
|
||||
<h3 style={{ fontFamily:'DM Sans' }}> Mes Factures </h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Mes Factures </h3>
|
||||
<div className="div_row">
|
||||
<div className="titre1"> Utilisez les filtres !</div>
|
||||
<div className="div_row" style={{ "marginBottom": "5px" }}>
|
||||
|
|
@ -4493,13 +4493,13 @@ const options_menu_vertical = [
|
|||
|
||||
|
||||
<div className="div_row"> </div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div className="div_row"> </div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>}
|
||||
|
|
@ -4660,7 +4660,7 @@ const options_menu_vertical = [
|
|||
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ function Module_Connexion_Ent_Student() {
|
|||
Logout_User();
|
||||
}
|
||||
|
||||
|
||||
|
||||
fetch(
|
||||
url_login,
|
||||
{
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ function Module_Connexion_Intranet_Client() {
|
|||
var partner_connexion = "";
|
||||
var url_login = "";
|
||||
|
||||
url_login = process.env.REACT_APP_API_URL + "myclass/api/login/";
|
||||
url_login = process.env.REACT_APP_API_URL + "myclass/api/login_intranet_client/";
|
||||
setmenucompte("user");
|
||||
partner_connexion = "user";
|
||||
|
||||
|
|
@ -133,12 +133,13 @@ function Module_Connexion_Intranet_Client() {
|
|||
}
|
||||
).then((response) => response.json())
|
||||
.then((result) => {
|
||||
//console.log('Success:', result['message'], "result['status'] = ", result['status']);
|
||||
console.log('Success:', result['message'], "result['status'] = ", result['status'], "_id : ", result['_id']);
|
||||
|
||||
var val = result['status'];
|
||||
|
||||
if (String(val) === String("true")) {
|
||||
setCookie("tokenmysych", result['message']);
|
||||
setCookie("tokenmysychclient", result['_id']);
|
||||
|
||||
// Verification vers quelle page les renvoyer
|
||||
if (obj === "training" && String(objid).length > 0) {
|
||||
|
|
@ -382,7 +383,7 @@ function Module_Connexion_Intranet_Client() {
|
|||
<div style={{ width: '100%', }}>
|
||||
|
||||
<div style={{ width: '50%', float: 'left' }}>
|
||||
<img src={client_intranet} style={{ height: '100%', marginTop:'5rem' }} />
|
||||
<img src={client_intranet} style={{ height: '100%', marginTop: '5rem' }} />
|
||||
</div>
|
||||
|
||||
<div style={{ width: '50%', float: 'left', paddingTop: '2rem' }}>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,493 @@
|
|||
|
||||
import React, { useState, useEffect } from 'react';
|
||||
//import { slide as Menu } from "react-burger-menu";
|
||||
import { NavLink } from "react-router-dom";
|
||||
import { getCookie } from 'react-use-cookie';
|
||||
import { useHistory } from "react-router-dom";
|
||||
|
||||
import LogoutOutlinedIcon from '@mui/icons-material/LogoutOutlined';
|
||||
import Button from '@mui/material/Button';
|
||||
import { confirmAlert } from 'react-confirm-alert'; // Import
|
||||
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
|
||||
import { useCookies } from "react-cookie";
|
||||
import { Helmet } from "react-helmet";
|
||||
import logowhite from "../mysy_img/MYSY-LOGO-WHITE.png";
|
||||
import connect_white from "../mysy_img/connect_white_v2.png";
|
||||
import MenuItem from "@material-ui/core/MenuItem";
|
||||
import Menu from "@material-ui/core/Menu";
|
||||
import connect_green from "../mysy_img/connect_green.png";
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
import DialogActions from '@mui/material/DialogActions';
|
||||
import DialogContent from '@mui/material/DialogContent';
|
||||
import DialogContentText from '@mui/material/DialogContentText';
|
||||
import DialogTitle from '@mui/material/DialogTitle';
|
||||
import { format } from 'date-fns'
|
||||
import moment from "moment";
|
||||
import SendIcon from '@mui/icons-material/Send';
|
||||
import axios from "axios";
|
||||
import mysy_logo2 from "../mysy_img2/Logo_MySy.png"
|
||||
|
||||
import New_C_Header_Intranet_Client_2025_V2 from "./header_automatic_files/Header_Client_Intranet";
|
||||
|
||||
const New_ButtonHilight_Intrnaet_Client_2025 = () => {
|
||||
const history = useHistory();
|
||||
const [show, setShow] = useState(true);
|
||||
const [lastScrollY, setLastScrollY] = useState(0);
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
|
||||
const [partcookie, setpartCookie, removepartCookie] = useCookies(['tokenmysypart']);
|
||||
|
||||
const [country_code, setcountry_code] = useState("FR");
|
||||
const [country_name, setcountry_name] = useState("France");
|
||||
const [city, setcity] = useState("Paris");
|
||||
const [postal, setpostal] = useState("75001");
|
||||
const [latitude, setlatitude] = useState("48.861000061035156");
|
||||
const [longitude, setlongitude] = useState("2.3380000591278076");
|
||||
const [IPv4, setIPv4] = useState("172.71.122.128");
|
||||
const [state, setstate] = useState("France");
|
||||
const [userIp, setuserIp] = useState("172.71.122.128");
|
||||
|
||||
|
||||
const controlNavbar = () => {
|
||||
|
||||
if (typeof window !== 'undefined') {
|
||||
if (window.scrollY > lastScrollY && window.scrollY > 100) {
|
||||
setShow(false);
|
||||
} else if (window.scrollY < lastScrollY && window.scrollY < 100) { // if scroll up show the navbar
|
||||
setShow(true);
|
||||
}
|
||||
|
||||
// remember current page location to use in the next move
|
||||
setLastScrollY(window.scrollY);
|
||||
}
|
||||
};
|
||||
|
||||
const [userconnected, setuserconnected] = useState("0");
|
||||
const [someoneconnected, setsomeoneconnected] = useState("0");
|
||||
const [partnerconnected, setpartnerconnected] = useState("0");
|
||||
var stored_user = getCookie('tokenmysych');
|
||||
var stored_part = getCookie('tokenmysypart');
|
||||
|
||||
function whosisconnected() {
|
||||
|
||||
stored_user = getCookie('tokenmysych');
|
||||
stored_part = getCookie('tokenmysypart');
|
||||
|
||||
|
||||
|
||||
var local_user_connect = 0;
|
||||
var local_part_connect = 0;
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
setuserconnected("0");
|
||||
local_user_connect = 0;
|
||||
} else {
|
||||
setuserconnected("1");
|
||||
setsomeoneconnected("1");
|
||||
local_user_connect = 1;
|
||||
//alert(" user connected OK");
|
||||
}
|
||||
|
||||
if (typeof (stored_part) === "undefined" || String(stored_part) === '') {
|
||||
|
||||
setpartnerconnected("0");
|
||||
setsomeoneconnected("0");
|
||||
local_part_connect = 0;
|
||||
} else {
|
||||
setpartnerconnected("1");
|
||||
setsomeoneconnected("1");
|
||||
local_part_connect = 1;
|
||||
// alert(" partner connected OK");
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
|
||||
var local_user_connect = 0;
|
||||
var local_part_connect = 0;
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
setuserconnected("0");
|
||||
local_user_connect = 0;
|
||||
} else {
|
||||
setuserconnected("1");
|
||||
setsomeoneconnected("1");
|
||||
local_user_connect = 1;
|
||||
//alert(" user connected OK");
|
||||
}
|
||||
|
||||
if (typeof (stored_part) === "undefined" || String(stored_part) === '') {
|
||||
setpartnerconnected("0");
|
||||
local_part_connect = 0;
|
||||
} else {
|
||||
setpartnerconnected("1");
|
||||
setsomeoneconnected("1");
|
||||
local_part_connect = 1;
|
||||
//alert(" partner connected OK");
|
||||
}
|
||||
|
||||
if (typeof window !== 'undefined') {
|
||||
window.addEventListener('scroll', controlNavbar);
|
||||
|
||||
// cleanup function
|
||||
return () => {
|
||||
window.removeEventListener('scroll', controlNavbar);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
}, [lastScrollY]);
|
||||
|
||||
|
||||
const [PartnerMenu, setPartnerMenu] = React.useState(null);
|
||||
const [AccountMenu, setAccountMenu] = React.useState(null);
|
||||
const [ProduitMenu, setproduitMenu] = React.useState(null);
|
||||
const [AvisMenu, setavisMenu] = React.useState(null);
|
||||
|
||||
|
||||
|
||||
const PartnerMenu_Close = () => {
|
||||
setPartnerMenu(null);
|
||||
};
|
||||
|
||||
const AccountMenu_Close = () => {
|
||||
setAccountMenu(null);
|
||||
};
|
||||
|
||||
|
||||
const ProduitMenu_Close = () => {
|
||||
setproduitMenu(null);
|
||||
};
|
||||
|
||||
const handlePartnerMenu = (event) => {
|
||||
setPartnerMenu(event.currentTarget);
|
||||
};
|
||||
|
||||
const handleAccountMenu = (event) => {
|
||||
setAccountMenu(event.currentTarget);
|
||||
};
|
||||
|
||||
|
||||
const handleProduitMenu = (event) => {
|
||||
setproduitMenu(event.currentTarget);
|
||||
};
|
||||
|
||||
const handleQuisommesNousMenu = (event) => {
|
||||
history.push("/qui-sommes-nous")
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
const handleClose_Account = () => {
|
||||
alert(" my account");
|
||||
setAccountMenu(null);
|
||||
};
|
||||
|
||||
const handleAccountConnexion = () => {
|
||||
setAccountMenu(null);
|
||||
history.push("/Connexion")
|
||||
};
|
||||
|
||||
const handleMyAccount = () => {
|
||||
setAccountMenu(null);
|
||||
history.push("/mysy-user-account")
|
||||
};
|
||||
|
||||
|
||||
|
||||
const handleAccountCreation = () => {
|
||||
setAccountMenu(null);
|
||||
history.push("/create_account")
|
||||
};
|
||||
|
||||
const handlePartnerConnexion = () => {
|
||||
setAccountMenu(null);
|
||||
history.push("/PartnerLogin")
|
||||
};
|
||||
|
||||
|
||||
const handleProduitService = () => {
|
||||
setproduitMenu(null);
|
||||
history.push("/tarifs_produits_services/")
|
||||
};
|
||||
|
||||
const handleAvis = () => {
|
||||
setavisMenu(null);
|
||||
history.push("/Recherche-Article-formation")
|
||||
};
|
||||
|
||||
|
||||
function user_logout_confirmation() {
|
||||
/* si c'est une connexion partner qui est active */
|
||||
if (typeof (stored_user) != "undefined") {
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
var acces_right_token_name = stored_cookie + "_uar";
|
||||
|
||||
setpartCookie("tokenmysych", "", { path: '/' });
|
||||
setpartCookie(acces_right_token_name, "", { path: '/' });
|
||||
removeCookie(acces_right_token_name, { path: '/' });
|
||||
|
||||
removeCookie("tokenmysych", { path: '/' });
|
||||
|
||||
}
|
||||
history.push("/ent_student");
|
||||
}
|
||||
|
||||
|
||||
function user_logout() {
|
||||
confirmAlert({
|
||||
title: '',
|
||||
message: 'Confirmez la deconnexion (user)',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
onClick: () => user_logout_confirmation()
|
||||
},
|
||||
{
|
||||
label: 'Non',
|
||||
onClick: () => { return }
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function part_logout_confirmation() {
|
||||
/* si c'est une connexion partner qui est active */
|
||||
|
||||
if (typeof (stored_part) != "undefined") {
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
var acces_right_token_name = stored_cookie + "_uar";
|
||||
|
||||
setpartCookie("tokenmysypart", "", { path: '/' });
|
||||
setpartCookie(acces_right_token_name, "", { path: '/' });
|
||||
removeCookie(acces_right_token_name, { path: '/' });
|
||||
|
||||
|
||||
setpartCookie("mysy_session_display_view", "", { path: '/' });
|
||||
setpartCookie("mysy_menu_gauche_reduit", "", { path: '/' });
|
||||
setpartCookie("mysy_catalog_data_row_grouped_by", "", { path: '/' });
|
||||
|
||||
removeCookie("tokenmysypart", { path: '/' });
|
||||
removeCookie("mysy_session_display_view", { path: '/' });
|
||||
removeCookie("mysy_menu_gauche_reduit", { path: '/' });
|
||||
removeCookie("mysy_catalog_data_row_grouped_by", { path: '/' });
|
||||
|
||||
|
||||
}
|
||||
setsomeoneconnected("0");
|
||||
setDialog_1_open(false);
|
||||
history.push("/recherche-formation");
|
||||
}
|
||||
|
||||
function part_logout() {
|
||||
confirmAlert({
|
||||
title: '',
|
||||
message: 'Confirmez la deconnexion (pro)',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
onClick: () => part_logout_confirmation()
|
||||
},
|
||||
{
|
||||
label: 'Non',
|
||||
onClick: () => { return }
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
function handleAccountLogout() {
|
||||
|
||||
if (String(userconnected) === String("1")) {
|
||||
user_logout();
|
||||
}
|
||||
else if (String(partnerconnected) === String("1")) {
|
||||
part_logout();
|
||||
}
|
||||
}
|
||||
|
||||
const [CategorieMenu, setCategorieMenu] = React.useState(null);
|
||||
const CategorieMenu_Close = () => {
|
||||
setCategorieMenu(null);
|
||||
};
|
||||
|
||||
const handleCategorieMenu = (event) => {
|
||||
setCategorieMenu(event.currentTarget);
|
||||
};
|
||||
|
||||
|
||||
const handleMarketplace = (event) => {
|
||||
history.push("/recherche-formation")
|
||||
};
|
||||
|
||||
const handleClassCategorie = (e) => {
|
||||
setCategorieMenu(null);
|
||||
const pieces = window.location.href.split("/")
|
||||
const last = pieces[pieces.length - 1]
|
||||
|
||||
|
||||
var mymetier = "";
|
||||
mymetier = e.target.id
|
||||
if (last === mymetier) {
|
||||
//console.log(" ## RELAOD");
|
||||
window.location.reload(true);
|
||||
} else {
|
||||
history.push("/Recherche_new_v2/0/" + mymetier);
|
||||
}
|
||||
};
|
||||
|
||||
function publiecatalogue() {
|
||||
history.push("/Partner", { mysy_arg: 'partner' });
|
||||
}
|
||||
|
||||
|
||||
function resserver_demo() {
|
||||
history.push("/Partner", { mysy_arg: 'partner' });
|
||||
}
|
||||
|
||||
|
||||
const handleBlogMenu = (event) => {
|
||||
history.push("/Recherche-Article-formation")
|
||||
};
|
||||
|
||||
|
||||
|
||||
const [Dialog_1_message, setDialog_1_message] = React.useState(false);
|
||||
const [Dialog_1_open, setDialog_1_open] = React.useState(false);
|
||||
function Dialog_1_handle_change_participant_session(message) {
|
||||
setDialog_1_message(message);
|
||||
setDialog_1_open(true);
|
||||
}
|
||||
|
||||
const Dialog_1_handleClose = () => {
|
||||
//alert(" Utiliser le bouton 'fermer' ");
|
||||
//setOpen(false);
|
||||
};
|
||||
|
||||
const Dialog_1_handleClose_buton = () => {
|
||||
setDialog_1_open(false);
|
||||
};
|
||||
|
||||
|
||||
const [Dialog_contact_message, setDialog_contact_message] = React.useState(false);
|
||||
const [Dialog_contact_open, setDialog_contact_open] = React.useState(false);
|
||||
function Dialog_contact_handle_change_participant_session(message) {
|
||||
setDialog_contact_message(message);
|
||||
setDialog_contact_open(true);
|
||||
}
|
||||
|
||||
const Dialog_contact_handleClose = () => {
|
||||
|
||||
};
|
||||
|
||||
const Dialog_contact_handleClose_buton = () => {
|
||||
|
||||
setDialog_contact_open(false);
|
||||
clear_contact_message_fields();
|
||||
|
||||
};
|
||||
|
||||
function clear_contact_message_fields() {
|
||||
setcontact_message_nom_prenom("");
|
||||
setcontact_message_email("");
|
||||
setcontact_message_phone("");
|
||||
setcontact_message_sujet("");
|
||||
setcontact_message_sujet("");
|
||||
setcontact_message_message("");
|
||||
}
|
||||
|
||||
const [contact_message_nom_prenom, setcontact_message_nom_prenom] = React.useState("");
|
||||
const [contact_message_email, setcontact_message_email] = React.useState("");
|
||||
const [contact_message_phone, setcontact_message_phone] = React.useState("");
|
||||
const [contact_message_sujet, setcontact_message_sujet] = React.useState("");
|
||||
const [contact_message_message, setcontact_message_message] = React.useState("");
|
||||
|
||||
function Send_Contact_Message(e) {
|
||||
|
||||
var sender_mail = "";
|
||||
var sender_tel = "";
|
||||
var token = "";
|
||||
|
||||
////console.log("contacter " + sender_mail + " - " + sender_tel + " - ")
|
||||
|
||||
var mysubject = contact_message_sujet;
|
||||
var mymessage = contact_message_message;
|
||||
var mysender_name = contact_message_nom_prenom;
|
||||
var mysender_email = contact_message_email;
|
||||
|
||||
|
||||
//alert("contacter "+mysender_email+" - "+mymessage+" - url = "
|
||||
//+process.env.REACT_APP_API_URL+" - user_ip ="+IPv4+" - "+latitude);
|
||||
|
||||
var re = /\S+@\S+\.\S+/;
|
||||
if (re.test(mysender_email) == false) {
|
||||
alert("l'email est incorrecte");
|
||||
return;
|
||||
}
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/add_user_message/";
|
||||
var form = new FormData();
|
||||
form.append("type", "email");
|
||||
form.append("recever_mail", "contact@mysy-training.com");
|
||||
form.append("recever_tel", "+33769203945");
|
||||
form.append("sender_mail", mysender_email);
|
||||
form.append("sender_tel", sender_tel);
|
||||
form.append("object", mysubject);
|
||||
form.append("message", mymessage);
|
||||
form.append("sender_name", mysender_name);
|
||||
form.append("token", "");
|
||||
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);
|
||||
|
||||
|
||||
// console.log("## form = ", form);
|
||||
|
||||
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (String(res.data.status) === String("false")) {
|
||||
|
||||
alert(res.data.message);
|
||||
}
|
||||
|
||||
else if (String(res.data.status) === String("true")) {
|
||||
Dialog_contact_handleClose_buton();
|
||||
alert(res.data.message);
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.warn('contact-nous Not good man :( mysearchtext = ');
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<div className='new_buttonhilight_2025'>
|
||||
|
||||
<div className={`mini_entete ${show && 'hidden'}`} >
|
||||
<New_C_Header_Intranet_Client_2025_V2 />
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
export default New_ButtonHilight_Intrnaet_Client_2025;
|
||||
|
|
@ -7,7 +7,7 @@ import New_Sidebar_ENT_Student_2025 from "./New_Sidebar_ENT_Student_2025";
|
|||
import { useCookies } from "react-cookie";
|
||||
import New_ButtonHilight_ENT_Student_2025 from "./New_ButtonHilight_ENT_Student_2025";
|
||||
|
||||
const New_Navigation_ENT_Student_2025 = () => {
|
||||
const New_Navigation_ENT_Student_2025 = () => {
|
||||
|
||||
const history = useHistory();
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
import React from 'react';
|
||||
import { getCookie, } from 'react-use-cookie';
|
||||
import { useHistory } from "react-router-dom";
|
||||
|
||||
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
|
||||
import New_Sidebar_Client_Intranet_2025 from "./New_Sidebar_Client_Intranet_2025";
|
||||
import { useCookies } from "react-cookie";
|
||||
import New_ButtonHilight_Intranet_Client_2025 from "./New_ButtonHilight_Intranet_Client_2025";
|
||||
|
||||
const New_Navigation_Intranet_Client_2025 = () => {
|
||||
|
||||
const history = useHistory();
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
|
||||
const [cookie_part, setCookie_part, removeCookie_part] = useCookies(['tokenmysypart']);
|
||||
|
||||
return (
|
||||
<div className={"navigation"}>
|
||||
|
||||
<div className="test_page">
|
||||
<div className="bm-burger-button_label">
|
||||
</div>
|
||||
<New_Sidebar_Client_Intranet_2025 />
|
||||
<New_ButtonHilight_Intranet_Client_2025 />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export default New_Navigation_Intranet_Client_2025;
|
||||
|
|
@ -35,7 +35,7 @@ import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
|
|||
import Module_Ent_Mes_Notes from "./Module_Ent_Mes_Notes";
|
||||
import Module_Ent_Internal_Email_Management from "./Module_Ent_Internal_Email_Management";
|
||||
|
||||
import { useParams } from 'react-router-dom'
|
||||
import { useParams } from 'react-router-dom';
|
||||
|
||||
function Student_Account_Ent() {
|
||||
|
||||
|
|
@ -543,7 +543,7 @@ function Student_Account_Ent() {
|
|||
</Stack>
|
||||
))}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style={{ width: '69%', float: 'right' }}>
|
||||
|
||||
|
|
@ -573,16 +573,12 @@ function Student_Account_Ent() {
|
|||
|
||||
|
||||
{String(menu) === String("mes_emails") &&
|
||||
|
||||
|
||||
<Module_Ent_Internal_Email_Management
|
||||
|
||||
formation_initiale={"1"}
|
||||
apprenant_id={apprenant_id}
|
||||
conntected_account_id={connected_user_data._id}
|
||||
|
||||
/>
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -117,7 +117,6 @@ function UpdateUserInfo(props) {
|
|||
var mylocaltraining = JSON.parse(res.data.message);
|
||||
if (mylocaltraining) {
|
||||
|
||||
console.log(" #### mylocaltraining === ", mylocaltraining)
|
||||
|
||||
if (mylocaltraining.adr_city) {
|
||||
document.getElementsByName("adr_city")[0].value = mylocaltraining.adr_city;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -21,7 +21,7 @@ import Paper from '@material-ui/core/Paper';
|
|||
import Draggable from 'react-draggable';
|
||||
import { IconButton } from '@material-ui/core';
|
||||
|
||||
|
||||
|
||||
function PaperComponent(props) {
|
||||
return (
|
||||
<Draggable
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@ import DialogTitle from '@mui/material/DialogTitle';
|
|||
import Button from '@mui/material/Button';
|
||||
import { useCookies } from "react-cookie";
|
||||
|
||||
import axios from "axios";
|
||||
import Badge from '@mui/material/Badge';
|
||||
import { styled } from '@mui/material/styles';
|
||||
|
||||
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
|
||||
import { makeStyles } from "@material-ui/core/styles";
|
||||
|
|
@ -40,7 +43,7 @@ const useStyles = makeStyles((theme) => ({
|
|||
// left: 10,
|
||||
top: 400
|
||||
},
|
||||
|
||||
|
||||
paper: {
|
||||
overflowY: 'unset',
|
||||
},
|
||||
|
|
@ -53,6 +56,29 @@ const useStyles = makeStyles((theme) => ({
|
|||
},
|
||||
}));
|
||||
|
||||
const StyledBadge_mysy_color1 = styled(Badge)(({ }) => ({
|
||||
'& .MuiBadge-badge': {
|
||||
right: 0,
|
||||
top: 0,
|
||||
border: '2px solid #ffffff',
|
||||
padding: '0 4px',
|
||||
background: '#6a329f',
|
||||
color: "#ffffff"
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
const StyledBadge_mysy_red = styled(Badge)(({ }) => ({
|
||||
'& .MuiBadge-badge': {
|
||||
right: 0,
|
||||
top: 0,
|
||||
border: '2px solid ',
|
||||
padding: '0 4px',
|
||||
background: '#f44336',
|
||||
color: "#ffffff",
|
||||
},
|
||||
}));
|
||||
|
||||
const Header_Client_Intranet = () => {
|
||||
const history = useHistory();
|
||||
const classes = useStyles();
|
||||
|
|
@ -61,16 +87,24 @@ const Header_Client_Intranet = () => {
|
|||
const [partnerconnected, setpartnerconnected] = useState("0");
|
||||
const stored_user = getCookie('tokenmysych');
|
||||
const stored_part = getCookie('tokenmysypart');
|
||||
|
||||
const stored_client_id = getCookie('tokenmysychclient');
|
||||
|
||||
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych'], { path: '/' });
|
||||
const [partcookie, setpartCookie, removepartCookie] = useCookies(['tokenmysypart'], { path: '/' });
|
||||
const [PartnerMenu, setPartnerMenu] = React.useState(null);
|
||||
const [AccountMenu, setAccountMenu] = React.useState(null);
|
||||
const [ProduitMenu, setproduitMenu] = React.useState(null);
|
||||
|
||||
const [nb_undread_mail, setnb_undread_mail] = React.useState("0");
|
||||
|
||||
useEffect(() => {
|
||||
var local_user_connect = 0;
|
||||
var local_part_connect = 0;
|
||||
|
||||
GetUserNameFromToken();
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
setuserconnected("0");
|
||||
local_user_connect = 0;
|
||||
|
|
@ -93,6 +127,40 @@ const Header_Client_Intranet = () => {
|
|||
|
||||
}, []);
|
||||
|
||||
|
||||
const [connected_user_data, setconnected_user_data] = useState();
|
||||
function GetUserNameFromToken(event) {
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
var form = new FormData();
|
||||
|
||||
form.append("token", stored_cookie);
|
||||
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")) {
|
||||
|
||||
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("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
const handleAccountCreation = () => {
|
||||
setAccountMenu(null);
|
||||
history.push("/signup/")
|
||||
|
|
@ -160,7 +228,7 @@ const Header_Client_Intranet = () => {
|
|||
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 +279,7 @@ const Header_Client_Intranet = () => {
|
|||
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 />
|
||||
|
|
@ -274,30 +342,26 @@ const Header_Client_Intranet = () => {
|
|||
// window.open("/tarif/#debut", "_self");
|
||||
}}>Tarifs </nav>
|
||||
</a>
|
||||
{/* <a href="/Recherche-Article-formation" className="menu-link">Blog</a>*/}
|
||||
<div className="separator"></div>
|
||||
<a href="/marketplace" className="menu-link">Marketplace</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>
|
||||
{connected_user_data && connected_user_data.nom && <div className="logo-menu">
|
||||
<nav className="menu-link">
|
||||
Bonjour {connected_user_data.nom.toUpperCase()} - Intranet
|
||||
</nav>
|
||||
</div>}
|
||||
|
||||
|
||||
<div className="cta-login">
|
||||
|
||||
</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-user-account/" + `${stored_client_id}` + "/affichage"} className="btn btn-secondary">Mon compte</a>
|
||||
}
|
||||
|
||||
</div>
|
||||
<div className="separator hide_on_mobile"></div>
|
||||
|
|
|
|||
|
|
@ -373,7 +373,7 @@ const Header_ENT_Student = () => {
|
|||
{/*** Fin GESTION Deconnexion */}
|
||||
|
||||
<header className="header_new_2025">
|
||||
<div className="header-content">
|
||||
<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();
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import New_C_Footer_Without_Testimony_2025_V2 from "../components/footer_automat
|
|||
import New_Navigation_2025 from "../components/New_Navigation_2025";
|
||||
|
||||
const account = () => {
|
||||
|
||||
|
||||
return (
|
||||
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
import Navigation from "../components/Navigation";
|
||||
import Account from "./../components/Account";
|
||||
import Intranet_Client_New_C_Header_2025_V2 from "../components/header_automatic_files/Header_Client_Intranet";
|
||||
import New_C_Footer_Without_Testimony_2025_V2 from "../components/footer_automatic_files/Layout_Without_Testimony";
|
||||
import New_Navigation_Intranet_Client_2025 from "../components/New_Navigation_Intranet_Client_2025";
|
||||
|
||||
const intranet_client_account = () => {
|
||||
|
||||
return (
|
||||
<div>
|
||||
<New_Navigation_Intranet_Client_2025 />
|
||||
<Intranet_Client_New_C_Header_2025_V2 />
|
||||
<Account />
|
||||
<New_C_Footer_Without_Testimony_2025_V2 />
|
||||
</div>
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
export default intranet_client_account;
|
||||
|
||||
|
|
@ -3,7 +3,7 @@ import New_C_Footer_Without_Testimony_2025_V2 from "../components/footer_automat
|
|||
import New_Navigation_ENT_Student_2025 from "../components/New_Navigation_ENT_Student_2025";
|
||||
import Student_Account_Ent from "../components/Student_Account_Ent";
|
||||
const student_account_ent = () => {
|
||||
|
||||
|
||||
return (
|
||||
<div>
|
||||
<New_Navigation_ENT_Student_2025 />
|
||||
|
|
|
|||
Loading…
Reference in New Issue