31/08/2023 - 21h30
parent
208fbd11cd
commit
34cea2748c
|
@ -1,2 +1,5 @@
|
||||||
code_session;date_debut;date_fin;nb_participant;adresse;code_postal;ville;date_debut_inscription;date_fin_inscription;formateur;distanciel;presentiel;prix_session;session_status;lms_class_code
|
formation_code_externe;code_session;date_debut;date_fin;nb_participant;adresse;code_postal;ville;date_debut_inscription;date_fin_inscription;formateur;distanciel;presentiel;prix_session;session_status;lms_class_code;session_etape
|
||||||
session1;25/05/2023;29/05/2024;18;79 Rue de Sèvres;92100;Boulogne-Billancourt;03/01/2023;28/06/2024;EFAI;0;1;2590;1;INTRODUCTIONAUXBASESDEDONNEES
|
MYSY_Test_AP;KANA1;11/10/2023;13/10/2023;20;2 passage de la Providence;75020;Paris;01/09/2023;30/09/2023;NBE;1;0;750;1;Apprentissage des Kana;0
|
||||||
|
MYSY_Test_AP;KANA2;14/11/2023;16/11/2023;15;2 passage de la Providence;75020;Paris;01/09/2023;30/09/2023;NBE;1;0;750;1;Apprentissage des Kana;0
|
||||||
|
MYSY_Test_AP;KANA3;21/11/2023;23/11/2023;10;2 passage de la Providence;75020;Paris;01/09/2023;30/09/2023;NBE;1;0;750;1;Perfectionnement;0
|
||||||
|
MYSY_Test_AP;KANA4;28/11/2023;30/11/2023;15;2 passage de la Providence;75020;Paris;01/09/2023;30/09/2023;NBE;1;0;750;1;Perfectionnement;0
|
||||||
|
|
|
|
@ -1,2 +0,0 @@
|
||||||
formation_code_externe;code_session;date_debut;date_fin;nb_participant;adresse;code_postal;ville;date_debut_inscription;date_fin_inscription;formateur;distanciel;presentiel;prix_session;session_status;lms_class_code;session_etape
|
|
||||||
MYSY_Test_OP;session1;25/10/2023;29/10/2024;18;79 Rue de Sèvres;92100;Boulogne-Billancourt;03/01/2023;28/10/2024;EFAI;0;1;2590;1;INTRODUCTIONAUXBASESDEDONNEES;0
|
|
|
|
@ -38,7 +38,8 @@ import Emargement from "./pages/emargementOk";
|
||||||
import Formation_Cartouche_Com from "./pages/recherche_cartouche_com";
|
import Formation_Cartouche_Com from "./pages/recherche_cartouche_com";
|
||||||
import SeDesabonner from './pages/sedesabonner';
|
import SeDesabonner from './pages/sedesabonner';
|
||||||
import OrderConfirmation_3DS from "./pages/orderconfirmation_3DS";
|
import OrderConfirmation_3DS from "./pages/orderconfirmation_3DS";
|
||||||
import Training_Inactive_Or_Not_Found from "./pages/Traning_Inactif_Or_Not_Exist"
|
import Training_Inactive_Or_Not_Found from "./pages/Traning_Inactif_Or_Not_Exist";
|
||||||
|
import TestUrl_New from "./pages/testurl_new";
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
|
|
||||||
|
@ -69,6 +70,7 @@ function App() {
|
||||||
<Route path="/recherche-formation" exact component={Recherche_new_v2} />
|
<Route path="/recherche-formation" exact component={Recherche_new_v2} />
|
||||||
<Route path="/recherche-formation/ref/:NewSearchText" exact component={Recherche_new_v2} />
|
<Route path="/recherche-formation/ref/:NewSearchText" exact component={Recherche_new_v2} />
|
||||||
<Route path="/testurl/:course/:tab" exact component={TestUrl} />
|
<Route path="/testurl/:course/:tab" exact component={TestUrl} />
|
||||||
|
<Route path="/testurl_new/:courseid/:tabid" exact component={TestUrl_New} />
|
||||||
<Route path="/Display-Detail-formation/:classId" exact component={DisplayDetailClass_new_v2} />
|
<Route path="/Display-Detail-formation/:classId" exact component={DisplayDetailClass_new_v2} />
|
||||||
<Route path="/Display-Detail-formation/:classId" exact component={DisplayDetailClass_new_v2} />
|
<Route path="/Display-Detail-formation/:classId" exact component={DisplayDetailClass_new_v2} />
|
||||||
<Route path="/Display-Detail-formation/:classId/:action" exact component={DisplayDetailClass_new_v2} />
|
<Route path="/Display-Detail-formation/:classId/:action" exact component={DisplayDetailClass_new_v2} />
|
||||||
|
|
|
@ -173,7 +173,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
{ field: 'formateur', headerName: 'Formateur', width: datagrid_columns_size_model1, hide: true, hideable: true, },
|
{ field: 'formateur', headerName: 'Formateur', width: datagrid_columns_size_model1, hide: true, hideable: true, },
|
||||||
{ field: 'nb_participant', headerName: 'Nb Parti.', width: datagrid_columns_size_model2, align: "center", },
|
{ field: 'nb_participant', headerName: 'Nb Parti.', width: datagrid_columns_size_model2, align: "center", },
|
||||||
{
|
{
|
||||||
field: 'taux_replissage', headerName: 'Replissage', align: "center", width: datagrid_columns_size_model1,
|
field: 'taux_remplissage', headerName: 'Remplissage', align: "center", width: datagrid_columns_size_model1,
|
||||||
align: "left",
|
align: "left",
|
||||||
renderCell: (params) => {
|
renderCell: (params) => {
|
||||||
return (
|
return (
|
||||||
|
@ -182,12 +182,12 @@ const DisplayPartnerSession = (props) => {
|
||||||
color="success"
|
color="success"
|
||||||
sx={{ color: "#1bd900" }}
|
sx={{ color: "#1bd900" }}
|
||||||
variant="determinate"
|
variant="determinate"
|
||||||
value={(params?.row.taux_replissage * 100).toFixed(2)}
|
value={(params?.row.taux_remplissage * 100).toFixed(2)}
|
||||||
/>
|
/>
|
||||||
<Typography
|
<Typography
|
||||||
variant="body2"
|
variant="body2"
|
||||||
color="text.secondary"
|
color="text.secondary"
|
||||||
>{`${(params?.row.taux_replissage * 100).toFixed(0)}%`}</Typography>
|
>{`${(params?.row.taux_remplissage * 100).toFixed(0)}%`}</Typography>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -4496,7 +4496,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
nb_participant: JSON.parse(item).nb_participant,
|
nb_participant: JSON.parse(item).nb_participant,
|
||||||
title: JSON.parse(item).title,
|
title: JSON.parse(item).title,
|
||||||
domaine: JSON.parse(item).domaine,
|
domaine: JSON.parse(item).domaine,
|
||||||
taux_replissage: JSON.parse(item).taux_replissage,
|
taux_remplissage: JSON.parse(item).taux_remplissage,
|
||||||
nb_inscrit: JSON.parse(item).nb_inscrit,
|
nb_inscrit: JSON.parse(item).nb_inscrit,
|
||||||
nb_preinscrit: JSON.parse(item).nb_preinscrit,
|
nb_preinscrit: JSON.parse(item).nb_preinscrit,
|
||||||
duration: JSON.parse(item).duration_concat,
|
duration: JSON.parse(item).duration_concat,
|
||||||
|
@ -4619,7 +4619,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
onChange={liste_sessions_file_change}
|
onChange={liste_sessions_file_change}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<a href='/sample/template_import_session_plusieurs_formations.csv' download>Télécharger un fichier modèle</a>
|
<a href='/sample/template_import_session_formation.csv' download>Télécharger un fichier modèle</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="div_row"> </div>
|
<div className="div_row"> </div>
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
import React, { useState, useEffect, useCallback, useRef } from "react";
|
||||||
|
import axios from "axios";
|
||||||
|
import { Helmet } from "react-helmet";
|
||||||
|
import { useParams } from 'react-router-dom'
|
||||||
|
import Header from "./Header";
|
||||||
|
import { useLocation } from "react-router-dom";
|
||||||
|
import fileDownload from 'js-file-download'
|
||||||
|
import { RichTextEditor } from '@mantine/rte';
|
||||||
|
import { Editor } from '@tinymce/tinymce-react';
|
||||||
|
import Button from '@mui/material/Button';
|
||||||
|
|
||||||
|
|
||||||
|
const TestUrl_New = (props) => {
|
||||||
|
|
||||||
|
const { courseid, tabid } = useParams();
|
||||||
|
const [message, setMessage] = useState(null);
|
||||||
|
const editorRef_programme = useRef(null);
|
||||||
|
const [editorRef_programme_limite, seteditorRef_programme] = useState(1000);
|
||||||
|
const [field_programme, setfield_programme] = useState("");
|
||||||
|
const [editor_tochange, seteditor_tochange] = useState("");
|
||||||
|
|
||||||
|
function editor_keyup() {
|
||||||
|
seteditor_tochange("1");
|
||||||
|
}
|
||||||
|
|
||||||
|
function DataUpdated() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function add_text() {
|
||||||
|
console.log(" Ajouter un texte ");
|
||||||
|
editorRef_programme.current.insertContent("<i> OKKK </i> ");
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="testurl_new">
|
||||||
|
<Helmet>
|
||||||
|
<title>testurl_new</title>
|
||||||
|
<meta name="description" content="{this.metaDetails.description}" />
|
||||||
|
<meta name="keywords" content="{this.metaDetails.keywords}" />
|
||||||
|
</Helmet>
|
||||||
|
|
||||||
|
<Header />
|
||||||
|
|
||||||
|
<div className="div_mobile">
|
||||||
|
<h3> Page de test * testurl_new </h3>
|
||||||
|
parametres courseid = {courseid}, tabid = {tabid}
|
||||||
|
<br />
|
||||||
|
<div className="div_row">
|
||||||
|
<div style={{ "width": "48%", "marginLeft": "1rem", "float": "left" }}>
|
||||||
|
<div className="titre_training_text"> Programme (max 1000 caractères) </div>
|
||||||
|
<Editor
|
||||||
|
id="cherif"
|
||||||
|
onInit={(evt, editor) => editorRef_programme.current = editor}
|
||||||
|
initialValue={field_programme}
|
||||||
|
onKeyUp={editor_keyup}
|
||||||
|
onEditorChange={(newValue, editor) => {
|
||||||
|
if (String(editor_tochange) === "1") {
|
||||||
|
//alert(" change");
|
||||||
|
DataUpdated();
|
||||||
|
seteditor_tochange("");
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
init={{
|
||||||
|
resize: false,
|
||||||
|
height: 300,
|
||||||
|
menubar: false,
|
||||||
|
plugins: [
|
||||||
|
'advlist autolink lists link image charmap print preview anchor',
|
||||||
|
'searchreplace visualblocks code fullscreen',
|
||||||
|
'insertdatetime media table paste code help wordcount'
|
||||||
|
],
|
||||||
|
|
||||||
|
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div style={{ "width": "48%", "marginLeft": "1rem", "float": "left" }}>
|
||||||
|
<div className="titre1"> Action </div>
|
||||||
|
<Button className="bton_enreg" onClick={add_text}
|
||||||
|
>Ajouter text 'OKKK'
|
||||||
|
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div >
|
||||||
|
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export default TestUrl_New;
|
|
@ -0,0 +1,12 @@
|
||||||
|
import TestUrl_New from "../components/TestUrl_new";
|
||||||
|
import Navigation from "../components/Navigation";
|
||||||
|
export default function Recherche() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<Navigation />
|
||||||
|
<TestUrl_New />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
|
||||||
|
import TestUrl_New from "../components/TestUrl_new";
|
||||||
|
import Navigation from "../components/Navigation";
|
||||||
|
export default function Recherche() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<Navigation />
|
||||||
|
<TestUrl_New />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -75,4 +75,5 @@
|
||||||
@import "./components/global_mysy_css";
|
@import "./components/global_mysy_css";
|
||||||
@import "./components/employes";
|
@import "./components/employes";
|
||||||
@import "./components/materiels";
|
@import "./components/materiels";
|
||||||
|
@import "./components/testurl_new";
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue