sds
parent
5f7abfa1a1
commit
67f3cbb535
|
@ -1527,28 +1527,7 @@ const Module_Editique = (props) => {
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{/*<TextField
|
|
||||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 } }}
|
|
||||||
|
|
||||||
name="event_dialog_type_convention"
|
|
||||||
id="event_dialog_type_convention"
|
|
||||||
|
|
||||||
select
|
|
||||||
fullWidth
|
|
||||||
|
|
||||||
value={selected_convention_type}
|
|
||||||
onChange={(e) => {
|
|
||||||
setselected_convention_type(e.target.value);
|
|
||||||
Get_List_Stagiaire_Convocations(action_server_ref_interne_doc, action_server_nom_doc,
|
|
||||||
String(e.target.value), Dialog_1_message);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
>
|
|
||||||
|
|
||||||
<MenuItem value="email" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Email </MenuItem>
|
|
||||||
<MenuItem value="pdf" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >PDF </MenuItem>
|
|
||||||
</TextField>*/}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,488 @@
|
||||||
|
|
||||||
|
import React, { useRef, useState, useEffect } from "react";
|
||||||
|
import TextField from '@mui/material/TextField';
|
||||||
|
import MenuItem from '@mui/material/MenuItem';
|
||||||
|
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
|
||||||
|
import Button from '@mui/material/Button';
|
||||||
|
import axios from "axios";
|
||||||
|
import { getCookie, setCookie } from 'react-use-cookie';
|
||||||
|
import { useHistory } from "react-router-dom";
|
||||||
|
import CheckOut from "./CheckOut";
|
||||||
|
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
|
||||||
|
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
|
||||||
|
import { Editor } from '@tinymce/tinymce-react';
|
||||||
|
import parse from 'html-react-parser';
|
||||||
|
import 'react-tooltip/dist/react-tooltip.css'
|
||||||
|
import { Tooltip } from 'react-tooltip'
|
||||||
|
import add_plus from "../mysy_img/plus.png";
|
||||||
|
import excel_icone from "../mysy_img/excel_icone.png";
|
||||||
|
import participants from "../mysy_img/participants.png";
|
||||||
|
import fileDownload from 'js-file-download'
|
||||||
|
import Popup from 'reactjs-popup';
|
||||||
|
import 'reactjs-popup/dist/index.css';
|
||||||
|
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint } from "react-icons/fc";
|
||||||
|
import DatePicker from "react-datepicker";
|
||||||
|
import "react-datepicker/dist/react-datepicker.css";
|
||||||
|
import { format } from 'date-fns'
|
||||||
|
import moment from "moment";
|
||||||
|
import InputAdornment from '@mui/material/InputAdornment';
|
||||||
|
import { AiFillCloseCircle } from "react-icons/ai";
|
||||||
|
import Box from '@mui/material/Box';
|
||||||
|
import { Typography, LinearProgress, sliderClasses } from '@mui/material';
|
||||||
|
import styled from 'styled-components';
|
||||||
|
import { CiTrash } from "react-icons/ci";
|
||||||
|
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
|
||||||
|
import Dialog from '@mui/material/Dialog';
|
||||||
|
import DialogActions from '@mui/material/DialogActions';
|
||||||
|
import DialogContent from '@mui/material/DialogContent';
|
||||||
|
import DialogContentText from '@mui/material/DialogContentText';
|
||||||
|
import DialogTitle from '@mui/material/DialogTitle';
|
||||||
|
import { TransitionProps } from '@mui/material/transitions';
|
||||||
|
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||||
|
//import FullCalendar from "@fullcalendar/react";
|
||||||
|
import daygridPlugin from "@fullcalendar/daygrid";
|
||||||
|
//import interactionPlugin from "@fullcalendar/interaction";
|
||||||
|
//import timeGridPlugin from "@fullcalendar/timegrid";
|
||||||
|
|
||||||
|
import allLocales from '@fullcalendar/core/locales-all'
|
||||||
|
import { RepeatOnRounded } from "@mui/icons-material";
|
||||||
|
import { alignPropType } from "react-bootstrap/esm/types";
|
||||||
|
|
||||||
|
|
||||||
|
import ToggleSwitch from "./ToggleSwitch";
|
||||||
|
import ToggleSwitch_v2_mysy from "./ToggleSwitch_v2_mysy";
|
||||||
|
import ToggleSwitch_v3_mysy from "./ToggleSwitch_v3_mysy";
|
||||||
|
|
||||||
|
|
||||||
|
import Autocomplete from '@mui/material/Autocomplete';
|
||||||
|
import FullCalendar, { formatDate } from "@fullcalendar/react";
|
||||||
|
import dayGridPlugin from "@fullcalendar/daygrid";
|
||||||
|
import timeGridPlugin from "@fullcalendar/timegrid";
|
||||||
|
import interactionPlugin from "@fullcalendar/interaction";
|
||||||
|
import { FcSearch } from "react-icons/fc";
|
||||||
|
import { Fab } from "@material-ui/core";
|
||||||
|
import {
|
||||||
|
ListItem,
|
||||||
|
ListItemText,
|
||||||
|
useTheme,
|
||||||
|
} from "@mui/material";
|
||||||
|
|
||||||
|
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
||||||
|
import ChevronRightIcon from '@mui/icons-material/ChevronRight';
|
||||||
|
import { TreeView } from '@mui/x-tree-view/TreeView';
|
||||||
|
import { TreeItem } from '@mui/x-tree-view/TreeItem';
|
||||||
|
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
|
||||||
|
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
|
||||||
|
import { convertNwSeToNeSw } from "google-map-react";
|
||||||
|
|
||||||
|
const Module_Email_Management = (props) => {
|
||||||
|
|
||||||
|
const myconntected_employee_id = props.conntected_employee_id;
|
||||||
|
|
||||||
|
const [selected_employee_id, setselected_employee_id] = useState(props.conntected_employee_id);
|
||||||
|
|
||||||
|
const history = useHistory();
|
||||||
|
const [isLoading, setLoading] = useState();
|
||||||
|
|
||||||
|
const [Dialog_1_message, setDialog_1_message] = React.useState(false);
|
||||||
|
const [Dialog_1_open, setDialog_1_open] = React.useState(false);
|
||||||
|
function Dialog_1_handle_change_participant_session(message) {
|
||||||
|
setDialog_1_message(message);
|
||||||
|
setDialog_1_open(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
const Dialog_1_handleClose = () => {
|
||||||
|
//alert(" Utiliser le bouton 'fermer' ");
|
||||||
|
//setOpen(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const Dialog_1_handleClose_buton = () => {
|
||||||
|
setDialog_1_open(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const [field_suivi_eval, setfield_suivi_eval] = useState("");
|
||||||
|
|
||||||
|
const editorRef_suivi_eval = useRef(null);
|
||||||
|
const [editorRef_suivi_eval_limite, seteditorRef_suivi_eval_limite] = useState(2000);
|
||||||
|
|
||||||
|
const [editor_tochange, seteditor_tochange] = useState("");
|
||||||
|
function editor_keyup() {
|
||||||
|
seteditor_tochange("1");
|
||||||
|
}
|
||||||
|
|
||||||
|
const [datamodification, setdatamodification] = useState("0");
|
||||||
|
|
||||||
|
function DataUpdated() {
|
||||||
|
setdatamodification("1");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const [p_detail_cible, setp_detail_cible] = useState("");
|
||||||
|
const [p_detail_contenu_doc, setp_detail_contenu_doc] = useState("");
|
||||||
|
const [p_detail_nom, setp_detail_nom] = useState("");
|
||||||
|
const [p_detail_ref_interne, setp_detail_ref_interne] = useState("");
|
||||||
|
const [p_detail_sujet, setp_detail_sujet] = useState("");
|
||||||
|
const [p_detail_type_doc, setp_detail_type_doc] = useState("");
|
||||||
|
const [p_detail_duplicate, setp_detail_duplicate] = useState("");
|
||||||
|
|
||||||
|
const [p_detail_joint_pdf, setp_detail_joint_pdf] = useState(false);
|
||||||
|
|
||||||
|
const [p_detail_default_version, setp_detail_default_version] = useState(false);
|
||||||
|
const [p_detail_edition_par_client, setp_detail_edition_par_client] = useState(false);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const [p_one_detail_cible, setp_one_detail_cible] = useState("");
|
||||||
|
const [p_one_detail_contenu_doc, setp_one_detail_contenu_doc] = useState("");
|
||||||
|
const [p_one_detail_nom, setp_one_detail_nom] = useState("");
|
||||||
|
const [p_one_detail_ref_interne, setp_one_detail_ref_interne] = useState("");
|
||||||
|
const [p_one_detail_sujet, setp_one_detail_sujet] = useState("");
|
||||||
|
const [p_one_detail_type_doc, setp_one_detail_type_doc] = useState("");
|
||||||
|
const [p_one_detail_duplicate, setp_one_detail_duplicate] = useState("");
|
||||||
|
|
||||||
|
const [p_one_detail_edit_by_client, setp_one_detail_edit_by_client] = useState("");
|
||||||
|
|
||||||
|
const [p_one_detail_courrier_template_type_document_ref_interne, setp_one_detail_courrier_template_type_document_ref_interne] = useState("");
|
||||||
|
const [original_courrier_template_id, setoriginal_courrier_template_id] = React.useState("");
|
||||||
|
const [field_corp_mail, set_field_corp_mail] = useState("");
|
||||||
|
const [field_corp_mail_initial_value, set_field_corp_mail_initial_value] = useState("");
|
||||||
|
|
||||||
|
const [one_field_corp_mail, setone_field_corp_mail] = useState("");
|
||||||
|
const [one_field_corp_mail_initial_value, setone_field_corp_mail_initial_value] = useState("");
|
||||||
|
|
||||||
|
const one_editorRef_programme = useRef(null);
|
||||||
|
const [one_editorRef_programme_limite, setone_editorRef_programme_limite] = useState(1000);
|
||||||
|
|
||||||
|
|
||||||
|
const [field_programme, setfield_programme] = useState("");
|
||||||
|
const [field_programme_initial_value, setfield_programme_initial_value] = useState("");
|
||||||
|
|
||||||
|
const [one_field_programme, setone_field_programme] = useState("");
|
||||||
|
const [one_field_programme_initial_value, setone_field_programme_initial_value] = useState("");
|
||||||
|
|
||||||
|
|
||||||
|
const [New_Get_Partner_List_SendEmail_Document_result, setNew_Get_Partner_List_SendEmail_Document_result] = useState([]);
|
||||||
|
|
||||||
|
const [Get_Partner_List_SendEmail_Document_api, setGet_Partner_List_SendEmail_Document_api] = useState();
|
||||||
|
const [Get_Partner_List_SendEmail_Document_message, setGet_Partner_List_SendEmail_Document_message] = useState();
|
||||||
|
const [Get_Partner_List_SendEmail_Document_result, setGet_Partner_List_SendEmail_Document_result] = useState();
|
||||||
|
function Get_Partner_List_SendEmail_Document(ref_interne_document) {
|
||||||
|
|
||||||
|
var form = new FormData();
|
||||||
|
|
||||||
|
const stored_cookie = getCookie('tokenmysypart');
|
||||||
|
form.append("token", stored_cookie);
|
||||||
|
form.append("ref_interne", ref_interne_document);
|
||||||
|
|
||||||
|
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Partner_Document_with_filter/";
|
||||||
|
setLoading(true);
|
||||||
|
|
||||||
|
|
||||||
|
axios.post(myurl, form).then(res => {
|
||||||
|
//console.log(" In Get_Partner_List_SendEmail_Document res.data.status = " + res.data.status);
|
||||||
|
//console.log(" In Get_Partner_List_SendEmail_Document res.data.message r_class = " + res.data.message);
|
||||||
|
setLoading(false);
|
||||||
|
if (String(res.data.status) === String("true")) {
|
||||||
|
|
||||||
|
|
||||||
|
setGet_Partner_List_SendEmail_Document_api("true");
|
||||||
|
setGet_Partner_List_SendEmail_Document_result(res.data.message);
|
||||||
|
|
||||||
|
var new_data2 = [];
|
||||||
|
|
||||||
|
const new_data = res.data.message.map((x) => {
|
||||||
|
|
||||||
|
//---
|
||||||
|
var localid = JSON.parse(x).id;
|
||||||
|
var local_id = JSON.parse(x)._id;
|
||||||
|
var local_ref_interne = JSON.parse(x).ref_interne;
|
||||||
|
var local_nom = JSON.parse(x).nom;
|
||||||
|
var local_sujet = JSON.parse(x).sujet;
|
||||||
|
var local_type_doc = JSON.parse(x).type_doc;
|
||||||
|
var local_cible = JSON.parse(x).cible;
|
||||||
|
var local_joint_pdf = JSON.parse(x).joint_pdf;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//---
|
||||||
|
var node = {
|
||||||
|
"_id": local_id,
|
||||||
|
"id": localid,
|
||||||
|
"label": local_nom,
|
||||||
|
"ref_interne": local_ref_interne,
|
||||||
|
"nom": local_nom,
|
||||||
|
"sujet": local_sujet,
|
||||||
|
"type_doc": local_type_doc,
|
||||||
|
"cible": local_cible,
|
||||||
|
"joint_pdf": local_joint_pdf,
|
||||||
|
|
||||||
|
};
|
||||||
|
new_data2.push(node);
|
||||||
|
|
||||||
|
console.log(" ## node = ", node)
|
||||||
|
});
|
||||||
|
|
||||||
|
if (new_data2.length > 0)
|
||||||
|
setNew_Get_Partner_List_SendEmail_Document_result(new_data2);
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setGet_Partner_List_SendEmail_Document_api("false");
|
||||||
|
setGet_Partner_List_SendEmail_Document_message(res.data.message);
|
||||||
|
alert(res.data.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}).catch((error) => {
|
||||||
|
setLoading(false);
|
||||||
|
console.warn('Not good man :( Get_Partner_List_SendEmail_Document = ', error);
|
||||||
|
setGet_Partner_List_SendEmail_Document_api("false");
|
||||||
|
alert("Impossible de récupérer les modèles de convocations");
|
||||||
|
//setmyApimyApiMessage("")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const [Get_Given_Partner_Document_Data_By_id_api, setGet_Given_Partner_Document_Data_By_id_api] = useState();
|
||||||
|
const [Get_Given_Partner_Document_Data_By_id_message, setGet_Given_Partner_Document_Data_By_id_message] = useState();
|
||||||
|
const [Get_Given_Partner_Document_Data_By_id_result, setGet_Given_Partner_Document_Data_By_id_result] = useState();
|
||||||
|
function Get_Given_Partner_Document_Data_By_id(local_id) {
|
||||||
|
|
||||||
|
var form = new FormData();
|
||||||
|
const stored_cookie = getCookie('tokenmysypart');
|
||||||
|
form.append("token", stored_cookie);
|
||||||
|
form.append("_id", local_id);
|
||||||
|
|
||||||
|
//console.log(" ## form = ", form);
|
||||||
|
|
||||||
|
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Partner_Document/";
|
||||||
|
setLoading(true);
|
||||||
|
axios.post(myurl, form).then(res => {
|
||||||
|
|
||||||
|
if (String(res.data.status) === "true") {
|
||||||
|
//console.log(" In Get_Given_Partner_Document_Data_By_id res.data.status = " + res.data.status);
|
||||||
|
console.log(" In Get_Given_Partner_Document_Data_By_id res.data.message r_class = " + res.data.message);
|
||||||
|
setLoading(false);
|
||||||
|
setGet_Given_Partner_Document_Data_By_id_api("true");
|
||||||
|
setGet_Given_Partner_Document_Data_By_id_result(res.data.message);
|
||||||
|
|
||||||
|
if (res.data.message.length > 0) {
|
||||||
|
var mylocal_document = JSON.parse(res.data.message);
|
||||||
|
|
||||||
|
if (mylocal_document._id)
|
||||||
|
setoriginal_courrier_template_id(mylocal_document._id);
|
||||||
|
|
||||||
|
|
||||||
|
if (mylocal_document.nom)
|
||||||
|
setp_one_detail_nom(mylocal_document.nom);
|
||||||
|
|
||||||
|
|
||||||
|
if (mylocal_document.type_doc)
|
||||||
|
setp_one_detail_type_doc(mylocal_document.type_doc);
|
||||||
|
|
||||||
|
|
||||||
|
if (mylocal_document.cible)
|
||||||
|
setp_one_detail_cible(mylocal_document.cible);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (mylocal_document.ref_interne) {
|
||||||
|
setp_one_detail_ref_interne(mylocal_document.ref_interne);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mylocal_document.courrier_template_type_document_ref_interne) {
|
||||||
|
setp_one_detail_courrier_template_type_document_ref_interne(mylocal_document.courrier_template_type_document_ref_interne);
|
||||||
|
} else {
|
||||||
|
setp_one_detail_courrier_template_type_document_ref_interne("");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (mylocal_document.sujet) {
|
||||||
|
setp_one_detail_sujet(mylocal_document.sujet);
|
||||||
|
}
|
||||||
|
|
||||||
|
setp_detail_joint_pdf(false)
|
||||||
|
if (mylocal_document.joint_pdf) {
|
||||||
|
if (String(mylocal_document.joint_pdf) === "1")
|
||||||
|
setp_detail_joint_pdf(true)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (mylocal_document.duplicate) {
|
||||||
|
setp_one_detail_duplicate(mylocal_document.duplicate);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setp_one_detail_duplicate("0");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mylocal_document.edit_by_client) {
|
||||||
|
setp_one_detail_edit_by_client(mylocal_document.edit_by_client);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setp_one_detail_edit_by_client("0");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
setfield_programme("");
|
||||||
|
if (mylocal_document.contenu_doc) {
|
||||||
|
setone_field_programme(String(mylocal_document.contenu_doc));
|
||||||
|
setone_field_programme_initial_value(String(mylocal_document.contenu_doc));
|
||||||
|
}
|
||||||
|
|
||||||
|
set_field_corp_mail("");
|
||||||
|
if (mylocal_document.corps_mail) {
|
||||||
|
setone_field_corp_mail(String(mylocal_document.corps_mail));
|
||||||
|
setone_field_corp_mail_initial_value(String(mylocal_document.corps_mail));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (document.getElementById('myRef')) {
|
||||||
|
//myRef.current.scrollIntoView({ behavior: "smooth" });
|
||||||
|
|
||||||
|
var divh = document.getElementById('myRef').offsetTop;
|
||||||
|
window.scrollTo({
|
||||||
|
top: divh,
|
||||||
|
behavior: "smooth",
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
alert(" Aucun document recuperé");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else if (String(res.data.status) === String("Err_Connexion")) {
|
||||||
|
alert('Erreur: ' + res.data.message);
|
||||||
|
history.push("/Connexion");
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
setGet_Given_Partner_Document_Data_By_id_api("false");
|
||||||
|
setGet_Given_Partner_Document_Data_By_id_message(res.data.message);
|
||||||
|
alert(res.data.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}).catch((error) => {
|
||||||
|
setLoading(false);
|
||||||
|
console.warn('Not good man :( Get_Given_Partner_Document_Data_By_id = ', error);
|
||||||
|
setGet_Given_Partner_Document_Data_By_id_api("false");
|
||||||
|
alert(" Impossible de recuperer le modèle initial");
|
||||||
|
//setmyApimyApiMessage("")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
Get_Partner_List_SendEmail_Document("SENDEMAIL_MODELE");
|
||||||
|
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return (
|
||||||
|
|
||||||
|
<div className="module_email_management">
|
||||||
|
{isLoading && <div className="loader-container">
|
||||||
|
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||||
|
</div>}
|
||||||
|
|
||||||
|
<h3> Module gestion email </h3>
|
||||||
|
|
||||||
|
<form onSubmit={"sendEmail"}>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog" > Choisir un modèle de courrier
|
||||||
|
{New_Get_Partner_List_SendEmail_Document_result && <Autocomplete
|
||||||
|
disablePortal
|
||||||
|
id="competence_nom"
|
||||||
|
name="competence_nom"
|
||||||
|
|
||||||
|
fullWidth
|
||||||
|
|
||||||
|
options={New_Get_Partner_List_SendEmail_Document_result}
|
||||||
|
|
||||||
|
onChange={(event, value) => {
|
||||||
|
|
||||||
|
if (value && value._id) {
|
||||||
|
|
||||||
|
Get_Given_Partner_Document_Data_By_id(value._id);
|
||||||
|
// setselected_statistic_question_id(value.question_id);
|
||||||
|
} else {
|
||||||
|
// setselected_statistic_question_id("");
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
|
||||||
|
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||||
|
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||||
|
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog">
|
||||||
|
<div className="div_row_gauche_dialog_session" style={{ "textAlign": 'left', height: '2.5rem', paddingTop: '10px' }}>
|
||||||
|
Email
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="div_row_droite_dialog_session" style={{ "textAlign": 'right' }}>
|
||||||
|
<input type="email" name="user_email" style={{ "textAlign": 'left', width: "100%", height: '2.5rem' }} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog">
|
||||||
|
<div className="div_row_gauche_dialog_session" style={{ "textAlign": 'left' }}>
|
||||||
|
Corps Email
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog" style={{ "textAlign": 'left', "width": '100%', "border": "1px solid" }}>
|
||||||
|
<div style={{ "textAlign": 'left', "width": '100%' }}>
|
||||||
|
<Editor
|
||||||
|
onInit={(evt, editor) => editorRef_suivi_eval.current = editor}
|
||||||
|
initialValue={field_programme}
|
||||||
|
onKeyUp={editor_keyup}
|
||||||
|
onEditorChange={(newValue, editor) => {
|
||||||
|
if (String(editor_tochange) === "1") {
|
||||||
|
//alert(" change");
|
||||||
|
DataUpdated();
|
||||||
|
seteditor_tochange("");
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
init={{
|
||||||
|
resize: false,
|
||||||
|
height: 300,
|
||||||
|
|
||||||
|
menubar: false,
|
||||||
|
|
||||||
|
plugins: [
|
||||||
|
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview',
|
||||||
|
'anchor', 'searchreplace', 'visualblocks', 'code', 'fullscreen',
|
||||||
|
'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount'
|
||||||
|
],
|
||||||
|
toolbar: 'undo redo | blocks | ' +
|
||||||
|
'bold italic forecolor | alignleft aligncenter ' +
|
||||||
|
'alignright alignjustify | bullist numlist outdent indent | ' +
|
||||||
|
'removeformat | help',
|
||||||
|
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }'
|
||||||
|
}}
|
||||||
|
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<input type="submit" value="Send" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export default Module_Email_Management;
|
|
@ -75,15 +75,15 @@ const Recherche_new_v2 = () => {
|
||||||
const [myApiResponse, setmyApiResponse] = useState("false");
|
const [myApiResponse, setmyApiResponse] = useState("false");
|
||||||
const [displayAllClasses, setdisplayAllClasses] = useState("0");
|
const [displayAllClasses, setdisplayAllClasses] = useState("0");
|
||||||
const [showelement, setshowelement] = useState("init");
|
const [showelement, setshowelement] = useState("init");
|
||||||
const [country_code, setcountry_code] = useState("");
|
const [country_code, setcountry_code] = useState("FR");
|
||||||
const [country_name, setcountry_name] = useState("");
|
const [country_name, setcountry_name] = useState("France");
|
||||||
const [city, setcity] = useState("");
|
const [city, setcity] = useState("Paris");
|
||||||
const [postal, setpostal] = useState("");
|
const [postal, setpostal] = useState("75001");
|
||||||
const [latitude, setlatitude] = useState("");
|
const [latitude, setlatitude] = useState("48.861000061035156");
|
||||||
const [longitude, setlongitude] = useState("");
|
const [longitude, setlongitude] = useState("2.3380000591278076");
|
||||||
const [IPv4, setIPv4] = useState("");
|
const [IPv4, setIPv4] = useState("172.71.122.128");
|
||||||
const [state, setstate] = useState("");
|
const [state, setstate] = useState("France");
|
||||||
const [userIp, setuserIp] = useState("");
|
const [userIp, setuserIp] = useState("172.71.122.128");
|
||||||
const [currentPage, setCurrentPage] = useState(1);
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
const [currentPage2, setCurrentPage2] = useState(1);
|
const [currentPage2, setCurrentPage2] = useState(1);
|
||||||
const [fin, setfin] = useState(0);
|
const [fin, setfin] = useState(0);
|
||||||
|
@ -944,21 +944,21 @@ const Recherche_new_v2 = () => {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
||||||
|
|
||||||
var ip = "";
|
var ip = "";
|
||||||
async function fetchData() {
|
async function fetchData() {
|
||||||
const result = await axios('https://geolocation-db.com/json/',);
|
// 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);
|
/* setuserIp("172.71.122.128");
|
||||||
setcity(result.data.city);
|
setcountry_code("FR");
|
||||||
setpostal(result.data.postal);
|
setcountry_name("France");
|
||||||
setlatitude(result.data.latitude);
|
setcity("Paris");
|
||||||
setlongitude(result.data.longitude);
|
setpostal("75001");
|
||||||
setIPv4(result.data.IPv4);
|
setlatitude("48.861000061035156");
|
||||||
setstate(result.data.state);
|
setlongitude("2.3380000591278076");
|
||||||
setuserIp(result.data.IPv4);
|
setIPv4("172.71.122.128");
|
||||||
|
setstate("France");*/
|
||||||
|
|
||||||
let windowWidth = window.innerWidth;
|
let windowWidth = window.innerWidth;
|
||||||
|
|
||||||
|
@ -989,6 +989,8 @@ const Recherche_new_v2 = () => {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fetchData();
|
fetchData();
|
||||||
async function loadSuggestedWord() {
|
async function loadSuggestedWord() {
|
||||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Suggested_Word/";
|
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Suggested_Word/";
|
||||||
|
@ -2884,7 +2886,7 @@ const Recherche_new_v2 = () => {
|
||||||
{String(someoneconnected) !== String("1") && <nav className="meconnecter" onClick={handleAccountConnexion}>
|
{String(someoneconnected) !== String("1") && <nav className="meconnecter" onClick={handleAccountConnexion}>
|
||||||
Me connecter
|
Me connecter
|
||||||
</nav>}
|
</nav>}
|
||||||
{String(someoneconnected) === String("1") && <nav className="meconnecter"onClick={(e) => setDialog_1_open(true)}>
|
{String(someoneconnected) === String("1") && <nav className="meconnecter" onClick={(e) => setDialog_1_open(true)}>
|
||||||
Me deconnecter
|
Me deconnecter
|
||||||
</nav>}
|
</nav>}
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ import Typography from '@mui/material/Typography';
|
||||||
import Menu from '@mui/material/Menu';
|
import Menu from '@mui/material/Menu';
|
||||||
import Module_Editique from "./Module_Editique";
|
import Module_Editique from "./Module_Editique";
|
||||||
import Module_Attestation_Formation from "./Module_Attestation_Formation";
|
import Module_Attestation_Formation from "./Module_Attestation_Formation";
|
||||||
|
import Module_Email_Management from "./Module_Email_Management";
|
||||||
|
|
||||||
|
|
||||||
import ReactDOM from 'react-dom';
|
import ReactDOM from 'react-dom';
|
||||||
|
@ -597,6 +598,21 @@ const TestUrl_New = (props) => {
|
||||||
|
|
||||||
const [pad_signature_img, setpad_signature_img] = React.useState("");
|
const [pad_signature_img, setpad_signature_img] = React.useState("");
|
||||||
|
|
||||||
|
|
||||||
|
const [Dialog_1_message, setDialog_1_message] = React.useState(false);
|
||||||
|
const [Dialog_1_open, setDialog_1_open] = React.useState(false);
|
||||||
|
function Dialog_1_handle_change_participant_session(message) {
|
||||||
|
setDialog_1_message(message);
|
||||||
|
setDialog_1_open(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
const Dialog_1_handleClose = () => {
|
||||||
|
setDialog_1_open(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="testurl_new">
|
<div className="testurl_new">
|
||||||
<Helmet>
|
<Helmet>
|
||||||
|
@ -637,6 +653,44 @@ const TestUrl_New = (props) => {
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
|
||||||
|
|
||||||
|
{ /********* Dialog email */}
|
||||||
|
<Dialog
|
||||||
|
open={Dialog_1_open}
|
||||||
|
onClose={Dialog_1_handleClose}
|
||||||
|
|
||||||
|
className="module_agenda"
|
||||||
|
|
||||||
|
>
|
||||||
|
|
||||||
|
<DialogTitle>MySy Information</DialogTitle>
|
||||||
|
<DialogContent className="DialogContent_width" style={{ "minHeight": "50rem", "width":'30rem ! important', "borderRadius":"10px"}}>
|
||||||
|
<DialogContentText>
|
||||||
|
{Dialog_1_message}
|
||||||
|
</DialogContentText>
|
||||||
|
|
||||||
|
|
||||||
|
<Module_Email_Management />
|
||||||
|
|
||||||
|
</DialogContent>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<DialogActions>
|
||||||
|
<div className="div_row">
|
||||||
|
<div className="div_row_gauche">
|
||||||
|
<Button onClick={"Update_One_Agenda_Event"} className="bton_enreg_dialog">Mettre à jour</Button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
|
||||||
|
<Button onClick={Dialog_1_handleClose} className="bton_annule_dialog" >Fermer</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</DialogActions>
|
||||||
|
|
||||||
|
</Dialog>
|
||||||
|
{ /********* Dialog email */}
|
||||||
|
|
||||||
<div className="div_mobile">
|
<div className="div_mobile">
|
||||||
|
|
||||||
|
|
||||||
|
@ -648,7 +702,7 @@ const TestUrl_New = (props) => {
|
||||||
canvasProps={{
|
canvasProps={{
|
||||||
width: 315,
|
width: 315,
|
||||||
height: 200,
|
height: 200,
|
||||||
style: { border: "1px solid black", borderRadius:"10px" },
|
style: { border: "1px solid black", borderRadius: "10px" },
|
||||||
}} />
|
}} />
|
||||||
<button onClick={checkIfEmpty}>Check if Empty</button>
|
<button onClick={checkIfEmpty}>Check if Empty</button>
|
||||||
<button onClick={clearCanvas}>Clear Canvas</button>
|
<button onClick={clearCanvas}>Clear Canvas</button>
|
||||||
|
@ -663,6 +717,22 @@ const TestUrl_New = (props) => {
|
||||||
<div style={{ cursor: 'pointer', border: "1px solid" }}>I can now be moved around!</div>
|
<div style={{ cursor: 'pointer', border: "1px solid" }}>I can now be moved around!</div>
|
||||||
</Draggable>
|
</Draggable>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h3>
|
||||||
|
Gestion du module Module_Email_Management
|
||||||
|
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<button onClick={(e) => {
|
||||||
|
|
||||||
|
setDialog_1_open(true);
|
||||||
|
|
||||||
|
}}>Envoie email</button>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<Editor
|
<Editor
|
||||||
onInit={(evt, editor) => editorRef_description.current = editor}
|
onInit={(evt, editor) => editorRef_description.current = editor}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -118,3 +118,4 @@
|
||||||
@import "./components/moduleselectionapprenants";
|
@import "./components/moduleselectionapprenants";
|
||||||
@import "./components/emarge_qr_code";
|
@import "./components/emarge_qr_code";
|
||||||
@import "./components/partner_product_service";
|
@import "./components/partner_product_service";
|
||||||
|
@import "./components/module_email_management";
|
Loading…
Reference in New Issue