03/08/23 - 19h

recette2
cherif 2023-08-03 19:08:46 +02:00
parent 5b444f2379
commit 9713f00cf5
5 changed files with 2084 additions and 783 deletions

View File

@ -1803,6 +1803,7 @@ const AddParnerClient = (props) => {
Get_List_Contact_Of_client_Part();
setaddcontact("0");
setdatamodification_contact("")
alert(res.data.message);
@ -2524,19 +2525,19 @@ const AddParnerClient = (props) => {
{String(submenu).trim() === "submenu_contact" && <div className="training_data">
{String(addcontact) !== "1" && <div className="div_row" style={{ "marginLeft": "5px", "marginRight": "5px" }}>
<div className="div_row" onClick={Add_Contact} style={{ "cursor": "pointer" }}> <AiOutlineUserAdd /> Ajouter un contact </div>
<div className="div_row">
{String(addcontact) !== "1" && <div className="div_row" style={{ "marginLeft": "5px", "marginRight": "5px", "paddingRight":"10px" }}>
<div className="div_row" onClick={Add_Contact} > <AiOutlineUserAdd /> Ajouter un contact </div>
<div className="div_row scroll_mysy">
<div className="contact_grid">
{Get_List_Contact_Of_client_Part_result && String(Get_List_Contact_Of_client_Part_api) === "true" &&
Get_List_Contact_Of_client_Part_result.map((client) => (
<div id={String(JSON.parse(client).email)} onClick={Display_Part_Client_Contact}>
{String(JSON.parse(client).prenom)} &nbsp; {String(JSON.parse(client).nom)} <br />
fonction = {String(JSON.parse(client).fonction)} <br />
mail = {String(JSON.parse(client).email)} <br />
Tel = {String(JSON.parse(client).telephone)} <br />
{(JSON.parse(client).nom || JSON.parse(client).prenom) && <nav className="grid_title"> {String(JSON.parse(client).prenom)} &nbsp; {String(JSON.parse(client).nom)} </nav>}
{JSON.parse(client).fonction && <nav> {String(JSON.parse(client).fonction)} </nav> }
{JSON.parse(client).email && <nav> {String(JSON.parse(client).email)} </nav> }
{JSON.parse(client).telephone && <nav> {String(JSON.parse(client).telephone)} </nav>}
</div>

View File

@ -0,0 +1,927 @@
import React, { useState, useEffect, } from "react";
import { useForm } from "react-hook-form";
import { getCookie, setCookie } from 'react-use-cookie';
import Box from '@mui/material/Box';
import InputLabel from '@mui/material/InputLabel';
import InputAdornment from '@mui/material/InputAdornment';
import FormControl from '@mui/material/FormControl';
import TextField from '@mui/material/TextField';
import AccountCircle from '@mui/icons-material/AccountCircle';
import PhoneIcon from '@mui/icons-material/Phone'
import EmailIcon from '@mui/icons-material/Email'
import LanguageIcon from '@mui/icons-material/Language';
import HomeIcon from '@mui/icons-material/Home'
import { Button, Form, FormGroup, Label } from "reactstrap";
import PasswordIcon from '@mui/icons-material/Password'
import Visibility from '@mui/icons-material/Visibility';
import VisibilityOff from '@mui/icons-material/VisibilityOff';
import IconButton from '@mui/material/IconButton';
import OutlinedInput from '@mui/material/OutlinedInput';
import { useHistory } from "react-router-dom";
import TwitterIcon from '@mui/icons-material/Twitter';
import FacebookIcon from '@mui/icons-material/Facebook';
import LinkedInIcon from '@mui/icons-material/LinkedIn';
import axios from "axios";
import { ConsoleView } from "react-device-detect";
import MenuItem from '@mui/material/MenuItem';
const Partner_Securite_Data = (props) => {
const history = useHistory();
const [myApiResponse, setmyApiResponse] = useState("");
const [result, setResult] = useState("");
const [testval, settestval] = useState();
const [fields1desabled, setfields1desabled] = useState(true);
const [mailfieldsdesabled, setmailfieldsdesabled] = useState(true);
const [pwdfieldsdesabled, setpwdfieldsdesabled] = useState(true);
const [values, setValues] = React.useState({
password: '',
showPassword: false,
});
const [valuesPass1, setValuesPass1] = React.useState({
password1: '',
showPassword1: false,
});
const [valuesPass2, setValuesPass2] = React.useState({
password2: '',
showPassword2: false,
});
const [valuesPass3, setValuesPass3] = React.useState({
password3: '',
showPassword3: false,
});
const [currentpawdvisible, setcurrentpawdvisible] = useState(false);
const [newpawdvisible, setnewpawdvisible] = useState(false);
const [confpwdvisible, setconfpwdvisible] = useState(false);
const [updatemainmail, setupdatemainmail] = useState();
const [updatepwd, setupdatepwd] = useState();
function enablesecurtymailfields() {
document.getElementsByName("current_email")[0].disabled = false;
document.getElementsByName("current_email")[0].style.backgroundColor = "#FFFFFF";
document.getElementsByName("new_email")[0].disabled = false;
document.getElementsByName("new_email")[0].style.backgroundColor = "#FFFFFF";
document.getElementsByName("conf_new_email")[0].disabled = false;
document.getElementsByName("conf_new_email")[0].style.backgroundColor = "#FFFFFF";
setmailfieldsdesabled(false);
}
function desablesecurtymailfields() {
document.getElementsByName("current_email")[0].disabled = true;
document.getElementsByName("current_email")[0].style.backgroundColor = "#ECEFF1";
document.getElementsByName("current_email")[0].value = "";
document.getElementsByName("new_email")[0].disabled = true;
document.getElementsByName("new_email")[0].style.backgroundColor = "#ECEFF1";
document.getElementsByName("new_email")[0].value = "";
document.getElementsByName("conf_new_email")[0].disabled = true;
document.getElementsByName("conf_new_email")[0].style.backgroundColor = "#ECEFF1";
document.getElementsByName("conf_new_email")[0].value = "";
setmailfieldsdesabled(true);
}
const handleMouseDownPassword = (event) => {
event.preventDefault();
};
// recuperation et gestion du token utilisateur
const stored_user = getCookie('tokenmysypart');
if (!stored_user || stored_user.length <= 0) {
history.push("/PartnerLogin");
}
const handleClickShowPassword_current_pwd = () => {
var filtre2_value = document.getElementsByName("current_pwd")[0].value;
if (currentpawdvisible == false) {
document.getElementsByName("current_pwd")[0].type = "text";
setcurrentpawdvisible(true);
}
else if (currentpawdvisible == true) {
document.getElementsByName("current_pwd")[0].type = "password";
setcurrentpawdvisible(false);
}
};
const handleClickShowPassword_new_pwd = () => {
if (newpawdvisible == false) {
document.getElementsByName("new_pwd")[0].type = "text";
setnewpawdvisible(true);
}
else if (newpawdvisible == true) {
document.getElementsByName("new_pwd")[0].type = "password";
setnewpawdvisible(false);
}
};
const handleClickShowPassword_new_pwd_conf = () => {
if (confpwdvisible == false) {
document.getElementsByName("new_pwd_conf")[0].type = "text";
setconfpwdvisible(true);
}
else if (confpwdvisible == true) {
document.getElementsByName("new_pwd_conf")[0].type = "password";
setconfpwdvisible(false);
}
};
function handleChange1(prop) {
return (event) => {
setValuesPass1({ ...valuesPass1, [prop]: event.target.value });
};
}
function handleChange2(prop) {
return (event) => {
setValuesPass2({ ...valuesPass2, [prop]: event.target.value });
};
}
function handleChange3(prop) {
return (event) => {
setValuesPass3({ ...valuesPass3, [prop]: event.target.value });
};
}
function UpdatePartnerPwd() {
//setupdatepwd(false);
const url = process.env.REACT_APP_API_URL + "myclass/api/update_partner_pwd/";
const formData = new FormData();
formData.append('token', stored_user);
// Si le partenaire n'est pas connecté, il est renvoyé vers la page de connexion
if (!stored_user || stored_user.length <= 0) {
history.push("/PartnerLogin");
}
var pwd = document.getElementsByName("current_pwd")[0].value;
var new_pwd = document.getElementsByName("new_pwd")[0].value;
var conf_new_pwd = document.getElementsByName("new_pwd_conf")[0].value;
formData.append('pwd', pwd);
formData.append('new_pwd', new_pwd);
formData.append('conf_new_pwd', conf_new_pwd);
document.getElementsByName("identique")[0].style.backgroundColor = "white";
if (new_pwd !== conf_new_pwd) {
document.getElementsByName("identique")[0].style.backgroundColor = "red";
return;
}
document.getElementsByName("caractere")[0].style.backgroundColor = "white";
if (String(new_pwd).length < 8) {
document.getElementsByName("caractere")[0].style.backgroundColor = "red";
return
}
var regex = /\d/g;
document.getElementsByName("nombre")[0].style.backgroundColor = "white";
if (!regex.test(new_pwd)) {
document.getElementsByName("nombre")[0].style.backgroundColor = "red";
return
}
const specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/;
document.getElementsByName("special")[0].style.backgroundColor = "white";
if (!specialChars.test(new_pwd)) {
document.getElementsByName("special")[0].style.backgroundColor = "red";
return
}
fetch(
url,
{
method: 'POST',
body: formData,
}
)
.then((response) => response.json())
.then((result) => {
//console.log('Success:', result['message'], "result['status'] = ", result['status']);
setmyApiResponse(result['status']);
setResult(result['message']);
if (String(result['status']) == String("true")) {
setupdatepwd(true);
}
})
.catch((error) => {
console.error('Error:', error);
setmyApiResponse("false");
setupdatepwd(false);
});
}
function UpdatePartnerMail() {
setupdatemainmail(false);
const url = process.env.REACT_APP_API_URL + "myclass/api/update_partner_main_mail/";
const formData = new FormData();
formData.append('token', stored_user);
// Si le partenaire n'est pas connecté, il est renvoyé vers la page de connexion
if (!stored_user || stored_user.length <= 0) {
history.push("/PartnerLogin");
}
var mail = document.getElementsByName("current_email")[0].value;
var new_mail = document.getElementsByName("new_email")[0].value;
var conf_new_mail = document.getElementsByName("conf_new_email")[0].value;
formData.append('mail', mail);
formData.append('new_mail', new_mail);
formData.append('conf_new_mail', conf_new_mail);
fetch(
url,
{
method: 'POST',
body: formData,
}
)
.then((response) => response.json())
.then((result) => {
//console.log('Success:', result['message'], "result['status'] = ", result['status']);
setmyApiResponse(result['status']);
setResult(result['message']);
if (String(result['status']) == String("true")) {
setupdatemainmail(true);
}
})
.catch((error) => {
console.error('Error:', error);
setmyApiResponse("false");
setupdatemainmail(false);
});
}
function desablesecurtypwdfields() {
document.getElementsByName("current_pwd")[0].disabled = true;
document.getElementsByName("current_pwd")[0].style.backgroundColor = "#ECEFF1";
document.getElementsByName("current_pwd")[0].value = "";
document.getElementsByName("new_pwd")[0].disabled = true;
document.getElementsByName("new_pwd")[0].style.backgroundColor = "#ECEFF1";
document.getElementsByName("new_pwd")[0].value = "";
document.getElementsByName("new_pwd_conf")[0].disabled = true;
document.getElementsByName("new_pwd_conf")[0].style.backgroundColor = "#ECEFF1";
document.getElementsByName("new_pwd_conf")[0].value = "";
setpwdfieldsdesabled(true);
}
function enablesecurtypwdfields() {
document.getElementsByName("current_pwd")[0].disabled = false;
document.getElementsByName("current_pwd")[0].style.backgroundColor = "#FFFFFF";
document.getElementsByName("new_pwd")[0].disabled = false;
document.getElementsByName("new_pwd")[0].style.backgroundColor = "#FFFFFF";
document.getElementsByName("new_pwd_conf")[0].disabled = false;
document.getElementsByName("new_pwd_conf")[0].style.backgroundColor = "#FFFFFF";
setpwdfieldsdesabled(false);
}
function enablesecurtypwdfields() {
document.getElementsByName("current_pwd")[0].disabled = false;
document.getElementsByName("current_pwd")[0].style.backgroundColor = "#FFFFFF";
document.getElementsByName("new_pwd")[0].disabled = false;
document.getElementsByName("new_pwd")[0].style.backgroundColor = "#FFFFFF";
document.getElementsByName("new_pwd_conf")[0].disabled = false;
document.getElementsByName("new_pwd_conf")[0].style.backgroundColor = "#FFFFFF";
setpwdfieldsdesabled(false);
}
const [valuesconf_new_insert_key, setvaluesconf_new_insert_key] = React.useState({
password_insertconf_new_key: '',
showpassword_insertconf_new_key: false,
});
const [conf_new_insert_key_visible, setconf_new_insert_key_visible] = useState(false);
function handleChangeconf_new_insert_key(prop) {
return (event) => {
setvaluesconf_new_insert_key({ ...conf_new_insert_key_visible, [prop]: event.target.value });
};
}
function desablesecurtyInsertKeyfields() {
setinsert_key_updated();
document.getElementsByName("current_insert_key")[0].disabled = true;
document.getElementsByName("current_insert_key")[0].style.backgroundColor = "#ECEFF1";
document.getElementsByName("current_insert_key")[0].value = "";
document.getElementsByName("new_insert_key")[0].disabled = true;
document.getElementsByName("new_insert_key")[0].style.backgroundColor = "#ECEFF1";
document.getElementsByName("new_insert_key")[0].value = "";
document.getElementsByName("conf_new_insert_key")[0].disabled = true;
document.getElementsByName("conf_new_insert_key")[0].style.backgroundColor = "#ECEFF1";
document.getElementsByName("conf_new_insert_key")[0].value = "";
setinsert_keyfieldsdesabled(true);
}
function UpdatePartnerInsertKey() {
setinsert_key_updated();
const url = process.env.REACT_APP_API_URL + "myclass/api/update_partner_insert_key/";
const formData = new FormData();
formData.append('token', stored_user);
// Si le partenaire n'est pas connecté, il est renvoyé vers la page de connexion
if (!stored_user || stored_user.length <= 0) {
history.push("/PartnerLogin");
}
var current_key = document.getElementsByName("current_insert_key")[0].value;
var new_key = document.getElementsByName("new_insert_key")[0].value;
var conf_new_key = document.getElementsByName("conf_new_insert_key")[0].value;
document.getElementsByName("identique_insert_key")[0].style.backgroundColor = "white";
if (new_key !== conf_new_key) {
document.getElementsByName("identique_insert_key")[0].style.backgroundColor = "red";
return;
}
document.getElementsByName("caractere_insert_key")[0].style.backgroundColor = "white";
if (String(new_key).length < 8) {
document.getElementsByName("caractere_insert_key")[0].style.backgroundColor = "red";
return
}
var regex = /\d/g;
document.getElementsByName("nombre_insert_key")[0].style.backgroundColor = "white";
if (!regex.test(new_key)) {
document.getElementsByName("nombre_insert_key")[0].style.backgroundColor = "red";
return
}
const specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/;
document.getElementsByName("special_insert_key")[0].style.backgroundColor = "white";
if (!specialChars.test(new_key)) {
document.getElementsByName("special_insert_key")[0].style.backgroundColor = "red";
return
}
formData.append('current_insert_key', current_key);
formData.append('new_insert_key', new_key);
formData.append('conf_insert_key', conf_new_key);
fetch(
url,
{
method: 'POST',
body: formData,
}
)
.then((response) => response.json())
.then((result) => {
//console.log('Success:', result['message'], "result['status'] = ", result['status']);
setinsert_key_api(result['status']);
setinsert_key_api_message(result['message']);
if (String(result['status']) === String("true")) {
desablesecurtyInsertKeyfields();
document.getElementsByName("current_insert_key")[0].value = new_key;
setinsert_key_updated(true);
} else if (String(result['status']) === String("Err_Connexion")) {
alert('Erreur: ' + result['message']);
history.push("/Connexion");
}
})
.catch((error) => {
console.error('Error:', error);
setinsert_key_api("false");
setinsert_key_updated(false);
});
}
function enablesecurtyInsertKeyfields() {
setinsert_key_updated();
document.getElementsByName("current_insert_key")[0].disabled = false;
document.getElementsByName("current_insert_key")[0].style.backgroundColor = "#FFFFFF";
document.getElementsByName("new_insert_key")[0].disabled = false;
document.getElementsByName("new_insert_key")[0].style.backgroundColor = "#FFFFFF";
document.getElementsByName("conf_new_insert_key")[0].disabled = false;
document.getElementsByName("conf_new_insert_key")[0].style.backgroundColor = "#FFFFFF";
setinsert_keyfieldsdesabled(false);
}
const handleClickconf_new_insert_key = () => {
if (conf_new_insert_key_visible == false) {
document.getElementsByName("conf_new_insert_key")[0].type = "text";
setconf_new_insert_key_visible(true);
}
else if (conf_new_insert_key_visible == true) {
document.getElementsByName("conf_new_insert_key")[0].type = "password";
setconf_new_insert_key_visible(false);
}
};
const [insert_key_api, setinsert_key_api] = useState("");
const [insert_key_api_message, setinsert_key_api_message] = useState("");
const [insert_key_updated, setinsert_key_updated] = useState();
const [insert_keyfieldsdesabled, setinsert_keyfieldsdesabled] = useState(true);
// Gestion champs caché : Current_Insertion_Key
const [values_current_insert_key, setvalues_current_insert_key] = React.useState({
current_insert_key: '',
showCurrent_insert_key: false,
});
const [valuescurrent_insert_key, setvaluescurrent_insert_key] = React.useState({
password_insert_current_key: '',
showpassword_insert_current_key: false,
});
const [current_insert_key_visible, setcurrent_insert_key_visible] = useState(false);
function handleChange_current_insert_key(prop) {
return (event) => {
setvaluescurrent_insert_key({ ...current_insert_key_visible, [prop]: event.target.value });
};
}
const handleClickcurrent_insert_key = () => {
if (current_insert_key_visible == false) {
document.getElementsByName("current_insert_key")[0].type = "text";
setcurrent_insert_key_visible(true);
}
else if (current_insert_key_visible == true) {
document.getElementsByName("current_insert_key")[0].type = "password";
setcurrent_insert_key_visible(false);
}
};
// FIN Gestion champs caché : Current_Insertion_Key
// Gestion champs caché : new_Insertion_Key
const [values_new_insert_key, setvalues_new_insert_key] = React.useState({
new_insert_key: '',
shownew_insert_key: false,
});
const [valuesnew_insert_key, setvaluesnew_insert_key] = React.useState({
password_insert_new_key: '',
showpassword_insert_new_key: false,
});
const [new_insert_key_visible, setnew_insert_key_visible] = useState(false);
function handleChange_new_insert_key(prop) {
return (event) => {
setvaluesnew_insert_key({ ...new_insert_key_visible, [prop]: event.target.value });
};
}
const handleClicknew_insert_key = () => {
if (new_insert_key_visible == false) {
document.getElementsByName("new_insert_key")[0].type = "text";
setnew_insert_key_visible(true);
}
else if (new_insert_key_visible == true) {
document.getElementsByName("new_insert_key")[0].type = "password";
setnew_insert_key_visible(false);
}
};
useEffect(() => {
desablesecurtymailfields();
desablesecurtypwdfields();
desablesecurtyInsertKeyfields();
}, [])
return (
<div className="partner_client">
<div style={{ "width": "10%" }}> &nbsp;</div>
<div className="div_row_gauche">
<div className="titre1"> Mot de passe </div>
{updatepwd == false && <div className="koUpdateData">
Erreur mise à jour.
</div>
}
{updatepwd == true && <div className="okUpdateData">
La mise à jour été faite
</div>
}
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 } }}>
<FormControl sx={{ m: 1, width: '90%' }} variant="standard" size="small" className="texte_area_passwd">
<Label>Mot de passe actuel</Label>
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
<OutlinedInput
id="current_pwd"
name="current_pwd"
type={values.showPassword1 ? 'text' : 'password'}
value={values.password1}
onChange={handleChange1('password1')}
endAdornment={
<InputAdornment position="end">
<IconButton
aria-label="toggle password visibility"
onClick={handleClickShowPassword_current_pwd}
edge="end"
>
{currentpawdvisible ? <Visibility /> : <VisibilityOff />}
</IconButton>
</InputAdornment>
}
/>
</FormControl>
<FormControl sx={{ m: 1, width: '90%' }} variant="standard" size="small" className="texte_area_passwd">
<Label>Nouveau mot de passe</Label>
<InputLabel htmlFor="outlined-adornment-password2"></InputLabel>
<OutlinedInput
id="new_pwd"
name="new_pwd"
type={values.showPassword ? 'text' : 'password'}
value={values.password2}
onChange={handleChange2('password2')}
endAdornment={
<InputAdornment position="end">
<IconButton
aria-label="toggle password visibility"
onClick={handleClickShowPassword_new_pwd}
edge="end"
>
{newpawdvisible ? <Visibility /> : <VisibilityOff />}
</IconButton>
</InputAdornment>
}
/>
</FormControl>
<FormControl sx={{ m: 1, width: '90%' }} variant="standard" size="small" className="texte_area_passwd">
<Label>Confirmation du nouveau mot de passe</Label>
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
<OutlinedInput
id="new_pwd_conf"
name="new_pwd_conf"
type={values.showPassword ? 'text' : 'password'}
value={values.password3}
onChange={handleChange3('password3')}
endAdornment={
<InputAdornment position="end">
<IconButton
aria-label="toggle password visibility"
onClick={handleClickShowPassword_new_pwd_conf}
onMouseDown={handleMouseDownPassword}
edge="end"
>
{confpwdvisible ? <Visibility /> : <VisibilityOff />}
</IconButton>
</InputAdornment>
}
/>
</FormControl>
<div className="text_pwd_crit">
Créez un mot de passe contenant au moins :
<ul>
<li name="caractere">
8 caractères
</li>
<li name="nombre">
1 nombre
</li>
<li name="special">
1 caractère spécial p. ex., $, !, @, %, &
</li>
<li name="identique">
Identiques
</li>
</ul>
</div>
<div className="div_row22" style={{ "textAlign": "left" }}>
{pwdfieldsdesabled == false && <div className="div_row" style={{ "textAlign": "left" }} >
<div className="div_row_gauche">
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={UpdatePartnerPwd}>Enregistrer</Button>
</div>
<div className="div_row_droite">
<Button variant="contained" color="success" className="div_row22 btn_modif " onClick={desablesecurtypwdfields}>Annuler</Button>
</div>
</div>
}
{pwdfieldsdesabled == true &&
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={enablesecurtypwdfields}>Editer</Button>
}
</div>
</Box>
</div>
<div className="div_row_droite">
<div className="titre1"> Emails contact </div>
{updatemainmail === false && <div className="koUpdateData">
Erreur mise à jour.
</div>
}
{updatemainmail === true && <div className="okUpdateData">
La mise à jour été faite
</div>
}
<TextField
name="current_email"
label="Adresse mail"
sx={{ m: 1, width: '90%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<EmailIcon />
</InputAdornment>
),
}}
variant="standard"
/>
<br />
<TextField
name="new_email"
label="Nouvelle Adresse mail"
sx={{ m: 1, width: '90%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<EmailIcon />
</InputAdornment>
),
}}
variant="standard"
/>
<br />
<TextField
name="conf_new_email"
label="Confirmation mail"
sx={{ m: 1, width: '90%' }}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<EmailIcon />
</InputAdornment>
),
}}
variant="standard"
/>
<div className="text_pwd_crit">
&nbsp;
<ul style={{ "listStyleType": "none" }}>
<li>
&nbsp;
</li>
<li>
&nbsp;
</li>
<li>
&nbsp;
</li>
<li>
&nbsp;
</li>
</ul>
</div>
{mailfieldsdesabled == false && <div className="div_row" >
<div className="div_row_gauche" >
<Button variant="contained" color="success" className="div_row22 btn_enreg " style={{ "marginTop": "0px" }} onClick={UpdatePartnerMail}>Enregistrer</Button>
</div>
<div className="div_row_droite">
<Button variant="contained" color="success" className="div_row22 btn_modif" style={{ "marginTop": "0px" }} onClick={desablesecurtymailfields}>Annuler</Button>
</div>
</div>
}
{mailfieldsdesabled == true && <div className="div_row22" style={{ "textAlign": "right" }}>
<Button variant="contained" color="success" className="div_row22 btn_modif" style={{ "marginTop": "0px", }} onClick={enablesecurtymailfields}>Editer</Button>
</div>
}
</div>
<div style={{ "width": "10%" }}> &nbsp;</div>
<div style={{ "width": "100%", "float": "left", "marginBottom": "2rem" }}>
<div style={{ "width": "48%", "float": "left" }}>
<div className="titre1"> Clé de rattachement </div>
{insert_key_updated === false && <div className="koUpdateData">
Erreur mise à jour {setinsert_key_api_message}
</div>
}
{insert_key_updated === true && <div className="okUpdateData">
La clé a été correctement mise à jour
</div>
}
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 } }} >
<FormControl sx={{ m: 1, width: '90%' }} variant="standard" size="small" className="texte_area_passwd">
<Label>Clé de rattachement actuelle</Label>
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
<OutlinedInput
id="current_insert_key"
name="current_insert_key"
type={values.current_insert_key ? 'text' : 'password'}
value={values.current_insert_key}
onChange={handleChange_current_insert_key('current_insert_key')}
endAdornment={
<InputAdornment position="end">
<IconButton
aria-label="toggle password visibility"
onClick={handleClickcurrent_insert_key}
edge="end"
>
{current_insert_key_visible ? <Visibility /> : <VisibilityOff />}
</IconButton>
</InputAdornment>
}
/>
</FormControl>
<FormControl sx={{ m: 1, width: '90%' }} variant="standard" size="small" className="texte_area_passwd">
<Label>Nouvelle clé de rattachement</Label>
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
<OutlinedInput
id="new_insert_key"
name="new_insert_key"
type={values.new_insert_key ? 'text' : 'password'}
value={values.new_insert_key}
onChange={handleChange_new_insert_key('current_insert_key')}
endAdornment={
<InputAdornment position="end">
<IconButton
aria-label="toggle password visibility"
onClick={handleClicknew_insert_key}
edge="end"
>
{new_insert_key_visible ? <Visibility /> : <VisibilityOff />}
</IconButton>
</InputAdornment>
}
/>
</FormControl>
<FormControl sx={{ m: 1, width: '90%' }} variant="standard" size="small" className="texte_area_passwd">
<Label>Confirmation nouvelle clé de rattachement</Label>
<InputLabel htmlFor="outlined-adornment-password"></InputLabel>
<OutlinedInput
id="conf_new_insert_key"
name="conf_new_insert_key"
type={values.new_insert_key ? 'text' : 'password'}
value={values.new_insert_key}
onChange={handleChangeconf_new_insert_key('conf_current_insert_key')}
endAdornment={
<InputAdornment position="end">
<IconButton
aria-label="toggle password visibility"
onClick={handleClickconf_new_insert_key}
edge="end"
>
{conf_new_insert_key_visible ? <Visibility /> : <VisibilityOff />}
</IconButton>
</InputAdornment>
}
/>
</FormControl>
<div className="text_pwd_crit">
Créez un mot de passe contenant au moins :
<ul>
<li name="caractere_insert_key">
8 caractères
</li>
<li name="nombre_insert_key">
1 nombre
</li>
<li name="special_insert_key">
1 caractère spécial p. ex., $, !, @, %, &
</li>
<li name="identique_insert_key">
Identiques
</li>
</ul>
</div>
<div className="div_row22">
{insert_keyfieldsdesabled == false && <div className="div_row">
<div className="div_row_gauche">
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={UpdatePartnerInsertKey}>Enregistrer</Button>
</div>
<div className="div_row_droite">
<Button variant="contained" color="success" className="div_row22 btn_modif " onClick={desablesecurtyInsertKeyfields}>Annuler</Button>
</div>
</div>
}
{insert_keyfieldsdesabled == true &&
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={enablesecurtyInsertKeyfields}>Editer</Button>
}
</div>
</Box>
</div>
<div style={{ "width": "48%", "float": "right" }}>
&nbsp;
</div>
</div>
</div>
)
}
export default Partner_Securite_Data;

