Compare commits

...

10 Commits

Author SHA1 Message Date
cherif 9dd2997b28 qsdqsdqs 2025-04-25 15:31:38 +02:00
cherif cf2df418b5 29/03/ 14h 2025-03-29 13:29:54 +01:00
cherif 3be3c2db4b sdsds 2025-03-29 09:43:27 +01:00
cherif b0b2108cae 10/03/2025 - 13h 2025-03-10 12:36:09 +01:00
cherif 6f197dbdbf qs 2025-03-06 19:06:48 +01:00
cherif 6283e86a8f 05/03/2025 - 18h 2025-03-05 19:17:27 +01:00
cherif f20f173e9d 04/03/2025 - 21h 2025-03-04 19:30:17 +01:00
cherif 23845e7267 27/02/2025 - 21h 2025-02-27 19:43:21 +01:00
cherif 844ca354db 18/02/2025 - 21h 2025-02-18 21:51:43 +01:00
cherif fb26d5a22f qsd 2025-02-16 20:50:03 +01:00
255 changed files with 19393 additions and 10990 deletions

BIN
public/img/jamila_e.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
public/img/thibault_p.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
public/img/valerie_c.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

@ -8,6 +8,36 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<!--
<script type='text/javascript'>
var link = !!document.querySelector("link[rel='canonical']") ? document.querySelector("link[rel='canonical']") : document.createElement('link');
link.setAttribute('rel', 'canonical');
link.setAttribute('href', location.protocol + '//' + location.host + location.pathname);
document.head.appendChild(link);
</script>
<script type='text/javascript'>
if (String(location.pathname) === "/") {
var link1 = document.createElement('meta');
link1.setAttribute('name', 'description');
link1.setAttribute('content', "Éditeur Français de logiciels de gestion pour organismes de formation - Gestion administrative, CRM, E-Learning, Marketplace");
document.head.appendChild(link1);
var link2 = document.createElement('meta');
link2.setAttribute('name', 'robots');
link2.setAttribute('content', "index,follow");
document.head.appendChild(link2);
var link3 = document.createElement('meta');
link3.setAttribute('name', 'title');
link3.setAttribute('content', "A propose MySy Training Technology");
document.head.appendChild(link3);
}
</script>
-->
<link rel="apple-touch-icon" href="%PUBLIC_URL%/MYSY-LOGO-BLUE_192.png" />
<!--
@ -25,7 +55,6 @@
Learn how to configure a non-root public URL by running `npm run build`.
-->
<link rel="canonical" href="https://www.mysy-training.com/" />
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-37423053-2"></script>

View File

@ -7,28 +7,35 @@
<url>
<loc>https://www.mysy-training.com/</loc>
<lastmod>2024-10-30T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://mysy-training.com/</loc>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/fonctionnalites</loc>
<lastmod>2024-11-08T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/qui-sommes-nous</loc>
<lastmod>2024-11-08T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/optimisation-des-processus-de-gestion-pour-les-organismes-de-formation-le-logiciel-mysy-training-technology</loc>
<lastmod>2024-10-30T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
@ -36,7 +43,7 @@
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/signature-electronique-et-organismes-de-formation</loc>
<lastmod>2024-11-08T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
@ -45,7 +52,7 @@
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/mysy-training-technology-editeur-de-logiciel-formation-pour-optimiser-la-gestion-des-etablissements-educatifs</loc>
<lastmod>2024-11-01T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
@ -53,7 +60,7 @@
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/pourquoi-la-certification-qualiopi-est-incontournable-pour-les-formateurs-independants-et-les-organismes-de-formation</loc>
<lastmod>2024-11-03T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
@ -62,21 +69,21 @@
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/realiser-son-bilan-pedagogique-et-financier-bpf-avec-mysy-training-technology
</loc>
<lastmod>2024-11-05T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/optimisation-des-processus-de-formation-avec-le-logiciel-de-gestion-pour-organismes-de-formation-mysy-training-technology-et-la-certification-qualiopi</loc>
<lastmod>2024-11-21T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/qualite-la-norme-itl-dans-entreprise-532</loc>
<lastmod>2024-10-30T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
@ -84,14 +91,14 @@
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/logiciel-de-gestion-pour-organisme-de-formation-pourquoi-est-ce-essentiel-pour-votre-succes</loc>
<lastmod>2024-11-13T09:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/logiciel-gestion-organismes-formation-guide-complet</loc>
<lastmod>2024-12-31T12:15:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
@ -99,7 +106,7 @@
<url>
<loc>https://www.mysy-training.com/Recherche-Article-formation</loc>
<lastmod>2024-10-30T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
@ -107,21 +114,21 @@
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/comment-choisir-un-logiciel-de-gestion-adapte-a-votre-centre-de-formation---261</loc>
<lastmod>2024-12-05T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Connexion</loc>
<lastmod>2024-10-30T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/ContactezNous</loc>
<lastmod>2024-11-08T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
@ -129,42 +136,42 @@
<url>
<loc>https://www.mysy-training.com/tarifs_produits_services</loc>
<lastmod>2024-10-30T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/comment-rendre-vos-formations-eligibles-au-cpf-grace-a-mysy-training--23f</loc>
<lastmod>2024-12-12T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/optimisation-qualiopi---simplifiez-votre-audit-avec-un-logiciel-adapte-aux-centres-de-formation-910</loc>
<lastmod>2024-12-15T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/comment-utiliser-un-logiciel-de-gestion-de-centre-de-formation-pour-votre-accreditation-qualiopi-7a6</loc>
<lastmod>2024-12-26T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/pourquoi-choisir-mysy-training-pour-gerer-votre-organisme-de-formation</loc>
<lastmod>2025-01-03T11:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/certification-qualiopi-explication-complete</loc>
<lastmod>2025-01-13T15:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
@ -172,14 +179,14 @@
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/mysy-training-votre-partenaire-pour-la-certification-qualiopi</loc>
<lastmod>2025-01-15T00:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>
<url>
<loc>https://www.mysy-training.com/Display-Detail-Article/logiciels-organismes-formation-avantages-mysy-training</loc>
<lastmod>2025-02-01T00:35:41+00:00</lastmod>
<lastmod>2025-02-16T11:35:41+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>1.0000</priority>
</url>

View File

