26/11/22 - 10h30

recette2
cherif 2022-11-26 10:57:10 +01:00
parent f5968a560d
commit 1f58e67d7b
14 changed files with 355 additions and 91 deletions

View File

@ -18,6 +18,7 @@ import Footer from "./Fotter";
import Header from "./Header"; import Header from "./Header";
import UpgradeToPro from "./UpgradeToPro" import UpgradeToPro from "./UpgradeToPro"
import Profil_Objectif from "./ProfilObjectif"; import Profil_Objectif from "./ProfilObjectif";
import { useLocation } from "react-router-dom";
function Account() { function Account() {
const [menu, setmenu] = useState("affichage"); const [menu, setmenu] = useState("affichage");
@ -43,7 +44,7 @@ function Account() {
const formData = new FormData(); const formData = new FormData();
//alert("stored_user = "+stored_user); //alert("stored_user = "+stored_user);
const location = useLocation();
useEffect(() => { useEffect(() => {
getImage(); getImage();
@ -71,6 +72,13 @@ function Account() {
fetchData(); fetchData();
if (location && location.state && location.state.menu) {
displayProfil_Objectif();
}
}, []); }, []);
const [myimage, setmyimage] = useState(); const [myimage, setmyimage] = useState();

View File

@ -580,7 +580,7 @@ Si non, on utilise le formumaire de mysy,.
<div className="description detail_element"> <div className="description detail_element">
<b className="sous_titre">Descriptions </b> {DetailTraining["description"] && <b className="sous_titre">Descriptions </b> {DetailTraining["description"] &&
<p style={{ "fontSize": "smal", "marginTop": "1rem" }}> <p style={{ "fontSize": "smal", "marginTop": "0.3rem" }}>
{parse(String(DetailTraining["description"]))} {parse(String(DetailTraining["description"]))}
</p>} </p>}
@ -590,9 +590,8 @@ Si non, on utilise le formumaire de mysy,.
{DetailTraining["objectif"] && <div className="description detail_element"> {DetailTraining["objectif"] && <div className="description detail_element">
<b className="sous_titre">Objectif </b> <b className="sous_titre">Objectif </b>
<p> <p style={{ "fontSize": "smal", "marginTop": "0.3rem" }}>
{parse(String(DetailTraining["objectif"]))} &nbsp; laa {parse(String(DetailTraining["objectif"]))} &nbsp;
{String(DetailTraining["objectif"]).length}
</p> </p>
</div>} </div>}
@ -600,7 +599,7 @@ Si non, on utilise le formumaire de mysy,.
<br /> <br />
{DetailTraining["prerequis"] && <div className="description detail_element"> {DetailTraining["prerequis"] && <div className="description detail_element">
<b className="sous_titre">Pré-requis </b> {DetailTraining["prerequis"] && <b className="sous_titre">Pré-requis </b> {DetailTraining["prerequis"] &&
<p> <p style={{ "fontSize": "smal", "marginTop": "0.3rem" }}>
{parse(String(DetailTraining["prerequis"]))} &nbsp; {parse(String(DetailTraining["prerequis"]))} &nbsp;
</p>} </p>}
{!DetailTraining["prerequis"] && <p style={{ "fontStyle": "italic" }}> {!DetailTraining["prerequis"] && <p style={{ "fontStyle": "italic" }}>
@ -611,7 +610,7 @@ Si non, on utilise le formumaire de mysy,.
{DetailTraining["pourqui"] && <div className="description detail_element"> {DetailTraining["pourqui"] && <div className="description detail_element">
<b className="sous_titre">Pour Qui </b> {DetailTraining["pourqui"] && <b className="sous_titre">Pour Qui </b> {DetailTraining["pourqui"] &&
<p> <p style={{ "fontSize": "smal", "marginTop": "0.3rem" }}>
{parse(String(DetailTraining["pourqui"]))} &nbsp; {parse(String(DetailTraining["pourqui"]))} &nbsp;
</p>} </p>}
{!DetailTraining["pourqui"] && <p style={{ "fontStyle": "italic" }}> {!DetailTraining["pourqui"] && <p style={{ "fontStyle": "italic" }}>
@ -624,7 +623,7 @@ Si non, on utilise le formumaire de mysy,.
{DetailTraining["programme"] && <div className="description detail_element"> {DetailTraining["programme"] && <div className="description detail_element">
<b className="sous_titre">Programme </b> <b className="sous_titre">Programme </b>
{DetailTraining["programme"] && <p style={{ "fontSize": "small", "marginTop": "1rem" }}> {DetailTraining["programme"] && <p style={{ "fontSize": "small", "marginTop": "0.3rem" }}>
{parse(String(DetailTraining["programme"]))} &nbsp; {parse(String(DetailTraining["programme"]))} &nbsp;
</p>} </p>}
{!DetailTraining["programme"] && <p style={{ "fontStyle": "italic" }}> {!DetailTraining["programme"] && <p style={{ "fontStyle": "italic" }}>
@ -636,7 +635,7 @@ Si non, on utilise le formumaire de mysy,.
{DetailTraining["plus_produit"] && <div className="description detail_element"> {DetailTraining["plus_produit"] && <div className="description detail_element">
<b className="sous_titre">Points forts </b> <b className="sous_titre">Points forts </b>
{DetailTraining["plus_produit"] && {DetailTraining["plus_produit"] &&
<p style={{ "fontSize": "small", "marginTop": "1rem" }}> <p style={{ "fontSize": "small", "marginTop": "0.3rem" }}>
{parse(String(DetailTraining["plus_produit"]))} &nbsp; {parse(String(DetailTraining["plus_produit"]))} &nbsp;
</p>} </p>}

View File

@ -11,6 +11,8 @@ import { AiOutlineEdit } from "react-icons/ai";
import { getCookie } from 'react-use-cookie'; import { getCookie } from 'react-use-cookie';
import parse from 'html-react-parser'; import parse from 'html-react-parser';
import UpdateUserGoals from './UpdateUserGoals'; import UpdateUserGoals from './UpdateUserGoals';
import { IoCloseCircleOutline, IoAddCircleOutline } from "react-icons/io5";
function DisplayUserGoals(props) { function DisplayUserGoals(props) {
const columns = [ const columns = [
@ -44,6 +46,8 @@ function DisplayUserGoals(props) {
function handleClick(event, cellValues) { function handleClick(event, cellValues) {
Editobjectif(event, cellValues); Editobjectif(event, cellValues);
setaddnewgoals("");
setopenclosebton(true);
//console.log(cellValues); //console.log(cellValues);
} }
@ -53,7 +57,7 @@ function DisplayUserGoals(props) {
function Editobjectif(event, cellValues) { function Editobjectif(event, cellValues) {
setrefobjtoupdate(cellValues.row.name); setrefobjtoupdate(cellValues.row.name);
setupdateobjectif(true); setupdateobjectif(true);
//alert(" traitement de "+cellValues.row.name); //alert(" traitement de "+cellValues.row.name);
} }
@ -100,19 +104,56 @@ function DisplayUserGoals(props) {
function closeUpdateUserGoals() { function closeUpdateUserGoals() {
setupdateobjectif(false); setupdateobjectif(false);
setaddnewgoals("");
setupdateobjectif(false);
setopenclosebton(false);
} }
const [addnewgoals, setaddnewgoals] = useState("");
const [openclosebton, setopenclosebton] = useState(false);
function handleAddGoal() {
setaddnewgoals("1");
setupdateobjectif(false);
setopenclosebton(true);
}
function closehandleAddGoal() {
setaddnewgoals("");
setupdateobjectif(false);
}
return ( return (
<div className="displayusergoals"> <div className="displayusergoals">
{updateobjectif && <div> {updateobjectif && <div>
<UpdateUserGoals name_obj={refobjtoupdate}/> <UpdateUserGoals name_obj={refobjtoupdate} />
<br />
<button onClick={closeUpdateUserGoals}> Fermer </button>
<br />
</div>} </div>}
{String(addnewgoals) === "1" && <div>
<UpdateUserGoals />
</div>}
<div className="div_row">
<div style={{ "width": "100%", "float": "left", "marginBottom": "0.5rem" }}>
<div className="div_row_gauche" > &nbsp; </div>
<div className="div_row_droite" style={{ "textAlign": "right" }}>
{!openclosebton && <Button variant="contained" color="success" className="bton_ajouter_obj"
onClick={handleAddGoal}>Ajouter un objectif &nbsp; &nbsp;{<IoAddCircleOutline />}</Button>}
{openclosebton && <Button variant="contained" color="success" className="bton_annnule" onClick={closeUpdateUserGoals}> Fermer <IoCloseCircleOutline />
</Button>}
</div>
</div>
</div>
{String(listgoals_api) === "true" && {String(listgoals_api) === "true" &&
<div style={{ height: 700, width: '100%' }}> <div style={{ height: 700, width: '100%' }}>

View File

@ -2,25 +2,31 @@ import React, { useState, useEffect } from "react";
import { useForm } from "react-hook-form"; import { useForm } from "react-hook-form";
import { useHistory } from "react-router-dom"; import { useHistory } from "react-router-dom";
import { Helmet } from "react-helmet"; import { Helmet } from "react-helmet";
import DisplayUserGoals from "./DisplayUserGoals"; import DisplayUserGoals from "./DisplayUserGoals";
import { IoCloseCircleOutline, IoAddCircleOutline } from "react-icons/io5";
import { Button, Form, FormGroup, Label } from "reactstrap";
import UpdateUserGoals from "./UpdateUserGoals";
function ProfilObjectif() { function ProfilObjectif() {
const history = useHistory(); const history = useHistory();
return ( return (
<div className="profilobjectif"> <div className="profilobjectif">
<h3> En cours de construction </h3> <h3> En cours de construction </h3>
<div className="div_row"> <div className="div_row">
<nav className="titre1"> Liste des profils </nav> <nav className="titre1"> Liste des profils </nav>
</div> </div>
<hr /> <hr />
<div className="div_row"> <div className="div_row">
<nav className="titre1"> Liste des objectifs </nav> <br /> <nav className="titre1"> Liste des objectifs </nav> <br />
<DisplayUserGoals /> <DisplayUserGoals />
</div> </div>

View File

@ -1,4 +1,4 @@
import React, { useState, useEffect, } from "react"; import React, { useRef, useState, useEffect, } from "react";
import { useForm } from "react-hook-form"; import { useForm } from "react-hook-form";
import { Button, } from "reactstrap"; import { Button, } from "reactstrap";
import axios from "axios"; import axios from "axios";
@ -10,17 +10,25 @@ import TextField from '@mui/material/TextField';
import AccountCircle from '@mui/icons-material/AccountCircle'; import AccountCircle from '@mui/icons-material/AccountCircle';
import moment from "moment"; import moment from "moment";
import { getCookie } from 'react-use-cookie'; import { getCookie } from 'react-use-cookie';
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
import { useHistory } from "react-router-dom";
import { format } from 'date-fns';
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { Editor } from '@tinymce/tinymce-react';
function UpdateUserGoals(props) { function UpdateUserGoals(props) {
//alert(" UpdateUserGoals "+props.name_obj);
const [fields1desabled, setfields1desabled] = useState(true); const [fields1desabled, setfields1desabled] = useState(true);
const url = process.env.REACT_APP_API_URL + "myclass/api/add_update_user_objectif/"; const url = process.env.REACT_APP_API_URL + "myclass/api/add_update_user_objectif/";
const [defaultdate, setdefaultdate] = useState(new Date().setDate(new Date().getDate() + 10)); const [defaultdate, setdefaultdate] = useState(new Date().setDate(new Date().getDate() + 10));
const [mindate, setmindate] = useState(new Date().setDate(new Date().getDate() + 10)); const [mindate, setmindate] = useState(new Date().setDate(new Date().getDate() + 1));
const history = useHistory();
const editorRef_description = useRef(null);
const [datamodification, setdatamodification] = useState("0");
const [field_description, setfield_description] = useState("");
useEffect(() => { useEffect(() => {
@ -30,8 +38,7 @@ function UpdateUserGoals(props) {
function cleanField() { function cleanField() {
document.getElementsByName("name")[0].value = ""; document.getElementsByName("name")[0].value = "";
document.getElementById("description").value = "";
document.getElementsByName("date_souhaite")[0].value = { defaultdate };
document.getElementsByName("domaine")[0].value = ""; document.getElementsByName("domaine")[0].value = "";
document.getElementsByName("niveau")[0].value = ""; document.getElementsByName("niveau")[0].value = "";
} }
@ -39,22 +46,27 @@ function UpdateUserGoals(props) {
const [recorddata_api, setrecorddata_api] = useState(); const [recorddata_api, setrecorddata_api] = useState();
const [recorddata_api_message, setrecorddata_api_message] = useState(); const [recorddata_api_message, setrecorddata_api_message] = useState();
const [recorddata_api_result, setrecorddata_api_result] = useState([]); const [recorddata_api_result, setrecorddata_api_result] = useState([]);
function RecordData() { function RecordData() {
const formData = new FormData(); const formData = new FormData();
const url = process.env.REACT_APP_API_URL + "myclass/api/add_update_user_objectif/"; const url = process.env.REACT_APP_API_URL + "myclass/api/add_update_user_objectif/";
var name = document.getElementsByName("name")[0].value; var name = document.getElementsByName("name")[0].value;
var description = document.getElementsByName("description")[0].value; var date_souhaite = format(StartDate, 'dd/MM/yyyy')
var date_souhaite = document.getElementsByName("date_souhaite")[0].value;
var domaine = document.getElementsByName("domaine")[0].value; var domaine = document.getElementsByName("domaine")[0].value;
var niveau = document.getElementsByName("niveau")[0].value; var niveau = document.getElementsByName("niveau")[0].value;
var description_new = "";
if (editorRef_description.current) {
description_new = editorRef_description.current.getContent();
}
const stored_cookie = getCookie('tokenmysych'); const stored_cookie = getCookie('tokenmysych');
formData.append('token', stored_cookie); formData.append('token', stored_cookie);
formData.append('name', name); formData.append('name', name);
formData.append('description', description); formData.append('description', description_new);
formData.append('date_souhaite', date_souhaite); formData.append('date_souhaite', date_souhaite);
formData.append('domaine', domaine); formData.append('domaine', domaine);
formData.append('niveau', niveau); formData.append('niveau', niveau);
@ -71,7 +83,15 @@ function UpdateUserGoals(props) {
console.log('Success:', result['message'], "result['status'] = ", result['status']); console.log('Success:', result['message'], "result['status'] = ", result['status']);
if (String(result['status']) === String("true")) { if (String(result['status']) === String("true")) {
setrecorddata_api("true"); setrecorddata_api("true");
setrecorddata_api_result(result['message']) setrecorddata_api_result(result['message']);
history.push({
pathname: "/mysy-user-account/",
state: {
menu: "profil_objectif"
}
});
{ window.location.reload() }
} }
else { else {
@ -122,9 +142,9 @@ function UpdateUserGoals(props) {
} }
if (mylocalobj.description) { if (mylocalobj.description) {
document.getElementById("description").value = mylocalobj.description;
//document.getElementById("description").disabled = true;
//document.getElementById("description").style.backgroundColor = "#ECEFF1"; setfield_description(mylocalobj.description);
} }
if (mylocalobj.domaine) { if (mylocalobj.domaine) {
@ -134,22 +154,16 @@ function UpdateUserGoals(props) {
} }
if (mylocalobj.date_souhaite) { if (mylocalobj.date_souhaite) {
//alert("mylocalobj.date_souhaite = "+mylocalobj.date_souhaite);
var al = moment(mylocalobj.date_souhaite).format('YYYY-DD-MM'); var va = new Date(moment(mylocalobj.date_souhaite, "DD/MM/YYYY"))
//alert(" AL = "+al); setStartDate(va);
document.getElementsByName("date_souhaite")[0].value = al;
//document.getElementsByName("date_souhaite")[0].disabled = true;
//document.getElementsByName("date_souhaite")[0].style.backgroundColor = "#ECEFF1";
} }
if (mylocalobj.domaine) {
document.getElementsByName("domaine")[0].value = mylocalobj.domaine;
document.getElementsByName("domaine")[0].disabled = true;
document.getElementsByName("domaine")[0].style.backgroundColor = "#ECEFF1";
}
if (mylocalobj.niveau) { if (mylocalobj.niveau) {
document.getElementsByName("niveau")[0].value = mylocalobj.date_souhaite; document.getElementsByName("niveau")[0].value = mylocalobj.niveau;
document.getElementsByName("niveau")[0].disabled = true; document.getElementsByName("niveau")[0].disabled = true;
document.getElementsByName("niveau")[0].style.backgroundColor = "#ECEFF1"; document.getElementsByName("niveau")[0].style.backgroundColor = "#ECEFF1";
} }
@ -170,24 +184,88 @@ function UpdateUserGoals(props) {
}).catch((error) => { }).catch((error) => {
console.warn('getGolData : Not good man :( mysearchtext = '); console.warn('getGolData : Not good man :( mysearchtext = ', error);
setgetGolData_api("false"); setgetGolData_api("false");
}) })
} }
const [fiedsupdated, setfiedsupdated] = useState(false);
function updateBox() { function updateBox() {
setfields1desabled(false); setfiedsupdated(true);
} }
const [editfields, seteditfields] = useState(false);
function enablefieds1() {
document.getElementsByName("domaine")[0].disabled = false;
document.getElementsByName("niveau")[0].disabled = false;
document.getElementsByName("domaine")[0].style.background = "#fff";
document.getElementsByName("niveau")[0].style.background = "#fff";
seteditfields(true);
}
function desablefield1() {
document.getElementsByName("name")[0].disabled = true;
//document.getElementsByName("date_souhaite")[0].disabled = true;
document.getElementsByName("domaine")[0].disabled = true;
document.getElementsByName("niveau")[0].disabled = true;
document.getElementsByName("name")[0].style.background = "#ECEFF1";
//document.getElementsByName("date_souhaite")[0].style.background = "#ECEFF1";
document.getElementsByName("domaine")[0].style.background = "#ECEFF1";
document.getElementsByName("niveau")[0].style.background = "#ECEFF1";
seteditfields(false);
}
const [StartDate, setStartDate] = useState(new Date());
const [mydate_val, setmydate_val] = useState();
const handleChangeDate = (date) => {
//alert(" date = " + format(date, 'dd/MM/yyyy'));
setStartDate(date);
setfiedsupdated(true);
}
const [editor_tochange, seteditor_tochange] = useState("");
function editor_keyup() {
seteditor_tochange("1");
}
function DataUpdated() {
setdatamodification("1");
}
return ( return (
<div className="updateusergoals"> <div className="updateusergoals">
<div className="div_row">
<div className="div_row">
{String(getGolData_api) === String("false") && <div className="koUpdateData"> Impossible d'afficher le detail de l'objectif </div>} {String(getGolData_api) === String("false") && <div className="koUpdateData"> Impossible d'afficher le detail de l'objectif </div>}
{String(recorddata_api) === String("true") && <div className="okUpdateData"> L'objectif a été ajouté/mise à jour </div>}
{String(recorddata_api) === String("false") && <div className="koUpdateData"> {recorddata_api_message} </div>}
<Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }} <Box alignItems="left" sx={{ '& > :not(style)': { m: 1 }, width: '100%', }}
onChange={updateBox} > onChange={updateBox} >
<TextField <TextField
required required
@ -235,43 +313,77 @@ function UpdateUserGoals(props) {
variant="standard" variant="standard"
/> />
<TextField <div className="div_row">
type="date" <div className="div_row_gauche">
name="date_souhaite" Data Souhaitée :
label="Date de validation" <DatePicker
className="texte_area" selected={StartDate}
sx={{ m: 1, width: '48%' }} onChange={handleChangeDate}
defaultValue={moment(defaultdate).format('YYYY-MM-DD')} dateFormat="dd/MM/yyyy"
inputProps={{ min: { mindate } }} />
/>
<br />
<TextField </div>
id="description" <div className="div_row_droite">
name="description"
label="Description"
multiline <div className="training_text">
rows={3} <div className="plus_produit_desabled">
maxRows={10} <div className="titre_training_text"> Description </div>
className="texte_area" <Editor
sx={{ m: 1, width: '48%' }} onInit={(evt, editor) => editorRef_description.current = editor}
initialValue={field_description}
onKeyUp={editor_keyup}
onEditorChange={(newValue, editor) => {
if (String(editor_tochange) === "1") {
//alert(" change");
DataUpdated()
seteditor_tochange("");
setfiedsupdated(true);
}
}}
init={{
resize: false,
height: 220,
menubar: false,
plugins: [
'advlist autolink lists link image charmap print preview anchor',
'searchreplace visualblocks code fullscreen',
'insertdatetime media table paste code help wordcount'
],
toolbar: 'undo redo | casechange blocks | bold italic backcolor | ' +
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
}}
/>
</div>
</div>
</div>
</div>
/>
<div className="div_row22"> <div className="div_row22">
{fields1desabled == false && <div className="div_row">
{fiedsupdated && <div className="div_row"><div className="koUpdateData" style={{ "color": "orange", "textAlign": "center" }}> /!\ Pensez à enregistrer les modifications</div></div>}
{(!props.name_obj || fiedsupdated) && <div className="div_row">
<div className="div_row_gauche"> <div className="div_row_gauche">
<Button variant="contained" color="success" className="div_row22 btn_enreg " onClick={RecordData}>Enregister</Button> <Button variant="contained" color="success" className="div_row22 bton_enreg " onClick={RecordData}>Enregister &nbsp; <AiTwotoneSave /> </Button>
</div> </div>
<div className="div_row_droite"> <div className="div_row_droite" style={{ "textAlign": "right" }}>
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={"desablefield1"}>Annuler</Button> <Button variant="contained" color="success" className="div_row22 bton_annnule" onClick={"CloseLocalcomp"}>Annuler</Button>
</div> </div>
</div> </div>
} }
{fields1desabled == true && {/*props.name_obj && String(props.name_obj).length > 2 && !editfields && <div className="div_row_droite" style={{ "textAlign": "right" }}>
<Button variant="contained" color="success" className="div_row22 btn_modif" onClick={"enablefieds1"}>Modifier</Button> <Button variant="contained" color="success" className="div_row22 bton_enreg" onClick={enablefieds1}>Modifier &nbsp; <AiTwotoneEdit /> </Button>
} </div>
*/}
</div> </div>
</Box> </Box>

View File

View File

@ -1046,7 +1046,7 @@
text-align: left; text-align: left;
color: rgb(10, 42, 77); color: rgb(10, 42, 77);
background-color: white; background-color: white;
margin-right: 5px; margin-right: 10px;
} }
.div_droite_haut { .div_droite_haut {

View File

@ -1446,7 +1446,7 @@
p { p {
font-family: "verdana", "Quicksand", "Signika", sans-serif; font-family: "verdana", "Quicksand", "Signika", sans-serif;
line-height: 1.43; line-height: 1.7;
font-size: 0.9rem; font-size: 0.9rem;
margin-bottom: 4px; margin-bottom: 4px;
color: #3b3e40; color: #3b3e40;
@ -1953,7 +1953,7 @@
p { p {
font-family: "verdana", "Quicksand", "Signika", sans-serif; font-family: "verdana", "Quicksand", "Signika", sans-serif;
line-height: 1.43; line-height: 1.7;
font-size: 0.95rem; font-size: 0.95rem;
margin-bottom: 4px; margin-bottom: 4px;
color: #3b3e40; color: #3b3e40;

View File

@ -99,6 +99,7 @@
padding-bottom: 2rem; padding-bottom: 2rem;
margin-top: 1rem; margin-top: 1rem;
padding-top: 1rem; padding-top: 1rem;
background: #F4F6F6;
} }
.hilightsoustitre { .hilightsoustitre {
@ -142,6 +143,7 @@
padding-top: 10px; padding-top: 10px;
width: 98%; width: 98%;
max-height: 5rem; max-height: 5rem;
background-color: white;
} }
.titre_formation { .titre_formation {
@ -431,6 +433,7 @@
} }
.right_box { .right_box {
float: left; float: left;
border: 1px solid black; border: 1px solid black;
border-width: 2px; border-width: 2px;
@ -448,6 +451,7 @@
padding-bottom: 2rem; padding-bottom: 2rem;
margin-top: 0.5rem; margin-top: 0.5rem;
padding-top: 1rem; padding-top: 1rem;
background: #F4F6F6;
//background-color: #f8f9f9; //background-color: #f8f9f9;
//overflow-y:scroll; //overflow-y:scroll;
} }
@ -492,6 +496,7 @@
padding-top: 10px; padding-top: 10px;
width: 100%; width: 100%;
max-height: 8rem; max-height: 8rem;
background-color: white;
} }
@ -805,6 +810,7 @@
padding-bottom: 2rem; padding-bottom: 2rem;
margin-top: 0.5rem; margin-top: 0.5rem;
padding-top: 1rem; padding-top: 1rem;
background: #F4F6F6;
//background-color: #f8f9f9; //background-color: #f8f9f9;
//overflow-y:scroll; //overflow-y:scroll;
} }
@ -848,6 +854,7 @@
padding-top: 10px; padding-top: 10px;
width: 100%; width: 100%;
max-height: 11rem; max-height: 11rem;
background-color: white;
} }
@ -1158,7 +1165,7 @@
padding-bottom: 2rem; padding-bottom: 2rem;
margin-top: 0.5rem; margin-top: 0.5rem;
padding-top: 1rem; padding-top: 1rem;
background-color: #f8f9f9; background: #F4F6F6;
//overflow-y:scroll; //overflow-y:scroll;
} }
@ -1205,6 +1212,7 @@
padding-top: 10px; padding-top: 10px;
width: 100%; width: 100%;
max-height: 12rem; max-height: 12rem;
background-color: white;
} }
.titre_formation { .titre_formation {

View File

@ -28,8 +28,8 @@
.div_row { .div_row {
float: left; float: left;
border:0px solid black; //border:0px solid black;
border-width: 0.01rem; //border-width: 0.01rem;
width: 100%; width: 100%;
margin-bottom: 1rem; margin-bottom: 1rem;
border-radius: 1rem; border-radius: 1rem;
@ -62,5 +62,33 @@
background-color: gray; background-color: gray;
font-weight: normal; font-weight: normal;
} }
.bton_ajouter_obj{
border-radius: 7px;
font-size: small;
padding: 0.3rem;
width: 60%;
background-color: #619E31;
color: white;
}
.bton_enreg {
border-radius: 7px;
font-size: small;
padding: 0.3rem;
width: 60%;
background-color: #81BC3A;
color: white;
}
.bton_annnule {
border-radius: 7px;
font-size: small;
padding: 0.3rem;
width: 60%;
background-color: white;
color: red;
}
} }
} }

View File

@ -435,7 +435,6 @@
padding: 0.3rem; padding: 0.3rem;
width: 60%; width: 60%;
background-color: "#81BC3A"!important; background-color: "#81BC3A"!important;
} }

View File

@ -28,8 +28,8 @@
.div_row { .div_row {
float: left; float: left;
border:0px solid black; //border:0px solid black;
border-width: 0.01rem; //border-width: 0.01rem;
width: 100%; width: 100%;
margin-bottom: 1rem; margin-bottom: 1rem;
border-radius: 1rem; border-radius: 1rem;
@ -63,5 +63,22 @@
font-weight: normal; font-weight: normal;
} }
.div_row_gauche {
float: left;
// border:1px solid black;
// border-width:0.01rem;
width: 45%;
border-radius: 1rem;
}
.div_row_droite {
float: right;
//border:1px solid black;
//border-width:0.01rem;
width: 45%;
border-radius: 1rem;
}
} }
} }

View File

@ -1,4 +1,4 @@
.updateusergoals { .updateusergoals{
.h1_transparent { .h1_transparent {
color: transparent; color: transparent;
font-size: 0.1rem; font-size: 0.1rem;
@ -28,8 +28,8 @@
.div_row { .div_row {
float: left; float: left;
border:0px solid black; //border:0px solid black;
border-width: 0.01rem; //border-width: 0.01rem;
width: 100%; width: 100%;
margin-bottom: 1rem; margin-bottom: 1rem;
border-radius: 1rem; border-radius: 1rem;
@ -62,6 +62,51 @@
background-color: gray; background-color: gray;
font-weight: normal; font-weight: normal;
} }
.bton_enreg {
border-radius: 7px;
font-size: small;
padding: 0.3rem;
width: 60%;
background-color: #81BC3A;
color: white;
}
.bton_annnule {
border-radius: 7px;
font-size: small;
padding: 0.3rem;
width: 60%;
background-color: white;
color: red;
}
.training_text {
padding: 5px;
float: left;
height: 220px !important;
min-height: 220px !important;
max-height: 220px !important;
margin-bottom: 10px;
width: 100%;
}
.plus_produit_desabled {
width: 100% !important;
margin-right: 2rem !important;
margin-bottom: 1rem !important;
max-height: 200px !important;
}
.titre_training_text {
font-size: small;
padding-left: 5px;
width: 50%;
}
.tox-statusbar__branding {
display: none !important;
}
} }
} }

View File

@ -56,3 +56,4 @@
@import "./components/inscription"; @import "./components/inscription";
@import "./components/gestionadministrative"; @import "./components/gestionadministrative";
@import "./components/toggleswitch"; @import "./components/toggleswitch";
@import "./components/updateusergoals";