File diff suppressed because it is too large Load Diff

View File

@ -183,6 +183,14 @@
background-color: #104277;
color: white;
}
.scroll_mysy {
overflow-y: auto;
max-height: 20rem;
overflow-y: visible;
overflow-y: scroll;
padding-right: 1rem !important;
}
}
@ -191,30 +199,37 @@
margin-left: 10px !important;
display: grid;
height: 200px;
//grid-template: repeat(2, 1fr) / repeat(2, 1fr);
grid-template-columns: auto auto auto auto;
gap: 20px 10px;
}
.contact_grid>div {
display: inline-block;
color: #444;
border: 1px solid #CCC;
background: #DDD;
background: #1976d2;
box-shadow: 1px 1px 10px 1px rgb(0 0 0 / 15%);
cursor: pointer;
vertical-align: middle;
padding: 5px;
padding: 10px;
text-align: left;
color: #fff;
border-radius: 10px;
font-size: small;
}
.grid_title {
font-weight: bold;
font-size: small;
letter-spacing: 2px;
}
.contact_grid>div:hover {
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%);
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 50%);
}
.detail_activite {
display: inline-block;
color: #444;
border: 1px solid #CCC;
@ -243,4 +258,8 @@
padding-left: 5px !important;
padding-right: 5px !important;
}
.css-1jy569b-MuiFormLabel-root-MuiInputLabel-root {
margin-left: 0px !important;
}
}