@ -167,7 +167,7 @@ function App() {
<Route path="/maintenance" exact component={Maintenance} />
<Route path="/markeplace" exact component={Contact} />
<Route path="/create_account" exact component={CreateAccount} />
@ -185,7 +185,7 @@ function App() {
<Route path="/mysy-account-activated/" exact component={AccountUserActivated} />
{/* <Route path="/Produits-Services/" exact component={ProduitsService} />*/}
@ -223,6 +223,17 @@ function App() {
<Route path="/signup/" exact component={New_Sign_Up_2025} />
<Route path="/tarif/" exact component={New_Tarif_2025} />
<Route path="/contact/" exact component={New_Contact_2025} />
{/*
09/03/25 : un redirection a été faite dans cloudflaire pour les lignes ci-dessous
<Route path="/ContactezNous" exact component={New_Contact_2025} />
*/}
<Route path="/display-detail-article/:articleId" exact component={New_Article_Detail_2025} />
<Route path="/Display-Detail-Article/:articleId" exact component={New_Article_Detail_2025} />
@ -233,6 +244,15 @@ function App() {
<Route path="/fonctionnalites/" exact component={New_Fonctionnalite_2025} />
<Route path="/apropos/" exact component={New_A_Propos_2025} />
{/*
09/03/25 : un redirection a été faite dans cloudflaire pour les lignes ci-dessous
<Route path="/QuiSommesNous" exact component={New_A_Propos_2025} />
<Route path="/QuiSommesNous_v3" exact component={New_A_Propos_2025} />
<Route path="/qui-sommes-nous" exact component={New_A_Propos_2025} />
*/}
<Route path="/" exact component={New_Home_Page_2025} />
@ -260,16 +280,10 @@ function App() {
<Route path="/mysy-user-account" exact component={Account} />
<Route path="/Ajout-Article-formation" exact component={AddArticle} />
<Route path="/ResetUserPwd/:token/:accounttype" exact component={ResetUserPwd} />
<Route path="/QuiSommesNous" exact component={New_A_Propos_2025} />
<Route path="/QuiSommesNous_v3" exact component={New_A_Propos_2025} />
<Route path="/qui-sommes-nous" exact component={New_A_Propos_2025} />
<Route path="/ContactezNous" exact component={New_Contact_2025} />
<Route path="/DeleteUserAccount/:token" exact component={DeleteUserAccount} />
{/* Fin Migration */}

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@ import React, {useState,useEffect,} from "react";
const AccountDesabled = (props) => {
//creating IP state
return (
<div>

File diff suppressed because it is too large Load Diff

View File

@ -3301,7 +3301,7 @@ const AddParnerClient = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title"> Gestion compte intranet </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> Gestion compte intranet </DialogTitle>
<DialogContent className="DialogContent_width" >

View File

@ -5096,7 +5096,7 @@ const Apprenant = (props) => {
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title" >MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title" >MySy Information</DialogTitle>
<DialogContent>
<DialogContentText>
{Dialog_Suivi_Pedago_message}
@ -5213,7 +5213,7 @@ const Apprenant = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title" >Apprenant</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title" >Apprenant</DialogTitle>
<DialogContent className="DialogContent_width">
<div>
@ -5372,7 +5372,7 @@ const Apprenant = (props) => {
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">Tuteur {quel_tuteur}</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Tuteur {quel_tuteur}</DialogTitle>
{String(quel_tuteur) === "1" && <DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_tuteur_1_message}
@ -5806,7 +5806,7 @@ const Apprenant = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title" > Inscrire </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title" > Inscrire </DialogTitle>
<DialogContent className="DialogContent_width">
{New_Getall_TrainingSession_result && <div className="session_caract_Dialog"> <b> Session</b>
@ -5969,7 +5969,7 @@ const Apprenant = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} 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" style={{ "minHeight": "20rem" }}>
@ -6040,7 +6040,7 @@ const Apprenant = (props) => {
</Dialog>
<h3> Vos apprenants </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes apprenants </h3>
<div>
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -8475,7 +8475,7 @@ const Apprenant = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</div>
@ -8502,7 +8502,7 @@ const Apprenant = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</div>
@ -8761,7 +8761,7 @@ const Apprenant = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</div>
@ -8788,7 +8788,7 @@ const Apprenant = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</div>

View File

@ -1,10 +1,6 @@
import React, { useRef, useState, useEffect } from "react";
import { Button, } from "reactstrap";
import { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from "react-share";
import { SocialIcon } from 'react-social-icons';
import happyimg from "../mysy_img/happy.png";
import unhappyimg from "../mysy_img/nothappy.png";
import middleimg from "../mysy_img/middle.png";
import parse from 'html-react-parser'
import img_met_autre from "../mysy_img/met_autre.jpg";
import img_met_digital from "../mysy_img/met_digital.jpg";
@ -727,7 +723,7 @@ const Article = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">Votre article </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Votre article </DialogTitle>
<DialogContent className="DialogContent_width DialogContent_width_session_800px" >
@ -944,7 +940,7 @@ const Article = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -31,6 +31,7 @@ import { loadStripe } from '@stripe/stripe-js';
import { PaymentElement } from '@stripe/react-stripe-js';
import Popup from 'reactjs-popup';
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
@ -52,6 +53,7 @@ function CheckOut(props) {
const [currentpack, setcurrentpack] = useState(props.packs);
const [periodicity, setperiodicity] = useState(props.periodicity);
const [packprice, setpackprice] = useState(props.mypackprice);
const [selected_pack_unit_price, setselected_pack_unit_price] = useState(props.selected_pack_unit_price);
const [getpackproducts, setgetpackproducts] = useState();
const scrollDiv = useRef(null);
const [okcommande, setokcommande] = useState();
@ -445,6 +447,7 @@ function CheckOut(props) {
getCurrentUserData();
get_production_service_by_pack();
GetPayementMode();
setnb_formations("1");
if (String(props.packs).toLocaleLowerCase() === String("standard")) {
setprice_ch(process.env.REACT_APP_API_URL_STRIP_ID_PACK_STAND);
@ -467,10 +470,6 @@ function CheckOut(props) {
}, []);
function Handler() {
alert('works');
}
const [isLoading, setLoading] = useState();
@ -485,7 +484,11 @@ function CheckOut(props) {
//alert(" confirmation ok");
if (String(nb_formations) === "0") {
alert(" Vous devez choisir un nombre de formations ");
// alert(" Vous devez choisir un nombre de formations ");
setdisplay_alert_mysy("1");
setalert_message("Vous devez choisir un nombre de formations");
setalert_type("error");
document.getElementById('div_nb_formation').style.color = "red";
document.getElementById('div_ttc').style.color = "red";
@ -682,12 +685,19 @@ function CheckOut(props) {
if (String(props.packs).toLowerCase() === String("decouverte")) {
MySy_LMS_Account_Management();
setLoading(false);
alert(" La mise à jour de votre abonnement a été correctement traitée. Vous allez recevoir par email les details de la commande et la facture.")
var txt = " La mise à jour de votre abonnement a été correctement traitée. Vous allez recevoir par email les details de la commande et la facture.";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("success");
window.location.reload();
} else {
MySy_LMS_Account_Management();
setLoading(false);
alert(" La mise à jour de votre abonnement a été correctement traitée. Vous allez recevoir par email les details de la commande et la facture.")
var txt = " La mise à jour de votre abonnement a été correctement traitée. Vous allez recevoir par email les details de la commande et la facture."
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("success");
window.location.reload();
}
@ -743,7 +753,7 @@ function CheckOut(props) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Check_MySy_LMS_Account/";
axios.post(myurl, formData_tpm).then(res => {
console.log('In MySy_LMS_Account_Management status = ', res.data.status, " -- message = ", res.data.message);
// console.log('In MySy_LMS_Account_Management status = ', res.data.status, " -- message = ", res.data.message);
if (String(res.data.status) === String("true")) {
setMySy_LMS_Account_Management_api("true");
@ -776,36 +786,60 @@ function CheckOut(props) {
var adr_country = document.getElementsByName("adr_country")[0].value;
if (nom.trim().length <= 0) {
alert("Information de facturation incomplete : Le nom ");
var txt = "Information de facturation incomplete : Le nom ";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (email.trim().length <= 0) {
alert("Information de facturation incomplete : L'email ");
var txt = "Information de facturation incomplete : L'email ";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_street.trim().length <= 0) {
alert("Information de facturation incomplete : L'adresse ");
var txt = "Information de facturation incomplete : L'adresse";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_zip.trim().length <= 0) {
alert("Information de facturation incomplete : Le code postal ");
var txt = "Information de facturation incomplete : Le code postal";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_city.trim().length <= 0) {
alert("Information de facturation incomplete : La ville ");
var txt = "Information de facturation incomplete : La ville";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_country.trim().length <= 0) {
alert("Information de facturation incomplete : Le pays ");
var txt = "Information de facturation incomplete : Le pays";
setdisplay_alert_mysy("1");
setalert_message(txt);
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
@ -839,36 +873,53 @@ function CheckOut(props) {
formData.append('invoice_telephone', telephone);
if (nom.trim().length <= 0) {
alert("Information de facturation incomplete : Le nom ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : Le nom" );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (email.trim().length <= 0) {
alert("Information de facturation incomplete : L'email ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : L'email" );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_street.trim().length <= 0) {
alert("Information de facturation incomplete : L'adresse ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : L'adresse" );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_zip.trim().length <= 0) {
alert("Information de facturation incomplete : Le code postal ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : Le code postal" );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_city.trim().length <= 0) {
alert("Information de facturation incomplete : La ville ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : La ville" );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
if (adr_country.trim().length <= 0) {
alert("Information de facturation incomplete : Le pays ");
setdisplay_alert_mysy("1");
setalert_message("Information de facturation incomplete : Le pays " );
setalert_type("error");
setinvoiceAdressOK(false);
return;
}
@ -1097,7 +1148,7 @@ function CheckOut(props) {
// Fing gestion stripe
const [nb_formations, setnb_formations] = useState("0");
const [nb_formations, setnb_formations] = useState("1");
const change_nb_formations = event => {
@ -1237,6 +1288,13 @@ function CheckOut(props) {
setdisplay_alert_mysy("");
}
function testiframe(){
alert("JJJJJJJJJJJJJJJ");
}
function HelloFromChild(name) {
alert("Hello " + name + " , (called from child window)");
}
return (
<div className="checkout">
@ -1262,7 +1320,7 @@ function CheckOut(props) {
{String(menu) === String("default") && <div>
<h2 style={{ "textAlign": "center", "marginBottom": "2rem" }} ref={scrollDiv} id="scrollDiv"> Récapitulatif de votre commande </h2>
<h2 style={{ "textAlign": "center", "marginBottom": "2rem", fontFamily:'DM Sans' }} ref={scrollDiv} id="scrollDiv"> Récapitulatif de votre commande </h2>
<br />
@ -1315,14 +1373,19 @@ function CheckOut(props) {
<div style={{ "textAlign": "left", "width": "50%", "float": "left" }}>
Prix unitaire :
</div>
<div style={{ "textAlign": "right", "width": "50%", "float": "left" }}>
{packprice}
</div>
{String(periodicity).toLowerCase() === "annuel" && <div style={{ "textAlign": "right", "width": "50%", "float": "left" }}>
{packprice} ({selected_pack_unit_price} x 12 )
</div>}
{String(periodicity).toLowerCase() !== "annuel" && <div style={{ "textAlign": "right", "width": "50%", "float": "left" }}>
{packprice}
</div>}
</div>
<div style={{ "width": "90%", "float": "left" }} id="div_nb_formation" className="mob_heigh">
{/*<div style={{ "width": "90%", "float": "left" }} id="div_nb_formation" className="mob_heigh">
<div style={{ "textAlign": "left", "width": "50%", "float": "left" }}>
Nombre de formations :
</div>
@ -1346,7 +1409,7 @@ function CheckOut(props) {
}
</div>
</div>*/}
<div style={{ "width": "90%", "float": "left" }} id="div_ttc">
<div style={{ "textAlign": "left", "width": "50%", "float": "left" }}>
@ -1508,7 +1571,7 @@ function CheckOut(props) {
<div className="titre1"> Detail de Facturation </div>
{String(addfacturationinfo_api) === String("true") && String(addfacturationinfo_response).length > 3 &&
<div className="okUpdateData"> La modification ete prise en compte </div>}
<div className="okUpdateData"> La modification a été prise en compte </div>}
{String(addfacturationinfo_api) === String("false") || String(addfacturationinfo_response) === String("0") &&
<div className="koUpdateData"> Impossible de modifier les informations de facturation </div>}
@ -1681,22 +1744,22 @@ function CheckOut(props) {
{String(paymentmodeapi) === String("True") && <div>
{paymentmode && String(paymentmode).length > 0 && paymentmode.map((payment) => (
<ul className="list_produits_service">
<ul className="list_produits_service" style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
<div>
<ul>
<ul style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
Type carte : {(JSON.parse(payment).brand)}
</ul>
<ul>
<ul style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
Nom carte : {(JSON.parse(payment).nom_carte)}
</ul>
<ul>
<ul style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
Num carte : XXXXXX{(JSON.parse(payment).last4)}
</ul>
<ul>
<ul style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
Expiration : {(JSON.parse(payment).exp_month)}/{(JSON.parse(payment).exp_year)}
</ul>
<ul>
<ul style={{paddingLeft:'2px', fontFamily:'DM Sans'}}>
Date Creation : {(JSON.parse(payment).createdatetime)}
</ul>
@ -1757,7 +1820,7 @@ function CheckOut(props) {
Finalise Subscribe / Confirmer la commande
</button>
{paymentIntent && <h3> PAYEMENT OK REDIRECTION VERS LA PAGE OK</h3>}
{paymentIntent && <h3 style={{ fontFamily:'DM Sans' }}> PAYEMENT OK REDIRECTION VERS LA PAGE OK</h3>}
</div>
</div>
*/}

View File

@ -1177,7 +1177,7 @@ const Config_Champs_Personnalise = (props) => {
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title" >MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title" >MySy Information</DialogTitle>
<DialogContent>
<DialogContentText>
{Dialog_1_message}
@ -1199,7 +1199,7 @@ const Config_Champs_Personnalise = (props) => {
</DialogActions>
</Dialog>
<h3> Configuration documents </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Configuration documents </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -1540,7 +1540,7 @@ const Config_Champs_Personnalise = (props) => {
</div>
{String(display_personalised_field) === "1" && String(add_one_personal_field) !== "1" && <div className="div_row">
<h3> Détail champ personnalisé <i> {selected_field_name} </i></h3>
<h3 style={{ fontFamily:'DM Sans' }}> Détail champ personnalisé <i> {selected_field_name} </i></h3>
<div className="session_data" >
@ -1865,7 +1865,7 @@ const Config_Champs_Personnalise = (props) => {
<div className="div_row" ref={myRef_detail} id="myRef_detail"> &nbsp; </div>
{String(display_personalised_field) !== "1" && String(add_one_personal_field) === "1" && <div className="div_row">
<h3> Ajout d'un nouveau champ spécifique</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Ajout d'un nouveau champ spécifique</h3>
<div className="session_data" >

View File

@ -2298,7 +2298,7 @@ const Config_Documents = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} 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">
<div className="session_caract_Dialog" > Type Document
@ -2403,7 +2403,7 @@ const Config_Documents = (props) => {
</Dialog>
<h3> Configuration documents </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Configuration documents </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -2788,7 +2788,7 @@ const Config_Documents = (props) => {
{String(display_detail_document) === "1" && String(add_one_document) !== "1" && <div className="div_row">
<h3> Détail document <i> {p_detail_nom} </i></h3>
<h3 style={{ fontFamily:'DM Sans' }}> Détail document <i> {p_detail_nom} </i></h3>
<div className="div_row">
@ -3134,7 +3134,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3166,7 +3166,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3223,7 +3223,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3261,7 +3261,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3360,7 +3360,7 @@ const Config_Documents = (props) => {
</div>}
{String(display_detail_document) !== "1" && String(add_one_document) === "1" && <div className="div_row">
<h3> Personnaliser un nouveau document </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Personnaliser un nouveau document </h3>
<div className="div_row" style={{ "textAlign": "left" }}>
<div className="div_row_gauche"> Choisir le document à ajouter <br />
@ -3605,7 +3605,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3647,7 +3647,7 @@ const Config_Documents = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -2275,7 +2275,7 @@ const Config_Documents_Super_Admin = (props) => {
</Dialog>
<h3> Configuration documents (Admin) </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Configuration documents (Admin) </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -2661,7 +2661,7 @@ const Config_Documents_Super_Admin = (props) => {
{String(display_detail_document) === "1" && String(add_one_document) !== "1" && <div className="div_row">
<h3> Détail document <i> {p_detail_nom} </i></h3>
<h3 style={{ fontFamily:'DM Sans' }}> Détail document <i> {p_detail_nom} </i></h3>
<div className="div_row">
@ -2727,7 +2727,7 @@ const Config_Documents_Super_Admin = (props) => {
{String(partner_document_data_edit_mode) !== "1" && String(p_detail_type_doc) === "email" && <div className="div_row_gauche texte_area_filter" >
Joindre en PDF <br />
<Checkbox
name="document_join_pdf"
className="disabled_style"
@ -3007,7 +3007,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3039,7 +3039,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3096,7 +3096,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3134,7 +3134,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3190,7 +3190,7 @@ const Config_Documents_Super_Admin = (props) => {
</div>}
{String(display_detail_document) !== "1" && String(add_one_document) === "1" && <div className="div_row">
<h3> Personnaliser un nouveau document </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Personnaliser un nouveau document </h3>
<div className="div_row" style={{ "textAlign": "left" }}>
<div className="div_row_gauche"> Choisir le document à ajouter <br />
@ -3435,7 +3435,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3477,7 +3477,7 @@ const Config_Documents_Super_Admin = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -1709,7 +1709,7 @@ const CRM_Opportunite = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} 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" style={{ "minHeight": "30rem" }}>
<DialogContentText>
{Dialog_1_message}
@ -2149,7 +2149,7 @@ const CRM_Opportunite = (props) => {
{/* FIN Dialog pour gerer une OPPORTUNITE */}
<h3> Vos Opportunités </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes Opportunités </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>

View File

@ -628,7 +628,7 @@ const Dashbord_Factures = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des Commandes et Factures </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tableaux de bord des Commandes et Factures </h3>
<div className="div_row"> &nbsp;</div>

View File

@ -214,7 +214,7 @@ const Dashbord_Formation = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des formations</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tableaux de bord des formations</h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;
<Tooltip className="tooltip_css" id="my_tooltip_1_col" style={{ "fontSize": "12px" }} />

View File

@ -305,7 +305,7 @@ const Dashbord_Inscriptions = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des Inscriptions </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tableaux de bord des Inscriptions </h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;

View File

@ -492,7 +492,7 @@ const Dashbord_Ressources_Humaines = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des ressources humaines (Employés) </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tableaux de bord des ressources humaines (Employés) </h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;
<Tooltip className="tooltip_css" id="my_tooltip_1_col" style={{ "fontSize": "12px" }} />

View File

@ -330,7 +330,7 @@ const Dashbord_Session = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Tableaux de bord des sessions</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Tableaux de bord des sessions</h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;
<Tooltip className="tooltip_css" id="my_tooltip_1_col" style={{ "fontSize": "12px" }} />

File diff suppressed because it is too large Load Diff

View File

@ -5446,7 +5446,9 @@ const DisplayPartnerStagiaires = (props) => {
setliste_selected_inscription_id(liste_session);
setselectedtraining_emails(liste_session);
console.log(" liste_session = ", liste_session);
// console.log(" liste_session = ", liste_session);
// console.log(" actionmass_ftion_val = ", actionmass_ftion_val);
//console.log(" actionmass_ftion_val = ", actionmass_ftion_val);
@ -5477,7 +5479,7 @@ const DisplayPartnerStagiaires = (props) => {
Recyclage_Desactivation(liste_session);
}
else if (String(actionmass_ftion_val) === String("sendemail")) {
// console.log(" #### selectedtraining_emails_liste = ", selectedtraining_emails_liste);
// console.log(" #### selectedtraining_emails_liste = ", selectedtraining_emails_liste);
setDialog_SEND_EMAIL_open(true);
}
}
@ -6491,7 +6493,7 @@ const DisplayPartnerStagiaires = (props) => {
{ "id": "1", "label": "Supprimer", "value": "supprimer" },
{ "id": "2", "label": "Exporter", "value": "exporter" },
{ "id": "3", "label": "Desactiver Recyclage", "value": "recyclage_disable" },
{ "id": "4", "label": "Rédiger un Email", "value": "sendemail" },
{ "id": "4", "label": "Contacter par Email", "value": "sendemail" },
]
@ -6839,11 +6841,10 @@ const DisplayPartnerStagiaires = (props) => {
{/*** FIN Affichage des messages d'alerte*/}
{ /********* Dialog redaction email */}
<Dialog
open={Dialog_SEND_EMAIL_open}
//onClose={Dialog_SEND_EMAIL_handleClose}
className="module_email_management"
static
@ -6858,6 +6859,7 @@ const DisplayPartnerStagiaires = (props) => {
position: 'absolute',
top: '7rem',
margin: "2px",
maxWidth:'800px'
},
}}
hideBackdrop={true}
@ -6870,7 +6872,7 @@ const DisplayPartnerStagiaires = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title"> &nbsp; </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title"> &nbsp; </DialogTitle>
<DialogContent >
<DialogContentText>
@ -6893,10 +6895,7 @@ const DisplayPartnerStagiaires = (props) => {
>
<CancelPresentationIcon />
</IconButton>
</DialogActions>
@ -6934,7 +6933,7 @@ const DisplayPartnerStagiaires = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">Info Stagiaire</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">Info Stagiaire</DialogTitle>
<DialogContent className="DialogContent_width">
<div className="div_row_dialog">
@ -7154,7 +7153,7 @@ const DisplayPartnerStagiaires = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">Tuteur {quel_tuteur}</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">Tuteur {quel_tuteur}</DialogTitle>
{String(quel_tuteur) === "1" && <DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_tuteur_1_message}
@ -7593,7 +7592,7 @@ const DisplayPartnerStagiaires = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} 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" style={{ "minHeight": "30rem" }}>
@ -7914,7 +7913,7 @@ const DisplayPartnerStagiaires = (props) => {
</Dialog>
{ /**** FIN Dialog Convention */}
<h3> Vos stagiaires </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes stagiaires </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
@ -8891,7 +8890,7 @@ const DisplayPartnerStagiaires = (props) => {
</font>}
{String(actionmass_ftion_val) === "sendemail" &&
<font> Confirmer la <b> la rédaction d'un email </b> en masse pour {selectionModel.length} lignes.
<font> Confirmer la <b> rédaction d'un email </b> en masse pour {selectionModel.length} lignes.
</font>}
@ -10894,7 +10893,7 @@ const DisplayPartnerStagiaires = (props) => {
<hr className="hr_break" />
</div>
<div className="div_row" style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "padding": "5px" }}>
Acces Plateforme E-Learning (LMS)
Acces Plateforme E-Learning (LMS)
</div>
<div className="div_row" style={{ "border": "None" }}>
@ -11005,7 +11004,7 @@ const DisplayPartnerStagiaires = (props) => {
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -11030,7 +11029,7 @@ const DisplayPartnerStagiaires = (props) => {
{String(SendEvaluationEmail_api) === "true" && <div className="div_row okUpdateData" style={{ "textAlign": "center" }}>
La demande d'evaluation ete envoyée par email </div>}
La demande d'evaluation a été envoyée par email </div>}
<Button variant="contained" className="bton_enreg" onClick={SendEvaluationEmail}>Envoi demande evaluation
@ -11307,7 +11306,7 @@ const DisplayPartnerStagiaires = (props) => {
{String(props.formation_initiale) === "1" && String(submenu) === "ue" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<h3> Gestion des UE d'un inscrit </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Gestion des UE d'un inscrit </h3>
<div className="div_row">
<div className="session_caract"> <b>Unite D'enseignement </b> <br />
@ -11453,7 +11452,7 @@ const DisplayPartnerStagiaires = (props) => {
{String(props.formation_initiale) === "1" && String(submenu) === "notes" && String(display_notes) === "1" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<h3> Les notes de l'inscrit </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les notes de l'inscrit </h3>
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
<Button className="bton_emarge" onClick={(event) => {
Export_Inscrit_Notes();

View File

@ -952,13 +952,13 @@ const DistplayPartnerTraningsPage = (props) => {
else if (option && String(option) === "Ouvrir E-Learning") {
// setdialogOpen_push_lms(true);
// console.log(" ### acces e-learning url partner_lms_virtualhost_url = = ", props.partner_lms_virtualhost_url);
// console.log(" ###working_cellValues = = ", working_cellValues);
// console.log(" ### acces e-learning url partner_lms_virtualhost_url = = ", props.partner_lms_virtualhost_url);
// console.log(" ###working_cellValues = = ", working_cellValues);
if (props.partner_lms_virtualhost_url) {
var class_url = props.partner_lms_virtualhost_url + "courses/" + String(working_cellValues.row.lms_class_code + "/index.php?id_session=0")
// console.log(" ### class_url = ", class_url);
// console.log(" ### class_url = ", class_url);
window.open(
class_url,
@ -1104,7 +1104,7 @@ const DistplayPartnerTraningsPage = (props) => {
<button
className="gest_bton_popup"
onClick={() => {
// console.log('modal closed ');
// console.log('modal closed ');
Dialog_menuitem_close_push_lms();
}}
>
@ -2546,7 +2546,7 @@ const DistplayPartnerTraningsPage = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle>Info Formation</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">Info Formation</DialogTitle>
<DialogContent className="DialogContent_width">
<div className="div_row_dialog">
@ -2721,6 +2721,7 @@ const DistplayPartnerTraningsPage = (props) => {
</div>
}
<h3 style={{ fontFamily:'DM Sans' }}> Mes formations </h3>
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
<div className="div_row_gauche texte_area_filter" >
@ -3021,8 +3022,6 @@ const DistplayPartnerTraningsPage = (props) => {
Impossible de traiter la demande
</div>}
<div style={{ height: "800px", width: '100%', paddingRight: '10px' }}>
<div className="div_row" style={{ "border": "None" }}>
<div className='block_groupe_class'>

View File

@ -517,6 +517,11 @@ const DisplayPartnerUnite_Enseignement = (props) => {
setGetall_Parter_Unite_Enseignement_api("true");
setGetall_Parter_Unite_Enseignement_result(res.data.message);
setRows(res.data.message);
window.scrollTo({
top: 0,
behavior: "smooth",
});
}
else {
setGetall_Parter_Unite_Enseignement_api("false");
@ -1059,8 +1064,6 @@ const DisplayPartnerUnite_Enseignement = (props) => {
myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Unite_Enseignement/";
}
axios.post(myurl, form).then(res => {
setLoading(false);
// console.log(" In Add_Update_UE_Data res.data.status = " + res.data.status);
@ -1078,6 +1081,10 @@ const DisplayPartnerUnite_Enseignement = (props) => {
setalert_message(res.data.message);
setalert_type("success");
window.scrollTo({
top: 0,
behavior: "smooth",
});
if (document.getElementById('myRef_head')) {
var divh = document.getElementById('myRef_head').offsetTop;
@ -1958,7 +1965,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
{/*** Fin Dialog ajout PLANIF_LINE ue */}
<h3> Gestion des Unités d'enseignement </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Gestion des Unités d'enseignement </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -3139,7 +3146,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
@ -3177,7 +3184,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3208,7 +3215,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -3242,7 +3249,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>
@ -3276,7 +3283,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>
@ -3311,7 +3318,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>
@ -3990,7 +3997,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
@ -4028,7 +4035,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -4059,7 +4066,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -4093,7 +4100,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>
@ -4127,7 +4134,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>
@ -4162,7 +4169,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
'insertdatetime media table paste code help wordcount'
],
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }',
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }',
}}
/>

View File

@ -20,10 +20,7 @@ import img_met_graphisme from "../mysy_img/metier_graphisme.jpg";
import img_met_autre from "../mysy_img/met_autre.jpg";
import img_met_digital from "../mysy_img/met_digital.jpg";
import img_met_management from "../mysy_img/met_management.jpg";
import img_met_projet from "../mysy_img/met_projet.jpg";
import img_met_market from "../mysy_img/met_market.jpg";
import img_met_autre2 from "../mysy_img/met_autre2.jpg";
import img_met_dev_perso from "../mysy_img/metier_dev_perso.jpg";
import img_met_rh from "../mysy_img/met_rh.jpg";

View File

@ -697,7 +697,7 @@ function ESign() {
<h3> Signature Electronique </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Signature Electronique </h3>
<div className="div_row">
<div className="signature_block_explication" >

View File

@ -144,7 +144,7 @@ function ESignDiplayDignedDocument() {
<h3> Document Electronique </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Document Electronique </h3>
{is_valide_e_document && <div>
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}>

View File

@ -544,7 +544,7 @@ function Emarge_QR_Code() {
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">Signature Manuscrite </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Signature Manuscrite </DialogTitle>
<DialogContent className="DialogContent_width" >
<div style={{ width: "100%" }}>
@ -782,7 +782,7 @@ function Emarge_QR_Code() {
</div>}
<h3> Emargement électronique </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Emargement électronique </h3>
<div className="div_row">
<div className="block_guide_line" >

File diff suppressed because it is too large Load Diff

View File

@ -916,113 +916,7 @@ const Fonctionnalites_V1 = () => {
</div>
{/*
<div className="fonctionalite_header">
Pour en bénéficier ?
</div>
<div className="parent">
<div className="div1">
<div className="div_block_fonction_detail_titre">
Pack Indépendant
<hr className="hr_break" />
</div>
<div className="div_block_fonction_detail_img">
<img src={pack_independant} alt="pack indépendant : Destiné aux organismes de formation qui démarrent et qui moins de 25 sessions de formation par an. Nous automatisons Qualiopi. Lensemble de nos options : signature électronique, Gestion avis participants, Les émargements sécurisés, les contrats des formateurs, la gestion des financeurs sont inclus dans nos tarifs de base. Le bilan pédagogique et financier (PBF) est généré automatiquement" className="div_block_fonction_detail_img_inside" />
<nav className="div_block_prix" > 150 HT /mois </nav>
</div>
<div className="div_block_fonction_detail_desc detail_content_text_head_3">
<ul className="div_ul_detail_pack">
<li> <b> Jusqu'à 25 Sessions / an </b></li>
<li> Sans engagement</li>
<li> 2 Utilisateurs</li>
</ul>
</div>
<div style={{ width: '100%' }}>
<Button variant="contained"
className="btn_abonnement_v2"
onClick={(e) => {
e.preventDefault();
window.location.href = "/Partner";
}}
> Je m'abonne </Button>
</div>
</div>
<div className="div2" >
<div className="div_block_fonction_detail_titre">
Pack Standard
<hr className="hr_break" />
</div>
<div className="div_block_fonction_detail_img">
<img src={pack_standart} alt="pack standard : Destiné aux organismes de formation qui ont entre 26 et 200 sessions de formation par an. Nous automatisons Qualiopi. Lensemble de nos options : signature électronique, Gestion avis participants, Les émargements sécurisés, les contrats des formateurs, la gestion des financeurs sont inclus dans nos tarifs de base. Le bilan pédagogique et financier (PBF) est généré automatiquement" className="div_block_fonction_detail_img_inside" />
<nav className="div_block_prix"> 299 HT/mois </nav>
</div>
<div className="div_block_fonction_detail_desc detail_content_text_head_3">
<ul className="div_ul_detail_pack">
<li> <b> De 26 à 200 Sessions / an </b> </li>
<li> Sans engagement </li>
<li> Utilisateurs illimités </li>
</ul>
</div>
<div style={{ width: '100%' }}>
<Button variant="contained"
className="btn_abonnement_v2"
onClick={(e) => {
e.preventDefault();
window.location.href = "/Partner";
}}
> Je m'abonne </Button>
</div>
</div>
<div className="div3">
<div className="div_block_fonction_detail_titre">
Pack Gold
<hr className="hr_break" />
</div>
<div className="div_block_fonction_detail_img">
<img src={pack_gold} alt="pack Gold : Destiné aux organismes de formation qui ont plus de 200 sessions de formation par an. Nous automatisons Qualiopi. Lensemble de nos options : signature électronique, Gestion avis participants, Les émargements sécurisés, les contrats des formateurs, la gestion des financeurs sont inclus dans nos tarifs de base. Le bilan pédagogique et financier (PBF) est généré automatiquement" className="div_block_fonction_detail_img_inside" />
<nav className="div_block_prix"> 599 HT/mois </nav>
</div>
<div className="div_block_fonction_detail_desc detail_content_text_head_3">
<ul className="div_ul_detail_pack">
<li><b> A partir de 201 Sessions / an </b> </li>
<li>Sans engagement </li>
<li>Utilisateurs illimités </li>
</ul>
</div>
<div style={{ width: '100%' }}>
<Button variant="contained"
className="btn_abonnement_v2"
onClick={(e) => {
e.preventDefault();
window.location.href = "/Partner";
}}
> Je m'abonne </Button>
</div>
</div>
</div>
*/}
<div className="fonctionalite_header">
@ -1316,72 +1210,7 @@ const Fonctionnalites_V1 = () => {
</div>
{/*<div className="div_row_where">
<div className="div_carte">
<a target="_blank"
href="https://www.google.com/maps/place/MySy+Training+Technology/@48.8761591,2.3260624,15z/data=!4m5!3m4!1s0x0:0x8239ba23406c9699!8m2!3d48.8761591!4d2.3260624">
<img src={ousommesnousimg} alt="logo MySy Technology ou sommes nous" style={{ 'width': "100%", 'height': '50%' }} />
</a>
</div>
<div className="div_adresse_new" >
<br />
<ButtonMailto label="CONTACTEZ NOUS" mailto="mailto:contact@mysy-training.com" className="contactez_nous" />
<div className="contactez_nous_titre">MySy Training Technology</div>
<div className="contactez_nous_info">
Adresse : 1 Cr du Havre, 75008 Paris <br />
Adresse email :
<a href="mailto: contact@mysy-training.com?subject=Mail from mysy website" target="_blank"> contact@mysy-training.com</a> <br />
Téléphone fixe : +331 77 00 38 57<br />
Téléphone : +337 69 20 39 45<br />
</div>
<br />
<div> Sur nos reseaux sociaux
<div style={{ 'float': "center", "textAlign": "center" }}>
<div className="media_sociaux">
<FacebookShareButton
url={"https://www.facebook.com/MySy-Training-114572794561371/"}
>
<SocialIcon network="facebook" className="SocialIcon" />
</FacebookShareButton>
&nbsp;
<TwitterShareButton
url={"https://twitter.com/mysy_training"}
hashtag={"#MySyTraining"}
>
<SocialIcon network="twitter" className="SocialIcon" />
</TwitterShareButton>
&nbsp;
<LinkedinShareButton
url={"https://www.linkedin.com/"}
summary={"ee"}
source={"https://www.linkedin.com/in/mysy-training-96b53a237/"}
>
<SocialIcon network="linkedin" className="SocialIcon" />
</LinkedinShareButton>
</div>
</div>
</div>
</div>
</div>*/}
<div className="pieddepage">

View File

@ -6720,7 +6720,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:12px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:12px; }'
}}
/>
</div>
@ -7497,7 +7497,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:12px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:12px; }'
}}
/>
</div>
@ -9195,7 +9195,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -9220,7 +9220,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
{String(SendEvaluationEmail_api) === "true" && <div className="div_row okUpdateData" style={{ "textAlign": "center" }}>
La demande d'evaluation ete envoyée par email </div>}
La demande d'evaluation a été envoyée par email </div>}
<Button variant="contained" className="bton_envoyer" onClick={SendEvaluationEmail}>Envoi demande evaluation

View File

@ -2751,7 +2751,7 @@ const Groupe_Apprenant = (props) => {
{/*** Fin ajout GROUPE AUTOMATIC */}
<h3> Les groupes d'apprenants </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les groupes d'apprenants </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>

View File

@ -281,7 +281,7 @@ const Header = () => {
const handleMarketplace = (event) => {
history.push("/recherche-formation")
};
};
const handlePartner_Catalog = (event) => {
// history.push("/moncatalog")

View File

@ -279,7 +279,7 @@ function HebergementLms(props) {
img_height = this.height;
img_width = this.width;
_URL.revokeObjectURL(objectUrl);
console.log(" img_width = ", img_width, " img_height = ", img_height)
// console.log(" img_width = ", img_width, " img_height = ", img_height)
if (parseFloat(img_width) > 130 && parseFloat(img_width) < 260 &&
parseFloat(img_height) > 60 && parseFloat(img_height) < 150) {
@ -551,8 +551,6 @@ function HebergementLms(props) {
//console.log(" img_height est = ", img_height, " < à 1500 ");
if (String(event.target.files[0].name).length > 50) {
sethandleSubmission_bg_message(" Le nom du fichier est trop long. il doit faire moins de 50 caractère");
sethandleSubmission_bg_api("false");

View File

@ -1244,7 +1244,7 @@ function Inscription_Information(props) {
</div>}
<h3> Demande d'evaluation </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Demande d'evaluation </h3>
<div className="div_row22 survey_block">
<fieldset>
<nav className="survey_title"> 1. Une <b>note </b> pour l'appréciation générale </nav>
@ -1297,7 +1297,7 @@ function Inscription_Information(props) {
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
</fieldset>
@ -1525,7 +1525,7 @@ function Inscription_Information(props) {
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -1771,7 +1771,7 @@ function Inscription_Information(props) {
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -3393,7 +3393,7 @@ const options_menu_vertical = [
{/******** FIN Menu Clique Droit test */}
<h3> Vos 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" }}>

View File

@ -6494,7 +6494,7 @@ function ExportMenuItem(props) {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">Info Stagiaire</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Info Stagiaire</DialogTitle>
<DialogContent className="DialogContent_width">
<div className="div_row_dialog">
@ -6715,7 +6715,7 @@ function ExportMenuItem(props) {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">Tuteur {quel_tuteur}</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Tuteur {quel_tuteur}</DialogTitle>
{String(quel_tuteur) === "1" && <DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_tuteur_1_message}
@ -7445,7 +7445,7 @@ function ExportMenuItem(props) {
</Dialog>
{ /**** FIN Dialog Convention */}
<h3> Vos stagiaires </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes stagiaires </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
@ -10424,7 +10424,7 @@ function ExportMenuItem(props) {
'insertdatetime media table paste code help wordcount'
],
toolbar: false,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
@ -10449,7 +10449,7 @@ function ExportMenuItem(props) {
{String(SendEvaluationEmail_api) === "true" && <div className="div_row okUpdateData" style={{ "textAlign": "center" }}>
La demande d'evaluation ete envoyée par email </div>}
La demande d'evaluation a été envoyée par email </div>}
<Button variant="contained" className="bton_enreg" onClick={SendEvaluationEmail}>Envoi demande evaluation
@ -10726,7 +10726,7 @@ function ExportMenuItem(props) {
{String(props.formation_initiale) === "1" && String(submenu) === "ue" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<h3> Gestion des UE d'un inscrit </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Gestion des UE d'un inscrit </h3>
<div className="div_row">
<div className="session_caract"> <b>Unite D'enseignement </b> <br />
@ -10872,7 +10872,7 @@ function ExportMenuItem(props) {
{String(props.formation_initiale) === "1" && String(submenu) === "notes" && String(display_notes) === "1" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<h3> Les notes de l'inscrit </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les notes de l'inscrit </h3>
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
<Button className="bton_emarge" onClick={(event) => {
Export_Inscrit_Notes();

View File

@ -849,7 +849,7 @@ const Intranet_Tous_Documents = (props) => {
</div>}
<h3> Tous vos documents </h3>
<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" }}>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1172,7 +1172,7 @@ const Module_Absence = (props) => {
</Dialog>
<h3> Planning </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Planning </h3>
<div style={{ "textAlign": "right", "float": "right", "width": "100%" }}>
Affichage : <nav className="mode_affichage" onClick={func_display_planning_view}> <FcPlanner /> planning </nav>

View File

@ -1,6 +1,5 @@
import React, { useRef, useState, useEffect } from "react";
import TextField from '@mui/material/TextField';
import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
@ -8,14 +7,8 @@ import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import fileDownload from 'js-file-download'
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint } from "react-icons/fc";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns'
@ -26,12 +19,9 @@ import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { TransitionProps } from '@mui/material/transitions';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
//import FullCalendar from "@fullcalendar/react";
import daygridPlugin from "@fullcalendar/daygrid";
//import interactionPlugin from "@fullcalendar/interaction";
//import timeGridPlugin from "@fullcalendar/timegrid";
import allLocales from '@fullcalendar/core/locales-all'
@ -39,9 +29,10 @@ import allLocales from '@fullcalendar/core/locales-all'
import ToggleSwitch from "./ToggleSwitch";
import Autocomplete from '@mui/material/Autocomplete';
import FullCalendar, { formatDate } from "@fullcalendar/react";
import dayGridPlugin from "@fullcalendar/daygrid";
import timeGridPlugin from "@fullcalendar/timegrid";
import interactionPlugin from "@fullcalendar/interaction";
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
import Timeline, {
@ -66,10 +57,48 @@ import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';
import ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';
import ExitToAppIcon from '@mui/icons-material/ExitToApp';
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
import Draggable from 'react-draggable';
import { IconButton } from '@material-ui/core';
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
function PaperComponent(props) {
return (
<Draggable
handle="#draggable-dialog-title"
cancel={'[class*="MuiDialogContent-root"]'}
>
<Paper {...props} />
</Draggable>
);
}
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'absolute',
// left: 10,
top: 400
},
paper: {
overflowY: 'unset',
},
customizedButton: {
position: 'absolute',
left: '98%',
top: '-3%',
backgroundColor: 'lightgray',
color: 'gray',
},
}));
const Module_Agenda = (props) => {
const myconntected_employee_id = props.conntected_employee_id;
const classes = useStyles();
const [selected_employee_id, setselected_employee_id] = useState(props.conntected_employee_id);
const history = useHistory();
@ -270,7 +299,7 @@ const Module_Agenda = (props) => {
const [Get_List_Agenda_Events_For_Given_User_api, setGet_List_Agenda_Events_For_Given_User_api] = useState();
const [Get_List_Agenda_Events_For_Given_User_message, setGet_List_Agenda_Events_For_Given_User_message] = useState();
const [Get_List_Agenda_Events_For_Given_User_result, setGet_List_Agenda_Events_For_Given_User_result] = useState();
const [Get_List_Agenda_Events_For_Given_User_result, setGet_List_Agenda_Events_For_Given_User_result] = useState([]);
function Get_List_Agenda_Events_For_Given_User(local_selected_id) {
var local_related_collection = p_filtre1;
@ -283,9 +312,6 @@ const Module_Agenda = (props) => {
form.append("related_collection", local_related_collection);
form.append("related_collection_recid", local_selected_id);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_Agenda_Event_List/";
setLoading(true);
@ -358,7 +384,7 @@ const Module_Agenda = (props) => {
const [Get_List_Agenda_Events_For_Many_Users_api, setGet_List_Agenda_Events_For_Many_Users_api] = useState();
const [Get_List_Agenda_Events_For_Many_Users_message, setGet_List_Agenda_Events_For_Many_Users_message] = useState();
const [Get_List_Agenda_Events_For_Many_Users_result, setGet_List_Agenda_Events_For_Many_Users_result] = useState();
const [Get_List_Agenda_Events_For_Many_Users_result, setGet_List_Agenda_Events_For_Many_Users_result] = useState([]);
function Get_List_Agenda_Events_For_Many_Users(tab_json_data, related_collection) {
var local_tab_ids = []
@ -456,7 +482,7 @@ const Module_Agenda = (props) => {
const [Get_List_Agenda_Events_For_Me_api, setGet_List_Agenda_Events_For_Me_api] = useState();
const [Get_List_Agenda_Events_For_Me_message, setGet_List_Agenda_Events_For_Me_message] = useState();
const [Get_List_Agenda_Events_For_Me_result, setGet_List_Agenda_Events_For_Me_result] = useState();
const [Get_List_Agenda_Events_For_Me_result, setGet_List_Agenda_Events_For_Me_result] = useState([]);
function Get_List_Agenda_Events_For_Me(local_selected_id) {
var local_related_collection = p_filtre1;
@ -610,8 +636,7 @@ const Module_Agenda = (props) => {
}
const myEventsList = []
const [events, setEvents] = useState([]);
const handleSelect = (info) => {
if (String(selected_employee_id).length < 2) {
@ -1260,14 +1285,36 @@ const Module_Agenda = (props) => {
}
{/*** FIN Affichage des messages d'alerte*/}
{/*** Dialog detail eventement */}
<Dialog
open={Dialog_1_open}
onClose={Dialog_1_handleClose}
// onClose={Dialog_1_handleClose}
className="module_agenda"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle>MySy Information</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
@ -1304,30 +1351,7 @@ const Module_Agenda = (props) => {
/>
}
/>
{/*<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_type"
id="event_dialog_type"
select
fullWidth
value={p_detail_event_type}
onChange={(e) => {
if (String(props.write_access) === "1") {
setp_detail_event_type(e.target.value);
}
}
}
>
<MenuItem value="absence" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Absence &nbsp;&nbsp;</MenuItem>
<MenuItem value="planning" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Planning &nbsp;</MenuItem>
<MenuItem value="autre" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Autre &nbsp;</MenuItem>
</TextField>*/}
</nav>
</div>
@ -1454,6 +1478,16 @@ const Module_Agenda = (props) => {
<DialogActions>
<IconButton
autoFocus
onClick={Close_Dialog_Detail_Event_open}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
{String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "" && <div className="div_row_gauche">
{p_detail_event_id && String(p_detail_event_id) !== "" && <Button onClick={Update_One_Agenda_Event} className="bton_enreg_dialog">Mettre à jour</Button>}
@ -1487,8 +1521,10 @@ const Module_Agenda = (props) => {
</DialogActions>}
</Dialog>
{/*** FIn Dialog detail eventement */}
<h3> Planning </h3>
<h3 style={{ fontFamily: 'DM Sans' }}> Planning </h3>
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
@ -1600,29 +1636,7 @@ const Module_Agenda = (props) => {
</div>}
{p_filtre1 && String(p_filtre1) === "ressource_materielle" && <div className="div_row_droite texte_area_filter_value" >
{/*} <Autocomplete
disablePortal
name="filtre1_value"
id="filtre1_value"
className="disabled_style"
options={New_Getall_Training_Materiel_No_Filter_result}
onChange={(event, value) => {
if (value && value._id) {
Get_Ressource_Data(value._id)
setselected_employee_id(value._id);
Get_List_Agenda_Events_For_Given_User(value._id);
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>*/}
<Autocomplete
disablePortal
@ -1681,6 +1695,7 @@ const Module_Agenda = (props) => {
editable
selectable
//events={events}
contentHeight='auto'
events={mysy_events}
select={handleSelect}
@ -1800,7 +1815,7 @@ const Module_Agenda = (props) => {
</div>
<div style={{ width: '15rem', float: 'right', paddingTop:'5px' }}>
<div style={{ width: '15rem', float: 'right', paddingTop: '5px' }}>
<DatePicker
name="event_dialog_start"

View File

@ -33,7 +33,7 @@ const Module_Alert_Confirmation = (props) => {
<Stack sx={{ width: '10%', float: 'right', textAlign: 'right', paddingRight: "10px", cursor: 'pointer', paddingLeft: '7%', paddingTop: '10px' }} onClick={() => {
props.clear_display_alert_mysy();
setShowElement(false);
}}> <IoCloseCircleOutline />
}}> <IoCloseCircleOutline style={{color:'#FFF'}}/>
</Stack>
</div>}
@ -48,7 +48,7 @@ const Module_Alert_Confirmation = (props) => {
<Stack sx={{ width: '10%', float: 'right', textAlign: 'right', paddingRight: "10px", cursor: 'pointer', paddingLeft: '7%', paddingTop: '10px' }} onClick={() => {
props.clear_display_alert_mysy();
setShowElement(false);
}}> <IoCloseCircleOutline />
}}> <IoCloseCircleOutline style={{color:'#FFF'}}/>
</Stack>
</div>}
@ -64,7 +64,7 @@ const Module_Alert_Confirmation = (props) => {
<Stack sx={{ width: '10%', float: 'right', textAlign: 'right', paddingRight: "10px", cursor: 'pointer', paddingLeft: '7%', paddingTop: '10px' }} onClick={() => {
props.clear_display_alert_mysy();
setShowElement(false);
}}> <IoCloseCircleOutline />
}}> <IoCloseCircleOutline style={{color:'#FFF'}}/>
</Stack>
</div>}
@ -81,7 +81,7 @@ const Module_Alert_Confirmation = (props) => {
<Stack sx={{ width: '10%', float: 'right', textAlign: 'right', paddingRight: "10px", cursor: 'pointer', paddingLeft: '7%', paddingTop: '10px' }} onClick={() => {
props.clear_display_alert_mysy();
setShowElement(false);
}}> <IoCloseCircleOutline />
}}> <IoCloseCircleOutline style={{color:'#FFF'}}/>
</Stack>
</div>}

View File

@ -29,6 +29,7 @@ import Autocomplete from '@mui/material/Autocomplete';
import { gridClasses } from '@mui/x-data-grid';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
const Module_Attestation_Formation = (props) => {
@ -104,9 +105,9 @@ const Module_Attestation_Formation = (props) => {
const columns_attestations = [
{ field: 'id', headerName: 'id', hide: true },
{ field: '_id', headerName: '_id', hide: true },
{ field: 'email', headerName: 'email', minwidth: 200, flex : 1, hideable: true, resizable: true, },
{ field: 'nom', headerName: 'nom',minwidth: 200, flex : 1, hide: false, editable: true, },
{ field: 'prenom', headerName: 'prenom',minwidth: 200, flex : 1, hide: false, editable: false, },
{ field: 'email', headerName: 'email', minwidth: 200, flex: 1, hideable: true, resizable: true, },
{ field: 'nom', headerName: 'nom', minwidth: 200, flex: 1, hide: false, editable: true, },
{ field: 'prenom', headerName: 'prenom', minwidth: 200, flex: 1, hide: false, editable: false, },
{
field: 'status', headerName: 'Statut', width: 100, editable: false, flex: true,
valueFormatter: (params) => {
@ -268,7 +269,10 @@ const Module_Attestation_Formation = (props) => {
setCreateLis_Attestation_Ftion_api("true");
setCreateLis_Attestation_Ftion_result(res.data.message);
Getall_Attestation_By_Session();
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -277,14 +281,20 @@ const Module_Attestation_Formation = (props) => {
else {
setCreateLis_Attestation_Ftion_api("false");
setCreateLis_Attestation_Ftion_message(res.data.message);
alert(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('CreateLis_Attestation_Ftion : Not good man :( mysearchtext = ' + error);
setCreateLis_Attestation_Ftion_api("false");
alert(" Impossible d'initialiser la liste des attestations");
// alert(" Impossible d'initialiser la liste des attestations");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'initialiser la liste des attestations");
setalert_type("error");
})
}
@ -316,7 +326,10 @@ const Module_Attestation_Formation = (props) => {
setCreateLis_Attestation_Ftion_For_Session_api("true");
setCreateLis_Attestation_Ftion_For_Session_result(res.data.message);
Getall_Attestation_By_Session();
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -325,14 +338,20 @@ const Module_Attestation_Formation = (props) => {
else {
setCreateLis_Attestation_Ftion_For_Session_api("false");
setCreateLis_Attestation_Ftion_For_Session_message(res.data.message);
alert(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('CreateLis_Attestation_Ftion_For_Session : Not good man :( mysearchtext = ' + error);
setCreateLis_Attestation_Ftion_For_Session_api("false");
alert(" Impossible d'initialiser la liste des attestations");
//alert(" Impossible d'initialiser la liste des attestations");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'initialiser la liste des attestations");
setalert_type("error");
})
}
@ -367,7 +386,11 @@ const Module_Attestation_Formation = (props) => {
setSend_Attestation_By_Email_For_Ids_api("true");
setSend_Attestation_By_Email_For_Ids_result(res.data.message);
Getall_Attestation_By_Session();
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -376,14 +399,20 @@ const Module_Attestation_Formation = (props) => {
else {
setSend_Attestation_By_Email_For_Ids_api("false");
setSend_Attestation_By_Email_For_Ids_message(res.data.message);
alert(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('Send_Attestation_By_Email_For_Ids : Not good man :( mysearchtext = ' + error);
setSend_Attestation_By_Email_For_Ids_api("false");
alert(" Impossible d'envoyer les attestations");
// alert(" Impossible d'envoyer les attestations");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'envoyer les attestations");
setalert_type("error");
})
}
@ -396,7 +425,7 @@ const Module_Attestation_Formation = (props) => {
if (String(actionmass_attesation_val) === String("reinit")) {
alert(" ### reinit");
// alert(" ### reinit");
}
@ -508,14 +537,20 @@ const Module_Attestation_Formation = (props) => {
else {
setGet_List_Stagiaire_Attestation_Ftion_api("false");
setGet_List_Stagiaire_Attestation_Ftion_message(res.data.message);
alert(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_List_Stagiaire_Attestation_Ftion = ', error);
setGet_List_Stagiaire_Attestation_Ftion_api("false");
alert("Impossible de récupérer les modèles de convocations");
// alert("Impossible de récupérer les modèles de convocations");
setdisplay_alert_mysy("1");
setalert_message("Impossible de récupérer les modèles de convocations");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -527,6 +562,20 @@ const Module_Attestation_Formation = (props) => {
const [action_server_ref_interne_doc, setaction_server_ref_interne_doc] = useState("");
const [action_server_type_doc_ref_interne, setaction_server_type_doc_ref_interne] = 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("");
}
return (
<div className="module_attestation_formation">
@ -534,6 +583,17 @@ const Module_Attestation_Formation = (props) => {
<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*/}
<Dialog
open={Dialog_1_open}
onClose={Dialog_1_handleClose}
@ -622,9 +682,9 @@ const Module_Attestation_Formation = (props) => {
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps = {{...params.inputProps, style: { fontSize: 12, height:"1.4rem" }}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
/>
}
/>
@ -660,15 +720,15 @@ const Module_Attestation_Formation = (props) => {
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps = {{...params.inputProps, style: { fontSize: 12, height:"1.4rem" }}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
/>
}
/>
</div>}
{String(selected_convention_type) === "pdf" && <div className="session_caract_Dialog" > Recevoir un pré-envoie
<TextField
@ -684,7 +744,7 @@ const Module_Attestation_Formation = (props) => {
</div>
}
</DialogContent>
<DialogActions>
@ -729,8 +789,6 @@ const Module_Attestation_Formation = (props) => {
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_LIST_ATTESTATION_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>
@ -829,19 +887,19 @@ const Module_Attestation_Formation = (props) => {
backgroundColor: 'rgba(235, 235, 235, .7)',
color: 'black',
},
[`& .${gridClasses.cell}`]: {
py: 1,
},
'& .line--attestion_envoye': {
backgroundColor: '#ccffcc',
color: 'black',
fontWeight: '600',
},
}}
}}
>
<DataGrid
checkboxSelection
@ -900,14 +958,14 @@ const Module_Attestation_Formation = (props) => {
else if (parseInt(String(params.row.id)) % 2 !== 0) {
return 'line--statut--impair';
}
}}
getRowClassName={(params) => {
if (String(params.row.status) === "1") {
return 'line--attestion_envoye';
}

File diff suppressed because it is too large Load Diff

View File

@ -883,7 +883,7 @@ const Module_Email_Management = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -335,7 +335,7 @@ const Module_Evaluation_Positionnement = (props) => {
form.append("survey_type", "pos");
form.append("sending_date", "");
//alert(" mysession = "+mysession);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Init_Survey_Tab_For_All_Session_Inscrit/";
@ -374,7 +374,10 @@ const Module_Evaluation_Positionnement = (props) => {
setLoading(false);
console.warn('Create_List_Survey_For_Session_For_Inscrit : Not good man :( mysearchtext = ' + error);
setCreate_List_Survey_For_Session_For_Inscrit_api("false");
alert(" Impossible d'initialiser la liste des enquête de positionnement ");
// alert(" Impossible d'initialiser la liste des enquête de positionnement ");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'initialiser la liste des enquête de positionnement ");
setalert_type("error");
})
}
@ -484,7 +487,10 @@ const Module_Evaluation_Positionnement = (props) => {
setLoading(false);
console.warn('Send_Survey_By_Email_For_Ids : Not good man :( mysearchtext = ' + error);
setSend_Survey_By_Email_For_Ids_api("false");
alert(" Impossible d'envoyer les demandes");
// alert(" Impossible d'envoyer les demandes");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'envoyer les demandes");
setalert_type("error");
})
}
@ -504,7 +510,10 @@ const Module_Evaluation_Positionnement = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les réponses (2) ");
// alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2)");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd)
@ -512,7 +521,10 @@ const Module_Evaluation_Positionnement = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les réponses ")
// alert(" Impossible d'exporter les réponses ")
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses");
setalert_type("error");
});
@ -527,15 +539,15 @@ const Module_Evaluation_Positionnement = (props) => {
if (tab_ids_survey.length <= 0) {
// alert(" Aucune ligne selectionnée ");
// alert(" Aucune ligne selectionnée ");
setdisplay_alert_mysy("1");
setalert_message("Aucune ligne selectionnée ");
setalert_type("error");
setalert_message("Aucune ligne selectionnée ");
setalert_type("error");
return;
}
var nom_fichier_cmd = "Q_Position.zip";
var url = process.env.REACT_APP_API_URL + "myclass/api/Export_To_Excel_Survey_with_filter_Tab_Survey_Id/" + stored_cookie + "/" + tab_ids_survey.toString()+"/Positionnement";
var url = process.env.REACT_APP_API_URL + "myclass/api/Export_To_Excel_Survey_with_filter_Tab_Survey_Id/" + stored_cookie + "/" + tab_ids_survey.toString() + "/Positionnement";
setLoading(true);
@ -544,7 +556,7 @@ const Module_Evaluation_Positionnement = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
// alert("Impossible d'exporter les réponses (2) ");
// alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2) ");
setalert_type("error");
@ -557,7 +569,7 @@ const Module_Evaluation_Positionnement = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
// alert(" Impossible d'exporter les réponses ")
// alert(" Impossible d'exporter les réponses ")
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponse ");
setalert_type("error");
@ -605,13 +617,34 @@ const Module_Evaluation_Positionnement = (props) => {
<Dialog
open={Dialog_1_open}
onClose={Dialog_1_handleClose}
// onClose={Dialog_1_handleClose}
className="module_agenda"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '5rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle>MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_1_message}
@ -641,9 +674,17 @@ const Module_Evaluation_Positionnement = (props) => {
</DialogContent>
<DialogActions>
<IconButton
// autoFocus
onClick={Close_Dialog_Detail_Event_open}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
<div className="div_row_gauche">
<Button onClick={"Update_One_Agenda_Event"} className="bton_enreg_dialog">Mettre à jour</Button>
@ -689,7 +730,7 @@ const Module_Evaluation_Positionnement = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} 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" style={{ "minHeight": "30rem" }}>
<DialogContentText>
{Dialog_1_message}
@ -756,9 +797,6 @@ const Module_Evaluation_Positionnement = (props) => {
}}
className="bton_enreg_dialog">Initialiser la liste </Button>
</div>
@ -989,7 +1027,7 @@ const Module_Evaluation_Positionnement = (props) => {
onChange={(event, value) => {
if (value && value.value) {
if (String(value.value) === "reinit" || String(value.value) === "resend"
|| String(value.value) === "print") {
|| String(value.value) === "print") {
setactionmass_q_position_val(value.value);

View File

@ -79,11 +79,8 @@ const Module_Historique_Action = (props) => {
//menu_info();
Get_List_Historic_Action();
var divh = document.getElementById('div_header').offsetTop;
window.scrollTo({
top: divh,
behavior: "smooth",
});
//var divh = document.getElementById('div_header').offsetTop;
}, [related_collection_recid]);

View File

@ -360,7 +360,7 @@ const Module_IA = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>*/}

View File

@ -1,6 +1,6 @@
import React, { useRef, useState, useEffect } from "react";
import TextField from '@mui/material/TextField';
import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
@ -8,14 +8,10 @@ import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { Editor } from '@tinymce/tinymce-react';
import parse from 'html-react-parser';
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import add_plus from "../mysy_img/plus.png";
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import fileDownload from 'js-file-download'
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
@ -27,13 +23,8 @@ import { format } from 'date-fns'
import moment from "moment";
import 'moment/locale/fr';
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle, AiOutlineConsoleSql } from "react-icons/ai";
import Box from '@mui/material/Box';
import { Typography, LinearProgress } from '@mui/material';
import styled from 'styled-components';
import { CiTrash } from "react-icons/ci";
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
@ -41,39 +32,17 @@ import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { ResetTvRounded, RestoreFromTrashRounded } from "@mui/icons-material";
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
import { confirmAlert } from 'react-confirm-alert';
import ToggleSwitch from "./ToggleSwitch";
import Module_Historique_Action from "./Module_Historique_Action";
import { HiDocumentCheck } from "react-icons/hi2";
import { BsSend } from "react-icons/bs";
import Autocomplete from '@mui/material/Autocomplete';
import { FcOpenedFolder } from "react-icons/fc";
import { gridClasses } from '@mui/x-data-grid';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import Module_Editique from "./Module_Editique";
import Module_Attestation_Formation from "./Module_Attestation_Formation";
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcPlanner } from "react-icons/fc";
import { CiBoxList } from "react-icons/ci";
import FullCalendar from "@fullcalendar/react";
import daygridPlugin from "@fullcalendar/daygrid";
import interactionPlugin from "@fullcalendar/interaction";
import timeGridPlugin from "@fullcalendar/timegrid";
import resourceTimeGridPlugin from '@fullcalendar/resource-timegrid';
import Radio from '@mui/material/Radio';
import RadioGroup from '@mui/material/RadioGroup';
import FormControlLabel from '@mui/material/FormControlLabel';
import FormControl from '@mui/material/FormControl';
import FormLabel from '@mui/material/FormLabel';
import allLocales from '@fullcalendar/core/locales-all'
import listPlugin from '@fullcalendar/list';
import multiMonthPlugin from '@fullcalendar/multimonth'
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
const Module_Session_Evaluation = (props) => {
@ -332,14 +301,21 @@ const Module_Session_Evaluation = (props) => {
else {
setGetall_Training_Employee_No_Filter_api("false");
setGetall_Training_Employee_No_Filter_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Getall_Training_Employee_No_Filter = ', error);
setGetall_Training_Employee_No_Filter_api("false");
alert(" Impossible de recuperer la liste des employés");
// alert(" Impossible de recuperer la liste des employés");
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer la liste des employés");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -400,7 +376,10 @@ const Module_Session_Evaluation = (props) => {
else {
setGetall_Training_Materiel_No_Filter_api("false");
setGetall_Training_Materiel_No_Filter_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -408,7 +387,10 @@ const Module_Session_Evaluation = (props) => {
setLoading(false);
console.warn('Not good man :( Getall_Training_Materiel_No_Filter = ', error);
setGetall_Training_Materiel_No_Filter_api("false");
alert(" Impossible de recuperer la liste du materiel");
//alert(" Impossible de recuperer la liste du materiel");
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer la liste du materiel");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -559,7 +541,10 @@ const Module_Session_Evaluation = (props) => {
setCreate_List_Survey_hot_eval_For_Session_For_Inscrit_api("true");
setCreate_List_Survey_hot_eval_For_Session_For_Inscrit_result(res.data.message);
Getall_Survey_hot_evaluation_By_Session();
alert(res.data.message);
//alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -568,14 +553,22 @@ const Module_Session_Evaluation = (props) => {
else {
setCreate_List_Survey_hot_eval_For_Session_For_Inscrit_api("false");
setCreate_List_Survey_hot_eval_For_Session_For_Inscrit_message(res.data.message);
alert(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('Create_List_Survey_hot_eval_For_Session_For_Inscrit : Not good man :( mysearchtext = ' + error);
setCreate_List_Survey_hot_eval_For_Session_For_Inscrit_api("false");
alert(" Impossible d'initialiser la liste des enquête de positionnement ");
// alert(" Impossible d'initialiser la liste des enquête de positionnement ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'initialiser la liste des enquête de positionnement ");
setalert_type("error");
})
}
@ -872,7 +865,10 @@ const Module_Session_Evaluation = (props) => {
setCreate_List_Survey_cold_eval_For_Session_For_Inscrit_api("true");
setCreate_List_Survey_cold_eval_For_Session_For_Inscrit_result(res.data.message);
Getall_Survey_cold_evaluation_By_Session();
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -881,14 +877,21 @@ const Module_Session_Evaluation = (props) => {
else {
setCreate_List_Survey_cold_eval_For_Session_For_Inscrit_api("false");
setCreate_List_Survey_cold_eval_For_Session_For_Inscrit_message(res.data.message);
alert(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('Create_List_Survey_cold_eval_For_Session_For_Inscrit : Not good man :( mysearchtext = ' + error);
setCreate_List_Survey_cold_eval_For_Session_For_Inscrit_api("false");
alert(" Impossible d'initialiser la liste des enquête de positionnement ");
// alert(" Impossible d'initialiser la liste des enquête de positionnement ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'initialiser la liste des enquête de positionnement");
setalert_type("error");
})
}
@ -900,7 +903,12 @@ const Module_Session_Evaluation = (props) => {
function Create_List_Survey_eval_formateur_For_Session_For_Inscrit() {
if (String(selected_formateur_id) === "" || String(selected_formateur_id).length < 5) {
alert(" Vous devez choisir un formateur ");
//alert(" Vous devez choisir un formateur ");
setdisplay_alert_mysy("1");
setalert_message(" Vous devez choisir un formateur ");
setalert_type("error");
return;
}
var form = new FormData();
@ -930,7 +938,10 @@ const Module_Session_Evaluation = (props) => {
setCreate_List_Survey_eval_formateur_For_Session_For_Inscrit_result(res.data.message);
Getall_Survey_formateur_evaluation_By_Session();
setselected_formateur_id("");
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -939,14 +950,20 @@ const Module_Session_Evaluation = (props) => {
else {
setCreate_List_Survey_eval_formateur_For_Session_For_Inscrit_api("false");
setCreate_List_Survey_eval_formateur_For_Session_For_Inscrit_message(res.data.message);
alert(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('Create_List_Survey_eval_formateur_For_Session_For_Inscrit : Not good man :( mysearchtext = ' + error);
setCreate_List_Survey_eval_formateur_For_Session_For_Inscrit_api("false");
alert(" Impossible d'initialiser la liste des enquête ");
// alert(" Impossible d'initialiser la liste des enquête ");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'initialiser la liste des enquête ");
setalert_type("error");
})
}
@ -1113,7 +1130,10 @@ const Module_Session_Evaluation = (props) => {
setactionmass_eval_formateur("");
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
} else if (String(res.data.status) === String("Err_Connexion")) {
alert('Erreur: ' + res.data.message);
@ -1122,14 +1142,22 @@ const Module_Session_Evaluation = (props) => {
else {
setSend_Survey_By_Email_For_Ids_api("false");
setSend_Survey_By_Email_For_Ids_message(res.data.message);
alert(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('Send_Survey_By_Email_For_Ids : Not good man :( mysearchtext = ' + error);
setSend_Survey_By_Email_For_Ids_api("false");
alert(" Impossible d'envoyer les demandes");
// alert(" Impossible d'envoyer les demandes");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'envoyer les demandes");
setalert_type("error");
})
}
@ -1213,7 +1241,10 @@ const Module_Session_Evaluation = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les réponses (2) ");
// alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2) ");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd)
@ -1221,7 +1252,10 @@ const Module_Session_Evaluation = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les réponses ")
// alert(" Impossible d'exporter les réponses ")
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'exporter les réponses ");
setalert_type("error");
});
@ -1244,7 +1278,10 @@ const Module_Session_Evaluation = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les réponses (2) ");
// alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2) ");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd)
@ -1252,7 +1289,10 @@ const Module_Session_Evaluation = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les réponses ")
// alert(" Impossible d'exporter les réponses ")
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'exporter les réponses ");
setalert_type("error");
});
@ -1276,7 +1316,10 @@ const Module_Session_Evaluation = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les réponses (2) ");
//alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2) ");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd)
@ -1284,7 +1327,10 @@ const Module_Session_Evaluation = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les réponses ")
// alert(" Impossible d'exporter les réponses ")
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'exporter les réponses ");
setalert_type("error");
});
@ -1299,7 +1345,10 @@ const Module_Session_Evaluation = (props) => {
if (tab_ids_survey.length <= 0) {
alert(" Aucune ligne selectionnée ");
// alert(" Aucune ligne selectionnée ");
setdisplay_alert_mysy("1");
setalert_message(" Aucune ligne selectionnée ");
setalert_type("error");
return;
}
var nom_fichier_cmd = "export_evaluation.zip";
@ -1313,7 +1362,10 @@ const Module_Session_Evaluation = (props) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les réponses (2) ");
// alert("Impossible d'exporter les réponses (2) ");
setdisplay_alert_mysy("1");
setalert_message("Impossible d'exporter les réponses (2) ");
setalert_type("error");
} else {
fileDownload(res.data, nom_fichier_cmd);
@ -1332,7 +1384,10 @@ const Module_Session_Evaluation = (props) => {
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les réponses ")
//alert(" Impossible d'exporter les réponses ");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'exporter les réponses ");
setalert_type("error");
});
@ -1384,6 +1439,20 @@ const Module_Session_Evaluation = (props) => {
setDialog_LIST_EVALUATION_FORMATEUR_open(false);
};
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("");
}
return (
<div className="modulesessionevaluation">
@ -1392,6 +1461,18 @@ const Module_Session_Evaluation = (props) => {
<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*/}
{/* Dialog pour gerer les LIST_HOT_EVALUATION_QUESTION */}
<Dialog
open={Dialog_LIST_HOT_EVALUATION_QUESTION_open}
@ -1634,7 +1715,10 @@ const Module_Session_Evaluation = (props) => {
} else {
alert(" Vous devez choisir un formateur ")
// alert(" Vous devez choisir un formateur ")
setdisplay_alert_mysy("1");
setalert_message(" Vous devez choisir un formateur ");
setalert_type("error");
}
}}
@ -1675,7 +1759,6 @@ const Module_Session_Evaluation = (props) => {
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_LIST_EVALUATION_FORMATEUR_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>

View File

@ -614,7 +614,7 @@ const Module_Session_Planification = (props) => {
const [selected_sequence_endDate, setselected_sequence_endDate] = useState(new Date());
const [display_view, setdisplay_view] = useState("list");
const [display_view, setdisplay_view] = useState("planning");
function func_display_planning_view() {
setdisplay_view("planning");
}
@ -1034,7 +1034,7 @@ const Module_Session_Planification = (props) => {
return;
}
console.log(" form == ", form);
console.log(" form uuu == ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Sequence_Affectation_Ressource_Poste/";
@ -1412,8 +1412,6 @@ const Module_Session_Planification = (props) => {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Sequence_Affectation_Ressource_Poste_Mass/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Add_One_Sequence_Session_Ressource_Mass res.data.status = " + res.data.status);
@ -1490,6 +1488,7 @@ const Module_Session_Planification = (props) => {
//console.log(" ##NB_Sequence = ", res.data.message.length);
setnb_sequence(res.data.message.length);
//props.setnb_sequence(res.data.message.length);
var new_data2 = [];
const new_data = res.data.message.map((x) => {
@ -1593,6 +1592,7 @@ const Module_Session_Planification = (props) => {
//console.log(" ##NB_Sequence = ", res.data.message.length);
setnb_sequence(res.data.message.length);
// props.setnb_sequence(res.data.message.length);
var new_data2 = [];
const new_data = res.data.message.map((x) => {
@ -2569,6 +2569,8 @@ const Module_Session_Planification = (props) => {
setDialog_seq_choix_model_emargement_open(false);
setDialog_seq_planif_periode_type("");
setnb_sequence(res.data.nb_sequence);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
@ -2652,6 +2654,8 @@ const Module_Session_Planification = (props) => {
setDialog_seq_choix_model_emargement_open(false);
setDialog_seq_planif_periode_type("");
setnb_sequence(res.data.nb_sequence);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
@ -3897,13 +3901,11 @@ const Module_Session_Planification = (props) => {
{Dialog_seq_ressource_1_selected_ressource_id && <div className="div_row">
<div className="div_row_gauche">
&nbsp;
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Add_One_Ressource_Fom_Dialog_Sequence} className="bton_enreg_dialog">Ajout Ress. <PlaylistAddOutlinedIcon /> </Button>
</div>
@ -3980,9 +3982,6 @@ const Module_Session_Planification = (props) => {
Aucune ressource.
</div>}
</div>}
@ -6003,7 +6002,6 @@ const Module_Session_Planification = (props) => {
setp_detail_sequence_objectif(newSelectionModel.row.objectif);
setp_detail_sequence_comment(newSelectionModel.row.commentaire);
Getall_List_Sequence_Ressource(newSelectionModel.row._id);
setselected_sequence_id(newSelectionModel.row._id);
@ -6161,10 +6159,10 @@ const Module_Session_Planification = (props) => {
{display_view && String(display_view) === "planning" && Getall_Sequence_Of_Session_result_planning_view &&
<div style={{ "border": "None" }}>
<h3> Affichage planning</h3>
&nbsp;
<div style={{ "width": "98%", "marginLeft": "5px", }} >
<div style={{ "width": "98%", "marginLeft": "5px", padding:'10px'}} >
<FullCalendar
height={550}
@ -6195,15 +6193,8 @@ const Module_Session_Planification = (props) => {
/>
</div>
</div>}
</div>
{new_planification_lines && new_planification_lines.length > 0 && <div className='div_row' style={{ backgroundColor: '#FBF2EF' }}>
@ -6271,31 +6262,7 @@ const Module_Session_Planification = (props) => {
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
/*
setsequence_gridline_id(newSelectionModel.row.id);
setselected_detail_sequence_title(newSelectionModel.row.sequence_title);
setselected_sequence_startDate(newSelectionModel.row.sequence_start);
setselected_sequence_endDate(newSelectionModel.row.sequence_end);
setp_detail_sequence_agenda(newSelectionModel.row.agenda);
setp_detail_sequence_objectif(newSelectionModel.row.objectif);
setp_detail_sequence_comment(newSelectionModel.row.commentaire);
Getall_List_Sequence_Ressource(newSelectionModel.row._id);
setselected_sequence_id(newSelectionModel.row._id);
setdisplay_detail_sequence("1");
if (document.getElementById('myRef_seq_ressource')) {
var divh = document.getElementById('myRef_seq_ressource').offsetTop;
window.scrollTo({
top: divh,
behavior: "smooth",
});
}
*/ }}
}}
@ -6366,7 +6333,7 @@ const Module_Session_Planification = (props) => {
{display_view && String(display_view) === "planning" &&
<div style={{ "border": "None" }}>
<h3> Affichage planning</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Affichage planning</h3>
&nbsp;
<div style={{ "width": "98%", "marginLeft": "5px", }} >

View File

@ -884,8 +884,8 @@ const Modules_Mes_Documents = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{props.my_title && <h3> {props.my_title} </h3>}
{!props.my_title && <h3> 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" }}>

View File

@ -32,25 +32,6 @@ import tick_ko from "../mysy_img/tick_KO.png";
import img_header from "../mysy_img2/img_header.png"
import { SelectChangeEvent } from '@mui/material/Select';
import Chip from '@mui/material/Chip';
import Select, { StylesConfig } from 'react-select';
import mysy_logo2 from "../mysy_img2/Logo_MySy.png"
import { AiTwotoneFolder } from "react-icons/ai";
import serv_img_market_digi from "../mysy_img/market_digi.jpg";
import serv_img_gestion_admin from "../mysy_img/gestion_admin_2.jpg";
import serv_img_publication from "../mysy_img/publication.jpg";
import mysy_search from "../mysy_img2/mysy_search.jpg";
import mysy_lms from "../mysy_img2/mysy_e_learning.jpg";
import mysy_consulting from "../mysy_img2/mysy_consulting.jpg";
import mysy_datacenter from "../mysy_img2/mysy_datacenter.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';
@ -2603,11 +2584,11 @@ const Mon_Catalogue_Public = (props) => {
domain = url.split('://')[1];
}
// console.log(" ### local_url_subdomain = ", local_url_subdomain);
console.log(" ### local_url_subdomain = ", local_url_subdomain);
const subdomain = domain.split('.')[0];
// console.log(" ### subdomain = ", subdomain);
console.log(" ### subdomain = ", subdomain);
var form = new FormData();
@ -3023,95 +3004,7 @@ const Mon_Catalogue_Public = (props) => {
<div className="Header_Content">
<div className="content_search_bar">
<div className="search_bar_h">
<div className="search_bar">
<div className="input_search_bar">
<div className="search_dropdown">
<nav className="domaine_icone"> <AiTwotoneFolder /> </nav>
<select className="form-select form-select-sm fron_search" onChange={"ChangeDevise"} aria-label=".form-select-sm example"
id={"searchdomain"} name={"searchdomain"} >
<option selected value="n/a">Tous les domaines </option>
{domaine_metier && domaine_metier.map((domaine) => (
<option value={domaine}>{domaine}
</option>
))}
</select>
</div>
<div className="search_bar_rectangle">
</div>
<div className="search_text">
<form onSubmit={handleSubmit(onSubmit)} className="div_005">
<div class="form" style={{ "textAlign": "left" }}>
<i class="fa fa-search"></i>
<nav className="domaine_icone_fa" onClick={searchFunction}> <FaSearch /> </nav>
<input
type="text"
class="form-control form-input"
placeholder={textplaceholder}
onChange={SearchTextHandle}
id={"SearchText"}
name={"SearchText"}
value={texte}
onBlur={OnblurHandle}
style={{ "color": "black" }}
/>
{/*SearchText.length > 2 && <span_clear> <BsFillXCircleFill onClick={clearsearchtext} /> </span_clear>*/}
{SearchText.length > 2 && <span class="left-pan" > &nbsp;<BsFillXCircleFill onClick={clearsearchtext} /></span>}
</div>
</form>
<div className="cta_recherche" onClick={searchFunction}>
<nav className="cta_recherche_txt"> Rechercher </nav>
</div>
</div>
</div>
</div>
<div className="search_bar_2">
<div className="search_dropdown"> &nbsp;</div>
<div className="block_suggestion">
{suggestion2 && suggestion2.slice(0, 2).map((suggestion, id) =>
<div key={id} style={{
"cursor": "pointer", "color": "black",
"fontSize": "small", "paddingLeft": "1rem", "fontStyle": "italic", "letterSpacing": "2px"
}}
onClick={() => OnSuggestionHandler(JSON.parse(suggestion).name)}> {JSON.parse(suggestion).name} </div>
)}
</div>
</div>
</div>
</div>
</div>
<div className="block_nos_formation">
@ -3822,106 +3715,6 @@ const Mon_Catalogue_Public = (props) => {
<div className="Header_Content">
<div className="rectangle_8"> </div>
<div className="content_search_bar">
<div className="search_bar_h">
<div className="search_bar">
<div className="input_search_bar">
<div className="search_dropdown">
<nav className="domaine_icone"> <AiTwotoneFolder /> </nav>
<select className="form-select form-select-sm fron_search" onChange={"ChangeDevise"} aria-label=".form-select-sm example"
id={"searchdomain"} name={"searchdomain"} >
<option selected value="n/a">Tous les domaines </option>
{domaine_metier && domaine_metier.map((domaine) => (
<option value={domaine}>{domaine}
</option>
))}
</select>
</div>
<div className="search_bar_rectangle">
</div>
<div className="search_text">
<form onSubmit={handleSubmit(onSubmit)} className="div_005">
<div class="form" style={{ "textAlign": "left" }}>
<i class="fa fa-search"></i>
<nav className="domaine_icone_fa" onClick={searchFunction}> <FaSearch /> </nav>
<input
type="text"
class="form-control form-input"
placeholder={textplaceholder}
onChange={SearchTextHandle}
id={"SearchText"}
name={"SearchText"}
value={texte}
onBlur={OnblurHandle}
style={{ "color": "black" }}
/>
{/*SearchText.length > 2 && <span_clear> <BsFillXCircleFill onClick={clearsearchtext} /> </span_clear>*/}
{SearchText.length > 2 && <span class="left-pan" > &nbsp;<BsFillXCircleFill onClick={clearsearchtext} /></span>}
</div>
</form>
<div className="cta_recherche" onClick={searchFunction}>
<nav className="cta_recherche_txt"> Rechercher </nav>
</div>
</div>
</div>
</div>
<div className="search_bar_2">
<div className="search_dropdown"> &nbsp;</div>
<div className="block_suggestion">
{suggestion2 && suggestion2.slice(0, 2).map((suggestion, id) =>
<div key={id} style={{
"cursor": "pointer", "color": "black",
"fontSize": "small", "paddingLeft": "1rem", "fontStyle": "italic", "letterSpacing": "2px"
}}
onClick={() => OnSuggestionHandler(JSON.parse(suggestion).name)}> {JSON.parse(suggestion).name} </div>
)}
</div>
</div>
{/*<div className="frame_153">
<nav className="frame_153_txt">
Recherches populaires : Informatique, Graphisme, Management, Dev. Personnel ...
</nav>
</div> */}
</div>
</div>
</div>
@ -4759,6 +4552,7 @@ const Mon_Catalogue_Public = (props) => {
<Fotter_Catalog_Pub partner_data={New_Get_Subdomain_Partner_Data_result[0]} />
</div>
</div>}
{/******* FIN Gestion du THEME PAR DEFAULT " */}

View File

@ -1307,7 +1307,7 @@ const Mon_Tableau_De_Bord = (props) => {
<hr className="hr_break" />
{String(submenu) === String("rapport_financier") && <div style={{ "border": "None" }}>
<h3> Rapports Financiers </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Rapports Financiers </h3>
<Box >
<div className="session_data" >
@ -1497,7 +1497,7 @@ const Mon_Tableau_De_Bord = (props) => {
{String(submenu) === String("rapport_rh") && <div style={{ "border": "None" }}>
<h3> Rapports Ressources Humaines </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Rapports Ressources Humaines </h3>
<Box >
<div className="session_data" >
<div style={{ "border": "None" }}>
@ -1842,7 +1842,7 @@ const Mon_Tableau_De_Bord = (props) => {
</div>}
{String(submenu) === String("rapport_activite") && <div style={{ "border": "None" }}>
<h3> Rapport d'activité </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Rapport d'activité </h3>
<Box >
<div className="session_data" >
@ -2017,7 +2017,7 @@ const Mon_Tableau_De_Bord = (props) => {
</div>}
{String(submenu) === String("bpf") && <div style={{ "border": "None" }}>
<h3> Bilan Pédagogique et Financier (BPF) </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Bilan Pédagogique et Financier (BPF) </h3>
<div className="titre1"> C. Bilan financier hors taxes : Origine des produits de l'organisme </div>
<div className="div_row">
@ -2469,7 +2469,7 @@ const Mon_Tableau_De_Bord = (props) => {
{String(submenu) === String("montbd") && <div style={{ "border": "None" }}>
<h3> Mon tableau de bord </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mon tableau de bord </h3>
<div className="div_row"> &nbsp;</div>
<div className="div_row" style={{ "textAlign": "right", "paddingRight": "20px" }}> Affichage &nbsp;

View File

@ -943,7 +943,7 @@ const New_Article_2025 = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -270,7 +270,7 @@ const New_C_Formation_2025 = (props) => {
flexDirection: 'column',
},
image: {
width: '100%',
maxWidth: '100%',
height: '200px',
overflow: 'hidden',
marginTop: '-2rem'

View File

@ -1,7 +1,7 @@
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_2025 from "./New_Sidebar_2025";
import { useCookies } from "react-cookie";

View File

@ -24,7 +24,7 @@ const New_SideBar_2025 = () => {
const stored_user = cookie.tokenmysych;
const environnment = process.env.REACT_APP_ENV
function logout_confirmation() {
@ -108,23 +108,23 @@ const New_SideBar_2025 = () => {
var local_part_connect = 0;
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
setuserconnected("0");
local_user_connect = 0;
setuserconnected("0");
local_user_connect = 0;
} else {
setuserconnected("1");
setsomeoneconnected("1");
local_user_connect = 1;
//alert(" user connected OK");
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;
setpartnerconnected("0");
local_part_connect = 0;
} else {
setpartnerconnected("1");
setsomeoneconnected("1");
local_part_connect = 1;
//alert(" partner connected OK");
setpartnerconnected("1");
setsomeoneconnected("1");
local_part_connect = 1;
//alert(" partner connected OK");
}
}, []);
@ -134,12 +134,39 @@ const New_SideBar_2025 = () => {
{String(environnment) === "PROD" &&
<Menu className="ch_burger_menu">
{String(someoneconnected) !== String("1") && <NavLink exact to={"/Connexion"} activeClassName={"nav-active"}>
Connexion Utilisateur
<NavLink exact to={"/"} activeClassName={"nav-active"}>
A propos
</NavLink>
<NavLink exact to={"/fonctionnalites"} activeClassName={"nav-active"}>
Fonctionnalites
</NavLink>
<NavLink exact to={"/tarif"} activeClassName={"nav-active"}>
Tarifs
</NavLink>
<NavLink exact to={"/contact"} activeClassName={"nav-active"}>
Contact
</NavLink>
<NavLink exact to={"/Recherche-Article-formation"} activeClassName={"nav-active"}>
Blog
</NavLink>
<NavLink exact to={"/recherche-formation"} activeClassName={"nav-active"}>
Marketplace
</NavLink>
{String(someoneconnected) !== String("1") && <NavLink exact to={"/signin"} activeClassName={"nav-active"}>
Connexion
</NavLink>}
{String(someoneconnected) !== String("1") && <NavLink exact to={"/create_account"} activeClassName={"nav-active"}>
Créer compte
{String(someoneconnected) !== String("1") && <NavLink exact to={"/signup"} activeClassName={"nav-active"}>
Inscription
</NavLink>}
@ -147,35 +174,6 @@ const New_SideBar_2025 = () => {
Mon compte
</NavLink>}
<NavLink exact to={"/recherche-formation"} activeClassName={"nav-active"}>
Recherche formation
</NavLink>
<NavLink exact to={"/qui-sommes-nous"} activeClassName={"nav-active"}>
A propos
</NavLink>
<NavLink exact to={"/fonctionnalites"} activeClassName={"nav-active"}>
Solution
</NavLink>
<NavLink exact to={"/Produits-Services"} activeClassName={"nav-active"}>
Tarifs
</NavLink>
<NavLink exact to={"/Partner"} activeClassName={"nav-active"}>
Partenaires
</NavLink>
<NavLink exact to={"/PartnerLogin"} activeClassName={"nav-active"}>
Partenaire Login
</NavLink>
<NavLink exact to={"/Recherche-Article-formation"} activeClassName={"nav-active"}>
Liste Articles
</NavLink>
@ -201,50 +199,50 @@ const New_SideBar_2025 = () => {
{(String(environnment) === "REC" || String(environnment) === "DEM") &&
<Menu className="ch_burger_menu">
{String(someoneconnected) !== String("1") && <NavLink exact to={"/Connexion"} activeClassName={"nav-active"}>
Connexion Utilisateur
<NavLink exact to={"/"} activeClassName={"nav-active"}>
A propos
</NavLink>
<NavLink exact to={"/fonctionnalites"} activeClassName={"nav-active"}>
Fonctionnalites
</NavLink>
<NavLink exact to={"/tarif"} activeClassName={"nav-active"}>
Tarifs
</NavLink>
<NavLink exact to={"/contact"} activeClassName={"nav-active"}>
Contact
</NavLink>
<NavLink exact to={"/Recherche-Article-formation"} activeClassName={"nav-active"}>
Blog
</NavLink>
<NavLink exact to={"/recherche-formation"} activeClassName={"nav-active"}>
Marketplace
</NavLink>
{String(someoneconnected) !== String("1") && <NavLink exact to={"/signin"} activeClassName={"nav-active"}>
Connexion
</NavLink>}
{String(someoneconnected) !== String("1") && <NavLink exact to={"/create_account"} activeClassName={"nav-active"}>
Créer compte
{String(someoneconnected) !== String("1") && <NavLink exact to={"/signup"} activeClassName={"nav-active"}>
Inscription
</NavLink>}
{String(someoneconnected) === String("1") && <NavLink exact to={"/mysy-user-account"} activeClassName={"nav-active"}>
Mon compte
</NavLink>}
<NavLink exact to={"/recherche-formation"} activeClassName={"nav-active"}>
Recherche formation
</NavLink>
<NavLink exact to={"/qui-sommes-nous"} activeClassName={"nav-active"}>
A propos
</NavLink>
<NavLink exact to={"/fonctionnalites"} activeClassName={"nav-active"}>
Solution
</NavLink>
<NavLink exact to={"/Produits-Services"} activeClassName={"nav-active"}>
Tarifs
</NavLink>
<NavLink exact to={"/Partner"} activeClassName={"nav-active"}>
Partenaires
</NavLink>
<NavLink exact to={"/PartnerLogin"} activeClassName={"nav-active"}>
Partenaire Login
</NavLink>
<NavLink exact to={"/Recherche-Article-formation"} activeClassName={"nav-active"}>
Liste Articles
</NavLink>
{typeof (stored_partner) != "undefined" &&
{typeof (stored_partner) !== "undefined" &&
/* Connexion partner active */
<Button className='bton_annule' onClick={logout} style={{
color: "red", opacity: '100%', borderRadius: '5rem', fontSize: "12px", width: "100%", background: "black",
@ -268,84 +266,53 @@ const New_SideBar_2025 = () => {
{String(environnment) === "DEV" &&
<Menu className="ch_burger_menu">
<NavLink exact to={"/mysy-training-login/0/0"} activeClassName={"nav-active"}>
DEV : someoneconnected = {String(someoneconnected)}
</NavLink>
{String(someoneconnected) !== String("1") && <NavLink exact to={"/mysy-training-login/0/0"} activeClassName={"nav-active"}>
Connexion Utilisateur
</NavLink>}
{String(someoneconnected) !== String("1") && <NavLink exact to={"/create_account"} activeClassName={"nav-active"}>
Créer compte
</NavLink>}
{String(someoneconnected) === String("1") && <NavLink exact to={"/Partner"} activeClassName={"nav-active"}>
Mon compte
</NavLink>}
<NavLink exact to={"/recherche-formation/"} activeClassName={"nav-active"}>
Recherche formation
</NavLink>
<NavLink exact to={"/qui-sommes-nous"} activeClassName={"nav-active"}>
<NavLink exact to={"/"} activeClassName={"nav-active"}>
A propos
</NavLink>
<NavLink exact to={"/fonctionnalites"} activeClassName={"nav-active"}>
Solution
Fonctionnalites
</NavLink>
<NavLink exact to={"/Produits-Services"} activeClassName={"nav-active"}>
Tarifs
<NavLink exact to={"/tarif"} activeClassName={"nav-active"}>
Tarifs
</NavLink>
<NavLink exact to={"/Display-Detail-formation/:classId"} activeClassName={"nav-active"}>
Detail Formation
<NavLink exact to={"/contact"} activeClassName={"nav-active"}>
Contact
</NavLink>
<NavLink exact to={"/testurl/:course/:tab"} activeClassName={"nav-active"}>
Test url
</NavLink>
<NavLink exact to={"/PartnerLogin"} activeClassName={"nav-active"}>
Partenaire Login
</NavLink>
<NavLink exact to={"/Display-Detail-Article/:articleId"} activeClassName={"nav-active"}>
Detail Articles
</NavLink>
<NavLink exact to={"/Recherche-Article-formation"} activeClassName={"nav-active"}>
Liste Articles
Blog
</NavLink>
<NavLink exact to={"/ResetUserPwd/:token"} activeClassName={"nav-active"}>
Reset User Pwd
</NavLink>
<NavLink exact to={"/DeleteUserAccount/:token"} activeClassName={"nav-active"}>
Delete User Accound
</NavLink>
<NavLink exact to={"/mysy-account-activated/"} activeClassName={"nav-active"}>
User Account Activated
<NavLink exact to={"/recherche-formation"} activeClassName={"nav-active"}>
Marketplace
</NavLink>
{typeof (stored_partner) != "undefined" &&
{String(someoneconnected) !== String("1") && <NavLink exact to={"/signin"} activeClassName={"nav-active"}>
Connexion
</NavLink>}
{String(someoneconnected) !== String("1") && <NavLink exact to={"/signup"} activeClassName={"nav-active"}>
Inscription
</NavLink>}
{String(someoneconnected) === String("1") && <NavLink exact to={"/mysy-user-account"} activeClassName={"nav-active"}>
Mon compte
</NavLink>}
{typeof (stored_partner) !== "undefined" &&
/* Connexion partner active */
<Button className='bton_annule' onClick={logout} style={{
color: "red", opacity: '100%', borderRadius: '5rem', fontSize: "12px", width: "100%", background: "black",
padding: "5px", letterSpacing: "2px"
padding: "5px"
}}>
<i> Deconnexion </i>
</Button>

View File

@ -3561,7 +3561,7 @@ const Notes_Evaluation = (props) => {
</Dialog>
{/*** Fin ajout ressource */}
<h3> Les Evaluations </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les Evaluations </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -5534,7 +5534,7 @@ const Notes_Evaluation = (props) => {
{String(submenu) === "ressources" && <div>
<h3> Ressources Humaines & Materielles</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Ressources Humaines & Materielles</h3>
<div className="session_data">
<div style={{ "border": "None" }}>

View File

@ -9,6 +9,8 @@ import { useHistory } from "react-router-dom";
import Facture from "./Facture";
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("");
@ -22,7 +24,7 @@ function OrderConfirmation_3DS(props) {
window.scrollTo({
top: 0,
behavior: "smooth",
});
});
}, []);
function GoToInvoice() {
@ -74,7 +76,7 @@ function OrderConfirmation_3DS(props) {
function parent_retur_main_page() {
if (window.parent) {
window.parent.location.reload();
window.parent.location.reload();
}
}
@ -116,39 +118,39 @@ function OrderConfirmation_3DS(props) {
}
// Mise à jour du compte LMs Mysy
const [MySy_LMS_Account_Management_api, setMySy_LMS_Account_Management_api] = useState("");
const [MySy_LMS_Account_Management_message, setMySy_LMS_Account_Management_message] = useState("");
function MySy_LMS_Account_Management() {
var formData_tpm = new FormData();
formData_tpm.append('token', stored_part);
//formData_tpm.append('stripe_payment_id', stripe_pi);
//formData_tpm.append('packs', packs);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Check_MySy_LMS_Account/";
axios.post(myurl, formData_tpm).then(res => {
// Mise à jour du compte LMs Mysy
const [MySy_LMS_Account_Management_api, setMySy_LMS_Account_Management_api] = useState("");
const [MySy_LMS_Account_Management_message, setMySy_LMS_Account_Management_message] = useState("");
function MySy_LMS_Account_Management() {
var formData_tpm = new FormData();
formData_tpm.append('token', stored_part);
//formData_tpm.append('stripe_payment_id', stripe_pi);
//formData_tpm.append('packs', packs);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Check_MySy_LMS_Account/";
axios.post(myurl, formData_tpm).then(res => {
console.log('In MySy_LMS_Account_Management status = ', res.data.status, " -- message = ", res.data.message);
if (String(res.data.status) === String("true")) {
setMySy_LMS_Account_Management_api("true");
}
else {
setMySy_LMS_Account_Management_api("false")
setMySy_LMS_Account_Management_message(String(res.data.message))
}
}).catch((error) => {
console.log('In MySy_LMS_Account_Management ', error);
setMySy_LMS_Account_Management_api("false")
})
}
if (String(res.data.status) === String("true")) {
setMySy_LMS_Account_Management_api("true");
}
else {
setMySy_LMS_Account_Management_api("false")
setMySy_LMS_Account_Management_message(String(res.data.message))
}
}).catch((error) => {
console.log('In MySy_LMS_Account_Management ', error);
setMySy_LMS_Account_Management_api("false")
})
}
return (
<div className="orderconfirmation">
@ -207,8 +209,38 @@ function OrderConfirmation_3DS(props) {
<div className="div_row_central">
<Button variant="contained" color="success" className="div_row22 btn_enreg_cmd"
onClick={parent_retur_main_page}> IMPORTANT : Je finalise mon abonnement </Button>
<Popup
trigger={
<Button variant="contained" color="success" className="div_row22 btn_enreg_cmd"> IMPORTANT : Je finalise mon abonnement </Button>}
modal
nested
position="center center"
>
{close => (
<div>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
Votre paiement a été validé. Vous allez être redirigé vers l'interface de création des formations<br />
</div>
<div className="gest_actions">
<div>
<button className="gest_bton_popup" onClick={(event) => {
parent_retur_main_page();
close();
}}> Ok </button>
</div>
</div>
</div>
)}
</Popup>
</div>
</div>}

View File

@ -39,6 +39,8 @@ import {
FcEngineering
} from "react-icons/fc";
import { SlClose } from "react-icons/sl";
import CircleNotificationsIcon from '@mui/icons-material/CircleNotifications';
import { FcInspection } from "react-icons/fc";
@ -551,7 +553,7 @@ const Partner = (props) => {
history.push("/Partner/creation");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des formations");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des formations");
}
}
@ -600,7 +602,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_configuration");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des documents");
}
}
@ -623,7 +625,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("config_formation_initiale");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des documents");
}
}
@ -638,7 +640,7 @@ const Partner = (props) => {
history.push("/Partner/config_champ_specific");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des documents");
}
}
@ -653,7 +655,7 @@ const Partner = (props) => {
inactive_active_menu_header("my_planning");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des documents");
}
}
@ -691,7 +693,7 @@ const Partner = (props) => {
history.push("/Partner/config_technique");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des documents");
}
}
@ -704,7 +706,7 @@ const Partner = (props) => {
history.push("/Partner/config_session_steps");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des documents");
}
}
@ -718,7 +720,7 @@ const Partner = (props) => {
history.push("/Partner/config_jours_heures");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des documents");
}
}
@ -732,7 +734,7 @@ const Partner = (props) => {
history.push("/Partner/config_formulaires");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des documents");
}
}
@ -747,7 +749,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_invoices");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des documents");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des documents");
}
}
@ -761,7 +763,7 @@ const Partner = (props) => {
history.push("/Partner/statistique");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des formations");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des formations");
}
}
@ -775,7 +777,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_e_learning");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du E-Learning");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du E-Learning");
}
}
@ -792,7 +794,7 @@ const Partner = (props) => {
inactive_active_menu_header("facture");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des commandes");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des commandes");
}
}
@ -814,7 +816,7 @@ const Partner = (props) => {
inactive_active_menu_header("abonnement");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des abonnements");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des abonnements");
}
}
@ -829,7 +831,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_partners");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des prix");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des prix");
}
}
@ -845,7 +847,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_partners");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des clients");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des clients");
}
}
@ -858,7 +860,7 @@ const Partner = (props) => {
history.push("/Partner/mes_devis");
document.body.style.backgroundColor = "#ffffff";
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des commandes");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des commandes");
}
}
@ -873,7 +875,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_invoices");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des commandes");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des commandes");
}
}
@ -890,7 +892,7 @@ const Partner = (props) => {
inactive_active_menu_header("my_ue");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
}
}
@ -907,7 +909,7 @@ const Partner = (props) => {
inactive_active_menu_header("domaine_categorie_metier");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
}
}
@ -924,7 +926,7 @@ const Partner = (props) => {
inactive_active_menu_header("part_produit_service");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
}
}
@ -942,7 +944,7 @@ const Partner = (props) => {
inactive_active_menu_header("my_session");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
}
}
@ -958,7 +960,7 @@ const Partner = (props) => {
inactive_active_menu_header("note_evaluation");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des sessions");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des sessions");
}
}
@ -972,7 +974,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_apprenant");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des stagiaires");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des stagiaires");
}
}
@ -986,7 +988,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_apprenant");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des stagiaires");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des stagiaires");
}
}
@ -1000,7 +1002,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("groupe_apprenant");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des stagiaires");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des stagiaires");
}
}
@ -1014,7 +1016,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_ressource");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion des employés");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion des employés");
}
}
@ -1029,7 +1031,7 @@ const Partner = (props) => {
inactive_active_menu_header("my_ressource");
history.push("/Partner/mon_materiel");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du matériel pédagogique");
}
}
@ -1044,7 +1046,7 @@ const Partner = (props) => {
inactive_active_menu_header("my_ressource");
history.push("/Partner/mes_salles");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du matériel pédagogique");
}
}
@ -1060,7 +1062,7 @@ const Partner = (props) => {
history.push("/Partner/mes_opportunites");
inactive_active_menu_header("my_partners");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du matériel pédagogique");
}
}
@ -1075,7 +1077,7 @@ const Partner = (props) => {
document.body.style.backgroundColor = "#ffffff";
inactive_active_menu_header("my_tbd");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du matériel pédagogique");
}
}
@ -1090,7 +1092,7 @@ const Partner = (props) => {
history.push("/Partner/dashbord_session");
inactive_active_menu_header("my_tbd");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du matériel pédagogique");
}
}
@ -1106,7 +1108,7 @@ const Partner = (props) => {
history.push("/Partner/dashbord_ressources_humaines");
inactive_active_menu_header("my_tbd");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du matériel pédagogique");
}
}
@ -1123,7 +1125,7 @@ const Partner = (props) => {
history.push("/Partner/dashbord_inscriptions");
inactive_active_menu_header("my_tbd");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du matériel pédagogique");
}
}
@ -1138,7 +1140,7 @@ const Partner = (props) => {
history.push("/Partner/dashbord_factures");
inactive_active_menu_header("my_tbd");
} else {
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour acceder à la gestion du matériel pédagogique");
Dialog_1_handle_acces_insuffisant("Vos droits ne sont pas suffisants pour accéder à la gestion du matériel pédagogique");
}
}
@ -1694,7 +1696,7 @@ const Partner = (props) => {
<meta name="description" content="backoffice partenaire editeurs formation" />
<meta name="robots" content="index,follow" />
</Helmet>
<div className="div_mobile" id="div_mobile">
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
@ -1800,7 +1802,7 @@ const Partner = (props) => {
{String(part_is_partner_admin_account) === "1" && <div className="nom_prenom">
{parntername && <nav>
<b> {parntername}&nbsp;-&nbsp;{String(partnerPackService).toUpperCase()} ({parnternbformation})</b> &nbsp; &nbsp;
<b> {parntername}&nbsp;-&nbsp;{String(partnerPackService).toUpperCase()} </b><br />
<Tooltip className="tooltip_css" id="badge_tool_01" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="badge_tool_01" data-tooltip-html="Activité(s) en retard">
@ -1834,7 +1836,7 @@ const Partner = (props) => {
{String(part_is_partner_admin_account) !== "1" && <div className="nom_prenom">
{parnter_user_employee}
{!parntername && <b> Utilisateur </b>} &nbsp; &nbsp;
{!parntername && <b> Utilisateur </b>} <br />
{GetPartnerNameFromToken_api_result && conntected_employee_activite_retard && parseFloat(conntected_employee_activite_retard) > 0 &&
<StyledBadge_mysy_red badgeContent={conntected_employee_activite_retard} style={{ "cursor": "pointer" }}
onClick={(event) => {
@ -2182,10 +2184,10 @@ const Partner = (props) => {
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) === "1" &&
<div className="div_droite firstConnexion">
<div className="firstConnexion_text">
<b>Cher partenaire, c'est votre première connexion, </b> <br /> &nbsp;<br />
Nous sommes ravis de vous accueillir dans notre aventure MySy.
Pour commencer à publier vos formations, veuillez choisir une formule d'abonnement en cliquant <Button onClick={ValideFirstConnexion} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; &nbsp; ici</Button><br />
&nbsp; <br /> Merci.
<b>Bienvenue chez MySy, cher partenaire ! </b> <br /> &nbsp;<br />
C'est votre première connexion, et toute l'équipe est ravie de vous accueillir dans l'aventure.<br />
Pour commencer à publier vos formations et profiter pleinement de notre plateforme, il vous suffit de choisir une formule d'abonnement en cliquant <Button onClick={ValideFirstConnexion} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; &nbsp; ici</Button><br />
&nbsp; <br /> Et merci de faire partie du voyage !
</div>
</div>}
@ -2193,8 +2195,9 @@ const Partner = (props) => {
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) !== "1" &&
<div className="div_droite firstConnexion">
<div className="firstConnexion_text">
<b>Cher Utilisateur, c'est votre première connexion, </b> <br /> &nbsp;<br />
Nous sommes ravis de vous accueillir dans notre aventure MySy. Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFORMATIONS"</i> ==&gt; Bouton <i>"SECURITE"</i> <br /><br />
<b>Bienvenue chez MySy, cher Utilisateur </b> <br /> &nbsp;<br />
C'est votre première connexion, et toute l'équipe est ravie de vous accueillir dans l'aventure.<br />
Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFORMATIONS"</i> ==&gt; Bouton <i>"SECURITE"</i> <br /><br />
<Button onClick={(e) => setfirstConnexion()} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; Fermer</Button><br />
&nbsp; <br /> Merci.
</div>
@ -2443,7 +2446,8 @@ const Partner = (props) => {
conntected_employee_id={conntected_employee_id}
object_key={orderid}
class_internal_url={packs}
read_access={check_user_acces_right("session", "read")} write_access={check_user_acces_right("session", "write")}
read_access={check_user_acces_right("session", "read")}
write_access={check_user_acces_right("session", "write")}
check_user_acces_right={check_user_acces_right} reduce={"0"} />
</div>
}
@ -2472,16 +2476,20 @@ const Partner = (props) => {
{String(menu) === "mon_materiel" &&
<div className="div_droite">
<Materiels conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right} />
<Materiels conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}
{String(menu) === "mes_salles" &&
<div className="div_droite">
<Materiel_Salle conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("materiel", "read")} write_access={check_user_acces_right("materiel", "write")} />
<Materiel_Salle conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
}
@ -2937,10 +2945,10 @@ const Partner = (props) => {
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) === "1" &&
<div className="div_droite firstConnexion">
<div className="firstConnexion_text">
<b>Cher partenaire, c'est votre première connexion, </b> <br /> &nbsp;<br />
Nous sommes ravis de vous accueillir dans notre aventure MySy.
Pour commencer à publier vos formations, veuillez choisir une formule d'abonnement en cliquant <Button onClick={ValideFirstConnexion} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; &nbsp; ici</Button><br />
&nbsp; <br /> Merci.
<b>Bienvenue chez MySy, cher partenaire ! </b> <br /> &nbsp;<br />
C'est votre première connexion, et toute l'équipe est ravie de vous accueillir dans l'aventure.<br />
Pour commencer à publier vos formations et profiter pleinement de notre plateforme, il vous suffit de choisir une formule d'abonnement en cliquant <Button onClick={ValideFirstConnexion} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; &nbsp; ici</Button><br />
&nbsp; <br /> Et merci de faire partie du voyage !
</div>
</div>}
@ -2948,8 +2956,9 @@ const Partner = (props) => {
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) !== "1" &&
<div className="div_droite firstConnexion">
<div className="firstConnexion_text">
<b>Cher Utilisateur, c'est votre première connexion, </b> <br /> &nbsp;<br />
Nous sommes ravis de vous accueillir dans notre aventure MySy. Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFORMATIONS"</i> ==&gt; Bouton <i>"SECURITE"</i> <br /><br />
<b>Bienvenue chez MySy, cher Utilisateur </b> <br /> &nbsp;<br />
C'est votre première connexion, et toute l'équipe est ravie de vous accueillir dans l'aventure.<br />
Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFORMATIONS"</i> ==&gt; Bouton <i>"SECURITE"</i> <br /><br />
<Button onClick={(e) => setfirstConnexion()} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; Fermer</Button><br />
&nbsp; <br /> Merci.
</div>
@ -3207,7 +3216,8 @@ const Partner = (props) => {
{String(menu) === "mon_materiel" &&
<div className="div_droite div_droite_ralonge">
<Materiels conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("materiel", "read")}
<Materiels conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right} />
</div>
@ -3216,7 +3226,8 @@ const Partner = (props) => {
{String(menu) === "mes_salles" &&
<div className="div_droite div_droite_ralonge">
<Materiel_Salle conntected_employee_id={conntected_employee_id} read_access={check_user_acces_right("materiel", "read")}
<Materiel_Salle conntected_employee_id={conntected_employee_id}
read_access={check_user_acces_right("materiel", "read")}
write_access={check_user_acces_right("materiel", "write")}
check_user_acces_right={check_user_acces_right} />
</div>

View File

@ -1518,7 +1518,7 @@ const PartnerClientActivite = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} 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" style={{ "minHeight": "30rem" }}>
<DialogContentText>

View File

@ -156,20 +156,20 @@ function PartnerSignIn() {
}
const onError = () => {
//console.log("error");
};
useEffect(() => {
const listener = event => {
/* const listener = event => {
if (event.code === "Enter" || event.code === "NumpadEnter") {
event.preventDefault();
onSubmit();
}
};
document.addEventListener("keydown", listener);
document.addEventListener("keydown", listener);*/
}, []);
const [PartnerMenu, setPartnerMenu] = React.useState(null);

View File

@ -768,7 +768,7 @@ const Partner_Client = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">client</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">client</DialogTitle>
<DialogContent className="DialogContent_width">
<div className="div_row_dialog">
@ -907,7 +907,7 @@ const Partner_Client = (props) => {
<div className="div_row">
<h3> Vos clients & Organismes Financeurs</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes clients & Organismes Financeurs</h3>
<div className="titre1"> Utilisez les filtres !</div>
<div>

View File

@ -6502,7 +6502,7 @@ const Partner_Commande = (props) => {
<h3> Vos Commandes et Devis </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes Commandes et Devis </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

View File

@ -6,30 +6,23 @@ import Button from '@mui/material/Button';
import axios from "axios";
import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import CheckOut from "./CheckOut";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { Editor } from '@tinymce/tinymce-react';
import parse from 'html-react-parser';
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import add_plus from "../mysy_img/plus.png";
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import fileDownload from 'js-file-download'
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint } from "react-icons/fc";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns'
import moment from "moment";
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle } from "react-icons/ai";
import Box from '@mui/material/Box';
import { Typography, LinearProgress, sliderClasses } from '@mui/material';
import styled from 'styled-components';
import { CiTrash } from "react-icons/ci";
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
import Dialog from '@mui/material/Dialog';
@ -48,8 +41,50 @@ import { LiaSave } from "react-icons/lia";
import Checkbox from '@mui/material/Checkbox';
import { IoMdAddCircleOutline, IoMdRemoveCircleOutline } from "react-icons/io";
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
import Draggable from 'react-draggable';
import { IconButton } from '@material-ui/core';
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
function PaperComponent(props) {
return (
<Draggable
handle="#draggable-dialog-title"
cancel={'[class*="MuiDialogContent-root"]'}
>
<Paper {...props} />
</Draggable>
);
}
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'absolute',
// left: 10,
top: 400
},
paper: {
overflowY: 'unset',
},
customizedButton: {
position: 'absolute',
left: '98%',
top: '-3%',
backgroundColor: 'lightgray',
color: 'gray',
},
}));
const Partner_Config_Formulaires = (props) => {
const classes = useStyles();
const history = useHistory();
const [submenu, setsubmenu] = useState("");
const [selectionModel, setSelectionModel] = React.useState([]);
@ -79,6 +114,7 @@ const Partner_Config_Formulaires = (props) => {
{ field: 'code', headerName: 'code', flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'nom', headerName: 'nom', flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'type', headerName: 'Type', flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'default', headerName: 'Par défaut', flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'description', headerName: 'description', flex: 1, hide: true, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'commentaire', headerName: 'commentaire', flex: 1, hide: true, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
@ -342,6 +378,7 @@ const Partner_Config_Formulaires = (props) => {
var local_id = JSON.parse(x)._id;
var local_code = JSON.parse(x).code;
var local_nom = JSON.parse(x).nom;
var local_default = JSON.parse(x).default;
//---
@ -351,6 +388,7 @@ const Partner_Config_Formulaires = (props) => {
"label": local_code + " " + local_nom,
"nom": local_nom,
"code": local_code,
"default": local_default,
};
new_data2.push(node);
});
@ -373,13 +411,22 @@ const Partner_Config_Formulaires = (props) => {
else {
setGetall_Partner_Formulaires_api("false");
setGetall_Partner_Formulaires_message(res.data.message);
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
console.warn('Not good man :( Getall_Partner_Formulaires = ', error);
setGetall_Partner_Formulaires_api("false");
alert(" Impossible de recuperer la liste des formulaires");
// alert(" Impossible de recuperer la liste des formulaires");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer la liste des formulaires");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -494,6 +541,7 @@ const Partner_Config_Formulaires = (props) => {
const [p_detail_from_nom, setp_detail_from_nom] = useState("");
const [p_detail_from_description, setp_detail_from_description] = useState("");
const [p_detail_from_commentaire, setp_detail_from_commentaire] = useState("");
const [p_detail_from_default, setp_detail_from_default] = useState("");
const [p_detail_from_list_question, setp_detail_from_list_question] = useState([]);
const [p_detail_from_list_check_box, setp_detail_from_list_check_box] = useState([]);
@ -507,6 +555,10 @@ const Partner_Config_Formulaires = (props) => {
const [p_detail_one_from_nom, setp_detail_one_from_nom] = useState("");
const [p_detail_one_from_description, setp_detail_one_from_description] = useState("");
const [p_detail_one_from_commentaire, setp_detail_one_from_commentaire] = useState("");
const [p_detail_one_from_default, setp_detail_one_from_default] = useState("");
const [p_detail_one_from_list_question, setp_detail_one_from_list_question] = useState([]);
const [p_detail_one_from_message_intro, setp_detail_one_from_message_intro] = useState("");
@ -559,6 +611,10 @@ const Partner_Config_Formulaires = (props) => {
if (mylocal_form_data.nom)
setp_detail_from_nom(mylocal_form_data.nom);
setp_detail_from_default("0");
if (mylocal_form_data.default)
setp_detail_from_default(mylocal_form_data.default);
setp_detail_from_description("");
if (mylocal_form_data.description)
setp_detail_from_description(mylocal_form_data.description);
@ -587,20 +643,32 @@ const Partner_Config_Formulaires = (props) => {
disable_formulaire_fields();
}
else {
alert("Aucune information récuperée");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message("Aucune information récuperée");
setalert_type("error");
}
}
else {
setGet_Given_Formulaire_Data_api("false");
setGet_Given_Formulaire_Data_message(res.data.message);
alert(res.data.message)
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
console.warn('Not good man :( Get_Given_Formulaire_Data = ', error);
setGet_Given_Formulaire_Data_api("false");
alert(" Impossible de recuperer les données du formulaire");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message("Impossible de recuperer les données du formulaire");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -641,6 +709,11 @@ const Partner_Config_Formulaires = (props) => {
document.getElementsByName("detail_config_message_intro")[0].disabled = true;
document.getElementsByName("detail_config_message_intro")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("detail_config_par_defaut_1") && document.getElementsByName("detail_config_par_defaut_1")[0]) {
document.getElementsByName("detail_config_par_defaut_1")[0].disabled = true;
document.getElementsByName("detail_config_par_defaut_1")[0].style.backgroundColor = "#ECEFF1";
}
}
@ -679,6 +752,11 @@ const Partner_Config_Formulaires = (props) => {
document.getElementsByName("detail_config_message_intro")[0].disabled = false;
document.getElementsByName("detail_config_message_intro")[0].style.backgroundColor = "#FFFFFF";
}
if (document.getElementsByName("detail_config_par_defaut_1") && document.getElementsByName("detail_config_par_defaut_1")[0]) {
document.getElementsByName("detail_config_par_defaut_1")[0].disabled = false;
document.getElementsByName("detail_config_par_defaut_1")[0].style.backgroundColor = "#FFFFFF";
}
}
@ -796,6 +874,7 @@ const Partner_Config_Formulaires = (props) => {
form.append("commentaire", p_detail_from_commentaire);
form.append("message_introduction", p_detail_from_message_intro);
form.append("type", p_detail_from_type);
form.append("default", p_detail_from_default);
form.append("form_id", selected_id);
@ -817,7 +896,11 @@ const Partner_Config_Formulaires = (props) => {
Getall_Partner_Formulaires();
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
if (document.getElementById('myRef_head')) {
var divh = document.getElementById('myRef_head').offsetTop;
window.scrollTo({
@ -830,14 +913,21 @@ const Partner_Config_Formulaires = (props) => {
else {
setUpdate_formlaire_data_api("false");
setUpdate_formlaire_data_message(res.data.message);
alert(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('UpdateStagiaireData : Not good man :( Update_formlaire_data = ' + error);
setUpdate_formlaire_data_api("false");
alert(" Impossible de mettre à jour le formulaire ");
// alert(" Impossible de mettre à jour le formulaire ");
setdisplay_alert_mysy("1");
setalert_message("Impossible de mettre à jour le formulaire");
setalert_type("error");
})
}
@ -871,8 +961,10 @@ const Partner_Config_Formulaires = (props) => {
Getall_Partner_Formulaires();
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
if (document.getElementById('myRef_head')) {
var divh = document.getElementById('myRef_head').offsetTop;
window.scrollTo({
@ -885,14 +977,23 @@ const Partner_Config_Formulaires = (props) => {
else {
setDelete_One_Formulaire_api("false");
setDelete_One_Formulaire_message(res.data.message);
alert(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('UpdateStagiaireData : Not good man :( Delete_One_Formulaire = ' + error);
setDelete_One_Formulaire_api("false");
alert(" Impossible de supprimer le formulaire ");
// alert(" Impossible de supprimer le formulaire ");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(" Impossible de supprimer le formulaire ");
setalert_type("error");
})
}
@ -921,6 +1022,7 @@ const Partner_Config_Formulaires = (props) => {
form.append("commentaire", p_detail_one_from_commentaire);
form.append("message_introduction", p_detail_one_from_message_intro);
form.append("type", p_detail_one_from_type);
form.append("default", p_detail_one_from_default);
//console.log(" form == ", form);
@ -945,7 +1047,10 @@ const Partner_Config_Formulaires = (props) => {
setconfig_data_changed("");
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
if (document.getElementById('myRef_head')) {
var divh = document.getElementById('myRef_head').offsetTop;
window.scrollTo({
@ -958,14 +1063,22 @@ const Partner_Config_Formulaires = (props) => {
else {
setAdd_formlaire_data_api("false");
setAdd_formlaire_data_message(res.data.message);
alert(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('UpdateStagiaireData : Not good man :( Add_formlaire_data = ' + error);
setAdd_formlaire_data_api("false");
alert(" Impossible d'ajouter le formulaire ");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message("Impossible d'ajouter le formulaire");
setalert_type("error");
// alert(" Impossible d'ajouter le formulaire ");
})
}
@ -996,7 +1109,12 @@ const Partner_Config_Formulaires = (props) => {
if (String(selected_id).length < 2) {
alert(" Vous devez choisir un formulaire ");
// alert(" Vous devez choisir un formulaire ");
setdisplay_alert_mysy("1");
setalert_message("Vous devez choisir un formulaire");
setalert_type("error");
return;
}
@ -1014,13 +1132,23 @@ const Partner_Config_Formulaires = (props) => {
if (String(question_type) === "note") {
if( String(question_max_note) === ""){
alert(" La note maximale doit être un entier supérieur à 1");
return;
if (String(question_max_note) === "") {
// alert(" La note maximale doit être un entier supérieur à 1");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(" La note maximale doit être un entier supérieur à 1");
setalert_type("error");
return;
}
if (isNaN(Number(question_max_note))) {
alert(" La note maximale doit être un entier supérieur à 1");
// alert(" La note maximale doit être un entier supérieur à 1");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(" La note maximale doit être un entier supérieur à 1");
setalert_type("error");
return;
}
}
@ -1093,14 +1221,20 @@ const Partner_Config_Formulaires = (props) => {
}
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
setDialog_Question_open(false);
}
else {
setAdd_Update_One_Question_api("false");
setAdd_Update_One_Question_message(res.data.message);
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -1109,7 +1243,13 @@ const Partner_Config_Formulaires = (props) => {
setLoading(false);
console.warn('UpdateStagiaireData : Not good man :( Add_Update_One_Question = ' + error);
setAdd_Update_One_Question_api("false");
alert(" Impossible de mettre à jour la question ");
// alert(" Impossible de mettre à jour la question ");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(" Impossible de mettre à jour la question");
setalert_type("error");
})
}
@ -1122,12 +1262,23 @@ const Partner_Config_Formulaires = (props) => {
if (String(selected_id).length < 2) {
alert(" Vous devez choisir un formulaire ");
// alert(" Vous devez choisir un formulaire ");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(" Vous devez choisir un formulaire ");
setalert_type("error");
return;
}
if (String(local_question_id).length < 2) {
alert(" Vous devez choisir une question ");
// alert(" Vous devez choisir une question ");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message("Vous devez choisir une question ");
setalert_type("error");
return;
}
@ -1170,15 +1321,20 @@ const Partner_Config_Formulaires = (props) => {
});
}
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
setDialog_Question_open(false);
}
else {
setDelete_One_Question_api("false");
setDelete_One_Question_message(res.data.message);
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -1187,7 +1343,13 @@ const Partner_Config_Formulaires = (props) => {
setLoading(false);
console.warn('UpdateStagiaireData : Not good man :( Delete_One_Question = ' + error);
setDelete_One_Question_api("false");
alert(" Impossible de supprimer la question ");
// alert(" Impossible de supprimer la question ");
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(" Impossible de supprimer la question ");
setalert_type("error");
})
}
@ -1251,6 +1413,22 @@ const Partner_Config_Formulaires = (props) => {
setstatistic_checked(event.target.checked);
};
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("");
}
return (
<div className="partner_configuration_technique">
{isLoading && <div className="loader-container">
@ -1262,12 +1440,34 @@ const Partner_Config_Formulaires = (props) => {
<Dialog
open={Dialog_Question_open}
onClose={Dialog_Question_handleClose}
// onClose={Dialog_Question_handleClose}
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '5rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle>MySy Information</DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "25rem" }}>
<DialogContentText>
@ -1504,7 +1704,14 @@ const Partner_Config_Formulaires = (props) => {
</DialogContent>
<DialogActions>
<IconButton
// autoFocus
onClick={Dialog_Question_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
{String(selected_question_id) === "" && <div className="div_row_gauche"> <Button onClick={Add_Update_One_Question} className="bton_enreg_dialog">Ajouter</Button> </div>}
@ -1520,27 +1727,8 @@ const Partner_Config_Formulaires = (props) => {
{/*** End Dialog Question*/}
<Dialog
open={Dialog_1_open}
onClose={Dialog_1_handleClose}
>
<DialogTitle>MySy Information</DialogTitle>
<DialogContent>
<DialogContentText>
{Dialog_1_message}
</DialogContentText>
</DialogContent>
<DialogActions>
<Button onClick={Dialog_1_handleClose_buton}>OK</Button>
</DialogActions>
</Dialog>
<h3> Votre configuration des formulaires </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Votre configuration des formulaires </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
@ -1871,6 +2059,7 @@ const Partner_Config_Formulaires = (props) => {
description: JSON.parse(item).description,
commentaire: JSON.parse(item).commentaire,
type: JSON.parse(item).type,
default: JSON.parse(item).default,
}
))}
@ -2079,6 +2268,32 @@ const Partner_Config_Formulaires = (props) => {
</div>
<div className="session_caract"> Formulaire par défaut <br />
{String(p_detail_from_default) === "1" &&
<Checkbox
name="detail_config_par_defaut_1"
id="detail_config_par_defaut_1"
className="disabled_style"
checked={true}
// style={{ background: '#ECEFF1' }}
/>}
{String(p_detail_from_default) !== "1" &&
<Checkbox
name="detail_config_par_defaut_1"
id="detail_config_par_defaut_1"
className="disabled_style"
checked={false}
// style={{ background: '#ECEFF1' }}
/>}
</div>
<div className="div_row" style={{ "padding": "10px" }}>
@ -2371,7 +2586,43 @@ const Partner_Config_Formulaires = (props) => {
/>
</div>
<div className="session_caract"> Formulaire par défaut <br />
{String(p_detail_from_default) === "1" &&
<Checkbox
name="detail_config_par_defaut"
id="detail_config_par_defaut"
className="disabled_style"
checked={true}
// style={{ background: '#ECEFF1' }}
onChange={(e) => {
if (e.target.checked) {
setp_detail_from_default("1");
} else {
setp_detail_from_default("0");
}
}}
/>}
{String(p_detail_from_default) !== "1" &&
<Checkbox
name="detail_config_par_defaut"
id="detail_config_par_defaut"
className="disabled_style"
checked={false}
// style={{ background: '#ECEFF1' }}
onChange={(e) => {
if (e.target.checked) {
setp_detail_from_default("1");
} else {
setp_detail_from_default("0");
}
}}
/>}
</div>
</div>
@ -2639,11 +2890,29 @@ const Partner_Config_Formulaires = (props) => {
value={p_detail_one_from_commentaire}
onChange={(e) => {
setp_detail_one_from_commentaire(e.target.value);
}}
/>
</div>
<div className="session_caract"> Formulaire par défaut <br />
<Checkbox
name="detail_config_par_defaut"
id="detail_config_par_defaut"
className="disabled_style"
checked={false}
onChange={(e) => {
if (e.target.checked) {
setp_detail_one_from_default("1");
} else {
setp_detail_one_from_default("0");
}
}}
// style={{ background: '#FFFFFF' }}
/>
</div>
<div>
<div className="div_row" style={{ "border": "None" }}>

View File

@ -657,7 +657,7 @@ const Partner_Config_Ftion_Initiale = (props) => {
</div>}
<h3> Formation Initale configuration </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Formation Initale configuration </h3>
<div className="div_row" ref={myRef_head} id="myRef_head" >
<Button variant="outlined" onClick={submenu_type_eval} className="detail_class_submenu" id='technique' name='technique'>Type Evaluation</Button>
{/*

View File

@ -1878,7 +1878,7 @@ const Partner_Configuration_Jours_Travail = (props) => {
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Votre configuration des jours et heure de travail </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Votre configuration des jours et heure de travail </h3>
<div className="div_row">
<div className="div_row" >

View File

@ -690,7 +690,7 @@ const Partner_Configuration_Session_Steps = (props) => {
</DialogActions>
</Dialog>
<h3> Votre configuration des étapes de session </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Votre configuration des étapes de session </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

File diff suppressed because it is too large Load Diff

View File

@ -2000,7 +2000,7 @@ const Partner_domaine_Categorie_Metier = (props) => {
{/*** domaine */}
{String(submenu) === "domaine" && <div className="div_row" style={{ paddingRight: '10px' }}>
<h3> Les domaines de formation</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les domaines de formation</h3>
<div>
<div className="div_row" style={{ paddingRight: '10px' }}>
@ -2317,7 +2317,7 @@ const Partner_domaine_Categorie_Metier = (props) => {
{/*** categorie */}
{String(submenu) === "categorie" && <div className="div_row" style={{ paddingRight: '10px' }}>
<h3> Les catégories de formation</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les catégories de formation</h3>
<div>
<div className="div_row" style={{ paddingRight: '10px' }}>
@ -2680,7 +2680,7 @@ const Partner_domaine_Categorie_Metier = (props) => {
{/*** metier */}
{String(submenu) === "metier" && <div className="div_row" style={{ paddingRight: '10px' }}>
<h3> Les métiers</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Les métiers</h3>
<div>
<div className="div_row" style={{ paddingRight: '10px' }}>
<div className="session_data">

View File

@ -17,8 +17,7 @@ import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { Editor } from '@tinymce/tinymce-react';
import parse from 'html-react-parser';
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
@ -60,7 +59,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";
@ -68,9 +67,47 @@ import { FcOpenedFolder } from "react-icons/fc";
import Module_Historique_Action from "./Module_Historique_Action";
import { GridExportCsvOptions } from '@mui/x-data-grid';
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
import Draggable from 'react-draggable';
import { IconButton } from '@material-ui/core';
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
function PaperComponent(props) {
return (
<Draggable
handle="#draggable-dialog-title"
cancel={'[class*="MuiDialogContent-root"]'}
>
<Paper {...props} />
</Draggable>
);
}
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'absolute',
// left: 10,
top: 400
},
paper: {
overflowY: 'unset',
},
customizedButton: {
position: 'absolute',
left: '98%',
top: '-3%',
backgroundColor: 'lightgray',
color: 'gray',
},
}));
const Partner_Facture = (props) => {
const classes = useStyles();
const { action, orderid } = useParams();
@ -464,13 +501,19 @@ const Partner_Facture = (props) => {
Getall_Invoice_Paiement_Payed_Remain_Amounts();
clear_Paiement_DetailFields()
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
}
else {
sethandleClick_delete_Paiement_api("false");
sethandleClick_delete_Paiement_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -570,7 +613,10 @@ const Partner_Facture = (props) => {
else {
setGetall_Invoice_Paiement_api("false");
setGetall_Invoice_Paiement_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -637,7 +683,10 @@ const Partner_Facture = (props) => {
else {
setGetall_Invoice_Paiement_Payed_Remain_Amounts_api("false");
setGetall_Invoice_Paiement_Payed_Remain_Amounts_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -841,7 +890,10 @@ const Partner_Facture = (props) => {
else {
setGet_Given_Line_Of_Partner_Invoice_Line_Data_api("false");
setGet_Given_Line_Of_Partner_Invoice_Line_Data_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -993,7 +1045,10 @@ const Partner_Facture = (props) => {
else {
setGetall_Parter_Invoice_No_Filter_api("false");
setGetall_Parter_Invoice_No_Filter_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -1033,7 +1088,10 @@ const Partner_Facture = (props) => {
else {
setGetall_Parter_Invoice_With_Filter_On_Client_Id_api("false");
setGetall_Parter_Invoice_With_Filter_On_Client_Id_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -1411,7 +1469,10 @@ const Partner_Facture = (props) => {
setLoading(false);
setGetAttendee_api("false");
setGetAttendee_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -1643,7 +1704,10 @@ const Partner_Facture = (props) => {
else {
setGetall_Parter_Invoice_With_Filter_api("false");
setGetall_Parter_Invoice_With_Filter_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -1683,12 +1747,18 @@ const Partner_Facture = (props) => {
if (String(res.data.status) === String("true")) {
setSend_Invoice_By_Email_api("true");
setSend_Invoice_By_Email_message(res.data.message);
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
}
else {
setSend_Invoice_By_Email_api("false");
setSend_Invoice_By_Email_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -1734,7 +1804,10 @@ const Partner_Facture = (props) => {
setLoading(false);
setGet_Partner_Invoice_Lines_from_header_id_api("false");
setGet_Partner_Invoice_Lines_from_header_id_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -2182,7 +2255,10 @@ const Partner_Facture = (props) => {
else {
setGet_Given_Paiement_Data_api("false");
setGet_Given_Paiement_Data_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -2290,7 +2366,10 @@ const Partner_Facture = (props) => {
Dialog_Paiement_1_handleClose_buton();
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
if (document.getElementById('myRef')) {
var divh = document.getElementById('myRef').offsetTop;
window.scrollTo({
@ -2304,7 +2383,10 @@ const Partner_Facture = (props) => {
else {
setAdd_Update_Paiement_Data_api("false");
setAdd_Update_Paiement_Data_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -2352,7 +2434,10 @@ const Partner_Facture = (props) => {
Display_Detail_Invoice_data(selected_id);
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
if (document.getElementById('myRef_head')) {
var divh = document.getElementById('myRef_head').offsetTop;
@ -2367,7 +2452,10 @@ const Partner_Facture = (props) => {
else {
setCreate_Invoice_Credit_Note_api("false");
setCreate_Invoice_Credit_Note_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -2439,7 +2527,10 @@ const Partner_Facture = (props) => {
Dialog_annotation_1_handleClose_buton();
alert(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
if (document.getElementById('myRef')) {
var divh = document.getElementById('myRef').offsetTop;
window.scrollTo({
@ -2453,7 +2544,10 @@ const Partner_Facture = (props) => {
else {
setAdd_Update_annotation_Data_api("false");
setAdd_Update_annotation_Data_message(res.data.message);
alert(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
@ -2709,6 +2803,21 @@ const Partner_Facture = (props) => {
}
};
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("");
}
return (
<div className="partner_facture">
@ -2716,13 +2825,25 @@ const Partner_Facture = (props) => {
<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*/}
<Dialog
open={Dialog_Detail_Article_open}
onClose={Dialog_1_handleClose}
className="partner_commande"
>
<DialogTitle> Détail ligne Facture <font style={{ fontWeight: "700" }}> {String(invoice_internal_ref)} </font> </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> Détail ligne Facture <font style={{ fontWeight: "700" }}> {String(invoice_internal_ref)} </font> </DialogTitle>
<DialogContent>
@ -2934,9 +3055,29 @@ const Partner_Facture = (props) => {
// onClose={Dialog_invoice_history_handleClose}
className="displaypartnersession"
static
onClose={() => null} >
onClose={() => null}
<DialogTitle>MySy Information</DialogTitle>
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '5rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}>
<div>
@ -2960,6 +3101,16 @@ const Partner_Facture = (props) => {
<DialogActions>
<IconButton
// autoFocus
onClick={Dialog_invoice_history_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
<div className="div_row_gauche">
&nbsp;
@ -2983,9 +3134,29 @@ const Partner_Facture = (props) => {
// onClose={Dialog_send_invoice_with_PJ_handleClose}
className="displaypartnersession"
static
onClose={() => null} >
onClose={() => null}
<DialogTitle>MySy Information</DialogTitle>
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '5rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}>
<DialogContentText>
Envoi Facture par email
@ -3064,6 +3235,16 @@ const Partner_Facture = (props) => {
<DialogActions>
<IconButton
// autoFocus
onClick={Dialog_send_invoice_with_PJ_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
<div className="div_row_gauche">
<Button onClick={(e) => {
@ -3092,13 +3273,34 @@ const Partner_Facture = (props) => {
{/*** Paiement */}
<Dialog
open={Dialog_Paiement_1_open}
onClose={Dialog_Paiement_1_handleClose}
// onClose={Dialog_Paiement_1_handleClose}
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '5rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle> Paiement </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> Paiement </DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_Paiement_1_message}
@ -3208,6 +3410,16 @@ const Partner_Facture = (props) => {
<DialogActions>
<IconButton
// autoFocus
onClick={Dialog_Paiement_1_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
<div className="div_row_gauche">
@ -3230,13 +3442,34 @@ const Partner_Facture = (props) => {
{/*** annotation */}
<Dialog
open={Dialog_annotation_1_open}
onClose={Dialog_annotation_1_handleClose}
// onClose={Dialog_annotation_1_handleClose}
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '5rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle> Annotation </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title"> Annotation </DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "15rem" }}>
<DialogContentText>
{Dialog_annotation_1_message}
@ -3265,6 +3498,15 @@ const Partner_Facture = (props) => {
<DialogActions>
<IconButton
// autoFocus
onClick={Dialog_annotation_1_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
<div className="div_row_gauche">
<Button onClick={Add_Update_annotation_Data} className="bton_enreg_dialog">Mettre à jour</Button>
@ -3305,7 +3547,7 @@ const Partner_Facture = (props) => {
{/******** FIN Menu Clique Droit test */}
<h3> Vos 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" }}>

View File

@ -296,7 +296,7 @@ function Partner_Invoicing_Data(props) {
{String(RecordData_api) === String("false") && <div className="koUpdateData"> Impossible de modifier les informations </div>}
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<div style={{ display: 'flex', flexDirection: 'row', gap: '20px', width: '100%', flexWrap: 'wrap', justifyContent: 'left' }}>
<TextField
required
@ -394,8 +394,8 @@ function Partner_Invoicing_Data(props) {
name="adr_street"
label="Adresse"
className="texte_area_adress"
sx={{ m: 1, width: '96%' }}
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
@ -462,7 +462,7 @@ function Partner_Invoicing_Data(props) {
/>
</Box>
</div>
<div className="div_row">
&nbsp;

View File

@ -557,7 +557,7 @@ const Partner_Prix_Achat = (props) => {
</Dialog>
<h3> Vos prix d'achat </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes prix d'achat </h3>
<div>
<div className="titre1"> Utilisez les filtres !</div>

View File

@ -1163,7 +1163,7 @@ const Partner_Product_Service = (props) => {
</DialogActions>
</Dialog>
<h3> Vos Prix </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Mes Prix </h3>
<div className="div_row">
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>

View File

@ -15,7 +15,7 @@ import FormControl from '@mui/material/FormControl';
import InputLabel from '@mui/material/InputLabel';
import OutlinedInput from '@mui/material/OutlinedInput';
import moment from 'moment'
import img_logo_stripe from "./../mysy_img/logo-stripe-secure.png";
import img_logo_stripe from "./../mysy_img/logo-stripe-secure.png";
function PaymentMethode(props) {
@ -164,10 +164,10 @@ function PaymentMethode(props) {
if (String(result['status']) === String("true")) {
setpaymentadded("1");
window.scrollTo({
top: 0,
behavior: "smooth",
});
}else if (String(result['status']) === String("Err_Connexion")) {
top: 0,
behavior: "smooth",
});
} else if (String(result['status']) === String("Err_Connexion")) {
alert('Erreur: ' + result['message']);
history.push("/Connexion");
}
@ -239,25 +239,25 @@ function PaymentMethode(props) {
useEffect(() => {
//console.log(" props.mypaymentmode = " + props.mypaymentmode);
var num_carte = "XXXX"+JSON.parse(props.mypaymentmode).last4;
setnum_carte(num_carte);
var exp_data = JSON.parse(props.mypaymentmode).exp_month+"/"+JSON.parse(props.mypaymentmode).exp_year;
setdate_exp(exp_data);
var num_carte = "XXXX" + JSON.parse(props.mypaymentmode).last4;
setnum_carte(num_carte);
var exp_data = JSON.parse(props.mypaymentmode).exp_month + "/" + JSON.parse(props.mypaymentmode).exp_year;
setdate_exp(exp_data);
window.scrollTo({
top: 0,
behavior: "smooth",
});
});
}, []);
return (
<div className="paymentmethode">
<div className="row_gauche_bis">
mypaymentmode = {props.mypaymentmode}
<div className="div_row_central">
{String(paymentadded) === String("1") && <div className="okUpdateData">
@ -277,11 +277,11 @@ function PaymentMethode(props) {
<div className="div_row_gauche" style={{ "minHeight": "4rem" }}> Carte Bancaire </div>
<div className="div_row_droite" style={{ "textAlign": "right", "maxHeight": "rem" }}>
<img src={img_logo_stripe} className="img_payment" /> &nbsp;
</div>
</div>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<TextField
required
@ -301,7 +301,7 @@ function PaymentMethode(props) {
label="Numéro de carte"
name="num_carte"
id="num_carte"
value={"XXXX"+(JSON.parse(props.mypaymentmode).last4)}
value={"XXXX" + (JSON.parse(props.mypaymentmode).last4)}
autoComplete="off"
className="texte_area"
sx={{ m: 1, width: '95%' }}
@ -316,7 +316,7 @@ function PaymentMethode(props) {
name="date_exp"
id="date_exp"
autoComplete="new-qsq"
value={(JSON.parse(props.mypaymentmode).exp_month)+"/"+(JSON.parse(props.mypaymentmode).exp_year)}
value={(JSON.parse(props.mypaymentmode).exp_month) + "/" + (JSON.parse(props.mypaymentmode).exp_year)}
className="texte_area"
sx={{ m: 1, width: '45%' }}
onChange={Checkdate_expdate_exp}
@ -357,8 +357,8 @@ function PaymentMethode(props) {
<div className="titre1" onClick={menu_sepa}> Prélèvement par virement SEPA</div>
{String(menu) === String("sepa") && <div>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<TextField
required
@ -407,8 +407,8 @@ function PaymentMethode(props) {
Pour confirmer le changement, veuillez entrer votre mot de passe et votre clé sécrete <br />
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<FormControl sx={{ m: 1, width: '45%' }} variant="standard" size="small" className="texte_area_passwd">
<InputLabel htmlFor="outlined-adornment-password">Mot de passe</InputLabel>
@ -486,7 +486,7 @@ function PaymentMethode(props) {
}}>J'ai lu et j'accepte les conditions ci-dessus.</label>
</div>
<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>

View File

@ -139,26 +139,27 @@ function PaymentMethodeNoConnect(props) {
)
.then((response) => response.json())
.then((result) => {
//console.log(' paymenadded_api Success:', result['message'], "result['status'] = ", result['status']);
console.log(' paymenadded_api Success:', result['message'], "result['status'] = ", result['status']);
setRecordData_api(result['status']);
if (String(result['status']) === String("true")) {
setpaymentadded("1");
}else if (String(result['status']) === String("Err_Connexion")) {
props.GetPayementMode();
props.display_succes_message_from_sub_componante("La mise à jour a été correctement faite");
props.menu_paymentmethode_close();
} else if (String(result['status']) === String("Err_Connexion")) {
alert('Erreur: ' + result['message']);
history.push("/Connexion");
}
else {
setpaymentadded("0");
}
})
.catch((error) => {
@ -224,7 +225,7 @@ function PaymentMethodeNoConnect(props) {
window.scrollTo({
top: 0,
behavior: "smooth",
});
});
}, []);
@ -250,13 +251,13 @@ function PaymentMethodeNoConnect(props) {
{String(paymentadded) === String("1") && <div className="okUpdateData">
Le mode de Paiement a été correctement ajouté
{window.location.reload()}
{/*window.location.reload()*/}
</div>
}
{String(paymentadded) === String("0") && <div className="koUpdateData">
Impossible d'ajouter/mettre à jour la carte.
Merci de verifier vos informations.
Impossible d'ajouter/mettre à jour la carte.
Merci de verifier vos informations.
{result}
</div>
}
@ -268,8 +269,8 @@ function PaymentMethodeNoConnect(props) {
</div>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<TextField
required
@ -277,10 +278,10 @@ function PaymentMethodeNoConnect(props) {
label="Nom inscrit sur la carte"
name="nom_carte"
className="texte_area_carte"
sx={{ m: 1, width: '95%' }}
/>
<TextField
@ -307,7 +308,7 @@ function PaymentMethodeNoConnect(props) {
sx={{ m: 1, width: '45%' }}
onChange={Checkdate_expdate_exp}
onBlur={Onleave_expdate_exp}
/>
<TextField
@ -335,8 +336,8 @@ function PaymentMethodeNoConnect(props) {
Pour confirmer le changement, veuillez entrer votre mot de passe et votre clé sécrete <br />
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}>
<FormControl sx={{ m: 1, width: '100%' }} variant="standard" size="small" className="texte_area_passwd carte_cle_pass">
<InputLabel htmlFor="outlined-adornment-password">Mot de passe</InputLabel>
@ -415,7 +416,7 @@ function PaymentMethodeNoConnect(props) {
</div>
<div className="div_row_centre">
<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>
);

View File

@ -363,7 +363,7 @@ function PaymentMethodeNoConnect(props) {
<div className="div_row_centre">
<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>

View File

@ -132,10 +132,10 @@ function ProduitsServices() {
return (
<div className="produitsservices">
<Helmet>
<title>Tarifs des Produits et Services </title>
<title>Tarifs des Produits et Services ttt </title>
<meta name="description" content="Tarifs des Produits et Services.Avec nos solutions de E-Learning, gestion administrative et gestion relation client, nos prix sont les moins chers du marché pour gérer votre organisme de formation. Nous automatisons Qualiopi. Lensemble de nos options : signature électronique, Gestion avis participants, Les émargements sécurisés, les contrats des formateurs, la gestion des financeurs sont inclus dans nos tarifs de base." />
<meta name="robots" content="index,follow" />
<meta name="title" content="Tarifs des Produits et Services " />
<meta name="title" content="Tarifs des Produits et Services ttt" />
<link rel="canonical" href={window.location.href} />
</Helmet>

View File

@ -12,11 +12,7 @@ import { getCookie, removeCookie } from 'react-use-cookie';
import { Helmet } from "react-helmet";
import LogoutOutlinedIcon from '@mui/icons-material/LogoutOutlined';
import Button from '@mui/material/Button';
import logowhite from "../mysy_img/MYSY-LOGO-WHITE.png";
import Footer from "./Fotter";
import Header from "./Header";
import MenuItem from "@material-ui/core/MenuItem";
import Menu from "@material-ui/core/Menu";
import { confirmAlert } from 'react-confirm-alert'; // Import
import { useCookies } from "react-cookie";
import connect_white from "../mysy_img/connect_white_v2.png";
@ -39,12 +35,7 @@ import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import Checkbox from '@mui/material/Checkbox';
import Box from '@mui/material/Box';
import Fab from '@mui/material/Fab';
import AddIcon from '@mui/icons-material/Add';
import EditIcon from '@mui/icons-material/Edit';
import FavoriteIcon from '@mui/icons-material/Favorite';
import NavigationIcon from '@mui/icons-material/Navigation';
import { FcPlus } from "react-icons/fc";
import Autocomplete from '@mui/material/Autocomplete';
import TextField from '@mui/material/TextField';
@ -1210,7 +1201,7 @@ const RechercheArticles_new_v2 = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">Votre article </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Votre article </DialogTitle>
<DialogContent className="DialogContent_width DialogContent_width_session_800px" >
@ -1465,7 +1456,7 @@ const RechercheArticles_new_v2 = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -44,7 +44,7 @@ function Register() {
return (
<form onSubmit={handleSubmit(onSubmit)}>
<h1>Créer votre compte</h1>
<h3>Inscription rapide</h3>
<h3 style={{ fontFamily:'DM Sans' }}>Inscription rapide</h3>
<div>
<input
{...register("name", {

View File

@ -94,6 +94,8 @@ import Checkbox from '@mui/material/Checkbox';
import { Container, Row, Col } from 'react-grid-system';
import steph_img from "../mysy_img/spteph.jpg";
// pour le payement stripe : https://stripe.com/docs/payments/quickstart?client=react&lang=python
const stripePromise = loadStripe('pk_test_51LUUfAAbmaEugrFTI25uZBD3IFjbtaL6jUfRV83diDf7nco8worna4NGKhMHbPP71WCwT5EHFRdDNatxPrJWwgZ300kgH5EO4p');
@ -143,28 +145,28 @@ function ExpandableCell_50({ value }) {
const [expanded, setExpanded] = React.useState(false);
return (
<nav>
{value && <div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
<nav>
{value && <div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
{expanded ? value : value.slice(0, 50)}&nbsp;
{value.length > 50 && (
// eslint-disable-next-line jsx-a11y/anchor-is-valid
<Link
type="button"
component="button"
sx={{ fontSize: 'inherit' }}
onClick={() => setExpanded(!expanded)}
>
{expanded ? <nav> <PiDotsThree />Réduire</nav> : <nav> <PiDotsThree />Voir</nav>}
</Link>
)}
</div>}
{expanded ? value : value.slice(0, 50)}&nbsp;
{value.length > 50 && (
// eslint-disable-next-line jsx-a11y/anchor-is-valid
<Link
type="button"
component="button"
sx={{ fontSize: 'inherit' }}
onClick={() => setExpanded(!expanded)}
>
{expanded ? <nav> <PiDotsThree />Réduire</nav> : <nav> <PiDotsThree />Voir</nav>}
</Link>
)}
</div>}
{value && <div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
&nbsp;
</div>
}
</nav>
{value && <div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
&nbsp;
</div>
}
</nav>
);
}
@ -861,12 +863,12 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
getRowHeight={() => 'auto'}
sx={{
"& .MuiDataGrid-cellContent": {
minHeight: 40,
maxHeight: 1000
},[`& .${gridClasses.cell}`]: {
minHeight: 40,
maxHeight: 1000
}, [`& .${gridClasses.cell}`]: {
py: 1,
},
}}
}}
/>
</div>
@ -887,14 +889,14 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
getRowHeight={() => 'auto'}
sx={{
"& .MuiDataGrid-cellContent": {
minHeight: 40,
maxHeight: 1000
},[`& .${gridClasses.cell}`]: {
minHeight: 40,
maxHeight: 1000
}, [`& .${gridClasses.cell}`]: {
py: 1,
},
}}
}}
/>
<div style={{ margin: "40px", textAlign: "center" }}>
<a
@ -1180,16 +1182,16 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
<div className="carte_visite">
<div className="main_div">
<div className="ch_div_gauche" style={{ "borderRight": "5px solid gray", "borderRadius": "0px", "width":'25%' }}>
<div className="ch_div_gauche" style={{ "borderRight": "5px solid gray", "borderRadius": "0px", "width": '25%' }}>
<br />
<img classname="img" src="https://img.mysy-training.com/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo"
style={{ "maxWidth": "50%", "marginTop": "2rem" }} />
<br />
<div className="div_nom" style={{"fontSize":'25px'}}>
<div className="div_nom" style={{ "fontSize": '25px' }}>
Cherif BALDE<br />
</div>
<div className="div_function" style={{"fontSize":'25px'}}>
<div className="div_function" style={{ "fontSize": '25px' }}>
Directeur
</div>
</div>
@ -1199,7 +1201,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
</div>
<div className="ch_div_droite div_coordonnees" style={{ "paddingRight": "3rem", "lineHeight":'3rem', "fontSize":'20px' }}>
<div className="ch_div_droite div_coordonnees" style={{ "paddingRight": "3rem", "lineHeight": '3rem', "fontSize": '20px' }}>
<div> <ImMobile2 /> &nbsp;+337 69 20 39 45</div>
<div> <ImOffice /> &nbsp;+331 77 00 38 57</div>
<div> <BsMailbox /> &nbsp;cbalde@mysy-training.com</div>
@ -1211,56 +1213,111 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
</div>
<div className="div_row">
<div className="div_row">
<div className="carte_visite">
<div className="main_div">
<div className="ch_div_gauche" style={{ "borderRight": "5px solid gray", "borderRadius": "0px", "width":'25%' }}>
<br />
<img classname="img" src="https://img.mysy-training.com/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo"
style={{ "maxWidth": "50%", "marginTop": "2rem" }} />
<br />
<div className="carte_visite">
<div className="main_div">
<div className="ch_div_gauche" style={{ "borderRight": "5px solid gray", "borderRadius": "0px", "width": '25%' }}>
<img src={steph_img} alt="Mysy Training Logo"
style={{
"marginTop": "2rem", borderRadius: '10px', width: '55%', border: 'none', marginTop: '2px',
height: "100%"
}} />
<div className="div_nom" style={{"fontSize":'25px'}}>
Matthieu BOIFFARD<br />
</div>
<div className="div_function" style={{"fontSize":'25px'}}>
Responsable Commercial
<div className="ch_div_gauche" style={{ "borderRight": "5px solid gray", "borderRadius": "0px", "width": '25%' }}>
<img classname="img" src="https://img.mysy-training.com/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo"
style={{ "maxWidth": "50%", "marginTop": "2rem", border: 'none' }} />
<div className="div_nom" style={{ "fontSize": '25px' }}>
Stéphanie BERNHARD <br />
</div>
<div className="div_function" style={{ "fontSize": '25px' }}>
Responsable développement
</div>
</div>
<div className="ch_div_centre">
<hr className="myhr" />
</div>
<div className="ch_div_droite div_coordonnees" style={{
"paddingRight": "3rem", "lineHeight": '3rem', "fontSize": '20px',
paddingTop: '4rem'
}}>
<div> <ImMobile2 /> &nbsp;+337 63 97 23 78</div>
<div> <ImOffice /> &nbsp;+331 77 00 38 57</div>
<div> <BsMailbox /> &nbsp;sbernhard@mysy-training.com</div>
<div> <ImHome /> &nbsp;https://www.mysy-training.com/</div>
</div>
</div>
<div className="ch_div_centre">
<hr className="myhr" />
</div>
<div className="ch_div_droite div_coordonnees" style={{ "paddingRight": "3rem", "lineHeight":'3rem', "fontSize":'20px' }}>
<div> <ImMobile2 /> &nbsp;+336 67 45 99 64</div>
<div> <ImOffice /> &nbsp;+331 77 00 38 57</div>
<div> <BsMailbox /> &nbsp;mboiffard@mysy-training.com</div>
<div> <ImHome /> &nbsp;https://www.mysy-training.com/</div>
</div>
</div>
</div>
</div>
<div className="div_row">
<div className="carte_visite">
<div className="main_div">
<div className="ch_div_gauche" style={{ "borderRight": "5px solid gray", "borderRadius": "0px", "width": '25%' }}>
<img src={steph_img} alt="Mysy Training Logo"
style={{
"marginTop": "2rem", borderRadius: '10px', width: '60%', border: 'none', marginTop: '2px',
height: "100%", marginRight:'2px'
}} />
</div>
<div className="ch_div_gauche" style={{ "borderRight": "5px solid gray", "borderRadius": "0px", "width": '70%',
textAlign:'left'
}}>
<img classname="img" src="https://img.mysy-training.com/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo"
style={{ "maxWidth": "15%", "marginTop": "2rem", border: 'none', paddingLeft:'10px', marginLeft:'10px',
marginTop:'1px'
}} />
<div className="div_nom" style={{ "fontSize": '20px', textAlign:'left', paddingLeft:'10px' }}>
Stéphanie BERNHARD <br />
</div>
<div className="div_function" style={{ "fontSize": '18px', textAlign:'left', paddingLeft:'10px' }}>
Responsable développement
<br /> <br />
<ImMobile2 /> &nbsp;+337 63 97 23 78 <br />
<ImOffice /> &nbsp;+331 77 00 38 57 <br />
<BsMailbox /> &nbsp;sbernhard@mysy-training.com <br />
<ImHome /> &nbsp;https://www.mysy-training.com/ <br />
</div>
</div>
</div>
</div>
</div>
<div className="carte_visite">
<div className="main_div">
<div className="ch_div_gauche" style={{ "borderRight": "5px solid gray", "borderRadius": "0px", "width":'25%' }}>
<div className="ch_div_gauche" style={{ "borderRight": "5px solid gray", "borderRadius": "0px", "width": '25%' }}>
<br />
<img classname="img" src="https://img.mysy-training.com/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo"
style={{ "maxWidth": "50%", "marginTop": "2rem" }} />
<br />
<div className="div_nom" style={{"fontSize":'25px'}}>
Aicha BARRY<br />
<div className="div_nom" style={{ "fontSize": '25px' }}>
Aicha BARRY<br />
</div>
<div className="div_function" style={{"fontSize":'25px'}}>
Directrice Administration & Relation Client
<div className="div_function" style={{ "fontSize": '25px' }}>
Directrice Administration & Relation Client
</div>
</div>
<div className="ch_div_centre">
@ -1269,12 +1326,12 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
</div>
<div className="ch_div_droite div_coordonnees" style={{ "paddingRight": "3rem", "lineHeight":'3rem', "fontSize":'20px' }}>
<div> <ImMobile2 /> &nbsp;+336 16 08 80 48</div>
<div className="ch_div_droite div_coordonnees" style={{ "paddingRight": "3rem", "lineHeight": '3rem', "fontSize": '20px' }}>
<div> <ImMobile2 /> &nbsp;+336 16 08 80 48</div>
<div> <ImOffice /> &nbsp;+331 77 00 38 57</div>
<div> <BsMailbox /> &nbsp;mboiffard@mysy-training.com</div>
<div> <ImHome /> &nbsp;https://www.mysy-training.com/</div>
</div>
</div>
@ -1290,10 +1347,10 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
<br />
<div className="div_nom">
Matthieu BOIFFARD<br />
Stéphanie BERNHARD 1<br />
</div>
<div className="div_function">
Responsable Commercial
Responsable développement
</div>
</div>
<div className="ch_div_centre">
@ -1302,7 +1359,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
</div>
<div className="ch_div_droite div_coordonnees" style={{ "paddingRight": "3rem", "lineHeight":'3rem', "fontSize":'20px' }}>
<div className="ch_div_droite div_coordonnees" style={{ "paddingRight": "3rem", "lineHeight": '3rem', "fontSize": '20px' }}>
<div> <ImMobile2 /> &nbsp;+336 67 45 99 64</div>
<div> <ImOffice /> &nbsp;+331 77 00 38 57</div>
<div> <BsMailbox /> &nbsp;mboiffard@mysy-training.com</div>
@ -1343,7 +1400,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
toolbar: 'undo redo | casechange blocks | bold italic backcolor | ' +
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px;line-height: 0.6rem; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px;line-height: 0.6rem; }'
}}
/>
@ -1369,7 +1426,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
toolbar: 'undo redo | casechange blocks | bold italic backcolor | ' +
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px;line-height: 0.6rem; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px;line-height: 0.6rem; }'
}}
/>
@ -1429,7 +1486,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
{topX_formation && topX_formation.length > 3 && <div>
<h3>Le top 5 de vos formationes de la semaine est : </h3>
<h3 style={{ fontFamily:'DM Sans' }}>Le top 5 de vos formationes de la semaine est : </h3>
{topX_formation &&
@ -1455,7 +1512,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
<div className="section col-md-6">
<h3>Le top 5 de vos formationes de la semaine est : </h3>
<h3 style={{ fontFamily:'DM Sans' }}>Le top 5 de vos formationes de la semaine est : </h3>
{topX_formation &&

View File

@ -1541,7 +1541,7 @@ const TestUrl_New = (props) => {
<div className="div_mobile">
<h3> Page de test * testurl_new </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Page de test * testurl_new </h3>
parametres courseid = {courseid}, tabid = {tabid}
<br />
Affichage Timeline <br />
@ -1803,7 +1803,7 @@ const TestUrl_New = (props) => {
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>
<Button className="bton_enreg" onClick={Add_one_Partner_Document} style={{ "margin": "1rem" }}

View File

@ -320,7 +320,7 @@ const Test_Drag_Drop = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<h3> Test Page Drag & Drop</h3>
<h3 style={{ fontFamily:'DM Sans' }}> Test Page Drag & Drop</h3>
<Button variant="contained"
color="success"
className="btn_abonnement"

File diff suppressed because it is too large Load Diff

View File

@ -845,7 +845,7 @@ function UpdateParnterInfo(props) {
document.getElementsByName("iscertifvoltaire")[0].style.backgroundColor = "#ECEFF1";
}
// alert(" La mise à jour a été faite ");
// alert(" La mise à jour a été faite ");
setdisplay_alert_mysy("1");
setalert_message(" La mise à jour a été faite ");
setalert_type("success");
@ -854,11 +854,11 @@ function UpdateParnterInfo(props) {
alert('Erreur: ' + result['message']);
history.push("/Connexion");
} else {
// alert(" Erreur : " + result['message']);
// alert(" Erreur : " + result['message']);
setdisplay_alert_mysy("1");
setalert_message(result['message']);
setalert_type("error");
}
})
@ -2233,17 +2233,8 @@ function UpdateParnterInfo(props) {
//console.log(" img_width = ", img_width);
_URL.revokeObjectURL(objectUrl);
if (parseFloat(img_width) > 1500 && parseFloat(img_width) < 1930 &&
parseFloat(img_height) > 150 && parseFloat(img_height) < 195) {
//console.log(" img_height est = ", img_height, " < à 1500 ");
parseFloat(img_height) > 150 && parseFloat(img_height) < 250) {
// Verification que le nom du fichier est alpha numerique
/*var regExp = /^[A-Za-z0-9]+$/;
if (!regExp.test(event.target.files[0].name)) {
sethandleSubmission_bg_message(" Le nom de l'image comporte des caractères non alphanumériques");
sethandleSubmission_bg_api("false");
setLoading(false);
return
}*/
if (String(event.target.files[0].name).length > 50) {
@ -2611,14 +2602,16 @@ function UpdateParnterInfo(props) {
form.append("_id", selected_catalog_pub_config_id);
form.append("banniere_img", img_bg_file);
//console.log(" form == ", form);
// console.log("Add_Update_Catalog_Pub_Banniere form == ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_Partner_Catalog_Pub_Config/";
// console.log("myurl== ", myurl);
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
//console.log(" In Add_Update_Catalog_Pub_Banniere res.data.status = " + res.data.status);
// console.log(" In Add_Update_Catalog_Pub_Banniere res.data.status = " + res.data.status);
//console.log(" In Add_Update_Catalog_Pub_Banniere res.data.message r_class = " + res.data.message);
if (String(res.data.status) === String("true")) {
@ -2648,7 +2641,7 @@ function UpdateParnterInfo(props) {
setLoading(false);
console.warn('UpdateStagiaireData : Not good man :( Add_Update_Catalog_Pub_Banniere = ' + error);
setAdd_Update_Catalog_Pub_Banniere_api("false");
alert(" Impossible de supprimer la bannière ");
alert(" Impossible de mettre à jour la bannière ");
})
}
@ -3454,7 +3447,7 @@ function UpdateParnterInfo(props) {
</div>}
{String(submenu).trim() === "submenu_donnee_catalog_pub" && <div className="training_data">
<h3> Configuration du Catalogue public </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Configuration du Catalogue public </h3>
<div className="partner_catalog_pub">
@ -4756,7 +4749,7 @@ function UpdateParnterInfo(props) {
{Partner_Catalog_Pub_banniere && String(Partner_Catalog_Pub_banniere).length > 20 && <div className="div_row" style={{ "border": "None" }}>
Bannière actuelle : <br />
<img src={Partner_Catalog_Pub_banniere} alt={""} className="img_bg_file_css" /> zzzz
<img src={Partner_Catalog_Pub_banniere} alt={""} className="img_bg_file_css" />
<br />
<br />
<Button variant="contained" className="btn_enreg" onClick={Delete_Catalog_Pub_Banniere_Img}>Supprimer Bannière
@ -5471,7 +5464,10 @@ function UpdateParnterInfo(props) {
&nbsp;
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }} onChange={DataUpdated}>
<div style={{ display: 'flex', flexDirection: 'row', gap: '20px', width: '100%', flexWrap: 'wrap', justifyContent: 'left' }} onChange={DataUpdated}>
{String(is_partner_admin_account) === "1" && <TextField
required
@ -5630,8 +5626,8 @@ function UpdateParnterInfo(props) {
<TextField
name="adr_street"
label="Adresse"
className="texte_area_adress"
sx={{ m: 1, width: '90%' }}
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
@ -5690,270 +5686,265 @@ function UpdateParnterInfo(props) {
value={p_adr_country}
onChange={(e) => setp_adr_country(e.target.value)}
/>
{String(is_partner_admin_account) === "1" && <div>
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="div_row_gauche">
<div className="titre1"> Votre logo </div>
<div className="div_row_bis" style={{ "marginBottom": "10px", "marginTop": "1rem" }} >
<div className="div_row_gauche_image">
<img class="img_class_logo" src={userimgclassprofil} /><br />
<TextField
required
name="num_nda"
label="Numéro NDA"
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<AccountCircle />
</InputAdornment>
),
}}
value={p_num_nda}
onChange={(e) => setp_num_nda(e.target.value)}
/>
{fields1desabled == true && String(myqualiopi) !== "1" &&
<TextField
name="isqualiopi"
label="Qualiopi"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(myqualiopi) === "1" &&
<TextField
name="isqualiopi"
label="Qualiopi"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="isqualiopi"
label="Qualiopi"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={myqualiopi}
onChange={handleChangequaliopi}
>{qualiopi.map((option) => (
<MenuItem key={option.value} value={option.value}>
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
{fields1desabled == true && String(mydatadock) !== "1" &&
<TextField
name="isdatadock"
label="Datadock"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(mydatadock) === "1" &&
<TextField
name="isdatadock"
label="Datadock"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="isdatadock"
label="Datadock"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={mydatadock}
onChange={handleChangedatadock}
>{datadock.map((option) => (
<MenuItem key={option.value} value={option.value}>
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
{fields1desabled == true && String(mycertifvoltaire) !== "1" &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(mycertifvoltaire) === "1" &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={mycertifvoltaire}
onChange={handleChangecertifvoltaire}
>{certifvoltaire.map((option) => (
<MenuItem key={option.value} value={option.value} >
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
{String(is_partner_admin_account) === "1" &&
<div style={{ display: 'flex', flexDirection: 'row', gap: '20px', width: '100%', flexWrap: 'wrap', justifyContent: 'left' }} onChange={DataUpdated}>
<div className="div_row_gauche" style={{ "width": '48%' }} >
<div className="titre1"> Votre logo </div>
<div className="div_row_bis" style={{ "marginBottom": "10px", "marginTop": "1rem" }} >
<div className="div_row_gauche_image">
<img class="img_class_logo" src={userimgclassprofil} /><br />
</div>
<div className="div_row_droite_image">
<input type="file" id="files_img_class" accept="image/*" onChange={imglogoclasschangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{String(userformedited) === "1" && <nav> <label for="files_img_class" className="bton_image_class">Charger un logo</label><br />
{String(isimgclassSelected_recid) && String(isimgclassSelected_recid).length > 3 &&
<nav className="bton_supprime_image_class" onClick={removeRecodedLogoImage}>Supprimer le logo<br /> </nav>
}
</nav>}
{/*isimgclassSelected && <Button variant="outlined" onClick={sendClassImage} className="bton_image_class">Enregistrer image</Button>*/}
{isimgclassdeleted && String(isimgclassdeleted) === "1" && <nav className="koUpdateData"> {isimgclassdeleted_message}</nav>}
{isimgclassdeleted && String(isimgclassdeleted) === "0" && <nav className="okUpdateData"> {isimgclassdeleted_message}</nav>}
{isimgclassSelected && String(isimgclassSaved) === "0" && <nav className="koUpdateData"> {isimgclassSaved_message}</nav>}
</div>
</div>
<div className="div_row_droite_image">
<input type="file" id="files_img_class" accept="image/*" onChange={imglogoclasschangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{String(userformedited) === "1" && <nav> <label for="files_img_class" className="bton_image_class">Charger un logo</label><br />
{String(isimgclassSelected_recid) && String(isimgclassSelected_recid).length > 3 &&
<nav className="bton_supprime_image_class" onClick={removeRecodedLogoImage}>Supprimer le logo<br /> </nav>
}
</nav>}
{/*isimgclassSelected && <Button variant="outlined" onClick={sendClassImage} className="bton_image_class">Enregistrer image</Button>*/}
{isimgclassdeleted && String(isimgclassdeleted) === "1" && <nav className="koUpdateData"> {isimgclassdeleted_message}</nav>}
{isimgclassdeleted && String(isimgclassdeleted) === "0" && <nav className="okUpdateData"> {isimgclassdeleted_message}</nav>}
{isimgclassSelected && String(isimgclassSaved) === "0" && <nav className="koUpdateData"> {isimgclassSaved_message}</nav>}
<div className="div_row_bis tips_img_class">
<li>
L'image doit etre carrée.
</li>
<li>
Les formats autorisés sont : <i>['jpg', 'jpeg', 'png', 'jpe', 'webp']</i>
</li>
<li>
Les dimensions recommandées: 128pixels X 128pixels -- 144pixels X 144pixels -- 168pixels X 168pixels<br />
Les dimensions maximales sont de 256pixels X 256pixels
</li>
<li>
La taille de l'image ne doit pas dépasser 1 mega octet
</li>
</div>
</div>
<div className="div_row_bis tips_img_class">
<li>
L'image doit etre carrée.
</li>
<li>
Les formats autorisés sont : <i>['jpg', 'jpeg', 'png', 'jpe', 'webp']</i>
</li>
<li>
Les dimensions recommandées: 128pixels X 128pixels -- 144pixels X 144pixels -- 168pixels X 168pixels<br />
Les dimensions maximales sont de 256pixels X 256pixels
</li>
<li>
La taille de l'image ne doit pas dépasser 1 mega octet
</li>
</div>
</div>
<div className="div_row_droite" style={{ "width": '48%' }}>
<div className="titre1"> Votre cachet </div>
<div className="div_row_bis" style={{ "marginBottom": "10px", "marginTop": "1rem" }} >
<div className="div_row_gauche_image">
<img class="img_class_logo" src={isimgcachet} /><br />
<div className="div_row_droite">
<div className="titre1"> Votre cachet </div>
<div className="div_row_bis" style={{ "marginBottom": "10px", "marginTop": "1rem" }} >
<div className="div_row_gauche_image">
<img class="img_class_logo" src={isimgcachet} /><br />
</div>
<div className="div_row_droite_image">
<input type="file" id="files_img_cachet_class" accept="image/*" onChange={imgcachetchangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{String(userformedited) === "1" && <nav> <label for="files_img_cachet_class" className="bton_image_class">Charger un cachet</label><br />
{String(isimgcachetSelected_recid) && String(isimgcachetSelected_recid).length > 3 &&
<nav className="bton_supprime_image_class" onClick={removeRecodedCachetImage}>Supprimer le cachet </nav>}
<br /> </nav>}
{/*isimgclassSelected && <Button variant="outlined" onClick={sendClassImage} className="bton_image_class">Enregistrer image</Button>*/}
{isimgcachetdeleted && String(isimgcachetdeleted) === "1" && <nav className="koUpdateData"> {isimgcachetdeleted_message}</nav>}
{isimgcachetdeleted && String(isimgcachetdeleted) === "0" && <nav className="okUpdateData"> {isimgcachetdeleted_message}</nav>}
{isimgcachetSelected && String(isimgcachetSaved) === "0" && <nav className="koUpdateData"> {isimgcachetSaved_message}</nav>}
</div>
</div>
<div className="div_row_droite_image">
<input type="file" id="files_img_cachet_class" accept="image/*" onChange={imgcachetchangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{String(userformedited) === "1" && <nav> <label for="files_img_cachet_class" className="bton_image_class">Charger un cachet</label><br />
{String(isimgcachetSelected_recid) && String(isimgcachetSelected_recid).length > 3 &&
<nav className="bton_supprime_image_class" onClick={removeRecodedCachetImage}>Supprimer le cachet </nav>}
<br /> </nav>}
{/*isimgclassSelected && <Button variant="outlined" onClick={sendClassImage} className="bton_image_class">Enregistrer image</Button>*/}
{isimgcachetdeleted && String(isimgcachetdeleted) === "1" && <nav className="koUpdateData"> {isimgcachetdeleted_message}</nav>}
{isimgcachetdeleted && String(isimgcachetdeleted) === "0" && <nav className="okUpdateData"> {isimgcachetdeleted_message}</nav>}
{isimgcachetSelected && String(isimgcachetSaved) === "0" && <nav className="koUpdateData"> {isimgcachetSaved_message}</nav>}
<div className="div_row_bis tips_img_class">
<li>
L'image doit etre carrée.
</li>
<li>
Les formats autorisés sont : <i>['jpg', 'jpeg', 'png', 'jpe', 'webp']</i>
</li>
<li>
Les dimensions recommandées: 128pixels X 128pixels -- 144pixels X 144pixels -- 168pixels X 168pixels<br />
Les dimensions maximales sont de 256pixels X 256pixels
</li>
<li>
La taille de l'image ne doit pas dépasser 1 mega octet
</li>
</div>
</div>
<div className="div_row_bis tips_img_class">
<li>
L'image doit etre carrée.
</li>
<li>
Les formats autorisés sont : <i>['jpg', 'jpeg', 'png', 'jpe', 'webp']</i>
</li>
<li>
Les dimensions recommandées: 128pixels X 128pixels -- 144pixels X 144pixels -- 168pixels X 168pixels<br />
Les dimensions maximales sont de 256pixels X 256pixels
</li>
<li>
La taille de l'image ne doit pas dépasser 1 mega octet
</li>
</div>
</div>
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="titre1"> Certification </div>
<div className="div_row">
<TextField
required
name="num_nda"
label="Numéro NDA"
className="texte_area"
sx={{ m: 1, width: '48%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<AccountCircle />
</InputAdornment>
),
}}
value={p_num_nda}
onChange={(e) => setp_num_nda(e.target.value)}
/>
{fields1desabled == true && String(myqualiopi) !== "1" &&
<TextField
name="isqualiopi"
label="Qualiopi"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(myqualiopi) === "1" &&
<TextField
name="isqualiopi"
label="Qualiopi"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="isqualiopi"
label="Qualiopi"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={myqualiopi}
onChange={handleChangequaliopi}
>{qualiopi.map((option) => (
<MenuItem key={option.value} value={option.value}>
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
</div>
<div className="div_row">
</div>}
</div>
{fields1desabled == true && String(mydatadock) !== "1" &&
<TextField
name="isdatadock"
label="Datadock"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(mydatadock) === "1" &&
<TextField
name="isdatadock"
label="Datadock"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="isdatadock"
label="Datadock"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={mydatadock}
onChange={handleChangedatadock}
>{datadock.map((option) => (
<MenuItem key={option.value} value={option.value}>
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
{fields1desabled == true && String(mycertifvoltaire) !== "1" &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Non"
/>
}
{fields1desabled == true && String(mycertifvoltaire) === "1" &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
className="texte_area"
sx={{ m: 1, width: '48%' }}
value="Oui"
/>
}
{fields1desabled !== true &&
<TextField
name="iscertifvoltaire"
label="Certificat Voltaire"
select
className="texte_area"
sx={{ m: 1, width: '48%' }}
value={mycertifvoltaire}
onChange={handleChangecertifvoltaire}
>{certifvoltaire.map((option) => (
<MenuItem key={option.value} value={option.value} >
{option.label} &nbsp; <br />
</MenuItem>
))}
</TextField>
}
</div>
</div>}
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="titre1"> Info Contact </div>
<div className="titre1"> Info Contact </div>
<div style={{ display: 'flex', flexDirection: 'row', gap: '20px', width: '100%', flexWrap: 'wrap', justifyContent: 'left' }} onChange={DataUpdated}>
<TextField
name="contact_nom"
@ -6023,7 +6014,9 @@ function UpdateParnterInfo(props) {
<div className="koUpdateData" style={{ "color": "orange", "textAlign": "center" }}> /!\ Pensez à enregistrer les modifications</div>
</div>}
<div className="div_row22">
</div>
<div className="div_row22">
{fields1desabled == false && <div className="div_row">
<div className="div_row_gauche">
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={RecordData}>Enregistrer</Button>
@ -6039,9 +6032,12 @@ function UpdateParnterInfo(props) {
}
</div>
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="titre1"> Accès E-Learning </div>
<div className="div_row"> &nbsp;</div>
<div className="titre1"> Accès E-Learning </div>
<div style={{ display: 'flex', flexDirection: 'row', gap: '20px', width: '100%', flexWrap: 'wrap', justifyContent: 'left' }} onChange={DataUpdated}>
<TextField
name="contact_login_elearning"
label="E-Learning Login"
@ -6077,11 +6073,7 @@ function UpdateParnterInfo(props) {
/>
</Box>
</div>
</div>}

View File

@ -363,7 +363,7 @@ function UpdateUserGoals(props) {
toolbar: 'undo redo | casechange blocks | bold italic backcolor | ' +
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
content_style: 'body { font-family:DM Sans,sans-serif; font-size:14px; }'
}}
/>

View File

@ -209,7 +209,7 @@ function UpdateUserProfil(props) {
<div className="updateuserprofil">
<h3> Votre profils </h3>
<h3 style={{ fontFamily:'DM Sans' }}> Votre profils </h3>
{String(recorddata_api) === String("true") && <div className="okUpdateData"> Le profil a été ajouté/mise à jour </div>}

View File

@ -49,7 +49,7 @@ const LogoCloud = () => {
<div className='new_a_propos_2025'>
<div className="LogoCloud_block1" >
<h2 className="LogoCloud_h2">
1000+ institutions éducatifs ont confiance en Mysy Training
50+ Organismes de Formation ont confiance en Mysy Training
</h2>
<div className='block_logo_client'>

View File

@ -40,7 +40,7 @@ const New_C_A_Propos_2025 = (props) => {
</div>
<div className="title_and_cat_title_text2">
MySy Training combine innovation et expertise pour transformer la manière dont vous formez et gérez votre établissement. </div>
MySy Training combine innovation et expertise pour transformer la manière dont vous formez et gérez votre établissement. </div>
</div>
<div className="title_and_cat_title_cat">
@ -77,7 +77,7 @@ const New_C_A_Propos_2025 = (props) => {
<VisionSection />
<KeyMetrics />
{/* <KeyMetrics /> */}
<Features />

View File

@ -2,26 +2,24 @@ import React, { useRef, useState, useEffect } from "react";
import "./new_s_detail_formation_2025.css";
import { useParams } from 'react-router-dom'
import axios from "axios";
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { Helmet } from "react-helmet";
import 'react-slideshow-image/dist/styles.css'
import { Fade } from 'react-slideshow-image';
import slideimg1 from "../../mysy_img/education.jpg";
import slideimg4 from "../../mysy_img/mysy_img.png";
import img_met_program from "../../mysy_img/met_programmation.jpg";
import img_met_hotel from "../../mysy_img/met_hotel.jpg";
import img_met_graphisme from "../../mysy_img/metier_graphisme.jpg";
import img_met_autre from "../../mysy_img/met_autre.jpg";
import img_met_digital from "../../mysy_img/met_digital.jpg";
import img_met_management from "../../mysy_img/met_management.jpg";
import img_met_projet from "../../mysy_img/met_projet.jpg";
import img_met_market from "../../mysy_img/met_market.jpg";
import img_met_autre2 from "../../mysy_img/met_autre2.jpg";
import img_met_dev_perso from "../../mysy_img/metier_dev_perso.jpg";
import img_met_rh from "../../mysy_img/met_rh.jpg";
@ -40,18 +38,14 @@ import Social_Fa_icon from '../../img_new_design_2025/social_i_Fa.png';
import { Button, } from "reactstrap";
import { useHistory } from "react-router-dom";
import { useCookies } from "react-cookie";
import { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from "react-share";
import { SocialIcon } from 'react-social-icons';
import { confirmAlert } from 'react-confirm-alert';
//import { Rating } from 'react-simple-star-rating';
import Rating from '@mui/material/Rating';
import parse from 'html-react-parser';
import Inscription from "./../Inscription_Information";
import SendIcon from '@mui/icons-material/Send';
import mysy_logo2 from "../../mysy_img2/Logo_MySy.png"
import { FaSearch, FaRegArrowAltCircleDown, FaRegArrowAltCircleUp } from 'react-icons/fa';
import { areOptionsEqual } from "@mui/base";
import { borderRadius, style } from "@mui/system";
import Accordion from '@mui/material/Accordion';
import AccordionDetails from '@mui/material/AccordionDetails';
@ -65,10 +59,6 @@ import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import Box from '@mui/material/Box';
import TextField from '@mui/material/TextField';
import DescriptionIcon from '@mui/icons-material/Description';
const New_C_Detail_Formation_2025 = (props) => {
const { classId, action } = useParams();
@ -87,7 +77,6 @@ const New_C_Detail_Formation_2025 = (props) => {
const [userIp, setuserIp] = useState("");
const [mynote, setmynote] = useState(0);
const [userconnected, setuserconnected] = useState("0");
const [someoneconnected, setsomeoneconnected] = useState("0");
const [partnerconnected, setpartnerconnected] = useState("0");
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
const [cookie_part, setCookie_part, removeCookie_part] = useCookies(['tokenmysypart']);
@ -1834,8 +1823,8 @@ const New_C_Detail_Formation_2025 = (props) => {
id={val._id}
>
<Typography sx={{ color: 'text.secondary' }}>
{val.titre}
<Typography sx={{ color: 'text.secondary', }}>
{val.titre}
</Typography>
</AccordionSummary>
<AccordionDetails>
@ -2227,7 +2216,7 @@ const New_C_Detail_Formation_2025 = (props) => {
<br />
{DetailTraining["tab_ue_detail_data"] && DetailTraining["tab_ue_detail_data"].length > 0 && < div className="block_info_page_pave_title_desc_long_text" >
<div className="block_info_page_pave_title_desc_title">
Modules
Modules
</div>
@ -2244,7 +2233,7 @@ const New_C_Detail_Formation_2025 = (props) => {
id={val._id}
>
<Typography sx={{ color: 'text.secondary' }}>
<Typography sx={{ color: 'text.secondary', fontWeight:'500' }}>
{val.titre}
</Typography>
</AccordionSummary>

View File

@ -3111,7 +3111,7 @@
align-items: center;
padding: 12px 16px;
height: 44px;
/* Foundation /Blue-Grey/Light :active */
@ -3141,7 +3141,7 @@
}
.sticky_cats_buton_info_txt {
height: 30px;
font-family: 'Albert Sans';
@ -3697,7 +3697,7 @@
.sticky_img_hilight1 {
/* Auto layout */
width: 100%;
padding-top: 5px;
padding-bottom: 5px;
}
@ -5221,7 +5221,7 @@
align-items: center;
padding: 12px 16px;
height: 44px;
/* Foundation /Blue/Normal */
@ -5294,7 +5294,7 @@
align-items: center;
padding: 12px 16px;
height: 44px;
/* Foundation /Blue-Grey/Light :active */
@ -5324,7 +5324,7 @@
}
.sticky_cats_buton_info_txt {
height: 30px;
font-family: 'Albert Sans';
@ -5882,7 +5882,7 @@
.sticky_img_hilight1 {
/* Auto layout */
width: 100%;
padding-top: 5px;
padding-bottom: 5px;
}
@ -6897,24 +6897,7 @@
.block_info_page_pave_title_desc_title {
/*
width: 100%;
height: 40px;
font-family: Roboto, Verdana, Georgia, Arial, 'Times New Roman';
font-style: normal;
font-weight: 500;
font-size: 20px;
line-height: 40px;
font-feature-settings: 'liga' off;
color: white;
flex: none;
order: 0;
align-self: stretch;
flex-grow: 0;
background-color: #20BFA9;
text-align: center;
*/
height: 24px;
@ -6967,54 +6950,34 @@
}
.programme_block {
/* max-height: 18rem;
min-height: 10rem;
overflow: auto;
padding: 10px;
font-family: Roboto, Verdana, Georgia, Arial, 'Times New Roman';
line-height: 30px;
font-size: 14px;*/
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 180%;
/* or 26px */
font-feature-settings: 'liga' off;
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 160%;
/* or 26px */
font-feature-settings: 'liga' off;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
/* Inside auto layout */
flex: none;
order: 1;
align-self: stretch;
flex-grow: 0;
padding: 0px;
/* Inside auto layout */
flex: none;
order: 1;
align-self: stretch;
flex-grow: 0;
}
.description_block {
/* max-height: 13rem;
min-height: 8rem;
overflow: auto;
padding: 10px;
font-family: Roboto, Verdana, Georgia, Arial, 'Times New Roman';
line-height: 30px;
font-size: 14px;*/
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 180%;
line-height: 160%;
/* or 26px */
font-feature-settings: 'liga' off;
@ -7027,38 +6990,29 @@
order: 1;
align-self: stretch;
flex-grow: 0;
padding: 0px;
}
.objectif_block {
/* max-height: 11rem;
min-height: 5rem;
overflow: auto;
padding: 10px;
font-family: Roboto, Verdana, Georgia, Arial, 'Times New Roman';
line-height: 30px;
font-size: 14px;*/
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 180%;
/* or 26px */
font-feature-settings: 'liga' off;
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 160%;
/* or 26px */
font-feature-settings: 'liga' off;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
/* Foundation /Blue-Grey/Normal */
color: #4B5162;
/* Inside auto layout */
flex: none;
order: 1;
align-self: stretch;
flex-grow: 0;
padding: 0px;
/* Inside auto layout */
flex: none;
order: 1;
align-self: stretch;
flex-grow: 0;
}
.session_block {
@ -7510,7 +7464,7 @@
}
.sticky_cats_buton_info_txt {
height: 30px;
font-family: 'Albert Sans';

View File

@ -186,17 +186,17 @@ const New_C_Fonctionalites_2025 = (props) => {
]
]
return (
<div className="new_fonctionalites_2025">
<Helmet>
<title>Logiciel de gestion pour Organisme de formation : Gestion Administrative, CRM, LMS, Marketplace, découvrez les Fonctionnalités et Modules du logiciel de gestion des organismes de formation</title>
<meta name="description" content="Avec notre logiciel Tout-en-Un, Nous automatisons les étapes Qualiopi (Inscription, Documents personnalisés, Les émargements sécurisés, Les évaluations, etc). Votre Le bilan pédagogique et financier est généré automatiquement." />
<title>Gérez votre OF sans stress : tout est inclus avec MySy Training</title>
<meta name="description" content="Un seul logiciel, zéro surprise : MySy Training gère tout pour votre OF, et toutes les options sont incluses. Pas de blabla, que de l'efficacité." />
<meta name="robots" content="index,follow" />
<meta name="title" content="Gestion Administrative, CRM, LMS, Marketplace, découvrez les Fonctionnalités et Modules du logiciel de gestion des organismes de formation" />
<meta name="title" content="Gérez votre OF sans stress : tout est inclus avec MySy Training" />
<link rel="canonical" href={window.location.href} />
</Helmet>

View File

@ -77,10 +77,10 @@ const FooterSection = ({ logoSrc, address, email, phone }) => {
<div className="footer-bottom">
<div className="legal-links">
<a href="#">Privacy policy</a>
<a href="#">Cookies</a>
<a href="#">Legal</a>
<a href="#">Accessibility</a>
<a href='/sample/MYSY_POLITIQUE_CONFIDENTIALITE.pdf' download target="_blank">| Confidentialité | Cookies | données personnelles &nbsp; </a>
<a href='/sample/MYSY_MENTIONS_LEGALES.pdf' download target="_blank">| Mentions légales </a>
<a href='/sample/MYSY_CGU.pdf' download target="_blank">| CGU </a>
<a href='/sample/Conditions_Generales-Vente_CGV.pdf' download target="_blank">| CGV </a>
<span className="copyright">Copyright © {current_year} MySy Training Technology. Tous droits réservés.</span>
</div>

View File

@ -2,7 +2,7 @@ import React from 'react';
import TestimonialSection from './TestimonialSection';
import CallToActionSection from './CallToActionSection';
import FooterSection from './FooterSection';
const Layout = () => {
return (
<div className="footer_automatic_files">

View File

@ -240,6 +240,7 @@
line-height: 160%;
color: #171717;
margin: 0;
height: 250px;
}
.client-info {
@ -397,6 +398,7 @@
line-height: 160%;
color: #171717;
margin: 0;
height: 200px;
}
.client-info {
@ -554,6 +556,7 @@
line-height: 160%;
color: #171717;
margin: 0;
height: 200px;
}
.client-info {

Some files were not shown because too many files have changed in this diff Show More