27/07/23 - 17h
parent
c1cbd82330
commit
4db656694b
|
@ -54,6 +54,7 @@
|
|||
"js-cookie": "^3.0.1",
|
||||
"js-file-download": "^0.4.12",
|
||||
"js-video-url-parser": "^0.5.1",
|
||||
"lucide-react": "^0.263.1",
|
||||
"moment": "^2.29.4",
|
||||
"mui-datatables": "^4.3.0",
|
||||
"mui-daterange-picker": "^1.0.5",
|
||||
|
@ -24453,6 +24454,14 @@
|
|||
"es5-ext": "~0.10.2"
|
||||
}
|
||||
},
|
||||
"node_modules/lucide-react": {
|
||||
"version": "0.263.1",
|
||||
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.263.1.tgz",
|
||||
"integrity": "sha512-keqxAx97PlaEN89PXZ6ki1N8nRjGWtDa4021GFYLNj0RgruM5odbpl8GHTExj0hhPq3sF6Up0gnxt6TSHu+ovw==",
|
||||
"peerDependencies": {
|
||||
"react": "^16.5.1 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/lz-string": {
|
||||
"version": "1.4.4",
|
||||
"license": "WTFPL",
|
||||
|
@ -61957,6 +61966,12 @@
|
|||
"es5-ext": "~0.10.2"
|
||||
}
|
||||
},
|
||||
"lucide-react": {
|
||||
"version": "0.263.1",
|
||||
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.263.1.tgz",
|
||||
"integrity": "sha512-keqxAx97PlaEN89PXZ6ki1N8nRjGWtDa4021GFYLNj0RgruM5odbpl8GHTExj0hhPq3sF6Up0gnxt6TSHu+ovw==",
|
||||
"requires": {}
|
||||
},
|
||||
"lz-string": {
|
||||
"version": "1.4.4"
|
||||
},
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
"js-cookie": "^3.0.1",
|
||||
"js-file-download": "^0.4.12",
|
||||
"js-video-url-parser": "^0.5.1",
|
||||
"lucide-react": "^0.263.1",
|
||||
"moment": "^2.29.4",
|
||||
"mui-datatables": "^4.3.0",
|
||||
"mui-daterange-picker": "^1.0.5",
|
||||
|
|
|
@ -16,7 +16,10 @@ import parse from 'html-react-parser'
|
|||
import { BsEye, BsFileText } from "react-icons/bs";
|
||||
import { useHistory } from "react-router-dom";
|
||||
import axios from "axios";
|
||||
import { CiCoffeeBean } from "react-icons/ci";
|
||||
import { CiCoffeeBean, CiDesktop, CiFileOff } from "react-icons/ci";
|
||||
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||
|
||||
//import { LuScreenShare, LuScreenShareOff } from "react-icons/lu";
|
||||
|
||||
const DistplayPartnerTraningsPage = (props) => {
|
||||
|
||||
|
@ -28,10 +31,6 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
{ value: 'title', label: 'Titre' },
|
||||
{ value: 'certif', label: 'Certification' }
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
||||
const [selectedfilt1, setselectedfilt1] = useState("");
|
||||
const [selectedfilt2, setselectedfilt2] = useState("");
|
||||
const [selectedfilt3, setselectedfilt3] = useState("");
|
||||
|
@ -186,6 +185,7 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
}
|
||||
const columns = [
|
||||
{ field: 'id', headerName: 'id', hide: true },
|
||||
{ field: 'lms_class_code', headerName: 'lms_class_code', hide: true },
|
||||
{ field: 'zone_diffusion', headerName: 'zone_diffusion', hide: true },
|
||||
{ field: 'internal_url', headerName: 'internal_url', hide: true },
|
||||
{ field: 'external_code', headerName: 'Code Formation', width: 200, hideable: false, flex: 1 },
|
||||
|
@ -253,56 +253,64 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
field: "push_to_lms", headerName: 'Push Elearning',
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<nav>
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
}}
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
}}
|
||||
>
|
||||
|
||||
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length > 2 && <CiFileOff />}
|
||||
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length <= 2 && <CiDesktop />}
|
||||
{!cellValues.row.lms_class_code && <CiDesktop />}
|
||||
|
||||
</Button>}
|
||||
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
<CiCoffeeBean />
|
||||
|
||||
</Button>}
|
||||
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
/!\ Important : Confirmer la publication de la formation dans l'eapce E-Learning
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
close();
|
||||
}}> Valider </button>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
/!\ Important : Confirmer la publication de la formation dans l'eapce E-Learning.
|
||||
Vous allez écraser d'eventuelles informations déjà présente dans le e-Learning, pour cette formation.
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
)}
|
||||
</Popup>
|
||||
</nav>
|
||||
|
||||
);
|
||||
}
|
||||
|
@ -649,12 +657,22 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
}
|
||||
|
||||
|
||||
const [isLoading, setLoading] = useState();
|
||||
|
||||
|
||||
const [handlepush_to_lms_api, sethandlepush_to_lms_api] = useState("");
|
||||
const [handlepush_to_lms_result, sethandlepush_to_lms_result] = useState("");
|
||||
const [handlepush_to_lms_message, sethandlepush_to_lms_message] = useState("");
|
||||
|
||||
function handlepush_to_lms(event, cellValues) {
|
||||
|
||||
if (cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length > 2) {
|
||||
alert(" Cette formation est déjà publiée sur la plateforme de E-Learning");
|
||||
return;
|
||||
}
|
||||
|
||||
setLoading(true);
|
||||
|
||||
//console.log(" ### event.target.value = ", event.target.value);
|
||||
const formData = new FormData();
|
||||
const url = process.env.REACT_APP_API_URL + "myclass/api/Push_Class_To_MySy_LMS/";
|
||||
|
@ -671,7 +689,8 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
sethandlepush_to_lms_api("true");
|
||||
sethandlepush_to_lms_result(res.data.message);
|
||||
|
||||
alert(res.data.message );
|
||||
setLoading(false);
|
||||
alert(res.data.message);
|
||||
|
||||
|
||||
}
|
||||
|
@ -684,12 +703,14 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
|
||||
sethandlepush_to_lms_api("false");
|
||||
sethandlepush_to_lms_message(res.data.message);
|
||||
alert("Erreur : "+res.data.message );
|
||||
setLoading(false);
|
||||
alert("Erreur : " + res.data.message);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
console.warn('Erro handlepush_to_lms = ', error);
|
||||
sethandlepush_to_lms_api("false");
|
||||
setLoading(false);
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -697,13 +718,9 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
return (
|
||||
|
||||
<div className='displaypartnertrainingpagination'>
|
||||
{/*String(myApiResponse) === String("False") && <div className="parter_div_droite">
|
||||
|
||||
<div className="koUpdateData"> Impossible de contacter l'hote distant </div>
|
||||
|
||||
</div>
|
||||
|
||||
*/}
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
|
||||
{updatetraining && <div>
|
||||
|
||||
|
@ -838,6 +855,7 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
price: JSON.parse(item).price,
|
||||
description: parse((JSON.parse(item).description).replace(/(<([^>]+)>)/ig, '')),
|
||||
published: JSON.parse(item).published,
|
||||
lms_class_code: JSON.parse(item).lms_class_code,
|
||||
}
|
||||
))}
|
||||
|
||||
|
|
|
@ -36,7 +36,8 @@ import Pricing from "./Pricing";
|
|||
import {
|
||||
FcHome, FcButtingIn, FcDepartment, FcBullish, FcAddDatabase, FcFolder,
|
||||
FcList, FcGraduationCap, FcMultipleDevices, FcCurrencyExchange,
|
||||
FcMoneyTransfer, FcFeedback, FcKey, FcVideoCall, FcSettings
|
||||
FcMoneyTransfer, FcFeedback, FcKey, FcVideoCall, FcSettings,
|
||||
FcBusinesswoman, FcServices, FcCollect, FcCandleSticks
|
||||
} from "react-icons/fc";
|
||||
|
||||
//import { FcHome} from "react-icons/fc";
|
||||
|
@ -689,66 +690,45 @@ const Partner = (props) => {
|
|||
{String(menu) !== "statistique" && <div className="sousmenu" onClick={DisplayStat}> <FcBullish className="icone_menu" /> STATISTIQUES</div>}
|
||||
{String(menu) === "statistique" && <div className="sousmenu_selected" onClick={DisplayStat}> <FcBullish className="icone_menu" /> STATISTIQUES</div>}
|
||||
<hr className="my_hr" />
|
||||
<div class="separator"> Mes Clients </div>
|
||||
|
||||
<hr />
|
||||
{String(deplie_mes_clients) === "1" && <div className="sousmenu sousmenu" style={{ "color": "white", "textAlign": "center" }} onClick={ftion_deplie_mes_clients}>
|
||||
Mes Clients <img src={downarrow} className="hebergement_icone" />
|
||||
|
||||
<div>
|
||||
<hr className="my_hr" />
|
||||
{String(menu) !== "mes_clients" && <div className="sousmenu" onClick={mes_clients_func}> <FcBusinesswoman className="icone_menu" /> MES CLIENTS</div>}
|
||||
{String(menu) === "mes_clients" && <div className="sousmenu_selected" onClick={mes_clients_func}> <FcBusinesswoman className="icone_menu" /> MES CLIENTS</div>}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<hr className="my_hr" />
|
||||
{String(menu) !== "mes_devis" && <div className="sousmenu" onClick={mes_devis_func}> <FcCandleSticks className="icone_menu" /> MES DEVIS</div>}
|
||||
{String(menu) === "mes_devis" && <div className="sousmenu_selected" onClick={mes_devis_func}> <FcCandleSticks className="icone_menu" /> MES DEVIS</div>}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<hr className="my_hr" />
|
||||
{String(menu) !== "mes_cmd" && <div className="sousmenu" onClick={mes_cmd_func}> <FcCollect className="icone_menu" /> MES COMMANDES</div>}
|
||||
{String(menu) === "mes_cmd" && <div className="sousmenu_selected" onClick={mes_cmd_func}> <FcCollect className="icone_menu" /> MES COMMANDES</div>}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="separator"> Espace E-Learning </div>
|
||||
|
||||
|
||||
{String(has_partner_lms_url) === "1" && <div className="sousmenu" onClick={(e) => {
|
||||
e.preventDefault();
|
||||
window.open(
|
||||
partner_lms_url,
|
||||
'_blank'
|
||||
);
|
||||
}}> <FcVideoCall className="icone_menu" /> MON HEBERGEMENT </div>}
|
||||
|
||||
{String(has_partner_lms_url) === "1" && <div>
|
||||
<hr className="my_hr" />
|
||||
{String(menu) !== "statistique" && <div className="sousmenu" onClick={DisplaySetUpLMS}> <FcServices className="icone_menu" /> CONFIGURATION</div>}
|
||||
{String(menu) === "statistique" && <div className="sousmenu_hebergement_lms" onClick={DisplaySetUpLMS}> <FcServices className="icone_menu" /> CONFIGURATION</div>}
|
||||
</div>}
|
||||
|
||||
<hr className="my_hr" />
|
||||
|
||||
{String(deplie_mes_clients) !== "1" &&
|
||||
<div className="sousmenu" style={{ "color": "white", "textAlign": "center" }} >
|
||||
<nav onClick={ftion_deplie_mes_clients}> Mes Clients <img src={uparrow} /> </nav>
|
||||
<hr className="my_hr" />
|
||||
|
||||
<div>
|
||||
<hr className="my_hr" />
|
||||
{String(menu) !== "mes_clients" && <div className="sousmenu" onClick={mes_clients_func}> <FcSettings className="icone_menu" /> MES CLIENTS</div>}
|
||||
{String(menu) === "mes_clients" && <div className="sousmenu_selected" onClick={mes_clients_func}> <FcSettings className="icone_menu" /> MES CLIENTS</div>}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<hr className="my_hr" />
|
||||
{String(menu) !== "mes_devis" && <div className="sousmenu" onClick={mes_devis_func}> <FcSettings className="icone_menu" /> MES DEVIS</div>}
|
||||
{String(menu) === "mes_devis" && <div className="sousmenu_selected" onClick={mes_devis_func}> <FcSettings className="icone_menu" /> MES DEVIS</div>}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<hr className="my_hr" />
|
||||
{String(menu) !== "mes_cmd" && <div className="sousmenu" onClick={mes_cmd_func}> <FcSettings className="icone_menu" /> MES COMMANDES</div>}
|
||||
{String(menu) === "mes_cmd" && <div className="sousmenu_selected" onClick={mes_cmd_func}> <FcSettings className="icone_menu" /> MES COMMANDES</div>}
|
||||
</div>
|
||||
</div>}
|
||||
|
||||
|
||||
<hr />
|
||||
|
||||
{String(deplie_hebergement) === "1" && <div className="sousmenu sousmenu" style={{ "color": "white", "textAlign": "center" }} onClick={ftion_deplie_hebergement}>
|
||||
Espace E-Learning <img src={downarrow} className="hebergement_icone" />
|
||||
</div>}
|
||||
|
||||
<hr className="my_hr" />
|
||||
|
||||
{String(deplie_hebergement) !== "1" &&
|
||||
<div className="nom_prenom sousmenu" style={{ "color": "white", "textAlign": "center" }} >
|
||||
<nav onClick={ftion_deplie_hebergement}> Espace E-Learning <img src={uparrow} className="hebergement_icone" /> </nav>
|
||||
<hr className="my_hr" />
|
||||
|
||||
{String(has_partner_lms_url) === "1" && <div className="sousmenu" onClick={(e) => {
|
||||
e.preventDefault();
|
||||
window.open(
|
||||
partner_lms_url,
|
||||
'_blank'
|
||||
);
|
||||
}}> <FcVideoCall className="icone_menu" /> MON HEBERGEMENT </div>}
|
||||
|
||||
{String(has_partner_lms_url) === "1" && <div>
|
||||
<hr className="my_hr" />
|
||||
{String(menu) !== "statistique" && <div className="sousmenu" onClick={DisplaySetUpLMS}> <FcSettings className="icone_menu" /> CONFIGURATION</div>}
|
||||
{String(menu) === "statistique" && <div className="sousmenu_hebergement_lms" onClick={DisplaySetUpLMS}> <FcSettings className="icone_menu" /> CONFIGURATION</div>}
|
||||
</div>}
|
||||
</div>}
|
||||
|
||||
|
||||
<hr className="my_hr" />
|
||||
|
|
|
@ -197,6 +197,15 @@ const Partner_Client = (props) => {
|
|||
<div className="div_row">
|
||||
<div style={{ height: 500, width: '100%' }}>
|
||||
<div className="div_row">
|
||||
|
||||
<Button variant="outlined" onClick={"submenu_import_participant"} className="menu_import_participant bton_import_excel" style={{
|
||||
"background": "#c8cfd5",
|
||||
"color": "black", "width": "auto"
|
||||
}}
|
||||
id='menu_import_participant' name='menu_import_participant'>Choisir un fichier et Importer des clients
|
||||
<img src={excel_icone} alt="ajout csv" className="icon_excel" />
|
||||
</Button>
|
||||
|
||||
<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" />
|
||||
|
|
|
@ -1,4 +1,26 @@
|
|||
.displaypartnertrainingpagination {
|
||||
|
||||
.mysy_spinner{
|
||||
border-radius: 5px;
|
||||
border: 1px solid black;
|
||||
opacity: 100%;
|
||||
}
|
||||
|
||||
|
||||
.loader-container {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
//justify-content: center;
|
||||
align-items: center;
|
||||
left: -5%;
|
||||
position: fixed;
|
||||
z-index: 1;
|
||||
top: 0px;
|
||||
background: white;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.css-qc6sy-singleValue {
|
||||
color: white !important;
|
||||
}
|
||||
|
|
|
@ -2000,6 +2000,28 @@
|
|||
border-bottom-right-radius: 5px;
|
||||
}
|
||||
|
||||
.separator {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
margin-bottom: 0.5rem !important;
|
||||
}
|
||||
|
||||
.separator::before,
|
||||
.separator::after {
|
||||
content: '';
|
||||
flex: 1;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
}
|
||||
|
||||
.separator:not(:empty)::before {
|
||||
margin-right: .35em;
|
||||
}
|
||||
|
||||
.separator:not(:empty)::after {
|
||||
margin-left: .35em;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.mce-content-body {
|
||||
|
|
|
@ -111,6 +111,17 @@
|
|||
.client_grid>div:hover {
|
||||
box-shadow: 5px 1px 5px 1px rgb(0 0 0 / 25%);
|
||||
}
|
||||
|
||||
.icon_excel {
|
||||
width: 6%;
|
||||
}
|
||||
|
||||
.bton_import_excel {
|
||||
background: #c8cfd5;
|
||||
color: black;
|
||||
width: 30% !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue