01/02/2025 - 20h
parent
e7fef8373f
commit
73efaa3c38
|
@ -177,6 +177,13 @@
|
|||
<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>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>1.0000</priority>
|
||||
</url>
|
||||
|
||||
|
||||
|
||||
</urlset>
|
|
@ -56,6 +56,7 @@ import AutoAwesomeOutlinedIcon from '@mui/icons-material/AutoAwesomeOutlined';
|
|||
import AutoFixHighOutlinedIcon from '@mui/icons-material/AutoFixHighOutlined';
|
||||
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
|
||||
import MySyIA from "./Module_IA";
|
||||
|
||||
import { makeStyles } from "@material-ui/core/styles";
|
||||
import Paper from '@material-ui/core/Paper';
|
||||
import Draggable from 'react-draggable';
|
||||
|
@ -3949,7 +3950,6 @@ const AddClassManual = (props) => {
|
|||
|
||||
PaperProps={{
|
||||
|
||||
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
|
|
|
@ -993,10 +993,6 @@ const Article = (props) => {
|
|||
|
||||
|
||||
<div className="div_row">
|
||||
|
||||
|
||||
|
||||
|
||||
<div className="div_row_border" >
|
||||
<div style={{ "width": "100%", textAlign: "center" }}>
|
||||
|
||||
|
|
|
@ -1,53 +1,25 @@
|
|||
import React, { useRef, useState, useEffect } from "react";
|
||||
import axios from "axios";
|
||||
|
||||
import { useParams } from 'react-router-dom'
|
||||
import { Button, } from "reactstrap";
|
||||
import { Helmet } from "react-helmet";
|
||||
import { useCookies } from "react-cookie";
|
||||
|
||||
import { confirmAlert } from 'react-confirm-alert';
|
||||
//mport slideimg4 from "../mysy_img/mysy_img.png";
|
||||
import 'react-slideshow-image/dist/styles.css'
|
||||
import slideimg1 from "../mysy_img/Image_article2.jpg";
|
||||
//import slideimg4 from "../mysy_img/Image_article1.png";
|
||||
import Articles from "../components/Article";
|
||||
|
||||
import 'react-discussion-board/dist/index.css'
|
||||
|
||||
import { useForm } from 'react-hook-form';
|
||||
import { Editor } from "react-draft-wysiwyg";
|
||||
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
|
||||
import parse from 'html-react-parser'
|
||||
import { RichTextEditor } from '@mantine/rte';
|
||||
import LogoutOutlinedIcon from '@mui/icons-material/LogoutOutlined';
|
||||
import logowhite from "../mysy_img/MYSY-LOGO-WHITE.png";
|
||||
import Footer from "./Fotter";
|
||||
import Fotter_v3 from "./Fotter_v3";
|
||||
import Header from "./Header";
|
||||
|
||||
import img_met_digital from "../mysy_img/met_digital.jpg";
|
||||
import connect_white from "../mysy_img/connect_white_v2.png";
|
||||
import connect_green from "../mysy_img/connect_green.png";
|
||||
import { useHistory } from "react-router-dom";
|
||||
import { getCookie, removeCookie } from 'react-use-cookie';
|
||||
|
||||
import MenuItem from "@material-ui/core/MenuItem";
|
||||
import Menu from "@material-ui/core/Menu";
|
||||
|
||||
import { useLocation } from "react-router-dom";
|
||||
|
||||
|
||||
const DisplayDetailArticle_new_v2 = (props) => {
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
|
||||
const { articleId } = useParams();
|
||||
const [result, setResult] = useState("");
|
||||
const [commentresult, setcommentresult] = useState();
|
||||
const [myApicommentResponse, setmyApicommentResponse] = useState();
|
||||
|
||||
const [myApiResponse, setmyApiResponse] = useState("false");
|
||||
const [DetailArticleAvis, setDetailArticleAvis] = useState([]);
|
||||
const [closepopup, setclosepopup] = useState(0);
|
||||
const [country_code, setcountry_code] = useState("");
|
||||
const [country_name, setcountry_name] = useState("");
|
||||
const [city, setcity] = useState("");
|
||||
|
@ -59,27 +31,10 @@ const DisplayDetailArticle_new_v2 = (props) => {
|
|||
const [userIp, setuserIp] = useState("");
|
||||
const [action, setaction] = useState("");
|
||||
const [userconnected, setuserconnected] = useState("");
|
||||
const [mynote, setmynote] = useState(0);
|
||||
const stored_user = cookie.tokenmysych;
|
||||
const [qualityrating, setqualityrating] = useState("");
|
||||
const [avisrating, setavisrating] = useState("");
|
||||
const [noterating, setnoterating] = useState("");
|
||||
const [makecomment, setmakecomment] = useState("1");
|
||||
|
||||
const random1 = Math.floor(Math.random() * 10);
|
||||
const random2 = Math.floor(Math.random() * 10);
|
||||
const [editorState, setEditorState] = useState(null);
|
||||
|
||||
const [windowWidth, setwindowWidth] = useState(null);
|
||||
const [windowheight, setwindowheight] = useState(null);
|
||||
|
||||
const [text_value, settext_value] = useState("");
|
||||
|
||||
const [display_header_img, setdisplay_header_img] = useState("");
|
||||
|
||||
const history = useHistory();
|
||||
|
||||
|
||||
const {
|
||||
register,
|
||||
handleSubmit,
|
||||
|
@ -88,166 +43,6 @@ const DisplayDetailArticle_new_v2 = (props) => {
|
|||
} = useForm();
|
||||
|
||||
|
||||
const onSubmit = async (data) => {
|
||||
const { name, email, subject, message } = data;
|
||||
|
||||
var total = "??";
|
||||
if (document.getElementsByName("sommerandom")[0].value) {
|
||||
total = document.getElementsByName("sommerandom")[0].value;
|
||||
}
|
||||
|
||||
|
||||
var calcaul_total = parseInt(random1) + parseInt(random2);
|
||||
|
||||
|
||||
//alert(" le total saisi = " + total + " la val cacule est " + calcaul_total);
|
||||
|
||||
if (parseInt(total) != parseInt(calcaul_total)) {
|
||||
alert(" Le total dans la zone 'je ne suis pas un robot' est incohérent. Recommencez svp :) !!!");
|
||||
return;
|
||||
}
|
||||
|
||||
confirmPostCommment();
|
||||
|
||||
};
|
||||
|
||||
|
||||
function confirmPostCommment() {
|
||||
confirmAlert({
|
||||
title: 'Confirmer le commentaire?',
|
||||
message: '',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
onClick: () => SendMessage()
|
||||
},
|
||||
{
|
||||
label: 'Non',
|
||||
onClick: () => { return }
|
||||
|
||||
}
|
||||
],
|
||||
closeOnEscape: false,
|
||||
closeOnClickOutside: false,
|
||||
keyCodeForClose: [8, 32],
|
||||
willUnmount: () => { },
|
||||
afterClose: () => { },
|
||||
onClickOutside: () => { },
|
||||
onKeypress: () => { },
|
||||
onKeypressEscape: () => { },
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function clearComment(e) {
|
||||
////console.log("contacter " + sender_mail + " - " + sender_tel + " - ")
|
||||
document.getElementsByName("message")[0].value = "";
|
||||
document.getElementsByName("name")[0].value = "";
|
||||
document.getElementsByName("email")[0].value = "";
|
||||
}
|
||||
|
||||
function SendMessage(e) {
|
||||
|
||||
var sender_mail = "";
|
||||
var sender_tel = "";
|
||||
var token = "";
|
||||
|
||||
|
||||
|
||||
////console.log("contacter " + sender_mail + " - " + sender_tel + " - ")
|
||||
var mymessage = document.getElementsByName("message")[0].value;
|
||||
var mysender_name = document.getElementsByName("name")[0].value;
|
||||
var mysender_email = document.getElementsByName("email")[0].value;
|
||||
|
||||
|
||||
//alert("contacter "+mysender_email+" - "+mymessage+" - url = "
|
||||
//+process.env.REACT_APP_API_URL+" - user_ip ="+IPv4+" - "+latitude);
|
||||
|
||||
var re = /\S+@\S+\.\S+/;
|
||||
if (re.test(mysender_email) == false) {
|
||||
alert("l'email est incorrecte");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/add_user_message/";
|
||||
var form = new FormData();
|
||||
form.append("type", "comment_article");
|
||||
form.append("recever_mail", "contact@mysy-training.com");
|
||||
form.append("recever_tel", "+33769203945");
|
||||
form.append("sender_mail", mysender_email);
|
||||
form.append("sender_tel", sender_tel);
|
||||
form.append("object", "");
|
||||
form.append("message", mymessage);
|
||||
form.append("sender_name", mysender_name);
|
||||
form.append("token", "");
|
||||
form.append("user_ip", IPv4);
|
||||
form.append("user_country_code", country_code);
|
||||
form.append("user_country_name", country_name);
|
||||
form.append("user_city", city);
|
||||
form.append("user_postal", postal);
|
||||
form.append("user_latitude", latitude);
|
||||
form.append("user_longitude", longitude);
|
||||
form.append("user_state", state);
|
||||
form.append("article_avis_url", articleId);
|
||||
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (String(res.data.status) === String("false")) {
|
||||
//console.log(" In test res.data.status = " + res.data.status);
|
||||
//console.log(" In test res.data.message = " + res.data.message);
|
||||
setmyApiResponse("false");
|
||||
}
|
||||
|
||||
else if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In test res.data.status (true) = " + res.data.status);
|
||||
//console.log(" In test res.data.message = " + res.data.message);
|
||||
document.getElementsByName("message")[0].value = "";
|
||||
document.getElementsByName("name")[0].value = "";
|
||||
document.getElementsByName("email")[0].value = "";
|
||||
setmakecomment("");
|
||||
}
|
||||
else {
|
||||
//console.log(" contact-nous statut = " + res.data.status);
|
||||
//console.log(" contact-nous res.data.message = " + res.data.message);
|
||||
setmyApiResponse("false");
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.warn('contact-nous Not good man :( mysearchtext = ');
|
||||
setmyApiResponse("false");
|
||||
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
const avisratingChanged = (newRating) => {
|
||||
setavisrating(String(newRating));
|
||||
var humeur = ""
|
||||
if (newRating < 2) {
|
||||
humeur = ":("
|
||||
} else if (newRating < 4) {
|
||||
humeur = ":)"
|
||||
} else if (newRating >= 4) {
|
||||
humeur = ":) :)"
|
||||
}
|
||||
var text = "Une note de " + String(newRating) + ", merci. Dites nous en plus " + humeur + " ?"
|
||||
|
||||
document.getElementsByName("avis")[0].value = text;
|
||||
};
|
||||
|
||||
const noteratingChanged = (newRating) => {
|
||||
var text = String(newRating)
|
||||
document.getElementsByName("note")[0].value = text;
|
||||
setnoterating(String(newRating));
|
||||
};
|
||||
|
||||
|
||||
const [pagecanoniktitle, setpagecanoniktitle] = useState("");
|
||||
const [pagecanonikurl, setpagecanonikurl] = useState(window.location.host);
|
||||
const [article_img, setarticle_img] = useState("")
|
||||
|
@ -277,15 +72,12 @@ const DisplayDetailArticle_new_v2 = (props) => {
|
|||
// Display_article_comment();
|
||||
Get_3_Articles();
|
||||
|
||||
|
||||
|
||||
|
||||
//alert("stored_user = "+stored_user);
|
||||
if (typeof (articleId) === "undefined") {
|
||||
setaction("creation");
|
||||
} else {
|
||||
setaction("affichage");
|
||||
desablefield();
|
||||
|
||||
}
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
|
@ -293,12 +85,12 @@ const DisplayDetailArticle_new_v2 = (props) => {
|
|||
} else {
|
||||
setuserconnected("1");
|
||||
}
|
||||
setwindowWidth(window.innerWidth);
|
||||
setwindowheight(window.innerHeight);
|
||||
//setwindowWidth(window.innerWidth);
|
||||
// setwindowheight(window.innerHeight);
|
||||
|
||||
|
||||
//console.log(" articleId = " + articleId);
|
||||
}, [makecomment]);
|
||||
}, []);
|
||||
|
||||
|
||||
function Display(e) {
|
||||
|
@ -374,7 +166,6 @@ const DisplayDetailArticle_new_v2 = (props) => {
|
|||
}
|
||||
|
||||
const [Get_3_Articles_api, setGet_3_Articles_api] = useState();
|
||||
const [Get_3_Articles_message, setGet_3_Articles_message] = useState();
|
||||
const [Get_3_Articles_result, setGet_3_Articles_result] = useState([]);
|
||||
function Get_3_Articles(e) {
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_last_3_articles/";
|
||||
|
@ -416,525 +207,6 @@ const DisplayDetailArticle_new_v2 = (props) => {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
function Display_article_comment(e) {
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_user_message/";
|
||||
var form = new FormData();
|
||||
form.append("article_avis_url", articleId);
|
||||
form.append("type", "comment_article");
|
||||
|
||||
|
||||
//alert("myurl = "+myurl);
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
if (res.data.status != "False") {
|
||||
//console.log(" In test res.data.status = " + res.data.status);
|
||||
//console.log(" In test res.data.message = " + res.data.message);
|
||||
if (res.data.message.length > 0) {
|
||||
setmyApicommentResponse("True");
|
||||
}
|
||||
else {
|
||||
setmyApicommentResponse("False");
|
||||
}
|
||||
setcommentresult(res.data.message);
|
||||
|
||||
}
|
||||
else {
|
||||
//console.log(" In Erreur res.data.status = " + res.data.status);
|
||||
//console.log(" In Erreur res.data.message = " + res.data.message);
|
||||
setmyApicommentResponse("False");
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.warn('Not good man :( mysearchtext = ');
|
||||
setmyApicommentResponse("False");
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
function RecordArticle(e) {
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/add_articles_avis/";
|
||||
var form = new FormData();
|
||||
var title = document.getElementsByName("mytitle")[0].value;
|
||||
var url = document.getElementsByName("url")[0].value;
|
||||
//var quality = document.getElementsByName("quality")[0].value;
|
||||
var avis = text_value;
|
||||
var note = document.getElementsByName("note")[0].value;
|
||||
var postedby = ""
|
||||
var token = ""
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
postedby = document.getElementsByName("postedby")[0].value;
|
||||
} else {
|
||||
token = stored_user;
|
||||
}
|
||||
|
||||
if (postedby.length > 0) {
|
||||
var re = /\S+@\S+\.\S+/;
|
||||
if (re.test(postedby) == false) {
|
||||
alert("le champs 'Posté par' n'est pas une adresse email valide");
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
form.append("token", token);
|
||||
form.append("title_formation", title);
|
||||
form.append("qualite", "none");
|
||||
form.append("avis", avis);
|
||||
form.append("note", note);
|
||||
form.append("postedby", postedby);
|
||||
form.append("qualityrating", qualityrating);
|
||||
form.append("avisrating", avisrating);
|
||||
|
||||
|
||||
form.append("url_formation", url);
|
||||
form.append("user_ip", IPv4);
|
||||
form.append("user_country_code", country_code);
|
||||
form.append("user_country_name", country_name);
|
||||
form.append("user_city", city);
|
||||
form.append("user_postal", postal);
|
||||
form.append("user_latitude", latitude);
|
||||
form.append("user_longitude", longitude);
|
||||
form.append("user_state", state);
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
setResult(String(res.data.status));
|
||||
|
||||
if (String(res.data.status) == String("true")) {
|
||||
//console.log(" contact-nous statut = " + res.data.status);
|
||||
//console.log(" contact-nous res.data.message = " + res.data.message);
|
||||
setmyApiResponse(String(res.data.message))
|
||||
clearForm();
|
||||
}
|
||||
else {
|
||||
//console.log(" In test res.data.status = " + res.data.status);
|
||||
//console.log(" In test res.data.message = " + res.data.message);
|
||||
setmyApiResponse(String(res.data.message))
|
||||
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
console.warn('contact-nous Not good man :( mysearchtext = ');
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
function clearForm(e) {
|
||||
|
||||
document.getElementsByName("mytitle")[0].value = "";
|
||||
document.getElementsByName("url")[0].value = "";
|
||||
//document.getElementsByName("quality")[0].value = "";
|
||||
settext_value("");
|
||||
document.getElementsByName("note")[0].value = "";
|
||||
document.getElementsByName("postedby")[0].value = "";
|
||||
}
|
||||
|
||||
|
||||
function desablefield(e) {
|
||||
|
||||
|
||||
if (document.getElementsByName("mytitle")[0]) {
|
||||
document.getElementsByName("mytitle")[0].disabled = true;
|
||||
document.getElementsByName("mytitle")[0].style.backgroundColor = "#ECEFF1";
|
||||
}
|
||||
|
||||
if (document.getElementsByName("url")[0]) {
|
||||
document.getElementsByName("url")[0].disabled = true;
|
||||
document.getElementsByName("url")[0].style.backgroundColor = "#ECEFF1";
|
||||
}
|
||||
|
||||
|
||||
if (document.getElementsByName("avis")[0]) {
|
||||
document.getElementsByName("avis")[0].disabled = true;
|
||||
document.getElementsByName("avis")[0].style.backgroundColor = "#ECEFF1";
|
||||
}
|
||||
|
||||
|
||||
if (document.getElementsByName("note")[0]) {
|
||||
document.getElementsByName("note")[0].disabled = true;
|
||||
document.getElementsByName("note")[0].style.backgroundColor = "#ECEFF1";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function makecommentary(e) {
|
||||
setmakecomment("1");
|
||||
alert(" commentaire ");
|
||||
}
|
||||
|
||||
function CheckNote(e) {
|
||||
const val = e.target.value;
|
||||
|
||||
if (isNaN(val)) {
|
||||
//alert(val + " is not a number <br/> mynote = "+mynote);
|
||||
document.getElementById("note").value = mynote;
|
||||
} else {
|
||||
if (val > 5) {
|
||||
alert(" Valeur Maxi doit etre 5");
|
||||
document.getElementById("note").value = mynote;
|
||||
} else {
|
||||
setmynote(val);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function confirmpostarticle(e) {
|
||||
|
||||
|
||||
|
||||
var mytitle = document.getElementsByName("mytitle")[0].value;
|
||||
var url = document.getElementsByName("url")[0].value;
|
||||
//var quality = document.getElementsByName("quality")[0].value;
|
||||
var avis = text_value
|
||||
var note = document.getElementsByName("note")[0].value;
|
||||
var postedby = ""
|
||||
var token = ""
|
||||
|
||||
//alert("title = "+mytitle+" url = "+url+" document.getElementsByName(title)[0].value; ="+document.getElementsByName('title')[0].value);
|
||||
|
||||
if (mytitle.length < 5) {
|
||||
alert("le champs 'Titre' n'est pas correcte");
|
||||
return;
|
||||
}
|
||||
|
||||
if (url.length < 5) {
|
||||
alert("le champs 'lien de la formation' n'est pas correcte");
|
||||
return;
|
||||
}
|
||||
|
||||
if (avis.length <= 0) {
|
||||
alert("le champs 'avis' n'est pas correcte");
|
||||
return;
|
||||
}
|
||||
|
||||
if (note.length <= 0) {
|
||||
alert("le champs 'note' n'est pas correcte");
|
||||
return;
|
||||
}
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
postedby = document.getElementsByName("postedby")[0].value;
|
||||
|
||||
if (postedby.length <= 0) {
|
||||
alert("le champs 'Posté par' n'est pas correcte");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (postedby.length > 0) {
|
||||
var re = /\S+@\S+\.\S+/;
|
||||
if (re.test(postedby) === false) {
|
||||
alert("le champs 'Posté par' n'est pas une adresse email valide");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
confirmAlert({
|
||||
title: 'Confirmer la note',
|
||||
message: " ",
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
onClick: () => { RecordArticle() }
|
||||
},
|
||||
{
|
||||
label: 'Non',
|
||||
onClick: () => { return }
|
||||
|
||||
},
|
||||
|
||||
],
|
||||
closeOnEscape: false,
|
||||
closeOnClickOutside: false,
|
||||
keyCodeForClose: [8, 32],
|
||||
willUnmount: () => { },
|
||||
afterClose: () => { },
|
||||
onClickOutside: () => { },
|
||||
onKeypress: () => { },
|
||||
onKeypressEscape: () => { },
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
const fadeImages = [
|
||||
{
|
||||
url: slideimg1,
|
||||
},
|
||||
|
||||
{
|
||||
url: slideimg1,
|
||||
},
|
||||
];
|
||||
|
||||
const data = [
|
||||
{
|
||||
userId: '02b',
|
||||
comId: '017',
|
||||
fullName: 'Lily',
|
||||
userProfile: 'https://www.linkedin.com/in/riya-negi-8879631a9/',
|
||||
text: 'I think you have a point🤔',
|
||||
avatarUrl: 'https://ui-avatars.com/api/name=Lily&background=random',
|
||||
replies: []
|
||||
}
|
||||
]
|
||||
|
||||
const allPosts = [
|
||||
{
|
||||
profileImage:
|
||||
'https://www.rd.com/wp-content/uploads/2017/09/01-shutterstock_476340928-Irina-Bg.jpg',
|
||||
name: 'Jane Doe',
|
||||
content: '<p>Hello everyone!</p><p>How are you all doing?</p><p>-Jane</>',
|
||||
date: new Date('01 Jan 2020 01:12:00 GMT')
|
||||
},
|
||||
{
|
||||
profileImage:
|
||||
'https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500',
|
||||
name: 'John Doe',
|
||||
content:
|
||||
'<p>Raising say express had chiefly detract demands she. Quiet led own cause three him. Front no party young abode state up. Saved he do fruit woody of to. Met defective are allowance two perceived listening consulted contained. It chicken oh colonel pressed excited suppose to shortly. He improve started no we manners however effects. Prospect humoured mistress to by proposal marianne attended. Simplicity the far admiration preference everything. Up help home head spot an he room in Barton waited twenty always repair in within we do. An delighted offending curiosity my is dashwoods at. Boy prosperous increasing surrounded companions her nor advantages sufficient put. John on time down give meet help as of. Him waiting and correct believe now cottage she another. Vexed six shy yet along learn maids her tiled. Through studied shyness evening bed him winding present. Become excuse hardly on my thirty it wanted. </p>',
|
||||
date: new Date('01 Jan 2020 09:12:00 GMT')
|
||||
}
|
||||
]
|
||||
|
||||
const [posts, setPosts] = useState(allPosts)
|
||||
|
||||
const submitPost = (text) => {
|
||||
const curDate = new Date()
|
||||
|
||||
setPosts([
|
||||
...posts,
|
||||
{
|
||||
profileImage:
|
||||
'https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500',
|
||||
name: 'Jane Doe',
|
||||
content: text,
|
||||
date: curDate
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
const [PartnerMenu, setPartnerMenu] = React.useState(null);
|
||||
const [AccountMenu, setAccountMenu] = React.useState(null);
|
||||
|
||||
const [someoneconnected, setsomeoneconnected] = useState("0");
|
||||
const [partnerconnected, setpartnerconnected] = useState("0");
|
||||
|
||||
const stored_part = getCookie('tokenmysypart');
|
||||
|
||||
function whosisconnected() {
|
||||
var local_user_connect = 0;
|
||||
var local_part_connect = 0;
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
setuserconnected("0");
|
||||
local_user_connect = 0;
|
||||
} else {
|
||||
setuserconnected("1");
|
||||
setsomeoneconnected("1");
|
||||
local_user_connect = 1;
|
||||
//alert(" user connected OK");
|
||||
}
|
||||
|
||||
if (typeof (stored_part) === "undefined" || String(stored_part) === '') {
|
||||
setpartnerconnected("0");
|
||||
local_part_connect = 0;
|
||||
} else {
|
||||
setpartnerconnected("1");
|
||||
setsomeoneconnected("1");
|
||||
local_part_connect = 1;
|
||||
// alert(" partner connected OK");
|
||||
}
|
||||
}
|
||||
|
||||
function handleAccountLogout() {
|
||||
|
||||
if (String(userconnected) === String("1")) {
|
||||
user_logout();
|
||||
}
|
||||
else if (String(partnerconnected) === String("1")) {
|
||||
part_logout();
|
||||
}
|
||||
}
|
||||
|
||||
function user_logout_confirmation() {
|
||||
/* si c'est une connexion partner qui est active */
|
||||
if (typeof (stored_user) != "undefined") {
|
||||
setCookie("tokenmysych", "");
|
||||
}
|
||||
history.push("/recherche-formation");
|
||||
}
|
||||
|
||||
function user_logout() {
|
||||
confirmAlert({
|
||||
title: '',
|
||||
message: 'Confirmez la deconnexion (user)',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
onClick: () => user_logout_confirmation()
|
||||
},
|
||||
{
|
||||
label: 'Non',
|
||||
onClick: () => { return }
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
const PartnerMenu_Close = () => {
|
||||
setPartnerMenu(null);
|
||||
};
|
||||
|
||||
const AccountMenu_Close = () => {
|
||||
setAccountMenu(null);
|
||||
};
|
||||
|
||||
const handlePartnerMenu = (event) => {
|
||||
setPartnerMenu(event.currentTarget);
|
||||
};
|
||||
|
||||
const handleAccountMenu = (event) => {
|
||||
setAccountMenu(event.currentTarget);
|
||||
};
|
||||
|
||||
const handleClose_Account = () => {
|
||||
alert(" my account");
|
||||
setAccountMenu(null);
|
||||
};
|
||||
|
||||
const handleAccountConnexion = () => {
|
||||
setAccountMenu(null);
|
||||
history.push("/Connexion")
|
||||
};
|
||||
|
||||
const handleMyAccount = () => {
|
||||
setAccountMenu(null);
|
||||
history.push("/mysy-user-account")
|
||||
};
|
||||
|
||||
const handleAccountCreation = () => {
|
||||
setAccountMenu(null);
|
||||
history.push("/create_account")
|
||||
};
|
||||
|
||||
const handlePartnerConnexion = () => {
|
||||
setAccountMenu(null);
|
||||
history.push("/PartnerLogin")
|
||||
};
|
||||
|
||||
function user_logout_confirmation() {
|
||||
/* si c'est une connexion partner qui est active */
|
||||
if (typeof (stored_user) != "undefined") {
|
||||
setCookie("tokenmysych", "");
|
||||
}
|
||||
history.push("/recherche-formation");
|
||||
}
|
||||
|
||||
function user_logout() {
|
||||
confirmAlert({
|
||||
title: '',
|
||||
message: 'Confirmez la deconnexion (user)',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
onClick: () => user_logout_confirmation()
|
||||
},
|
||||
{
|
||||
label: 'Non',
|
||||
onClick: () => { return }
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
const handleMyPartnerAccount = () => {
|
||||
setAccountMenu(null);
|
||||
history.push("/Partner")
|
||||
};
|
||||
|
||||
const [partcookie, setpartCookie, removepartCookie] = useCookies(['tokenmysypart']);
|
||||
function handleAccountConnexion_v2() {
|
||||
|
||||
if (String(userconnected) === String("1")) {
|
||||
handleMyAccount();
|
||||
}
|
||||
else if (String(partnerconnected) === String("1")) {
|
||||
handleMyPartnerAccount();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function part_logout_confirmation() {
|
||||
/* si c'est une connexion partner qui est active */
|
||||
if (typeof (stored_part) != "undefined") {
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
var acces_right_token_name = stored_cookie + "_uar";
|
||||
|
||||
setpartCookie("tokenmysypart", "", { path: '/' });
|
||||
|
||||
setpartCookie(acces_right_token_name, "", { path: '/' });
|
||||
removeCookie(acces_right_token_name, { path: '/' });
|
||||
}
|
||||
history.push("/recherche-formation");
|
||||
}
|
||||
|
||||
function part_logout() {
|
||||
confirmAlert({
|
||||
title: '',
|
||||
message: 'Confirmez la deconnexion (pro)',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
onClick: () => part_logout_confirmation()
|
||||
},
|
||||
{
|
||||
label: 'Non',
|
||||
onClick: () => { return }
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
const [ProduitMenu, setproduitMenu] = React.useState(null);
|
||||
const [AvisMenu, setavisMenu] = React.useState(null);
|
||||
|
||||
|
||||
const handleProduitMenu = (event) => {
|
||||
setproduitMenu(event.currentTarget);
|
||||
};
|
||||
|
||||
const handleProduitService = () => {
|
||||
setproduitMenu(null);
|
||||
history.push("/tarifs_produits_services/")
|
||||
};
|
||||
|
||||
const handleQuisommesNousMenu = () => {
|
||||
setproduitMenu(null);
|
||||
history.push("/qui-sommes-nous/")
|
||||
};
|
||||
|
||||
const ProduitMenu_Close = () => {
|
||||
setproduitMenu(null);
|
||||
};
|
||||
|
||||
function publiecatalogue() {
|
||||
history.push("/Partner", { mysy_arg: 'partner' });
|
||||
}
|
||||
|
||||
const handleFtionMenu = (event) => {
|
||||
history.push("/")
|
||||
};
|
||||
|
||||
|
||||
return (
|
||||
<div style={{ width: "100%", float: "left" }}>
|
||||
<div className="DisplayDetailArticle">
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -81,6 +81,7 @@ import { IconButton } from '@material-ui/core';
|
|||
import AutoFixHighOutlinedIcon from '@mui/icons-material/AutoFixHighOutlined';
|
||||
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
|
||||
|
||||
|
||||
function PaperComponent(props) {
|
||||
return (
|
||||
<Draggable
|
||||
|
@ -1626,7 +1627,12 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
//console.log('Success:', result['message']);
|
||||
setResend_LMS_Credentials_result(result['message']);
|
||||
setResend_LMS_Credentials_api("true");
|
||||
alert(" Les identifiants de connexion ont été correctement envoyés")
|
||||
// alert(" Les identifiants de connexion ont été correctement envoyés")
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(" Les identifiants de connexion ont été correctement envoyés");
|
||||
setalert_type("success");
|
||||
|
||||
|
||||
} else if (String(result['status']) === String("Err_Connexion")) {
|
||||
alert('Erreur: ' + result['message']);
|
||||
history.push("/Connexion");
|
||||
|
@ -1635,6 +1641,9 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
else {
|
||||
setResend_LMS_Credentials_message(result['message']);
|
||||
setResend_LMS_Credentials_api("false");
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(result['message']);
|
||||
setalert_type("error");
|
||||
}
|
||||
|
||||
})
|
||||
|
@ -2402,8 +2411,8 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
).then((response) => response.json())
|
||||
.then((result) => {
|
||||
|
||||
console.log(' removeRecodedClassImage : status:', result['status']);
|
||||
console.log('removeRecodedClassImage : Success:', result['message']);
|
||||
// console.log(' removeRecodedClassImage : status:', result['status']);
|
||||
// console.log('removeRecodedClassImage : Success:', result['message']);
|
||||
|
||||
|
||||
if (String(result['status']) === String("true")) {
|
||||
|
@ -2421,7 +2430,10 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
}
|
||||
|
||||
else {
|
||||
alert(result['message']);
|
||||
// alert(result['message']);
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(result['message']);
|
||||
setalert_type("error");
|
||||
}
|
||||
|
||||
})
|
||||
|
@ -2496,7 +2508,10 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
setLoading(false);
|
||||
setliste_sessions_file_change_message(result['message']);
|
||||
setliste_sessions_file_change_api("false");
|
||||
alert('Erreur: ' + result['message']);
|
||||
// alert('Erreur: ' + result['message']);
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(result['message']);
|
||||
setalert_type("error");
|
||||
|
||||
}
|
||||
|
||||
|
@ -10879,11 +10894,11 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
<hr className="hr_break" />
|
||||
</div>
|
||||
<div className="div_row" style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "padding": "5px" }}>
|
||||
Acces LMS
|
||||
Acces Plateforme E-Learning (LMS)
|
||||
|
||||
</div>
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<div className="session_caract"> login LMS<br />
|
||||
<div className="session_caract"> login E-Learnig / LMS<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
|
@ -10899,7 +10914,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Mot de passe LMS<br />
|
||||
<div className="session_caract"> Mot de passe E-Learnig / LMS<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
|
@ -487,11 +487,21 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
'',
|
||||
'Visualiser',
|
||||
'Editer',
|
||||
'Pub. E-Learning',
|
||||
'Pubier E-Learning',
|
||||
'Supprimer',
|
||||
];
|
||||
|
||||
const options_menu_vertical_With_E_Learning = [
|
||||
'',
|
||||
'Visualiser',
|
||||
'Editer',
|
||||
'Ouvrir E-Learning',
|
||||
'Supprimer',
|
||||
];
|
||||
|
||||
const ITEM_HEIGHT = 48;
|
||||
|
||||
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick_option_button_vertical = (event) => {
|
||||
|
@ -528,6 +538,37 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
};
|
||||
|
||||
|
||||
const [anchorEl_A, setanchorEl_A] = React.useState(null);
|
||||
const open_a = Boolean(anchorEl_A);
|
||||
const handleClick_option_button_vertical_A = (event) => {
|
||||
setanchorEl_A(event.currentTarget);
|
||||
};
|
||||
const handleClose_option_button_vertical_A = (event, value) => {
|
||||
|
||||
if (value && String(value) === "Supprimer") {
|
||||
|
||||
}
|
||||
|
||||
else if (value && String(value) === "Editer") {
|
||||
|
||||
}
|
||||
|
||||
else if (value && String(value) === "Accès E-Learning") {
|
||||
|
||||
}
|
||||
|
||||
|
||||
else if (value && String(value) === "Supprimer") {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
setanchorEl_A(null);
|
||||
|
||||
};
|
||||
|
||||
|
||||
const columns = [
|
||||
{ field: "id", hide: true, filterable: false, disableExport: true },
|
||||
{ field: '_id', headerName: '_id', hide: true, disableExport: true, Width: 0, },
|
||||
|
@ -636,366 +677,454 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
);
|
||||
}
|
||||
},
|
||||
/* {
|
||||
field: "Print", headerName: 'Editer', minWidth: 50, flex: 1, maxWidth: 100, disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<Button style={{ "marginLeft": "auto", "marginRight": "auto", "cursor": "pointer" }}
|
||||
|
||||
onClick={(event) => {
|
||||
handleClick(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<AiOutlineEdit />
|
||||
|
||||
</Button>
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
field: "push_to_lms", headerName: 'E-learning Creation', minWidth: 100, flex: 1, maxWidth: 150, disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<nav style={{ "textAlign": "center" }}>
|
||||
<Popup
|
||||
trigger={
|
||||
<Button style={{ "marginLeft": "auto", "marginRight": "auto", "cursor": "pointer", "textAlign": "center" }}
|
||||
|
||||
onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
}}
|
||||
>
|
||||
|
||||
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length > 2 && <CiFileOff />}
|
||||
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length <= 2 && <CiDesktop />}
|
||||
{!cellValues.row.lms_class_code && <CiDesktop />}
|
||||
|
||||
</Button>}
|
||||
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
/!\ Important : Confirmer la publication de la formation dans l'eapce E-Learning.
|
||||
Vous allez écraser d'eventuelles informations déjà présente dans le e-Learning, pour cette formation.
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
</nav>
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
{
|
||||
field: "delete", headerName: 'Supprimer', minWidth: 50, flex: 1, maxWidth: 100, disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
onClick={(event) => {
|
||||
// handleClick_delete(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<CiTrash />
|
||||
|
||||
</Button>}
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, la formation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
Avant, assurez-vous de n'avoir aucune session rattachée à la formation.
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_delete(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
|
||||
|
||||
);
|
||||
}
|
||||
},*/
|
||||
|
||||
|
||||
{
|
||||
field: 'bton_vertif', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center",
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<div>
|
||||
|
||||
<nav style={{ width: '100%', 'textAlign': 'center' }}>
|
||||
<IconButton
|
||||
aria-label="more"
|
||||
id="long-button"
|
||||
aria-controls={open ? 'long-menu' : undefined}
|
||||
aria-expanded={open ? 'true' : undefined}
|
||||
aria-haspopup="true"
|
||||
// onClick={handleClick_option_button_vertical}
|
||||
onClick={(e) => {
|
||||
handleClick_option_button_vertical(e);
|
||||
setworking_cellValues(cellValues);
|
||||
{(!cellValues.row.lms_class_code || String(cellValues.row.lms_class_code).length <= 2) && <nav style={{ width: '100%', 'textAlign': 'center' }}>
|
||||
<IconButton
|
||||
aria-label="more"
|
||||
id="long-button"
|
||||
aria-controls={open ? 'long-menu_p' : undefined}
|
||||
aria-expanded={open ? 'true' : undefined}
|
||||
aria-haspopup="true"
|
||||
// onClick={handleClick_option_button_vertical}
|
||||
onClick={(e) => {
|
||||
handleClick_option_button_vertical(e);
|
||||
setworking_cellValues(cellValues);
|
||||
|
||||
}}
|
||||
}}
|
||||
|
||||
>
|
||||
<MoreVertIcon />
|
||||
</IconButton>
|
||||
<Menu
|
||||
id="long-menu"
|
||||
MenuListProps={{
|
||||
'aria-labelledby': 'long-button',
|
||||
}}
|
||||
anchorEl={anchorEl}
|
||||
open={open}
|
||||
onClose={handleClose_option_button_vertical}
|
||||
slotProps={{
|
||||
paper: {
|
||||
style: {
|
||||
maxHeight: ITEM_HEIGHT * 4.5,
|
||||
width: '20ch',
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
borderRadius: '0px !important',
|
||||
lineHeight: '3rem'
|
||||
>
|
||||
<MoreVertIcon />
|
||||
</IconButton>
|
||||
<Menu
|
||||
id="long-menu_p"
|
||||
MenuListProps={{
|
||||
'aria-labelledby': 'long-button',
|
||||
}}
|
||||
anchorEl={anchorEl}
|
||||
open={open}
|
||||
onClose={handleClose_option_button_vertical}
|
||||
slotProps={{
|
||||
paper: {
|
||||
style: {
|
||||
maxHeight: ITEM_HEIGHT * 4.5,
|
||||
width: '20ch',
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
borderRadius: '0px !important',
|
||||
lineHeight: '3rem'
|
||||
},
|
||||
},
|
||||
},
|
||||
}}
|
||||
>
|
||||
{options_menu_vertical.map((option) => (
|
||||
<MenuItem key={option}
|
||||
}}
|
||||
>
|
||||
{options_menu_vertical.map((option) => (
|
||||
<MenuItem key={option}
|
||||
|
||||
onClick={(e) => {
|
||||
//handleClose_option_button_vertical(e, option);
|
||||
setAnchorEl(null);
|
||||
onClick={(e) => {
|
||||
//handleClose_option_button_vertical(e, option);
|
||||
setAnchorEl(null);
|
||||
|
||||
if (option && String(option) === "Supprimer") {
|
||||
setdialogOpen_supp(true);
|
||||
}
|
||||
if (option && String(option) === "Supprimer") {
|
||||
setdialogOpen_supp(true);
|
||||
}
|
||||
|
||||
else if (option && String(option) === "Editer") {
|
||||
handleClick(e, working_cellValues);
|
||||
}
|
||||
else if (option && String(option) === "Editer") {
|
||||
handleClick(e, working_cellValues);
|
||||
}
|
||||
|
||||
else if (option && String(option) === "Pub. E-Learning") {
|
||||
setdialogOpen_push_lms(true);
|
||||
}
|
||||
else if (option && String(option) === "Pubier E-Learning") {
|
||||
setdialogOpen_push_lms(true);
|
||||
}
|
||||
|
||||
else if (option && String(option) === "Visualiser") {
|
||||
Visualiser(e, working_cellValues);
|
||||
}
|
||||
else if (option && String(option) === "Visualiser") {
|
||||
Visualiser(e, working_cellValues);
|
||||
}
|
||||
|
||||
}}
|
||||
>
|
||||
{option}
|
||||
</MenuItem>
|
||||
))}
|
||||
</Menu>
|
||||
}}
|
||||
>
|
||||
{option}
|
||||
</MenuItem>
|
||||
))}
|
||||
</Menu>
|
||||
|
||||
{/*** GESTION Dialog menu item pour suppression */}
|
||||
{dialogOpen_supp && <Dialog
|
||||
open={dialogOpen_supp}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => null}
|
||||
{/*** GESTION Dialog menu item pour suppression */}
|
||||
{dialogOpen_supp && <Dialog
|
||||
open={dialogOpen_supp}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
// position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
PaperProps={{
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
// position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
|
||||
<DialogContent className="DialogContent_width">
|
||||
<DialogContent className="DialogContent_width">
|
||||
|
||||
<div>
|
||||
<button className="gest_close" onClick={Dialog_menuitem_close_supp}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
<div>
|
||||
<button className="gest_close" onClick={Dialog_menuitem_close_supp}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, la formation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
Avant, assurez-vous de n'avoir aucune session rattachée à la formation.
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_delete(event, cellValues);
|
||||
}}> Valider </button>
|
||||
En confirmant cette opération, la formation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
Avant, assurez-vous de n'avoir aucune session rattachée à la formation.
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
console.log('modal closed ');
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_delete(event, working_cellValues);
|
||||
Dialog_menuitem_close_supp();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
console.log('modal closed ');
|
||||
Dialog_menuitem_close_supp();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</DialogContent>
|
||||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
</DialogActions>
|
||||
<DialogActions>
|
||||
</DialogActions>
|
||||
|
||||
|
||||
</Dialog>}
|
||||
{/*** FIN GESTION Dialog menu item pour suppression*/}
|
||||
</Dialog>}
|
||||
{/*** FIN GESTION Dialog menu item pour suppression*/}
|
||||
|
||||
|
||||
{/*** GESTION Dialog menu item pour push lms */}
|
||||
{dialogOpen_push_lms && <Dialog
|
||||
open={dialogOpen_push_lms}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => null}
|
||||
{/*** GESTION Dialog menu item pour push lms */}
|
||||
{dialogOpen_push_lms && <Dialog
|
||||
open={dialogOpen_push_lms}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
// position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
PaperProps={{
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
// position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
|
||||
<DialogContent className="DialogContent_width">
|
||||
<DialogContent className="DialogContent_width">
|
||||
|
||||
<div>
|
||||
<button className="gest_close" onClick={Dialog_menuitem_close_push_lms}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
<div>
|
||||
<button className="gest_close" onClick={Dialog_menuitem_close_push_lms}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
/!\ Important : Confirmer la publication de la formation dans l'eapce E-Learning.
|
||||
Vous allez écraser d'eventuelles informations déjà présente dans le e-Learning, pour cette formation.
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
}}> Valider </button>
|
||||
/!\ Important : Confirmer la publication de la formation dans l'eapce E-Learning.
|
||||
Vous allez écraser d'eventuelles informations déjà présente dans le e-Learning, pour cette formation.
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
console.log('modal closed ');
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handlepush_to_lms(event, working_cellValues);
|
||||
Dialog_menuitem_close_push_lms();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
console.log('modal closed ');
|
||||
Dialog_menuitem_close_push_lms();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</DialogContent>
|
||||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
</DialogActions>
|
||||
<DialogActions>
|
||||
</DialogActions>
|
||||
|
||||
|
||||
</Dialog>}
|
||||
{/*** FIN GESTION Dialog menu item pour push lms*/}
|
||||
</Dialog>}
|
||||
{/*** FIN GESTION Dialog menu item pour push lms*/}
|
||||
|
||||
|
||||
</nav>
|
||||
</nav>}
|
||||
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length > 2 && <nav style={{ width: '100%', 'textAlign': 'center' }}>
|
||||
<IconButton
|
||||
aria-label="more"
|
||||
id="long-button"
|
||||
aria-controls={open ? 'long-menu_a' : undefined}
|
||||
aria-expanded={open ? 'true' : undefined}
|
||||
aria-haspopup="true"
|
||||
// onClick={handleClick_option_button_vertical}
|
||||
onClick={(e) => {
|
||||
handleClick_option_button_vertical_A(e);
|
||||
setworking_cellValues(cellValues);
|
||||
|
||||
}}
|
||||
|
||||
>
|
||||
<MoreVertIcon />
|
||||
</IconButton>
|
||||
<Menu
|
||||
id="long-menu_a"
|
||||
MenuListProps={{
|
||||
'aria-labelledby': 'long-button',
|
||||
}}
|
||||
anchorEl={anchorEl_A}
|
||||
open={open_a}
|
||||
onClose={handleClose_option_button_vertical_A}
|
||||
slotProps={{
|
||||
paper: {
|
||||
style: {
|
||||
maxHeight: ITEM_HEIGHT * 4.5,
|
||||
width: '20ch',
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
borderRadius: '0px !important',
|
||||
lineHeight: '3rem'
|
||||
},
|
||||
},
|
||||
}}
|
||||
>
|
||||
{options_menu_vertical_With_E_Learning.map((option) => (
|
||||
<MenuItem key={option}
|
||||
|
||||
onClick={(e) => {
|
||||
//handleClose_option_button_vertical(e, option);
|
||||
setanchorEl_A(null);
|
||||
|
||||
if (option && String(option) === "Supprimer") {
|
||||
setdialogOpen_supp(true);
|
||||
}
|
||||
|
||||
else if (option && String(option) === "Editer") {
|
||||
handleClick(e, working_cellValues);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
window.open(
|
||||
class_url,
|
||||
'_blank'
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if (option && String(option) === "Visualiser") {
|
||||
Visualiser(e, working_cellValues);
|
||||
}
|
||||
|
||||
}}
|
||||
>
|
||||
{option}
|
||||
</MenuItem>
|
||||
))}
|
||||
</Menu>
|
||||
|
||||
{/*** GESTION Dialog menu item pour suppression */}
|
||||
{dialogOpen_supp && <Dialog
|
||||
open={dialogOpen_supp}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
// position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
|
||||
<DialogContent className="DialogContent_width">
|
||||
|
||||
<div>
|
||||
<button className="gest_close" onClick={Dialog_menuitem_close_supp}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, la formation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
Avant, assurez-vous de n'avoir aucune session rattachée à la formation.
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_delete(event, working_cellValues);
|
||||
Dialog_menuitem_close_supp();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
console.log('modal closed ');
|
||||
Dialog_menuitem_close_supp();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
</DialogActions>
|
||||
|
||||
|
||||
</Dialog>}
|
||||
{/*** FIN GESTION Dialog menu item pour suppression*/}
|
||||
|
||||
|
||||
{/*** GESTION Dialog menu item pour push lms */}
|
||||
{dialogOpen_push_lms && <Dialog
|
||||
open={dialogOpen_push_lms}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
// position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
|
||||
<DialogContent className="DialogContent_width">
|
||||
|
||||
<div>
|
||||
<button className="gest_close" onClick={Dialog_menuitem_close_push_lms}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
/!\ Important : Confirmer la publication de la formation dans l'eapce E-Learning.
|
||||
Vous allez écraser d'eventuelles informations déjà présente dans le e-Learning, pour cette formation.
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handlepush_to_lms(event, working_cellValues);
|
||||
Dialog_menuitem_close_push_lms();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
// console.log('modal closed ');
|
||||
Dialog_menuitem_close_push_lms();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
</DialogActions>
|
||||
|
||||
|
||||
</Dialog>}
|
||||
{/*** FIN GESTION Dialog menu item pour push lms*/}
|
||||
|
||||
|
||||
</nav>}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
|
|
|
@ -9057,7 +9057,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
|
||||
</div>
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<div className="session_caract"> login LMS<br />
|
||||
<div className="session_caract"> login E-Learnig / LMS<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
|
@ -9073,7 +9073,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Mot de passe LMS<br />
|
||||
<div className="session_caract"> Mot de passe E-Learnig / LMS<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
|
@ -10313,11 +10313,11 @@ function ExportMenuItem(props) {
|
|||
<hr className="hr_break" />
|
||||
</div>
|
||||
<div className="div_row" style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "padding": "5px" }}>
|
||||
Acces LMS
|
||||
Acces Plateforme E-Learning (LMS)
|
||||
|
||||
</div>
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<div className="session_caract"> login LMS<br />
|
||||
<div className="session_caract"> login E-Learnig / LMS<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
|
@ -10333,7 +10333,7 @@ function ExportMenuItem(props) {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Mot de passe LMS<br />
|
||||
<div className="session_caract"> Mot de passe E-Learnig / LMS<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
|
|
|
@ -29,11 +29,48 @@ 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";
|
||||
|
||||
|
||||
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';
|
||||
|
||||
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_Evaluation_Positionnement = (props) => {
|
||||
|
||||
const classes = useStyles();
|
||||
const myconntected_employee_id = props.conntected_employee_id;
|
||||
|
||||
const [selected_employee_id, setselected_employee_id] = useState(props.conntected_employee_id);
|
||||
|
@ -173,7 +210,7 @@ const Module_Evaluation_Positionnement = (props) => {
|
|||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
// console.log(" In Getall_Survey_Q_Positionnement_By_Session res.data.status = " + res.data.status);
|
||||
console.log(" In Getall_Survey_Q_Positionnement_By_Session res.data.message r_class = " + res.data.message);
|
||||
// console.log(" In Getall_Survey_Q_Positionnement_By_Session res.data.message r_class = " + res.data.message);
|
||||
setGetall_Survey_Q_Positionnement_By_Session_api("true");
|
||||
setGetall_Survey_Q_Positionnement_By_Session_result(res.data.message);
|
||||
|
||||
|
@ -314,7 +351,11 @@ const Module_Evaluation_Positionnement = (props) => {
|
|||
setCreate_List_Survey_For_Session_For_Inscrit_api("true");
|
||||
setCreate_List_Survey_For_Session_For_Inscrit_result(res.data.message);
|
||||
Getall_Survey_Q_Positionnement_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);
|
||||
|
@ -323,7 +364,10 @@ const Module_Evaluation_Positionnement = (props) => {
|
|||
else {
|
||||
setCreate_List_Survey_For_Session_For_Inscrit_api("false");
|
||||
setCreate_List_Survey_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) => {
|
||||
|
@ -345,7 +389,7 @@ const Module_Evaluation_Positionnement = (props) => {
|
|||
|
||||
if (String(actionmass_q_position_val) === String("reinit")) {
|
||||
|
||||
alert(" ### reinit");
|
||||
// alert(" ### reinit");
|
||||
|
||||
}
|
||||
|
||||
|
@ -398,7 +442,11 @@ const Module_Evaluation_Positionnement = (props) => {
|
|||
Getall_Survey_Q_Positionnement_By_Session();
|
||||
|
||||
setselectionModel_q_position([]);
|
||||
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);
|
||||
|
@ -407,7 +455,10 @@ const Module_Evaluation_Positionnement = (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) => {
|
||||
|
@ -451,6 +502,20 @@ const Module_Evaluation_Positionnement = (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="module_evaluation_positionnement">
|
||||
|
@ -458,6 +523,17 @@ const Module_Evaluation_Positionnement = (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}
|
||||
|
@ -518,11 +594,33 @@ const Module_Evaluation_Positionnement = (props) => {
|
|||
{/* Dialog pour gerer les LIST_POSITION_QUESTION */}
|
||||
<Dialog
|
||||
open={Dialog_LIST_POSITION_QUESTION_open}
|
||||
onClose={Dialog_LIST_POSITION_QUESTION_handleClose}
|
||||
// onClose={Dialog_LIST_POSITION_QUESTION_handleClose}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
|
||||
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
|
||||
<DialogTitle>MySy Information</DialogTitle>
|
||||
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">MySy Information</DialogTitle>
|
||||
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
|
||||
<DialogContentText>
|
||||
{Dialog_1_message}
|
||||
|
@ -559,6 +657,16 @@ const Module_Evaluation_Positionnement = (props) => {
|
|||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
|
||||
<IconButton
|
||||
// autoFocus
|
||||
onClick={Dialog_LIST_POSITION_QUESTION_handleClose_buton}
|
||||
color="primary"
|
||||
className={classes.customizedButton}
|
||||
>
|
||||
<CancelPresentationIcon />
|
||||
</IconButton>
|
||||
|
||||
<div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
<Button onClick={(e) => {
|
||||
|
@ -890,7 +998,7 @@ const Module_Evaluation_Positionnement = (props) => {
|
|||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
)
|
||||
|
|
|
@ -1488,6 +1488,7 @@ const Partner = (props) => {
|
|||
const [GetPartnerLMSData_result, setGetPartnerLMSData_result] = useState();
|
||||
const [GetPartnerLMSData_message, setGetPartnerLMSData_message] = useState();
|
||||
|
||||
const [partner_lms_virtualhost_url, setpartner_lms_virtualhost_url] = useState();
|
||||
const [partner_lms_url, setpartner_lms_url] = useState();
|
||||
const [has_partner_lms_url, sethas_partner_lms_url] = useState();
|
||||
|
||||
|
@ -1505,8 +1506,6 @@ const Partner = (props) => {
|
|||
//console.log(" In GetPartnerLMSData res.data.message = " + res.data.message);
|
||||
setGetPartnerLMSData_api("true");
|
||||
setGetPartnerLMSData_result(res.data.message);
|
||||
|
||||
|
||||
var my_lms_url = "";
|
||||
if (JSON.parse(res.data.message).lms_account &&
|
||||
String(JSON.parse(res.data.message).lms_account) === "1") {
|
||||
|
@ -1516,6 +1515,8 @@ const Partner = (props) => {
|
|||
|
||||
//console.log(" ### LMS url = ", my_lms_url);
|
||||
setpartner_lms_url(my_lms_url);
|
||||
|
||||
setpartner_lms_virtualhost_url((JSON.parse(res.data.message).lms_virtualhost_url));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1815,7 +1816,7 @@ const Partner = (props) => {
|
|||
</StyledBadge_mysy_red>}
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<Tooltip className="tooltip_css" id="badge_tool_02" style={{ "fontSize": "12px" }} />
|
||||
|
@ -2215,7 +2216,8 @@ const Partner = (props) => {
|
|||
|
||||
<PartnerTranings ispending={partnerstatus} currentpack={partnerPackService} conntected_employee_id={conntected_employee_id}
|
||||
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale}
|
||||
check_user_acces_right={check_user_acces_right} />
|
||||
check_user_acces_right={check_user_acces_right}
|
||||
partner_lms_virtualhost_url={partner_lms_virtualhost_url} />
|
||||
</div>
|
||||
}
|
||||
{String(menu) === "tous_mes_document" &&
|
||||
|
@ -2969,7 +2971,8 @@ const Partner = (props) => {
|
|||
|
||||
<PartnerTranings ispending={partnerstatus} currentpack={partnerPackService} conntected_employee_id={conntected_employee_id}
|
||||
class_external_code={orderid} class_internal_url={packs} formation_initiale={formation_initiale}
|
||||
check_user_acces_right={check_user_acces_right} />
|
||||
check_user_acces_right={check_user_acces_right}
|
||||
partner_lms_virtualhost_url={partner_lms_virtualhost_url} />
|
||||
</div>
|
||||
}
|
||||
|
||||
|
|
|
@ -1145,34 +1145,35 @@ const RechercheArticles_new_v2 = (props) => {
|
|||
|
||||
|
||||
function init_with_modele() {
|
||||
var init_text = '<div style="color: #16274F; font-size: 20px; font-family: DM Sans; font-weight: 700; word-wrap: break-word; margin-bottom: 10px;">\
|
||||
1. Une solution complète et intégrée :</div> \
|
||||
<div style="width: 100%; color: #171717; font-size: 16px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word; margin-bottom: 2rem;"> \
|
||||
Mysy Training propose une plateforme tout-en-un qui simplifie la gestion de votre organisme de formation, depuis la planification des sessions jusqu\'à la facturation, en passant par le suivi des apprenants. <br /> \
|
||||
Cette centralisation réduit les tâches administratives et optimise votre efficacité.<br /> \
|
||||
Mysy Training propose une plateforme tout-en-un qui simplifie la gestion de votre organisme de formation, depuis la \
|
||||
planification des sessions jusqu\'à la facturation, en passant par le suivi des apprenants. Cette centralisation réduit les tâches administratives et \
|
||||
optimise votre efficacité. </div> \
|
||||
<div style="color: #16274F; font-size: 20px; font-family: DM Sans; font-weight: 700; word-wrap: break-word; margin-bottom: 10px;"> \
|
||||
2. Conformité avec les réglementations :</div>\
|
||||
<div style="width: 100%; color: #171717; font-size: 16px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word; margin-bottom: 2rem;"> \
|
||||
La solution est conçue pour répondre aux exigences légales, comme Qualiopi ou les obligations de suivi des financements CPF. Vous êtes ainsi assuré de\
|
||||
rester conforme aux normes en vigueur. </div> \
|
||||
<div style="color: #16274F; font-size: 20px; font-family: DM Sans; font-weight: 700; word-wrap: break-word; margin-bottom: 10px;"> \
|
||||
3. Liste numérotée </div> <ol style="margin-bottom: 2rem;"> <li> \
|
||||
<div style="width: 100%; color: #171717; font-size: 16px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word; margin-bottom: 5px;"> \
|
||||
Renforcer la crédibilité des établissements de formation. </div> </li> <li> \
|
||||
<div style="width: 100%; color: #171717; font-size: 16px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word;margin-bottom: 5px;"> Assurer une meilleure qualité des prestations de formation. </div> </li> <li> <div style="width: 100%; color: #171717; font-size: 16px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word;margin-bottom: 5px;"> Rendre les organismes éligibles aux aides financières (par exemple, des OPCO ou Pôle Emploi).</div> </li> </ol> <div style="color: #16274F; font-size: 20px; font-family: DM Sans; font-weight: 700; word-wrap: break-word; margin-bottom: 10px;"> 4. Liste bullet point </div> <ul style="margin-bottom: 2rem;"> <li> <div style="width: 100%; color: #171717; font-size: 16px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word;margin-bottom: 5px;"> \
|
||||
MySy offre un module de gestion administrative permettant de centraliser tous les documents liés aux formations, y compris les conventions, convocations, programmes, et certificats de satisfaction.</div> </li> \
|
||||
<li> <div style="width: 100%; color: #171717; font-size: 16px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word;margin-bottom: 5px;"> \
|
||||
Grâce à des fonctionnalités telles que l\'import/export de données en Excel et la gestion automatisée des documents, \
|
||||
les organismes peuvent facilement fournir des preuves de conformité lors de l\'audit Qualiopi.</div> </li> </ul> \
|
||||
<div style="color: #16274F; font-size: 20px; font-family: DM Sans; font-weight: 700; word-wrap: break-word; margin-bottom: 10px;"> \
|
||||
5. Une solution complète et intégrée (suite):</div> \
|
||||
<div style="width: 100%; color: #171717; font-size: 16px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word; margin-bottom: 2rem;"> \
|
||||
Mysy Training propose une plateforme tout-en-un qui simplifie la gestion de votre organisme de formation, depuis la \
|
||||
planification des sessions jusqu\'à la facturation, en passant par le suivi des apprenants. <br /> \
|
||||
Cette centralisation réduit les tâches administratives et optimise votre efficacité.<br /> </div>'
|
||||
var init_text = '<div style="font-family: DM Sans; font-style: normal; font-weight: 600; font-size: 24px; line-height: 28px; color: #16274F; text-align: left; margin-bottom: 10px;"> \
|
||||
1. Une solution complète et intégrée :</div> <div style="font-family: Inter; font-style: normal; font-weight: 400; font-size: 20px; line-height: 32px; color: #4B5162; \
|
||||
margin-bottom: 2rem;"> Mysy Training propose une plateforme tout-en-un qui simplifie la gestion de votre organisme de formation, depuis la \
|
||||
planification des sessions jusqu\'à la facturation, en passant par le suivi des apprenants. <br /> Cette centralisation réduit les tâches administratives et optimise votre efficacité.<br /> \
|
||||
Mysy Training propose une plateforme tout-en-un qui simplifie la gestion de votre organisme de formation, depuis la planification des sessions jusqu\'à la facturation, en passant par le suivi \
|
||||
des apprenants. Cette centralisation réduit les tâches administratives et optimise votre efficacité. </div>\
|
||||
<div style="font-family:DM Sans; font-style: normal; font-weight: 600; font-size: 24px; line-height: 28px; color: #16274F; text-align: left; margin-bottom: 10px;">\
|
||||
2. Conformité avec les réglementations :</div> <div style="font-family: Inter; font-style: normal; font-weight: 400; font-size: 20px; line-height: 32px; color: #4B5162; margin-bottom: 2rem;"> \
|
||||
La solution est conçue pour répondre aux exigences légales, comme Qualiopi ou les obligations de suivi des financements CPF. Vous êtes ainsi assuré de rester conforme aux normes en vigueur. </div>\
|
||||
<div style="font-family: DM Sans; font-style: normal; font-weight: 600; font-size: 24px; line-height: 28px; color: #16274F; text-align: left; margin-bottom: 10px;"> \
|
||||
3. Liste numérotée </div> <ol style="margin-bottom: 2rem;"> <li> \
|
||||
<div style="width: 100%; color: #16274F; font-size: 18px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word; margin-bottom: 10px;"> \
|
||||
Renforcer la crédibilité des établissements de formation. </div> </li> <li> \
|
||||
<div style="width: 100%; color: #16274F; font-size: 18px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word;margin-bottom: 10px;"> \
|
||||
Assurer une meilleure qualité des prestations de formation. </div> </li> <li> \
|
||||
<div style="width: 100%; color: #16274F; font-size: 18px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word;margin-bottom: 10px;"> \
|
||||
Rendre les organismes éligibles aux aides financières (par exemple, des OPCO ou Pôle Emploi).</div> </li> </ol> \
|
||||
<div style="font-family: DM Sans; font-style: normal; font-weight: 600; font-size: 24px; line-height: 28px; color: #16274F; text-align: left; margin-bottom: 10px;"> \
|
||||
4. Liste bullet point </div> <ul style="margin-bottom: 2rem;"> <li> \
|
||||
<div style="width: 100%; color: #16274F; font-size: 18px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word;margin-bottom: 10px;"> \
|
||||
MySy offre un module de gestion administrative permettant de centraliser tous les documents liés aux formations, y compris les conventions, convocations, programmes,\
|
||||
et certificats de satisfaction.</div> </li> <li> \
|
||||
<div style="width: 100%; color: #16274F; font-size: 18px; font-family: Inter; font-weight: 400; line-height: 24px; word-wrap: break-word;margin-bottom: 10px;"> \
|
||||
Grâce à des fonctionnalités telles que l\'import/export de données en Excel et la gestion automatisée des documents, \
|
||||
les organismes peuvent facilement fournir des preuves de conformité lors de l\'audit Qualiopi.</div> </li> </ul> \
|
||||
<div style="font-family: DM Sans; font-style: normal; font-weight: 600; font-size: 24px; line-height: 28px; color: #16274F; text-align: left; margin-bottom: 10px;"> \
|
||||
5. Une solution complète et intégrée (suite):</div> <div style="font-family: Inter; font-style: normal; font-weight: 400; font-size: 20px; line-height: 32px; color: #4B5162; margin-bottom: 2rem;"> \
|
||||
Mysy Training propose une plateforme tout-en-un qui simplifie la gestion de votre organisme de formation, depuis la planification des sessions jusqu\'à la facturation, en passant par \
|
||||
le suivi des apprenants. <br /> Cette centralisation réduit les tâches administratives et optimise votre efficacité.<br /> </div>'
|
||||
|
||||
setfield_texte_avis(init_text);
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ import { daDK } from "@mui/material/locale";
|
|||
import Checkbox from '@mui/material/Checkbox';
|
||||
|
||||
import Display_Action_And_Class from "./Display_Action_And_Class";
|
||||
|
||||
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
|
||||
|
||||
function SurveyDocument() {
|
||||
|
||||
|
@ -64,7 +64,7 @@ function SurveyDocument() {
|
|||
|
||||
setLoading(false);
|
||||
//console.log(" get_Given_Survey_Data : In test res.data.status = " + res.data.status);
|
||||
console.log(" get_Given_Survey_Data: res.data.message = " + res.data.message);
|
||||
// console.log(" get_Given_Survey_Data: res.data.message = " + res.data.message);
|
||||
|
||||
if (String(res.data.status) === "true") {
|
||||
setget_Given_Survey_Data_api("true");
|
||||
|
@ -92,7 +92,10 @@ function SurveyDocument() {
|
|||
else {
|
||||
setget_Given_Survey_Data_api("false");
|
||||
setget_Given_Survey_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) => {
|
||||
|
@ -150,7 +153,10 @@ function SurveyDocument() {
|
|||
}
|
||||
|
||||
if (is_empty_field === 1) {
|
||||
alert(" Le questionnaire n'est pas correctement rempli");
|
||||
// alert(" Le questionnaire n'est pas correctement rempli");
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message("Le questionnaire n'est pas correctement rempli");
|
||||
setalert_type("error");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -165,13 +171,21 @@ function SurveyDocument() {
|
|||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
||||
alert(res.data.message);
|
||||
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("success");
|
||||
|
||||
history.push("/");
|
||||
}
|
||||
else {
|
||||
setRecord_Survey_Data_api("false");
|
||||
setRecord_Survey_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) => {
|
||||
|
@ -222,7 +236,7 @@ function SurveyDocument() {
|
|||
var al = String(tab[0]);
|
||||
|
||||
if (event.currentTarget.checked) {
|
||||
// console.log('checked');
|
||||
// console.log('checked');
|
||||
if (!tmp_variable[al] || String(tmp_variable[al]) === "") {
|
||||
//console.log(" première action ");
|
||||
var t = [];
|
||||
|
@ -275,6 +289,19 @@ function SurveyDocument() {
|
|||
};
|
||||
|
||||
|
||||
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="surveydocument">
|
||||
|
@ -284,6 +311,16 @@ function SurveyDocument() {
|
|||
<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*/}
|
||||
|
||||
<Header />
|
||||
|
||||
|
@ -320,9 +357,9 @@ function SurveyDocument() {
|
|||
</div>}
|
||||
|
||||
{String(JSON.parse(get_Given_Survey_Data_result).survey_type) === "human_eval" && <div className="question_box_entete">
|
||||
Questionnaire d'évaluation pour le formateur <b> {JSON.parse(get_Given_Survey_Data_result).related_rh_data_civilite && JSON.parse(get_Given_Survey_Data_result).related_rh_data_civilite}.
|
||||
{JSON.parse(get_Given_Survey_Data_result).related_rh_data_nom && JSON.parse(get_Given_Survey_Data_result).related_rh_data_nom}
|
||||
{JSON.parse(get_Given_Survey_Data_result).related_rh_data_prenom && JSON.parse(get_Given_Survey_Data_result).related_rh_data_prenom} </b>
|
||||
Questionnaire d'évaluation pour le formateur <b> {JSON.parse(get_Given_Survey_Data_result).related_rh_data_civilite && JSON.parse(get_Given_Survey_Data_result).related_rh_data_civilite}.
|
||||
{JSON.parse(get_Given_Survey_Data_result).related_rh_data_nom && JSON.parse(get_Given_Survey_Data_result).related_rh_data_nom}
|
||||
{JSON.parse(get_Given_Survey_Data_result).related_rh_data_prenom && JSON.parse(get_Given_Survey_Data_result).related_rh_data_prenom} </b>
|
||||
</div>}
|
||||
|
||||
{String(JSON.parse(get_Given_Survey_Data_result).survey_type) === "autre_eval" && <div className="question_box_entete">
|
||||
|
|
Loading…
Reference in New Issue