15/01/2024 - 17h00

recette2
cherif 2024-01-15 17:11:12 +01:00
parent d8d3417601
commit 1ac4dc1c79
15 changed files with 774 additions and 157 deletions

View File

@ -17,6 +17,7 @@ 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 { FcInfo } from "react-icons/fc";
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcSearch } from "react-icons/fc";
@ -5512,7 +5513,7 @@ const Apprenant = (props) => {
{p_detail_tuteur1_include_com === true && <nav style={{ "textAlign": "center", "width": "15%", "float": "right", "fontSize": "large" }}>
<Tooltip className="tooltip_css" id="tooltip_speacker" />
<a data-tooltip-id="tooltip_speacker" data-tooltip-html="Contact utilisé dans les échanges de mails">
<FcSpeaker style={{ "border": "1px solid", "cursor": "pointer" }} />
<FcSpeaker style={{ "border": "1px solid", "cursor": "pointer" }} /><FcInfo />
</a>
</nav>}
@ -5625,7 +5626,7 @@ const Apprenant = (props) => {
{p_detail_tuteur2_include_com === true && <nav style={{ "textAlign": "center", "width": "15%", "float": "right", "fontSize": "large" }}>
<Tooltip className="tooltip_css" id="tooltip_speacker2" />
<a data-tooltip-id="tooltip_speacker2" data-tooltip-html="Contact utilisé dans les échanges de mails">
<FcSpeaker style={{ "border": "1px solid", "cursor": "pointer" }} />
<FcSpeaker style={{ "border": "1px solid", "cursor": "pointer" }} /><FcInfo />
</a>
</nav>}

View File

@ -220,9 +220,10 @@ const Dashbord_Ressources_Humaines_Tache_Couts = (props) => {
const stored_cookie = getCookie('tokenmysypart');
var nom_fichier_cmd = "export_csv.csv";
var nom_fichier_cmd_excel = "export_excel.xlsx";
//console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- local_dashbord_internal_id = ", local_dashbord_internal_id);
var url = process.env.REACT_APP_API_URL + "myclass/api/TBD_RH_01_Export_Dashbord_To_Csv/" + stored_cookie + "/" + local_dashbord_internal_id;
var url = process.env.REACT_APP_API_URL + "myclass/api/TBD_RH_01_Export_Dashbord_To_Excel/" + stored_cookie + "/" + local_dashbord_internal_id;
//console.log(" nom_fichier_cmd = ", nom_fichier_cmd, " --- selected_id = ", selected_id, " --- url =", url);
setLoading(true);
@ -233,7 +234,7 @@ const Dashbord_Ressources_Humaines_Tache_Couts = (props) => {
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les données (2) ");
} else {
fileDownload(res.data, nom_fichier_cmd)
fileDownload(res.data, nom_fichier_cmd_excel)
}
}).catch((error) => {

View File

@ -1907,6 +1907,9 @@ const DisplayPartnerSession = (props) => {
setGetall_Sequence_Of_Session_api("true");
setGetall_Sequence_Of_Session_result(res.data.message);
//console.log(" ##NB_Sequence = ", res.data.message.length);
setnb_sequence(res.data.message.length);
}
else {
setGetall_Sequence_Of_Session_api("false");
@ -1960,7 +1963,8 @@ const DisplayPartnerSession = (props) => {
/* Recuperation de la liste des inscrits */
const [nb_stagiaire_Inscrit, setnb_stagiaire_Inscrit] = useState("0");
const [nb_sequence, setnb_sequence] = useState("0");
const [selectionModel_preinsc, setselectionModel_preinsc] = React.useState([]);
@ -2082,7 +2086,7 @@ const DisplayPartnerSession = (props) => {
top: 0,
behavior: "smooth",
});
alert(" Les sessions ont été correctement importées");
alert(result['message']);
}
@ -8384,7 +8388,6 @@ const DisplayPartnerSession = (props) => {
// -- end convention
const New_Option_Type_Ressource = [
{ "id": "0", "label": "Employe", "value": "ressource_humaine" },
{ "id": "1", "label": "Materiel", "value": "ressource_materielle" },
]
@ -9761,7 +9764,7 @@ const DisplayPartnerSession = (props) => {
{selected_code_session && String(selected_code_session).length > 0 && <div className="div_row">
<Button variant="outlined" ref={myRef} onClick={submenu_detail_session} className="detail_class_submenu" id='detail_session' name='detail_session'>Détail Session</Button>
<Button variant="outlined" ref={myRef} onClick={submenu_sequence_session} className="detail_class_submenu" id='sequence_session' name='sequence_session'>Séquences </Button>
<Button variant="outlined" ref={myRef} onClick={submenu_sequence_session} className="detail_class_submenu" id='sequence_session' name='sequence_session'>Séquences ({String(nb_sequence)})</Button>
<Button variant="outlined" onClick={submenu_preinscrit} className="detail_class_submenu" id='preinscrit' name='preinscrit'>Preinscription ({String(nb_stagiaire_Preinscrit)}) </Button>
<Button variant="outlined" onClick={submenu_inscrit} className="detail_class_submenu" id='inscrit' name='inscrit'>Inscription ({String(nb_stagiaire_Inscrit)}) </Button>
<Button variant="outlined" onClick={submenu_emargement} className="detail_class_submenu" id='inscrit' name='inscrit'>Emargement </Button>
@ -11861,14 +11864,7 @@ const DisplayPartnerSession = (props) => {
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={submenu_add_one_sequence}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Séquence &nbsp;
<img src={add_plus} alt="ajout session" className="icon_plus" />
</Button>
&nbsp;
<Popup
trigger={
@ -11919,7 +11915,12 @@ const DisplayPartnerSession = (props) => {
</div>
)}
</Popup>
&nbsp;
<Button variant="outlined" onClick={submenu_add_one_sequence}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Séquence &nbsp;
<img src={add_plus} alt="ajout session" className="icon_plus" />
</Button>
<br />

View File

@ -12,6 +12,9 @@ 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 { FcPodiumWithAudience } from "react-icons/fc";
import { FcInfo } from "react-icons/fc";
import { LiaDharmachakraSolid } from "react-icons/lia";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import add_plus from "../mysy_img/plus.png";
@ -43,7 +46,7 @@ import VisibilityOff from '@mui/icons-material/VisibilityOff';
import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
import Autocomplete from '@mui/material/Autocomplete';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
const Employes = (props) => {
@ -81,9 +84,9 @@ const Employes = (props) => {
const [p_filtre4_value, setp_filtre4_value] = useState();
const columns = [
{ field: '_id', headerName: '_id', hide: true, Width: 0 },
{ field: 'id', headerName: 'id', hide: true, Width: 0 },
{ field: 'date_naissance', headerName: 'date_naissance', hide: true , Width: 0},
{ field: '_id', headerName: '_id', hide: true, Width: 0 },
{ field: 'id', headerName: 'id', hide: true, Width: 0 },
{ field: 'date_naissance', headerName: 'date_naissance', hide: true, Width: 0 },
{
field: 'civilite', headerName: 'Civilité', minWidth: 50, flex: 1, maxWidth: 100, hide: false,
@ -457,7 +460,7 @@ const Employes = (props) => {
}).catch((error) => {
console.warn('Not good man :( Getall_Employee_Acces_Right = ', error);
setGetall_Employee_Acces_Right_api("false");
alert(" Impossible de recuperer la matrice des droits d'acces de l'employé");
alert(" Impossible de recuperer la matrice des Droits d'accès de l'employé");
//setmyApimyApiMessage("")
})
}
@ -500,7 +503,7 @@ const Employes = (props) => {
}).catch((error) => {
console.warn('Not good man :( Getall_Profil_Acces_Right = ', error);
setGetall_Profil_Acces_Right_api("false");
alert(" Impossible de recuperer la matrice des droits d'acces du profile");
alert(" Impossible de recuperer la matrice des Droits d'accès du profile");
//setmyApimyApiMessage("")
})
}
@ -702,7 +705,7 @@ const Employes = (props) => {
}).catch((error) => {
console.warn('Not good man :( Check_User_Access_Right = ', error);
setCheck_User_Access_Right_api("false");
alert(" Impossible de recuperer la matrice des droits d'acces de l'employé");
alert(" Impossible de recuperer la matrice des Droits d'accès de l'employé");
return 0;
//setmyApimyApiMessage("")
})
@ -850,6 +853,12 @@ const Employes = (props) => {
setp_one_detail_resp_hierarchie_nom('');
setp_one_detail_resp_hierarchie_prenom('');
setp_detail_user_login('');
setp_detail_lms_virtualhost_url('');
setp_detail_mysy_lms_user_id('');
setp_detail_lms_account_disable('');
}
function handleClick_delete(event, cellValues) {
@ -895,8 +904,13 @@ const Employes = (props) => {
const [p_detail_resp_hierarchie_nom, setp_detail_resp_hierarchie_nom] = useState("");
const [p_detail_resp_hierarchie_prenom, setp_detail_resp_hierarchie_prenom] = useState("");
const [p_detail_user_login, setp_detail_user_login] = useState();
const [p_detail_user_pass, setp_detail_user_pass] = useState();
const [p_detail_user_login, setp_detail_user_login] = useState("");
const [p_detail_lms_virtualhost_url, setp_detail_lms_virtualhost_url] = useState("");
const [p_detail_mysy_lms_user_id, setp_detail_mysy_lms_user_id] = useState("");
const [p_detail_lms_account_disable, setp_detail_lms_account_disable] = useState("");
const [p_detail_user_pass, setp_detail_user_pass] = useState("");
const [p_one_detail_nom, setp_one_detail_nom] = useState();
@ -1039,9 +1053,33 @@ const Employes = (props) => {
setp_detail_user_login(mylocal_employe.user_login);
setp_new_login(mylocal_employe.user_login)
} else {
setp_new_login(mylocal_employe.email)
setp_new_login(mylocal_employe.email);
setp_detail_user_login("");
}
if (mylocal_employe.lms_virtualhost_url) {
setp_detail_lms_virtualhost_url(mylocal_employe.lms_virtualhost_url);
} else {
setp_detail_lms_virtualhost_url('');
}
if (mylocal_employe.mysy_lms_user_id) {
setp_detail_mysy_lms_user_id(mylocal_employe.mysy_lms_user_id);
} else {
setp_detail_mysy_lms_user_id('');
}
if (mylocal_employe.lms_account_disable) {
setp_detail_lms_account_disable(mylocal_employe.lms_account_disable);
} else {
setp_detail_lms_account_disable('');
}
setp_detail_ismanager("0");
if (mylocal_employe.ismanager) {
@ -1209,6 +1247,7 @@ const Employes = (props) => {
})
}
const [New_Getall_Training_Employee_No_Filter_result, setNew_Getall_Training_Employee_No_Filter_result] = useState([]);
const [Getall_Training_Employee_No_Filter_api, setGetall_Training_Employee_No_Filter_api] = useState();
const [Getall_Training_Employee_No_Filter_message, setGetall_Training_Employee_No_Filter_message] = useState();
@ -1233,6 +1272,33 @@ const Employes = (props) => {
setGetall_Training_Employee_No_Filter_api("true");
setGetall_Training_Employee_No_Filter_result(res.data.message);
setRows(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_prenom = JSON.parse(x).prenom;
var local_ismanager = JSON.parse(x).ismanager;
//---
var node = {
"_id": local_id,
"id": localid,
"label": local_nom + " " + local_prenom,
"nom": local_nom,
"prenom": local_prenom,
"ismanager": local_ismanager
};
new_data2.push(node);
});
if (new_data2.length > 0)
setNew_Getall_Training_Employee_No_Filter_result(new_data2);
}
else {
setGetall_Training_Employee_No_Filter_api("false");
@ -1277,7 +1343,7 @@ const Employes = (props) => {
//console.log("token = " + stored_cookie);
setLoading(true);
fetch(
fetch(
process.env.REACT_APP_API_URL + "myclass/api/Add_Ressource_Humaine_mass/",
{
method: 'POST',
@ -2457,11 +2523,17 @@ const Employes = (props) => {
setAdd_One_Employee_Data_api("true");
setAdd_One_Employee_Data_result(res.data.message);
Getall_Training_Employee();
Getall_Training_Employee_No_Filter();
Get_List_Managers();
setemployee_data_changed("");
setemployee_data_edit_mode("");
clearEmployeeFields();
setadd_One_Employee("");
setselected_id('');
setgridline_id('');
setsubmenu('');
alert(res.data.message);
if (document.getElementById('myRef_head')) {
@ -2681,6 +2753,34 @@ const Employes = (props) => {
}
const New_Option_Oui_Non = [
{
value: '1',
label: 'Oui',
},
{
value: '0',
label: 'Non',
},
];
const New_Option_Civilite = [
{
value: 'M',
label: 'M',
},
{
value: 'Mme',
label: 'Mme',
},
{
value: 'Neutre',
label: 'Neutre',
},
];
const [display_affectation, setdisplay_affectation] = useState();
const [p_affect_poste, setp_affect_poste] = useState();
const [p_affect_date_du, setp_affect_date_du] = useState(new Date().toLocaleDateString('fr-FR'));
@ -3175,7 +3275,7 @@ const Employes = (props) => {
setLoading(false);
console.warn('UpdateStagiaireData : Not good man :( Update_user_access_right_Data = ' + error);
setUpdate_user_access_right_Data_api("false");
alert(" Impossible de mettre à jour les droits d'acces de l'employé");
alert(" Impossible de mettre à jour les Droits d'accès de l'employé");
})
}
@ -4096,7 +4196,7 @@ const Employes = (props) => {
return;
}
if (!p_employe_contrat_groupe_prix_achat_id || String(p_employe_contrat_groupe_prix_achat_id).trim() === "") {
if (!p_employe_contrat_cout || String(p_employe_contrat_cout).trim() === "") {
alert(" Le prix est obigatoire ");
@ -4111,7 +4211,7 @@ const Employes = (props) => {
}
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
@ -4228,6 +4328,94 @@ const Employes = (props) => {
}
const [Create_Lms_Trainer_Account_api, setCreate_Lms_Trainer_Account_api] = useState();
const [Create_Lms_Trainer_Account_message, setCreate_Lms_Trainer_Account_message] = useState();
const [Create_Lms_Trainer_Account_result, setCreate_Lms_Trainer_Account_result] = useState();
function Create_Lms_Trainer_Account() {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("rh_id", selected_id);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/HR_Create_LMS_Trainer_Account/";
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Create_Lms_Trainer_Account res.data.status = " + res.data.status);
//console.log(" In Create_Lms_Trainer_Account res.data.message r_class = " + res.data.message);
setCreate_Lms_Trainer_Account_api("true");
setCreate_Lms_Trainer_Account_result(res.data.message);
handleClick_edit_employee_From_Line(gridline_id);
alert(res.data.message);
}
else {
setCreate_Lms_Trainer_Account_api("false");
setCreate_Lms_Trainer_Account_message(res.data.message);
alert(res.data.message)
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Create_Lms_Trainer_Account = ', error);
setCreate_Lms_Trainer_Account_api("false");
alert(" Impossible de créer les acces LMS pour Enseignant");
//setmyApimyApiMessage("")
})
}
const [Disable_Lms_Trainer_Account_api, setDisable_Lms_Trainer_Account_api] = useState();
const [Disable_Lms_Trainer_Account_message, setDisable_Lms_Trainer_Account_message] = useState();
const [Disable_Lms_Trainer_Account_result, setDisable_Lms_Trainer_Account_result] = useState();
function Disable_Lms_Trainer_Account() {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("rh_id_to_disable", selected_id);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Disable_MySy_LMS_Account/";
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Disable_Lms_Trainer_Account res.data.status = " + res.data.status);
//console.log(" In Disable_Lms_Trainer_Account res.data.message r_class = " + res.data.message);
setDisable_Lms_Trainer_Account_api("true");
setDisable_Lms_Trainer_Account_result(res.data.message);
handleClick_edit_employee_From_Line(gridline_id);
alert(res.data.message);
}
else {
setDisable_Lms_Trainer_Account_api("false");
setDisable_Lms_Trainer_Account_message(res.data.message);
alert(res.data.message)
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Disable_Lms_Trainer_Account = ', error);
setDisable_Lms_Trainer_Account_api("false");
alert(" Impossible de créer les acces LMS pour Enseignant");
//setmyApimyApiMessage("")
})
}
return (
<div className="employes">
@ -4316,7 +4504,7 @@ const Employes = (props) => {
<div className="div_row_gauche_dialog_session" style={{ "textAlign": 'left' }}>
Adresse postale
</div>
{String(gridline_id) !== "" && Getall_Training_Employee_No_Filter_result && selected_id &&
{String(gridline_id) !== "" && Getall_Training_Employee_No_Filter_result && selected_id &&
String(selected_id).length > 0 && <div className="div_row_droite_dialog_session" style={{ "textAlign": 'right' }}>
{JSON.parse(Getall_Training_Employee_No_Filter_result[gridline_id]).adr_adresse} <br />
{JSON.parse(Getall_Training_Employee_No_Filter_result[gridline_id]).adr_code_postal} {JSON.parse(Getall_Training_Employee_No_Filter_result[gridline_id]).adr_ville} <br />
@ -4417,7 +4605,7 @@ const Employes = (props) => {
>
<DialogTitle>MySy Information</DialogTitle>
<DialogContent style={{ "background": "#fffff0" }}>
<DialogContent >
<DialogContentText>
Mise à jour Login & Mot de passe
@ -4498,7 +4686,7 @@ const Employes = (props) => {
}
}
/>
<Button onClick={Generate_Pwd} className="bton_enreg_dialog" style={{ "width": "100%", "margin": "0px", "background": "orange" }}>Generer un mot de passe</Button>
<Button onClick={Generate_Pwd} className="bton_enreg_dialog" style={{ "width": "100%", "margin": "0px", "background": "orange" }}>Generer automatiquement un mot de passe &nbsp; <LiaDharmachakraSolid style={{ "fontSize": "medium" }} /> </Button>
</div>
@ -4511,7 +4699,11 @@ const Employes = (props) => {
<div className="div_row">
<div className="div_row_gauche">
<Button onClick={Add_Update_Employee_Login_Pass_Data} className="bton_enreg_dialog">Mettre à jour</Button>
<Tooltip className="tooltip_css" id="my-tooltip04" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="my-tooltip04" data-tooltip-html="L'utilisateur sera notifié par email. Il recevra le login et le nouveau mot de passe.">
<Button onClick={Add_Update_Employee_Login_Pass_Data} className="bton_enreg_dialog">Mettre à jour <FcInfo /></Button>
</a>
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_1_handleCancel_buton_create_update_login_pwd_update} className="bton_annule_dialog" >Annuler</Button>
@ -5253,18 +5445,14 @@ const Employes = (props) => {
setselected_row_data_json_age("");
get_Employee_Images(newSelectionModel.row._id);
setgridline_id(newSelectionModel.row.id);
var local_date_naissance = newSelectionModel.row.date_naissance;
if (local_date_naissance) {
if (newSelectionModel.row.date_naissance) {
var local_date_naissance = newSelectionModel.row.date_naissance;
var date_eval = new Date(moment(local_date_naissance, "DD/MM/YYYY"));
var diff = Date.now() - date_eval.getTime();
var age = new Date(diff);
var reel_age = Math.abs(age.getUTCFullYear() - 1970);
setselected_row_data_json_age(reel_age)
}
setDialog_employe_open(true);
@ -5376,11 +5564,7 @@ const Employes = (props) => {
</div>
</div>
<div className="div_row"> &nbsp;</div>
{/*<div className="div_row">
<Button variant="outlined" ref={myRef} onClick={submenu_detail_employe} className="detail_class_submenu" id='detail_employe' name='detail_employe'>Détail employé</Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'acces </Button>
<Button variant="outlined" onClick={submenu_affectation} className="detail_class_submenu" id='affectation' name='affectation'>Affectation </Button>
</div>*/}
</div>
@ -5389,7 +5573,7 @@ const Employes = (props) => {
{String(submenu) === "detail_employe" && String(add_One_Employee) !== "1" && <div className="div_row">
<div className="div_row">
<Button variant="outlined" onClick={submenu_detail_employe} className="detail_class_submenu" id='detail_employe' name='detail_employe'>Détail employé</Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'acces </Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'accès </Button>
<Button variant="outlined" onClick={submenu_affectation} className="detail_class_submenu" id='affectation' name='affectation'>Affectation </Button>
<Button variant="outlined" onClick={submenu_contrat} className="detail_class_submenu" id='affectation' name='contrat'>Contrat </Button>
</div>
@ -5978,49 +6162,97 @@ const Employes = (props) => {
{/* -- end champs specifiques **/}
<div className="div_row">
<hr />
<div className="div_row" style={{ "border": "None" }}>
<hr className="hr_break" />
</div>
</div>
{String(employee_data_edit_mode) !== "1" && <div className="session_caract"> Login<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_user_login"
id="detail_user_login"
<div style={{ "width": "50%", "float": "left", "borderRight":"thick double #32a1ce" }}>
<div className="div_row" style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", "padding": "5px" }}>
Login & Mot de passe
</div>
{String(p_detail_user_login) === "" &&
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
<Tooltip className="tooltip_css" id="deb_inscription" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="deb_inscription" data-tooltip-html="Pour créer un login & pwd pour cet utilisateur, cliquez sur 'Editer.<br/>
Pensez également lui accorder les niveaux d'accès nécessaires à partir du bouton <i>'DROITS D'ACCES'</i> ">
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_user_login}
/>
</div>}
/!\ Cet utilisateur n'a pas de login & mot de passe &nbsp; <FcInfo />
</a>
</div>}
{String(employee_data_edit_mode) !== "1" && <div className="session_caract">
<Tooltip className="tooltip_css" id="deb_inscription" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="deb_inscription" data-tooltip-html="Pour créer un login & pwd pour cet utilisateur, cliquez sur 'Editer.<br/>
Pensez également lui accorder les niveaux d'accès nécessaires à partir du bouton <i>'DROITS D'ACCES'</i> ">
Login &nbsp; <FcInfo /><br />
</a>
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_user_login"
id="detail_user_login"
{String(employee_data_edit_mode) === "1" && <div className="session_caract"> Login<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_user_login"
id="detail_user_login"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_user_login}
/>
</div>}
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_user_login}
/> <Button variant="contained" className="bton_enreg" onClick={Dialog_1_handle_change_login_pwd}> Créer / Mettre à jour login & pwd
</Button>
</div>}
{String(employee_data_edit_mode) === "1" && <div className="session_caract">
Login <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_user_login"
id="detail_user_login"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_user_login}
/> <Button variant="contained" className="bton_create_login" onClick={Dialog_1_handle_change_login_pwd}> Créer / M.A.J login & pwd &nbsp; <FcPodiumWithAudience style={{ "fontSize": "x-large" }} />
</Button> &nbsp;<br />
</div>}
</div>
<div style={{ "width": "40%", "float": "right" }}>
<div className="div_row" style={{ "border": "None", "fontSize": "20px", "fontWeight": "600", "padding": "5px" }}>
Accès E-Learning
</div>
{String(p_detail_lms_account_disable) === "1" || (
String(p_detail_mysy_lms_user_id) === "" && String(p_detail_lms_virtualhost_url) === ""
&& String(p_detail_user_login) !== "") && <Button variant="contained" className="bton_create_login" onClick={Create_Lms_Trainer_Account}> Créer accès E-Learning &nbsp;
</Button>} &nbsp;<br />
{String(p_detail_lms_account_disable) !== "1" &&
String(p_detail_mysy_lms_user_id) !== "" && String(p_detail_lms_virtualhost_url) !== ""
&& String(p_detail_user_login) !== "" && <Button variant="contained" className="bton_create_login" onClick={Disable_Lms_Trainer_Account}> Desactiver accès E-Learning &nbsp;
</Button>}
</div>
<div className="div_row">
<hr />
<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>
<div className="div_row">
<div className="div_row" style={{ "padding": "5px" }}>
Liste des pièces jointes <br />
<div style={{ "fontSize": "12px" }}>
<label htmlFor="upload-photo">
<input
@ -6193,7 +6425,7 @@ const Employes = (props) => {
{String(submenu) === "detail_employe" && String(add_One_Employee) === "1" && <div className="div_row">
<div className="div_row">
<Button variant="outlined" onClick={submenu_detail_employe} className="detail_class_submenu" id='detail_employe' name='detail_employe'>Détail employé</Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'acces </Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'accès </Button>
<Button variant="outlined" onClick={submenu_affectation} className="detail_class_submenu" id='affectation' name='affectation'>Affectation </Button>
<Button variant="outlined" onClick={submenu_contrat} className="detail_class_submenu" id='affectation' name='contrat'>Contrat </Button>
</div>
@ -6202,7 +6434,26 @@ const Employes = (props) => {
<div className="session_data" >
<div className="session_caract"> <b> Civilité </b> <br />
<TextField
<Autocomplete
disablePortal
name="one_detail_civilite"
id="one_detail_civilite"
className="disabled_style"
options={New_Option_Civilite}
onChange={(event, value) => {
if (value && value.value) {
setp_one_detail_civilite(value.value);
setEmployee_data_changed("1");
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
{/* <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_civilite"
@ -6223,7 +6474,7 @@ const Employes = (props) => {
<MenuItem value="Mme" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Mme. &nbsp;</MenuItem>
<MenuItem value="Neutre" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Neutre &nbsp;</MenuItem>
</TextField>
</TextField>*/}
</div>
<div className="session_caract"> <b>Nom </b> <br />
@ -6545,7 +6796,27 @@ const Employes = (props) => {
<div className="session_caract"> Manager<br />
<TextField
<Autocomplete
disablePortal
name="one_detail_ismanager"
id="one_detail_ismanager"
className="disabled_style"
options={New_Option_Oui_Non}
onChange={(event, value) => {
if (value && value.value) {
setp_one_detail_ismanager(value.value);
setEmployee_data_changed("1");
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
{/*<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_ismanager"
@ -6565,11 +6836,33 @@ const Employes = (props) => {
<MenuItem value="1" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Oui &nbsp;&nbsp;</MenuItem>
<MenuItem value="0" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Non &nbsp;</MenuItem>
</TextField>
</TextField>*/}
</div>
<div className="session_caract"> Responsable (n+1) <br />
<TextField
<Autocomplete
disablePortal
name="one_detail_resp_hierarchie_id"
id="one_detail_resp_hierarchie_id"
className="disabled_style"
options={New_Getall_Training_Employee_No_Filter_result}
onChange={(event, value) => {
if (value && value._id) {
setp_one_detail_resp_hierarchie_id(value._id);
setEmployee_data_changed("1");
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
{/*<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="one_detail_resp_hierarchie_id"
@ -6595,7 +6888,9 @@ const Employes = (props) => {
</MenuItem>
))}
</TextField>
</TextField>*/}
</div>
@ -6691,7 +6986,7 @@ const Employes = (props) => {
{String(submenu) === "affectation" && <div className="div_row" style={{ paddingRight: '10px' }}>
<div className="div_row">
<Button variant="outlined" onClick={submenu_detail_employe} className="detail_class_submenu" id='detail_employe' name='detail_employe'>Détail employé</Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'acces </Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'accès </Button>
<Button variant="outlined" onClick={submenu_affectation} className="detail_class_submenu" id='affectation' name='affectation'>Affectation </Button>
<Button variant="outlined" onClick={submenu_contrat} className="detail_class_submenu" id='affectation' name='contrat'>Contrat </Button>
</div>
@ -7249,15 +7544,15 @@ const Employes = (props) => {
</div>}
{String(submenu) === "droit_acces" && <div className="div_row">
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Droit Acces </nav>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Droits accès </nav>
<div className="div_row">
<Button variant="outlined" onClick={submenu_detail_employe} className="detail_class_submenu" id='detail_employe' name='detail_employe'>Détail employé</Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'acces </Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'accès </Button>
<Button variant="outlined" onClick={submenu_affectation} className="detail_class_submenu" id='affectation' name='affectation'>Affectation </Button>
<Button variant="outlined" onClick={submenu_contrat} className="detail_class_submenu" id='affectation' name='contrat'>Contrat </Button>
</div>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Droits d'acces système </nav>
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Droits d'accès système </nav>
<div className="session_data" style={{ "background": warning_bg_color }}>
@ -7474,7 +7769,7 @@ const Employes = (props) => {
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Detail contrat(s) </nav>
<div className="div_row">
<Button variant="outlined" onClick={submenu_detail_employe} className="detail_class_submenu" id='detail_employe' name='detail_employe'>Détail employé</Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'acces </Button>
<Button variant="outlined" onClick={submenu_droit_acces} className="detail_class_submenu" id='droit_acces' name='droit_acces'>Droits d'accès </Button>
<Button variant="outlined" onClick={submenu_affectation} className="detail_class_submenu" id='affectation' name='affectation'>Affectation </Button>
<Button variant="outlined" onClick={submenu_contrat} className="detail_class_submenu" id='affectation' name='contrat'>Contrat </Button>
</div>

View File

@ -72,6 +72,7 @@ const Module_Agenda = (props) => {
const [isLoading, setLoading] = useState();
const [p_filtre1, setp_filtre1] = useState("ressource_humaine");
const [p_filtre1_label, setp_filtre1_label] = useState("Employe");
const [p_filtre1_value, setp_filtre1_value] = useState("ressource_humaine");
const [p_filtre2, setp_filtre2] = useState();
@ -933,6 +934,8 @@ const Module_Agenda = (props) => {
})
}
const [New_Getall_Training_Materiel_No_Filter_result, setNew_Getall_Training_Materiel_No_Filter_result] = useState([]);
const [Getall_Training_Materiel_No_Filter_api, setGetall_Training_Materiel_No_Filter_api] = useState();
const [Getall_Training_Materiel_No_Filter_message, setGetall_Training_Materiel_No_Filter_message] = useState();
const [Getall_Training_Materiel_No_Filter_result, setGetall_Training_Materiel_No_Filter_result] = useState();
@ -957,6 +960,31 @@ const Module_Agenda = (props) => {
//console.log(" In Getall_Training_Materiel_No_Filter res.data.message r_class = " + res.data.message);
setGetall_Training_Materiel_No_Filter_api("true");
setGetall_Training_Materiel_No_Filter_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_ref_interne = JSON.parse(x).ref_interne;
//---
var node = {
"_id": local_id,
"id": localid,
"label": local_nom,
"nom": local_nom,
"ref_interne": local_ref_interne,
};
new_data2.push(node);
});
if (new_data2.length > 0)
setNew_Getall_Training_Materiel_No_Filter_result(new_data2);
}
else {
setGetall_Training_Materiel_No_Filter_api("false");
@ -993,6 +1021,18 @@ const Module_Agenda = (props) => {
Get_List_Agenda_Events_For_Me(myconntected_employee_id);
}
const New_Option_Type_Event = [
{ "id": "0", "label": "Absence", "value": "absence" },
{ "id": "1", "label": "Planning", "value": "planning" },
{ "id": "2", "label": "Autre", "value": "autre" },
]
const New_Option_Type_Ressource = [
{ "id": "0", "label": "Employe", "value": "ressource_humaine" },
{ "id": "1", "label": "Materiel", "value": "ressource_materielle" },
]
return (
<div className="module_agenda">
{isLoading && <div className="loader-container">
@ -1017,8 +1057,30 @@ const Module_Agenda = (props) => {
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
<nav style={{ "float": "right", "width": "65%" }}>
<TextField
<Autocomplete
disablePortal
name="event_dialog_type"
id="event_dialog_type"
value={p_detail_event_type}
fullWidth
options={New_Option_Type_Event}
onChange={(event, value) => {
if (String(props.write_access) === "1") {
if (value && value.value) {
setp_detail_event_type(value.value);
}
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
{/*<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_type"
@ -1041,13 +1103,13 @@ const Module_Agenda = (props) => {
<MenuItem value="planning" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Planning &nbsp;</MenuItem>
<MenuItem value="autre" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Autre &nbsp;</MenuItem>
</TextField>
</TextField>*/}
</nav>
</div>
<div className="session_caract_Dialog" >
{String(p_detail_event_type) !== "planning" && <div className="session_caract_Dialog" >
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Justifié ? </nav>
<nav style={{ "float": "right", "width": "65%" }}
@ -1064,7 +1126,7 @@ const Module_Agenda = (props) => {
<ToggleSwitch id="toggleSwitch" name="toggleSwitch" checked={p_detail_justified}
/>
</nav>
</div>
</div>}
<div className="session_caract_Dialog" > Titre
<TextField
@ -1224,9 +1286,32 @@ const Module_Agenda = (props) => {
</div>
</div>
{display_other_agenda && String(display_other_agenda) === "1" && <div className="div_row" style={{ "marginBottom": "5px" }}>
<div className="div_row_gauche texte_area_filter" >
<TextField
{display_other_agenda && String(display_other_agenda) === "1" && <div className="div_row" style={{ "margin": "5px" }}>
<div className="div_row_gauche texte_area_filter_value" >
<Autocomplete
disablePortal
name="filtre_related_collection"
id="filtre_related_collection"
className="disabled_style"
value={p_filtre1_label}
options={New_Option_Type_Ressource}
onChange={(event, value) => {
if (value && value.value) {
setp_filtre1(value.value);
setselected_employee_id("");
setselected_related_collection(value.value);
setp_filtre1_label(value.label)
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
{/*<TextField
name="filtre_related_collection"
id="filtre_related_collection"
label="Choisir un champ"
@ -1245,7 +1330,7 @@ const Module_Agenda = (props) => {
<MenuItem value="ressource_materielle" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Materiel &nbsp;</MenuItem>
</TextField>
</TextField>*/}
</div>
@ -1263,7 +1348,7 @@ const Module_Agenda = (props) => {
//value={selected_employee_id}
onChange={(event, value) => {
if (value && value._id) {
Get_Ressource_Data(value._id)
setselected_employee_id(value._id);
Get_List_Agenda_Events_For_Given_User(value._id);
@ -1312,7 +1397,30 @@ const Module_Agenda = (props) => {
{p_filtre1 && String(p_filtre1) === "ressource_materielle" && <div className="div_row_droite texte_area_filter_value" >
<TextField
<Autocomplete
disablePortal
name="filtre1_value"
id="filtre1_value"
className="disabled_style"
options={New_Getall_Training_Materiel_No_Filter_result}
onChange={(event, value) => {
if (value && value._id) {
Get_Ressource_Data(value._id)
setselected_employee_id(value._id);
Get_List_Agenda_Events_For_Given_User(value._id);
}
}}
renderInput={(params) => <TextField {...params} label="" />
}
/>
{/*} <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="filtre1_value"
@ -1339,7 +1447,7 @@ const Module_Agenda = (props) => {
</MenuItem>
))}
</TextField>
</TextField>*/}
</div>}

View File

@ -1408,7 +1408,7 @@ const Partner = (props) => {
<div className="div_droite firstConnexion">
<div className="firstConnexion_text">
<b>Cher Utilisateur, c'est votre première connexion, </b> <br /> &nbsp;<br />
Nous sommes ravis de vous accueillir dans notre aventure MySy. <br /><br />
Nous sommes ravis de vous accueillir dans notre aventure MySy. Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFIRMATIONS"</i> ==&gt; Bouton <i>"SECURITE"</i> <br /><br />
<Button onClick={(e) => setfirstConnexion()} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; Fermer</Button><br />
&nbsp; <br /> Merci.
</div>
@ -1957,7 +1957,7 @@ const Partner = (props) => {
<div className="div_droite firstConnexion">
<div className="firstConnexion_text">
<b>Cher Utilisateur, c'est votre première connexion, </b> <br /> &nbsp;<br />
Nous sommes ravis de vous accueillir dans notre aventure MySy. <br /><br />
Nous sommes ravis de vous accueillir dans notre aventure MySy. Nous vous invitons à modifier votre mot de passe à partir du menu <i>"MES INFIRMATIONS"</i> ==&gt; Bouton <i>"SECURITE"</i> <br /><br />
<Button onClick={(e) => setfirstConnexion()} className="firstConnexion_bton"> &nbsp; &nbsp;<FaHandPointRight /> &nbsp; Fermer</Button><br />
&nbsp; <br /> Merci.
</div>

View File

@ -11,13 +11,13 @@ import Visibility from '@mui/icons-material/Visibility';
import VisibilityOff from '@mui/icons-material/VisibilityOff';
import IconButton from '@mui/material/IconButton';
import { useHistory } from "react-router-dom";
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
const Partner_Securite_Data = (props) => {
const history = useHistory();
const [isLoading, setLoading] = useState();
const [myApiResponse, setmyApiResponse] = useState("");
const [result, setResult] = useState("");
const [testval, settestval] = useState();
@ -241,6 +241,7 @@ const Partner_Securite_Data = (props) => {
return
}
setLoading(true);
fetch(
url,
{
@ -250,26 +251,31 @@ const Partner_Securite_Data = (props) => {
)
.then((response) => response.json())
.then((result) => {
//console.log('Success:', result['message'], "result['status'] = ", result['status']);
setLoading(false);
//console.log('message:', result['message'], "result['status'] = ", result['status']);
setmyApiResponse(result['status']);
setResult(result['message']);
if (String(result['status']) === String("true")) {
setupdatepwd(true);
setpwdfieldsdesabled(true);
desablesecurtypwdfields();
alert("Le mot de passe a été mis à jour.")
} else if (String(result['status']) === String("Err_Connexion")) {
alert('Erreur: ' + result['message']);
alert( result['message']);
history.push("/Connexion");
} else {
alert("Erreur :", result['message']);
alert(result['message']);
}
})
.catch((error) => {
setLoading(false);
console.error('Error:', error);
setmyApiResponse("false");
setupdatepwd(false);
alert("Erreur :", result['message']);
alert(result['message']);
});
}
@ -296,7 +302,7 @@ const Partner_Securite_Data = (props) => {
formData.append('conf_new_mail', conf_new_mail);
formData.append('partner_account_id', props.partner_account_id);
setLoading(true);
fetch(
url,
{
@ -306,11 +312,13 @@ const Partner_Securite_Data = (props) => {
)
.then((response) => response.json())
.then((result) => {
setLoading(false);
//console.log('Success:', result['message'], "result['status'] = ", result['status']);
setmyApiResponse(result['status']);
setResult(result['message']);
if (String(result['status']) == String("true")) {
setupdatemainmail(true);
desablesecurtypwdfields();
alert("L'adresse email a été mise à jour.")
} else if (String(result['status']) === String("Err_Connexion")) {
alert('Erreur: ' + result['message']);
@ -321,6 +329,7 @@ const Partner_Securite_Data = (props) => {
})
.catch((error) => {
setLoading(false);
console.error('Error:', error);
setmyApiResponse("false");
setupdatemainmail(false);
@ -607,6 +616,10 @@ const Partner_Securite_Data = (props) => {
return (
<div className="partner_client partner_client_securite_data">
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="div_row_gauche">

View File

@ -311,6 +311,78 @@ const QuiSommesNous_v2 = () => {
</div>
</div>
<div className="div_row_center_video_ftion" >
<div className="div_row_center_enphasis" >
<div className="detail_block_video_ftion">
<div className="detail_text_video_ftion">
<b className="chapitre"> Les sessions de Formation </b> <br /> <br />
Import Excel de formation<br />
Création unitaire<br />
La gestion au quotidien<br />
</div>
<div className="detail_img_video_ftion">
<div className="only_mobile">
<b className="chapitre"> Les sessions de Formation </b> <br /> <br />
Import Excel de formation<br />
Création unitaire<br />
La gestion au quotidien<br />
</div>
<ReactPlayer
controls={true}
light="https://img.mysy-training.com/video/video_session/mysy_session_thumb.png"
playing
url='https://img.mysy-training.com/video/video_session/MySy_Creation_Session.mp4'
width="100%"
/>
</div>
</div>
</div>
</div>
<div className="div_row_center_video_ftion" >
<div className="div_row_center_enphasis" >
<div className="detail_block_video_ftion">
<div className="detail_text_video_ftion">
<b className="chapitre"> Les séquences de Formation </b> <br /> <br />
Création automatique, manuelle<br />
Ajout de ressources pédagogiques<br />
Réservation Plannings & Agendas<br />
</div>
<div className="detail_img_video_ftion">
<div className="only_mobile">
<b className="chapitre"> Les sessions de Formation </b> <br /> <br />
Création automatique, manuelle<br />
Ajout de ressources pédagogiques<br />
Réservation Plannings & Agendas<br />
</div>
<ReactPlayer
controls={true}
light="https://img.mysy-training.com/video/video_sequence/mysy_sequence_thumb.png"
playing
url='https://img.mysy-training.com/video/video_sequence/MySy_Creation_Sequences.mp4'
width="100%"
/>
</div>
</div>
</div>
</div>
</div>

View File

@ -1092,7 +1092,7 @@ const Recherche_new_v2 = () => {
}
).then((response) => response.json())
.then((result) => {
console.log('### loadDomainMetier Success:', result['message']);
//console.log('### loadDomainMetier Success:', result['message']);
setdomaine_metier(result['message']);
})

View File

@ -466,6 +466,21 @@ function UpdateParnterInfo(props) {
document.getElementsByName("contact_mail")[0].style.backgroundColor = "#ECEFF1";
}
if (mylocaltraining.lms_virtualhost_url) {
setp_lms_virtualhost_url(mylocaltraining.lms_virtualhost_url);
}
if (mylocaltraining.lms_username) {
setp_lms_username(mylocaltraining.lms_username);
}
if (mylocaltraining.mysy_lms_user_id) {
setp_mysy_lms_user_id(mylocaltraining.mysy_lms_user_id);
}
desablefield1();
@ -931,22 +946,22 @@ function UpdateParnterInfo(props) {
desablefield1();
setdatamodification();
getPartnerImages();
if( document.getElementsByName("isdatadock")[0]){
document.getElementsByName("isdatadock")[0].disabled = true;
document.getElementsByName("isdatadock")[0].style.backgroundColor = "#ECEFF1";
if (document.getElementsByName("isdatadock")[0]) {
document.getElementsByName("isdatadock")[0].disabled = true;
document.getElementsByName("isdatadock")[0].style.backgroundColor = "#ECEFF1";
}
if( document.getElementsByName("isqualiopi")[0]){
document.getElementsByName("isqualiopi")[0].disabled = true;
document.getElementsByName("isqualiopi")[0].style.backgroundColor = "#ECEFF1";
if (document.getElementsByName("isqualiopi")[0]) {
document.getElementsByName("isqualiopi")[0].disabled = true;
document.getElementsByName("isqualiopi")[0].style.backgroundColor = "#ECEFF1";
}
if( document.getElementsByName("iscertifvoltaire")[0]){
document.getElementsByName("iscertifvoltaire")[0].disabled = true;
document.getElementsByName("iscertifvoltaire")[0].style.backgroundColor = "#ECEFF1";
if (document.getElementsByName("iscertifvoltaire")[0]) {
document.getElementsByName("iscertifvoltaire")[0].disabled = true;
document.getElementsByName("iscertifvoltaire")[0].style.backgroundColor = "#ECEFF1";
}
alert(" La mise à jour a été faite ");
@ -1680,12 +1695,10 @@ function UpdateParnterInfo(props) {
async function submenu_donnee_securite() {
var security_retval = props.check_user_acces_right("account_securite", "read");
//var security_retval = props.check_user_acces_right("account_securite", "read");
setsubmenu("submenu_donnee_securite");
if (security_retval === 1)
setsubmenu("submenu_donnee_securite");
else
alert("Vos droits ne sont pas suffisants");
}
async function submenu_contact() {
@ -1714,15 +1727,22 @@ function UpdateParnterInfo(props) {
const [p_contact_tel, setp_contact_tel] = useState("");
const [p_contact_mail, setp_contact_mail] = useState("");
const [p_lms_virtualhost_url, setp_lms_virtualhost_url] = useState("");
const [p_lms_username, setp_lms_username] = useState("");
const [p_mysy_lms_user_id, setp_mysy_lms_user_id] = useState("");
return (
<div className='updateparnterinfo'>
<div className="div_row">
<Button variant="outlined" onClick={submenu_donnee_entreprise} className="detail_submenu" id='submenu_donnee_entreprise' name='submenu_donnee_entreprise'>Données entreprises</Button>
{String(is_partner_admin_account) === "1" && <Button variant="outlined" onClick={submenu_donnee_facturation} className="detail_submenu" id='submenu_donnee_facturation' name='submenu_donnee_facturation'>Données Facturation</Button>}
<Button variant="outlined" onClick={submenu_donnee_securite} className="detail_submenu" id='submenu_donnee_securite' name='submenu_donnee_securite'>Securité</Button>
{String(is_partner_admin_account) !== "1" && <Button variant="outlined" onClick={submenu_donnee_entreprise} className="detail_submenu" id='submenu_donnee_entreprise' name='submenu_donnee_entreprise'>DONNEES PERSONNELLES</Button>}
{String(is_partner_admin_account) === "1" && <Button variant="outlined" onClick={submenu_donnee_entreprise} className="detail_submenu" id='submenu_donnee_entreprise' name='submenu_donnee_entreprise'>DONNEES ENTREPRISE</Button>}
{String(is_partner_admin_account) === "1" && <Button variant="outlined" onClick={submenu_donnee_facturation} className="detail_submenu" id='submenu_donnee_facturation' name='submenu_donnee_facturation'>DONNEES FACTURATION</Button>}
<Button variant="outlined" onClick={submenu_donnee_securite} className="detail_submenu" id='submenu_donnee_securite' name='submenu_donnee_securite'>SECURITE</Button>
{/*<Button variant="outlined" onClick={submenu_contact} className="detail_submenu" id='submenu_contact' name='submenu_contact'>Contact & Adresses</Button>*/}
</div>
@ -2302,6 +2322,8 @@ function UpdateParnterInfo(props) {
onChange={(e) => setp_contact_mail(e.target.value)}
/>
{fields1desabled == false && String(datamodification) === String("1") && <div className="div_row">
<div className="koUpdateData" style={{ "color": "orange", "textAlign": "center" }}> /!\ Pensez à enregistrer les modifications</div>
</div>}
@ -2322,6 +2344,44 @@ function UpdateParnterInfo(props) {
}
</div>
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="titre1"> Accès E-Learning </div>
<TextField
name="contact_login_elearning"
label="E-Learning Login"
className="texte_area"
sx={{ m: 1, width: '48%', background:"#ECEFF1", color:"black"}}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<AccountCircle />
</InputAdornment>
),
}}
value={p_lms_username}
/>
<TextField
name="contact_login_elearning"
label="Url plateforme"
sx={{ m: 1, width: '48%', background:"#ECEFF1", color:"black"}}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<AccountCircle />
</InputAdornment>
),
}}
value={p_lms_virtualhost_url}
/>
</Box>
{/*<div style={{ "width": "10%" }}> &nbsp;</div>

View File

@ -281,12 +281,14 @@
background: #c8cfd5;
color: black;
width: 100%;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 100% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -922,6 +924,7 @@
background: #c8cfd5;
color: black;
width: 50%;
height: 2rem !important;
}
@ -930,6 +933,7 @@
background: #c8cfd5;
color: black;
width: 65% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -1596,17 +1600,20 @@
background: #c8cfd5;
color: black;
width: 40%;
height: 2rem !important;
}
.bton_add_session_create_automatic {
background: #c8cfd5;
color: black;
width:60% !important;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 50% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -2164,18 +2171,21 @@
background: #c8cfd5;
color: black;
width: 25% !important;
height: 2rem !important;
}
.bton_add_session_create_automatic {
background: #c8cfd5;
color: black;
width: 40% !important;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 40% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {

View File

@ -287,12 +287,14 @@
background: #c8cfd5;
color: black;
width: 100%;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 100% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -920,6 +922,7 @@
background: #c8cfd5;
color: black;
width: 50%;
height: 2rem !important;
}
@ -928,6 +931,7 @@
background: #c8cfd5;
color: black;
width: 65% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -1586,17 +1590,20 @@
background: #c8cfd5;
color: black;
width: 40%;
height: 2rem !important;
}
.bton_add_session_create_automatic {
background: #c8cfd5;
color: black;
width:60% !important;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 50% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -2144,19 +2151,22 @@
.bton_add_session {
background: #c8cfd5;
color: black;
width: 25% !important;
width: 20% !important;
height: 2rem !important;
}
.bton_add_session_create_automatic {
background: #c8cfd5;
color: black;
width: 40% !important;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 40% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {

View File

@ -291,12 +291,14 @@
background: #c8cfd5;
color: black;
width: 100%;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 100% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -885,12 +887,14 @@
background: #c8cfd5;
color: black;
width: 50%;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 65% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -1517,12 +1521,14 @@
background: #c8cfd5;
color: black;
width: 40%;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 50% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -2013,12 +2019,14 @@
background: #c8cfd5;
color: black;
width: 25% !important;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 40% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {

View File

@ -257,12 +257,14 @@
background: #c8cfd5;
color: black;
width: 100%;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 100% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -286,17 +288,7 @@
margin-right: 10px;
}
.bton_enreg {
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
text-align: center;
height: 2.5rem;
width: 100%;
color: white;
margin-left: 10px;
margin-right: 10px;
}
.bton_edit {
border-radius: 5rem;
@ -495,6 +487,18 @@
margin-bottom: 1rem !important;
}
.bton_create_login {
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
text-align: center;
height: 2.5rem;
width: 100%;
color: white;
margin-bottom: 1rem !important;
}
.bton_edit {
border-radius: 5rem;
font-size: small;
@ -830,12 +834,14 @@
background: #c8cfd5;
color: black;
width: 50%;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 65% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -859,17 +865,7 @@
margin-right: 10px;
}
.bton_enreg {
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
text-align: center;
height: 2.5rem;
width: 80%;
color: white;
margin-left: 10px;
margin-right: 10px;
}
.bton_edit {
border-radius: 5rem;
@ -1073,6 +1069,19 @@
margin-right: 10px;
min-width: 15rem;
}
.bton_create_login {
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
text-align: center;
height: 2.5rem;
width: 90%;
color: white;
margin-left: 10px;
margin-right: 10px;
min-width: 15rem;
}
.bton_edit {
border-radius: 5rem;
@ -1441,12 +1450,14 @@
background: #c8cfd5;
color: black;
width: 40%;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 50% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -1482,6 +1493,19 @@
margin-right: 10px;
}
.bton_create_login {
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
text-align: center;
height: 2.5rem;
width: 90%;
color: white;
margin-left: 10px;
margin-right: 10px;
}
.bton_edit {
border-radius: 5rem;
font-size: small;
@ -1906,12 +1930,14 @@
background: #c8cfd5;
color: black;
width: 25% !important;
height: 2rem !important;
}
.bton_import_excel {
background: #c8cfd5;
color: black;
width: 40% !important;
height: 2rem !important;
}
.div_row_gauche_etendu {
@ -2019,6 +2045,18 @@
margin-right: 10px;
}
.bton_create_login {
border-radius: 5rem;
font-size: small;
background: #81BC3A !important;
text-align: center;
height: 2.5rem;
width: 90%;
color: white;
margin-left: 10px;
margin-right: 10px;
}
.bton_edit {
border-radius: 5rem;
font-size: small;

View File

@ -1312,7 +1312,7 @@
}
.main_sub_div {
height: 280rem;
height: 350rem;
margin-left: auto;
margin-right: auto;
width: 90%;
@ -1787,7 +1787,7 @@
}
.main_sub_div {
min-height: 280rem;
min-height: 350rem;
margin-left: auto;
margin-right: auto;
width: 90%;