10/04/2026 - 18h

branche_01062025
Cherif 2026-04-10 18:14:39 +02:00
parent 048971b250
commit 1135985bc2
7 changed files with 737 additions and 540 deletions

View File

@ -911,7 +911,7 @@ const Article_Help = (props) => {
></input>
</div>
</div>
</div>
</div>
<div className="div_row_dialog">
<div className="div_row_dialog" style={{ "textAlign": 'left' }}>

View File

@ -403,6 +403,14 @@ const Module_Admission_Candidat_Synthese = (props) => {
var local_session_etape_code = JSON.parse(x).session_etape_code;
var local_rang = JSON.parse(x).rang;
var local_inscrit_session_id = ""
if (JSON.parse(x).inscrit_session_id)
local_inscrit_session_id = JSON.parse(x).inscrit_session_id
var local_inscrit_session_code = ""
if (JSON.parse(x).inscrit_session_code)
local_inscrit_session_code = JSON.parse(x).inscrit_session_code
var local_tab_entete_exam_jury = JSON.parse(x).tab_entete_exam_jury;
@ -422,6 +430,8 @@ const Module_Admission_Candidat_Synthese = (props) => {
"age": local_age,
"session_etape_code": local_session_etape_code,
"rang": local_rang,
"inscrit_session_code": local_inscrit_session_id,
"inscrit_session_code": local_inscrit_session_code,
};
@ -439,6 +449,8 @@ const Module_Admission_Candidat_Synthese = (props) => {
"status": local_status,
"age": local_age,
"session_etape_code": local_session_etape_code,
"inscrit_session_code": local_inscrit_session_id,
"inscrit_session_code": local_inscrit_session_code,
};
const new_data_tmp_z = JSON.parse(x).tab_entete_exam_jury.map((z) => {
@ -828,14 +840,14 @@ const Module_Admission_Candidat_Synthese = (props) => {
const [Dialog_add_inscription_message, setDialog_add_inscription_message] = React.useState(false);
const [Dialog_add_inscription_open, setDialog_add_inscription_open] = React.useState(false);
function Dialog_add_inscription_handle_change_participant_session(message) {
setDialog_add_inscription_message(message);
setDialog_add_inscription_open(true);
}
const Dialog_add_inscription_handleClose_buton = () => {
setDialog_add_inscription_open(false);
setselected_candidat_id("");
setselected_candidat_nom("");
setselected_candidat_prenom("");
};
const [New_Getall_TrainingSession_result, setNew_Getall_TrainingSession_result] = useState();
@ -953,6 +965,67 @@ const Module_Admission_Candidat_Synthese = (props) => {
const [p_dialog_financement, setp_dialog_financement] = useState("");
const [p_dialog_client_rattachement_id, setp_dialog_client_rattachement_id] = useState("");
const [selected_candidat_id, setselected_candidat_id] = useState("");
const [selected_candidat_nom, setselected_candidat_nom] = useState("");
const [selected_candidat_prenom, setselected_candidat_prenom] = useState("");
const [Inscrire_Candidat_To_Promo_api, setInscrire_Candidat_To_Promo_api] = useState();
const [Inscrire_Candidat_To_Promo_message, setInscrire_Candidat_To_Promo_message] = useState();
const [Inscrire_Candidat_To_Promo_result, setInscrire_Candidat_To_Promo_result] = useState();
function Inscrire_Candidat_To_Promo(local_admiss_session_id, new_status) {
var form = new FormData();
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("list_candidat_id", selected_candidat_id);
form.append("admission_session_id", props.selected_session_admiss_id);
form.append("session_id", p_dialog_session_id);
form.append("type_apprenant", p_dialog_type_apprenant);
form.append("modefinancement", p_dialog_financement);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Candidat_Inscrire_To_Session/";
//setLoading(true);
axios.post(myurl, form).then(res => {
console.log(" In Inscrire_Candidat_To_Promo res.data.status = " + res.data.status);
console.log(" In Inscrire_Candidat_To_Promo res.data.message r_class = " + res.data.message);
//setLoading(false);
if (String(res.data.status) === String("true")) {
setInscrire_Candidat_To_Promo_api("true");
setInscrire_Candidat_To_Promo_result(res.data.message);
GetListeInscrit_With_Synthese();
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("success");
Dialog_add_inscription_handleClose_buton();
}
else {
setInscrire_Candidat_To_Promo_api("false");
setInscrire_Candidat_To_Promo_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('UpdateStagiaireData : Not good man :( Inscrire_Candidat_To_Promo = ' + error);
setInscrire_Candidat_To_Promo_api("false");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'inscrire le candidat");
setalert_type("error");
})
}
return (
<div className="module_admission_candidat_document" style={{ margin: '10px' }}>
@ -998,7 +1071,7 @@ const Module_Admission_Candidat_Synthese = (props) => {
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" > Inscrire </DialogTitle>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" > Inscrire {selected_candidat_prenom} &nbsp; {selected_candidat_nom} </DialogTitle>
<DialogContent className="DialogContent_width">
{New_Getall_TrainingSession_result && New_Getall_TrainingSession_result.length > 0 && <div className="session_caract_Dialog"> <b>Promotion</b>
@ -1094,7 +1167,9 @@ const Module_Admission_Candidat_Synthese = (props) => {
<div className="div_row">
<div className="div_row_gauche">
<Button className="bton_enreg_dialog"> Inscrire</Button>
<Button className="bton_enreg_dialog" onClick={(date) => {
Inscrire_Candidat_To_Promo();
}}> Inscrire</Button>
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_add_inscription_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
@ -1228,10 +1303,10 @@ const Module_Admission_Candidat_Synthese = (props) => {
type="number"
InputProps={{ inputProps: { min: 1, max: 9999999 } }}
fullWidth
// value={JSON.parse(item).rang}
// value={JSON.parse(item).rang}
onChange={(e) => {
// console.log("RRRR");
// console.log("RRRR");
var local_node = {}
local_node["_id"] = String(JSON.parse(item)._id)
local_node["rang"] = e.target.value
@ -1281,11 +1356,17 @@ const Module_Admission_Candidat_Synthese = (props) => {
))}
<td style={{ textAlign: 'center', cursor: 'pointer' }} onClick={(e) => {
{JSON.parse(item).inscrit_session_id.length <= 5 && <td style={{ textAlign: 'center', cursor: 'pointer' }} onClick={(e) => {
setselected_candidat_nom(JSON.parse(item).nom);
setselected_candidat_prenom(JSON.parse(item).prenom)
setselected_candidat_id(JSON.parse(item)._id);
Getall_TrainingSession();
setDialog_add_inscription_open(true);
}}> <Users size={14} /></td>
}}> <Users size={14} /></td>}
{JSON.parse(item).inscrit_session_id.length > 5 && <td style={{ textAlign: 'center', background:'#e9eff2' }}>
{JSON.parse(item).inscrit_session_code} </td>}
</tr>

View File

@ -6,7 +6,7 @@ import { useCookies } from "react-cookie";
import Articles from "./Article";
import New_Article_2025 from "./New_C_Article_2025";
import ReactPlayer from 'react-player'
import 'react-discussion-board/dist/index.css'
import { useForm } from 'react-hook-form';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
@ -25,401 +25,400 @@ import { FcUndo } from "react-icons/fc";
import IMG_Default_Article from "../mysy_img/img_default_article_detail.jpg";
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',
},
}));
function New_C_Article_Help_2025() {
const classes = useStyles();
const classes = useStyles();
const [img_displayed, setimg_displayed] = useState("");
const [img_displayed, setimg_displayed] = useState("");
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
const { articleId } = useParams();
const [result, setResult] = useState("");
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
const { articleId } = useParams();
const [result, setResult] = useState("");
const [myApiResponse, setmyApiResponse] = useState("false");
const [DetailArticleAvis, setDetailArticleAvis] = useState([]);
const [country_code, setcountry_code] = useState("");
const [country_name, setcountry_name] = useState("");
const [city, setcity] = useState("");
const [postal, setpostal] = useState("");
const [latitude, setlatitude] = useState("");
const [longitude, setlongitude] = useState("");
const [IPv4, setIPv4] = useState("");
const [state, setstate] = useState("");
const [userIp, setuserIp] = useState("");
const [action, setaction] = useState("");
const [userconnected, setuserconnected] = useState("");
const stored_user = cookie.tokenmysych;
const [myApiResponse, setmyApiResponse] = useState("false");
const [DetailArticleAvis, setDetailArticleAvis] = useState([]);
const [country_code, setcountry_code] = useState("");
const [country_name, setcountry_name] = useState("");
const [city, setcity] = useState("");
const [postal, setpostal] = useState("");
const [latitude, setlatitude] = useState("");
const [longitude, setlongitude] = useState("");
const [IPv4, setIPv4] = useState("");
const [state, setstate] = useState("");
const [userIp, setuserIp] = useState("");
const [action, setaction] = useState("");
const [userconnected, setuserconnected] = useState("");
const stored_user = cookie.tokenmysych;
const [display_header_img, setdisplay_header_img] = useState("");
const [display_header_img, setdisplay_header_img] = useState("");
const {
register,
handleSubmit,
reset,
formState: { errors }
} = useForm();
const {
register,
handleSubmit,
reset,
formState: { errors }
} = useForm();
const [pagecanoniktitle, setpagecanoniktitle] = useState("");
const [pagecanonikurl, setpagecanonikurl] = useState(window.location.host);
const [article_img, setarticle_img] = useState("")
const [page_meta_description, setpage_meta_description] = useState("");
const [pagecanoniktitle, setpagecanoniktitle] = useState("");
const [pagecanonikurl, setpagecanonikurl] = useState(window.location.host);
const [article_img, setarticle_img] = useState("")
const [page_meta_description, setpage_meta_description] = useState("");
const [article_video, setarticle_video] = useState("")
const [article_tex_a_retenir, setarticle_tex_a_retenir] = useState("")
useEffect(() => {
useEffect(() => {
setpagecanonikurl(window.location.host);
setpagecanonikurl(window.location.host);
async function fetchData() {
const result = await axios('https://geolocation-db.com/json/',);
setuserIp(result.data.IPv4);
setcountry_code(result.data.country_code);
setcountry_name(result.data.country_name);
setcity(result.data.city);
setpostal(result.data.postal);
setlatitude(result.data.latitude);
setlongitude(result.data.longitude);
setIPv4(result.data.IPv4);
setstate(result.data.state);
setuserIp(result.data.IPv4);
async function fetchData() {
const result = await axios('https://geolocation-db.com/json/',);
setuserIp(result.data.IPv4);
setcountry_code(result.data.country_code);
setcountry_name(result.data.country_name);
setcity(result.data.city);
setpostal(result.data.postal);
setlatitude(result.data.latitude);
setlongitude(result.data.longitude);
setIPv4(result.data.IPv4);
setstate(result.data.state);
setuserIp(result.data.IPv4);
}
fetchData();
Display();
// Display_article_comment();
Get_3_Articles();
//alert("stored_user = "+stored_user);
if (typeof (articleId) === "undefined") {
setaction("creation");
} else {
setaction("affichage");
}
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
setuserconnected("0");
} else {
setuserconnected("1");
}
window.scrollTo({
top: 0,
behavior: "smooth",
});
// setwindowWidth(window.innerWidth);
// setwindowheight(window.innerHeight);
//console.log(" articleId = " + articleId);
}, []);
function Display(e) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_help_article/";
var form = new FormData();
form.append("internal_url", articleId);
form.append("token", "");
// Ajout des info IP user
form.append("user_ip", IPv4);
form.append("user_country_code", country_code);
form.append("user_country_name", country_name);
form.append("user_city", city);
form.append("user_postal", postal);
form.append("user_latitude", latitude);
form.append("user_longitude", longitude);
form.append("user_state", state);
//alert("myurl = "+myurl);
axios.post(myurl, form).then(res => {
// console.log(" In test res.data.status = " + res.data.status);
//console.log(" In Display iiii res.data.message = " + res.data.message);
if (String(res.data.status) === "true") {
setmyApiResponse("True");
setResult(res.data.message);
setDetailArticleAvis(JSON.parse(res.data.message));
var my_avis = JSON.parse(res.data.message)
if (my_avis && my_avis.display_header_img && String(my_avis.display_header_img) === "0") {
setdisplay_header_img("0")
}
fetchData();
Display();
// Display_article_comment();
Get_3_Articles();
//alert("stored_user = "+stored_user);
if (typeof (articleId) === "undefined") {
setaction("creation");
if (my_avis && my_avis.title_formation) {
setpagecanoniktitle(my_avis.title_formation);
}
if (my_avis && my_avis.meta_description) {
setpage_meta_description(my_avis.meta_description);
} else {
setaction("affichage");
setpage_meta_description(my_avis.title_formation);
}
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
setuserconnected("0");
if (my_avis && my_avis.internal_url) {
setpagecanonikurl(my_avis.internal_url);
console.log(process.env.REACT_APP_BASE_URL + "/" + my_avis.internal_url);
}
if (my_avis && my_avis.img_path && String(my_avis.img_path).length > 10) {
setarticle_img(my_avis.img_path);
} else {
setuserconnected("1");
setarticle_img(img_met_digital);
}
window.scrollTo({
top: 0,
behavior: "smooth",
});
// setwindowWidth(window.innerWidth);
// setwindowheight(window.innerHeight);
if (my_avis && my_avis.video_path && String(my_avis.video_path).length > 5) {
setarticle_video(my_avis.video_path);
} else {
setarticle_video("");
}
if (my_avis && my_avis.a_retenir && String(my_avis.a_retenir).length > 10) {
setarticle_tex_a_retenir(my_avis.a_retenir);
} else {
setarticle_tex_a_retenir("");
}
// console.log(" ### my_avis.display_header_img = ", my_avis.display_header_img);
}
else {
//console.log(" In Erreur res.data.status = " + res.data.status);
//console.log(" In Erreur res.data.message = " + res.data.message);
setmyApiResponse("False");
}
}).catch((error) => {
console.warn('Not good man :( mysearchtext = ');
setmyApiResponse("False");
})
}
const [Get_3_Articles_api, setGet_3_Articles_api] = useState();
const [Get_3_Articles_result, setGet_3_Articles_result] = useState([]);
function Get_3_Articles(e) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_last_3_help_article/";
var form = new FormData();
form.append("internal_url", articleId);
form.append("token", "");
// Ajout des info IP user
form.append("user_ip", IPv4);
form.append("user_country_code", country_code);
form.append("user_country_name", country_name);
form.append("user_city", city);
form.append("user_postal", postal);
form.append("user_latitude", latitude);
form.append("user_longitude", longitude);
form.append("user_state", state);
//console.log(" articleId = " + articleId);
}, []);
// console.log("#### form = ", form);
axios.post(myurl, form).then(res => {
//console.log(" In Get_3_Articles res.data.status = " + res.data.status);
//console.log(" In Get_3_Articles res.data.message = " + res.data.message);
if (String(res.data.status) === "true") {
setGet_3_Articles_result(res.data.message);
}
else {
//console.log(" In Erreur res.data.status = " + res.data.status);
//console.log(" In Erreur res.data.message = " + res.data.message);
setGet_3_Articles_result([]);
setGet_3_Articles_api("False");
}
}).catch((error) => {
console.warn('Not good man :( mysearchtext = ');
setGet_3_Articles_api("False");
})
}
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
const [alert_message, setalert_message] = useState("");
const [alert_type, setalert_type] = useState("");
function clear_alert_message() {
setalert_message("");
}
function clear_alert_type() {
setalert_type("");
}
function clear_display_alert_mysy() {
setdisplay_alert_mysy("");
}
const relatedArticles = [
{
id: 1,
title: "Optimiser le suivi qualité de vos actions de formation",
excerpt:
"Centralisez vos justificatifs, structurez vos preuves et gagnez en sérénité sur le suivi opérationnel.",
image:
"https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?auto=format&fit=crop&w=1400&q=80",
category: "Qualité",
date: "23 nov. 2024",
readTime: "6 min",
},
{
id: 2,
title: "Dossier apprenant : les bonnes pratiques pour éviter les oublis",
excerpt:
"Les réflexes à mettre en place pour fiabiliser vos pièces, évaluations, attestations et documents clés.",
image:
"https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=1400&q=80",
category: "Conformité",
date: "20 nov. 2024",
readTime: "4 min",
},
{
id: 3,
title: "Automatiser les relances sans dégrader lexpérience utilisateur",
excerpt:
"Des relances mieux pensées, mieux ciblées, et beaucoup moins bricolées entre trois outils et deux cafés.",
image:
"https://images.unsplash.com/photo-1521791136064-7986c2920216?auto=format&fit=crop&w=1400&q=80",
category: "Automatisation",
date: "18 nov. 2024",
readTime: "4 min",
},
];
return (
<div className="new_s_article_detail_2025">
{/*** 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*/}
<Helmet>
<title>{`${pagecanoniktitle}`}</title>
<meta name="title" content={`${pagecanoniktitle}`} />
<meta name="description" content={`${page_meta_description}`} />
<meta name="robots" content="index,follow" />
<link rel="canonical" href={window.location.href} />
</Helmet>
{(!display_header_img || String(display_header_img) === "0") && <div className="head_background_without_img_displayed">
&nbsp;
</div>}
{display_header_img && String(display_header_img) !== "0" && <div className="head_background_with_img_displayed">
&nbsp;
</div>}
<main>
<section className="article-hero">
<div className="elyos-container article-hero__inner">
<a href="/elyos-support" className="back-link">
Retour au support
</a>
<h1> {DetailArticleAvis.title_formation}</h1>
function Display(e) {
<div className="article-meta">
<span>Publié {(String(DetailArticleAvis.date_avis)).substring(0, 16)}</span>
<span></span>
<span>Administratif</span>
</div>
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_articles_avis/";
var form = new FormData();
form.append("internal_url", articleId);
form.append("token", "");
// Ajout des info IP user
form.append("user_ip", IPv4);
form.append("user_country_code", country_code);
form.append("user_country_name", country_name);
form.append("user_city", city);
form.append("user_postal", postal);
form.append("user_latitude", latitude);
form.append("user_longitude", longitude);
form.append("user_state", state);
</div>
</section>
<section className="article-main-section">
<div className="elyos-container article-center-layout">
<article className="article-content-card">
<section className="article-section" style={{ textAlign: 'left' }}>
{DetailArticleAvis && DetailArticleAvis.avis && <> {parse(DetailArticleAvis.avis)} </>}
{article_tex_a_retenir && article_tex_a_retenir.length > 10 &&
<div className="article-callout article-callout--info">
<strong>À retenir :</strong> {article_tex_a_retenir}
</div>}
</section>
{article_video && article_video.length > 5 && <section className="article-section">
<div className="article-video-inline">
//alert("myurl = "+myurl);
<div className="video-placeholder">
<video width="750" height="500" controls >
<source src={article_video} type="video/mp4" />
</video>
</div>
axios.post(myurl, form).then(res => {
// console.log(" In test res.data.status = " + res.data.status);
//console.log(" In Display iiii res.data.message = " + res.data.message);
if (String(res.data.status) === "true") {
setmyApiResponse("True");
setResult(res.data.message);
setDetailArticleAvis(JSON.parse(res.data.message));
var my_avis = JSON.parse(res.data.message)
if (my_avis && my_avis.display_header_img && String(my_avis.display_header_img) === "0") {
setdisplay_header_img("0")
}
if (my_avis && my_avis.title_formation) {
setpagecanoniktitle(my_avis.title_formation);
}
if (my_avis && my_avis.meta_description) {
setpage_meta_description(my_avis.meta_description);
} else {
setpage_meta_description(my_avis.title_formation);
}
<div className="video-card__footer">
<small>Elyos By MTT</small>
</div>
</div>
</section>}
if (my_avis && my_avis.internal_url) {
setpagecanonikurl(my_avis.internal_url);
</article>
console.log(process.env.REACT_APP_BASE_URL + "/" + my_avis.internal_url);
}
if (my_avis && my_avis.img_path && String(my_avis.img_path).length > 10) {
setarticle_img(my_avis.img_path);
} else {
setarticle_img(img_met_digital);
}
// console.log(" ### my_avis.display_header_img = ", my_avis.display_header_img);
}
else {
//console.log(" In Erreur res.data.status = " + res.data.status);
//console.log(" In Erreur res.data.message = " + res.data.message);
setmyApiResponse("False");
}
}).catch((error) => {
console.warn('Not good man :( mysearchtext = ');
setmyApiResponse("False");
})
}
const [Get_3_Articles_api, setGet_3_Articles_api] = useState();
const [Get_3_Articles_result, setGet_3_Articles_result] = useState([]);
function Get_3_Articles(e) {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_last_3_articles/";
var form = new FormData();
form.append("internal_url", articleId);
form.append("token", "");
// Ajout des info IP user
form.append("user_ip", IPv4);
form.append("user_country_code", country_code);
form.append("user_country_name", country_name);
form.append("user_city", city);
form.append("user_postal", postal);
form.append("user_latitude", latitude);
form.append("user_longitude", longitude);
form.append("user_state", state);
// console.log("#### form = ", form);
axios.post(myurl, form).then(res => {
//console.log(" In Get_3_Articles res.data.status = " + res.data.status);
//console.log(" In Get_3_Articles res.data.message = " + res.data.message);
if (String(res.data.status) === "true") {
setGet_3_Articles_result(res.data.message);
}
else {
//console.log(" In Erreur res.data.status = " + res.data.status);
//console.log(" In Erreur res.data.message = " + res.data.message);
setGet_3_Articles_result([]);
setGet_3_Articles_api("False");
}
}).catch((error) => {
console.warn('Not good man :( mysearchtext = ');
setGet_3_Articles_api("False");
})
}
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
const [alert_message, setalert_message] = useState("");
const [alert_type, setalert_type] = useState("");
function clear_alert_message() {
setalert_message("");
}
function clear_alert_type() {
setalert_type("");
}
function clear_display_alert_mysy() {
setdisplay_alert_mysy("");
}
const relatedArticles = [
{
id: 1,
title: "Optimiser le suivi qualité de vos actions de formation",
excerpt:
"Centralisez vos justificatifs, structurez vos preuves et gagnez en sérénité sur le suivi opérationnel.",
image:
"https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?auto=format&fit=crop&w=1400&q=80",
category: "Qualité",
date: "23 nov. 2024",
readTime: "6 min",
},
{
id: 2,
title: "Dossier apprenant : les bonnes pratiques pour éviter les oublis",
excerpt:
"Les réflexes à mettre en place pour fiabiliser vos pièces, évaluations, attestations et documents clés.",
image:
"https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=1400&q=80",
category: "Conformité",
date: "20 nov. 2024",
readTime: "4 min",
},
{
id: 3,
title: "Automatiser les relances sans dégrader lexpérience utilisateur",
excerpt:
"Des relances mieux pensées, mieux ciblées, et beaucoup moins bricolées entre trois outils et deux cafés.",
image:
"https://images.unsplash.com/photo-1521791136064-7986c2920216?auto=format&fit=crop&w=1400&q=80",
category: "Automatisation",
date: "18 nov. 2024",
readTime: "4 min",
},
];
return (
<div className="new_s_article_detail_2025">
{/*** 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*/}
<Helmet>
<title>{`${pagecanoniktitle}`}</title>
<meta name="title" content={`${pagecanoniktitle}`} />
<meta name="description" content={`${page_meta_description}`} />
<meta name="robots" content="index,follow" />
<link rel="canonical" href={window.location.href} />
</Helmet>
{(!display_header_img || String(display_header_img) === "0") && <div className="head_background_without_img_displayed">
&nbsp;
</div>}
{display_header_img && String(display_header_img) !== "0" && <div className="head_background_with_img_displayed">
&nbsp;
</div>}
<main>
<section className="article-hero">
<div className="elyos-container article-hero__inner">
<a href="/" className="back-link">
Retour au support
</a>
<h1> {DetailArticleAvis.title_formation}</h1>
<div className="article-meta">
<span>Publié {(String(DetailArticleAvis.date_avis)).substring(0, 16)}</span>
<span></span>
<span>Lecture 6 min</span>
<span></span>
<span>Administratif</span>
</div>
</div>
</section>
<section className="article-main-section">
<div className="elyos-container article-center-layout">
<article className="article-content-card">
<section className="article-section" style={{textAlign:'left'}}>
{DetailArticleAvis && DetailArticleAvis.avis &&<> {parse(DetailArticleAvis.avis)} </>}
<div className="article-callout article-callout--info">
<strong>À retenir :</strong> la signature électronique ne sert
pas seulement à signer plus vite. Elle sert surtout à signer
plus proprement, avec plus de sécurité et moins de friction
dans les parcours administratifs.
</div>
</section>
<section className="article-section">
<div className="article-video-inline">
<div className="video-placeholder">
{false ? (
<iframe
src={article_img}
title="Vidéo explicative"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
/>
) : (
<>
<div className="video-placeholder__play"></div>
<div className="video-placeholder__text">
Zone vidéo
<span>Iframe YouTube, Vimeo ou lecteur interne</span>
</div>
</>
)}
</div>
<div className="video-card__footer">
<small>Format recommandé : 16:9</small>
</div>
</div>
</section>
</article>
{/*<div className="support-section-title">
{/*<div className="support-section-title">
<div>
<span className="support-section-title__eyebrow">
Ressources complémentaires
@ -431,7 +430,7 @@ function New_C_Article_Help_2025() {
</a>
</div>*/}
{/*<div className="article-grid-premium">
{/*<div className="article-grid-premium">
{relatedArticles.map((article) => (
<article className="article-card-premium" key={article.id}>
<div className="article-card-premium__image-wrap">
@ -458,13 +457,13 @@ function New_C_Article_Help_2025() {
</article>
))}
</div>*/}
</div>
</section>
</main>
</div>
</section>
</main>
{/*<>
{/*<>
<div style={{ width: '100%', float: 'left' }}>
@ -615,9 +614,9 @@ function New_C_Article_Help_2025() {
</div>
</>*/}
<style>{local_css}</style>
</div>
);
<style>{local_css}</style>
</div>
);
}
export default New_C_Article_Help_2025;

View File

@ -164,7 +164,10 @@ import {
HelpCircle,
Settings,
LogOut,
chevronsRight
chevronsRight,
ShoppingBasket,
HandCoins,
WalletCards
} from "lucide-react";
import { Presentation, CalendarDays } from "lucide-react";
@ -289,14 +292,15 @@ const menuData_Full = [
label: "Factures", name: "Factures", icon: CreditCard, items_color: "#dbff75",
hasChildren: true,
children: [
{ label: "Devis", name: "Devis", icon: BookOpen, items_color: "#dbff75", },
{ label: "Factures & Avoirs", name: "Factures & Avoirs", icon: GraduationCap, items_color: "#dbff75" },
{ label: "Devis", name: "Devis", icon: WalletCards , items_color: "#dbff75", },
{ label: "Factures & Avoirs", name: "Factures & Avoirs", icon: HandCoins , items_color: "#dbff75" },
]
},
{ label: "Prix Achat", name: "Prix Achat", icon: Tag, items_color: "#dbff75" },
{ label: "Produits & serv.", name: "Produits & serv.", icon: Package, items_color: "#dbff75" },
{ label: "Opportunités", name: "Opportunités", icon: ShoppingBasket , items_color: "#dbff75" },
],
},
@ -442,14 +446,15 @@ const menuData_Ftion_Initiale = [
label: "Factures", name: "Factures", icon: CreditCard, items_color: "#dbff75",
hasChildren: true,
children: [
{ label: "Devis", name: "Devis", icon: BookOpen, items_color: "#dbff75", },
{ label: "Factures & Avoirs", name: "Factures & Avoirs", icon: GraduationCap, items_color: "#dbff75" },
{ label: "Devis", name: "Devis", icon: WalletCards , items_color: "#dbff75", },
{ label: "Factures & Avoirs", name: "Factures & Avoirs", icon: HandCoins , items_color: "#dbff75" },
]
},
{ label: "Prix Achat", name: "Prix Achat", icon: Tag, items_color: "#dbff75" },
{ label: "Produits & serv.", name: "Produits & serv.", icon: Package, items_color: "#dbff75" },
{ label: "Opportunités", name: "Opportunités", icon: ShoppingBasket , items_color: "#dbff75" },
],
},
@ -583,14 +588,15 @@ const menuData_Ftion_Continue = [
label: "Factures", name: "Factures", icon: CreditCard, items_color: "#dbff75",
hasChildren: true,
children: [
{ label: "Devis", name: "Devis", icon: BookOpen, items_color: "#dbff75", },
{ label: "Factures & Avoirs", name: "Factures & Avoirs", icon: GraduationCap, items_color: "#dbff75" },
{ label: "Devis", name: "Devis", icon: WalletCards , items_color: "#dbff75", },
{ label: "Factures & Avoirs", name: "Factures & Avoirs", icon: HandCoins , items_color: "#dbff75" },
]
},
{ label: "Prix Achat", name: "Prix Achat", icon: Tag, items_color: "#dbff75" },
{ label: "Produits & serv.", name: "Produits & serv.", icon: Package, items_color: "#dbff75" },
{ label: "Opportunités", name: "Opportunités", icon: ShoppingBasket , items_color: "#dbff75" },
],
},
@ -695,7 +701,9 @@ const Partner = (props) => {
// Update_Connexion_Context("mysy_last_menu_visited", String(local_menu));
} else if (local_menu.toLocaleLowerCase() === "Produits & serv.".toLocaleLowerCase()) {
DiplayPartner_Produits_Services();
} else if (local_menu.toLocaleLowerCase() === "Sessions".toLocaleLowerCase()) {
} else if (local_menu.toLocaleLowerCase() === "Opportunités".toLocaleLowerCase()) {
Display_mes_opportunites_func();
}else if (local_menu.toLocaleLowerCase() === "Sessions".toLocaleLowerCase()) {
DiplaySessionList();
// Update_Connexion_Context("mysy_last_menu_visited", String(local_menu));
} else if (local_menu.toLocaleLowerCase() === "Promotions".toLocaleLowerCase()) {
@ -4598,7 +4606,7 @@ const Partner = (props) => {
<div>
<hr className="my_hr" />
<Tooltip className="tooltip_css" id="tooltip_id_16aa" />
<a data-tooltip-id="tooltip_id_16aa" data-tooltip-html="EQUIPEz">
<a data-tooltip-id="tooltip_id_16aa" data-tooltip-html="EQUIPE">
{String(menu) !== "equipe_team" && <Menu className="sousmenu" onClick={equipe_team_func} > <Diversity3Icon className="icone_menu" style={{ color: '#dbff75' }} /> &nbsp; </Menu>}
{String(menu) === "equipe_team" && <Menu className="sousmenu_selected" onClick={equipe_team_func} > <Diversity3Icon className="icone_menu" style={{ color: '#dbff75' }} />&nbsp; </Menu>}

View File

@ -195,7 +195,7 @@ const RechercheArticles_new_v2 = (props) => {
document.getElementById("SearchText").disabled = true;
else
document.getElementById("SearchText").disabled = false;
}
}
const [get_all_articles_avis_api, setget_all_articles_avis_api] = useState();

View File

@ -39,7 +39,7 @@ import { FcInfo } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import Checkbox from '@mui/material/Checkbox';
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
import { FcPlus } from "react-icons/fc";
import Autocomplete from '@mui/material/Autocomplete';
@ -52,6 +52,7 @@ import { IconButton } from '@material-ui/core';
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
import Draggable from 'react-draggable';
import { ResetTvRounded } from "@mui/icons-material";
@ -259,6 +260,94 @@ const Recherche_Help_new_v2 = (props) => {
}
const [Recherche_Article_Help_api, setRecherche_Article_Help_api] = useState();
const [Recherche_Article_Help_message, setRecherche_Article_Help_message] = useState();
const [Recherche_Article_Help_result, setRecherche_Article_Help_result] = useState([]);
function Recherche_Article_Help(e) {
var search_text = ""
if (document.getElementById("SearchText")) {
search_text = document.getElementById("SearchText").value;
}
var token = "";
if (typeof (stored_user) != "undefined") {
token = stored_user
}
var form = new FormData();
form.append("search_text", search_text);
form.append("token", token);
// Ajout des info IP user
form.append("user_ip", IPv4);
form.append("user_country_code", country_code);
form.append("user_country_name", country_name);
form.append("user_city", city);
form.append("user_postal", postal);
form.append("user_latitude", latitude);
form.append("user_longitude", longitude);
form.append("user_state", state);
var myurl = ""
myurl = process.env.REACT_APP_API_URL + "myclass/api/recherche_help_article/";
if (search_text.length <= 5) {
myurl = process.env.REACT_APP_API_URL + "myclass/api/get_all_published_help_article/";
}
axios.post(myurl, form).then(res => {
if (String(res.data.status) != String("false")) {
//console.log(" In Recherche_Article_Help res.data.status = " + res.data.status);
//console.log(" In Recherche_Article_Help res.data.message = " + res.data.message);
setRecherche_Article_Help_api(res.data.status);
setRecherche_Article_Help_result(res.data.message);
setmyApiResponse("True");
setResult(res.data.message);
var new_data2 = [];
const new_data = res.data.message.map((x) => {
//---
var video_path = JSON.parse(x).video_path;
var img_path = JSON.parse(x).img_path;
if ((video_path && video_path.length > 10) ||
(img_path && img_path.length > 10)
) {
new_data2.push(x)
}
});
if (new_data2.length > 0)
setNew_get_all_published_articles_avis_result_With_Image_Or_Video(new_data2);
else
setNew_get_all_published_articles_avis_result_With_Image_Or_Video([]);
}
else {
//console.log(" In test res.data.status = " + res.data.status);
//console.log(" In test res.data.message = " + res.data.message);
setmyApiResponse("False");
setRecherche_Article_Help_api(res.data.status);
setRecherche_Article_Help_message(res.data.message);
//setmyApimyApiMessage("")
}
}).catch((error) => {
console.warn('Not good man :( mysearchtext = ');
setmyApiResponse("False");
setRecherche_Article_Help_api("False");
//setmyApimyApiMessage("")
})
}
const [New_get_all_published_articles_avis_result_With_Image_Or_Video, setNew_get_all_published_articles_avis_result_With_Image_Or_Video] = useState([]);
const [get_all_published_articles_avis_api, setget_all_published_articles_avis_api] = useState();
@ -767,6 +856,7 @@ const Recherche_Help_new_v2 = (props) => {
setfield_texte_avis("");
};
function clear_article_avis_fields() {
@ -780,6 +870,9 @@ const Recherche_Help_new_v2 = (props) => {
setarticle_avis_display_header_img(false);
setarticle_avis_meta_description("");
setfield_texte_avis("");
setarticle_avis_a_retenir("");
setarticle_avis_video_path("");
}
const [article_avis_date_publication, setarticle_avis_date_publication] = useState(new Date().toLocaleDateString('fr-FR'));
@ -795,6 +888,8 @@ const Recherche_Help_new_v2 = (props) => {
const [article_avis_meta_description, setarticle_avis_meta_description] = React.useState("");
const [article_avis_video_path, setarticle_avis_video_path] = React.useState("");
const [article_avis_a_retenir, setarticle_avis_a_retenir] = React.useState("");
function Add_Update_Article_Avis(e) {
clear_message();
@ -848,6 +943,10 @@ const Recherche_Help_new_v2 = (props) => {
form.append("user_longitude", longitude);
form.append("user_state", state);
form.append("video_path", article_avis_video_path);
form.append("img_path", article_avis_img_path);
// Si une balise meta description n'est pas fourni, alors on lui donne le titre
var local_meta_description = "";
if (article_avis_meta_description) {
@ -858,19 +957,38 @@ const Recherche_Help_new_v2 = (props) => {
form.append("meta_description", local_meta_description);
var local_a_retenir = "";
if (article_avis_a_retenir) {
local_a_retenir = String(article_avis_a_retenir).trim().toLocaleLowerCase().substring(0, 1000);
} else {
local_a_retenir = String(article_avis_a_retenir).trim().toLocaleLowerCase().substring(0, 1000);
}
form.append("a_retenir", local_a_retenir);
// console.log(" ## form = ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/add_help_article/";
var myurl = "";
if (selected_article_id && selected_article_id.length > 5) {
form.append("_id", selected_article_id);
myurl = process.env.REACT_APP_API_URL + "myclass/api/update_help_article/";
} else {
myurl = process.env.REACT_APP_API_URL + "myclass/api/add_help_article/";
}
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("false")) {
alert(res.data.message);
//alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
else if (String(res.data.status) === String("true")) {
alert(res.data.message);
// alert(res.data.message);
Dialog_article_avis_handleClose_buton();
window.location.reload();
@ -881,6 +999,9 @@ const Recherche_Help_new_v2 = (props) => {
}).catch((error) => {
setLoading(false);
console.warn('contact-nous Not good man :( mysearchtext = ');
setdisplay_alert_mysy("1");
setalert_message("Impossible de créer ou mettre à jour l'article");
setalert_type("error");
})
@ -1362,6 +1483,12 @@ const Recherche_Help_new_v2 = (props) => {
setarticle_avis_meta_description("");
}
if (mylocal_document.a_retenir) {
setarticle_avis_a_retenir(mylocal_document.a_retenir);
} else {
setarticle_avis_a_retenir("");
}
} else {
alert(" Aucun article recuperé");
@ -1431,10 +1558,35 @@ const Recherche_Help_new_v2 = (props) => {
}
const [selected_article_id, setselected_article_id] = useState("");
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
const [alert_message, setalert_message] = useState("");
const [alert_type, setalert_type] = useState("");
function clear_alert_message() {
setalert_message("");
}
function clear_alert_type() {
setalert_type("");
}
function clear_display_alert_mysy() {
setdisplay_alert_mysy("");
}
return (
<div style={{ width: "100%", float: "left" }}>
{/*** 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*/}
{/*** GESTION article */}
<Dialog
@ -1453,6 +1605,8 @@ const Recherche_Help_new_v2 = (props) => {
position: 'absolute',
top: '5rem',
margin: "2px",
width: '60rem',
maxWidth: 'unset',
},
}}
hideBackdrop={true}
@ -1466,7 +1620,7 @@ const Recherche_Help_new_v2 = (props) => {
>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">Votre article </DialogTitle>
<DialogContent className="DialogContent_width DialogContent_width_session_800px" >
<DialogContent>
{String(is_data_changed) === String("1") && <div className="div_row_dialog">
@ -1516,14 +1670,11 @@ const Recherche_Help_new_v2 = (props) => {
</div>
<div className="div_row" style={{ "width": "100%", }}>
<div className="div_row_dialog" style={{ "textAlign": "left", "width": "50%", "height": "5rem", "float": "left" }}>
<div className="div_row_dialog">
<div className="div_row_gauche_dialog_session" style={{ "textAlign": 'left', paddingTop: '15px' }}>
<b> Date publication </b>
</div>
<div className="div_row_droite_dialog_session" style={{ "textAlign": 'right' }}>
<DatePicker
name="date_publication"
id="date_publication"
@ -1537,14 +1688,12 @@ const Recherche_Help_new_v2 = (props) => {
dateFormat="dd/MM/yyyy"
className="disabled_style session_caract_Dialog_DatePicker"
/>
</div>
</div>
<div className="div_row_dialog">
<div className="div_row_gauche_dialog_session" style={{ "textAlign": 'left', paddingTop: '15px' }}>
<b> Affiche image </b>
</div>
<div className="div_row_droite_dialog_session" style={{ "textAlign": 'right' }}>
<div className="div_row_dialog" style={{ "textAlign": "left", "width": "50%", "height": "5rem", "float": "left" }}>
<b> Affiche image </b>
<Checkbox
name="document_join_pdf"
className="disabled_style session_caract_Dialog_DatePicker"
@ -1556,32 +1705,47 @@ const Recherche_Help_new_v2 = (props) => {
/>
</div>
</div>
<div className="div_row_dialog">
<div className="div_row_dialog" style={{ "textAlign": 'left' }}>
<b> Image Url </b>
</div>
<div className="div_row_dialog" >
<div className="div_row_dialog" >
<div className="div_row_dialog" style={{ "textAlign": 'left' }}>
<input
type='text'
name='img_url'
id='img_url'
disabled
<div className="div_row" style={{ "width": "100%", }}>
<div className="div_row_dialog" style={{ "textAlign": "left", "width": "50%", "height": "5rem", "float": "left" }}>
Url Video
<div className="div_row_dialog" style={{ "textAlign": 'left' }}>
<input
type='text'
name='url_video'
value={article_avis_video_path}
onChange={(e) => {
setarticle_avis_video_path(e.target.value);
setis_data_changed("1");
}}
className='disabled_style_width_100_percent'
className='disabled_style_width_100_percent'
></input>
</div>
></input>
</div>
</div>
<div className="div_row_dialog" style={{ "textAlign": "left", "width": "50%", "height": "5rem", "float": "left" }}>
Url Image
<input
type='text'
name='url_image'
value={article_avis_img_path}
onChange={(e) => {
setarticle_avis_img_path(e.target.value);
setis_data_changed("1");
}}
className='disabled_style_width_100_percent'
></input>
</div>
</div>
<div className="div_row_dialog">
<div className="div_row_dialog" style={{ "textAlign": 'left' }}>
<b> Image </b>
@ -1671,6 +1835,38 @@ const Recherche_Help_new_v2 = (props) => {
</div>
<div className="div_row_dialog">
<div className="div_row_dialog" style={{ "textAlign": 'left' }}>
<b> A retenir </b>
<div className="div_row_dialog" >
<TextField
maxRows={4}
minRows={3}
inputProps={{ maxLength: 200 }}
multiline
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="meta_description"
id="meta_description"
fullWidth
value={article_avis_a_retenir}
onChange={(e) => {
setarticle_avis_a_retenir(e.target.value);
setis_data_changed("1");
}
}
/>
</div>
</div>
</div>
<div className="div_row_dialog">
<div className="div_row_dialog" style={{ with: '100%', float: 'left' }}>
<div style={{ "textAlign": 'left', with: '65%', float: 'left' }}>
@ -1796,9 +1992,11 @@ const Recherche_Help_new_v2 = (props) => {
<div className="support-search-premium__icon"></div>
<input
type="text"
name="SearchText"
id="SearchText"
placeholder="Rechercher un article, une fonctionnalité, une thématique..."
/>
<button>Rechercher</button>
<button onClick={Recherche_Article_Help}>Rechercher</button>
</div>
<div className="support-tags">
@ -1819,7 +2017,7 @@ const Recherche_Help_new_v2 = (props) => {
<div className="support-content-area">
<div className="support-section-title">
{/*<div className="support-section-title">
<div>
<span className="support-section-title__eyebrow">
À la une
@ -1875,7 +2073,7 @@ const Recherche_Help_new_v2 = (props) => {
// setarticle_avis_avis(props.article.avis);
// setfield_texte_avis_initial_value(props.article.avis);
setarticle_avis_date_publication(moment((String(article.date_avis)).substring(0, 10)).format('YYYY-MM-DD'))
setselected_article_id(JSON.parse(article)._id);
Get_Partner_Article_Avis_Data(article._id);
setedit_article("1");
setis_data_changed("");
@ -1946,129 +2144,32 @@ const Recherche_Help_new_v2 = (props) => {
</article>
))}
</div>
</div>*/}
<div className="support-section-title support-section-title--spaced">
<div>
<span className="support-section-title__eyebrow">
Ressources
Ressources
{connected_user_article_avis_droit_modif === "1" && <div className="div_row">
<Button onClick={(e) => {
var al = moment((new Date()));
setarticle_avis_date_publication(moment(al).format('YYYY-MM-DD'));
clear_article_avis_fields();
setis_data_changed("");
setDialog_article_avis_open(true);
}}
className="bton_enreg_dialog"> Ajouter 1 article &nbsp;&nbsp;
<FcPlus style={{ fontSize: "20px" }} />
</Button>
</div>}
</span>
<h2>Articles récents</h2>
<h2>Tutos récents</h2>
</div>
</div>
<div className="article-grid-premium">
{articles.map((article) => (
<article className="article-card-premium" key={article.id}>
<div className="article-card-premium__image-wrap">
<img src={article.image} alt={article.title} />
<span className="article-card-premium__category">
{article.category}
</span>
</div>
<div className="article-card-premium__body">
<div className="article-card-premium__meta">
<span>{article.date}</span>
<span></span>
<span>{article.readTime}</span>
</div>
<h3>{article.title}</h3>
<p>{article.excerpt}</p>
<a href="/" className="article-card-premium__link">
En savoir plus <span></span>
</a>
</div>
{connected_user_article_avis_droit_modif === "1" && <div style={{ "width": "100%", "float": "left" }} onClick={(e) => {
e.preventDefault();
}}>
<nav style={{
"width": "40%", "float": "left", "textAlign": "left", "paddingLeft": "2px", "paddingRight": "2px",
}}
>
<Box sx={{ '& > :not(style)': { m: 1 }, }} onClick={(e) => {
setarticle_avis_title_formation(article.title_formation);
// setarticle_avis_avis(props.article.avis);
// setfield_texte_avis_initial_value(props.article.avis);
setarticle_avis_date_publication(moment((String(article.date_avis)).substring(0, 10)).format('YYYY-MM-DD'))
Get_Partner_Article_Avis_Data(article._id);
setedit_article("1");
setis_data_changed("");
setDialog_article_avis_open(true);
}}>
<Fab size="small" color="primary" aria-label="edit" variant="extended">
<EditIcon sx={{ pr: 1 }} />
</Fab>
</Box> </nav>
<nav style={{ "width": "40%", "float": "right", "textAlign": "right", "paddingLeft": "2px", "paddingRight": "2px" }} >
<Popup
trigger={
<Box sx={{ '& > :not(style)': { m: 1 }, }} onClick={(e) => {
}}>
<Fab size="small" color="warning" aria-label="edit" variant="extended">
<MdDeleteForever sx={{ pr: 1 }} />
</Fab>
</Box>
}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, le document sera <i><font color="red"> définitivement supprimé</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Article_Avis_Data(article._id);
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>
</nav>
</div>}
</article>
))}
</div>
<div className="article-grid-premium">
@ -2085,8 +2186,7 @@ const Recherche_Help_new_v2 = (props) => {
<div className="article-card-premium__body">
<div className="article-card-premium__meta">
<span>{String(JSON.parse(article).date_avis).substring(0, 10)}</span>
<span></span>
<span>5 min</span>
</div>
<h3>{String(JSON.parse(article).title_formation).substring(0, 50)}</h3>
@ -2116,6 +2216,7 @@ const Recherche_Help_new_v2 = (props) => {
// setfield_texte_avis_initial_value(props.article.avis);
setarticle_avis_date_publication(moment((String(JSON.parse(article).date_avis)).substring(0, 10)).format('YYYY-MM-DD'))
setselected_article_id(JSON.parse(article)._id);
Get_Partner_Article_Avis_Data(JSON.parse(article)._id);
setedit_article("1");
setis_data_changed("");

View File

@ -7,6 +7,7 @@ import axios from "axios";
import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import MoreVertIcon from '@mui/icons-material/MoreVert';
import { AiOutlineMail } from "react-icons/ai";
import { DataGrid, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import 'react-tooltip/dist/react-tooltip.css'
@ -387,7 +388,15 @@ const Session_Admission_FI = (props) => {
},
},
{
field: 'notification', headerName: 'Notif.', hide: false, Width: 100, renderCell: (params) => {
return (
<nav style={{width:'100%', textAlign:'center'}}>
<AiOutlineMail />
</nav>
);
},
},
{
field: "delete", headerName: 'Supprimer', disableExport: true,
@ -2387,7 +2396,7 @@ const Session_Admission_FI = (props) => {
const New_Option = [
{ "id": "1", "label": "Notification", "value": "notification" },
{ "id": "2", "label": "Désistement", "value": "desistement" },
{ "id": "2", "label": "Désistement", "value": "desistement" },
{ "id": "3", "label": "Supprimer", "value": "supprimer" },
]
@ -4101,7 +4110,7 @@ const Session_Admission_FI = (props) => {
}
{/*** FIN Affichage des messages d'alerte*/}
<h3 style={{ fontFamily: 'DM Sans' }}> Les sessions d'admission </h3>
@ -4795,8 +4804,7 @@ const Session_Admission_FI = (props) => {
shrink: true,
}}
disabled={false}
className="disabled_style enable_style
"
className="disabled_style enable_style"
value={New_Getall_Admiss_Process_result.filter((data) => (data)._id === String(p_detail_process_inscription))[0].label}
@ -8130,13 +8138,13 @@ const Session_Admission_FI = (props) => {
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
<Button variant="contained" className="bton_enreg" onClick={Add_Update_Inscrit_To_Session_Admiss}> Enregistrer 2
<Button variant="contained" className="bton_enreg" onClick={Add_Update_Inscrit_To_Session_Admiss}> Enregistrer
</Button>
</div>
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
<Button variant="contained" className="bton_annule" onClick={Annuler_modif_inscrit}>Annuler 2
<Button variant="contained" className="bton_annule" onClick={Annuler_modif_inscrit}>Annuler
</Button>
</div>