29/01/24 - 21h30

recette2
cherif 2024-01-29 21:35:17 +01:00
parent 3b6d732df3
commit 146bbf80d9
8 changed files with 755 additions and 77 deletions

View File

@ -860,7 +860,7 @@ const Config_Documents = (props) => {
const [p_collection, setp_collection] = useState();
function add_selected_fields() {
if(!p_champ_table || String(p_champ_table) === "undefined"){
if (!p_champ_table || String(p_champ_table) === "undefined") {
alert(" vous devez choisir un champ ");
return;
}
@ -1554,6 +1554,7 @@ const Config_Documents = (props) => {
}
const [New_Get_List_Personnalisable_Default_Document_result, setNew_Get_List_Personnalisable_Default_Document_result] = useState();
const [Get_List_Personnalisable_Default_Document_api, setGet_List_Personnalisable_Default_Document_api] = useState();
const [Get_List_Personnalisable_Default_Document_message, setGet_List_Personnalisable_Default_Document_message] = useState();
@ -1577,6 +1578,32 @@ const Config_Documents = (props) => {
setGet_List_Personnalisable_Default_Document_api("true");
setGet_List_Personnalisable_Default_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_nom = JSON.parse(x).nom;
var local_type_doc = JSON.parse(x).type_doc;
//---
var node = {
"_id": local_id,
"id": localid,
"label": local_nom+" - "+local_type_doc+"",
"nom": local_nom,
"type_doc": local_type_doc,
};
new_data2.push(node);
});
if (new_data2.length > 0)
setNew_Get_List_Personnalisable_Default_Document_result(new_data2);
}
else {
setGet_List_Personnalisable_Default_Document_api("false");
@ -3036,8 +3063,10 @@ 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_gauche"> Choisir le document à ajouter <br />
<TextField
{/* <TextField
name="champ_table"
id="champ_table"
select
@ -3061,7 +3090,25 @@ const Config_Documents = (props) => {
</MenuItem>
))}
</TextField>
</TextField>*/}
<Autocomplete
disablePortal
name="champ_table"
id="champ_table"
options={New_Get_List_Personnalisable_Default_Document_result}
onChange={(event, value) => {
if (value && value._id) {
setselecte_defaul_doc_to_add(value._id);
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
</div>

View File

@ -52,7 +52,7 @@ import { FcOpenedFolder } from "react-icons/fc";
import { gridClasses } from '@mui/x-data-grid';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import Module_Editique from "./Module_Editique";
const DisplayPartnerSession = (props) => {
@ -14361,6 +14361,8 @@ const DisplayPartnerSession = (props) => {
{String(submenu) === String("editique") && <div style={{ "border": "None" }}>
<Module_Editique conntected_employee_id={props.conntected_employee_id} related_collection={"session_formation"}
related_collection_recid={selected_session_id}/>
</div>}

View File

@ -108,9 +108,13 @@ const Module_Editique = (props) => {
setSelected(nodeIds);
};
const [tab_handleExpandClick_id, settab_handleExpandClick_id] = React.useState([]);
//settab_handleExpandClick_id(['0', '1', '2', '3', '4', '20'])
const handleExpandClick = () => {
setExpanded((oldExpanded) =>
oldExpanded.length === 0 ? ['1', '5', '6', '7'] : [],
oldExpanded.length === 0 ? ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] : [],
);
};
@ -207,10 +211,7 @@ const Module_Editique = (props) => {
setselected_session_id(props.related_collection_recid);
Getall_Editable_Document_By_Partner_By_Collection();
Get_related_collection_Data();
window.scrollTo({
top: 0,
behavior: "smooth",
});
}, [])
@ -274,6 +275,11 @@ const Module_Editique = (props) => {
var nom_fichier_cmd = "Convention.zip";
if( String(selected_convention_id).trim() === ""){
alert(" Vous devez choisir un modèle de document ");
return;
}
var url = process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Convention_From_Session_By_PDF/" + stored_cookie + "/" + selected_session_id + "/" + selected_convention_id;
@ -307,6 +313,50 @@ const Module_Editique = (props) => {
}
function Download_Session_Convocation_PDF() {
const stored_cookie = getCookie('tokenmysypart');
var nom_fichier_cmd = "Convocation.zip";
if( String(selected_convention_id).trim() === ""){
alert(" Vous devez choisir un modèle de document ");
return;
}
var url = process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Convocation_From_Session_By_PDF/" + stored_cookie + "/" + selected_session_id + "/" + selected_convention_id;
if (String(selected_convention_id) === "default_pdf") {
// Il s'agit d'envoyer les convention par defaut de type mail
url = process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Default_Convocation_From_Session_By_PDF/" + stored_cookie + "/" + selected_session_id + "/" + selected_convention_id;
}
console.log(" ### url = ", url);
//console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- selected_session_id = ", selected_session_id, " --- selected_convention_id =", selected_convention_id);
setLoading(true);
axios.get(url, { responseType: 'blob', },)
.then((res) => {
setLoading(false);
//console.log(" In Download_Stagiaire_Conventions_PDF res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible de télécharger la convocation (2) ");
} else {
fileDownload(res.data, nom_fichier_cmd);
Getall_Editable_Document_By_Partner_By_Collection();
}
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible de télécharger la convocation ")
});
}
const [New_Get_List_Stagiaire_Conventions_result, setNew_Get_List_Stagiaire_Conventions_result] = useState([]);
const [Get_List_Stagiaire_Conventions_api, setGet_List_Stagiaire_Conventions_api] = useState();
@ -388,6 +438,90 @@ const Module_Editique = (props) => {
})
}
const [New_Get_List_Stagiaire_Convocations_result, setNew_Get_List_Stagiaire_Convocations_result] = useState([]);
const [Get_List_Stagiaire_Convocations_api, setGet_List_Stagiaire_Convocations_api] = useState();
const [Get_List_Stagiaire_Convocations_message, setGet_List_Stagiaire_Convocations_message] = useState();
const [Get_List_Stagiaire_Convocations_result, setGet_List_Stagiaire_Convocations_result] = useState();
function Get_List_Stagiaire_Convocations(ref_interne, nom, type_doc, courrier_template_type_document_ref_interne) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("type_doc", type_doc);
form.append("courrier_template_type_document_ref_interne", courrier_template_type_document_ref_interne);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Convocations_Stagiaire_With_Filter/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Get_List_Stagiaire_Convocations res.data.status = " + res.data.status);
//console.log(" In Get_List_Stagiaire_Convocations res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setGet_List_Stagiaire_Convocations_api("true");
setGet_List_Stagiaire_Convocations_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);
});
if (new_data2.length > 0)
setNew_Get_List_Stagiaire_Convocations_result(new_data2);
}
else {
setGet_List_Stagiaire_Convocations_api("false");
setGet_List_Stagiaire_Convocations_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Get_List_Stagiaire_Convocations = ', error);
setGet_List_Stagiaire_Convocations_api("false");
alert("Impossible de récupérer les modèles de convocations");
//setmyApimyApiMessage("")
})
}
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();
@ -676,6 +810,77 @@ const Module_Editique = (props) => {
})
}
const [Send_Stagiaire_Convocations_By_Email_api, setSend_Stagiaire_Convocations_By_Email_api] = useState();
const [Send_Stagiaire_Convocations_By_Email_message, setSend_Stagiaire_Convocations_By_Email_message] = useState();
const [Send_Stagiaire_Convocations_By_Email_result, setSend_Stagiaire_Convocations_By_Email_result] = useState();
function Send_Stagiaire_Convocations_By_Email(event) {
var form = new FormData();
if (String(selected_convention_id).trim() === "") {
alert(" Vous devez choisir un document");
return;
}
form.append("class_internal_url", selected_internal_url);
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("session_id", selected_session_id);
form.append("courrier_template_id", selected_convention_id);
form.append("email_test", selected_convention_email_test);
form.append("email_production", selected_convention_email_destinataire_prod);
console.log("form === ", form);
// 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/Prepare_and_Send_Convocation_From_Session_By_Email/";
if (String(selected_convention_id) === "default_mail") {
// Il s'agit d'envoyer les convention par defaut de type mail
myurl = process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Default_Convocation_From_Session_By_Email/";
}
//console.log(" ### myurl = ", myurl);
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
//console.log(" In Send_Stagiaire_Convocations_By_Email res.data.status = " + res.data.status);
//console.log(" In Send_Stagiaire_Convocations_By_Email res.data.message r_class = " + res.data.message);
if (String(res.data.status) === String("true")) {
setSend_Stagiaire_Convocations_By_Email_api("true");
setSend_Stagiaire_Convocations_By_Email_result(res.data.message);
Getall_Editable_Document_By_Partner_By_Collection();
alert(res.data.message);
Dialog_convention_handleClose_buton()
}
else {
setSend_Stagiaire_Convocations_By_Email_api("false");
setSend_Stagiaire_Convocations_By_Email_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Send_Stagiaire_Convocations_By_Email = ', error);
setSend_Stagiaire_Convocations_By_Email_api("false");
alert("Impossible d'envoyer la convocation par email");
//setmyApimyApiMessage("")
})
}
const [action_server_to_run, setaction_server_to_run] = useState("");
const [action_server_type_doc, setaction_server_type_doc] = useState("");
const [action_server_nom_doc, setaction_server_nom_doc] = useState("");
@ -703,6 +908,17 @@ const Module_Editique = (props) => {
setDialog_CONF_INSCRIPTION_open(false);
};
const [Dialog_CONVOCATION_STAGIAIRE_open, setDialog_CONVOCATION_STAGIAIRE_open] = React.useState(false);
const Dialog_CONVOCATION_STAGIAIRE_handleClose = () => {
//alert(" Utiliser le bouton 'fermer' ");
//setOpen(false);
};
const Dialog_CONVOCATION_STAGIAIRE_handleClose_buton = () => {
setDialog_CONVOCATION_STAGIAIRE_open(false);
};
return (
<div className="module_editique">
@ -839,6 +1055,314 @@ const Module_Editique = (props) => {
{/* FIN Dialog pour gerer les EMARGEMENT_FORMATION */}
{/* Dialog pour gerer les CONVOCATION_STAGIAIRE */}
<Dialog
open={Dialog_CONVOCATION_STAGIAIRE_open}
onClose={Dialog_CONVOCATION_STAGIAIRE_handleClose}
className="displaypartnersession"
>
<DialogTitle>MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
<DialogContentText>
{Dialog_1_message} - {action_server_type_doc}
</DialogContentText>
<div className="session_caract_Dialog" > Type Document<br />
<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 &nbsp;</MenuItem>
<MenuItem value="pdf" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >PDF &nbsp;</MenuItem>
</TextField>
</div>
{(String(selected_convention_type) === "email" || String(selected_convention_type) === "pdf") && <div className="session_caract_Dialog" > Choisir une convention
<Autocomplete
disablePortal
name="event_dialog_version_convention"
id="event_dialog_version_convention"
fullWidth
//className="disabled_style enable_style"
options={New_Get_List_Stagiaire_Convocations_result}
onChange={(event, value) => {
if (value && value._id) {
setselected_convention_id(value._id);
if (String(value._id) === "default_mail") {
setselected_convention_type("email");
}
else if (String(value._id) === "default_pdf") {
setselected_convention_type("pdf");
} else {
var result2 = Get_List_Stagiaire_Convocations_result.filter((local_mymanager) => JSON.parse(local_mymanager)._id === String(value._id))
setselected_convention_type(JSON.parse(result2).type_doc);
}
settab_convention_pieces_jointes_result([]);
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
</div>}
{String(selected_convention_type) === "email" && <div className="session_caract_Dialog" > Type Document<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: '75%' }}
name="event_dialog_type_convention"
id="event_dialog_type_convention"
value="email"
/>
{String(selected_convention_type) === "email" && <label className="bton_image_class" style={{ "width": "20%", "float": "right", "height": "3.5rem", "paddingTop": "15px" }} onClick={(e) => {
if (selected_convention_email_test) {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!selected_convention_email_test.match(validRegex)) {
alert("L'adresse email de test est invalide.");
return;
}
Send_Stagiaire_Conventions_By_Email_Test();
} else {
alert("L'adresse email de test est invalide.");
}
}} > <FcSearch /> &nbsp; Test</label>}
</div>}
{String(selected_convention_type) === "pdf" && <div className="session_caract_Dialog" > Type Document<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 } }}
name="event_dialog_type_convention"
id="event_dialog_type_convention"
value="pdf"
fullWidth
/>
</div>}
{String(selected_convention_type) === "email" && <div className="session_caract_Dialog" >
<Tooltip className="tooltip_css" id="test01" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="test01" data-tooltip-html="Pour recevoir une email de test avant de l'envoyer">
Adresse email de test <FcInfo /> <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_email_test_convention"
id="event_dialog_email_test_convention"
fullWidth
value={selected_convention_email_test}
onChange={(e) => {
setselected_convention_email_test(e.target.value);
}
}
/>
</a>
</div>
}
{String(selected_convention_type) === "pdf" && <div className="session_caract_Dialog" > Recevoir un pré-envoie
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_email_test_convention"
id="event_dialog_email_test_convention"
fullWidth
value=""
/>
</div>
}
{String(selected_convention_type) === "email" &&
String(actionmass_ftion_val) !== String("convention") && <div className="session_caract_Dialog" > Email destinaitaire
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_email_production_convention"
id="event_dialog_email_production_convention"
fullWidth
value={selected_convention_email_destinataire_prod}
onChange={(e) => {
setselected_convention_email_destinataire_prod(e.target.value);
}
}
/>
</div>
}
{String(selected_convention_type) === "pdf" &&
String(actionmass_ftion_val) !== String("convention") && <div className="session_caract_Dialog" > Email destinaitaire
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_email_production_convention"
id="event_dialog_email_production_convention"
fullWidth
value=""
/>
</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
</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": "orange", "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>
<DialogActions>
<div className="div_row">
<div className="div_row_gauche">
{String(selected_convention_type) === "email" && <Button onClick={(e) => {
if (String(selected_convention_email_test).length > 2) {
// On alerte juste l'utilisateur que l'email de test n'est pas vide, juste au cas ou il aurait cliqué par erreur sur l'envoie.
const response = window.confirm(" Vous allez envoyer la convention au destinaitaire final. Continuer ?");
if (!response) {
return;
}
}
Send_Stagiaire_Convocations_By_Email();
Dialog_CONVOCATION_STAGIAIRE_handleClose_buton();
}}
className="bton_enreg_dialog">Envoyer mail </Button>}
{String(selected_convention_type) === "pdf" &&
<Button className="bton_enreg_dialog" onClick={(e) => {
Download_Session_Convocation_PDF();
Dialog_CONVOCATION_STAGIAIRE_handleClose_buton();
}}
>Télécharger </Button>}
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_CONVOCATION_STAGIAIRE_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>
</div>
</DialogActions>
</Dialog>
{/* FIN Dialog pour gerer les CONVOCATION_STAGIAIRE */}
{/* Dialog pour gerer les conventions */}
<Dialog
open={Dialog_convention_open}
@ -1122,6 +1646,8 @@ const Module_Editique = (props) => {
}}
className="bton_enreg_dialog">Envoyer mail </Button>}
{String(selected_convention_type) === "pdf" &&
<Button className="bton_enreg_dialog" onClick={(e) => {
Download_Session_Conventions_PDF();
@ -1146,14 +1672,14 @@ const Module_Editique = (props) => {
<div className="div_row" style={{ "background": "#e8e6e6", "marginLeft": "5px", "marginRight": "5px" }}>
<div style={{ "width": "58%", "float": "left", "marginLeft": "5px", "marginRight": "5px" }}>
<div style={{ "width": "58%", "float": "left", "marginLeft": "5px", "marginRight": "5px", "borderRight": "3mm ridge rgba(211, 220, 50, .6)" }}>
Action Editique <br />
<div style={{ "width": "100%", "float": "left" }}>
{Getall_Editable_Document_By_Partner_By_Collection_result &&
Getall_Editable_Document_By_Partner_By_Collection_result.map((document) => (
<div className="div_row" style={{ "height": "3rem", "marginLeft": "5px", "marginRight": "5px" }}>
<div className="bton_action_server" style={{ width: "55%", float: "left", height: "2.5rem", paddingTop: "10px" }} onClick={(e) => {
<div className="bton_action_server" style={{ width: "45%", float: "left", height: "2.5rem", paddingTop: "10px" }} onClick={(e) => {
setaction_server_to_run(String(JSON.parse(document).server_action_name))
//setaction_server_type_doc(String(JSON.parse(document).courrier_template_type_doc))
@ -1162,16 +1688,23 @@ const Module_Editique = (props) => {
Action_Server(String(JSON.parse(document).server_action_name));
setaction_server_type_doc_ref_interne(JSON.parse(document).courrier_template_ref_interne);
setDialog_1_message(String(JSON.parse(document).courrier_template_ref_interne))
Get_List_Stagiaire_Conventions(String(JSON.parse(document).courrier_template_ref_interne), String(JSON.parse(document).courrier_template_nom), String(JSON.parse(document).courrier_template_type_doc)
);
if (String(JSON.parse(document).courrier_template_ref_interne) === "CONVENTION_STAGIAIRE_ENTREPRISE" ||
String(JSON.parse(document).courrier_template_ref_interne) === "CONVENTION_STAGIAIRE_INDIVIDUELLE") {
Get_List_Stagiaire_Conventions(String(JSON.parse(document).courrier_template_ref_interne), String(JSON.parse(document).courrier_template_nom), String(JSON.parse(document).courrier_template_type_doc)
);
setDialog_convention_open(true);
}
else if (String(JSON.parse(document).courrier_template_ref_interne) === "EMARGEMENT_FORMATION") {
setDialog_EMARGEMENT_FORMATION_open(true);
}
else if (String(JSON.parse(document).courrier_template_ref_interne) === "CONVOCATION_STAGIAIRE") {
console.log(" ### Dialog_CONVOCATION_STAGIAIRE_open");
Get_List_Stagiaire_Convocations(String(JSON.parse(document).courrier_template_ref_interne), String(JSON.parse(document).courrier_template_nom), String(JSON.parse(document).courrier_template_type_doc)
);
setDialog_CONVOCATION_STAGIAIRE_open(true);
}
else if (String(JSON.parse(document).courrier_template_ref_interne) === "CONF_INSCRIPTION") {
setDialog_CONF_INSCRIPTION_open(true);
@ -1182,27 +1715,19 @@ const Module_Editique = (props) => {
</div>
{String(JSON.parse(document).has_history_event) === "1" &&
<div style={{ display: "inline-block", width: "40%", textAlign: "left", paddingLeft: "0.5rem", "float": "right" }}>
<div style={{ display: "inline-block", width: "15%", textAlign: "left", paddingLeft: "0.5rem", "float": "left", height: "2.5rem", }}>
<ToggleSwitch_v2_mysy id="toggleSwitch" name="toggleSwitch" checked={true} style={{ height: "1.5rem" }} />
</div>}
{String(JSON.parse(document).has_history_event) !== "1" &&
<div style={{ display: "inline-block", width: "40%", textAlign: "left", paddingLeft: "0.5rem", "float": "right" }}>
<div style={{ display: "inline-block", width: "15%", textAlign: "left", paddingLeft: "0.5rem", "float": "left", height: "2.5rem", }}>
<ToggleSwitch_v2_mysy id="toggleSwitch" name="toggleSwitch" checked={false} style={{ height: "1.5rem" }} />
</div>}
{JSON.parse(document).list_document_history_event &&
JSON.parse(document).list_document_history_event.map((history_doc) => (
<nav>
{history_doc._id}
</nav>
))}
</div>
@ -1216,15 +1741,22 @@ const Module_Editique = (props) => {
</div>
<div style={{ "width": "40%", "float": "right", "borderLeft": " 3mm ridge rgba(211, 220, 50, .6);" }}>
Détail <br />
<Box sx={{ minHeight: 270, flexGrow: 1, maxWidth: 300 }}>
<Box sx={{ mb: 1 }}>
<Button onClick={handleExpandClick}>
<div style={{ "width": "40%", "float": "right", }}>
Détail <Button onClick={handleExpandClick}>
{expanded.length === 0 ? 'Voir tout' : 'Réduire'}
</Button>
<Box sx={{
minHeight: 270, flexGrow: 1,
boxShadow: 1,
borderRadius: 2,
bgcolor: "yellowgreen"
}}>
{Getall_Editable_Document_By_Partner_By_Collection_result &&
Getall_Editable_Document_By_Partner_By_Collection_result.map((document) => (
</Box>
<TreeView
aria-label="controlled"
defaultCollapseIcon={<ExpandMoreIcon />}
@ -1234,21 +1766,30 @@ const Module_Editique = (props) => {
onNodeToggle={handleToggle}
onNodeSelect={handleSelect}
multiSelect
className="test03"
>
<TreeItem nodeId="1" label="Applications" className="test01">
<TreeItem nodeId="2" label="Calendar" className="test02" />
<TreeItem nodeId="3" label="Chrome" />
<TreeItem nodeId="4" label="Webstorm" />
</TreeItem>
<TreeItem nodeId="5" label="Documents">
<TreeItem nodeId="6" label="MUI">
<TreeItem nodeId="7" label="src">
<TreeItem nodeId="8" label="index.js" />
<TreeItem nodeId="9" label="tree-view.js" />
</TreeItem>
</TreeItem>
<TreeItem nodeId={(JSON.parse(document).id)} label={(JSON.parse(document).courrier_template_ref_interne)} className="test01"
>
{JSON.parse(document).list_document_history_event &&
JSON.parse(document).list_document_history_event.map((history_doc) => (
<TreeItem className="test02" nodeId={history_doc._id}
label={(String(history_doc.date_update).substring(0, 16) + " Par " + String(history_doc.local_update_by_email))} />
))}
{/*!JSON.parse(document).list_document_history_event || (JSON.parse(document).list_document_history_event).length <= 0 &&
<TreeItem nodeId={"0"} label="Aucun"
className="test02" />*/}
</TreeItem>
</TreeView>
))}
</Box>
</div>

View File

@ -607,7 +607,7 @@ const TestUrl_New = (props) => {
<br />
<h2> Module Ediditique </h2>
<Module_Editique conntected_employee_id={"1234"} related_collection={"session_formation"} related_collection_recid={"65224c1c7e5ee82f3a74afc6"}/>
<Module_Editique conntected_employee_id={"1234"} related_collection={"session_formation"} related_collection_recid={"657e1bb9bd0c06f196c96b51"}/>
<Button variant="contained" className="bton_enreg"
onClick={afficher_champs_spec}>

View File

@ -3,10 +3,10 @@ import React from "react";
const ToggleSwitch_v2_mysy = ({ label, checked }) => {
return (
<div className="toggleswitch">
<div className="toggleswitch2_mysy">
<div className="container">
<nav style={{"width":"100%", "float":"right", "textAlign":'right', }}>
<nav style={{"width":"100%", "float":"right", "textAlign":'right', "maxHeight":"2.5rem"}}>
<div className="toggle-switch">
<input type="checkbox" className="checkbox"
name={label} id={label} checked={checked} />

View File

@ -2,22 +2,34 @@
.test01 {
font-size: 3rem;
color: red;
// color: red;
font-weight: bold !important;
}
.test02 {
font-size: 3rem;
color: burlywood;
font-size: 5px !important;
// color: burlywood;
font-weight: normal;
}
.test03 {
text-align: left !important;
font-size: x-small;
//background-color: #464b5e !important;
}
.css-hytcpw{
max-width: 100% !important;
}
.tooltip_css {
background: #81BC3A;
//background: #81BC3A;
z-index: 9999;
}
.css-1bcfi89-MuiTreeItem-content .MuiTreeItem-iconContainer{
font-size: 5px !important;
}
.bton_action_server {
box-shadow: 0 0 5px -1px rgba(0, 0, 0, 0.2);

View File

@ -0,0 +1,76 @@
.toggleswitch2_mysy {
.label{
margin-bottom: 0px;
}
.container {
text-align: center;
padding-right: 5px !important;
}
.toggle-switch {
position: relative;
width: 98%;
display: inline-block;
text-align: left;
top: 5px;
max-height: 2.5rem;
}
.checkbox {
display: none;
}
.label {
display: block;
overflow: hidden;
cursor: pointer;
border: 0 solid #bbb;
border-radius: 20px;
}
.inner {
display: block;
width: 200%;
margin-left: -100%;
transition: margin 0.3s ease-in 0s;
}
.inner:before,
.inner:after {
float: left;
width: 50%;
height: 36px;
padding: 0;
line-height: 36px;
color: #fff;
font-weight: bold;
box-sizing: border-box;
}
.inner:before {
content: "OUI";
padding-left: 10px;
background-color: #060;
color: #fff;
}
.inner:after {
content: "NON";
padding-right: 10px;
background-color: #bbb;
color: #fff;
text-align: right;
}
.switch {
display: block;
width: 24px;
margin: 5px;
background: #fff;
position: absolute;
top: 0;
bottom: 0;
border: 0 solid #bbb;
border-radius: 20px;
transition: all 0.3s ease-in 0s;
}
.checkbox:checked + .label .inner {
margin-left: 0;
}
.checkbox:checked + .label .switch {
right: 0px;
}
}

View File

@ -96,4 +96,4 @@
@import "./components/quisommesnous_v2";
@import "./components/quisommesnous_v3";
@import "./components/module_editique";
@import "./components/toggleswitch2_mysy";