12/11/2025 - 22h30
parent
283aac8b6f
commit
c117dbf75e
File diff suppressed because it is too large
Load Diff
|
|
@ -1,721 +0,0 @@
|
|||
import React, { useState, useEffect } from "react";
|
||||
|
||||
import { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from "react-share";
|
||||
import { SocialIcon } from 'react-social-icons';
|
||||
import { Button, } from "reactstrap";
|
||||
import { useHistory } from "react-router-dom";
|
||||
import { Helmet } from "react-helmet";
|
||||
import { useCookies } from "react-cookie";
|
||||
import { confirmAlert } from 'react-confirm-alert';
|
||||
|
||||
import coeurimg from "../mysy_img/coeur.png";
|
||||
import img_met_program from "../mysy_img/met_programmation.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_dev_perso from "../mysy_img/metier_dev_perso.jpg";
|
||||
import img_met_rh from "../mysy_img/met_rh.jpg";
|
||||
|
||||
import img_met_bureautic from "../mysy_img/met_burautic.jpg";
|
||||
import img_met_vente from "../mysy_img/met_vente.jpg";
|
||||
import axios from "axios";
|
||||
//import { Rating } from 'react-simple-star-rating'
|
||||
import Rating from '@mui/material/Rating';
|
||||
import parse from 'html-react-parser'
|
||||
import { CiLocationOn } from "react-icons/ci";
|
||||
|
||||
const Formation_Partner_Catalog = (props) => {
|
||||
const [userconnected, setuserconnected] = useState("0");
|
||||
const [partnerconnected, setpartnerconnected] = useState("0");
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
|
||||
const [cookie_part, setCookie_part, removeCookie_part] = useCookies(['tokenmysypart']);
|
||||
const history = useHistory();
|
||||
const [myfilter, setmyfilter] = useState(props.formation.price);
|
||||
|
||||
const [profileimg, setprofileimg] = useState(props.formation.price);
|
||||
|
||||
|
||||
// Gestion des Cookies
|
||||
const stored_partner = cookie_part.tokenmysypart;
|
||||
const stored_user = cookie.tokenmysych;
|
||||
|
||||
function test(val) {
|
||||
|
||||
if (userconnected === "0" && partnerconnected === "0") {
|
||||
confirmAlert({
|
||||
title: 'Activer votre session ?',
|
||||
message: 'Merci de vous connecter pour acceder au detail de cette formation',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
onClick: () => { history.push("/mysy-training-login/training/" + props.formation.internal_url) }
|
||||
},
|
||||
{
|
||||
label: 'Non',
|
||||
onClick: () => { return }
|
||||
|
||||
}
|
||||
],
|
||||
closeOnEscape: false,
|
||||
closeOnClickOutside: false,
|
||||
keyCodeForClose: [8, 32],
|
||||
willUnmount: () => { },
|
||||
afterClose: () => { },
|
||||
onClickOutside: () => { },
|
||||
onKeypress: () => { },
|
||||
onKeypressEscape: () => { },
|
||||
});
|
||||
} else {
|
||||
window.open(
|
||||
"/Display-Partner-Catalog-Detail-formation/" + props.formation.internal_url,
|
||||
'_blank'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const [myclassimage, setmyclassimage] = useState();
|
||||
const [isclassimage, setisclassimage] = useState("False");
|
||||
const [userimgclassprofil, setuserimgclassprofil] = useState("");
|
||||
|
||||
const [class_img_stored_in_bdd, setclass_img_stored_in_bdd] = useState("");
|
||||
|
||||
function getClassImage_no_token() {
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/getRecodedClassImage_no_token/";
|
||||
|
||||
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
form.append("type", "partner");
|
||||
form.append("related_collection", "myclass");
|
||||
form.append("related_collection_recid", props.formation._id);
|
||||
form.append("class_external_code", props.formation.external_code);
|
||||
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (res.data.status != "False") {
|
||||
|
||||
//console.log(" getClassImage : In test res.data.status = " + res.data.status);
|
||||
//console.log(" getClassImage: res.data.message.img = " + res.data.message);
|
||||
|
||||
if (res.data.message.img.length > 0) {
|
||||
setisclassimage("True");
|
||||
}
|
||||
else {
|
||||
setisclassimage("False");
|
||||
}
|
||||
setisclassimage(res.data.message.img);
|
||||
var ch_img = "data:image/png;base64," + res.data.message.img;
|
||||
setclass_img_stored_in_bdd(ch_img);
|
||||
}
|
||||
else {
|
||||
//console.log(" In Erreur res.data.status = " + res.data.status);
|
||||
//console.log(" In Erreur res.data.message = " + res.data.message);
|
||||
setisclassimage("False");
|
||||
setuserimgclassprofil();
|
||||
setclass_img_stored_in_bdd();
|
||||
}
|
||||
}).catch((error) => {
|
||||
|
||||
console.warn('getClassImage ee: Not good man :( getClassImage = ');
|
||||
setisclassimage("False");
|
||||
setuserimgclassprofil("");
|
||||
setclass_img_stored_in_bdd("");
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Cette variable accompagne la gestion des images par defaut.
|
||||
idée : si la valeur de "DetailTraining.metier" != "management, digital, office, rh, vente, dev_perso"
|
||||
alors l'utilisateur à créer une formation avec un metier qui n'est pas geré, donc on met une image par defaut
|
||||
*/
|
||||
const [ismetiermanaged, setismetiermanaged] = useState();
|
||||
const liste_metier = ["management", "digital", "office", "rh", "vente", "dev_perso"];
|
||||
|
||||
useEffect(() => {
|
||||
setmyfilter(props.myfil);
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
setuserconnected("0");
|
||||
} else {
|
||||
setuserconnected("1");
|
||||
}
|
||||
|
||||
if (typeof (stored_partner) === "undefined" || String(stored_partner) === '') {
|
||||
setpartnerconnected("0");
|
||||
} else {
|
||||
setpartnerconnected("1");
|
||||
}
|
||||
|
||||
getClassImage_no_token();
|
||||
GetCurrentClass_trainingsession();
|
||||
|
||||
GetCurrentClass_trainingsession_cities();
|
||||
|
||||
// Verifier si le metier est geré
|
||||
if (props.formation.metier) {
|
||||
if (!liste_metier.includes(props.formation.metier)) {
|
||||
setismetiermanaged("0"); // j'ai une valeur dans metier, mais qui n'est pas geré
|
||||
}
|
||||
}
|
||||
else {
|
||||
setismetiermanaged("0");
|
||||
}
|
||||
|
||||
if (props.formation.img_url && String(props.formation.img_url).length > 0) {
|
||||
setismetiermanaged("1");
|
||||
}
|
||||
|
||||
}, []);
|
||||
|
||||
|
||||
const [GetCurrentClass_api, setGetCurrentClass_api] = useState();
|
||||
const [GetCurrentClass_message, setGetCurrentClass_message] = useState();
|
||||
const [GetCurrentClass_result, setGetCurrentClass_result] = useState();
|
||||
function GetCurrentClass_trainingsession(event) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
form.append("class_internal_url", props.formation.internal_url);
|
||||
|
||||
form.append("token", stored_partner);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetActiveSessionFormation_List/";
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (res.data.status != "false") {
|
||||
//console.log(" In GetCurrentClass_trainingsession res.data.status = " + res.data.status);
|
||||
//console.log(" In GetCurrentClass_trainingsession res.data.message r_class = " + res.data.message);
|
||||
setGetCurrentClass_api("true");
|
||||
setGetCurrentClass_result(res.data.message);
|
||||
}
|
||||
else {
|
||||
setGetCurrentClass_api("false");
|
||||
setGetCurrentClass_message(res.data.message);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
console.warn('Not good man :( GetCurrentClass_trainingsession = ', error);
|
||||
setGetCurrentClass_api("false");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const [GetCurrentClass_trainingsession_cities_api, setGetCurrentClass_trainingsession_cities_api] = useState();
|
||||
const [GetCurrentClass_trainingsession_cities_message, setGetCurrentClass_trainingsession_cities_message] = useState();
|
||||
const [GetCurrentClass_trainingsession_cities_result, setGetCurrentClass_trainingsession_cities_result] = useState([]);
|
||||
function GetCurrentClass_trainingsession_cities(event) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
form.append("class_internal_url", props.formation.internal_url);
|
||||
|
||||
form.append("token", stored_partner);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetActiveSession_Cities_And_Distance_Formation_List/";
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (res.data.status != "false") {
|
||||
//console.log(" In GetCurrentClass_trainingsession_cities res.data.status = " + res.data.status);
|
||||
//console.log(" In GetCurrentClass_trainingsession_cities res.data.message r_class = " + res.data.message);
|
||||
setGetCurrentClass_trainingsession_cities_api("true");
|
||||
setGetCurrentClass_trainingsession_cities_result(res.data.message);
|
||||
}
|
||||
else {
|
||||
setGetCurrentClass_trainingsession_cities_api("false");
|
||||
setGetCurrentClass_trainingsession_cities_message(res.data.message);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
console.warn('Not good man :( GetCurrentClass_trainingsession_cities = ', error);
|
||||
setGetCurrentClass_trainingsession_cities_api("false");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
<div className="formation_partner_catalog">
|
||||
|
||||
<div style={{ "width": "100%" }}>
|
||||
|
||||
{class_img_stored_in_bdd && String(class_img_stored_in_bdd).length > 50 && <div className="forma_img_gauche">
|
||||
<img src={class_img_stored_in_bdd} alt="informatique" className="training_img" />
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
{ (!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50 ) && String(ismetiermanaged) !== "0" && String(ismetiermanaged) !== "1" && <div className="forma_img_gauche">
|
||||
|
||||
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("it") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_program} alt="informatique" className="training_img" />}
|
||||
|
||||
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("graphisme") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_graphisme} alt="graphisme" className="training_img" />}
|
||||
|
||||
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("management") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_management} alt="management" className="training_img" />}
|
||||
|
||||
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("digital") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_digital} alt="digital" className="training_img" />}
|
||||
|
||||
{(!props.formation.img_url || String(props.formation.img_url).length <= 0) &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("office") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_bureautic} alt="office" className="training_img" />}
|
||||
|
||||
{!props.formation.img_url || String(props.formation.img_url).length <= 0 &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("rh") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_rh} alt="ressources humaines" className="training_img" />}
|
||||
|
||||
{!props.formation.img_url || String(props.formation.img_url).length <= 0 &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("vente") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_vente} alt="vente" className="training_img" />}
|
||||
|
||||
{!props.formation.img_url || String(props.formation.img_url).length <= 0 &&
|
||||
props.formation.metier && String(props.formation.metier).toLocaleLowerCase() === String("dev_perso") &&
|
||||
String(isclassimage) === "False" && <img src={img_met_dev_perso} alt="developpement personnel" className="training_img" />}
|
||||
|
||||
{String(isclassimage) === "True" && <img src={userimgclassprofil} alt="developpement personnel" className="training_img" />}
|
||||
|
||||
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50 ) && String(ismetiermanaged) === "0" && String(userimgclassprofil).length > 100 && <div className="forma_img_gauche">
|
||||
<img src={userimgclassprofil} alt="autre" className="training_img" />
|
||||
{props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par :<br /> {String(props.formation.institut_formation)} </div>}
|
||||
</div>}
|
||||
|
||||
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50 ) && String(ismetiermanaged) === "0" && String(userimgclassprofil).length <= 100 && <div className="forma_img_gauche">
|
||||
<img src={img_met_autre} alt="autre" className="training_img" />
|
||||
{props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par :<br /> {String(props.formation.institut_formation)} </div>}
|
||||
</div>}
|
||||
|
||||
{(!class_img_stored_in_bdd || String(class_img_stored_in_bdd).length < 50 ) && String(ismetiermanaged) === "1" && <div className="forma_img_gauche">
|
||||
<img src={props.formation.img_url} alt="autre" className="training_img" />
|
||||
{props.formation.institut_formation && <div style={{ width: '100%', "textAlign": "center" }}> Dispensé par : <br /> {String(props.formation.institut_formation)} </div>}
|
||||
</div>}
|
||||
|
||||
|
||||
<div className="forma_rightbox"
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
if (props.formation.url && props.formation.url.length > 5) {
|
||||
|
||||
window.open(
|
||||
props.formation.url,
|
||||
'_blank'
|
||||
);
|
||||
} else {
|
||||
window.open(
|
||||
"/Display-Partner-Catalog-Detail-formation/" + props.formation.internal_url,
|
||||
'_blank'
|
||||
);
|
||||
}
|
||||
}}>
|
||||
<div className="p_forma">
|
||||
<div className="div_row">
|
||||
|
||||
<div className="div_row_gauche" style={{ "marginTop": "5px" }}>
|
||||
{props.formation.note && String(props.formation.note).length === 1 &&
|
||||
parseInt(String(props.formation.note)) <= 5 &&
|
||||
|
||||
<Rating name="half-rating-read" defaultValue={props.formation.note} precision={0.5} readOnly />
|
||||
|
||||
}
|
||||
|
||||
</div>
|
||||
<div className="div_row_droite div_row_droite_cpf">
|
||||
<div className="block_cpf">
|
||||
<div className="block_cpf_txt">
|
||||
|
||||
|
||||
{props.formation.cpf && String(props.formation.cpf) === String("1") &&
|
||||
<div>
|
||||
OUI Éligible au CPF
|
||||
</div>}
|
||||
|
||||
{props.formation.cpf && String(props.formation.cpf) !== String("1") &&
|
||||
<div>
|
||||
NON Éligible au CPF
|
||||
</div>}
|
||||
|
||||
{!props.formation.cpf &&
|
||||
<div>
|
||||
NON Éligible au CPF
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="div_row row_formation_title">
|
||||
<p className="p_class training_title">
|
||||
<b>
|
||||
{String(parse(String(props.formation.title).replace(/(<([^>]+)>)/ig, ''))).substring(0, 100)}
|
||||
</b>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div className="div_row">
|
||||
|
||||
{String(props.formation.price).length == 9 &&
|
||||
<div className="training_price" > <i>Prix : Non communiqué</i>
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
{String(props.formation.price).length != 9 && String(props.formation.price) === String("0") &&
|
||||
<div className="training_price">Gratuit
|
||||
</div>
|
||||
}
|
||||
|
||||
{String(props.formation.price).length != 9 && String(props.formation.price) !== String("0") && (!props.formation.business_prices ||
|
||||
Object.keys(props.formation.business_prices).length <= 0) &&
|
||||
<div className="training_price">{props.formation.price} € HT
|
||||
|
||||
</div>
|
||||
}
|
||||
|
||||
{String(props.formation.price).length != 9 && String(props.formation.price) !== String("0") &&
|
||||
props.formation.business_prices && Object.keys(props.formation.business_prices).length > 0 &&
|
||||
<div className="training_price">
|
||||
<nav className="discounted_price">{String(props.formation.business_prices[0].discounted_price)} € HT</nav>
|
||||
<nav className="training_price_barre">
|
||||
{props.formation.price} € HT
|
||||
</nav>
|
||||
|
||||
<nav className="discount_block"> (- {String(props.formation.business_prices[0].discount)} % )
|
||||
</nav>
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
|
||||
<div className="div_row row_formation_desc">
|
||||
{parse(String(props.formation.description).replace(/(<([^>]+)>)/ig, ''))}
|
||||
|
||||
</div>
|
||||
{GetCurrentClass_trainingsession_cities_result && GetCurrentClass_trainingsession_cities_result.length > 0 &&
|
||||
<nav style={{ "width": "100%", "float": "left", "textAlign": "left", "color": "#619E31" }}>
|
||||
<nav style={{ "width": "auto", "float": "left" }}> <CiLocationOn className="icone_location" /> </nav>
|
||||
|
||||
{GetCurrentClass_trainingsession_cities_result && GetCurrentClass_trainingsession_cities_result.sort().slice(0, 5).map((formation_ville) => (
|
||||
<nav style={{ "width": "auto", "float": "left" }}>
|
||||
|
||||
|
||||
|
||||
{formation_ville &&
|
||||
|
||||
<b> {formation_ville.replaceAll('"', '').substring(0, 20).toLocaleLowerCase().charAt(0).toUpperCase() +
|
||||
formation_ville.replaceAll('"', '').substring(0, 20).toLocaleLowerCase().slice(1)} </b>
|
||||
|
||||
}
|
||||
|
||||
</nav>
|
||||
))}
|
||||
|
||||
|
||||
|
||||
</nav>
|
||||
}
|
||||
{!GetCurrentClass_result || GetCurrentClass_result.length <= 0 &&
|
||||
<nav style={{ "width": "100%", "float": "left", "textAlign": "left", "fontWeight": "700" }}><CiLocationOn className="icone_location" /> A venir </nav>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div className="div_row row_formation_crit">
|
||||
|
||||
<hr style={{ "width": "90%", "marginLeft": "auto", "marginRight": "auto", "marginBottom": "2px", "marginTop": "2px" }} />
|
||||
|
||||
<div className="div_row_gauche div_row_gauche_critere" >
|
||||
<div className="div_row_critere" style={{ "marginTop": "0.5rem", "marginBottom": "0.3rem" }}>
|
||||
{!props.formation.extented_search &&
|
||||
<div className="div_row_gauche">
|
||||
|
||||
|
||||
{props.formation.duration_unit &&
|
||||
<div style={{ "width": "100%" }}>
|
||||
<div className="criteres ftion_tab_gauche">Durée
|
||||
</div>
|
||||
|
||||
{String(props.formation.duration_unit) === "heure" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} hr(s)
|
||||
</div>}
|
||||
|
||||
{String(props.formation.duration_unit) === "heures" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} hr(s)
|
||||
</div>}
|
||||
|
||||
|
||||
{String(props.formation.duration_unit) === "jour" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} jr(s)
|
||||
</div>}
|
||||
|
||||
{String(props.formation.duration_unit) === "mois" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} mois(s)
|
||||
</div>}
|
||||
|
||||
{String(props.formation.duration_unit) === "semaine" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} Sem (s)
|
||||
</div>}
|
||||
|
||||
{String(props.formation.duration_unit) === "user_rythme" &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
A votre rythme
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
{!props.formation.duration_unit &&
|
||||
<div style={{ "width": "100%" }}>
|
||||
<div className="criteres ftion_tab_gauche">Durée
|
||||
</div>
|
||||
|
||||
{props.formation.duration && <div className="criteres ftion_tab_droite">
|
||||
{props.formation.duration} jr(s)
|
||||
</div>}
|
||||
|
||||
{!props.formation.duration && <div className="criteres ftion_tab_droite">
|
||||
<i> En traitement </i>
|
||||
</div>}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
}
|
||||
<div style={{ "width": "100%" }}>
|
||||
<div className="criteres ftion_tab_gauche">
|
||||
Certification
|
||||
</div>
|
||||
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.certif && String(props.formation.certif) === String("1") &&
|
||||
<div>
|
||||
Oui
|
||||
</div>}
|
||||
|
||||
{props.formation.certif && String(props.formation.certif) !== String("1") &&
|
||||
<div>
|
||||
Non
|
||||
</div>}
|
||||
|
||||
{!props.formation.certif &&
|
||||
<div>
|
||||
NC
|
||||
</div>}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="media_sociaux" style={{ 'float': "left", marginTop: "0.2rem", }}>
|
||||
<FacebookShareButton
|
||||
url={"https://www.mysy-training.com/Display-Partner-Catalog-Detail-formation/" + props.formation.internal_url}
|
||||
|
||||
quote={props.formation.title + " -- " + props.formation.description}
|
||||
hashtag={"ySyTraining"}
|
||||
>
|
||||
<SocialIcon network="facebook" style={{ height: 20, width: 20 }} />
|
||||
</FacebookShareButton>
|
||||
|
||||
|
||||
<TwitterShareButton
|
||||
url={"https://www.mysy-training.com/Display-Partner-Catalog-Detail-formation/" + props.formation.internal_url}
|
||||
hashtag={"#MySy-Formation"}
|
||||
>
|
||||
<SocialIcon network="twitter" style={{ height: 20, width: 20 }} />
|
||||
</TwitterShareButton>
|
||||
|
||||
|
||||
<LinkedinShareButton
|
||||
url={"https://www.mysy-training.com/Display-Partner-Catalog-Detail-formation/" + props.formation.internal_url}
|
||||
title={" Une nouvelle formation : " + props.formation.title}
|
||||
summary={props.formation.title + " -- " + props.formation.description}
|
||||
|
||||
source={"https://www.mysy-training.com/"}
|
||||
|
||||
>
|
||||
<SocialIcon network="linkedin" style={{ height: 20, width: 20 }} />
|
||||
</LinkedinShareButton>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
|
||||
<div className="div_row_droite" style={{ textAlign: "center" }}>
|
||||
{String(props.formation.coeur) === String("1") && <div>
|
||||
<img class="imgcoeur" src={coeurimg} alt="coup de coeur" />
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div style={{ "width": "100%", "float": "right" }}>
|
||||
<div className="criteres ftion_tab_gauche">
|
||||
Sur site
|
||||
</div>
|
||||
{props.formation.presentiel && props.formation.presentiel.presentiel &&
|
||||
String(props.formation.presentiel.presentiel) === String("1") && <div className="criteres ftion_tab_droite">
|
||||
Oui
|
||||
</div>}
|
||||
|
||||
{props.formation.presentiel && props.formation.presentiel.presentiel &&
|
||||
String(props.formation.presentiel.presentiel) !== String("1") && <div className="criteres ftion_tab_droite">
|
||||
Non
|
||||
</div>}
|
||||
|
||||
{!props.formation.presentiel || !props.formation.presentiel.presentiel &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
NC
|
||||
</div>}
|
||||
</div>
|
||||
|
||||
<div style={{ "width": "100%", "float": "right" }}>
|
||||
<div className="criteres ftion_tab_gauche">
|
||||
A distance
|
||||
</div>
|
||||
{props.formation.presentiel && props.formation.presentiel.distantiel &&
|
||||
String(props.formation.presentiel.distantiel) === String("1") && <div className="criteres ftion_tab_droite">
|
||||
Oui
|
||||
</div>}
|
||||
|
||||
{props.formation.presentiel && props.formation.presentiel.distantiel &&
|
||||
String(props.formation.presentiel.distantiel) !== String("1") && <div className="criteres ftion_tab_droite">
|
||||
Non
|
||||
</div>}
|
||||
|
||||
{!props.formation.presentiel || !props.formation.presentiel.distantiel &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
NC
|
||||
</div>}
|
||||
</div>
|
||||
|
||||
<div style={{ "width": "100%", "float": "right" }}>
|
||||
<div className="criteres ftion_tab_gauche">
|
||||
Support
|
||||
</div>
|
||||
{props.formation.support &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
{props.formation.support}
|
||||
</div>}
|
||||
|
||||
{!props.formation.support &&
|
||||
<div className="criteres ftion_tab_droite">
|
||||
NC
|
||||
</div>}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div className="div_row_droite div_row_droite_critere" >
|
||||
{!props.formation.extented_search && props.formation.coeur != "1" &&
|
||||
<div style={{ 'float': "right", "width": "100%", textAlign: "right", marginTop: "0rem", }}>
|
||||
|
||||
<Button className="bton_se_renseinger"
|
||||
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
if (props.formation.url && props.formation.url.length > 5) {
|
||||
|
||||
window.open(
|
||||
props.formation.url,
|
||||
'_blank'
|
||||
);
|
||||
} else {
|
||||
|
||||
window.open(
|
||||
"/Display-Partner-Catalog-Detail-formation/" + props.formation.internal_url + "/Information",
|
||||
'_blank'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}}
|
||||
|
||||
>Se renseigner </Button>
|
||||
|
||||
|
||||
<Button className="bton_voir_detail"
|
||||
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
//test(props.formation.external_code);
|
||||
|
||||
if (props.formation.url && props.formation.url.length > 5) {
|
||||
|
||||
window.open(
|
||||
props.formation.url,
|
||||
'_blank'
|
||||
);
|
||||
} else {
|
||||
window.open(
|
||||
"/Display-Partner-Catalog-Detail-formation/" + props.formation.internal_url,
|
||||
'_blank'
|
||||
);
|
||||
}
|
||||
|
||||
}}
|
||||
>Voir details</Button>
|
||||
|
||||
{GetCurrentClass_result && GetCurrentClass_result.length > 0 &&
|
||||
<Button variant="contained" className="bton_sinscrire"
|
||||
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
|
||||
window.open(
|
||||
"/Display-Partner-Catalog-Detail-formation/" + props.formation.internal_url + "/Inscription",
|
||||
'_blank'
|
||||
);
|
||||
|
||||
}}
|
||||
|
||||
>S'incrire</Button>
|
||||
}
|
||||
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export default Formation_Partner_Catalog;
|
||||
|
|
@ -1,162 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="../src/App.css">
|
||||
<script src="https://widget-js.cometchat.io/v2/cometchatwidget.js"></script>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||
<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" />
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is installed on a
|
||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||
-->
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<!--
|
||||
Notice the use of %PUBLIC_URL% in the tags above.
|
||||
It will be replaced with the URL of the `public` folder during the build.
|
||||
Only files inside the `public` folder can be referenced from the HTML.
|
||||
|
||||
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||
work correctly both with client-side routing and a non-root public URL.
|
||||
Learn how to configure a non-root public URL by running `npm run build`.
|
||||
-->
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-37423053-2"></script>
|
||||
|
||||
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-VQJL28S28H"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-VQJL28S28H');
|
||||
</script>
|
||||
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function (w, d, s, l, i) {
|
||||
w[l] = w[l] || []; w[l].push({
|
||||
'gtm.start':
|
||||
new Date().getTime(), event: 'gtm.js'
|
||||
}); var f = d.getElementsByTagName(s)[0],
|
||||
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
|
||||
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
|
||||
})(window, document, 'script', 'dataLayer', 'GTM-5MR9Z8N2');</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
|
||||
<script src="https://js.stripe.com/v3/"></script>
|
||||
<!-- <script src="https://cdn.tiny.cloud/1/1e3z9qnqh8jrw2xowh8c3zo8edc333zy5jdt7albegzcv752/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script> -->
|
||||
|
||||
<!-- <script src="tinymce/js/tinymce/tinymce.min.js"></script> -->
|
||||
|
||||
<script src="/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
|
||||
<script>
|
||||
tinymce.init({
|
||||
selector: '#mytextarea',
|
||||
license_key: 'gpl|<your-license-key>'
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag("js", new Date());
|
||||
|
||||
gtag("config", "UA-37423053-2");
|
||||
</script>
|
||||
|
||||
<!-- Smartsupp Live Chat script -->
|
||||
<script type="text/javascript">
|
||||
var _smartsupp = _smartsupp || {};
|
||||
_smartsupp.key = '2193f283b62a483c4d12f96fb3e48d866f1bfe61';
|
||||
window.smartsupp || (function (d) {
|
||||
var s, c, o = smartsupp = function () { o._.push(arguments) }; o._ = [];
|
||||
s = d.getElementsByTagName('script')[0]; c = d.createElement('script');
|
||||
c.type = 'text/javascript'; c.charset = 'utf-8'; c.async = true;
|
||||
c.src = 'https://www.smartsuppchat.com/loader.js?'; s.parentNode.insertBefore(c, s);
|
||||
})(document);
|
||||
</script>
|
||||
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-17B18WZKPN"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-17B18WZKPN');
|
||||
</script>
|
||||
|
||||
<!-- Google Fonts-- >
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap"
|
||||
rel="stylesheet">
|
||||
|
||||
-->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5MR9Z8N2" height="0" width="0"
|
||||
style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
|
||||
|
||||
|
||||
<div id="root"></div>
|
||||
<!--
|
||||
This HTML file is a template.
|
||||
If you open it directly in the browser, you will see an empty page.
|
||||
|
||||
You can add webfonts, meta tags, or analytics to this file.
|
||||
The build step will place the bundled scripts into the <body> tag.
|
||||
|
||||
To begin the development, run `npm start` or `yarn start`.
|
||||
To create a production bundle, use `npm run build` or `yarn build`.
|
||||
-->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -22,7 +22,7 @@ import { useLocation } from "react-router-dom";
|
|||
import { FaHandPointRight } from "react-icons/fa";
|
||||
import Intranet_Factures_Client from "./Intranet_Factures_Client";
|
||||
import Intranet_Tous_Documents from "./Intranet_Tous_Documents";
|
||||
import Modules_Mes_Documents from "./Modules_Mes_Documents";
|
||||
import Modules_Mes_Documents from "./Modules_Mes_Documents_old";
|
||||
import Intranet_Mes_Stagiaires from "./Intranet_Mes_Stagiaires";
|
||||
|
||||
function Account() {
|
||||
|
|
@ -509,7 +509,7 @@ function Account() {
|
|||
my_title={"Gestion Documentaire"}
|
||||
type_user_connected={"user_account"}
|
||||
type_document={"all"}
|
||||
/>}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("mes_devis") && connected_user_data && connected_user_data.partner_owner_recid &&
|
||||
connected_user_data.partner_client_id &&
|
||||
|
|
|
|||
|
|
@ -8569,7 +8569,7 @@ const AddClassManual = (props) => {
|
|||
<div class="separator">
|
||||
<nav className="separator_label">
|
||||
Champs spécifiques </nav>
|
||||
</div>}
|
||||
</div>}
|
||||
|
||||
<div style={{ width: '100%', float: 'left', }}>
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import { Fab } from "@material-ui/core";
|
|||
import 'react-tooltip/dist/react-tooltip.css'
|
||||
import { Tooltip } from 'react-tooltip'
|
||||
import { CiEdit, CiTrash } from "react-icons/ci";
|
||||
|
||||
import Modules_Mes_Documents from "./Modules_Mes_Documents";
|
||||
import { AiOutlineUserAdd } from "react-icons/ai";
|
||||
import PartnerClientActivite from "./PartnerClient_Activite";
|
||||
import Popup from 'reactjs-popup';
|
||||
|
|
@ -5543,6 +5543,21 @@ const AddParnerClient = (props) => {
|
|||
<div className="div_row" style={{ "border": "None" }}>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<Modules_Mes_Documents
|
||||
partner_client_id={""}
|
||||
partner_owner_recid={""}
|
||||
type_user_connected={"partner_account"}
|
||||
my_title={"Gestion Documentaire"}
|
||||
object_owner_collection={"partner_client"}
|
||||
object_owner_id={props.client_id}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -28035,6 +28035,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
GetListeInscrit={GetListeInscrit}
|
||||
internal_url={selected_internal_url}
|
||||
check_user_acces_right={props.check_user_acces_right}
|
||||
selected_class_id={session_selected_class_id}
|
||||
|
||||
submenu_emargement={submenu_emargement}
|
||||
submenu_evaluation={submenu_evaluation_session}
|
||||
|
|
@ -28222,7 +28223,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
{String(submenu) === String("attestation") && <div style={{ "border": "None" }}>
|
||||
|
||||
<Module_Attestation_Formation conntected_employee_id={props.conntected_employee_id} related_collection={"session_formation"}
|
||||
related_collection_recid={selected_session_id} />
|
||||
related_collection_recid={selected_session_id} class_id={session_selected_class_id} />
|
||||
|
||||
</div>}
|
||||
|
||||
|
|
@ -28231,7 +28232,8 @@ const DisplayPartnerPromotion = (props) => {
|
|||
<Module_Evaluation_Positionnement conntected_employee_id={props.conntected_employee_id}
|
||||
related_collection={"session_formation"}
|
||||
related_collection_recid={selected_session_id}
|
||||
class_internal_url={selected_internal_url} />
|
||||
class_internal_url={selected_internal_url}
|
||||
class_id={session_selected_class_id} />
|
||||
|
||||
</div>}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import Popup from 'reactjs-popup';
|
|||
import 'reactjs-popup/dist/index.css';
|
||||
import { FcSearch } from "react-icons/fc";
|
||||
import { FcAlarmClock, FcMultipleSmartphones, FcWorkflow, FcComments } from "react-icons/fc";
|
||||
|
||||
import { FaComment } from "react-icons/fa6";
|
||||
import fr from 'date-fns/locale/fr';
|
||||
import { registerLocale } from 'react-datepicker';
|
||||
import DatePicker from "react-datepicker";
|
||||
|
|
@ -803,6 +803,32 @@ const DisplayPartnerSession = (props) => {
|
|||
},
|
||||
},
|
||||
{ field: 'amount', headerName: 'Montant Formation', minWidth: 100, flex: 1, maxWidth: 150, type: 'number', flex: 1, editable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
{
|
||||
field: 'comment_or_memo', headerName: 'Memo & Comment.', Width: 50, hide: false, editable: false,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all", cursor: "pointer",
|
||||
textAlign:'center',width:'100%' }} onClick={(event) => {
|
||||
|
||||
setp_detail_inscription_comment(cellValues.row.comment);
|
||||
setp_detail_inscription_memo(cellValues.row.memo);
|
||||
setselected_inscription_id(cellValues.row._id);
|
||||
setselected_inscription_email(cellValues.row.email);
|
||||
setselected_inscription_invoice_status("0");
|
||||
setselected_inscription_status("0");
|
||||
setDialog_Memo_Comment_open(true);
|
||||
}}>
|
||||
{(cellValues.row.comment && String(cellValues.row.comment).length > 2 ||
|
||||
cellValues.row.memo && String(cellValues.row.memo).length > 2)
|
||||
&& <nav> <FaComment style={{ fontSize: "16px", color: "green" }} /> </nav>}
|
||||
|
||||
</div>
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
field: "update", headerName: 'Mise à jour',
|
||||
renderCell: (cellValues) => {
|
||||
|
|
@ -1347,6 +1373,32 @@ const DisplayPartnerSession = (props) => {
|
|||
{ field: 'modefinancement', headerName: 'Financement', minWidth: 100, flex: 1, maxWidth: 150, hide: true, editable: false },
|
||||
{ field: 'amount', headerName: 'Prix', minWidth: 100, flex: 1, maxWidth: 100, type: 'number', flex: 1, editable: false },
|
||||
|
||||
{
|
||||
field: 'comment_or_memo', headerName: 'Memo & Comment.', Width: 50, hide: false, editable: false,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all", cursor: "pointer", textAlign:'center',
|
||||
width:'100%'
|
||||
}} onClick={(event) => {
|
||||
|
||||
setp_detail_inscription_comment(cellValues.row.comment);
|
||||
setp_detail_inscription_memo(cellValues.row.memo);
|
||||
setselected_inscription_id(cellValues.row._id);
|
||||
setselected_inscription_email(cellValues.row.email);
|
||||
setselected_inscription_invoice_status(cellValues.row.invoiced);
|
||||
setselected_inscription_status("1");
|
||||
setDialog_Memo_Comment_open(true);
|
||||
}}>
|
||||
{(cellValues.row.comment && String(cellValues.row.comment).length > 2 ||
|
||||
cellValues.row.memo && String(cellValues.row.memo).length > 2)
|
||||
&& <nav> <FaComment style={{ fontSize: "16px", color: "green" }} /> </nav>}
|
||||
|
||||
</div>
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
field: 'invoiced', headerName: 'Facturé', minWidth: 100, flex: 1, maxWidth: 100, hide: false, editable: false,
|
||||
valueFormatter: (params) => {
|
||||
|
|
@ -1359,6 +1411,9 @@ const DisplayPartnerSession = (props) => {
|
|||
{ field: 'invoiced_ref', headerName: 'Num Fact.', minWidth: 100, flex: 1, maxWidth: 150, flex: 1, editable: false, hide: false, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'invoiced_date', headerName: 'Date Fact.', minWidth: 100, flex: 1, maxWidth: 150, flex: 1, editable: false, hide: true, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
|
||||
|
||||
|
||||
{
|
||||
field: "split_invoice", headerName: 'Eclat. Fact',
|
||||
renderCell: (cellValues) => {
|
||||
|
|
@ -1677,8 +1732,9 @@ const DisplayPartnerSession = (props) => {
|
|||
},
|
||||
},
|
||||
|
||||
{ field: 'memo', headerName: 'Mémo', maxWidth: 0, hide: true, editable: false },
|
||||
{ field: 'comment', headerName: 'Commentaire', maxWidth: 0, hide: true, editable: false },
|
||||
{ field: 'memo', headerName: 'Mémo', Width: 0, hide: true, editable: false },
|
||||
{ field: 'comment', headerName: 'Commentaire', Width: 0, hide: true, editable: false },
|
||||
|
||||
]
|
||||
|
||||
const columns_list_emargement = [
|
||||
|
|
@ -12461,7 +12517,7 @@ const DisplayPartnerSession = (props) => {
|
|||
else
|
||||
setNew_Get_List_Stagiaire_Conventions_result([])
|
||||
|
||||
console.log(" ## new_data2 = ", new_data2);
|
||||
// console.log(" ## new_data2 = ", new_data2);
|
||||
|
||||
}
|
||||
else {
|
||||
|
|
@ -12531,6 +12587,8 @@ const DisplayPartnerSession = (props) => {
|
|||
else if (local_type_document === "CONVOCATION_STAGIAIRE_MAIL"
|
||||
|| local_type_document === "CONVOCATION_STAGIAIRE_PDF")
|
||||
setselected_convocation_id(mylocaltraining[local_type_document]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -12549,7 +12607,7 @@ const DisplayPartnerSession = (props) => {
|
|||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Class_Default_Document_id = ', error);
|
||||
setGet_Class_Default_Document_id_api("false");
|
||||
alert("Impossible de récupérer le document par défaut");
|
||||
// alert("Impossible de récupérer le document par défaut");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
|
@ -16701,6 +16759,10 @@ const DisplayPartnerSession = (props) => {
|
|||
fullWidth
|
||||
options={New_Option_Type_Document}
|
||||
onChange={(event, value) => {
|
||||
|
||||
setselected_convention_id("");
|
||||
setNew_Get_List_Stagiaire_Conventions_result([])
|
||||
|
||||
if (value && value.value) {
|
||||
if (value.value === "email" && String(Dialog_1_message) === "CONVENTION_STAGIAIRE_INDIVIDUELLE")
|
||||
Get_Class_Default_Document_id("CONVENTION_STAGIAIRE_INDIVIDUELLE_MAIL");
|
||||
|
|
@ -16708,7 +16770,6 @@ const DisplayPartnerSession = (props) => {
|
|||
Get_Class_Default_Document_id("CONVENTION_STAGIAIRE_INDIVIDUELLE_PDF");
|
||||
|
||||
|
||||
|
||||
else if (value.value === "email" && String(Dialog_1_message) === "CONVENTION_STAGIAIRE_ENTREPRISE")
|
||||
Get_Class_Default_Document_id("CONVENTION_STAGIAIRE_ENTREPRISE_MAIL");
|
||||
else if (value.value === "pdf" && String(Dialog_1_message) === "CONVENTION_STAGIAIRE_ENTREPRISE")
|
||||
|
|
@ -17091,6 +17152,9 @@ const DisplayPartnerSession = (props) => {
|
|||
fullWidth
|
||||
options={New_Option_Type_Document}
|
||||
onChange={(event, value) => {
|
||||
setselected_convocation_id("");
|
||||
settab_convention_pieces_jointes_result([]);
|
||||
setNew_Get_List_Stagiaire_Convocations_result([])
|
||||
if (value && value.value) {
|
||||
|
||||
if (value.value === "email")
|
||||
|
|
@ -20371,7 +20435,7 @@ const DisplayPartnerSession = (props) => {
|
|||
{/** Affichage Timeline */}
|
||||
|
||||
{/*** Fin affichage timeline */}
|
||||
|
||||
|
||||
|
||||
{(!display_session_with_alert || display_session_with_alert !== true) && <div className="div_row" style={{ "border": "None" }}>
|
||||
<div className='block_groupe_class'>
|
||||
|
|
@ -27652,6 +27716,7 @@ const DisplayPartnerSession = (props) => {
|
|||
GetListeInscrit={GetListeInscrit}
|
||||
internal_url={selected_internal_url}
|
||||
check_user_acces_right={props.check_user_acces_right}
|
||||
selected_class_id={session_selected_class_id}
|
||||
|
||||
submenu_emargement={submenu_emargement}
|
||||
submenu_evaluation={submenu_evaluation_session}
|
||||
|
|
@ -28122,7 +28187,7 @@ const DisplayPartnerSession = (props) => {
|
|||
{String(submenu) === String("attestation") && <div style={{ "border": "None" }}>
|
||||
|
||||
<Module_Attestation_Formation conntected_employee_id={props.conntected_employee_id} related_collection={"session_formation"}
|
||||
related_collection_recid={selected_session_id} />
|
||||
related_collection_recid={selected_session_id} class_id={session_selected_class_id}/>
|
||||
|
||||
</div>}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,285 @@
|
|||
import React, { useRef, useState, useEffect } from "react";
|
||||
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
|
||||
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||
import axios from "axios";
|
||||
import { useParams } from 'react-router-dom';
|
||||
import { getCookie, setCookie } from 'react-use-cookie';
|
||||
import { useHistory } from "react-router-dom";
|
||||
import fileDownload from 'js-file-download'
|
||||
import TextField from '@mui/material/TextField';
|
||||
import MenuItem from '@mui/material/MenuItem';
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
import DialogActions from '@mui/material/DialogActions';
|
||||
import DialogContent from '@mui/material/DialogContent';
|
||||
import DialogContentText from '@mui/material/DialogContentText';
|
||||
import DialogTitle from '@mui/material/DialogTitle';
|
||||
import Button from '@mui/material/Button';
|
||||
import VisibilityIcon from '@mui/icons-material/Visibility';
|
||||
import ArrowCircleDownIcon from '@mui/icons-material/ArrowCircleDown';
|
||||
|
||||
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 FilePresentIcon from '@mui/icons-material/FilePresent';
|
||||
import PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';
|
||||
import { BsFiletypePdf } from "react-icons/bs";
|
||||
import { GoFile } from "react-icons/go";
|
||||
|
||||
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 Document_Affichage_Grid = (props) => {
|
||||
|
||||
const classes = useStyles();
|
||||
|
||||
const [isLoading, setLoading] = 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("");
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
|
||||
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
behavior: "smooth",
|
||||
});
|
||||
|
||||
}, [props.apprenant_id])
|
||||
|
||||
function print_document_pdf(doc_id, file_extention, file_business_object) {
|
||||
|
||||
var part_cookie = getCookie('tokenmysypart');
|
||||
|
||||
|
||||
var nom_fichier_cmd = String(file_business_object) + "." + String(file_extention);
|
||||
// console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- doc_id = ", doc_id);
|
||||
|
||||
var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File_From_Id/" + part_cookie + "/" + doc_id;
|
||||
|
||||
//console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- selected_id = ", selected_id, " --- url =", url);
|
||||
|
||||
axios.get(url, { responseType: 'blob', },)
|
||||
.then((res) => {
|
||||
fileDownload(res.data, nom_fichier_cmd)
|
||||
}).catch((error) => {
|
||||
console.error('Error:', error);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function preview_document_pdf(doc_id, file_extention, file_business_object) {
|
||||
|
||||
var part_cookie = getCookie('tokenmysypart');
|
||||
|
||||
|
||||
var nom_fichier_cmd = String(file_business_object) + "." + String(file_extention);
|
||||
// console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- doc_id = ", doc_id);
|
||||
|
||||
var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File_From_Id/" + part_cookie + "/" + doc_id;
|
||||
|
||||
//console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- selected_id = ", selected_id, " --- url =", url);
|
||||
|
||||
axios.get(url, { responseType: 'blob', },)
|
||||
.then((res) => {
|
||||
|
||||
const blob = new Blob([res.data], { type: 'application/pdf' });
|
||||
const url = URL.createObjectURL(blob);
|
||||
setselected_doc_img(url);
|
||||
|
||||
// fileDownload(res.data, nom_fichier_cmd)
|
||||
}).catch((error) => {
|
||||
console.error('Error:', error);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
const [Dialog_Preview_Doc_message, setDialog_Preview_Doc_message] = React.useState(false);
|
||||
const [Dialog_Preview_Doc_open, setDialog_Preview_Doc_open] = React.useState(false);
|
||||
function Dialog_Preview_Doc_handle_change_participant_session(message) {
|
||||
setDialog_Preview_Doc_message(message);
|
||||
setDialog_Preview_Doc_open(true);
|
||||
}
|
||||
|
||||
const Dialog_Preview_Doc_handleClose = () => {
|
||||
|
||||
};
|
||||
|
||||
const Dialog_Preview_Doc_handleClose_buton = () => {
|
||||
setDialog_Preview_Doc_open(false);
|
||||
};
|
||||
|
||||
|
||||
const [selected_doc_img, setselected_doc_img] = React.useState("");
|
||||
const [selected_doc_name, setselected_doc_name] = React.useState("");
|
||||
|
||||
|
||||
return (
|
||||
|
||||
<div className="modules_mes_documents">
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
|
||||
{/*** Affichage des messages d'alerte*/}
|
||||
{display_alert_mysy && String(display_alert_mysy) === "1" &&
|
||||
<Module_Alert_Confirmation alert_message={alert_message}
|
||||
alert_type={alert_type}
|
||||
clear_alert_message={clear_alert_message}
|
||||
clear_alert_type={clear_alert_type}
|
||||
clear_display_alert_mysy={clear_display_alert_mysy}
|
||||
/>
|
||||
}
|
||||
{/*** FIN Affichage des messages d'alerte*/}
|
||||
|
||||
|
||||
|
||||
|
||||
{/***** Dialog Preview Image */}
|
||||
<Dialog
|
||||
open={Dialog_Preview_Doc_open}
|
||||
// onClose={Dialog_Preview_Doc_handleClose}
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
|
||||
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
width: '40rem'
|
||||
},
|
||||
}}
|
||||
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" >{selected_doc_name}</DialogTitle>
|
||||
<DialogContent>
|
||||
<DialogContentText>
|
||||
{Dialog_Preview_Doc_message}
|
||||
</DialogContentText>
|
||||
|
||||
<div style={{ width: '100%', height: '35rem' }}> <br />
|
||||
|
||||
{selected_doc_img &&
|
||||
<iframe src={selected_doc_img} style={{ height: '30rem', width: '90%' }}></iframe>}
|
||||
|
||||
</div>
|
||||
|
||||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
<IconButton
|
||||
// autoFocus
|
||||
onClick={Dialog_Preview_Doc_handleClose_buton}
|
||||
color="primary"
|
||||
className={classes.customizedButton}
|
||||
>
|
||||
<CancelPresentationIcon />
|
||||
</IconButton>
|
||||
|
||||
</DialogActions>
|
||||
</Dialog>
|
||||
|
||||
{/***** FIN Dialog Preview Image */}
|
||||
|
||||
|
||||
|
||||
<div style={{ width: '100%', float: 'left', }}>
|
||||
<div className="file-grid">
|
||||
|
||||
{props.list_document &&
|
||||
props.list_document.map((document) => (
|
||||
|
||||
<div className="file-grid">
|
||||
<div className="file-card">
|
||||
<div className="file-icon"><GoFile style={{ fontSize: '30px', color: '#81bc3a' }} /> </div>
|
||||
<div className="file-name">{JSON.parse(document).file_business_object}</div>
|
||||
<div className="file-date">Crée le {String(JSON.parse(document).creation_date).substring(0, 10)}</div>
|
||||
<div className="file-date" style={{ width: '40%', float: 'left', cursor: 'pointer' }} onClick={(e) => {
|
||||
preview_document_pdf(JSON.parse(document)._id, JSON.parse(document).file_extention, JSON.parse(document).file_business_object);
|
||||
setselected_doc_name(JSON.parse(document).file_business_object);
|
||||
setDialog_Preview_Doc_open(true);
|
||||
}}>
|
||||
<VisibilityIcon style={{ color: 'white' }} />
|
||||
</div>
|
||||
<div className="file-date" style={{ width: '40%', float: 'right', cursor: 'pointer' }} onClick={(e) => {
|
||||
print_document_pdf(JSON.parse(document)._id, JSON.parse(document).file_extention, JSON.parse(document).file_business_object);
|
||||
setselected_doc_name(JSON.parse(document).file_business_object);
|
||||
|
||||
}}>
|
||||
<ArrowCircleDownIcon style={{ color: 'white' }} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
))}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
export default Document_Affichage_Grid;
|
||||
|
|
@ -376,7 +376,7 @@ registerLocale('fr', fr);
|
|||
|
||||
|
||||
]
|
||||
|
||||
|
||||
|
||||
const columns_employee_acces_right = [
|
||||
{ field: '_id', headerName: '_id', hide: true },
|
||||
|
|
|
|||
|
|
@ -3087,7 +3087,7 @@ const Groupe_Apprenant = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog" ><b> Classe </b> <br />
|
||||
<div className="session_caract_Dialog" ><b> Promotion </b> <br />
|
||||
{New_Getall_Partner_Session_Reduice_Fields_result && New_Getall_Partner_Session_Reduice_Fields_result.length > 0 &&
|
||||
|
||||
<Autocomplete
|
||||
|
|
|
|||
|
|
@ -393,7 +393,7 @@ const Module_Attestation_Formation = (props) => {
|
|||
fileDownload(res.data, nom_fichier_cmd);
|
||||
setselectionModel_attestation([]);
|
||||
setactionmass_attesation_val("");
|
||||
Getall_Attestation_By_Session();
|
||||
Getall_Attestation_By_Session();
|
||||
|
||||
}
|
||||
}).catch((error) => {
|
||||
|
|
@ -489,6 +489,7 @@ const Module_Attestation_Formation = (props) => {
|
|||
for (var i = 0; i < selectionModel_attestation.length; i++) {
|
||||
var myid = parseInt(String(selectionModel_attestation[i]));
|
||||
var line = JSON.parse(Getall_Attestation_By_Session_result[myid]);
|
||||
|
||||
var line_id = JSON.parse(Getall_Attestation_By_Session_result[myid])._id;
|
||||
|
||||
tab_ids_inscription.push(line_id);
|
||||
|
|
@ -521,7 +522,7 @@ const Module_Attestation_Formation = (props) => {
|
|||
|
||||
]
|
||||
|
||||
const [selected_convention_id, setselected_convention_id] = useState();
|
||||
const [selected_convention_id, setselected_convention_id] = useState("");
|
||||
const [selected_convention_type, setselected_convention_type] = useState("");
|
||||
const [selected_convention_email_destinataire_prod, setselected_convention_email_destinataire_prod] = useState("");
|
||||
const [selected_convention_email_test, setselected_convention_email_test] = useState("");
|
||||
|
|
@ -534,7 +535,7 @@ const Module_Attestation_Formation = (props) => {
|
|||
function Get_List_Stagiaire_Attestation_Ftion(ref_interne, nom, type_doc, courrier_template_type_document_ref_interne) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("type_doc", type_doc);
|
||||
|
|
@ -588,6 +589,21 @@ const Module_Attestation_Formation = (props) => {
|
|||
new_data2.push(node);
|
||||
});
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": "",
|
||||
"id": "",
|
||||
"label": "",
|
||||
"ref_interne": "",
|
||||
"nom": "",
|
||||
"sujet": "",
|
||||
"type_doc": "",
|
||||
"cible": "",
|
||||
"joint_pdf": "",
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
if (new_data2.length > 0)
|
||||
setNew_Get_List_Stagiaire_Attestation_Ftion_result(new_data2);
|
||||
|
||||
|
|
@ -634,6 +650,69 @@ const Module_Attestation_Formation = (props) => {
|
|||
setdisplay_alert_mysy("");
|
||||
}
|
||||
|
||||
const [New_Get_Class_Default_Document_id_result, setNew_Get_Class_Default_Document_id_result] = useState("");
|
||||
|
||||
const [Get_Class_Default_Document_id_api, setGet_Class_Default_Document_id_api] = useState();
|
||||
const [Get_Class_Default_Document_id_message, setGet_Class_Default_Document_id_message] = useState();
|
||||
const [Get_Class_Default_Document_id_result, setGet_Class_Default_Document_id_result] = useState();
|
||||
function Get_Class_Default_Document_id(local_type_document) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("class_id", props.class_id);
|
||||
form.append("document_type", local_type_document);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Class_List_Default_Documents_For_Given_Type_Doc/";
|
||||
setLoading(true);
|
||||
|
||||
setNew_Get_Class_Default_Document_id_result("");
|
||||
setselected_convention_id("");
|
||||
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
//console.log(" In Get_Class_Default_Document_id res.data.status = " + res.data.status);
|
||||
// console.log(" In Get_Class_Default_Document_id res.data.message r_class = " + res.data.message);
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
||||
|
||||
setGet_Class_Default_Document_id_api("true");
|
||||
setGet_Class_Default_Document_id_result(res.data.message);
|
||||
|
||||
var mylocaltraining = JSON.parse(res.data.message);
|
||||
|
||||
if (mylocaltraining[local_type_document]) {
|
||||
console.log(" OKKK = ", mylocaltraining[local_type_document]);
|
||||
setNew_Get_Class_Default_Document_id_result(mylocaltraining[local_type_document]);
|
||||
if (local_type_document === "ATTESTATION_FORMATION_MAIL"
|
||||
|| local_type_document === "ATTESTATION_FORMATION_PDF")
|
||||
setselected_convention_id(mylocaltraining[local_type_document]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
setGet_Class_Default_Document_id_api("false");
|
||||
setGet_Class_Default_Document_id_message(res.data.message);
|
||||
// alert(res.data.message);
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("error");
|
||||
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Class_Default_Document_id = ', error);
|
||||
setGet_Class_Default_Document_id_api("false");
|
||||
// alert("Impossible de récupérer le document par défaut");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
<div className="module_attestation_formation">
|
||||
|
|
@ -721,7 +800,7 @@ const Module_Attestation_Formation = (props) => {
|
|||
</DialogContentText>
|
||||
|
||||
|
||||
{ <div className="session_caract_Dialog" > Type Document<br />
|
||||
{<div className="session_caract_Dialog" > Type Document<br />
|
||||
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
|
|
@ -732,11 +811,21 @@ const Module_Attestation_Formation = (props) => {
|
|||
fullWidth
|
||||
options={New_Option_Type_Document}
|
||||
onChange={(event, value) => {
|
||||
|
||||
setselected_convention_id("");
|
||||
setNew_Get_List_Stagiaire_Attestation_Ftion_result([])
|
||||
|
||||
if (value && value.value) {
|
||||
setselected_convention_type(value.value);
|
||||
Get_List_Stagiaire_Attestation_Ftion(action_server_ref_interne_doc, action_server_nom_doc,
|
||||
String(value.value), Dialog_1_message);
|
||||
|
||||
|
||||
if (value.value === "email")
|
||||
Get_Class_Default_Document_id("ATTESTATION_FORMATION_MAIL");
|
||||
else if (value.value === "pdf")
|
||||
Get_Class_Default_Document_id("ATTESTATION_FORMATION_PDF");
|
||||
|
||||
}
|
||||
}}
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
|
|
@ -751,18 +840,21 @@ const Module_Attestation_Formation = (props) => {
|
|||
</div>}
|
||||
|
||||
{<div className="session_caract_Dialog" > <b> Choisir un modèle attestation </b>
|
||||
<Autocomplete
|
||||
{New_Get_List_Stagiaire_Attestation_Ftion_result.length > 0 && <Autocomplete
|
||||
disablePortal
|
||||
name="event_dialog_version_convention"
|
||||
id="event_dialog_version_convention"
|
||||
fullWidth
|
||||
//className="disabled_style enable_style"
|
||||
options={New_Get_List_Stagiaire_Attestation_Ftion_result}
|
||||
value={New_Get_List_Stagiaire_Attestation_Ftion_result.filter((data) => (data)._id === String(selected_convention_id))[0].label}
|
||||
|
||||
onChange={(event, value) => {
|
||||
if (value && value._id) {
|
||||
setselected_convention_id(value._id);
|
||||
|
||||
console.log(" New_Get_List_Stagiaire_Attestation_Ftion_result = ", New_Get_List_Stagiaire_Attestation_Ftion_result)
|
||||
|
||||
if (String(value._id) === "default_mail") {
|
||||
setselected_convention_type("email");
|
||||
}
|
||||
|
|
@ -781,7 +873,7 @@ const Module_Attestation_Formation = (props) => {
|
|||
|
||||
/>
|
||||
}
|
||||
/>
|
||||
/>}
|
||||
|
||||
</div>}
|
||||
|
||||
|
|
@ -963,6 +1055,7 @@ const Module_Attestation_Formation = (props) => {
|
|||
|
||||
onSelectionModelChange={(newSelectionModel) => {
|
||||
setselectionModel_attestation(newSelectionModel);
|
||||
|
||||
/*if (newSelectionModel.length === 1)
|
||||
handleClick_edit_session_From_Line(newSelectionModel);*/
|
||||
if (newSelectionModel.length !== 1) {
|
||||
|
|
|
|||
|
|
@ -729,6 +729,21 @@ const Module_Editique = (props) => {
|
|||
new_data2.push(node);
|
||||
});
|
||||
|
||||
var node = {
|
||||
"_id": "",
|
||||
"id": "",
|
||||
"label": "",
|
||||
"ref_interne": "",
|
||||
"nom": "",
|
||||
"sujet": "",
|
||||
"type_doc": "",
|
||||
"cible": "",
|
||||
"joint_pdf": "",
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
|
||||
if (new_data2.length > 0)
|
||||
setNew_Get_List_Stagiaire_Conventions_result(new_data2);
|
||||
|
||||
|
|
@ -1523,6 +1538,80 @@ const Module_Editique = (props) => {
|
|||
{ "id": "", "label": "", "value": "" },
|
||||
]
|
||||
|
||||
|
||||
const [selected_convocation_id, setselected_convocation_id] = useState("");
|
||||
|
||||
const [New_Get_Class_Default_Document_id_result, setNew_Get_Class_Default_Document_id_result] = useState("");
|
||||
|
||||
const [Get_Class_Default_Document_id_api, setGet_Class_Default_Document_id_api] = useState();
|
||||
const [Get_Class_Default_Document_id_message, setGet_Class_Default_Document_id_message] = useState();
|
||||
const [Get_Class_Default_Document_id_result, setGet_Class_Default_Document_id_result] = useState();
|
||||
function Get_Class_Default_Document_id(local_type_document) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("class_id", props.selected_class_id);
|
||||
form.append("document_type", local_type_document);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Class_List_Default_Documents_For_Given_Type_Doc/";
|
||||
setLoading(true);
|
||||
|
||||
setNew_Get_Class_Default_Document_id_result("");
|
||||
setselected_convention_id("");
|
||||
setselected_convocation_id("");
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
//console.log(" In Get_Class_Default_Document_id res.data.status = " + res.data.status);
|
||||
// console.log(" In Get_Class_Default_Document_id res.data.message r_class = " + res.data.message);
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
||||
|
||||
setGet_Class_Default_Document_id_api("true");
|
||||
setGet_Class_Default_Document_id_result(res.data.message);
|
||||
|
||||
var mylocaltraining = JSON.parse(res.data.message);
|
||||
|
||||
if (mylocaltraining[local_type_document]) {
|
||||
|
||||
setNew_Get_Class_Default_Document_id_result(mylocaltraining[local_type_document]);
|
||||
if (local_type_document === "CONVENTION_STAGIAIRE_INDIVIDUELLE_MAIL"
|
||||
|| local_type_document === "CONVENTION_STAGIAIRE_INDIVIDUELLE_PDF"
|
||||
|| local_type_document === "CONVENTION_STAGIAIRE_ENTREPRISE_MAIL"
|
||||
|| local_type_document === "CONVENTION_STAGIAIRE_ENTREPRISE_PDF") {
|
||||
|
||||
setselected_convention_id(mylocaltraining[local_type_document]);
|
||||
}
|
||||
|
||||
else if (local_type_document === "CONVOCATION_STAGIAIRE_MAIL"
|
||||
|| local_type_document === "CONVOCATION_STAGIAIRE_PDF")
|
||||
setselected_convocation_id(mylocaltraining[local_type_document]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
setGet_Class_Default_Document_id_api("false");
|
||||
setGet_Class_Default_Document_id_message(res.data.message);
|
||||
// alert(res.data.message);
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("error");
|
||||
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Class_Default_Document_id = ', error);
|
||||
setGet_Class_Default_Document_id_api("false");
|
||||
alert("Impossible de récupérer le document par défaut");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
<div className="module_editique">
|
||||
|
|
@ -2305,7 +2394,16 @@ const Module_Editique = (props) => {
|
|||
fullWidth
|
||||
options={New_Option_Type_Document}
|
||||
onChange={(event, value) => {
|
||||
setselected_convocation_id("");
|
||||
setNew_Get_List_Stagiaire_Convocations_result([]);
|
||||
if (value && value.value) {
|
||||
|
||||
if (value.value === "email")
|
||||
Get_Class_Default_Document_id("CONVOCATION_STAGIAIRE_MAIL");
|
||||
else if (value.value === "pdf")
|
||||
Get_Class_Default_Document_id("CONVOCATION_STAGIAIRE_PDF");
|
||||
|
||||
|
||||
setselected_convention_type(value.value);
|
||||
Get_List_Stagiaire_Convocations(action_server_ref_interne_doc, action_server_nom_doc,
|
||||
String(value.value), Dialog_1_message);
|
||||
|
|
@ -2323,7 +2421,9 @@ const Module_Editique = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
selected_convocation_id = {selected_convocation_id}
|
||||
{(String(selected_convention_type) === "email" || String(selected_convention_type) === "pdf") &&
|
||||
New_Get_List_Stagiaire_Convocations_result.length > 0 &&
|
||||
<div className="session_caract_Dialog" ><b>Choisir une convocation </b>
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
|
|
@ -2332,6 +2432,7 @@ const Module_Editique = (props) => {
|
|||
fullWidth
|
||||
//className="disabled_style enable_style"
|
||||
options={New_Get_List_Stagiaire_Convocations_result}
|
||||
value={New_Get_List_Stagiaire_Convocations_result.filter((data) => (data)._id === String(selected_convocation_id))[0].label}
|
||||
|
||||
onChange={(event, value) => {
|
||||
if (value && value._id) {
|
||||
|
|
@ -2348,6 +2449,11 @@ const Module_Editique = (props) => {
|
|||
setselected_convention_type(JSON.parse(result2).type_doc);
|
||||
}
|
||||
settab_convention_pieces_jointes_result([]);
|
||||
setNew_Get_List_Stagiaire_Convocations_result([])
|
||||
} else {
|
||||
setselected_convocation_id("");
|
||||
settab_convention_pieces_jointes_result([]);
|
||||
setNew_Get_List_Stagiaire_Convocations_result([])
|
||||
}
|
||||
}}
|
||||
|
||||
|
|
@ -2548,7 +2654,7 @@ const Module_Editique = (props) => {
|
|||
{String(selected_convention_type) === "email" && <Button onClick={(e) => {
|
||||
|
||||
if (String(selected_convention_email_test).length > 2) {
|
||||
|
||||
|
||||
|
||||
if (!selected_convention_type || selected_convention_type === "") {
|
||||
setdisplay_alert_mysy("1");
|
||||
|
|
@ -2663,6 +2769,18 @@ const Module_Editique = (props) => {
|
|||
options={New_Option_Type_Document}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.value) {
|
||||
|
||||
if (value.value === "email" && String(Dialog_1_message) === "CONVENTION_STAGIAIRE_INDIVIDUELLE")
|
||||
Get_Class_Default_Document_id("CONVENTION_STAGIAIRE_INDIVIDUELLE_MAIL");
|
||||
else if (value.value === "pdf" && String(Dialog_1_message) === "CONVENTION_STAGIAIRE_INDIVIDUELLE")
|
||||
Get_Class_Default_Document_id("CONVENTION_STAGIAIRE_INDIVIDUELLE_PDF");
|
||||
|
||||
|
||||
else if (value.value === "email" && String(Dialog_1_message) === "CONVENTION_STAGIAIRE_ENTREPRISE")
|
||||
Get_Class_Default_Document_id("CONVENTION_STAGIAIRE_ENTREPRISE_MAIL");
|
||||
else if (value.value === "pdf" && String(Dialog_1_message) === "CONVENTION_STAGIAIRE_ENTREPRISE")
|
||||
Get_Class_Default_Document_id("CONVENTION_STAGIAIRE_ENTREPRISE_PDF");
|
||||
|
||||
setselected_convention_type(value.value);
|
||||
|
||||
Get_List_Stagiaire_Conventions(action_server_ref_interne_doc, action_server_nom_doc,
|
||||
|
|
@ -2724,41 +2842,43 @@ const Module_Editique = (props) => {
|
|||
|
||||
</div>}
|
||||
|
||||
{(String(selected_convention_type) === "email" || String(selected_convention_type) === "pdf") && <div className="session_caract_Dialog" > <b> Choisir une convention </b>
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
name="event_dialog_version_convention"
|
||||
id="event_dialog_version_convention"
|
||||
fullWidth
|
||||
//className="disabled_style enable_style"
|
||||
options={New_Get_List_Stagiaire_Conventions_result}
|
||||
{(String(selected_convention_type) === "email" || String(selected_convention_type) === "pdf") &&
|
||||
<div className="session_caract_Dialog" > <b> Choisir une convention </b>
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
name="event_dialog_version_convention"
|
||||
id="event_dialog_version_convention"
|
||||
fullWidth
|
||||
//className="disabled_style enable_style"
|
||||
options={New_Get_List_Stagiaire_Conventions_result}
|
||||
value={New_Get_List_Stagiaire_Conventions_result.filter((data) => (data)._id === String(selected_convention_id))[0].label}
|
||||
|
||||
onChange={(event, value) => {
|
||||
if (value && value._id) {
|
||||
onChange={(event, value) => {
|
||||
if (value && value._id) {
|
||||
|
||||
setselected_convention_id(value._id);
|
||||
setselected_convention_id(value._id);
|
||||
|
||||
if (String(value._id) === "default_mail") {
|
||||
setselected_convention_type("email");
|
||||
if (String(value._id) === "default_mail") {
|
||||
setselected_convention_type("email");
|
||||
}
|
||||
else if (String(value._id) === "default_pdf") {
|
||||
setselected_convention_type("pdf");
|
||||
} else {
|
||||
var result2 = Get_List_Stagiaire_Conventions_result.filter((local_mymanager) => JSON.parse(local_mymanager)._id === String(value._id))
|
||||
setselected_convention_type(JSON.parse(result2).type_doc);
|
||||
}
|
||||
settab_convention_pieces_jointes_result([]);
|
||||
}
|
||||
else if (String(value._id) === "default_pdf") {
|
||||
setselected_convention_type("pdf");
|
||||
} else {
|
||||
var result2 = Get_List_Stagiaire_Conventions_result.filter((local_mymanager) => JSON.parse(local_mymanager)._id === String(value._id))
|
||||
setselected_convention_type(JSON.parse(result2).type_doc);
|
||||
}
|
||||
settab_convention_pieces_jointes_result([]);
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>
|
||||
|
||||
</div>}
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
|
|
@ -3891,7 +4011,6 @@ const Module_Editique = (props) => {
|
|||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -90,7 +90,7 @@ function PaperComponent(props) {
|
|||
<Paper {...props} />
|
||||
</Draggable>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
|
||||
|
|
@ -2026,8 +2026,7 @@ registerLocale('fr', fr);
|
|||
</div>
|
||||
|
||||
|
||||
{
|
||||
affichage_class && String(affichage_class) === "list" && <div className="div_row" style={{ paddingRight: '10px' }}>
|
||||
{ affichage_class && String(affichage_class) === "list" && <div className="div_row" style={{ paddingRight: '10px' }}>
|
||||
|
||||
<div className="session_data">
|
||||
<div style={{ "border": "None" }}>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -56,39 +56,39 @@ import { makeStyles } from "@material-ui/core/styles";
|
|||
import { IconButton } from '@material-ui/core';
|
||||
|
||||
function PaperComponent(props) {
|
||||
return (
|
||||
<Draggable
|
||||
handle="#draggable-dialog-title"
|
||||
cancel={'[class*="MuiDialogContent-root"]'}
|
||||
>
|
||||
<Paper {...props} />
|
||||
</Draggable>
|
||||
);
|
||||
return (
|
||||
<Draggable
|
||||
handle="#draggable-dialog-title"
|
||||
cancel={'[class*="MuiDialogContent-root"]'}
|
||||
>
|
||||
<Paper {...props} />
|
||||
</Draggable>
|
||||
);
|
||||
}
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
|
||||
dialog: {
|
||||
position: 'absolute',
|
||||
// left: 10,
|
||||
top: 400
|
||||
},
|
||||
dialog: {
|
||||
position: 'absolute',
|
||||
// left: 10,
|
||||
top: 400
|
||||
},
|
||||
|
||||
paper: {
|
||||
overflowY: 'unset',
|
||||
},
|
||||
customizedButton: {
|
||||
position: 'absolute',
|
||||
left: '98%',
|
||||
top: '-3%',
|
||||
backgroundColor: 'lightgray',
|
||||
color: 'gray',
|
||||
},
|
||||
paper: {
|
||||
overflowY: 'unset',
|
||||
},
|
||||
customizedButton: {
|
||||
position: 'absolute',
|
||||
left: '98%',
|
||||
top: '-3%',
|
||||
backgroundColor: 'lightgray',
|
||||
color: 'gray',
|
||||
},
|
||||
}));
|
||||
|
||||
const Notes_Evaluation = (props) => {
|
||||
registerLocale('fr', fr);
|
||||
const classes = useStyles();
|
||||
const classes = useStyles();
|
||||
const history = useHistory();
|
||||
const [submenu, setsubmenu] = useState("");
|
||||
const [rowss, setRows] = useState([]);
|
||||
|
|
@ -547,6 +547,10 @@ const Notes_Evaluation = (props) => {
|
|||
{ field: 'groupe', headerName: 'groupe', flex: 1, hide: false, minWidth: 180, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'note', headerName: 'Note', width: 200, editable: Boolean(props.check_user_acces_right("note_evaluation", "write")), renderCell: (params) => <ExpandableCell_50_bg_hiligt {...params} />, align: "center", },
|
||||
|
||||
{
|
||||
field: 'publish', headerName: 'Publié (ENT)', width: 100, hide: false, editable: false, type: 'boolean',
|
||||
|
||||
},
|
||||
{ field: 'convocation_send_date', headerName: 'Conv. Envoyé', width: 200, editable: false, renderCell: (params) => <ExpandableCell_50_bg_hiligt {...params} />, align: "center", },
|
||||
{ field: 'convocation_send_type', headerName: 'Conv. Par', width: 200, editable: false, renderCell: (params) => <ExpandableCell_50_bg_hiligt {...params} />, align: "center", },
|
||||
|
||||
|
|
@ -1107,6 +1111,7 @@ const Notes_Evaluation = (props) => {
|
|||
var local_prenom = JSON.parse(x).prenom;
|
||||
var local_email = JSON.parse(x).email;
|
||||
var local_note = JSON.parse(x).note;
|
||||
var local_publish = JSON.parse(x).publish;
|
||||
var local_inscription_id = JSON.parse(x).inscription_id;
|
||||
var local_group_inscription_id = JSON.parse(x).group_inscription_id;
|
||||
|
||||
|
|
@ -1123,6 +1128,7 @@ const Notes_Evaluation = (props) => {
|
|||
"prenom": local_prenom,
|
||||
"email": local_email,
|
||||
"note": local_note,
|
||||
"publish": local_publish,
|
||||
"note_changed": "0",
|
||||
"inscription_id": local_inscription_id,
|
||||
"group_inscription_id": local_group_inscription_id,
|
||||
|
|
@ -1142,6 +1148,7 @@ const Notes_Evaluation = (props) => {
|
|||
"prenom": "",
|
||||
"email": "",
|
||||
"note": "",
|
||||
"publish": "",
|
||||
"note_changed": "0",
|
||||
"inscription_id": "",
|
||||
"group_inscription_id": "",
|
||||
|
|
@ -2358,6 +2365,15 @@ const Notes_Evaluation = (props) => {
|
|||
setDialog_CONVOCATION_EVAL_open(true);
|
||||
setactionmass_eval_inscr_val("");
|
||||
}
|
||||
|
||||
if (String(actionmass_eval_inscr_val) === String("publish_note")) {
|
||||
Publish_ENT_Evaluation_Participants_Notes(tab_mongo_preins_ids, "1"); // zzzzzzzzzzzzzzzzzz
|
||||
setactionmass_eval_inscr_val("");
|
||||
}
|
||||
if (String(actionmass_eval_inscr_val) === String("un_publish_note")) {
|
||||
Publish_ENT_Evaluation_Participants_Notes(tab_mongo_preins_ids, "0"); // zzzzzzzzzzzzzzzzzz
|
||||
setactionmass_eval_inscr_val("");
|
||||
}
|
||||
}
|
||||
|
||||
const [actionmass_eval_inscr_val, setactionmass_eval_inscr_val] = useState();
|
||||
|
|
@ -2365,6 +2381,8 @@ const Notes_Evaluation = (props) => {
|
|||
|
||||
const New_Option_PreInscription = [
|
||||
{ "id": "send_convocation", "label": "Envoyer Convocation", "value": "send_convocation" },
|
||||
{ "id": "publish_note", "label": "Publier les notes sur l'ENT", "value": "publish_note" },
|
||||
{ "id": "un_publish_note", "label": "De-publier les notes sur l'ENT", "value": "un_publish_note" },
|
||||
{ "id": "delete_inscr", "label": "Supprimer", "value": "delete_inscr" },
|
||||
{ "id": "", "label": "", "value": "" },
|
||||
]
|
||||
|
|
@ -2429,6 +2447,65 @@ const Notes_Evaluation = (props) => {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
const [Publish_ENT_Evaluation_Participants_Notes_api, setPublish_ENT_Evaluation_Participants_Notes_api] = useState();
|
||||
const [Publish_ENT_Evaluation_Participants_Notes_message, setPublish_ENT_Evaluation_Participants_Notes_message] = useState();
|
||||
const [Publish_ENT_Evaluation_Participants_Notes_result, setPublish_ENT_Evaluation_Participants_Notes_result] = useState([]);
|
||||
function Publish_ENT_Evaluation_Participants_Notes(selected_note_lines_id, local_publish_status) {
|
||||
var form = new FormData();
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("evaluation_id", selected_id);
|
||||
form.append("tab_inscription_id", selected_note_lines_id);
|
||||
form.append("publish_status", local_publish_status);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Publish_Unpublish_Participant_Evaluation_Note/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
// console.log(" In Publish_ENT_Evaluation_Participants_Notes res.data.status = " + res.data.status);
|
||||
// console.log(" In Publish_ENT_Evaluation_Participants_Notes res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
|
||||
setnoted_changed("");
|
||||
Getall_Evaluation_Participant_List(selected_id);
|
||||
setselectionModel_evalutions_participant([]);
|
||||
settab_convention_pieces_jointes_result([]);
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("success");
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
setPublish_ENT_Evaluation_Participants_Notes_api("false");
|
||||
setPublish_ENT_Evaluation_Participants_Notes_message(res.data.message);
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("error");
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Publish_ENT_Evaluation_Participants_Notes : Not good man :( Publish_ENT_Evaluation_Participants_Notes = ' + error);
|
||||
setPublish_ENT_Evaluation_Participants_Notes_api("false");
|
||||
// alert(" Impossible de mettre à jour les données des participants ");
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(" Impossible de mettre à jour les données ");
|
||||
setalert_type("error");
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
function OnchangeCellDataGrid(params) {
|
||||
|
||||
|
||||
|
|
@ -2455,12 +2532,30 @@ const Notes_Evaluation = (props) => {
|
|||
tmp['prenom'] = (x).prenom;
|
||||
tmp['email'] = (x).email;
|
||||
tmp['groupe'] = (x).groupe;
|
||||
tmp['publish'] = (x).publish;
|
||||
tmp['note_changed'] = "1";
|
||||
tmp['note'] = new_value;
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
if (String(num_line) === String(localid) && colomn === "publish") {
|
||||
var tmp = {};
|
||||
tmp['id'] = (x).id;
|
||||
tmp['_id'] = (x)._id;
|
||||
tmp['nom'] = (x).nom;
|
||||
tmp['prenom'] = (x).prenom;
|
||||
tmp['email'] = (x).email;
|
||||
tmp['groupe'] = (x).groupe;
|
||||
|
||||
tmp['publish'] = new_value;
|
||||
|
||||
tmp['note_changed'] = "1";
|
||||
tmp['note'] = (x).note;
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
var tmp = {};
|
||||
tmp['id'] = (x).id;
|
||||
|
|
@ -2469,6 +2564,7 @@ const Notes_Evaluation = (props) => {
|
|||
tmp['prenom'] = (x).prenom;
|
||||
tmp['email'] = (x).email;
|
||||
tmp['groupe'] = (x).groupe;
|
||||
tmp['publish'] = (x).publish;
|
||||
tmp['note_changed'] = (x).note_changed;
|
||||
tmp['note'] = (x).note;
|
||||
|
||||
|
|
@ -4511,7 +4607,7 @@ const Notes_Evaluation = (props) => {
|
|||
|
||||
</div>}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="div_row" ref={myRef} id="myRef"> </div>
|
||||
|
||||
|
|
@ -5870,12 +5966,10 @@ const Notes_Evaluation = (props) => {
|
|||
email: (item).email,
|
||||
groupe: (item).groupe,
|
||||
note: (item).note,
|
||||
publish: (item).publish,
|
||||
note_changed: (item).note_changed,
|
||||
|
||||
convocation_send_date: (item).convocation_send_date,
|
||||
convocation_send_type: (item).convocation_send_type,
|
||||
|
||||
|
||||
}
|
||||
))}
|
||||
|
||||
|
|
@ -5955,7 +6049,9 @@ const Notes_Evaluation = (props) => {
|
|||
options={New_Option_PreInscription}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.value) {
|
||||
if (String(value.value) === "delete_inscr" || String(value.value) === "send_convocation") {
|
||||
if (String(value.value) === "delete_inscr" || String(value.value) === "send_convocation"
|
||||
|| String(value.value) === "publish_note"
|
||||
|| String(value.value) === "un_publish_note") {
|
||||
setactionmass_eval_inscr_val(value.value);
|
||||
}
|
||||
else {
|
||||
|
|
@ -6005,6 +6101,14 @@ const Notes_Evaluation = (props) => {
|
|||
<font> Confirmer la <b> l'envoi des convocations </b> en masse pour {selectionModel_evalutions_participant.length} lignes.
|
||||
</font>}
|
||||
|
||||
{String(actionmass_eval_inscr_val) === "publish_note" &&
|
||||
<font> Confirmer la <b> la publication des notes sur l'ENT</b> en masse pour {selectionModel_evalutions_participant.length} lignes.
|
||||
</font>}
|
||||
|
||||
{String(actionmass_eval_inscr_val) === "un_publish_note" &&
|
||||
<font> Confirmer la <b> la DE-publication des notes sur l'ENT</b> en masse pour {selectionModel_evalutions_participant.length} lignes.
|
||||
</font>}
|
||||
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
|
|
|
|||
|
|
@ -2417,7 +2417,7 @@ const Partner = (props) => {
|
|||
<div className="koUpdateData"> Impossible de contacter l'hote distant. Merci de contacter votre administrateur </div>
|
||||
</div>
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
{String(menu) === "affichage" &&
|
||||
<div className="div_droite">
|
||||
|
|
@ -2430,7 +2430,7 @@ const Partner = (props) => {
|
|||
}
|
||||
|
||||
{String(menu) === "tous_mes_document" &&
|
||||
<div className="div_droite">
|
||||
<div className="div_droite">
|
||||
<Modules_Mes_Documents 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}
|
||||
|
|
|
|||
|
|
@ -1641,8 +1641,11 @@ const Partner_Client = (props) => {
|
|||
|
||||
<div className="titre1"> Detail client / Financeur <b>{Client_email} </b></div>
|
||||
|
||||
<AddParnerClient client_mail={Client_email} close_detail_client={close_detail_client} father_scroll_to_top={father_scroll_to_top}
|
||||
client_id={selected_id} check_user_acces_right={props.check_user_acces_right}
|
||||
<AddParnerClient client_mail={Client_email}
|
||||
close_detail_client={close_detail_client}
|
||||
father_scroll_to_top={father_scroll_to_top}
|
||||
client_id={selected_id}
|
||||
check_user_acces_right={props.check_user_acces_right}
|
||||
Get_List_Partner_Clients={Get_List_Partner_Clients} />
|
||||
|
||||
</div>}
|
||||
|
|
@ -1651,8 +1654,12 @@ const Partner_Client = (props) => {
|
|||
|
||||
<div className="titre1"> Nouveau client / financeur</div>
|
||||
<div ref={myRef_add_client}> </div>
|
||||
<AddParnerClient client_mail={Client_email} close_detail_client={close_detail_client} new_customer="1" client_id={selected_id}
|
||||
Get_List_Partner_Clients={Get_List_Partner_Clients} father_scroll_to_top={father_scroll_to_top}
|
||||
<AddParnerClient client_mail={Client_email}
|
||||
close_detail_client={close_detail_client}
|
||||
new_customer="1"
|
||||
client_id={selected_id}
|
||||
Get_List_Partner_Clients={Get_List_Partner_Clients}
|
||||
father_scroll_to_top={father_scroll_to_top}
|
||||
check_user_acces_right={props.check_user_acces_right}
|
||||
display_child_alert_success={display_child_alert_success}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -755,7 +755,7 @@
|
|||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.block_groupe_class {
|
||||
width: 100%;
|
||||
|
|
|
|||
|
|
@ -2629,8 +2629,7 @@
|
|||
width: 100%;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
.mode_affichage {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
}
|
||||
|
||||
.Mui-disabled {
|
||||
font-family:'DM Sans','Sans-serif';
|
||||
font-family: 'DM Sans', 'Sans-serif';
|
||||
font-size: small !important;
|
||||
padding: 0px !important;
|
||||
padding-left: 5px !important;
|
||||
|
|
@ -151,7 +151,7 @@
|
|||
}
|
||||
|
||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
|
||||
font-family:'DM Sans','Sans-serif';
|
||||
font-family: 'DM Sans', 'Sans-serif';
|
||||
font: inherit;
|
||||
letter-spacing: inherit;
|
||||
color: currentColor;
|
||||
|
|
@ -197,7 +197,7 @@
|
|||
}
|
||||
|
||||
.session_caract {
|
||||
font-family: DM Sans;
|
||||
font-family: DM Sans;
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
float: left;
|
||||
|
|
@ -298,7 +298,7 @@
|
|||
}
|
||||
|
||||
.bton_enreg {
|
||||
font-family: DM sans;
|
||||
font-family: DM sans;
|
||||
border-radius: 5rem;
|
||||
font-size: small;
|
||||
background: #81BC3A !important;
|
||||
|
|
@ -497,7 +497,7 @@
|
|||
}
|
||||
|
||||
.bton_enreg {
|
||||
font-family: DM sans;
|
||||
font-family: DM sans;
|
||||
border-radius: 5rem;
|
||||
font-size: small;
|
||||
background: #81BC3A !important;
|
||||
|
|
@ -557,7 +557,7 @@
|
|||
}
|
||||
|
||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
|
||||
font-family:'DM Sans','Sans-serif';
|
||||
font-family: 'DM Sans', 'Sans-serif';
|
||||
font: inherit;
|
||||
letter-spacing: inherit;
|
||||
color: currentColor;
|
||||
|
|
@ -613,6 +613,35 @@
|
|||
background: #fffdf0;
|
||||
}
|
||||
|
||||
.mode_affichage {
|
||||
width: 25%;
|
||||
float: right;
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.block_groupe_class {
|
||||
width: 100%;
|
||||
float: right;
|
||||
|
||||
}
|
||||
|
||||
.block_groupe_class_text {
|
||||
font-family: "DM Sans", "sans-serif";
|
||||
width: 100%;
|
||||
float: left;
|
||||
text-align: left;
|
||||
padding-top: 15px;
|
||||
}
|
||||
|
||||
.block_groupe_class_list {
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
float: left;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 601px) and (max-width: 991px) {
|
||||
|
|
@ -733,7 +762,7 @@
|
|||
}
|
||||
|
||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
|
||||
font-family:'DM Sans','Sans-serif';
|
||||
font-family: 'DM Sans', 'Sans-serif';
|
||||
font: inherit;
|
||||
letter-spacing: inherit;
|
||||
color: currentColor;
|
||||
|
|
@ -779,7 +808,7 @@
|
|||
}
|
||||
|
||||
.session_caract {
|
||||
font-family: DM Sans;
|
||||
font-family: DM Sans;
|
||||
width: 50%;
|
||||
padding: 5px;
|
||||
float: left;
|
||||
|
|
@ -886,7 +915,7 @@
|
|||
}
|
||||
|
||||
.bton_enreg {
|
||||
font-family: DM sans;
|
||||
font-family: DM sans;
|
||||
border-radius: 5rem;
|
||||
font-size: small;
|
||||
background: #81BC3A !important;
|
||||
|
|
@ -1089,7 +1118,7 @@
|
|||
}
|
||||
|
||||
.bton_enreg {
|
||||
font-family: DM sans;
|
||||
font-family: DM sans;
|
||||
border-radius: 5rem;
|
||||
font-size: small;
|
||||
background: #81BC3A !important;
|
||||
|
|
@ -1142,7 +1171,7 @@
|
|||
}
|
||||
|
||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
|
||||
font-family:'DM Sans','Sans-serif';
|
||||
font-family: 'DM Sans', 'Sans-serif';
|
||||
font: inherit;
|
||||
letter-spacing: inherit;
|
||||
color: currentColor;
|
||||
|
|
@ -1198,6 +1227,34 @@
|
|||
background: #fffdf0;
|
||||
}
|
||||
|
||||
.mode_affichage {
|
||||
width: 15%;
|
||||
float: right;
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
.block_groupe_class {
|
||||
width: 50%;
|
||||
float: right;
|
||||
|
||||
}
|
||||
|
||||
.block_groupe_class_text {
|
||||
font-family: "DM Sans", "sans-serif";
|
||||
width: 30%;
|
||||
float: left;
|
||||
text-align: left;
|
||||
padding-top: 15px;
|
||||
}
|
||||
|
||||
.block_groupe_class_list {
|
||||
width: 69%;
|
||||
text-align: right;
|
||||
float: left;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1345,7 +1402,7 @@
|
|||
}
|
||||
|
||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
|
||||
font-family:'DM Sans','Sans-serif';
|
||||
font-family: 'DM Sans', 'Sans-serif';
|
||||
font: inherit;
|
||||
letter-spacing: inherit;
|
||||
color: currentColor;
|
||||
|
|
@ -1394,7 +1451,7 @@
|
|||
}
|
||||
|
||||
.session_caract {
|
||||
font-family: DM Sans;
|
||||
font-family: DM Sans;
|
||||
width: 33%;
|
||||
padding: 5px;
|
||||
float: left;
|
||||
|
|
@ -1502,7 +1559,7 @@
|
|||
}
|
||||
|
||||
.bton_enreg {
|
||||
font-family: DM sans;
|
||||
font-family: DM sans;
|
||||
border-radius: 5rem;
|
||||
font-size: small;
|
||||
background: #81BC3A !important;
|
||||
|
|
@ -1671,7 +1728,7 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: default;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
|
|
@ -1688,6 +1745,33 @@
|
|||
background: #fffdf0;
|
||||
}
|
||||
|
||||
.mode_affichage {
|
||||
width: 12%;
|
||||
float: right;
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
.block_groupe_class {
|
||||
width: 50%;
|
||||
float: right;
|
||||
|
||||
}
|
||||
|
||||
.block_groupe_class_text {
|
||||
font-family: "DM Sans", "sans-serif";
|
||||
width: 45%;
|
||||
float: left;
|
||||
text-align: left;
|
||||
padding-top: 15px;
|
||||
}
|
||||
|
||||
.block_groupe_class_list {
|
||||
width: 54%;
|
||||
text-align: right;
|
||||
float: left;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1842,7 +1926,7 @@
|
|||
}
|
||||
|
||||
.session_caract_Dialog {
|
||||
font-family: 'DM Sans';
|
||||
font-family: 'DM Sans';
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
float: left;
|
||||
|
|
@ -1869,7 +1953,7 @@
|
|||
}
|
||||
|
||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input .Mui-disabled {
|
||||
font-family:'DM Sans','Sans-serif';
|
||||
font-family: 'DM Sans', 'Sans-serif';
|
||||
font: inherit;
|
||||
letter-spacing: inherit;
|
||||
color: currentColor;
|
||||
|
|
@ -1917,7 +2001,7 @@
|
|||
|
||||
|
||||
.session_caract {
|
||||
font-family: DM Sans;
|
||||
font-family: DM Sans;
|
||||
width: 33%;
|
||||
padding: 5px;
|
||||
float: left;
|
||||
|
|
@ -2107,7 +2191,7 @@
|
|||
}
|
||||
|
||||
.bton_enreg {
|
||||
font-family: DM sans;
|
||||
font-family: DM sans;
|
||||
border-radius: 5rem;
|
||||
font-size: small;
|
||||
background: #81BC3A !important;
|
||||
|
|
@ -2277,7 +2361,7 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: default;
|
||||
cursor: default;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
|
|
@ -2331,22 +2415,140 @@
|
|||
background: #fffdf0;
|
||||
}
|
||||
|
||||
.mode_affichage {
|
||||
width: 8%;
|
||||
float: right;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.block_groupe_class {
|
||||
width: 30%;
|
||||
float: right;
|
||||
|
||||
}
|
||||
|
||||
.block_groupe_class_text {
|
||||
font-family: "DM Sans", "sans-serif";
|
||||
width: 30%;
|
||||
float: left;
|
||||
text-align: left;
|
||||
padding-top: 15px;
|
||||
}
|
||||
|
||||
.block_groupe_class_list {
|
||||
width: 65%;
|
||||
text-align: right;
|
||||
float: left;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// end media
|
||||
|
||||
/*** icii */
|
||||
|
||||
/* Grille de fichiers */
|
||||
.file-grid {
|
||||
flex: 1;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
|
||||
gap: 1rem;
|
||||
padding: 1.5rem;
|
||||
overflow-y: auto;
|
||||
background-color: #e0e0e0;
|
||||
color: #e0e0e0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.file-card {
|
||||
background-color: #1e1e1e;
|
||||
border: 1px solid #2a2a2a;
|
||||
border-radius: 8px;
|
||||
padding: 1rem;
|
||||
text-align: center;
|
||||
transition: transform 0.2s, box-shadow 0.2s;
|
||||
min-height: 10rem;
|
||||
}
|
||||
|
||||
.file-card:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 0 10px rgba(79, 163, 255, 0.3);
|
||||
}
|
||||
|
||||
.file-icon {
|
||||
font-size: 2rem;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.file-name {
|
||||
font-weight: 500;
|
||||
margin-bottom: 0.25rem;
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.file-date {
|
||||
font-size: 0.8rem;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
/** end ici */
|
||||
|
||||
.visualiser {
|
||||
width: 100%;
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
background: rebeccapurple;
|
||||
border-radius: 10rem;
|
||||
box-shadow: 2px 8px 29px -6px rgba(0, 0, 0, 0.27);
|
||||
-webkit-box-shadow: 2px 8px 29px -6px rgba(198, 48, 48, 0.27);
|
||||
-moz-box-shadow: 2px 8px 29px -6px rgba(0, 0, 0, 0.27);
|
||||
color: white;
|
||||
font-family: DM Sans;
|
||||
font-family: "DM Sans";
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.telecharger {
|
||||
width: 100%;
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
background: #3a8a52;
|
||||
border-radius: 10rem;
|
||||
box-shadow: 2px 8px 29px -6px rgba(0, 0, 0, 0.27);
|
||||
-webkit-box-shadow: 2px 8px 29px -6px rgba(198, 48, 48, 0.27);
|
||||
-moz-box-shadow: 2px 8px 29px -6px rgba(0, 0, 0, 0.27);
|
||||
color: white;
|
||||
font-family: DM Sans;
|
||||
margin-top: 10px;
|
||||
font-family: "DM Sans";
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.mode_affichage_selected {
|
||||
text-underline-offset: 8px;
|
||||
text-decoration: green wavy underline;
|
||||
text-decoration-color: #F8C471;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: 5px;
|
||||
background: #F4F6F6;
|
||||
box-shadow: 1px 1px 5px 1px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.datagridclass {
|
||||
font-size: small !important;
|
||||
padding: 5px !important;
|
||||
font-family: 'DM Sans';
|
||||
}
|
||||
|
||||
|
||||
.autocomplete_float_right {
|
||||
float: right !important;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.datepicker_complement{
|
||||
.datepicker_complement {
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
|
|
@ -2380,7 +2582,7 @@
|
|||
}
|
||||
|
||||
.session_caract_Dialog {
|
||||
font-family: 'DM Sans';
|
||||
font-family: 'DM Sans';
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
float: left;
|
||||
|
|
@ -2485,7 +2687,7 @@
|
|||
}
|
||||
|
||||
.css-9ddj71-MuiInputBase-root-MuiOutlinedInput-root {
|
||||
font-family: DM Sans !important;
|
||||
font-family: DM Sans !important;
|
||||
height: 3.5rem !important;
|
||||
font-size: small !important;
|
||||
}
|
||||
|
|
@ -2496,8 +2698,8 @@ font-family: DM Sans !important;
|
|||
width: 110%;
|
||||
}
|
||||
|
||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
|
||||
font-size: small !important;
|
||||
font-family: "DM Sans" !important;
|
||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
|
||||
font-size: small !important;
|
||||
font-family: "DM Sans" !important;
|
||||
padding-left: 5px !important;
|
||||
}
|
||||
Loading…
Reference in New Issue