View File

@ -127,6 +127,82 @@
width: 100%;
text-align: center;
}
.div_row_gauche_image {
float: left;
//border:0px solid black;
border-width: 0.01rem;
border-radius: 1rem;
text-align: left;
}
.div_row_droite_image {
float: left;
//border:0px solid black;
border-width: 0.01rem;
border-radius: 1rem;
text-align: left;
font-family: "verdana", "Quicksand", "Signika", sans-serif;
font-size: small;
padding-left: 0.2rem;
}
.tips_img_class {
font-size: smaller;
font-style: italic;
margin-left: 1rem !important;
text-align: left;
float: left;
width: 100%;
padding-right: 10px;
}
.img_class_logo {
display: block;
width: 128px;
height: 128px;
border-radius: 10px !important;
border: 1px solid black;
float: left;
}
.bton_supprime_image_class {
font-size: small;
text-align: center;
margin-left: 0px;
box-shadow: 1px 1px 10px 1px rgb(0 0 0 / 15%);
padding: 5px;
padding-left: 10px;
padding-right: 10px;
border: 1px solid rgb(194, 186, 186);
border-radius: 10px;
background: white;
color: red;
margin-top: 0.5rem;
width: 10rem;
cursor: pointer;
}
.bton_supprime_image_class:hover {
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%);
}
.bton_image_class {
font-size: small;
text-align: center;
margin-left: 0px;
box-shadow: 1px 1px 10px 1px rgb(0 0 0 / 15%);
padding: 5px;
padding-left: 10px;
padding-right: 10px;
border: 1px solid rgb(194, 186, 186);
border-radius: 10px;
width: 10rem;
}
.bton_image_class:hover {
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%);
}
}
@media only screen and (min-width: 601px) and (max-width: 991px) {
@ -237,7 +313,7 @@
float: left;
//border:0px solid black;
border-width: 0.01rem;
width: 48%;
width: 100%;
border-radius: 1rem;
//border-right: solid;
border-radius: 0%;
@ -246,7 +322,82 @@
.div_row_droite {
float: right;
border-width: 0.01rem;
width: 48%;
width: 100%;
}
.div_row_gauche_image {
float: left;
//border:0px solid black;
border-width: 0.01rem;
border-radius: 1rem;
text-align: left;
}
.div_row_droite_image {
float: left;
//border:0px solid black;
border-width: 0.01rem;
border-radius: 1rem;
text-align: left;
font-family: "verdana", "Quicksand", "Signika", sans-serif;
font-size: small;
padding-left: 0.2rem;
}
.tips_img_class {
font-size: small;
font-style: italic;
margin-left: 1rem !important;
text-align: left;
float: left;
width: 100%;
}
.img_class_logo {
display: block;
width: 168px;
height: 168px;
border-radius: 10px !important;
border: 1px solid black;
float: left;
}
.bton_supprime_image_class {
font-size: small;
text-align: center;
margin-left: 0px;
box-shadow: 1px 1px 10px 1px rgb(0 0 0 / 15%);
padding: 5px;
padding-left: 10px;
padding-right: 10px;
border: 1px solid rgb(194, 186, 186);
border-radius: 10px;
background: white;
color: red;
margin-top: 0.5rem;
width: 15rem;
cursor: pointer;
}
.bton_supprime_image_class:hover {
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%);
}
.bton_image_class {
font-size: small;
text-align: center;
margin-left: 0px;
box-shadow: 1px 1px 10px 1px rgb(0 0 0 / 15%);
padding: 5px;
padding-left: 10px;
padding-right: 10px;
border: 1px solid rgb(194, 186, 186);
border-radius: 10px;
width: 15rem;
}
.bton_image_class:hover {
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%);
}
}
@ -357,7 +508,7 @@
float: left;
//border:0px solid black;
border-width: 0.01rem;
width: 48%;
width: 46%;
border-radius: 1rem;
//border-right: solid;
border-radius: 0%;
@ -366,7 +517,82 @@
.div_row_droite {
float: right;
border-width: 0.01rem;
width: 48%;
width: 46%;
}
.div_row_gauche_image {
float: left;
//border:0px solid black;
border-width: 0.01rem;
border-radius: 1rem;
text-align: left;
}
.div_row_droite_image {
float: left;
//border:0px solid black;
border-width: 0.01rem;
border-radius: 1rem;
text-align: left;
font-family: "verdana", "Quicksand", "Signika", sans-serif;
font-size: small;
padding-left: 0.2rem;
}
.tips_img_class {
font-size: small;
font-style: italic;
margin-left: 1rem !important;
text-align: left;
float: left;
width: 100%;
}
.img_class_logo {
display: block;
width: 168px;
height: 168px;
border-radius: 10px !important;
border: 1px solid black;
float: left;
}
.bton_supprime_image_class {
font-size: small;
text-align: center;
margin-left: 0px;
box-shadow: 1px 1px 10px 1px rgb(0 0 0 / 15%);
padding: 5px;
padding-left: 10px;
padding-right: 10px;
border: 1px solid rgb(194, 186, 186);
border-radius: 10px;
background: white;
color: red;
margin-top: 0.5rem;
width: 15rem;
cursor: pointer;
}
.bton_supprime_image_class:hover {
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%);
}
.bton_image_class {
font-size: small;
text-align: center;
margin-left: 0px;
box-shadow: 1px 1px 10px 1px rgb(0 0 0 / 15%);
padding: 5px;
padding-left: 10px;
padding-right: 10px;
border: 1px solid rgb(194, 186, 186);
border-radius: 10px;
width: 15rem;
}
.bton_image_class:hover {
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%);
}
}
@ -384,6 +610,7 @@
font-family: "verdana", "Quicksand", "Signika", sans-serif;
margin: 0.4rem !important;
margin-top: 0px !important;
margin-bottom: 1.5rem !important;
}
.texte_area_adress {
@ -392,6 +619,7 @@
font-size: x-small !important;
font-family: "verdana", "Quicksand", "Signika", sans-serif;
margin: 0.4rem !important;
margin-bottom: 1.5rem !important;
}
.texte_area_passwd {
@ -400,6 +628,7 @@
font-size: x-small !important;
font-family: "verdana", "Quicksand", "Signika", sans-serif;
margin: 0.4rem !important;
margin-bottom: 1.5rem !important;
}
@ -407,7 +636,6 @@
font-family: "Quicksand", "Signika", sans-serif;
font-size: medium;
text-align: center;
margin-bottom: 0.3rem;
color: white;
cursor: pointer;
font-style: italic;
@ -415,6 +643,8 @@
font-weight: normal;
float: left;
width: 100%;
margin-bottom: 1.5rem;
}
.semi_hr_gauche {
@ -581,6 +811,40 @@
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%);
}
// added on 03/08/23
.detail_submenu {
background: #d8edfc;
border-radius: 15px;
margin-right: 1rem;
padding: 0.3rem;
margin-bottom: 0.5rem;
min-width: 10rem;
text-align: center;
border: 1px solid #9cf;
color: #3b3e40;
font-family: "verdana", "Quicksand", "Signika", sans-serif;
font-size: small;
letter-spacing: 0.1rem;
font-weight: normal;
}
.detail_submenu:hover,
.detail_submenu:focus,
.detail_submenu:active,
.detail_submenu:checked {
background-color: #104277;
color: white;
}
.scroll_mysy {
overflow-y: auto;
max-height: 20rem;
overflow-y: visible;
overflow-y: scroll;
padding-right: 1rem !important;
}
}
.css-mnn31 {