23/07/2023 - 17h
parent
b0db0b0b5f
commit
0ed4c2471c
File diff suppressed because it is too large
Load Diff
|
@ -4,6 +4,8 @@
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@dr.pogodin/react-global-state": "^0.6.5",
|
"@dr.pogodin/react-global-state": "^0.6.5",
|
||||||
|
"@emotion/react": "^11.11.1",
|
||||||
|
"@emotion/styled": "^11.11.0",
|
||||||
"@fortawesome/fontawesome": "^1.1.8",
|
"@fortawesome/fontawesome": "^1.1.8",
|
||||||
"@fortawesome/fontawesome-free-solid": "^5.0.13",
|
"@fortawesome/fontawesome-free-solid": "^5.0.13",
|
||||||
"@fortawesome/fontawesome-svg-core": "^6.1.1",
|
"@fortawesome/fontawesome-svg-core": "^6.1.1",
|
||||||
|
@ -17,8 +19,8 @@
|
||||||
"@material-ui/core": "^4.12.4",
|
"@material-ui/core": "^4.12.4",
|
||||||
"@material/tooltip": "^14.0.0",
|
"@material/tooltip": "^14.0.0",
|
||||||
"@mui/icons-material": "^5.4.2",
|
"@mui/icons-material": "^5.4.2",
|
||||||
"@mui/material": "^5.4.2",
|
"@mui/material": "^5.14.1",
|
||||||
"@mui/x-data-grid": "^5.5.1",
|
"@mui/x-data-grid": "^5.17.26",
|
||||||
"@mui/x-date-pickers": "^5.0.0",
|
"@mui/x-date-pickers": "^5.0.0",
|
||||||
"@mui/x-date-pickers-pro": "^5.0.0",
|
"@mui/x-date-pickers-pro": "^5.0.0",
|
||||||
"@stripe/react-stripe-js": "^1.12.0",
|
"@stripe/react-stripe-js": "^1.12.0",
|
||||||
|
@ -48,6 +50,7 @@
|
||||||
"js-file-download": "^0.4.12",
|
"js-file-download": "^0.4.12",
|
||||||
"js-video-url-parser": "^0.5.1",
|
"js-video-url-parser": "^0.5.1",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
|
"mui-datatables": "^4.3.0",
|
||||||
"mui-daterange-picker": "^1.0.5",
|
"mui-daterange-picker": "^1.0.5",
|
||||||
"next": "^12.0.10",
|
"next": "^12.0.10",
|
||||||
"next-link": "^2.0.0",
|
"next-link": "^2.0.0",
|
||||||
|
@ -73,7 +76,6 @@
|
||||||
"react-dom": "^17.0.2",
|
"react-dom": "^17.0.2",
|
||||||
"react-draft-wysiwyg": "^1.14.7",
|
"react-draft-wysiwyg": "^1.14.7",
|
||||||
"react-dropdown-select": "^4.8.0",
|
"react-dropdown-select": "^4.8.0",
|
||||||
"react-dual-range-slider": "^1.0.4",
|
|
||||||
"react-dual-rangeslider": "^1.2.16",
|
"react-dual-rangeslider": "^1.2.16",
|
||||||
"react-elastic-carousel": "^0.11.5",
|
"react-elastic-carousel": "^0.11.5",
|
||||||
"react-facebook": "^8.1.4",
|
"react-facebook": "^8.1.4",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,47 @@
|
||||||
|
import React, { useRef, useState, useEffect } from "react";
|
||||||
|
import Box from '@mui/material/Box';
|
||||||
|
import TextField from '@mui/material/TextField';
|
||||||
|
import MenuItem from '@mui/material/MenuItem';
|
||||||
|
import { confirmAlert } from 'react-confirm-alert'; // Import
|
||||||
|
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
|
||||||
|
import Button from '@mui/material/Button';
|
||||||
|
import axios from "axios";
|
||||||
|
import DeleteIcon from '@mui/icons-material/Delete';
|
||||||
|
import { getCookie, setCookie } from 'react-use-cookie';
|
||||||
|
import { Alert } from "@mui/material";
|
||||||
|
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
|
||||||
|
import profileimg from "../mysy_img/MYSY-profil-2.png";
|
||||||
|
import Abonnement from "./Abonnement";
|
||||||
|
import { PropaneSharp } from "@mui/icons-material";
|
||||||
|
import { useHistory } from "react-router-dom";
|
||||||
|
import CheckOut from "./CheckOut";
|
||||||
|
|
||||||
|
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
|
||||||
|
import { RichTextEditor } from '@mantine/rte';
|
||||||
|
import { Editor } from '@tinymce/tinymce-react';
|
||||||
|
import { IoArrowUndoCircle } from "react-icons/io5";
|
||||||
|
import { GrUserAdmin, GrOrderedList } from "react-icons/gr";
|
||||||
|
import parse from 'html-react-parser';
|
||||||
|
|
||||||
|
import 'react-tooltip/dist/react-tooltip.css'
|
||||||
|
import { Tooltip } from 'react-tooltip'
|
||||||
|
|
||||||
|
import GestionAdministrative from "./GestionAdministrative";
|
||||||
|
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
|
||||||
|
import { Fab } from "@material-ui/core";
|
||||||
|
import { ConsoleView } from "react-device-detect";
|
||||||
|
import fileDownload from 'js-file-download'
|
||||||
|
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
|
||||||
|
|
||||||
|
const Contact_Partner_Client = (props) => {
|
||||||
|
const history = useHistory();
|
||||||
|
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="contact_partner_client">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Contact_Partner_Client;
|
|
@ -17,7 +17,8 @@ import logowhite from "../mysy_img/MYSY-LOGO-WHITE.png";
|
||||||
|
|
||||||
import downarrow from "../mysy_img/downarrow.png";
|
import downarrow from "../mysy_img/downarrow.png";
|
||||||
import uparrow from "../mysy_img/uparrow.png";
|
import uparrow from "../mysy_img/uparrow.png";
|
||||||
|
import excel_icone from "../mysy_img/excel_icone.png";
|
||||||
|
import participants from "../mysy_img/participants.png";
|
||||||
|
|
||||||
import Footer from "./Fotter";
|
import Footer from "./Fotter";
|
||||||
import { confirmAlert } from 'react-confirm-alert'; // Import
|
import { confirmAlert } from 'react-confirm-alert'; // Import
|
||||||
|
@ -39,9 +40,16 @@ import {
|
||||||
} from "react-icons/fc";
|
} from "react-icons/fc";
|
||||||
import { DataGrid, GridToolbar, frFR, GridCellParams } from '@mui/x-data-grid';
|
import { DataGrid, GridToolbar, frFR, GridCellParams } from '@mui/x-data-grid';
|
||||||
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcDeleteDatabase } from "react-icons/fc";
|
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcDeleteDatabase } from "react-icons/fc";
|
||||||
|
import { darken, lighten, styled } from '@mui/material/styles';
|
||||||
|
|
||||||
import AddParnerClient from "./AddPartnerClient";
|
import AddParnerClient from "./AddPartnerClient";
|
||||||
//import { FcHome} from "react-icons/fc";
|
//import { FcHome} from "react-icons/fc";
|
||||||
|
import { alpha } from '@mui/material/styles';
|
||||||
|
import { gridClasses } from '@mui/x-data-grid';
|
||||||
|
import { AiOutlineUserAdd } from "react-icons/ai";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const Partner_Client = (props) => {
|
const Partner_Client = (props) => {
|
||||||
|
|
||||||
|
@ -59,10 +67,10 @@ const Partner_Client = (props) => {
|
||||||
renderCell: (cellValues) => {
|
renderCell: (cellValues) => {
|
||||||
return (
|
return (
|
||||||
|
|
||||||
<div style={{ "width": "45%", "float": "center" }} onClick={(event) => {
|
<div style={{ "marginLeft": "auto", "marginRight": "auto", }} onClick={(event) => {
|
||||||
handleClick_modifier(event, cellValues);
|
handleClick_modifier(event, cellValues);
|
||||||
}}>
|
}}>
|
||||||
<FcAcceptDatabase />
|
<FcAcceptDatabase style={{ "fontSize": "x-large" }} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
);
|
);
|
||||||
|
@ -73,10 +81,10 @@ const Partner_Client = (props) => {
|
||||||
renderCell: (cellValues) => {
|
renderCell: (cellValues) => {
|
||||||
return (
|
return (
|
||||||
|
|
||||||
<div style={{ "width": "45%", "float": "center" }} onClick={(event) => {
|
<div style={{ "marginLeft": "auto", "marginRight": "auto", }} onClick={(event) => {
|
||||||
handleClick_supprimer(event, cellValues);
|
handleClick_supprimer(event, cellValues);
|
||||||
}}>
|
}}>
|
||||||
<FcDeleteDatabase />
|
<FcDeleteDatabase style={{ "fontSize": "x-large" }} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
);
|
);
|
||||||
|
@ -86,6 +94,9 @@ const Partner_Client = (props) => {
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
const [rowSelectionModel, setRowSelectionModel] = React.useState([]);
|
||||||
|
|
||||||
|
|
||||||
const [Edite_Client, setEdite_Client] = useState("");
|
const [Edite_Client, setEdite_Client] = useState("");
|
||||||
const [Client_email, setClient_email] = useState("");
|
const [Client_email, setClient_email] = useState("");
|
||||||
function handleClick_modifier(event, cellValues) {
|
function handleClick_modifier(event, cellValues) {
|
||||||
|
@ -94,15 +105,17 @@ const Partner_Client = (props) => {
|
||||||
setEdite_Client("1");
|
setEdite_Client("1");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleClick_add_new_client(event, cellValues) {
|
||||||
|
setEdite_Client("2");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function handleClick_supprimer(event, cellValues) {
|
function handleClick_supprimer(event, cellValues) {
|
||||||
var clientmail = String(cellValues.row.email);
|
var clientmail = String(cellValues.row.email);
|
||||||
alert(" en cours de dev");
|
alert(" en cours de dev");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const [Get_List_Partner_Clients_api, setGet_List_Partner_Clients_api] = useState();
|
const [Get_List_Partner_Clients_api, setGet_List_Partner_Clients_api] = useState();
|
||||||
const [Get_List_Partner_Clients_message, setGet_List_Partner_Clients_message] = useState();
|
const [Get_List_Partner_Clients_message, setGet_List_Partner_Clients_message] = useState();
|
||||||
const [Get_List_Partner_Clients_result, setGet_List_Partner_Clients_result] = useState();
|
const [Get_List_Partner_Clients_result, setGet_List_Partner_Clients_result] = useState();
|
||||||
|
@ -117,8 +130,8 @@ const Partner_Client = (props) => {
|
||||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_List_Partner_Client/";
|
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_List_Partner_Client/";
|
||||||
|
|
||||||
axios.post(myurl, form).then(res => {
|
axios.post(myurl, form).then(res => {
|
||||||
console.log(" In Get_List_Partner_Clients res.data.status = " + res.data.status);
|
//console.log(" In Get_List_Partner_Clients res.data.status = " + res.data.status);
|
||||||
console.log(" In Get_List_Partner_Clients res.data.message r_class = " + res.data.message);
|
//console.log(" In Get_List_Partner_Clients res.data.message r_class = " + res.data.message);
|
||||||
|
|
||||||
if (String(res.data.status) === String("true")) {
|
if (String(res.data.status) === String("true")) {
|
||||||
setGet_List_Partner_Clients_api("true");
|
setGet_List_Partner_Clients_api("true");
|
||||||
|
@ -141,6 +154,11 @@ const Partner_Client = (props) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function close_detail_client() {
|
||||||
|
|
||||||
|
setEdite_Client("0");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
@ -149,6 +167,7 @@ const Partner_Client = (props) => {
|
||||||
|
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
||||||
<div className="partner_client">
|
<div className="partner_client">
|
||||||
|
@ -158,8 +177,17 @@ const Partner_Client = (props) => {
|
||||||
{String(Edite_Client) === "1" && <div className="div_row">
|
{String(Edite_Client) === "1" && <div className="div_row">
|
||||||
|
|
||||||
<div className="titre1"> Detail client : {Client_email}</div>
|
<div className="titre1"> Detail client : {Client_email}</div>
|
||||||
|
|
||||||
<AddParnerClient client_mail={Client_email}/>
|
<AddParnerClient client_mail={Client_email} close_detail_client={close_detail_client} />
|
||||||
|
|
||||||
|
</div>}
|
||||||
|
|
||||||
|
{String(Edite_Client) === "2" && <div className="div_row">
|
||||||
|
|
||||||
|
<div className="titre1"> Detail client : {Client_email}</div>
|
||||||
|
|
||||||
|
<AddParnerClient client_mail={Client_email} close_detail_client={close_detail_client} new_customer="1"
|
||||||
|
Get_List_Partner_Clients={Get_List_Partner_Clients} />
|
||||||
|
|
||||||
</div>}
|
</div>}
|
||||||
|
|
||||||
|
@ -168,13 +196,17 @@ const Partner_Client = (props) => {
|
||||||
|
|
||||||
<div className="div_row">
|
<div className="div_row">
|
||||||
<div style={{ height: 500, width: '100%' }}>
|
<div style={{ height: 500, width: '100%' }}>
|
||||||
|
<div className="div_row">
|
||||||
|
<Button variant="outlined" onClick={handleClick_add_new_client}
|
||||||
|
className="detail_class_submenu bton_add_session"
|
||||||
|
id='menu_one_participant' name='menu_one_participant'><img src={participants} alt="ajout un client" className="icon_plus" />
|
||||||
|
Ajouter 1 Client
|
||||||
|
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
</div>
|
||||||
<DataGrid
|
<DataGrid
|
||||||
checkboxSelection
|
|
||||||
onSelectionModelChange={(newSelectionModel) => {
|
|
||||||
setSelectionModel(newSelectionModel);
|
|
||||||
//console.log("ch selected--" + newSelectionModel);
|
|
||||||
}}
|
|
||||||
selectionModel={selectionModel}
|
|
||||||
|
|
||||||
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
|
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
|
||||||
rows={rows_list_clients.map((item, index) => (
|
rows={rows_list_clients.map((item, index) => (
|
||||||
|
@ -206,6 +238,27 @@ const Partner_Client = (props) => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div className="titre1"> Grid des clients</div>
|
||||||
|
<div className="div_row" style={{"marginLeft":"5px", "marginRight":"5px"}}>
|
||||||
|
<div className="client_grid">
|
||||||
|
|
||||||
|
{Get_List_Partner_Clients_result && String(Get_List_Partner_Clients_api) === "true" &&
|
||||||
|
Get_List_Partner_Clients_result.map((client) => (
|
||||||
|
|
||||||
|
<div>
|
||||||
|
mail = {String(JSON.parse(client).email)} <br/>
|
||||||
|
nom = {String(JSON.parse(client).nom)} <br/>
|
||||||
|
Tel = {String(JSON.parse(client).telephone)} <br/>
|
||||||
|
Adresse = {String(JSON.parse(client).adr_adresse)} - {String(JSON.parse(client).adr_ville)} <br/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,11 +11,13 @@ import bannerimg from "../mysy_img/MYSY_banner_compte.png";
|
||||||
import bannerimg2 from "../mysy_img/MYSY-LOGO-BLUE.png";
|
import bannerimg2 from "../mysy_img/MYSY-LOGO-BLUE.png";
|
||||||
import { useParams } from 'react-router-dom'
|
import { useParams } from 'react-router-dom'
|
||||||
import Select, { StylesConfig } from 'react-select';
|
import Select, { StylesConfig } from 'react-select';
|
||||||
|
import IconButton from '@mui/material/IconButton';
|
||||||
import { Fade } from 'react-slideshow-image';
|
import { Fade } from 'react-slideshow-image';
|
||||||
import { getCookie, setCookie } from 'react-use-cookie';
|
import { getCookie, setCookie } from 'react-use-cookie';
|
||||||
import Button from '@mui/material/Button';
|
import Button from '@mui/material/Button';
|
||||||
|
|
||||||
|
import { FaHandPointRight } from "react-icons/fa";
|
||||||
|
|
||||||
import Header from "./Header";
|
import Header from "./Header";
|
||||||
import { useLocation } from "react-router-dom";
|
import { useLocation } from "react-router-dom";
|
||||||
import fileDownload from 'js-file-download'
|
import fileDownload from 'js-file-download'
|
||||||
|
@ -55,12 +57,19 @@ import {
|
||||||
import 'react-tooltip/dist/react-tooltip.css'
|
import 'react-tooltip/dist/react-tooltip.css'
|
||||||
import { Tooltip } from 'react-tooltip'
|
import { Tooltip } from 'react-tooltip'
|
||||||
|
|
||||||
|
import MUIDataTable from "mui-datatables";
|
||||||
|
import { createTheme, ThemeProvider } from '@mui/material/styles';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// pour le payement stripe : https://stripe.com/docs/payments/quickstart?client=react&lang=python
|
// pour le payement stripe : https://stripe.com/docs/payments/quickstart?client=react&lang=python
|
||||||
const stripePromise = loadStripe('pk_test_51LUUfAAbmaEugrFTI25uZBD3IFjbtaL6jUfRV83diDf7nco8worna4NGKhMHbPP71WCwT5EHFRdDNatxPrJWwgZ300kgH5EO4p');
|
const stripePromise = loadStripe('pk_test_51LUUfAAbmaEugrFTI25uZBD3IFjbtaL6jUfRV83diDf7nco8worna4NGKhMHbPP71WCwT5EHFRdDNatxPrJWwgZ300kgH5EO4p');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const TestUrl = (props) => {
|
const TestUrl = (props) => {
|
||||||
|
|
||||||
|
|
||||||
const stripe = useStripe();
|
const stripe = useStripe();
|
||||||
const elements = useElements();
|
const elements = useElements();
|
||||||
|
|
||||||
|
@ -71,153 +80,14 @@ const TestUrl = (props) => {
|
||||||
clientSecret: '{{CLIENT_SECRET}}',
|
clientSecret: '{{CLIENT_SECRET}}',
|
||||||
};
|
};
|
||||||
|
|
||||||
const particleOptions = [
|
|
||||||
{
|
|
||||||
'maxParticles': 50,
|
|
||||||
'colors': ['#2E1D62', '#513D91', '#487EEF', '#11A887', '#fc5c65', '#fed330'],
|
|
||||||
'shapes': ['circle', 'square'],
|
|
||||||
'size': 10,
|
|
||||||
'minSpeed': 0.05,
|
|
||||||
'maxSpeed': 0.20,
|
|
||||||
'alpha': 0.70,
|
|
||||||
'backgroundColor': '#1E1F29'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
const data = [
|
|
||||||
{ x: 0, y: 0 },
|
|
||||||
{ x: 1, y: 2 },
|
|
||||||
{ x: 2, y: 1 },
|
|
||||||
{ x: 3, y: 4 },
|
|
||||||
{ x: 4, y: 3 },
|
|
||||||
{ x: 5, y: 5 }
|
|
||||||
];
|
|
||||||
|
|
||||||
const cartesianInterpolations = [
|
|
||||||
"basis",
|
|
||||||
"bundle",
|
|
||||||
"cardinal",
|
|
||||||
"catmullRom",
|
|
||||||
"linear",
|
|
||||||
"monotoneX",
|
|
||||||
"monotoneY",
|
|
||||||
"natural",
|
|
||||||
"step",
|
|
||||||
"stepAfter",
|
|
||||||
"stepBefore"
|
|
||||||
];
|
|
||||||
|
|
||||||
const polarInterpolations = [
|
|
||||||
"basis",
|
|
||||||
"cardinal",
|
|
||||||
"catmullRom",
|
|
||||||
"linear"
|
|
||||||
];
|
|
||||||
|
|
||||||
const InterpolationSelect = ({ currentValue, values, onChange }) => (
|
|
||||||
<select onChange={onChange} value={currentValue} style={{ width: 75 }}>
|
|
||||||
{values.map(
|
|
||||||
(value) => <option value={value} key={value}>{value}</option>
|
|
||||||
)}
|
|
||||||
</select>
|
|
||||||
);
|
|
||||||
|
|
||||||
const [interpolation, setinterpolation] = useState("linear");
|
const [interpolation, setinterpolation] = useState("linear");
|
||||||
const [polar, setpolar] = useState(false);
|
const [polar, setpolar] = useState(false);
|
||||||
|
|
||||||
|
|
||||||
// note: the id field is mandatory
|
|
||||||
const items = [
|
|
||||||
{
|
|
||||||
id: 0,
|
|
||||||
name: 'Cobol'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
name: 'JavaScript'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
name: 'Basic'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
name: 'PHP'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 4,
|
|
||||||
name: 'Java'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
// note: the id field is mandatory
|
|
||||||
const items2 = [
|
|
||||||
{ id: 1, name: "ADN" },
|
|
||||||
{ id: 2, name: "AFP" },
|
|
||||||
{ id: 3, name: "ANC" },
|
|
||||||
{ id: 4, name: "Aaron" },
|
|
||||||
{ id: 5, name: "Abdel" },
|
|
||||||
{ id: 6, name: "Abidjan" },
|
|
||||||
{ id: 7, name: "Abyssin" },
|
|
||||||
{ id: 8, name: "Abyssine" },
|
|
||||||
{ id: 9, name: "Abyssinie" },
|
|
||||||
{ id: 10, name: "Abyssinien" },
|
|
||||||
{ id: 11, name: "Abyssinienne" },
|
|
||||||
{ id: 12, name: "Academie" },
|
|
||||||
{ id: 13, name: "Adam" },
|
|
||||||
{ id: 14, name: "Adams" },
|
|
||||||
{ id: 15, name: "Afghan" },
|
|
||||||
{ id: 16, name: "Afghane" },
|
|
||||||
{ id: 17, name: "Afghanistan" },
|
|
||||||
{ id: 18, name: "Afghans" },
|
|
||||||
{ id: 19, name: "Afrique" },
|
|
||||||
{ id: 20, name: "Agathe" },
|
|
||||||
{ id: 21, name: "Agen" },
|
|
||||||
{ id: 22, name: "Agnes" },
|
|
||||||
{ id: 23, name: "Ahmed" },
|
|
||||||
{ id: 24, name: "Ain" },
|
|
||||||
{ id: 25, name: "Aisne" },
|
|
||||||
{ id: 26, name: "Aix" },
|
|
||||||
{ id: 27, name: "Ajaccio" },
|
|
||||||
{ id: 28, name: "Ajax" },
|
|
||||||
{ id: 29, name: "Akbar" },
|
|
||||||
{ id: 30, name: "Alain" },
|
|
||||||
{ id: 31, name: "Albanais" },
|
|
||||||
{ id: 32, name: "Albanaise" },
|
|
||||||
{ id: 33, name: "Albanie" },
|
|
||||||
{ id: 34, name: "Albert" },
|
|
||||||
{ id: 35, name: "Albin" },
|
|
||||||
{ id: 36, name: "Alexandra" },
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
const handleOnSearch = (string, results) => {
|
|
||||||
// onSearch will have as the first callback parameter
|
|
||||||
// the string searched and for the second the results.
|
|
||||||
//console.log(string, results)
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleOnHover = (result) => {
|
|
||||||
// the item hovered
|
|
||||||
//console.log(result)
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleOnSelect = (item) => {
|
|
||||||
// the item selected
|
|
||||||
//console.log(item)
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleOnFocus = () => {
|
|
||||||
//console.log('Focused')
|
|
||||||
}
|
|
||||||
|
|
||||||
const formatResult = (item) => {
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<span style={{ display: 'block', textAlign: 'left' }}> {item.name}</span>
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const [suggestedwords, setsuggestedwords] = useState([]);
|
const [suggestedwords, setsuggestedwords] = useState([]);
|
||||||
const [texte, settext] = useState("");
|
const [texte, settext] = useState("");
|
||||||
|
@ -489,116 +359,6 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
|
||||||
|
|
||||||
const [my_tabb, setmy_tabb] = useState([]);
|
const [my_tabb, setmy_tabb] = useState([]);
|
||||||
|
|
||||||
function Get_Top_test_Stat() {
|
|
||||||
var form = new FormData();
|
|
||||||
|
|
||||||
var date_start = ""
|
|
||||||
var date_end = ""
|
|
||||||
|
|
||||||
var my_tab = [];
|
|
||||||
|
|
||||||
if (state[0].startDate) {
|
|
||||||
//console.log("Start = " + state[0].startDate);
|
|
||||||
//console.log("Start = " + moment(state[0].startDate).format('YYYY-MM-DD'));
|
|
||||||
date_start = moment(state[0].startDate).format('YYYY-MM-DD');
|
|
||||||
}
|
|
||||||
if (state[0].endDate) {
|
|
||||||
//console.log("endDate = " + state[0].endDate);
|
|
||||||
//console.log("END = " + moment(state[0].endDate).format('YYYY-MM-DD'));
|
|
||||||
date_end = moment(state[0].endDate).format('YYYY-MM-DD');
|
|
||||||
}
|
|
||||||
|
|
||||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetStat_class_view_topX/";
|
|
||||||
form.append("date_start", date_start);
|
|
||||||
form.append("date_end", date_end);
|
|
||||||
form.append('token', 'cherif');
|
|
||||||
form.append('topX', '5');
|
|
||||||
|
|
||||||
//alert("myurl = "+myurl);
|
|
||||||
|
|
||||||
axios.post(myurl, form).then(res => {
|
|
||||||
|
|
||||||
if (String(res.data.status) != String("false")) {
|
|
||||||
//console.log(" In test res.data.status = " + res.data.status);
|
|
||||||
//console.log(" In test res.data.message = " + res.data.message);
|
|
||||||
|
|
||||||
res.data.message.map(obj => {
|
|
||||||
if (JSON.parse(obj).name1) {
|
|
||||||
//console.log(" ---name_serie = " + JSON.parse(obj).name1 + " data_series = " + JSON.parse(obj).data1);
|
|
||||||
var ch_data2 = JSON.parse(obj).data1;
|
|
||||||
|
|
||||||
let new_data2 = ch_data2.map(i => Number(i));
|
|
||||||
setdetail_view_data1(new_data2);
|
|
||||||
|
|
||||||
|
|
||||||
var nom = JSON.parse(obj).name1;
|
|
||||||
setdetail_view_data1_name(nom);
|
|
||||||
//console.log("new_data2 = ", ch_data2);
|
|
||||||
//console.log("result = ", new_data2);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (JSON.parse(obj).name2) {
|
|
||||||
//console.log(" ---name_serie = " + JSON.parse(obj).name2 + " data_series = " + JSON.parse(obj).data2);
|
|
||||||
var ch_data2 = JSON.parse(obj).data2;
|
|
||||||
let new_data2 = ch_data2.map(i => Number(i));
|
|
||||||
setdetail_view_data2(new_data2);
|
|
||||||
|
|
||||||
var nom = JSON.parse(obj).name2;
|
|
||||||
setdetail_view_data2_name(nom);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (JSON.parse(obj).name3) {
|
|
||||||
//console.log(" ---name_serie = " + JSON.parse(obj).name3 + " data_series = " + JSON.parse(obj).data3);
|
|
||||||
var ch_data2 = JSON.parse(obj).data3;
|
|
||||||
let new_data2 = ch_data2.map(i => Number(i));
|
|
||||||
setdetail_view_data3(new_data2);
|
|
||||||
|
|
||||||
var nom = JSON.parse(obj).name3;
|
|
||||||
setdetail_view_data3_name(nom);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (JSON.parse(obj).name4) {
|
|
||||||
//console.log(" ---name_serie = " + JSON.parse(obj).name4 + " data_series = " + JSON.parse(obj).data4);
|
|
||||||
var ch_data2 = JSON.parse(obj).data4;
|
|
||||||
let new_data2 = ch_data2.map(i => Number(i));
|
|
||||||
setdetail_view_data4(new_data2);
|
|
||||||
|
|
||||||
var nom = JSON.parse(obj).name4;
|
|
||||||
setdetail_view_data4_name(nom);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (JSON.parse(obj).categories) {
|
|
||||||
//console.log(" ---categories = " + JSON.parse(obj).categories);
|
|
||||||
var ch_data2 = JSON.parse(obj).categories;
|
|
||||||
var new_data2 = ch_data2.split(',');
|
|
||||||
setdetail_view_categorie(new_data2);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
//console.log(" In test res.data.status = " + res.data.status);
|
|
||||||
//console.log(" In test res.data.message = " + res.data.message);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}).catch((error) => {
|
|
||||||
console.warn('Not good man :( mysearchtext sss= ');
|
|
||||||
|
|
||||||
//setmyApimyApiMessage("")
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function ici() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const [topX_formation, settopX_formation] = useState([]);
|
const [topX_formation, settopX_formation] = useState([]);
|
||||||
|
@ -693,21 +453,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
|
||||||
key: 'selection',
|
key: 'selection',
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleSelect(ranges) {
|
|
||||||
|
|
||||||
//console.log("Start = " + moment(ranges.selection.startDate).format('DD/MM/YYYY'));
|
|
||||||
//console.log("END = " + moment(ranges.selection.endDate).format('DD/MM/YYYY'));
|
|
||||||
|
|
||||||
//console.log("Start = "+ranges.selection.startDate.format('YYYY-MM-DD'));
|
|
||||||
//console.log("Start = " + ranges.selection.startDate);
|
|
||||||
//console.log("END = " + ranges.selection.endDate);
|
|
||||||
// {
|
|
||||||
// selection: {
|
|
||||||
// startDate: [native Date Object],
|
|
||||||
// endDate: [native Date Object],
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
const today = new Date();
|
const today = new Date();
|
||||||
const tomorrow = new Date(today);
|
const tomorrow = new Date(today);
|
||||||
const [state, setState] = useState([
|
const [state, setState] = useState([
|
||||||
|
@ -830,18 +576,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const PopupExample = () => (
|
|
||||||
<Popup trigger={<button>Trigger</button>} position="top left">
|
|
||||||
{close => (
|
|
||||||
<div>
|
|
||||||
Content here
|
|
||||||
<a className="close" onClick={close}>
|
|
||||||
×
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</Popup>
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -878,6 +613,102 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const columns = ["Name", "Company", "City", "State"];
|
||||||
|
|
||||||
|
const data11 = [
|
||||||
|
["Joe James", "Test Corp", "Yonkers", "NY"],
|
||||||
|
["John Walsh", "Test Corp", "Hartford", "CT"],
|
||||||
|
["Bob Herm", "Test Corp", "Tampa", "FL"],
|
||||||
|
["James Houston", "Test Corp", "Dallas", "TX"],
|
||||||
|
];
|
||||||
|
|
||||||
|
function hellofoo(){
|
||||||
|
alert(" hellooooooooo");
|
||||||
|
}
|
||||||
|
|
||||||
|
const options11 = {
|
||||||
|
filterType: 'checkbox',
|
||||||
|
selectableRows: 'single',
|
||||||
|
selectableRowsOnClick: true,
|
||||||
|
customToolbar: () => {
|
||||||
|
return (
|
||||||
|
<IconButton style={{ order: -1 }} onClick={hellofoo}>
|
||||||
|
<FaHandPointRight />
|
||||||
|
</IconButton>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
selectedRows: {
|
||||||
|
text: "ligne(s) selectionée(s)",
|
||||||
|
delete: "Supprimer",
|
||||||
|
deleteAria: "Delete Selected Rows",
|
||||||
|
},
|
||||||
|
toolbar: {
|
||||||
|
search: "Recherche",
|
||||||
|
downloadCsv: "Download CSV",
|
||||||
|
print: "Imprimer",
|
||||||
|
viewColumns: "Voir Columns",
|
||||||
|
filterTable: "Filtrer Table",
|
||||||
|
},
|
||||||
|
pagination: {
|
||||||
|
next: "Prochaine Page",
|
||||||
|
previous: "Page Precedente",
|
||||||
|
rowsPerPage: "ligne par page:",
|
||||||
|
displayRows: "of",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const getMuiTheme = () =>
|
||||||
|
createTheme({
|
||||||
|
components: {
|
||||||
|
|
||||||
|
MuiTableCell: {
|
||||||
|
styleOverrides: {
|
||||||
|
root: {
|
||||||
|
padding: '8px',
|
||||||
|
//backgroundColor: '#CDCAC6',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
MUIDataTableToolbar: {
|
||||||
|
actions: {
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
flex: 'initial',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
MuiToolbar: {
|
||||||
|
styleOverrides: {
|
||||||
|
regular: {
|
||||||
|
minHeight: '8px',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
MuiTableRow: {
|
||||||
|
root: {
|
||||||
|
"&.MuiTableRow-hover": {
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "yellow",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="test_page2">
|
<div className="test_page2">
|
||||||
<Helmet>
|
<Helmet>
|
||||||
|
@ -893,10 +724,25 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
|
||||||
|
|
||||||
<h2> cartouche formaion </h2>
|
<h2> cartouche formaion </h2>
|
||||||
|
|
||||||
|
<div style={{ "width": "100%", }}>
|
||||||
|
|
||||||
|
<ThemeProvider theme={getMuiTheme()}>
|
||||||
|
<MUIDataTable
|
||||||
|
title={"Employee List"}
|
||||||
|
data={data11}
|
||||||
|
columns={columns}
|
||||||
|
options={options11}
|
||||||
|
/>
|
||||||
|
<IconButton style={{ order: -1 }} onClick={hellofoo}>
|
||||||
|
<FaHandPointRight /> Ajouter une ligne
|
||||||
|
</IconButton>
|
||||||
|
</ThemeProvider>
|
||||||
|
|
||||||
|
</div>
|
||||||
<Tooltip id="my-tooltip" />
|
<Tooltip id="my-tooltip" />
|
||||||
|
|
||||||
<a data-tooltip-id="my-tooltip" data-tooltip-content="Hello world!">
|
<a data-tooltip-id="my-tooltip" data-tooltip-content="Hello world!">
|
||||||
info bull infobulle ◕‿‿◕
|
info bull infobulle ◕‿‿◕
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<button onClick={loading} id="finalise"> loading .....</button>
|
<button onClick={loading} id="finalise"> loading .....</button>
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.training_data {
|
.training_data {
|
||||||
float: left;
|
float: left;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.training_caract {
|
.training_caract {
|
||||||
width: 30%;
|
width: 30%;
|
||||||
|
@ -93,11 +93,11 @@
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input{
|
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
|
||||||
padding-left: 5px !important;
|
padding-left: 5px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.css-1sumxir-MuiFormLabel-root-MuiInputLabel-root{
|
.css-1sumxir-MuiFormLabel-root-MuiInputLabel-root {
|
||||||
margin-left: 1px !important;
|
margin-left: 1px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@
|
||||||
width: 40%;
|
width: 40%;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bton_enreg {
|
.bton_enreg {
|
||||||
border-radius: 5rem;
|
border-radius: 5rem;
|
||||||
|
@ -173,6 +173,15 @@
|
||||||
letter-spacing: 0.1rem;
|
letter-spacing: 0.1rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.detail_submenu:hover,
|
||||||
|
.detail_submenu:focus,
|
||||||
|
.detail_submenu:active,
|
||||||
|
.detail_submenu:checked {
|
||||||
|
background-color: #104277;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,187 @@
|
||||||
|
.contact_partner_client {
|
||||||
|
|
||||||
|
.okUpdateData {
|
||||||
|
font-size: small;
|
||||||
|
color: green;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.koUpdateData {
|
||||||
|
font-size: small;
|
||||||
|
color: red;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 600px) {}
|
||||||
|
|
||||||
|
@media only screen and (min-width: 601px) and (max-width: 991px) {}
|
||||||
|
|
||||||
|
@media only screen and (min-width: 992px) and (max-width: 1199px) {}
|
||||||
|
|
||||||
|
@media only screen and (min-width: 1200px) {
|
||||||
|
|
||||||
|
.div_row {
|
||||||
|
float: left;
|
||||||
|
//border:0px solid black;
|
||||||
|
border-width: 0.01rem;
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.div_row_gauche {
|
||||||
|
float: left;
|
||||||
|
//border:0px solid black;
|
||||||
|
border-width: 0.01rem;
|
||||||
|
width: 48%;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.div_row_droite {
|
||||||
|
float: right;
|
||||||
|
//border:0px solid black;
|
||||||
|
border-width: 0.01rem;
|
||||||
|
width: 48%;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.titre1 {
|
||||||
|
font-family: "Quicksand", "Signika", sans-serif;
|
||||||
|
font-size: medium;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 0.8rem;
|
||||||
|
color: white;
|
||||||
|
cursor: pointer;
|
||||||
|
font-style: italic;
|
||||||
|
background-color: gray;
|
||||||
|
font-weight: normal;
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.training_data {
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
box-shadow: 1px 1px 10px 1px rgba(0, 0, 0, 0.5);
|
||||||
|
-webkit-box-shadow: 1px 1px 10px 1px rgba(0, 0, 0, 0.5);
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
padding-top: 10px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.training_caract {
|
||||||
|
width: 30%;
|
||||||
|
padding: 5px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.training_text {
|
||||||
|
width: 50%;
|
||||||
|
padding: 5px;
|
||||||
|
float: left;
|
||||||
|
height: 320px !important;
|
||||||
|
min-height: 320px !important;
|
||||||
|
max-height: 320px !important;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.titre_training_text {
|
||||||
|
font-size: small;
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.css-1t8l2tu-MuiInputBase-input-MuiOutlinedInput-input {
|
||||||
|
padding-left: 5px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.css-1sumxir-MuiFormLabel-root-MuiInputLabel-root {
|
||||||
|
margin-left: 1px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.disabled_style {
|
||||||
|
//background-color: #ECEFF1;
|
||||||
|
font-size: small !important;
|
||||||
|
color: black;
|
||||||
|
width: 90% !important;
|
||||||
|
height: 3rem !important;
|
||||||
|
margin: 5px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bton_suppr {
|
||||||
|
background: transparent;
|
||||||
|
color: red;
|
||||||
|
border-radius: 5rem;
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
height: 2.5rem;
|
||||||
|
width: 40%;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bton_enreg {
|
||||||
|
border-radius: 5rem;
|
||||||
|
font-size: small;
|
||||||
|
background: #81BC3A !important;
|
||||||
|
text-align: right;
|
||||||
|
height: 2.5rem;
|
||||||
|
width: 40%;
|
||||||
|
color: white;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bton_edit {
|
||||||
|
border-radius: 5rem;
|
||||||
|
font-size: small;
|
||||||
|
background: black !important;
|
||||||
|
text-align: right;
|
||||||
|
height: 2.5rem;
|
||||||
|
width: 40%;
|
||||||
|
color: white;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bton_annule {
|
||||||
|
border-radius: 5rem;
|
||||||
|
font-size: small;
|
||||||
|
background: lightgray !important;
|
||||||
|
text-align: right;
|
||||||
|
height: 2.5rem;
|
||||||
|
width: 40%;
|
||||||
|
color: black;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -59,6 +59,58 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.bton_add_session {
|
||||||
|
background: #c8cfd5;
|
||||||
|
color: black;
|
||||||
|
width: 20% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_plus {
|
||||||
|
width: 8%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.client_grid {
|
||||||
|
margin-right: 10px !important;
|
||||||
|
margin-left: 10px !important;
|
||||||
|
display: grid;
|
||||||
|
height: 200px;
|
||||||
|
grid-template: repeat(2, 1fr) / repeat(2, 1fr);
|
||||||
|
gap: 20px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.client_grid>div {
|
||||||
|
display: inline-block;
|
||||||
|
color: #444;
|
||||||
|
border: 1px solid #CCC;
|
||||||
|
background: #DDD;
|
||||||
|
box-shadow: 1px 1px 10px 1px rgb(0 0 0 / 15%);
|
||||||
|
cursor: pointer;
|
||||||
|
vertical-align: middle;
|
||||||
|
padding: 5px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.client_grid>div:hover {
|
||||||
|
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -66,3 +66,4 @@
|
||||||
@import "./components/hebergementlms";
|
@import "./components/hebergementlms";
|
||||||
@import "./components/addpartnerclient";
|
@import "./components/addpartnerclient";
|
||||||
@import "./components/partnerclient";
|
@import "./components/partnerclient";
|
||||||
|
@import "./components/contactpartnerclient"
|
||||||
|
|
Loading…
Reference in New Issue