06/12/2023 - 17h
parent
fe07e8307c
commit
596185e0af
|
@ -6,7 +6,7 @@ import Button from '@mui/material/Button';
|
|||
import axios from "axios";
|
||||
import { getCookie, setCookie } from 'react-use-cookie';
|
||||
import { useHistory } from "react-router-dom";
|
||||
|
||||
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
|
||||
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
|
||||
import { Editor } from '@tinymce/tinymce-react';
|
||||
|
@ -27,6 +27,10 @@ import DialogContent from '@mui/material/DialogContent';
|
|||
import DialogContentText from '@mui/material/DialogContentText';
|
||||
import DialogTitle from '@mui/material/DialogTitle';
|
||||
import { HiOutlineDocumentDuplicate } from "react-icons/hi2";
|
||||
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
|
||||
import { Fab } from "@material-ui/core";
|
||||
import fileDownload from 'js-file-download'
|
||||
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
|
||||
|
||||
const Config_Documents = (props) => {
|
||||
const history = useHistory();
|
||||
|
@ -238,8 +242,9 @@ const Config_Documents = (props) => {
|
|||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Partner_Document/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
setLoading(false);
|
||||
//console.log(" In Delete_Partner_Document_Data res.data.status = " + res.data.status);
|
||||
//console.log(" In Delete_Partner_Document_Data res.data.message r_class = " + res.data.message);
|
||||
|
||||
|
@ -276,7 +281,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
|
||||
setLoading(false);
|
||||
console.warn('Delete_Partner_Document_Data : Not good man :( mysearchtext = ' + error);
|
||||
setDelete_Partner_Document_Data_api("false");
|
||||
alert(" Impossible de supprimer le document");
|
||||
|
@ -294,6 +299,11 @@ const Config_Documents = (props) => {
|
|||
setdisplay_detail_document("1");
|
||||
//submenu_detail_employe();
|
||||
|
||||
|
||||
// Nettoyages des eventuelles pièces jointes
|
||||
setGet_List_Of_All_PJ_result([]);
|
||||
|
||||
|
||||
var line = JSON.parse(rowss[selected_row_id]);
|
||||
|
||||
//console.log("### line = ", line);
|
||||
|
@ -305,6 +315,9 @@ const Config_Documents = (props) => {
|
|||
//console.log(" ### line.ref_interne = ", line.ref_interne);
|
||||
Get_Partner_Document_Data(document_id);
|
||||
|
||||
// Recuperation des éventuelles pièces jointes associées à ce document
|
||||
Get_List_Of_All_PJ(document_id);
|
||||
|
||||
if (document.getElementById('myRef')) {
|
||||
// myRef.current.scrollIntoView({ behavior: "smooth" });
|
||||
var divh = document.getElementById('myRef').offsetTop;
|
||||
|
@ -383,9 +396,9 @@ const Config_Documents = (props) => {
|
|||
//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 => {
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === "true") {
|
||||
//console.log(" In Get_Partner_Document_Data res.data.status = " + res.data.status);
|
||||
//console.log(" In Get_Partner_Document_Data res.data.message r_class = " + res.data.message);
|
||||
|
@ -449,6 +462,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Partner_Document_Data = ', error);
|
||||
setGet_Partner_Document_Data_api("false");
|
||||
alert(" Impossible de recuperer les données du document");
|
||||
|
@ -476,12 +490,13 @@ const Config_Documents = (props) => {
|
|||
//console.log(" ## form = ", form);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Default_Partner_Document_By_Internal_Ref/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === "true") {
|
||||
console.log(" In Get_Default_Original_Partner_Document_Data res.data.status = " + res.data.status);
|
||||
console.log(" In Get_Default_Original_Partner_Document_Data res.data.message r_class = " + res.data.message);
|
||||
//console.log(" In Get_Default_Original_Partner_Document_Data res.data.status = " + res.data.status);
|
||||
//console.log(" In Get_Default_Original_Partner_Document_Data res.data.message r_class = " + res.data.message);
|
||||
|
||||
setGet_Default_Original_Partner_Document_Data_api("true");
|
||||
setGet_Default_Original_Partner_Document_Data_result(res.data.message);
|
||||
|
||||
|
@ -549,6 +564,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Default_Original_Partner_Document_Data = ', error);
|
||||
setGet_Default_Original_Partner_Document_Data_api("false");
|
||||
alert(" Impossible de recuperer le modèle initial");
|
||||
|
@ -575,12 +591,13 @@ const Config_Documents = (props) => {
|
|||
//console.log(" ## form = ", form);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_DFAULT_Partner_Document/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (String(res.data.status) === "true") {
|
||||
console.log(" In Get_Default_Original_Partner_Document_Data_By_id res.data.status = " + res.data.status);
|
||||
console.log(" In Get_Default_Original_Partner_Document_Data_By_id res.data.message r_class = " + res.data.message);
|
||||
//console.log(" In Get_Default_Original_Partner_Document_Data_By_id res.data.status = " + res.data.status);
|
||||
//console.log(" In Get_Default_Original_Partner_Document_Data_By_id res.data.message r_class = " + res.data.message);
|
||||
setLoading(false);
|
||||
setGet_Default_Original_Partner_Document_Data_By_id_api("true");
|
||||
setGet_Default_Original_Partner_Document_Data_By_id_result(res.data.message);
|
||||
|
||||
|
@ -645,6 +662,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Default_Original_Partner_Document_Data_By_id = ', error);
|
||||
setGet_Default_Original_Partner_Document_Data_By_id_api("false");
|
||||
alert(" Impossible de recuperer le modèle initial");
|
||||
|
@ -772,13 +790,13 @@ const Config_Documents = (props) => {
|
|||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_All_Personnalisable_Collection_Fields/";
|
||||
|
||||
|
||||
setLoading(true);
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
console.log(" In Get_Personnalisable_Collection_and_Fields res.data.status = " + res.data.status);
|
||||
console.log(" In Get_Personnalisable_Collection_and_Fields res.data.message r_class = " + res.data.message);
|
||||
//console.log(" In Get_Personnalisable_Collection_and_Fields res.data.status = " + res.data.status);
|
||||
//console.log(" In Get_Personnalisable_Collection_and_Fields res.data.message r_class = " + res.data.message);
|
||||
|
||||
setGet_Personnalisable_Collection_and_Fields_api("true");
|
||||
setGet_Personnalisable_Collection_and_Fields_result(res.data.message);
|
||||
|
@ -791,6 +809,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Personnalisable_Collection_and_Fields = ', error);
|
||||
setGet_Personnalisable_Collection_and_Fields_api("false");
|
||||
alert(" Impossible de recuperer la liste des collection et champs personnalisables");
|
||||
|
@ -806,11 +825,12 @@ const Config_Documents = (props) => {
|
|||
var form = new FormData();
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
|
||||
setLoading(true);
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Personnalisable_Collection/";
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Get_Personnalisable_Collections res.data.status = " + res.data.status);
|
||||
//console.log(" In Get_Personnalisable_Collections res.data.message r_class = " + res.data.message);
|
||||
|
@ -826,6 +846,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Personnalisable_Collections = ', error);
|
||||
setGet_Personnalisable_Collections_api("false");
|
||||
alert(" Impossible de recuperer la liste des collection et champs personnalisables");
|
||||
|
@ -916,14 +937,15 @@ const Config_Documents = (props) => {
|
|||
form.append("contenu_doc", "");
|
||||
}
|
||||
|
||||
console.log(" Add_one_Partner_Document affectation form == ", form);
|
||||
//console.log(" Add_one_Partner_Document affectation form == ", form);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Partner_Document/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
console.log(" In Add_one_Partner_Document res.data.status = " + res.data.status);
|
||||
console.log(" In Add_one_Partner_Document res.data.message r_class = " + res.data.message);
|
||||
setLoading(false);
|
||||
//console.log(" In Add_one_Partner_Document res.data.status = " + res.data.status);
|
||||
//console.log(" In Add_one_Partner_Document res.data.message r_class = " + res.data.message);
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setAdd_one_Partner_Document_api("true");
|
||||
|
@ -943,7 +965,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
|
||||
setLoading(false);
|
||||
console.log('UpdateStagiaireData : Not good man :( Add_one_Partner_Document = ' + error);
|
||||
setAdd_one_Partner_Document_api("false");
|
||||
alert(" Impossible d'ajouter le nouveau document");
|
||||
|
@ -967,9 +989,10 @@ const Config_Documents = (props) => {
|
|||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Personnalisable_Fields_By_template_ref_interne/";
|
||||
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Get_Given_Personnalisable_Collection_and_Fields res.data.status = " + res.data.status);
|
||||
//console.log(" In Get_Given_Personnalisable_Collection_and_Fields res.data.message r_class = " + res.data.message);
|
||||
|
@ -985,6 +1008,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Given_Personnalisable_Collection_and_Fields = ', error);
|
||||
setGet_Given_Personnalisable_Collection_and_Fields_api("false");
|
||||
alert(" Impossible de recuperer la liste des collection et champs personnalisables de l'objet");
|
||||
|
@ -1034,11 +1058,12 @@ const Config_Documents = (props) => {
|
|||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Duplicate_Given_Partner_Document/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
console.log(" In Duplicate_Partner_Document res.data.status = " + res.data.status);
|
||||
console.log(" In Duplicate_Partner_Document res.data.message r_class = " + res.data.message);
|
||||
//console.log(" In Duplicate_Partner_Document res.data.status = " + res.data.status);
|
||||
//console.log(" In Duplicate_Partner_Document res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setDuplicate_Partner_Document_api("true");
|
||||
setDuplicate_Partner_Document_result(res.data.message);
|
||||
|
@ -1058,7 +1083,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
|
||||
setLoading(false);
|
||||
console.log('UpdateStagiaireData : Not good man :( Duplicate_Partner_Document = ' + error);
|
||||
setDuplicate_Partner_Document_api("false");
|
||||
alert(" Impossible de dupliquer le document");
|
||||
|
@ -1142,11 +1167,12 @@ const Config_Documents = (props) => {
|
|||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Partner_Document/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
//console.log(" In Update_one_Partner_Document res.data.status = " + res.data.status);
|
||||
//console.log(" In Update_one_Partner_Document res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setUpdate_one_Partner_Document_api("true");
|
||||
setUpdate_one_Partner_Document_result(res.data.message);
|
||||
|
@ -1168,7 +1194,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
|
||||
setLoading(false);
|
||||
console.log('UpdateStagiaireData : Not good man :( Update_one_Partner_Document = ' + error);
|
||||
setUpdate_one_Partner_Document_api("false");
|
||||
alert(" Impossible de mettre à jour le document");
|
||||
|
@ -1188,9 +1214,9 @@ const Config_Documents = (props) => {
|
|||
form.append("token", stored_cookie);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Partner_Document_no_filter/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Getall_Partner_Document_No_filter res.data.status = " + res.data.status);
|
||||
//console.log(" In Getall_Partner_Document_No_filter res.data.message r_class = " + res.data.message);
|
||||
|
@ -1205,6 +1231,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Getall_Partner_Document_No_filter = ', error);
|
||||
setGetall_Partner_Document_No_filter_api("false");
|
||||
alert(" Impossible de recuperer la liste des documents");
|
||||
|
@ -1228,10 +1255,11 @@ const Config_Documents = (props) => {
|
|||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Personnalisable_Fields_By_courrier_template_id/";
|
||||
|
||||
setLoading(true);
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
console.log(" In Get_Given_Personnalisable_Fields_From_template_ID res.data.status = " + res.data.status);
|
||||
console.log(" In Get_Given_Personnalisable_Fields_From_template_ID res.data.message r_class = " + res.data.message);
|
||||
|
@ -1247,6 +1275,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_Given_Personnalisable_Fields_From_template_ID = ', error);
|
||||
setGet_Given_Personnalisable_Fields_From_template_ID_api("false");
|
||||
alert(" Impossible de recuperer la liste des collection et champs personnalisables de l'objet");
|
||||
|
@ -1277,8 +1306,10 @@ const Config_Documents = (props) => {
|
|||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Default_Partner_Document/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Get_List_Personnalisable_Default_Document res.data.status = " + res.data.status);
|
||||
//console.log(" In Get_List_Personnalisable_Default_Document res.data.message r_class = " + res.data.message);
|
||||
|
@ -1294,6 +1325,7 @@ const Config_Documents = (props) => {
|
|||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Get_List_Personnalisable_Default_Document = ', error);
|
||||
setGet_List_Personnalisable_Default_Document_api("false");
|
||||
alert(" Impossible de recuperer la liste des documents par default");
|
||||
|
@ -1360,8 +1392,274 @@ const Config_Documents = (props) => {
|
|||
const [duplicate_doc_type, setduplicate_doc_type] = React.useState();
|
||||
|
||||
|
||||
// Gestion des pièces jointes
|
||||
|
||||
|
||||
const [Record_All_PJ_api, setRecord_All_PJ_api] = useState();
|
||||
const [Record_All_PJ_result, setRecord_All_PJ_result] = useState();
|
||||
const [Record_All_PJ_message, setRecord_All_PJ_message] = useState();
|
||||
|
||||
function Record_All_PJ() {
|
||||
|
||||
if (!p_detail_one_file_to_download_type_name) {
|
||||
alert(" Vous devez donner un nom à la pièce jointe");
|
||||
return;
|
||||
}
|
||||
|
||||
if (file_1_name && file_1_name.name) {
|
||||
//console.log(" ### Traitement de : ", file_1_name.name);
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('File', file_1_name);
|
||||
//formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA');
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
|
||||
formData.append("token", stored_cookie);
|
||||
formData.append("file_business_object", p_detail_one_file_to_download_type_name);
|
||||
formData.append("file_name", file_1_name.name);
|
||||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "courrier_template");
|
||||
formData.append("object_owner_id", selected_id);
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
||||
setLoading(true);
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/Store_User_Downloaded_File/",
|
||||
{
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
}
|
||||
)
|
||||
.then((response) => response.json())
|
||||
.then((result) => {
|
||||
|
||||
setLoading(false);
|
||||
//console.log(" ## result['status'] = ", result['status'])
|
||||
if (String(result['status']) === String("true")) {
|
||||
//console.log('Success:', result['message']);
|
||||
setRecord_All_PJ_result(result['message']);
|
||||
setRecord_All_PJ_api("true");
|
||||
|
||||
Get_List_Of_All_PJ(selected_id);
|
||||
setfile_1_name();
|
||||
setp_detail_one_file_to_download_type_name();
|
||||
//GetCurrentClass_trainingsession();
|
||||
alert(" La pièce jointe " + file_1_name.name + " a été bien enregistrée")
|
||||
|
||||
}
|
||||
else {
|
||||
setRecord_All_PJ_message(result['message']);
|
||||
setRecord_All_PJ_api("false");
|
||||
alert(result['message']);
|
||||
}
|
||||
|
||||
})
|
||||
.catch((error) => {
|
||||
setLoading(false);
|
||||
console.error(' Record_All_PJ Error:', error);
|
||||
setRecord_All_PJ_api("false");
|
||||
alert(" Impossible d'ajouter la pièce jointe")
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
const [Delete_one_attached_document_api, setDelete_one_attached_document_api] = useState();
|
||||
const [Delete_one_attached_document_result, setDelete_one_attached_document_result] = useState();
|
||||
const [Delete_one_attached_document_message, setDelete_one_attached_document_message] = useState();
|
||||
|
||||
const Delete_one_attached_document = (event) => {
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
|
||||
var formData = new FormData();
|
||||
var nom_fiche_detaillee = "Fiche_Detaillee.pdf";
|
||||
var file_name = event.target.id;
|
||||
|
||||
|
||||
formData.append("token", stored_cookie);
|
||||
formData.append("file_name", file_name);
|
||||
|
||||
var url = process.env.REACT_APP_API_URL + "myclass/api/Delete_Stored_Downloaded_File/";
|
||||
|
||||
setLoading(true);
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/Delete_Stored_Downloaded_File/",
|
||||
{
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
}
|
||||
)
|
||||
.then((response) => response.json())
|
||||
.then((result) => {
|
||||
setLoading(false);
|
||||
//console.log(" ## result['status'] = ", result['status'])
|
||||
if (String(result['status']) === String("true")) {
|
||||
//console.log('Success:', result['message']);
|
||||
setDelete_one_attached_document_result(result['message']);
|
||||
setDelete_one_attached_document_api("true");
|
||||
Get_List_Of_All_PJ(selected_id);
|
||||
alert(result['message'])
|
||||
|
||||
}
|
||||
else {
|
||||
setDelete_one_attached_document_message(result['message']);
|
||||
setDelete_one_attached_document_api("false");
|
||||
alert(result['message'])
|
||||
}
|
||||
|
||||
})
|
||||
.catch((error) => {
|
||||
setLoading(false);
|
||||
console.error(' Record_All_PJ Error:', error);
|
||||
setDelete_one_attached_document_api("false");
|
||||
alert(" Impossible de supprimer le document")
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState();
|
||||
const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState([]);
|
||||
const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState();
|
||||
|
||||
function Get_List_Of_All_PJ(local_employee_id) {
|
||||
|
||||
const formData = new FormData();
|
||||
|
||||
//formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA');
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
|
||||
formData.append("token", stored_cookie);
|
||||
formData.append("object_owner_collection", "courrier_template");
|
||||
formData.append("object_owner_id", local_employee_id);
|
||||
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
setLoading(true);
|
||||
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/Get_List_object_owner_collection_Stored_Files/",
|
||||
{
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
}
|
||||
)
|
||||
.then((response) => response.json())
|
||||
.then((result) => {
|
||||
setLoading(false);
|
||||
|
||||
//console.log(" ## result['status'] = ", result['status'])
|
||||
if (String(result['status']) === String("true")) {
|
||||
//console.log('Message :', result['message']);
|
||||
setGet_List_Of_All_PJ_result(result['message']);
|
||||
setGet_List_Of_All_PJ_api("true");
|
||||
|
||||
}
|
||||
else {
|
||||
setGet_List_Of_All_PJ_message(result['message']);
|
||||
setGet_List_Of_All_PJ_api("false");
|
||||
}
|
||||
|
||||
})
|
||||
.catch((error) => {
|
||||
setLoading(false);
|
||||
console.error(' Get_List_Of_All_PJ Error:', error);
|
||||
setGet_List_Of_All_PJ_api("false");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function Delete_file_1_name() {
|
||||
setfile_1_name();
|
||||
}
|
||||
|
||||
function Delete_file_2_name() {
|
||||
setfile_2_name();
|
||||
}
|
||||
|
||||
const [p_detail_one_file_to_download_type_name, setp_detail_one_file_to_download_type_name] = useState();
|
||||
const [isLoading, setLoading] = useState();
|
||||
const [file_1_name, setfile_1_name] = useState();
|
||||
const [file_2_name, setfile_2_name] = useState();
|
||||
|
||||
const [sessions_file_change_1_api, setsessions_file_change_1_api] = useState();
|
||||
const [sessions_file_change_1_result, setsessions_file_change_1_result] = useState();
|
||||
const [sessions_file_change_1_message, setsessions_file_change_1_message] = useState();
|
||||
const sessions_file_change_1 = event => {
|
||||
|
||||
const fileUploaded = event.target.files[0];
|
||||
let file_size = event.target.files[0].size;
|
||||
let file_type = event.target.files[0].type;
|
||||
|
||||
setfile_1_name(event.target.files[0]);
|
||||
|
||||
|
||||
console.log("file_size = ", file_size, " file_type = ", file_type);
|
||||
if (file_size > 10000000) {
|
||||
alert("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
console.log("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('File', fileUploaded);
|
||||
//formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA');
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
|
||||
|
||||
return;
|
||||
|
||||
};
|
||||
|
||||
const [Download_one_attached_document_api, setDownload_one_attached_document_api] = useState();
|
||||
const [Download_one_attached_document_result, setDownload_one_attached_document_result] = useState();
|
||||
const [Download_one_attached_document_message, setDownload_one_attached_document_message] = useState();
|
||||
|
||||
const Download_one_attached_document = (event) => {
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
|
||||
|
||||
var nom_fiche_detaillee = "Fiche_Detaillee.pdf";
|
||||
var token = stored_cookie;
|
||||
var file_name = event.target.id;
|
||||
|
||||
|
||||
var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Stored_Downloaded_File/" + token + "/" + file_name;
|
||||
|
||||
setLoading(true);
|
||||
axios.get(url, { responseType: 'blob', },)
|
||||
.then((res) => {
|
||||
setLoading(false);
|
||||
fileDownload(res.data, nom_fiche_detaillee);
|
||||
setDownload_one_attached_document_api("true");
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.error('Error:', error);
|
||||
setDownload_one_attached_document_api("false");
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// end gestion pièces jointes
|
||||
|
||||
|
||||
|
||||
return (
|
||||
<div className="config_document">
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
|
||||
<Dialog
|
||||
open={Dialog_1_open}
|
||||
onClose={Dialog_1_handleClose}
|
||||
|
@ -1888,10 +2186,10 @@ const Config_Documents = (props) => {
|
|||
</div>
|
||||
|
||||
</div>
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<div className="div_row_gauche" style={{ "border": "None" }}>
|
||||
<Button variant="outlined" onClick={submenu_add_one_model_document}
|
||||
className="detail_class_submenu bton_add_session"
|
||||
id='menu_import_participant' name='menu_import_participant'>Ajout 1 modèle de Document
|
||||
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Document
|
||||
<img src={add_plus} alt="ajout session" className="icon_plus" />
|
||||
</Button>
|
||||
</div>
|
||||
|
@ -1964,11 +2262,160 @@ const Config_Documents = (props) => {
|
|||
/>
|
||||
|
||||
</div>
|
||||
{p_detail_type_doc && String(p_detail_type_doc).toLocaleLowerCase() === "email" && <div className="div_row_gauche texte_area_filter" >
|
||||
Pièces Jointe <br />
|
||||
<div>
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<hr className="hr_break" />
|
||||
</div>
|
||||
|
||||
<div className="div_row" style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "padding": "5px" }}>
|
||||
Pièces jointes
|
||||
|
||||
</div>
|
||||
|
||||
<div className="div_row" style={{ "padding": "5px" }}>
|
||||
|
||||
<div style={{ "fontSize": "12px" }}>
|
||||
<label htmlFor="upload-photo">
|
||||
<input
|
||||
style={{ display: "none" }}
|
||||
id="upload-photo"
|
||||
name="upload-photo"
|
||||
type="file"
|
||||
onChange={sessions_file_change_1}
|
||||
/>
|
||||
|
||||
<Fab
|
||||
color="secondary"
|
||||
size="small"
|
||||
component="span"
|
||||
aria-label="add"
|
||||
variant="extended"
|
||||
>
|
||||
<IoMdAddCircle /> <nav style={{ "fontSize": "12px" }}> Ajouter un fichier </nav>
|
||||
</Fab>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
{file_1_name && file_1_name.name &&
|
||||
<nav style={{ "fontSize": "12px" }}>
|
||||
<div className="session_caract">Nom du fichier <br />
|
||||
<TextField
|
||||
name="file_to_download_type_name"
|
||||
id="file_to_download_type_name"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
|
||||
disabled={false}
|
||||
className="disabled_style enable_style"
|
||||
value={p_detail_one_file_to_download_type_name}
|
||||
onChange={(e) => {
|
||||
setp_detail_one_file_to_download_type_name(e.target.value);
|
||||
|
||||
}}
|
||||
/>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
Fichier : {file_1_name.name} <br /> <font style={{ "cursor": "pointer" }}
|
||||
onClick={Delete_file_1_name}> Supprimer <IoIosRemoveCircleOutline /> </font>
|
||||
</nav>}
|
||||
|
||||
{Record_All_PJ_api && String(Record_All_PJ_api) === "true" && <div className="okUpdateData"> Pièce jointe enregistrée </div>}
|
||||
|
||||
{Record_All_PJ_api && String(Record_All_PJ_api) === "false" && <div className="koUpdateData"> {Record_All_PJ_message} </div>}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{file_1_name && file_1_name.name && <div className="div_row">
|
||||
|
||||
<div className="div_row_gauche">
|
||||
<Button variant="contained" onClick={Record_All_PJ}
|
||||
startIcon={<AiTwotoneSave />} className="bton_enreg">ENREGISTRER LA PIECE</Button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
{Get_List_Of_All_PJ_result && <div className="div_row" style={{ "padding": "5px" }}>
|
||||
<div className="div_row">
|
||||
Liste des pièces jointes <br />
|
||||
<div className="div_row">
|
||||
{Get_List_Of_All_PJ_result && Get_List_Of_All_PJ_result.map((val) => (
|
||||
<div className="div_row_list_pj" >
|
||||
<nav style={{ "color": "green", "cursor": "pointer" }} onClick={Download_one_attached_document} name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}> Télécharger <i> {(JSON.parse(val).file_business_object)}</i> </nav> <br />
|
||||
<Popup
|
||||
trigger={
|
||||
<nav style={{ "color": "red", "cursor": "pointer" }} > Supprimer</nav>
|
||||
|
||||
|
||||
}
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, la pièce jointe sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
|
||||
Delete_one_attached_document(event);
|
||||
close();
|
||||
}}
|
||||
name={(JSON.parse(val).file_name)} id={(JSON.parse(val).file_name)}
|
||||
> 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>
|
||||
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
<div className="div_row_droite_1_tier" style={{ "textAlign": "left" }}>
|
||||
{String(partner_document_data_edit_mode) === "1" &&
|
||||
<div className="div_row" style={{ "fontSize": "12px" }}> Choisir un champ <br />
|
||||
<div className="div_row" > Choisir un champ <br />
|
||||
<TextField
|
||||
name="champ_table"
|
||||
id="champ_table"
|
||||
|
@ -2124,7 +2571,7 @@ const Config_Documents = (props) => {
|
|||
{String(display_detail_document) !== "1" && String(add_one_document) === "1" && <div className="div_row">
|
||||
<h3> Personnaliser un nouveau document </h3>
|
||||
<div className="div_row" style={{ "textAlign": "left" }}>
|
||||
<div className="div_row"> Choisir le document à ajouter <br />
|
||||
<div className="div_row_gauche"> Choisir le document à ajouter <br />
|
||||
<TextField
|
||||
name="champ_table"
|
||||
id="champ_table"
|
||||
|
@ -2223,7 +2670,7 @@ const Config_Documents = (props) => {
|
|||
</div>
|
||||
|
||||
</div>
|
||||
<div className="div_row_droite" style={{ "textAlign": "left" }}>
|
||||
<div className="div_row_droite texte_area_filter" style={{ "textAlign": "left" }}>
|
||||
<div className="div_row"> Choisir un champ <br />
|
||||
<TextField
|
||||
name="one_champ_table"
|
||||
|
|
|
@ -5,18 +5,17 @@ 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 { FcViewDetails, FcDisapprove } from "react-icons/fc";
|
||||
import 'react-tooltip/dist/react-tooltip.css'
|
||||
import { Tooltip } from 'react-tooltip'
|
||||
import add_plus from "../mysy_img/plus.png";
|
||||
import excel_icone from "../mysy_img/excel_icone.png";
|
||||
import participants from "../mysy_img/participants.png";
|
||||
|
||||
import fileDownload from 'js-file-download'
|
||||
import Popup from 'reactjs-popup';
|
||||
import 'reactjs-popup/dist/index.css';
|
||||
|
@ -26,7 +25,6 @@ import {
|
|||
} 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";
|
||||
|
@ -40,15 +38,15 @@ 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 { Fab } from "@material-ui/core";
|
||||
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
|
||||
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
|
||||
import { AiTwotoneSave } from "react-icons/ai";
|
||||
import Module_Absence from "./Module_Absence";
|
||||
import { RiMoreFill } from "react-icons/ri";
|
||||
import Switch from '@mui/material/Switch';
|
||||
import { FcSearch } from "react-icons/fc";
|
||||
import { useHistory } from "react-router-dom";
|
||||
|
||||
const DisplayPartnerStagiaires = (props) => {
|
||||
const history = useHistory();
|
||||
|
@ -3420,6 +3418,8 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
}
|
||||
|
||||
|
||||
const [tab_convention_pieces_jointes_result, settab_convention_pieces_jointes_result] = useState([]);
|
||||
|
||||
const [file_1_name, setfile_1_name] = useState();
|
||||
|
||||
const [sessions_file_change_1_api, setsessions_file_change_1_api] = useState();
|
||||
|
@ -3434,7 +3434,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
setfile_1_name(event.target.files[0]);
|
||||
|
||||
|
||||
console.log("file_size = ", file_size, " file_type = ", file_type);
|
||||
console.log("file_size 2 = ", file_size, " file_type = ", file_type);
|
||||
if (file_size > 10000000) {
|
||||
alert("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
console.log("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
|
@ -3453,37 +3453,61 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
return;
|
||||
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation_mass/",
|
||||
{
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
}
|
||||
)
|
||||
.then((response) => response.json())
|
||||
.then((result) => {
|
||||
|
||||
//console.log(" ## result['status'] = ", result['status'])
|
||||
if (String(result['status']) === String("true")) {
|
||||
//console.log('Success:', result['message']);
|
||||
setsessions_file_change_1_result(result['message']);
|
||||
setsessions_file_change_1_api("true");
|
||||
//GetCurrentClass_trainingsession();
|
||||
|
||||
}
|
||||
else {
|
||||
setsessions_file_change_1_message(result['message']);
|
||||
setsessions_file_change_1_api("false");
|
||||
}
|
||||
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Error:', error);
|
||||
setsessions_file_change_1_api("false");
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
const [sessions_file_change_1_convention_api, setsessions_file_change_1_convention_api] = useState();
|
||||
const [sessions_file_change_1_convention_result, setsessions_file_change_1_convention_result] = useState();
|
||||
const [sessions_file_change_1_convention_message, setsessions_file_change_1_convention_message] = useState();
|
||||
const sessions_file_change_1_convention = event => {
|
||||
|
||||
|
||||
const fileUploaded = event.target.files[0];
|
||||
let file_size = event.target.files[0].size;
|
||||
let file_type = event.target.files[0].type;
|
||||
|
||||
|
||||
if (file_type !== "application/pdf") {
|
||||
alert("Le fichier n'est pas de type PDF");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (file_size > 10000000) {
|
||||
alert("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
console.log("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
return;
|
||||
}
|
||||
|
||||
//var new_node = {'name':event.target.files[0].name, 'type':event.target.files[0].type}
|
||||
|
||||
|
||||
var new_tmp = [];
|
||||
|
||||
if (tab_convention_pieces_jointes_result && tab_convention_pieces_jointes_result.length > 0) {
|
||||
|
||||
tab_convention_pieces_jointes_result.map((x) => {
|
||||
new_tmp.push(x);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
new_tmp.push(event.target.files[0])
|
||||
|
||||
settab_convention_pieces_jointes_result(new_tmp);
|
||||
|
||||
console.log( " tab_convention_pieces_jointes_result = ", tab_convention_pieces_jointes_result)
|
||||
|
||||
|
||||
return;
|
||||
|
||||
|
||||
};
|
||||
|
||||
const [file_2_name, setfile_2_name] = useState();
|
||||
|
||||
const [sessions_file_change_2_api, setsessions_file_change_2_api] = useState();
|
||||
|
@ -3498,7 +3522,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
setfile_2_name(event.target.files[0]);
|
||||
|
||||
|
||||
console.log("file_size = ", file_size, " file_type = ", file_type);
|
||||
console.log("file_size 1 = ", file_size, " file_type = ", file_type);
|
||||
if (file_size > 10000000) {
|
||||
alert("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
console.log("Le fichier ne doit pas depasser un 1 Méga octets");
|
||||
|
@ -3517,34 +3541,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
return;
|
||||
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation_mass/",
|
||||
{
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
}
|
||||
)
|
||||
.then((response) => response.json())
|
||||
.then((result) => {
|
||||
|
||||
//console.log(" ## result['status'] = ", result['status'])
|
||||
if (String(result['status']) === String("true")) {
|
||||
//console.log('Success:', result['message']);
|
||||
setsessions_file_change_2_result(result['message']);
|
||||
setsessions_file_change_2_api("true");
|
||||
//GetCurrentClass_trainingsession();
|
||||
|
||||
}
|
||||
else {
|
||||
setsessions_file_change_2_message(result['message']);
|
||||
setsessions_file_change_2_api("false");
|
||||
}
|
||||
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Error:', error);
|
||||
setsessions_file_change_2_api("false");
|
||||
});
|
||||
};
|
||||
|
||||
const [Record_All_PJ_api, setRecord_All_PJ_api] = useState();
|
||||
|
@ -3559,7 +3556,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
}
|
||||
|
||||
if (file_1_name && file_1_name.name) {
|
||||
console.log(" ### Traitement de : ", file_1_name.name);
|
||||
//console.log(" ### Traitement de : ", file_1_name.name);
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('File', file_1_name);
|
||||
|
@ -3604,6 +3601,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
else {
|
||||
setRecord_All_PJ_message(result['message']);
|
||||
setRecord_All_PJ_api("false");
|
||||
alert(result['message']);
|
||||
}
|
||||
|
||||
})
|
||||
|
@ -3611,13 +3609,11 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
setLoading(false);
|
||||
console.error(' Record_All_PJ Error:', error);
|
||||
setRecord_All_PJ_api("false");
|
||||
alert(" Impossible d'ajouter la pièce jointe")
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
if (file_2_name && file_2_name.name) {
|
||||
console.log(" ### Traitement de : ", file_2_name.name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -3662,6 +3658,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
else {
|
||||
setDelete_one_attached_document_message(result['message']);
|
||||
setDelete_one_attached_document_api("false");
|
||||
alert(result['message'])
|
||||
}
|
||||
|
||||
})
|
||||
|
@ -3676,6 +3673,12 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
}
|
||||
|
||||
|
||||
const Delete_one_attached_document_convention = (event) => {
|
||||
var file_name = event.target.id;
|
||||
|
||||
}
|
||||
|
||||
const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState();
|
||||
const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState();
|
||||
const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState();
|
||||
|
@ -4200,6 +4203,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
setactionmass_ftion_val();
|
||||
setSelectionModel([]);
|
||||
settab_convention_pieces_jointes_result([])
|
||||
};
|
||||
|
||||
|
||||
|
@ -4261,6 +4265,15 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
form.append("email_test", selected_convention_email_test);
|
||||
form.append("email_production", selected_convention_email_destinataire_prod);
|
||||
|
||||
// pièce jointe
|
||||
form.append("file_business_object", "");
|
||||
var list_files = new FormData();
|
||||
|
||||
for (let i=0; i< tab_convention_pieces_jointes_result.length; i++){
|
||||
form.append('File', tab_convention_pieces_jointes_result[i]);
|
||||
|
||||
}
|
||||
//form.append("File", list_files);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Sent_Convention_Stagiaire_By_Email/";
|
||||
|
||||
|
@ -4368,32 +4381,53 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
form.append("email_test", selected_convention_email_test);
|
||||
form.append("email_production", "");
|
||||
|
||||
// pièce jointe
|
||||
form.append("file_business_object", "");
|
||||
var list_files = new FormData();
|
||||
|
||||
for (let i=0; i< tab_convention_pieces_jointes_result.length; i++){
|
||||
form.append('File', tab_convention_pieces_jointes_result[i]);
|
||||
|
||||
}
|
||||
//form.append("File", list_files);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Sent_Convention_Stagiaire_By_Email/";
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Send_Stagiaire_Conventions_By_Email_Test res.data.status = " + res.data.status);
|
||||
//console.log(" In Send_Stagiaire_Conventions_By_Email_Test res.data.message r_class = " + res.data.message);
|
||||
setSend_Stagiaire_Conventions_By_Email_Test_api("true");
|
||||
setSend_Stagiaire_Conventions_By_Email_Test_result(res.data.message);
|
||||
|
||||
alert(res.data.message);
|
||||
Dialog_convention_handleClose_buton()
|
||||
setLoading(true);
|
||||
fetch(
|
||||
process.env.REACT_APP_API_URL + "myclass/api/Sent_Convention_Stagiaire_By_Email/",
|
||||
{
|
||||
method: 'POST',
|
||||
body: form,
|
||||
}
|
||||
else {
|
||||
)
|
||||
.then((response) => response.json())
|
||||
.then((result) => {
|
||||
|
||||
setLoading(false);
|
||||
console.log(" In Send_Stagiaire_Conventions_By_Email_Test res.data.status = " + result['status']);
|
||||
console.log(" In Send_Stagiaire_Conventions_By_Email_Test res.data.message r_class = " + result['message']);
|
||||
if (String(result['status']) === String("true")) {
|
||||
|
||||
setSend_Stagiaire_Conventions_By_Email_Test_api("true");
|
||||
setSend_Stagiaire_Conventions_By_Email_Test_result(result['message']);
|
||||
|
||||
alert(result['message']);
|
||||
Dialog_convention_handleClose_buton()
|
||||
}
|
||||
else {
|
||||
setSend_Stagiaire_Conventions_By_Email_Test_api("false");
|
||||
setSend_Stagiaire_Conventions_By_Email_Test_message(result['message']);
|
||||
alert(result['message']);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('Not good man :( Send_Stagiaire_Conventions_By_Email_Test = ', error);
|
||||
setSend_Stagiaire_Conventions_By_Email_Test_api("false");
|
||||
setSend_Stagiaire_Conventions_By_Email_Test_message(res.data.message);
|
||||
alert(res.data.message);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
console.warn('Not good man :( Send_Stagiaire_Conventions_By_Email_Test = ', error);
|
||||
setSend_Stagiaire_Conventions_By_Email_Test_api("false");
|
||||
alert("Impossible d'envoyer la convention par email");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
alert("Impossible d'envoyer l'email de test ");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
@ -4488,6 +4522,31 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
const [Get_Convention_List_Of_All_PJ_result, setGet_Convention_List_Of_All_PJ_result] = useState([]);
|
||||
|
||||
function Delete_Convention_Attached_Doc(event) {
|
||||
|
||||
var doc_to_del_name = event.target.id;
|
||||
const myArray = tab_convention_pieces_jointes_result;
|
||||
|
||||
|
||||
|
||||
let new_myArray = myArray.filter(file => file.name !== String(doc_to_del_name) );
|
||||
|
||||
console.log( " new_myArray = ", new_myArray);
|
||||
|
||||
|
||||
var new_tab = []
|
||||
for (let i = 0; i < new_myArray.length; i++){
|
||||
new_tab.push(new_myArray[i]);
|
||||
}
|
||||
|
||||
settab_convention_pieces_jointes_result(new_tab);
|
||||
|
||||
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="displaypartnerstagiaire">
|
||||
{isLoading && <div className="loader-container">
|
||||
|
@ -4827,6 +4886,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
setselected_convention_id(e.target.value);
|
||||
var result2 = Get_List_Stagiaire_Conventions_result.filter((local_mymanager) => JSON.parse(local_mymanager)._id === String(e.target.value))
|
||||
setselected_convention_type(JSON.parse(result2).type_doc);
|
||||
settab_convention_pieces_jointes_result([]);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -4979,9 +5039,71 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</div>
|
||||
}
|
||||
|
||||
<div>
|
||||
PIECES JOINTES EEEEE xxxx
|
||||
</div>
|
||||
{String(selected_convention_type) === "email" && <div>
|
||||
|
||||
<div>
|
||||
<div className="div_row" style={{ "border": "None" }}>
|
||||
<hr className="hr_break" />
|
||||
</div>
|
||||
|
||||
<div className="div_row" style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "padding": "5px" }}>
|
||||
Pièces jointes Convention a
|
||||
|
||||
</div>
|
||||
|
||||
<div className="div_row" style={{ "padding": "5px" }}>
|
||||
|
||||
<div style={{ "fontSize": "12px" }}>
|
||||
<label htmlFor="upload_convention_file">
|
||||
<input
|
||||
style={{ display: "none" }}
|
||||
id="upload_convention_file"
|
||||
name="upload_convention_file"
|
||||
type="file"
|
||||
onChange={sessions_file_change_1_convention}
|
||||
/>
|
||||
|
||||
<Fab
|
||||
color="secondary"
|
||||
size="small"
|
||||
component="span"
|
||||
aria-label="add"
|
||||
variant="extended"
|
||||
>
|
||||
<IoMdAddCircle /> <nav style={{ "fontSize": "12px" }}> Ajouter un fichier </nav>
|
||||
</Fab>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{tab_convention_pieces_jointes_result && <div className="div_row" style={{ "padding": "5px" }}>
|
||||
|
||||
<div className="div_row">
|
||||
Liste des pièces jointes <br />
|
||||
{<div className="div_row">
|
||||
{tab_convention_pieces_jointes_result && tab_convention_pieces_jointes_result.map((val) => (
|
||||
<div className="div_row_list_pj_convention" >
|
||||
<nav style={{ "color": "green", "cursor": "pointer" }}
|
||||
onClick={(e) => {
|
||||
Delete_Convention_Attached_Doc(e);
|
||||
}}
|
||||
name={val.name} id={val.name}> Supprimer {val.name} </nav> <br />
|
||||
|
||||
|
||||
</div>
|
||||
))}
|
||||
</div>}
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
</DialogContent>
|
||||
|
||||
|
@ -5000,7 +5122,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
Dialog_convention_handleClose_buton();
|
||||
}
|
||||
}}
|
||||
className="bton_enreg_dialog">Envoyer</Button>}
|
||||
className="bton_enreg_dialog">Envoyer mail</Button>}
|
||||
{String(selected_convention_type) === "pdf" &&
|
||||
<Button className="bton_enreg_dialog" onClick={(e) => {
|
||||
Download_Stagiaire_Conventions_PDF();
|
||||
|
|
|
@ -1905,6 +1905,7 @@
|
|||
background: #c8cfd5;
|
||||
color: black;
|
||||
width: 30% !important;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.bton_import_excel {
|
||||
|
@ -2189,10 +2190,13 @@
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.css-l4u8b9-MuiInputBase-root-MuiInput-root{
|
||||
.css-l4u8b9-MuiInputBase-root-MuiInput-root {
|
||||
text-align: left !important;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// end media
|
||||
|
|
|
@ -612,6 +612,12 @@
|
|||
float: left;
|
||||
}
|
||||
|
||||
.div_row_list_pj_convention {
|
||||
width: 100%;
|
||||
border-left: 3mm ridge rgba(211, 220, 50, .6);
|
||||
float: left;
|
||||
}
|
||||
|
||||
.block_en_mass {
|
||||
width: 100%;
|
||||
float: left;
|
||||
|
@ -1229,6 +1235,12 @@
|
|||
float: left;
|
||||
}
|
||||
|
||||
.div_row_list_pj_convention {
|
||||
width: 100%;
|
||||
border-left: 3mm ridge rgba(211, 220, 50, .6);
|
||||
float: left;
|
||||
}
|
||||
|
||||
.block_en_mass {
|
||||
width: 50%;
|
||||
float: left;
|
||||
|
@ -1769,6 +1781,12 @@
|
|||
float: left;
|
||||
}
|
||||
|
||||
.div_row_list_pj_convention {
|
||||
width: 100%;
|
||||
border-left: 3mm ridge rgba(211, 220, 50, .6);
|
||||
float: left;
|
||||
}
|
||||
|
||||
.block_en_mass {
|
||||
width: 50%;
|
||||
float: left;
|
||||
|
@ -2396,6 +2414,13 @@
|
|||
float: left;
|
||||
}
|
||||
|
||||
|
||||
.div_row_list_pj_convention {
|
||||
width: 100%;
|
||||
border-left: 3mm ridge rgba(211, 220, 50, .6);
|
||||
float: left;
|
||||
}
|
||||
|
||||
.block_en_mass {
|
||||
width: 50%;
|
||||
float: left;
|
||||
|
|
|
@ -2282,6 +2282,7 @@
|
|||
float: left;
|
||||
}
|
||||
|
||||
|
||||
.block_en_mass {
|
||||
width: 50%;
|
||||
float: left;
|
||||
|
|
Loading…
Reference in New Issue