24/12/2024 - 22h
parent
6916a25595
commit
232cbd53e9
|
@ -91,6 +91,7 @@
|
|||
"react": "^18.2.0",
|
||||
"react-apexcharts": "^1.4.0",
|
||||
"react-app-rewired": "^2.2.1",
|
||||
"react-audio-player": "^0.17.0",
|
||||
"react-audio-voice-recorder": "^2.2.0",
|
||||
"react-big-calendar": "^1.8.4",
|
||||
"react-bootstrap": "^2.1.2",
|
||||
|
@ -134,7 +135,7 @@
|
|||
"react-paginate": "^8.1.1",
|
||||
"react-pdf": "^7.7.1",
|
||||
"react-pick-color": "^2.0.0",
|
||||
"react-player": "^2.10.0",
|
||||
"react-player": "^2.16.0",
|
||||
"react-pro-sidebar": "^1.1.0",
|
||||
"react-range": "^1.8.12",
|
||||
"react-rating-stars-component": "^2.2.0",
|
||||
|
@ -175,6 +176,7 @@
|
|||
"swr": "^1.2.1",
|
||||
"tinymce": "^7.1.2",
|
||||
"use-global-state": "^0.1.2",
|
||||
"use-sound": "^4.0.3",
|
||||
"victory": "^36.6.6",
|
||||
"video-react": "^0.15.0",
|
||||
"web-vitals": "^2.1.4",
|
||||
|
@ -16268,6 +16270,11 @@
|
|||
"node": ">= 6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/howler": {
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/howler/-/howler-2.2.4.tgz",
|
||||
"integrity": "sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w=="
|
||||
},
|
||||
"node_modules/hpack.js": {
|
||||
"version": "2.1.6",
|
||||
"resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
|
||||
|
@ -26076,6 +26083,18 @@
|
|||
"semver": "bin/semver"
|
||||
}
|
||||
},
|
||||
"node_modules/react-audio-player": {
|
||||
"version": "0.17.0",
|
||||
"resolved": "https://registry.npmjs.org/react-audio-player/-/react-audio-player-0.17.0.tgz",
|
||||
"integrity": "sha512-aCZgusPxA9HK7rLZcTdhTbBH9l6do9vn3NorgoDZRxRxJlOy9uZWzPaKjd7QdcuP2vXpxGA/61JMnnOEY7NXeA==",
|
||||
"dependencies": {
|
||||
"prop-types": "^15.7.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16",
|
||||
"react-dom": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/react-audio-visualize": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-audio-visualize/-/react-audio-visualize-1.2.0.tgz",
|
||||
|
@ -27363,9 +27382,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/react-player": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/react-player/-/react-player-2.11.0.tgz",
|
||||
"integrity": "sha512-fIrwpuXOBXdEg1FiyV9isKevZOaaIsAAtZy5fcjkQK9Nhmk1I2NXzY/hkPos8V0zb/ZX416LFy8gv7l/1k3a5w==",
|
||||
"version": "2.16.0",
|
||||
"resolved": "https://registry.npmjs.org/react-player/-/react-player-2.16.0.tgz",
|
||||
"integrity": "sha512-mAIPHfioD7yxO0GNYVFD1303QFtI3lyyQZLY229UEAp/a10cSW+hPcakg0Keq8uWJxT2OiT/4Gt+Lc9bD6bJmQ==",
|
||||
"dependencies": {
|
||||
"deepmerge": "^4.0.0",
|
||||
"load-script": "^1.0.0",
|
||||
|
@ -33031,6 +33050,17 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/use-sound": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/use-sound/-/use-sound-4.0.3.tgz",
|
||||
"integrity": "sha512-L205pEUFIrLsGYsCUKHQVCt0ajs//YQOFbEQeNwaWaqQj3y3st4SuR+rvpMHLmv8hgTcfUFlvMQawZNI3OE18w==",
|
||||
"dependencies": {
|
||||
"howler": "^2.1.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.8"
|
||||
}
|
||||
},
|
||||
"node_modules/use-sync-external-store": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
|
||||
|
@ -47129,6 +47159,11 @@
|
|||
"resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
|
||||
"integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ=="
|
||||
},
|
||||
"howler": {
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/howler/-/howler-2.2.4.tgz",
|
||||
"integrity": "sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w=="
|
||||
},
|
||||
"hpack.js": {
|
||||
"version": "2.1.6",
|
||||
"resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
|
||||
|
@ -54524,6 +54559,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"react-audio-player": {
|
||||
"version": "0.17.0",
|
||||
"resolved": "https://registry.npmjs.org/react-audio-player/-/react-audio-player-0.17.0.tgz",
|
||||
"integrity": "sha512-aCZgusPxA9HK7rLZcTdhTbBH9l6do9vn3NorgoDZRxRxJlOy9uZWzPaKjd7QdcuP2vXpxGA/61JMnnOEY7NXeA==",
|
||||
"requires": {
|
||||
"prop-types": "^15.7.2"
|
||||
}
|
||||
},
|
||||
"react-audio-visualize": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-audio-visualize/-/react-audio-visualize-1.2.0.tgz",
|
||||
|
@ -55446,9 +55489,9 @@
|
|||
}
|
||||
},
|
||||
"react-player": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/react-player/-/react-player-2.11.0.tgz",
|
||||
"integrity": "sha512-fIrwpuXOBXdEg1FiyV9isKevZOaaIsAAtZy5fcjkQK9Nhmk1I2NXzY/hkPos8V0zb/ZX416LFy8gv7l/1k3a5w==",
|
||||
"version": "2.16.0",
|
||||
"resolved": "https://registry.npmjs.org/react-player/-/react-player-2.16.0.tgz",
|
||||
"integrity": "sha512-mAIPHfioD7yxO0GNYVFD1303QFtI3lyyQZLY229UEAp/a10cSW+hPcakg0Keq8uWJxT2OiT/4Gt+Lc9bD6bJmQ==",
|
||||
"requires": {
|
||||
"deepmerge": "^4.0.0",
|
||||
"load-script": "^1.0.0",
|
||||
|
@ -59833,6 +59876,14 @@
|
|||
"use-isomorphic-layout-effect": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"use-sound": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/use-sound/-/use-sound-4.0.3.tgz",
|
||||
"integrity": "sha512-L205pEUFIrLsGYsCUKHQVCt0ajs//YQOFbEQeNwaWaqQj3y3st4SuR+rvpMHLmv8hgTcfUFlvMQawZNI3OE18w==",
|
||||
"requires": {
|
||||
"howler": "^2.1.3"
|
||||
}
|
||||
},
|
||||
"use-sync-external-store": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
|
||||
|
|
|
@ -86,6 +86,7 @@
|
|||
"react": "^18.2.0",
|
||||
"react-apexcharts": "^1.4.0",
|
||||
"react-app-rewired": "^2.2.1",
|
||||
"react-audio-player": "^0.17.0",
|
||||
"react-audio-voice-recorder": "^2.2.0",
|
||||
"react-big-calendar": "^1.8.4",
|
||||
"react-bootstrap": "^2.1.2",
|
||||
|
@ -129,7 +130,7 @@
|
|||
"react-paginate": "^8.1.1",
|
||||
"react-pdf": "^7.7.1",
|
||||
"react-pick-color": "^2.0.0",
|
||||
"react-player": "^2.10.0",
|
||||
"react-player": "^2.16.0",
|
||||
"react-pro-sidebar": "^1.1.0",
|
||||
"react-range": "^1.8.12",
|
||||
"react-rating-stars-component": "^2.2.0",
|
||||
|
@ -170,6 +171,7 @@
|
|||
"swr": "^1.2.1",
|
||||
"tinymce": "^7.1.2",
|
||||
"use-global-state": "^0.1.2",
|
||||
"use-sound": "^4.0.3",
|
||||
"victory": "^36.6.6",
|
||||
"video-react": "^0.15.0",
|
||||
"web-vitals": "^2.1.4",
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -128,4 +128,19 @@
|
|||
<priority>1.0000</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.mysy-training.com/Display-Detail-Article/comment-rendre-vos-formations-eligibles-au-cpf-grace-a-mysy-training--23f</loc>
|
||||
<lastmod>2024-12-12T11:35:41+00:00</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>1.0000</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.mysy-training.com/Display-Detail-Article/optimisation-qualiopi---simplifiez-votre-audit-avec-un-logiciel-adapte-aux-centres-de-formation-910</loc>
|
||||
<lastmod>2024-12-15T11:35:41+00:00</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>1.0000</priority>
|
||||
</url>
|
||||
|
||||
|
||||
</urlset>
|
|
@ -91,8 +91,6 @@ function Abonnement(props) {
|
|||
var num_facture = cellValues.row.num_facture;
|
||||
var url = process.env.REACT_APP_API_URL + "myclass/api/GetCustomerInvoice/" + stored_cookie + "/" + num_facture;
|
||||
|
||||
|
||||
|
||||
axios.get(url, { responseType: 'blob', },)
|
||||
.then((res) => {
|
||||
fileDownload(res.data, nom_facture)
|
||||
|
|
|
@ -20,6 +20,10 @@ import UpgradeToPro from "./UpgradeToPro"
|
|||
import Profil_Objectif from "./ProfilObjectif";
|
||||
import { useLocation } from "react-router-dom";
|
||||
|
||||
import Intranet_Factures_Client from "./Intranet_Factures_Client";
|
||||
import Intranet_Tous_Documents from "./Intranet_Tous_Documents";
|
||||
import Modules_Mes_Documents from "./Modules_Mes_Documents";
|
||||
|
||||
function Account() {
|
||||
const [menu, setmenu] = useState("affichage");
|
||||
const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']);
|
||||
|
@ -42,10 +46,13 @@ function Account() {
|
|||
|
||||
const apiUrl = process.env.REACT_APP_API_URL;
|
||||
const formData = new FormData();
|
||||
|
||||
|
||||
//alert("stored_user = "+stored_user);
|
||||
const location = useLocation();
|
||||
useEffect(() => {
|
||||
|
||||
var list_menu = ["affichage", "recherche", "upgradecompte", "profil_objectif", "mes_factures", "mes_documents"]
|
||||
|
||||
getImage();
|
||||
|
||||
if (typeof (stored_user) === "undefined" || String(stored_user) === '') {
|
||||
|
@ -85,7 +92,7 @@ function Account() {
|
|||
const [isimage, setisimage] = useState();
|
||||
|
||||
function getImage(e) {
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/getRecodedImage/";
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/getRecodedImage/";
|
||||
var form = new FormData();
|
||||
form.append("token", stored_user);
|
||||
form.append("type", "user");
|
||||
|
@ -149,12 +156,40 @@ function Account() {
|
|||
setmenu("recherche");
|
||||
};
|
||||
|
||||
|
||||
|
||||
const displayProfil_Objectif = () => {
|
||||
setmenu("profil_objectif");
|
||||
};
|
||||
|
||||
|
||||
const displayProfil_Facture = () => {
|
||||
setmenu("mes_factures");
|
||||
};
|
||||
|
||||
const displayProfil_Devis = () => {
|
||||
setmenu("mes_devis");
|
||||
};
|
||||
|
||||
const displayProfil_Convention = () => {
|
||||
setmenu("mes_conventions");
|
||||
};
|
||||
|
||||
const displayProfil_Convocation = () => {
|
||||
setmenu("mes_convocations");
|
||||
};
|
||||
|
||||
|
||||
const displayProfil_Apprenant = () => {
|
||||
setmenu("mes_apprenants");
|
||||
};
|
||||
|
||||
const displayProfil_Tout_Documents = () => {
|
||||
setmenu("tout_documents");
|
||||
};
|
||||
|
||||
const displayProfil_Modules_Mes_Documents = () => {
|
||||
setmenu("modules_mes_documents");
|
||||
};
|
||||
|
||||
const upgradetopro = () => {
|
||||
setmenu("upgradecompte");
|
||||
|
@ -164,6 +199,9 @@ function Account() {
|
|||
setmenu("affichage");
|
||||
};
|
||||
|
||||
|
||||
const [connected_user_data, setconnected_user_data] = useState();
|
||||
|
||||
function GetUserNameFromToken(event) {
|
||||
|
||||
var form = new FormData();
|
||||
|
@ -179,8 +217,11 @@ function Account() {
|
|||
setusername(JSON.parse(res.data.message).email);
|
||||
if (JSON.parse(res.data.message).migrated &&
|
||||
String(JSON.parse(res.data.message).migrated) === String("1")) {
|
||||
setmigratedaccount(String(JSON.parse(res.data.message).migrated));
|
||||
setmigratedaccount(String(JSON.parse(res.data.message).migrated));
|
||||
}
|
||||
|
||||
setconnected_user_data(JSON.parse(res.data.message));
|
||||
|
||||
//setmyApiResponse("true");
|
||||
//setResult(res.data.message)
|
||||
//setmyApimyApiMessage("OK")
|
||||
|
@ -268,6 +309,7 @@ function Account() {
|
|||
const [isSelected, setIsSelected] = useState(false);
|
||||
const [isnewimage, setisnewimage] = useState();
|
||||
|
||||
|
||||
const changeHandler = (event) => {
|
||||
let file_size = event.target.files[0].size;
|
||||
|
||||
|
@ -318,8 +360,8 @@ function Account() {
|
|||
<link rel="canonical" href={window.location.href} />
|
||||
</Helmet>
|
||||
|
||||
<h1 style={{ fontSize: '0.1px', opacity:'0' }}>Éditeur Français de logiciels pour organisme de formation. Avec solutions de E-Learning, gestion administrative et gestion relation client nous accompagnons les organismes de formation à réaliser l’audit QUALIOPI en toute sérénité. Nous sommes les moins cher du marché. Nous vous accompagnons automatiser vos process : inscription, évaluation, émargement (qr-code), Check-list QUALIOPI, Personnalisation et édition documents,
|
||||
Gestion formateurs, Catalogue formations personnalisé </h1>
|
||||
<h1 style={{ fontSize: '0.1px', opacity: '0' }}>Éditeur Français de logiciels pour organisme de formation. Avec solutions de E-Learning, gestion administrative et gestion relation client nous accompagnons les organismes de formation à réaliser l’audit QUALIOPI en toute sérénité. Nous sommes les moins cher du marché. Nous vous accompagnons automatiser vos process : inscription, évaluation, émargement (qr-code), Check-list QUALIOPI, Personnalisation et édition documents,
|
||||
Gestion formateurs, Catalogue formations personnalisé </h1>
|
||||
|
||||
<Header />
|
||||
|
||||
|
@ -345,29 +387,54 @@ function Account() {
|
|||
<div className="nom_prenom"> {username && <b> {username} </b>}
|
||||
{!username && <b> xxxx </b>} </div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayPersoInfo}> INFORMATIONS PERSONNELLES</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Objectif}> PROFILS & OBJECTIFS</div>
|
||||
<hr className="my_hr" />
|
||||
{/*<div className="sousmenu" onClick={displayHistory}> HISTORIQUE RECHERCHE</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu"> HISTORIQUE CONNEXION</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu"> MES MESSAGES </div>
|
||||
{String(migratedaccount) !== String("1") && <div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" style={{ "color": "#81BC3A" }} onClick={upgradetopro}> PASSER AU COMPTE PRO</div>
|
||||
</div>}
|
||||
|
||||
|
||||
{/** Menu pour un utilisateur de type 'user'. Exemple, l'intranet du client d'un client */}
|
||||
|
||||
{connected_user_data && connected_user_data.type &&
|
||||
String(connected_user_data.type) === "user" &&
|
||||
<div>
|
||||
<div className="sousmenu" onClick={displayPersoInfo}> INFORMATIONS PERSONNELLES</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={"displayProfil_Facture"}> CATALOGUE</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Apprenant}> APPRENANTS</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Convention}> CONVENTIONS </div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Convocation}> CONVOCATION </div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Devis}> DEVIS</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Facture}> FACTURES</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Tout_Documents}> MES DOCUMENTS</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Modules_Mes_Documents}> MODULE TOUS DOCUMENTS</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={deletemyaccount}> SUPPRIMER MON COMPTE</div>
|
||||
<hr className="my_hr" />
|
||||
</div>}
|
||||
|
||||
{/** Menu pour un utilisateur NON type 'user' exemple un apprenant */}
|
||||
{connected_user_data && connected_user_data.type &&
|
||||
String(connected_user_data.type) !== "user" &&
|
||||
<div>
|
||||
<div className="sousmenu" onClick={displayPersoInfo}> INFORMATIONS PERSONNELLES</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Objectif}> PROFILS & OBJECTIFS</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={"displayProfil_Objectif"}> MES DOCUMENTS</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Modules_Mes_Documents}> MODULE TOUS DOCUMENTS</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={displayProfil_Facture}> MES FACTURES</div>
|
||||
<hr className="my_hr" />
|
||||
<div className="sousmenu" onClick={deletemyaccount}> SUPPRIMER MON COMPTE</div>
|
||||
<hr className="my_hr" />
|
||||
</div>}
|
||||
|
||||
<hr className="my_hr" />*/}
|
||||
<div className="sousmenu" onClick={deletemyaccount}> SUPPRIMER MON COMPTE</div>
|
||||
<hr className="my_hr" />
|
||||
|
||||
</div>
|
||||
<div className="div_droite">
|
||||
<div className="div_droite" style={{ border: 'none' }}>
|
||||
{String(myApiResponse) === String("true") && <div className="okUpdateData">
|
||||
{result}
|
||||
|
||||
|
@ -385,6 +452,27 @@ function Account() {
|
|||
|
||||
{String(menu) === String("profil_objectif") && <Profil_Objectif />}
|
||||
|
||||
{String(menu) === String("mes_factures") && connected_user_data && connected_user_data.partner_owner_recid &&
|
||||
connected_user_data.partner_client_id &&
|
||||
<Intranet_Factures_Client partner_client_id={connected_user_data.partner_client_id}
|
||||
partner_owner_recid={connected_user_data.partner_owner_recid}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("tout_documents") && connected_user_data && connected_user_data.partner_owner_recid &&
|
||||
connected_user_data.partner_client_id &&
|
||||
<Intranet_Tous_Documents partner_client_id={connected_user_data.partner_client_id}
|
||||
partner_owner_recid={connected_user_data.partner_owner_recid}
|
||||
/>}
|
||||
|
||||
{String(menu) === String("modules_mes_documents") && connected_user_data && connected_user_data.partner_owner_recid &&
|
||||
connected_user_data.partner_client_id &&
|
||||
<Modules_Mes_Documents partner_client_id={connected_user_data.partner_client_id}
|
||||
partner_owner_recid={connected_user_data.partner_owner_recid}
|
||||
/>}
|
||||
|
||||
|
||||
{String(menu) === String("mes_documents") && <Profil_Objectif />}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -3022,6 +3022,7 @@ const AddClassManual = (props) => {
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "myclass");
|
||||
formData.append("object_owner_id", selected_class_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
@ -3131,7 +3132,7 @@ const AddClassManual = (props) => {
|
|||
var file_name = event.target.id;
|
||||
|
||||
}
|
||||
|
||||
|
||||
const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState();
|
||||
const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState();
|
||||
const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState();
|
||||
|
@ -3824,7 +3825,7 @@ const AddClassManual = (props) => {
|
|||
|
||||
DataUpdated();
|
||||
}
|
||||
|
||||
|
||||
const [Dialog_mysy_ia_open, setDialog_mysy_ia_open] = React.useState(false);
|
||||
return (
|
||||
<div className="addclassmanual">
|
||||
|
|
|
@ -32,9 +32,67 @@ import { IoCloseCircleOutline } from "react-icons/io5";
|
|||
import AttachFileIcon from '@mui/icons-material/AttachFile';
|
||||
import Radio from '@mui/material/Radio';
|
||||
import { FcOpenedFolder } from "react-icons/fc";
|
||||
import { MdManageAccounts } from "react-icons/md";
|
||||
import { FcInfo } from "react-icons/fc";
|
||||
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
import DialogActions from '@mui/material/DialogActions';
|
||||
import DialogContent from '@mui/material/DialogContent';
|
||||
import DialogContentText from '@mui/material/DialogContentText';
|
||||
import DialogTitle from '@mui/material/DialogTitle';
|
||||
import { IconButton } from '@material-ui/core';
|
||||
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
|
||||
|
||||
import { makeStyles } from "@material-ui/core/styles";
|
||||
import Paper from '@material-ui/core/Paper';
|
||||
import Draggable from 'react-draggable';
|
||||
import Visibility from '@mui/icons-material/Visibility';
|
||||
import VisibilityOff from '@mui/icons-material/VisibilityOff';
|
||||
|
||||
import { LiaDharmachakraSolid } from "react-icons/lia";
|
||||
import WarningAmberIcon from '@mui/icons-material/WarningAmber';
|
||||
import BlockIcon from '@mui/icons-material/Block';
|
||||
import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline';
|
||||
|
||||
|
||||
function PaperComponent(props) {
|
||||
return (
|
||||
<Draggable
|
||||
handle="#draggable-dialog-title"
|
||||
cancel={'[class*="MuiDialogContent-root"]'}
|
||||
>
|
||||
<Paper {...props} />
|
||||
</Draggable>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
|
||||
dialog: {
|
||||
position: 'absolute',
|
||||
// left: 10,
|
||||
top: 400
|
||||
},
|
||||
|
||||
paper: {
|
||||
overflowY: 'unset',
|
||||
},
|
||||
customizedButton: {
|
||||
position: 'absolute',
|
||||
left: '98%',
|
||||
top: '-3%',
|
||||
backgroundColor: 'lightgray',
|
||||
color: 'gray',
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
|
||||
const AddParnerClient = (props) => {
|
||||
|
||||
const classes = useStyles();
|
||||
|
||||
const history = useHistory();
|
||||
const [submenu, setsubmenu] = useState("");
|
||||
|
||||
|
@ -52,6 +110,8 @@ const AddParnerClient = (props) => {
|
|||
const [p_client_email, setclient_email] = useState("");
|
||||
const [p_client_nom, setclient_nom] = useState("");
|
||||
|
||||
const [p_client_intranet_account_id, setp_client_intranet_account_id] = useState("0");
|
||||
|
||||
const [p_client_type_id, setp_client_type_id] = useState("");
|
||||
const [p_client_type_label, setp_client_type_label] = useState("");
|
||||
|
||||
|
@ -220,7 +280,7 @@ const AddParnerClient = (props) => {
|
|||
inactive_active_menu_header("submenu_contact");
|
||||
|
||||
}
|
||||
|
||||
|
||||
async function submenu_activite() {
|
||||
|
||||
setsubmenu("submenu_activite");
|
||||
|
@ -617,6 +677,12 @@ const AddParnerClient = (props) => {
|
|||
}
|
||||
|
||||
|
||||
if (mylocalclient.intranet_account_id) {
|
||||
setp_client_intranet_account_id(mylocalclient.intranet_account_id);
|
||||
} else {
|
||||
setp_client_intranet_account_id("0");
|
||||
}
|
||||
|
||||
if (mylocalclient.raison_sociale) {
|
||||
setclient_raison_sociale(mylocalclient.raison_sociale);
|
||||
} else {
|
||||
|
@ -2696,6 +2762,7 @@ const AddParnerClient = (props) => {
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "partner_client");
|
||||
formData.append("object_owner_id", props.client_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
@ -2996,9 +3063,261 @@ const AddParnerClient = (props) => {
|
|||
})
|
||||
}
|
||||
|
||||
const [Dialog_mysy_intranet_account_open, setDialog_mysy_intranet_account_open] = React.useState(false);
|
||||
const Dialog_mysy_intranet_account_handleClose = () => {
|
||||
setDialog_mysy_intranet_account_open(false)
|
||||
};
|
||||
|
||||
const [p_new_login, setp_new_login] = React.useState("");
|
||||
const [p_new_pwd, setp_new_pwd] = React.useState("");
|
||||
const [p_conf_new_login, setp_conf_new_login] = React.useState("");
|
||||
|
||||
const [p_detail_user_login_locked, setp_detail_user_login_locked] = useState("");
|
||||
|
||||
const [p_detail_user_login, setp_detail_user_login] = useState("");
|
||||
|
||||
function Generate_Pwd() {
|
||||
var randomstring = Math.random().toString(36).slice(-8);
|
||||
setp_new_pwd(randomstring);
|
||||
setp_conf_new_login(randomstring);
|
||||
}
|
||||
|
||||
const [currentpawdvisible, setcurrentpawdvisible] = useState(false);
|
||||
|
||||
|
||||
const handleClickShowPassword = () => {
|
||||
if (currentpawdvisible == false) {
|
||||
document.getElementsByName("new_pwd")[0].type = "text";
|
||||
document.getElementsByName("conf_new_login")[0].type = "text";
|
||||
setcurrentpawdvisible(true);
|
||||
}
|
||||
else if (currentpawdvisible == true) {
|
||||
document.getElementsByName("new_pwd")[0].type = "password";
|
||||
document.getElementsByName("conf_new_login")[0].type = "password";
|
||||
setcurrentpawdvisible(false);
|
||||
}
|
||||
};
|
||||
|
||||
const [Add_Update_Client_Intranet_Login_Pass_Data_api, setAdd_Update_Client_Intranet_Login_Pass_Data_api] = useState();
|
||||
const [Add_Update_Client_Intranet_Login_Pass_Data_message, setAdd_Update_Client_Intranet_Login_Pass_Data_message] = useState();
|
||||
const [Add_Update_Client_Intranet_Login_Pass_Data_result, setAdd_Update_Client_Intranet_Login_Pass_Data_result] = useState();
|
||||
function Add_Update_Client_Intranet_Login_Pass_Data() {
|
||||
var form = new FormData();
|
||||
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
|
||||
|
||||
// Controle sur les champs
|
||||
|
||||
|
||||
if (p_new_pwd.trim() == "") {
|
||||
alert(" Vous devez saisir un mot de passe");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (p_conf_new_login.trim() == "") {
|
||||
alert(" Vous devez confirmer le mot de passe");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
|
||||
if (!p_new_login.match(validRegex)) {
|
||||
alert("L'adresse email est invalide.");
|
||||
return;
|
||||
}*/
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("partner_client_id", props.client_id);
|
||||
form.append("default_pwd", p_new_pwd);
|
||||
// form.append("ressource_humaine_id", selected_id);
|
||||
|
||||
|
||||
|
||||
//console.log(" form == ", form);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Create_Partner_Client_Intranet_Account/";
|
||||
|
||||
if (p_client_intranet_account_id && String(p_client_intranet_account_id).length > 3) {
|
||||
// Il s'agit d'une mise à jour de mot de passe
|
||||
myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Pwd_Partner_Client_Intranet_Account/";
|
||||
console.log(" ### mise à jour INTRANET ");
|
||||
|
||||
} else {
|
||||
console.log(" ### creation INTRANET ");
|
||||
}
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
setLoading(false);
|
||||
//console.log(" In Add_Update_Client_Intranet_Login_Pass_Data res.data.status = " + res.data.status);
|
||||
//console.log(" In Add_Update_Client_Intranet_Login_Pass_Data res.data.message r_class = " + res.data.message);
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setAdd_Update_Client_Intranet_Login_Pass_Data_api("true");
|
||||
setAdd_Update_Client_Intranet_Login_Pass_Data_result(res.data.message);
|
||||
|
||||
//setp_detail_user_login(p_new_login);
|
||||
|
||||
Dialog_mysy_intranet_account_handleClose();
|
||||
alert(res.data.message);
|
||||
setp_new_login('');
|
||||
setp_new_pwd('');
|
||||
setp_conf_new_login('');
|
||||
|
||||
}
|
||||
else {
|
||||
setAdd_Update_Client_Intranet_Login_Pass_Data_api("false");
|
||||
setAdd_Update_Client_Intranet_Login_Pass_Data_message(res.data.message);
|
||||
alert(res.data.message);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
setLoading(false);
|
||||
console.warn('UpdateStagiaireData : Not good man :( Add_Update_Client_Intranet_Login_Pass_Data = ' + error);
|
||||
setAdd_Update_Client_Intranet_Login_Pass_Data_api("false");
|
||||
alert(" Impossible de créer ou mettre à jour le compte intranet ");
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<div className="add_partner_client">
|
||||
|
||||
{/*** GESTION Compte Intranet */}
|
||||
<Dialog
|
||||
open={Dialog_mysy_intranet_account_open}
|
||||
className="displaypartnersession"
|
||||
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
|
||||
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
position: 'absolute',
|
||||
top: '10rem',
|
||||
margin: "2px",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
|
||||
>
|
||||
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title"> Gestion compte intranet </DialogTitle>
|
||||
|
||||
<DialogContent className="DialogContent_width" >
|
||||
|
||||
<div className="session_caract_Dialog" > Login
|
||||
<TextField
|
||||
autoFocus
|
||||
margin="dense"
|
||||
id="new_login"
|
||||
disabled
|
||||
//label="Prix Unitaire"
|
||||
|
||||
fullWidth
|
||||
//variant="standard"
|
||||
value={p_client_email}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="session_caract_Dialog" > Mot de passe
|
||||
<TextField
|
||||
autoFocus
|
||||
margin="dense"
|
||||
id="new_pwd"
|
||||
name="new_pwd"
|
||||
type="password"
|
||||
//label="Prix Unitaire"
|
||||
|
||||
fullWidth
|
||||
//variant="standard"
|
||||
value={p_new_pwd}
|
||||
onChange={(e) => {
|
||||
setp_new_pwd(e.target.value);
|
||||
|
||||
}
|
||||
}
|
||||
/>
|
||||
<nav className="show_pwd_div" onClick={handleClickShowPassword}>
|
||||
{currentpawdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
<div className="session_caract_Dialog" > Confirmer Mot de passe
|
||||
<TextField
|
||||
autoFocus
|
||||
margin="dense"
|
||||
id="conf_new_login"
|
||||
name="conf_new_login"
|
||||
type="password"
|
||||
//label="Prix Unitaire"
|
||||
|
||||
fullWidth
|
||||
//variant="standard"
|
||||
value={p_conf_new_login}
|
||||
onChange={(e) => {
|
||||
setp_conf_new_login(e.target.value);
|
||||
|
||||
}
|
||||
}
|
||||
/>
|
||||
<Button onClick={Generate_Pwd} className="bton_enreg_dialog" style={{ "width": "100%", "margin": "0px", "background": "orange" }}>Générer automatiquement un mot de passe <LiaDharmachakraSolid style={{ "fontSize": "medium" }} /> </Button>
|
||||
</div>
|
||||
|
||||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
|
||||
<IconButton
|
||||
autoFocus
|
||||
onClick={Dialog_mysy_intranet_account_handleClose}
|
||||
color="primary"
|
||||
className={classes.customizedButton}
|
||||
>
|
||||
<CancelPresentationIcon />
|
||||
</IconButton>
|
||||
<div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
|
||||
</div>
|
||||
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
|
||||
|
||||
|
||||
<Tooltip className="tooltip_css" id="my-tooltip04" style={{ "fontSize": "12px" }} />
|
||||
<a data-tooltip-id="my-tooltip04" data-tooltip-html="L'utilisateur sera notifié par email. Il recevra le login et le nouveau mot de passe.">
|
||||
{p_client_intranet_account_id && String(p_client_intranet_account_id).length > 3 &&
|
||||
<Button onClick={Add_Update_Client_Intranet_Login_Pass_Data} className="bton_enreg_dialog">Mettre à jour <FcInfo /></Button>}
|
||||
|
||||
{!p_client_intranet_account_id || String(p_client_intranet_account_id).length <= 3 &&
|
||||
<Button onClick={Add_Update_Client_Intranet_Login_Pass_Data} className="bton_enreg_dialog">Création Compte Intranet <FcInfo /></Button>}
|
||||
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</DialogActions>
|
||||
|
||||
|
||||
</Dialog>
|
||||
{/*** FIN GESTION Compte Intranet */}
|
||||
|
||||
|
||||
{String(props.new_customer) === "1" && <div className="div_row" style={{ "paddingRight": "5px" }}>
|
||||
<div className="div_row">
|
||||
<Button variant="outlined" onClick={submenu_donnee_client} className="detail_submenu client_menu" id='submenu_donnee_client' name='submenu_donnee_client'>Données Principales</Button>
|
||||
|
@ -3470,7 +3789,7 @@ const AddParnerClient = (props) => {
|
|||
</Button>
|
||||
{/*<Button variant="outlined" onClick={submenu_activite} className="detail_submenu client_menu" id='submenu_activite' name='submenu_activite'>Activité</Button>*/}
|
||||
<Button variant="outlined" onClick={submenu_piece_jointe} className="detail_submenu client_menu" id='submenu_piece_jointe' name='submenu_piece_jointe'>Pièces Jointes</Button>
|
||||
|
||||
|
||||
<Button variant="outlined" className="detail_submenu client_menu" id='submenu_factures' name='submenu_factures'
|
||||
onClick={(event) => {
|
||||
inactive_active_menu_header("submenu_factures");
|
||||
|
@ -3506,7 +3825,7 @@ const AddParnerClient = (props) => {
|
|||
{String(submenu).trim() === "submenu_donnee_client" && <div className="training_data" onChange={DataUpdated}>
|
||||
|
||||
<div className="session_caract" >
|
||||
<br /><br />
|
||||
<br />
|
||||
<nav style={{ "paddingLeft": "10px" }}>
|
||||
<Radio
|
||||
checked={p_client_is_company === '1'}
|
||||
|
@ -3551,6 +3870,21 @@ const AddParnerClient = (props) => {
|
|||
|
||||
/> P. Public
|
||||
</nav>
|
||||
<Tooltip className="tooltip_css" id="tooltip_intranet_account" style={{ "fontSize": "10px" }} />
|
||||
<a data-tooltip-id="tooltip_intranet_account" data-tooltip-html="Création & Gestion compte intranet">
|
||||
<nav onClick={(e) => {
|
||||
|
||||
setDialog_mysy_intranet_account_open(true);
|
||||
}}
|
||||
>
|
||||
Compte Intranet <FcInfo /> <MdManageAccounts style={{ fontSize: '20px' }} />
|
||||
|
||||
{p_client_intranet_account_id && String(p_client_intranet_account_id).length > 3 && <CheckCircleOutlineIcon style={{ color: 'green' }} />}
|
||||
{!p_client_intranet_account_id || String(p_client_intranet_account_id).length <= 3 && <BlockIcon style={{ color: 'orangered' }} />}
|
||||
|
||||
<br /></nav>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Raison sociale <br />
|
||||
|
@ -4654,8 +4988,8 @@ const AddParnerClient = (props) => {
|
|||
|
||||
|
||||
{String(submenu).trim() === "submenu_activite" && <div className="training_data">
|
||||
<PartnerClientActivite email={p_client_email} conntected_employee_id={props.conntected_employee_id}
|
||||
related_collection={"partner_client"} />
|
||||
<PartnerClientActivite email={p_client_email} conntected_employee_id={props.conntected_employee_id}
|
||||
related_collection={"partner_client"} />
|
||||
</div>}
|
||||
|
||||
{String(submenu).trim() === "submenu_piece_jointe" && <div className="training_data">
|
||||
|
|
|
@ -958,7 +958,7 @@ const Apprenant = (props) => {
|
|||
}
|
||||
|
||||
if (file_1_name && file_1_name.name) {
|
||||
console.log(" ### Traitement de : ", file_1_name.name);
|
||||
// console.log(" ### Traitement de : ", file_1_name.name);
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('File', file_1_name);
|
||||
|
@ -971,6 +971,7 @@ const Apprenant = (props) => {
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "apprenant");
|
||||
formData.append("object_owner_id", selected_apprenant_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
|
|
@ -1873,6 +1873,7 @@ const Config_Documents_Super_Admin = (props) => {
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "courrier_template");
|
||||
formData.append("object_owner_id", selected_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
|
|
@ -7387,7 +7387,7 @@ const DisplayPartnerSession = (props) => {
|
|||
}
|
||||
|
||||
if (file_1_name && file_1_name.name) {
|
||||
console.log(" ### Traitement de : ", file_1_name.name);
|
||||
// console.log(" ### Traitement de : ", file_1_name.name);
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('File', file_1_name);
|
||||
|
@ -7400,6 +7400,7 @@ const DisplayPartnerSession = (props) => {
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "inscription");
|
||||
formData.append("object_owner_id", selected_inscription_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
@ -7461,7 +7462,7 @@ const DisplayPartnerSession = (props) => {
|
|||
}
|
||||
|
||||
if (file_1_name && file_1_name.name) {
|
||||
console.log(" ### Traitement de : ", file_1_name.name);
|
||||
// console.log(" ### Traitement de : ", file_1_name.name);
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('File', file_1_name);
|
||||
|
@ -7474,6 +7475,7 @@ const DisplayPartnerSession = (props) => {
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "session_formation");
|
||||
formData.append("object_owner_id", selected_session_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
|
|
@ -5124,6 +5124,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "inscription");
|
||||
formData.append("object_owner_id", selected_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
|
|
@ -4753,6 +4753,7 @@ const Employes = (props) => {
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "ressource_humaine");
|
||||
formData.append("object_owner_id", selected_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
@ -7153,8 +7154,6 @@ const Employes = (props) => {
|
|||
open={Dialog_1_open_create_update_login_pwd_update}
|
||||
onClose={Dialog_1_handleClose_buton_create_update_login_pwd_update}
|
||||
className="employes"
|
||||
|
||||
|
||||
>
|
||||
|
||||
<DialogTitle>MySy Information</DialogTitle>
|
||||
|
@ -7249,8 +7248,6 @@ const Employes = (props) => {
|
|||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
|
||||
|
||||
<div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
<Tooltip className="tooltip_css" id="my-tooltip04" style={{ "fontSize": "12px" }} />
|
||||
|
@ -7265,8 +7262,6 @@ const Employes = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</DialogActions>
|
||||
</Dialog>
|
||||
|
||||
|
|
|
@ -5803,6 +5803,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "inscription");
|
||||
formData.append("object_owner_id", selected_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
|
|
@ -1029,6 +1029,7 @@ const Groupe_Apprenant = (props) => {
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "groupe_inscription");
|
||||
formData.append("object_owner_id", selected_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
|
|
@ -133,10 +133,17 @@ const Header = () => {
|
|||
|
||||
function user_logout_confirmation() {
|
||||
/* si c'est une connexion partner qui est active */
|
||||
if (typeof (stored_user) != "undefined") {
|
||||
setCookie("tokenmysych", "");
|
||||
if (typeof (stored_user) != "undefined") {
|
||||
const stored_cookie = getCookie('tokenmysych');
|
||||
var acces_right_token_name = stored_cookie + "_uar";
|
||||
|
||||
setpartCookie("tokenmysych", "", { path: '/' });
|
||||
setpartCookie(acces_right_token_name, "", { path: '/' });
|
||||
removeCookie(acces_right_token_name, { path: '/' });
|
||||
|
||||
|
||||
}
|
||||
history.push("/recherche-formation");
|
||||
history.push("/");
|
||||
}
|
||||
|
||||
function user_logout() {
|
||||
|
@ -542,7 +549,7 @@ const Header = () => {
|
|||
<DialogTitle>MySy Information</DialogTitle>
|
||||
<DialogContent className="DialogContent_width">
|
||||
<DialogContentText>
|
||||
Confirmez la deconnexion
|
||||
Confirmez la deconnexion
|
||||
</DialogContentText>
|
||||
|
||||
</DialogContent>
|
||||
|
@ -550,7 +557,15 @@ const Header = () => {
|
|||
<DialogActions>
|
||||
<div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
<Button onClick={part_logout_confirmation} className="bton_enreg_dialog">Deconnexion</Button>
|
||||
<Button
|
||||
|
||||
onClick={(e) => {
|
||||
part_logout_confirmation();
|
||||
user_logout_confirmation();
|
||||
|
||||
}}
|
||||
|
||||
className="bton_enreg_dialog">Deconnexion</Button>
|
||||
</div>
|
||||
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
|
||||
<Button onClick={Dialog_1_handleClose_buton} className="bton_annule_dialog" >Annuler</Button>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -2321,6 +2321,7 @@ const Notes_Evaluation = (props) => {
|
|||
formData.append("status", "0");
|
||||
formData.append("object_owner_collection", "note_evaluation");
|
||||
formData.append("object_owner_id", selected_id);
|
||||
formData.append("type_document", "");
|
||||
|
||||
//formData.append("class_internal_url", internal_url);
|
||||
//console.log("token = " + stored_cookie);
|
||||
|
|
|
@ -70,7 +70,7 @@ function PartnerSignIn() {
|
|||
function Logout_User() {
|
||||
confirmAlert({
|
||||
title: 'Deconnexion utilisateur ?',
|
||||
message: 'Confirmez la deconnexion utilisateur',
|
||||
message: 'Confirmez la deconnexion utilisateur zzz',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Oui',
|
||||
|
|
|
@ -657,7 +657,7 @@ const Partner_Client = (props) => {
|
|||
|
||||
{String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) === "1" && <nav> <FcOrganization /> Société </nav>}
|
||||
{String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) === "0" && <nav> <FcBusinessman /> Particulier </nav>}
|
||||
{String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) === "2" && <nav> <FcDepartment /> P. Public </nav>}
|
||||
{String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) === "2" && <nav> <FcDepartment /> P. Public 4</nav>}
|
||||
{String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) !== "0" &&
|
||||
String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) !== "1" &&
|
||||
String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) !== "2" &&
|
||||
|
|
|
@ -60,7 +60,7 @@ import {
|
|||
GridPreferencePanelsValue,
|
||||
|
||||
} from '@mui/x-data-grid';
|
||||
|
||||
|
||||
//import { utils, writeFileXLSX } from "xlsx";
|
||||
import { ContextMenu, ContextMenuTrigger } from "react-contextmenu";
|
||||
import zIndex from "@material-ui/core/styles/zIndex";
|
||||
|
|
|
@ -18,7 +18,7 @@ import Dialog from '@mui/material/Dialog';
|
|||
import DialogActions from '@mui/material/DialogActions';
|
||||
import DialogContent from '@mui/material/DialogContent';
|
||||
import DialogContentText from '@mui/material/DialogContentText';
|
||||
import DialogTitle from '@mui/material/DialogTitle';
|
||||
import DialogTitle from '@mui/material/DialogTitle';
|
||||
import img_2 from "../mysy_img/lms.png";
|
||||
import img_3_old from "../mysy_img/3.jpg";
|
||||
import mysy_crm from "../mysy_img/mysy_crm.png";
|
||||
|
|
|
@ -8,16 +8,11 @@ import { Helmet } from "react-helmet";
|
|||
import { useCookies } from "react-cookie";
|
||||
import { confirmAlert } from 'react-confirm-alert'; // Import
|
||||
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
|
||||
import bannerimg2 from "../mysy_img/MYSY-LOGO-BLUE.png";
|
||||
import Popup from 'reactjs-popup';
|
||||
import 'reactjs-popup/dist/index.css';
|
||||
import axios from "axios";
|
||||
import axios from "axios";
|
||||
import { useParams } from 'react-router-dom'
|
||||
import logowhite from "../mysy_img/MYSY-LOGO-WHITE.png";
|
||||
import Footer from "./Fotter";
|
||||
import MenuItem from "@material-ui/core/MenuItem";
|
||||
import Button2 from "@material-ui/core/Button";
|
||||
import Menu from "@material-ui/core/Menu";
|
||||
|
||||
import Header from "./Header";
|
||||
import { useLocation } from "react-router-dom";
|
||||
import Visibility from '@mui/icons-material/Visibility';
|
||||
|
@ -112,8 +107,6 @@ function SignIn() {
|
|||
url_login = process.env.REACT_APP_API_URL + "myclass/api/partner_login/";
|
||||
setmenucompte("partner");
|
||||
partner_connexion = "partner";
|
||||
|
||||
|
||||
}
|
||||
else if (String(menucompte) === "user") {
|
||||
url_login = process.env.REACT_APP_API_URL + "myclass/api/login/";
|
||||
|
@ -122,6 +115,8 @@ function SignIn() {
|
|||
|
||||
}
|
||||
|
||||
// console.log( " ### full url_login = ", url_login)
|
||||
|
||||
// Gestion des Cookies
|
||||
const stored_partner = cookie_part.tokenmysypart;
|
||||
const stored_user = cookie.tokenmysych;
|
||||
|
@ -503,9 +498,7 @@ function SignIn() {
|
|||
<Input type="email" placeholder="Email" name="email" />
|
||||
</FormGroup>
|
||||
|
||||
<FormGroup>
|
||||
|
||||
</FormGroup>
|
||||
<div style={{height:'10px'}}> </div>
|
||||
|
||||
|
||||
<FormGroup>
|
||||
|
@ -514,7 +507,7 @@ function SignIn() {
|
|||
<Label>Votre mot de passe </Label>
|
||||
</div>
|
||||
<div className="show_pwd_div" onClick={handleClickShowPassword}>
|
||||
{currentpawdvisible ? <Visibility /> : <VisibilityOff />}
|
||||
{currentpawdvisible ? <Visibility style={{fontSize:'15px'}}/> : <VisibilityOff style={{fontSize:'15px'}}/>}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -39,7 +39,8 @@ import Menu from '@mui/material/Menu';
|
|||
import Module_Editique from "./Module_Editique";
|
||||
import Module_Attestation_Formation from "./Module_Attestation_Formation";
|
||||
import Module_Email_Management from "./Module_Email_Management";
|
||||
|
||||
import ReactPlayer from "react-player";
|
||||
import ReactAudioPlayer from 'react-audio-player';
|
||||
import Paper from '@material-ui/core/Paper';
|
||||
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
|
@ -70,7 +71,7 @@ import { ContextMenu, ContextMenuTrigger } from "react-contextmenu";
|
|||
import * as XLSX from 'xlsx';
|
||||
|
||||
//import SpeechRecognition, { useSpeechRecognition } from 'react-speech-recognition';
|
||||
|
||||
import useSound from 'use-sound';
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
paper: {
|
||||
|
@ -454,6 +455,7 @@ const TestUrl_New = (props) => {
|
|||
Get_Personnalisable_Collection_and_Fields();
|
||||
Get_Partner_Object_Specific_Fields("ressource_humaine");
|
||||
|
||||
|
||||
}, [])
|
||||
|
||||
|
||||
|
@ -886,7 +888,6 @@ const TestUrl_New = (props) => {
|
|||
|
||||
document.body.appendChild(audio);
|
||||
|
||||
|
||||
setblob_recorded_file(audio.attributes.src.nodeValue);
|
||||
|
||||
};
|
||||
|
@ -915,14 +916,70 @@ const TestUrl_New = (props) => {
|
|||
})
|
||||
.catch((error) => {
|
||||
console.error('Error - send_audi_blob:');
|
||||
// setisimgSelected(true);
|
||||
// setisimgSelected(true);
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
|
||||
const [audi_file, setaudi_file] = React.useState("");
|
||||
const audioRef = useRef(null);
|
||||
function Get_and_launch_audio_file() {
|
||||
|
||||
var filedetail = "audio.mp3"
|
||||
|
||||
var url = process.env.REACT_APP_API_URL + "myclass/api/send_mysy_openai_to_voice_file/";
|
||||
|
||||
var fileName = "cherifffff.mp3";
|
||||
axios.get(url, { responseType: 'blob', },)
|
||||
.then((res) => {
|
||||
fileDownload(res.data, filedetail);
|
||||
|
||||
const url = window.URL.createObjectURL(new Blob([res]));
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = fileName || "downloaded-file";
|
||||
document.body.appendChild(link);
|
||||
|
||||
console.log(" ### link = ", link);
|
||||
|
||||
link.click();
|
||||
|
||||
document.body.removeChild(link);
|
||||
window.URL.revokeObjectURL(url);
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const [blob_recorded_file, setblob_recorded_file] = React.useState("");
|
||||
const [playbackRate, setPlaybackRate] = React.useState(0.75);
|
||||
|
||||
const [play] = useSound('audio.mp3',
|
||||
{ playbackRate });
|
||||
|
||||
|
||||
const handleClick_play = async () => {
|
||||
console.log(" iiiiiiiiiiii ");
|
||||
|
||||
// var path = "blob:http://localhost:3009/5b14dae1-d402-47cd-b71b-fa3938563265";
|
||||
// var path = "audio.mp3";
|
||||
let path = require("./audio.mp3").default;
|
||||
const audio = new Audio(path);
|
||||
const audioPromise = audio.play();
|
||||
if (audioPromise !== undefined) {
|
||||
audioPromise
|
||||
.then(() => {
|
||||
// autoplay started
|
||||
console.log("works");
|
||||
})
|
||||
.catch((err) => {
|
||||
// catch dom exception
|
||||
console.info(err);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
return (
|
||||
<div className="testurl_new">
|
||||
|
@ -1130,33 +1187,32 @@ const TestUrl_New = (props) => {
|
|||
<button onClick={recorderControls.stopRecording}>Stop recording</button>
|
||||
<br />
|
||||
|
||||
file = {blob_recorded_file} <br/>
|
||||
<button onClick={send_audi_blob}> envoyer fichier</button>
|
||||
|
||||
</div>
|
||||
|
||||
<h2> manip datagrid </h2>
|
||||
<div style={{ height: 300, width: '100%' }}>
|
||||
<DataGrid
|
||||
{...data}
|
||||
localeText={{
|
||||
toolbarExportCSV: "Export CSV(;)",
|
||||
}}
|
||||
loading={loading}
|
||||
components={{
|
||||
Toolbar: CustomToolbar
|
||||
}}
|
||||
componentsProps={{
|
||||
toolbar: { data_colums: data.columns }
|
||||
}}
|
||||
|
||||
columnVisibilityModel={columnVisibilityModel}
|
||||
onColumnVisibilityModelChange={(newModel) => {
|
||||
setColumnVisibilityModel(newModel);
|
||||
}}
|
||||
file = {blob_recorded_file} <br />
|
||||
<button onClick={send_audi_blob}> envoyer fichier</button><br />
|
||||
<button onClick={Get_and_launch_audio_file}> recuperer un fichier audio yy</button><br />
|
||||
|
||||
<audio ref={audioRef} controls >
|
||||
<source src="blob:audio.mp3" type="audio/mp3" />
|
||||
Your browser does not support the audio element.
|
||||
</audio>
|
||||
aaa
|
||||
<ReactAudioPlayer
|
||||
src="blob:audio.mp3"
|
||||
autoPlay={true}
|
||||
controls
|
||||
/> bb
|
||||
<ReactAudioPlayer
|
||||
src={"blob:audio.mp3"}
|
||||
controls
|
||||
preload="none"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div> <br />
|
||||
<button onClick={handleClick_play}>Boop!</button>;
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -108,7 +108,7 @@
|
|||
.sousmenu {
|
||||
font-family: "verdana", "Quicksand", "Signika", sans-serif;
|
||||
font-size: small;
|
||||
text-align: center;
|
||||
text-align: left;
|
||||
margin-bottom: 0.8rem;
|
||||
color: #0c0101;
|
||||
cursor: pointer;
|
||||
|
@ -387,7 +387,7 @@
|
|||
.sousmenu {
|
||||
font-family: "verdana", "Quicksand", "Signika", sans-serif;
|
||||
font-size: 0.75rem;
|
||||
text-align: center;
|
||||
text-align: left;
|
||||
margin-bottom: 0.8rem;
|
||||
color: #c0c0c0;
|
||||
cursor: pointer;
|
||||
|
@ -693,7 +693,7 @@
|
|||
.sousmenu {
|
||||
font-family: "verdana", "Quicksand", "Signika", sans-serif;
|
||||
font-size: 0.8rem;
|
||||
text-align: center;
|
||||
text-align: left;
|
||||
margin-bottom: 0.8rem;
|
||||
color: #c0c0c0;
|
||||
cursor: pointer;
|
||||
|
@ -1001,7 +1001,7 @@
|
|||
.sousmenu {
|
||||
font-family: "verdana", "Quicksand", "Signika", sans-serif;
|
||||
font-size: 0.75rem;
|
||||
text-align: center;
|
||||
text-align: left;
|
||||
margin-bottom: 0.8rem;
|
||||
color: #c0c0c0;
|
||||
cursor: pointer;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1887,7 +1887,7 @@
|
|||
|
||||
input {
|
||||
width: 100%;
|
||||
height: 3rem;
|
||||
height: 2.5rem;
|
||||
border-radius: 5rem;
|
||||
margin: 0 auto;
|
||||
border: auto;
|
||||
|
|
|
@ -133,4 +133,7 @@
|
|||
@import "./components/quisommesnous_v4";
|
||||
@import "./components/fonctionnalite_v1";
|
||||
@import "./components/addarticleavis";
|
||||
@import "./components/moduleia";
|
||||
@import "./components/moduleia";
|
||||
@import "./components/intranet_factures_client";
|
||||
@import "./components/intranet_tous_documents";
|
||||
@import "./components/modules_mes_documents";
|
Loading…
Reference in New Issue