From a1d3dc2508d965482e13a87ed85986a8ee12c54a Mon Sep 17 00:00:00 2001 From: Cherif Date: Sun, 8 Jun 2025 16:34:09 +0200 Subject: [PATCH] 08/06/2025 - 16h30 --- src/App.js | 2 - src/components/Apprenant.js | 311 ++++++++--- src/components/DisplayPartnerSession.js | 99 +++- src/components/DisplayPartnerStagiaires.js | 47 +- .../ENT_Student_Header.css | 428 +++++++++++++++ .../ENT_Student_Header.jsx | 322 ++++++++++++ .../Ent_Student_Affichage_Ftion_Grid.js | 19 +- .../Module_Connexion_Ent_Student.js | 4 +- .../Module_Connexion_Intranet_Client.js | 228 ++++---- src/components/Module_Ent_Mes_Formations.js | 131 ++++- .../Module_Session_Planification.js | 223 ++++++-- src/components/New_ButtonHilight_2025.js | 2 +- .../New_ButtonHilight_ENT_Student_2025.js | 493 ++++++++++++++++++ .../New_Navigation_ENT_Student_2025.js | 33 ++ src/components/New_Sidebar_2025.js | 2 +- .../New_Sidebar_Client_Intranet_2025.js | 336 ++++++++++++ .../New_Sidebar_ENT_Student_2025.js | 336 ++++++++++++ .../Partner_Header.jsx | 6 +- src/components/Student_Account.js | 8 +- src/components/UpdatePartnerInfo.js | 109 ++-- src/components/UpdateUserInfo.js | 147 ++++-- .../header_automatic_files/Header.jsx | 4 +- .../Header_Client_Intranet.jsx | 322 ++++++++++++ .../Header_ENT_Student.jsx | 322 ++++++++++++ src/components/sidebar.js | 2 +- src/mysy_img/client_intranet.jpg | Bin 0 -> 54929 bytes src/pages/student_account.js | 10 +- src/styles/components/_account.scss | 1 + src/styles/components/_apprenant.scss | 4 +- .../components/_module_email_management.scss | 4 +- src/styles/components/_updateparnterinfo.scss | 10 +- src/styles/components/_updateuserinfo.scss | 132 +++-- 32 files changed, 3658 insertions(+), 439 deletions(-) create mode 100644 src/components/ENT_Student_header_automatic_files/ENT_Student_Header.css create mode 100644 src/components/ENT_Student_header_automatic_files/ENT_Student_Header.jsx create mode 100644 src/components/New_ButtonHilight_ENT_Student_2025.js create mode 100644 src/components/New_Navigation_ENT_Student_2025.js create mode 100644 src/components/New_Sidebar_Client_Intranet_2025.js create mode 100644 src/components/New_Sidebar_ENT_Student_2025.js create mode 100644 src/components/header_automatic_files/Header_Client_Intranet.jsx create mode 100644 src/components/header_automatic_files/Header_ENT_Student.jsx create mode 100644 src/mysy_img/client_intranet.jpg diff --git a/src/App.js b/src/App.js index e2d2b10..ac8c2b4 100644 --- a/src/App.js +++ b/src/App.js @@ -145,8 +145,6 @@ function App() { - - diff --git a/src/components/Apprenant.js b/src/components/Apprenant.js index 95431ef..7b5bac9 100644 --- a/src/components/Apprenant.js +++ b/src/components/Apprenant.js @@ -285,7 +285,7 @@ const Apprenant = (props) => { ] - + const columns_apprenant_inscriptions = [ { field: 'id', headerName: 'id', hide: true }, @@ -351,7 +351,7 @@ const Apprenant = (props) => { } }, - { + {/* field: "delete", headerName: 'Supprimer', renderCell: (cellValues) => { return ( @@ -407,7 +407,7 @@ const Apprenant = (props) => { ); } - }, + */}, ] @@ -2429,6 +2429,18 @@ const Apprenant = (props) => { setDialog_add_inscription_open(true); } + if (String(actionmass_ftion_val) === String("create_ent")) { + Create_ENT_Account_Apprenant(liste_apprenant); + } + + if (String(actionmass_ftion_val) === String("disable_ent")) { + Disable_ENT_Account_Apprenant(liste_apprenant); + } + + if (String(actionmass_ftion_val) === String("enable_ent")) { + Enable_ENT_Account_Apprenant(liste_apprenant); + } + } @@ -4445,6 +4457,192 @@ const Apprenant = (props) => { } + + const [Disable_ENT_Account_Apprenant_api, setDisable_ENT_Account_Apprenant_api] = useState(); + const [Disable_ENT_Account_Apprenant_message, setDisable_ENT_Account_Apprenant_message] = useState(); + const [Disable_ENT_Account_Apprenant_result, setDisable_ENT_Account_Apprenant_result] = useState(); + function Disable_ENT_Account_Apprenant(local_liste_apprenant) { + + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("tab_apprenant_ids", local_liste_apprenant); + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/ENT_Disable_Apprenant_Account/"; + setLoading(true); + axios.post(myurl, form).then(res => { + //console.log(" In Disable_ENT_Account_Apprenant res.data.status = " + res.data.status); + //console.log(" In Disable_ENT_Account_Apprenant res.data.message r_class = " + res.data.message); + + setLoading(false); + + if (String(res.data.status) === String("true")) { + setDisable_ENT_Account_Apprenant_api("true"); + setDisable_ENT_Account_Apprenant_result(res.data.message); + + setSelectionModel([]); + + setadd_One_Apprenant(''); + setdisplay_detail_apprenant(''); + Clear_Detail_Apprenant_Fields(); + setselected_apprenant_id(''); + setgridline_id(''); + window.scrollTo({ + top: 0, + behavior: "smooth", + }); + + Get_All_Apprenant(); + + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("success"); + } + else { + setDisable_ENT_Account_Apprenant_api("false"); + setDisable_ENT_Account_Apprenant_message(res.data.message); + alert(res.data.message); + + } + + }).catch((error) => { + setLoading(false); + console.warn('Disable_ENT_Account_Apprenant : Not good man :( mysearchtext = ' + error); + setDisable_ENT_Account_Apprenant_api("false"); + alert(" Impossible de supprimer la liste des apprenants"); + }) + } + + + const [Enable_ENT_Account_Apprenant_api, setEnable_ENT_Account_Apprenant_api] = useState(); + const [Enable_ENT_Account_Apprenant_message, setEnable_ENT_Account_Apprenant_message] = useState(); + const [Enable_ENT_Account_Apprenant_result, setEnable_ENT_Account_Apprenant_result] = useState(); + function Enable_ENT_Account_Apprenant(local_liste_apprenant) { + + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + + //console.log(" #### local_liste_session = ", local_liste_session) + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("tab_apprenant_ids", local_liste_apprenant); + + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/ENT_Enable_Apprenant_Account/"; + setLoading(true); + axios.post(myurl, form).then(res => { + //console.log(" In Enable_ENT_Account_Apprenant res.data.status = " + res.data.status); + //console.log(" In Enable_ENT_Account_Apprenant res.data.message r_class = " + res.data.message); + + setLoading(false); + + if (String(res.data.status) === String("true")) { + setEnable_ENT_Account_Apprenant_api("true"); + setEnable_ENT_Account_Apprenant_result(res.data.message); + + setSelectionModel([]); + + setadd_One_Apprenant(''); + setdisplay_detail_apprenant(''); + Clear_Detail_Apprenant_Fields(); + setselected_apprenant_id(''); + setgridline_id(''); + window.scrollTo({ + top: 0, + behavior: "smooth", + }); + + Get_All_Apprenant(); + + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("success"); + } + else { + setEnable_ENT_Account_Apprenant_api("false"); + setEnable_ENT_Account_Apprenant_message(res.data.message); + alert(res.data.message); + + } + + }).catch((error) => { + setLoading(false); + console.warn('Enable_ENT_Account_Apprenant : Not good man :( mysearchtext = ' + error); + setEnable_ENT_Account_Apprenant_api("false"); + alert(" Impossible de supprimer la liste des apprenants"); + }) + } + + const [Create_ENT_Account_Apprenant_api, setCreate_ENT_Account_Apprenant_api] = useState(); + const [Create_ENT_Account_Apprenant_message, setCreate_ENT_Account_Apprenant_message] = useState(); + const [Create_ENT_Account_Apprenant_result, setCreate_ENT_Account_Apprenant_result] = useState(); + function Create_ENT_Account_Apprenant(local_liste_apprenant) { + + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + + //console.log(" #### local_liste_session = ", local_liste_session) + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("tab_apprenant_ids", local_liste_apprenant); + + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/ENT_Create_Apprenant_Account/"; + setLoading(true); + axios.post(myurl, form).then(res => { + //console.log(" In Create_ENT_Account_Apprenant res.data.status = " + res.data.status); + //console.log(" In Create_ENT_Account_Apprenant res.data.message r_class = " + res.data.message); + + setLoading(false); + + if (String(res.data.status) === String("true")) { + setCreate_ENT_Account_Apprenant_api("true"); + setCreate_ENT_Account_Apprenant_result(res.data.message); + + setSelectionModel([]); + + setadd_One_Apprenant(''); + setdisplay_detail_apprenant(''); + Clear_Detail_Apprenant_Fields(); + setselected_apprenant_id(''); + setgridline_id(''); + window.scrollTo({ + top: 0, + behavior: "smooth", + }); + + Get_All_Apprenant(); + + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("success"); + } + else { + setCreate_ENT_Account_Apprenant_api("false"); + setCreate_ENT_Account_Apprenant_message(res.data.message); + alert(res.data.message); + + } + + }).catch((error) => { + setLoading(false); + console.warn('Create_ENT_Account_Apprenant : Not good man :( mysearchtext = ' + error); + setCreate_ENT_Account_Apprenant_api("false"); + alert(" Impossible de supprimer la liste des apprenants"); + }) + } + + + const [Delete_LIST_Apprenant_api, setDelete_LIST_Apprenant_api] = useState(); const [Delete_LIST_Apprenant_message, setDelete_LIST_Apprenant_message] = useState(); const [Delete_LIST_Apprenant_result, setDelete_LIST_Apprenant_result] = useState(); @@ -5122,17 +5320,16 @@ const Apprenant = (props) => { const New_Option = [ - { "id": "0", "label": "Dupliquer", "value": "dupliquer" }, { "id": "1", "label": "Exporter", "value": "exporter" }, { "id": "3", "label": "(R)Inscrire", "value": "inscrire" }, + { "id": "4", "label": "ENT Créer acceès", "value": "create_ent" }, + { "id": "5", "label": "ENT Désactiver", "value": "disable_ent" }, { "id": "2", "label": "Supprimer", "value": "supprimer" }, ] - - const [Dialog_Suivi_Pedago_message, setDialog_Suivi_Pedago_message] = React.useState(false); const [Dialog_Suivi_Pedago_open, setDialog_Suivi_Pedago_open] = React.useState(false); function Dialog_Suivi_Pedago_handle_change_participant_session(message) { @@ -5783,6 +5980,16 @@ const Apprenant = (props) => { } // -- end champs specifiques + + const New_Option_Filter = [ + { "id": "email", "label": "Email ", "value": "email" }, + { "id": "nom", "label": "Nom ", "value": "nom" }, + { "id": "prenom", "label": "Prénom ", "value": "prenom" }, + { "id": "", "label": "", "value": "" }, + { "id": "1", "label": "", "value": "1" }, // Cette ligne pour couvrir l'ajout d'une ligne de filter. C'est fait expres. + ] + + return (
@@ -6546,7 +6753,7 @@ const Apprenant = (props) => { Inscrire - {New_Getall_TrainingSession_result &&
Session + {New_Getall_TrainingSession_result &&
Promotion { if (value && value.value) { if (String(value.value) === "supprimer" || String(value.value) === "dupliquer" || String(value.value) === "exporter" - || String(value.value) === "inscrire") { + || String(value.value) === "inscrire" + || String(value.value) === "create_ent" + || String(value.value) === "disable_ent" + ) { setactionmass_ftion_val(value.value); } else { @@ -7175,6 +7385,14 @@ const Apprenant = (props) => { {String(actionmass_ftion_val) === "inscrire" && Confirmer l'inscription en masse de {selectionModel.length} apprenant(s). } + + {String(actionmass_ftion_val) === "create_ent" && + Confirmer la création des comptes ENT en masse de {selectionModel.length} apprenant(s). + } + + {String(actionmass_ftion_val) === "disable_ent" && + Confirmer la désactivation des comptes ENT en masse de {selectionModel.length} apprenant(s). + }
@@ -9169,84 +9387,7 @@ const Apprenant = (props) => {
- {/*
- {selectionModel && selectionModel.length >= 1 &&
- -   - - - Action    - Supprimer   - Dupliquer   - - - - {actionmass_ftion_val && - } - -
} -
*/}
diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js index 9a1d647..a53e8ef 100644 --- a/src/components/DisplayPartnerSession.js +++ b/src/components/DisplayPartnerSession.js @@ -4102,6 +4102,11 @@ const DisplayPartnerSession = (props) => { var local_event_type = JSON.parse(x).event_type; + if (JSON.parse(x).mode_animation) + var local_mode_animation = JSON.parse(x).mode_animation; + else + var local_mode_animation = "" + //--- var node = { @@ -4114,6 +4119,7 @@ const DisplayPartnerSession = (props) => { "local_objectif": local_objectif, "local_comment": local_session_comment, "local_event_type": local_event_type, + "local_mode_animation": local_mode_animation, }; new_data2.push(node); }); @@ -6391,6 +6397,18 @@ const DisplayPartnerSession = (props) => { form.append("formateur_id", p_formateur_id); form.append("site_formation_id", p_session_site_formation_id); + if (ent_account_automatic) { + form.append("ent_account_automatic", "1"); + } else { + form.append("ent_account_automatic", "0"); + } + + if (lms_account_automatic) { + form.append("lms_account_automatic", "1"); + } else { + form.append("lms_account_automatic", "0"); + } + // Il s'agit d'une mise à jour de session if (String(p_class_is_published) === "1") { @@ -10268,6 +10286,8 @@ const DisplayPartnerSession = (props) => { const [sequence_startDate, setsequence_startDate] = useState(new Date()); const [sequence_endDate, setsequence_endDate] = useState(new Date()); + const [p_detail_mode_animation, setp_detail_mode_animation] = useState(""); + const [selected_detail_sequence_title, setselected_detail_sequence_title] = useState(); const [selected_detail_sequence_comment, setselected_detail_sequence_comment] = useState(); @@ -10306,6 +10326,8 @@ const DisplayPartnerSession = (props) => { setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); + setp_detail_mode_animation(""); + setsequence_startDate(new Date()); setsequence_endDate(new Date()); @@ -10316,6 +10338,7 @@ const DisplayPartnerSession = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -10354,6 +10377,8 @@ const DisplayPartnerSession = (props) => { form.append("objectif", p_detail_sequence_objectif); form.append("commentaire", p_detail_sequence_comment); + form.append("mode_animation", p_detail_mode_animation); + //console.log(" form == ", form); @@ -10374,6 +10399,8 @@ const DisplayPartnerSession = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); + setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -10449,6 +10476,8 @@ const DisplayPartnerSession = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); + setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -10529,6 +10558,8 @@ const DisplayPartnerSession = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); + setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -10609,6 +10640,7 @@ const DisplayPartnerSession = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -10671,6 +10703,8 @@ const DisplayPartnerSession = (props) => { form.append("objectif", p_detail_sequence_objectif); form.append("commentaire", p_detail_sequence_comment); + form.append("mode_animation", p_detail_mode_animation); + form.append("_id", selected_sequence_id); //console.log(" form == ", form); @@ -10692,6 +10726,8 @@ const DisplayPartnerSession = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); + setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -12857,6 +12893,8 @@ const DisplayPartnerSession = (props) => { setp_detail_event_id(""); setp_detail_sequence_objectif(""); setp_detail_sequence_comment(""); + + setp_detail_mode_animation(""); setDialog_DIALOG_AGENDA_open(true); }; @@ -12893,6 +12931,13 @@ const DisplayPartnerSession = (props) => { setp_detail_event_type(""); + if (arg.event.extendedProps.local_mode_animation) { + setp_detail_mode_animation(arg.event.extendedProps.local_mode_animation); + } + else + setp_detail_mode_animation(""); + + if (arg.event.extendedProps.local_comment) { setp_detail_sequence_comment(arg.event.extendedProps.local_comment); } @@ -14732,6 +14777,8 @@ const DisplayPartnerSession = (props) => { }) } + const [ent_account_automatic, setent_account_automatic] = React.useState(false); + const [lms_account_automatic, setlms_account_automatic] = React.useState(false); return (
@@ -21374,7 +21421,7 @@ const DisplayPartnerSession = (props) => {
-   +  
@@ -21575,7 +21622,7 @@ const DisplayPartnerSession = (props) => {
-   +  
@@ -21698,9 +21745,6 @@ const DisplayPartnerSession = (props) => {
} - - -
@@ -21778,6 +21822,50 @@ const DisplayPartnerSession = (props) => { {/* -- end champs specifiques **/} +
+  
+
+ + +   +
+ +
+
+
+
Création automatique compte ENT
+ { + setent_account_automatic(event.target.checked); + } + } + inputProps={{ 'aria-label': 'controlled' }} + /> +
+ +
Création automatique compte LMS
+ { + setlms_account_automatic(event.target.checked); + } + } + inputProps={{ 'aria-label': 'controlled' }} + /> +
+
+ +
+ + +
  @@ -22595,6 +22683,7 @@ const DisplayPartnerSession = (props) => { setp_detail_sequence_agenda(newSelectionModel.row.agenda); setp_detail_sequence_objectif(newSelectionModel.row.objectif); setp_detail_sequence_comment(newSelectionModel.row.commentaire); + setp_detail_mode_animation(newSelectionModel.row.mode_animation); Getall_List_Sequence_Ressource(newSelectionModel.row._id); diff --git a/src/components/DisplayPartnerStagiaires.js b/src/components/DisplayPartnerStagiaires.js index 44dd5cf..bae5039 100644 --- a/src/components/DisplayPartnerStagiaires.js +++ b/src/components/DisplayPartnerStagiaires.js @@ -47,7 +47,7 @@ import { FcEditImage } from "react-icons/fc"; import { useHistory } from "react-router-dom"; import Module_Historique_Action from "./Module_Historique_Action"; import ToggleSwitch from "./ToggleSwitch"; - +import TextareaAutosize from '@mui/material/TextareaAutosize'; import Autocomplete from '@mui/material/Autocomplete'; import { FcSearch, FcViewDetails, FcOpenedFolder } from "react-icons/fc"; import Link from '@mui/material/Link'; @@ -5570,6 +5570,7 @@ const DisplayPartnerStagiaires = (props) => { // console.log(" #### selectedtraining_emails_liste = ", selectedtraining_emails_liste); settab_email_pieces_jointes_result([]); setDialog_PUSH_DOCUMENT_TO_ENT_open(true); + setent_push_doc_message_notif(""); } } @@ -6921,6 +6922,7 @@ const DisplayPartnerStagiaires = (props) => { const Dialog_PUSH_DOCUMENT_TO_ENT_handleClose = () => { setDialog_PUSH_DOCUMENT_TO_ENT_open(false); settab_email_pieces_jointes_result([]); + setent_push_doc_message_notif(""); } const [tab_email_pieces_jointes_result, settab_email_pieces_jointes_result] = useState([]); @@ -7052,6 +7054,12 @@ const DisplayPartnerStagiaires = (props) => { form.append("token", stored_cookie); form.append("related_collection", "inscription"); form.append("list_email_dest", selectedtraining_emails_liste); + form.append("session_id", selected_session_id); + + if (ent_push_doc_message_notif) + form.append("ent_push_doc_message_notif", ent_push_doc_message_notif); + else + form.append("ent_push_doc_message_notif", ""); // pièce jointe @@ -7107,6 +7115,9 @@ const DisplayPartnerStagiaires = (props) => { }) } + + const [ent_push_doc_message_notif, setent_push_doc_message_notif] = useState(false); + return (
{isLoading &&
@@ -7153,12 +7164,34 @@ const DisplayPartnerStagiaires = (props) => { PaperComponent={PaperComponent} aria-labelledby="draggable-dialog-title" > -   - - + +
MySy Information
+
+ {' '} + Ajouter un message à l'email de notification + +
Message de notification :
+ { + setent_push_doc_message_notif(e.target.value); + + }} + /> + +
-
@@ -11979,9 +12012,7 @@ const DisplayPartnerStagiaires = (props) => {
-
- Afficher ici les notes finales par UE xxx
-
+
} diff --git a/src/components/ENT_Student_header_automatic_files/ENT_Student_Header.css b/src/components/ENT_Student_header_automatic_files/ENT_Student_Header.css new file mode 100644 index 0000000..0d18ba8 --- /dev/null +++ b/src/components/ENT_Student_header_automatic_files/ENT_Student_Header.css @@ -0,0 +1,428 @@ +.ent_student_header_automatic_files { + + @media only screen and (max-width: 600px) { + + position: fixed; + /* margin-top: 22px;*/ + width: 100%; + opacity: 1; + background: #FFF; + + .header_new_2025 { + border-bottom: 1px solid #dcdcdc; + width: 100%; + padding-left: 50px; + padding-top: 15px; + padding-bottom: 10px; + } + + .header-content { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + margin: 0 auto; + } + + .logo-menu { + display: flex; + align-items: center; + gap: 40px; + margin-left: 2rem; + } + + .logo { + width: 96px; + height: 32px; + } + + .menu-list { + display: none; + } + + .menu-link { + display: none; + } + + .cta-login { + display: flex; + align-items: center; + gap: 12px; + } + + .cta-buttons { + display: flex; + gap: 12px; + } + + .hide_on_mobile { + display: none; + } + + .btn { + padding: 10px 15px; + border-radius: 200px; + font-family: 'DM Sans', sans-serif; + font-size: 12px; + font-weight: 600; + line-height: 126%; + cursor: pointer; + } + + .btn-primary { + background-color: #3e6ee3; + color: #ffffff; + border: none; + } + + .btn-secondary { + background-color: transparent; + color: #4b5162; + border: 1px solid #c7c9ce; + } + + .separator { + width: 1px; + height: 12px; + background-color: rgba(23, 23, 23, 0.1); + border-radius: 30px; + } + + .login-link { + display: flex; + align-items: center; + gap: 8px; + cursor: pointer; + } + + .user-icon { + width: 18px; + height: 18px; + } + + .login-link span { + font-family: 'DM Sans', sans-serif; + font-size: 16px; + font-weight: 500; + color: #171717; + line-height: 122%; + } + + } + + @media only screen and (min-width: 601px) and (max-width: 991px) { + .header_new_2025 { + border-bottom: 1px solid #dcdcdc; + padding: 14px 48px; + width: 100%; + } + + .header-content { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + margin: 0 auto; + } + + .logo-menu { + display: flex; + align-items: center; + gap: 10px; + max-width: 60%; + flex-direction: row; + } + + .logo { + width: 96px; + height: 32px; + } + + .menu-list { + display: flex; + align-items: center; + gap: 14px; + flex-direction: row; + flex-wrap: wrap; + } + + .menu-link { + font-family: 'DM Sans', sans-serif; + font-size: 16px; + font-weight: 500; + color: #4b5162; + text-decoration: none; + line-height: 122%; + } + + .cta-login { + display: flex; + align-items: center; + gap: 3px; + } + + .cta-buttons { + display: flex; + gap: 1px; + } + + .btn { + padding: 5px 8px; + border-radius: 200px; + font-family: 'DM Sans', sans-serif; + font-size: 12px; + font-weight: 700; + line-height: 126%; + cursor: pointer; + } + + .btn-primary { + background-color: #3e6ee3; + color: #ffffff; + border: none; + } + + .btn-secondary { + background-color: transparent; + color: #4b5162; + border: 1px solid #c7c9ce; + } + + .separator { + width: 1px; + height: 12px; + background-color: rgba(23, 23, 23, 0.1); + border-radius: 30px; + } + + .login-link { + display: flex; + align-items: center; + gap: 2px; + cursor: pointer; + } + + .user-icon { + width: 18px; + height: 18px; + } + + .login-link span { + font-family: 'DM Sans', sans-serif; + font-size: 16px; + font-weight: 500; + color: #171717; + line-height: 122%; + } + } + + @media only screen and (min-width: 992px) and (max-width: 1199px) { + .header_new_2025 { + border-bottom: 1px solid #dcdcdc; + padding: 14px 48px; + width: 100%; + } + + .header-content { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + margin: 0 auto; + } + + .logo-menu { + display: flex; + align-items: center; + gap: 10px; + width: 70%; + flex-direction: row; + } + + .logo { + width: 96px; + height: 32px; + } + + .menu-list { + display: flex; + align-items: center; + gap: 14px; + flex-direction: row; + flex-wrap: wrap; + } + + .menu-link { + font-family: 'DM Sans', sans-serif; + font-size: 16px; + font-weight: 500; + color: #4b5162; + text-decoration: none; + line-height: 122%; + } + + .cta-login { + display: flex; + align-items: center; + gap: 5px; + } + + .cta-buttons { + display: flex; + gap: 5px; + } + + .btn { + padding: 3px 10px; + border-radius: 200px; + font-family: 'DM Sans', sans-serif; + font-size: 14px; + font-weight: 700; + line-height: 126%; + cursor: pointer; + } + + .btn-primary { + background-color: #3e6ee3; + color: #ffffff; + border: none; + } + + .btn-secondary { + background-color: transparent; + color: #4b5162; + border: 1px solid #c7c9ce; + } + + .separator { + width: 1px; + height: 5px; + background-color: rgba(23, 23, 23, 0.1); + border-radius: 30px; + } + + .login-link { + display: flex; + align-items: center; + gap: 8px; + cursor: pointer; + } + + .user-icon { + width: 18px; + height: 18px; + } + + .login-link span { + font-family: 'DM Sans', sans-serif; + font-size: 16px; + font-weight: 500; + color: #171717; + line-height: 122%; + } + } + + + @media only screen and (min-width: 1200px) { + .header_new_2025 { + border-bottom: 1px solid #dcdcdc; + padding: 14px 48px; + width: 100%; + } + + .header-content { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + margin: 0 auto; + } + + .logo-menu { + display: flex; + align-items: center; + gap: 40px; + } + + .logo { + width: 96px; + height: 32px; + } + + .menu-list { + display: flex; + align-items: center; + gap: 24px; + } + + .menu-link { + font-family: 'DM Sans', sans-serif; + font-size: 16px; + font-weight: 500; + color: #4b5162; + text-decoration: none; + line-height: 122%; + } + + .cta-login { + display: flex; + align-items: center; + gap: 12px; + } + + .cta-buttons { + display: flex; + gap: 12px; + } + + .btn { + padding: 12px 24px; + border-radius: 200px; + font-family: 'DM Sans', sans-serif; + font-size: 14px; + font-weight: 700; + line-height: 126%; + cursor: pointer; + } + + .btn-primary { + background-color: #3e6ee3; + color: #ffffff; + border: none; + } + + .btn-secondary { + background-color: transparent; + color: #4b5162; + border: 1px solid #c7c9ce; + } + + .separator { + width: 1px; + height: 12px; + background-color: rgba(23, 23, 23, 0.1); + border-radius: 30px; + } + + .login-link { + display: flex; + align-items: center; + gap: 8px; + cursor: pointer; + } + + .user-icon { + width: 18px; + height: 18px; + } + + .login-link span { + font-family: 'DM Sans', sans-serif; + font-size: 16px; + font-weight: 500; + color: #171717; + line-height: 122%; + } + + } +} \ No newline at end of file diff --git a/src/components/ENT_Student_header_automatic_files/ENT_Student_Header.jsx b/src/components/ENT_Student_header_automatic_files/ENT_Student_Header.jsx new file mode 100644 index 0000000..e810961 --- /dev/null +++ b/src/components/ENT_Student_header_automatic_files/ENT_Student_Header.jsx @@ -0,0 +1,322 @@ +import React, { useState, useEffect } from 'react'; +import './ENT_Student_Header.css'; +import moment from "moment"; +import { getCookie } from 'react-use-cookie'; +import { useHistory } from "react-router-dom"; + +import Header_MySy_Logo from '../../img_new_design_2025/header_mysy_logo.png'; +import Header_User from '../../img_new_design_2025/header_user.png'; +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 Button from '@mui/material/Button'; +import { useCookies } from "react-cookie"; + + +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 { IconButton } from '@material-ui/core'; + + +function PaperComponent(props) { + return ( + + + + ); +} + +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 ENT_Student_Header = () => { + const history = useHistory(); + const classes = useStyles(); + const [userconnected, setuserconnected] = useState("0"); + const [someoneconnected, setsomeoneconnected] = useState("0"); + const [partnerconnected, setpartnerconnected] = useState("0"); + const stored_user = getCookie('tokenmysych'); + const stored_part = getCookie('tokenmysypart'); + const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych'], { path: '/' }); + const [partcookie, setpartCookie, removepartCookie] = useCookies(['tokenmysypart'], { path: '/' }); + const [PartnerMenu, setPartnerMenu] = React.useState(null); + const [AccountMenu, setAccountMenu] = React.useState(null); + const [ProduitMenu, setproduitMenu] = React.useState(null); + + useEffect(() => { + var local_user_connect = 0; + var local_part_connect = 0; + + if (typeof (stored_user) === "undefined" || String(stored_user) === '') { + setuserconnected("0"); + local_user_connect = 0; + } else { + setuserconnected("1"); + setsomeoneconnected("1"); + local_user_connect = 1; + //alert(" user connected OK"); + } + + if (typeof (stored_part) === "undefined" || String(stored_part) === '') { + setpartnerconnected("0"); + local_part_connect = 0; + } else { + setpartnerconnected("1"); + setsomeoneconnected("1"); + local_part_connect = 1; + //alert(" partner connected OK"); + } + + }, []); + + const handleAccountCreation = () => { + setAccountMenu(null); + history.push("/signup/") + }; + + + const handleMyAccount = () => { + setAccountMenu(null); + history.push("/mysy-user-account") + }; + + const handleAccountConnexion = () => { + setAccountMenu(null); + history.push("/signin/") + }; + + + const handleMyPartnerAccount = () => { + setAccountMenu(null); + history.push("/Partner") + }; + + + function handleAccountConnexion_v2() { + + if (String(userconnected) === String("1")) { + handleMyAccount(); + } + else if (String(partnerconnected) === String("1")) { + handleMyPartnerAccount(); + } + } + + const [Dialog_1_open, setDialog_1_open] = React.useState(false); + const Dialog_1_handleClose = () => { + }; + + const Dialog_1_handleClose_buton = () => { + setDialog_1_open(false); + }; + + function part_logout_confirmation() { + /* si c'est une connexion partner qui est active */ + + if (typeof (stored_part) != "undefined") { + const stored_cookie = getCookie('tokenmysypart'); + var acces_right_token_name = stored_cookie + "_uar"; + + setpartCookie("tokenmysypart", "", { path: '/' }); + setpartCookie(acces_right_token_name, "", { path: '/' }); + removeCookie(acces_right_token_name, { path: '/' }); + + + setpartCookie("mysy_session_display_view", "", { path: '/' }); + setpartCookie("mysy_menu_gauche_reduit", "", { path: '/' }); + setpartCookie("mysy_catalog_data_row_grouped_by", "", { path: '/' }); + + removeCookie("tokenmysypart", { path: '/' }); + removeCookie("mysy_session_display_view", { path: '/' }); + removeCookie("mysy_menu_gauche_reduit", { path: '/' }); + removeCookie("mysy_catalog_data_row_grouped_by", { path: '/' }); + + + } + setsomeoneconnected("0"); + setDialog_1_open(false); + history.push("/recherche-formation"); + } + + function user_logout_confirmation() { + /* si c'est une connexion partner qui est active */ + 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: '/' }); + + removeCookie("tokenmysych", { path: '/' }); + + + } + history.push("/ent_student"); + } + + return ( +
+ + {/*** GESTION Deconnexion */} + null} + + PaperProps={{ + + + className: classes.paper, // Apply the paper style + style: { + overflowY: 'unset', + position: 'absolute', + top: '20rem', + margin: "2px", + }, + }} + hideBackdrop={true} + disableScrollLock + classes={{ + paper: classes.dialog + }} + + PaperComponent={PaperComponent} + aria-labelledby="draggable-dialog-title" + > + + MySy Information + + + Confirmez la deconnexion de l'ENT
+ + +
+ +
+ + + + + + + +
+
+ +
+
+ +
+
+ +
+
+ + {/*** Fin GESTION Deconnexion */} + +
+
+ + +
+
+ + +
+
+ {String(someoneconnected) !== String("1") && } + + {String(someoneconnected) === String("1") && } + +
+
+ {String(someoneconnected) !== String("1") &&
+ User icon + Connexion +
} + + {String(someoneconnected) === String("1") &&
setDialog_1_open(true)}> + User icon + Deconnexion +
} + +
+
+
+
+ ); +}; + +export default ENT_Student_Header; + diff --git a/src/components/Ent_Student_Affichage_Ftion_Grid.js b/src/components/Ent_Student_Affichage_Ftion_Grid.js index c926b6c..ddd7355 100644 --- a/src/components/Ent_Student_Affichage_Ftion_Grid.js +++ b/src/components/Ent_Student_Affichage_Ftion_Grid.js @@ -441,8 +441,8 @@ const Ent_Student_Affichage_Ftion_Grid = (props) => {

{props.formation.business_prices[0].discounted_price}€ HT  - {props.formation.price} € HT   - ({props.formation.business_prices[0].discount} %)

+ {props.formation.price} € HT   + ({props.formation.business_prices[0].discount} %)

}

{String(parse(String(props.formation.description).replace(/(<([^>]+)>)/ig, ''))).substring(0, 80)}...

@@ -454,23 +454,14 @@ const Ent_Student_Affichage_Ftion_Grid = (props) => {
- + ) diff --git a/src/components/Module_Connexion_Ent_Student.js b/src/components/Module_Connexion_Ent_Student.js index 2463076..cb0e19c 100644 --- a/src/components/Module_Connexion_Ent_Student.js +++ b/src/components/Module_Connexion_Ent_Student.js @@ -26,7 +26,7 @@ function Module_Connexion_Ent_Student() { const [initpasswd, setinitpasswd] = useState(); const [result, setResult] = useState(""); const [myApiResponse, setmyApiResponse] = useState("false"); - const url_login = process.env.REACT_APP_API_URL + "myclass/api/login/"; + const url_login = process.env.REACT_APP_API_URL + "myclass/api/Ent_Student_login/"; const random1 = Math.floor(Math.random() * 10); const random2 = Math.floor(Math.random() * 10); @@ -84,7 +84,7 @@ function Module_Connexion_Ent_Student() { var partner_connexion = ""; var url_login = ""; - url_login = process.env.REACT_APP_API_URL + "myclass/api/login/"; + url_login = process.env.REACT_APP_API_URL + "myclass/api/Ent_Student_login/"; setmenucompte("user"); partner_connexion = "user"; diff --git a/src/components/Module_Connexion_Intranet_Client.js b/src/components/Module_Connexion_Intranet_Client.js index 7d28497..16de2fc 100644 --- a/src/components/Module_Connexion_Intranet_Client.js +++ b/src/components/Module_Connexion_Intranet_Client.js @@ -14,7 +14,7 @@ import Visibility from '@mui/icons-material/Visibility'; import VisibilityOff from '@mui/icons-material/VisibilityOff'; import 'react-tooltip/dist/react-tooltip.css' import { Tooltip } from 'react-tooltip' - +import client_intranet from "../mysy_img/client_intranet.jpg"; function Module_Connexion_Intranet_Client() { const [isconnected, setisconnected] = useState(""); @@ -102,7 +102,7 @@ function Module_Connexion_Intranet_Client() { formData.append("email", mymail); formData.append("pwd", mypwd); - formData.append("type", "user"); + formData.append("type", "user"); var re = /\S+@\S+\.\S+/; if (re.test(mymail) === false) { @@ -375,138 +375,154 @@ function Module_Connexion_Intranet_Client() {
-
-
- - +
+

Bienvenue sur l'Intranet

+
+
+
+
-
+
-
- - - - - - -
 
+
+
+ - -
-
- -
-
- {currentpawdvisible ? : } -
-
- -
+
+ +
+ +
+ + + + + + +
 
- {String(initpasswd) === String("true") && closepopup === 1 &&
- La demande reinitialisation a bien ete prise en compte. - Verifiez votre boite email. -
} -
- {String(initpasswd) !== String("true") && String(closepopup) !== String("1") - && Mot de passe oublié} - position="center" className="signin popup-reset-pwd"> -
-
Modifier le mot de passe
-
+ +
+
+ +
+
+ {currentpawdvisible ? : } +
- -
- - -
+
+ +
-
-
- - - + {String(initpasswd) === String("true") && closepopup === 1 &&
+ La demande reinitialisation a bien ete prise en compte. + Verifiez votre boite email. +
} +
-       - -
+ + } +
+
+ +   + + +
+ +
+ - - }
- -   - - -
- -
-
+
{isconnected === "false" &&

diff --git a/src/components/Module_Ent_Mes_Formations.js b/src/components/Module_Ent_Mes_Formations.js index f44ef12..e246d90 100644 --- a/src/components/Module_Ent_Mes_Formations.js +++ b/src/components/Module_Ent_Mes_Formations.js @@ -388,7 +388,7 @@ const Module_Ent_Mes_Formations = (props) => { setLoading(true); axios.post(myurl, form).then(res => { // console.log(" In Getall_Sequence_Of_Session res.data.status = " + res.data.status); - // console.log(" In Getall_Sequence_Of_Session res.data.message r_class = " + res.data.message); + console.log(" In Getall_Sequence_Of_Session res.data.message r_class = " + res.data.message); setLoading(false); if (String(res.data.status) === String("true")) { @@ -414,6 +414,15 @@ const Module_Ent_Mes_Formations = (props) => { var local_objectif = JSON.parse(x).objectif; var local_session_id = JSON.parse(x).session_id; var local_session_comment = JSON.parse(x).commentaire; + var local_mode_animation = JSON.parse(x).mode_animation; + var local_session_color = "#3788d8"; + + + if (local_mode_animation === "1") { + // sequence en distantiel, on va mettre un code couleur + local_session_color = "#4ea860" + } + var local_type = JSON.parse(x).type; @@ -424,9 +433,11 @@ const Module_Ent_Mes_Formations = (props) => { "title": local_title, "start": local_start, "end": local_end, + "local_mode_animation": local_mode_animation, "local_agenda": local_agenda, "local_objectif": local_objectif, "local_comment": local_session_comment, + "color": local_session_color, "type": local_type, }; new_data2.push(node); @@ -461,12 +472,21 @@ const Module_Ent_Mes_Formations = (props) => { } + const New_Option_mode_animation = [ + { "id": "1", "label": "Distanciel", "value": "1" }, + { "id": "2", "label": "Hybride", "value": "2" }, + { "id": "0", "label": "Présentiel", "value": "0" }, + { "id": "", "label": "", "value": "" }, + ] const [selected_id, setselected_id] = useState(""); const [gridline_id, setgridline_id] = useState(""); const [selected_session_id, setselected_session_id] = useState(""); const [selected_inscription_id, setselected_inscription_id] = useState(""); + const [selected_class_external_code, setselected_class_external_code] = useState(""); + const [selected_code_session, setselected_code_session] = useState(""); + const [Get_Given_Class_Data_api, setGet_Given_Class_Data_api] = useState(); const [Get_Given_Class_Data_message, setGet_Given_Class_Data_message] = useState(); @@ -568,12 +588,12 @@ const Module_Ent_Mes_Formations = (props) => { } } - function handleClick_Class_Selected_From_Line(selected_row_id) { + function handleClick_Class_Selected_From_Line(associated_session_id, associated_inscription_id) { // Recuperer le planning liée à cette formation - Getall_Sequence_Of_Session(selected_row_id.associated_session_id); - Get_Inscrit_Notes_Of_Evaluations(selected_row_id.associated_inscription_id, selected_row_id.associated_session_id); - Get_List_Of_All_PJ(selected_row_id.associated_inscription_id); + Getall_Sequence_Of_Session(associated_session_id); + Get_Inscrit_Notes_Of_Evaluations(associated_inscription_id, associated_session_id); + Get_List_Of_All_PJ(associated_inscription_id); } @@ -582,7 +602,9 @@ const Module_Ent_Mes_Formations = (props) => { return ( <> {eventInfo.timeText}
- {eventInfo.event.title} + {eventInfo.event.title}
+ {eventInfo.event.extendedProps.local_mode_animation && String(eventInfo.event.extendedProps.local_mode_animation) === "1" && + Distanciel} ) }; @@ -662,6 +684,17 @@ const Module_Ent_Mes_Formations = (props) => { setp_detail_sequence_comment(""); + if (arg.event.extendedProps.local_mode_animation) { + if (String(arg.event.extendedProps.local_mode_animation) === "1") + setp_detail_mode_animation_label("Distanciel"); + else if (String(arg.event.extendedProps.local_mode_animation) === "2") + setp_detail_mode_animation_label("Hybride"); + else if (String(arg.event.extendedProps.local_mode_animation) === "0") + setp_detail_mode_animation_label("Présentiel"); + } + else + setp_detail_mode_animation_label(""); + if (arg.event.extendedProps.local_objectif) { setp_detail_sequence_objectif(arg.event.extendedProps.local_objectif); } @@ -1181,7 +1214,7 @@ const Module_Ent_Mes_Formations = (props) => { var file_name = event.target.id; - var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_Stored_Downloaded_File/" + token + "/" + file_name+"/"+props.apprenant_id; + var url = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_Stored_Downloaded_File/" + token + "/" + file_name + "/" + props.apprenant_id; setLoading(true); axios.get(url, { responseType: 'blob', },) @@ -1556,10 +1589,34 @@ const Module_Ent_Mes_Formations = (props) => { // -- end gestion pièces jointes + const [p_detail_mode_animation, setp_detail_mode_animation] = useState(""); + const [p_detail_mode_animation_label, setp_detail_mode_animation_label] = useState(""); const [affichage_class, setaffichage_class] = useState("grid"); + + + function display_detail_from_grid(localid, local_id, local_session_id, local_inscription_id, + local_class_id) { + + setselected_id(local_id); + setgridline_id(localid); + setselected_session_id(local_session_id); + setselected_inscription_id(local_inscription_id); + submenu_detail(); + + Get_Given_Class_Data(local_id); + Get_List_UE_From_Class_Id(local_class_id); + Getall_Class_List_Evalution(local_class_id); + handleClick_Class_Selected_From_Line(local_session_id, local_inscription_id); + + var line = New_Get_List_Ent_Formation_result[localid]; + setselected_class_external_code(line.external_code); + setselected_code_session(line.session_code_session); + } + + return (
@@ -1620,10 +1677,8 @@ const Module_Ent_Mes_Formations = (props) => {
- -
+
+ + + +
+
Titre @@ -1777,7 +1849,7 @@ const Module_Ent_Mes_Formations = (props) => { -

Mes Formations

+ {/*
Utilisez les filtres !
@@ -2075,12 +2147,17 @@ const Module_Ent_Mes_Formations = (props) => { setgridline_id(newSelectionModel.row.id); setselected_session_id(newSelectionModel.row.associated_session_id); setselected_inscription_id(newSelectionModel.row.associated_inscription_id); + + setselected_class_external_code(newSelectionModel.row.external_code); + setselected_code_session(newSelectionModel.row.session_code_session); + + submenu_detail(); Get_Given_Class_Data(newSelectionModel.row._id); Get_List_UE_From_Class_Id(newSelectionModel.row.class_id); Getall_Class_List_Evalution(newSelectionModel.row.class_id); - handleClick_Class_Selected_From_Line(newSelectionModel.row); + handleClick_Class_Selected_From_Line(newSelectionModel.row.associated_session_id, newSelectionModel.row.associated_inscription_id); }} rowsPerPageOptions={[10]} @@ -2165,19 +2242,13 @@ const Module_Ent_Mes_Formations = (props) => { {New_Get_List_Ent_Formation_result && New_Get_List_Ent_Formation_result.map((formation) => (
{ - console.log(" double client sur formation = ", formation) - setselected_id(formation._id); - setgridline_id(formation.id); - setselected_session_id(formation.associated_session_id); - setselected_inscription_id(formation.associated_inscription_id); - submenu_detail(); + session_id={formation.associated_session_id} + inscription_id={formation.associated_inscription_id} + formation_id={formation._id} + formationid={formation.id} + class_id={formation.class_id} + display_detail_from_grid={display_detail_from_grid} - Get_Given_Class_Data(formation._id); - Get_List_UE_From_Class_Id(formation.class_id); - Getall_Class_List_Evalution(formation.class_id); - handleClick_Class_Selected_From_Line(formation); - }} />
))} @@ -2197,6 +2268,10 @@ const Module_Ent_Mes_Formations = (props) => {
} + {selected_id && String(selected_id).length > 0 &&
+ +
} + { String(submenu) === "detail" && Get_Given_Class_Data_result && Get_Given_Class_Data_result.length > 0 &&
@@ -2458,7 +2533,7 @@ const Module_Ent_Mes_Formations = (props) => {
-
+ {/*
+
*/} - {file_1_name && file_1_name.name &&
+ {/*file_1_name && file_1_name.name &&
-
} +
*/} {Get_List_Of_All_PJ_result &&
Liste des pièces jointes
{Get_List_Of_All_PJ_result && Get_List_Of_All_PJ_result.map((val) => ( -
+

{/* { { field: 'sequence_start', headerName: 'Debut', minWidth: 200, flex: 1, hide: false, editable: false }, { field: 'sequence_end', headerName: 'Fin', minWidth: 200, flex: 1, hide: false, editable: false }, + { + field: 'mode_animation', headerName: 'Animation', minWidth: 150, flex: 1, + renderCell: (cellValues) => { + return ( +
+ {cellValues.row.mode_animation && String(cellValues.row.mode_animation) === "1" && "Distanciel"} + {cellValues.row.mode_animation && String(cellValues.row.mode_animation) === "0" && "Présentiel"} + {cellValues.row.mode_animation && String(cellValues.row.mode_animation) === "2" && "Hybride"} +
+ + ); + } + }, + + { field: 'agenda', headerName: 'Agenda', minWidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => , }, { field: 'objectif', headerName: 'Objectif', width: 0, flex: 0, hide: true, editable: false, }, { field: 'commentaire', headerName: 'Commentaire', width: 0, flex: 0, hide: true, editable: false, }, @@ -183,6 +198,7 @@ const Module_Session_Planification = (props) => { setp_detail_sequence_agenda(cellValues.row.agenda); setp_detail_sequence_objectif(cellValues.row.objectif); setp_detail_sequence_comment(cellValues.row.commentaire); + setp_detail_mode_animation(cellValues.row.mode_animation); Getall_List_Sequence_Ressource(cellValues.row._id); setselected_sequence_id(cellValues.row._id); setdisplay_detail_sequence("1"); @@ -236,6 +252,8 @@ const Module_Session_Planification = (props) => { setp_detail_sequence_objectif(cellValues.row.objectif); setp_detail_sequence_comment(cellValues.row.commentaire); + setp_detail_mode_animation(cellValues.row.mode_animation); + setp_detail_sequence_groupe_apprenant_id(cellValues.row.grp_apprenant_id); if (cellValues.row.ue_id) { @@ -612,14 +630,15 @@ const Module_Session_Planification = (props) => { const renderEventContent = (eventInfo) => { - - - //console.log(eventInfo.event); + // console.log(" TOTOTOTOTO ", eventInfo.event); return ( <> {eventInfo.timeText}
{eventInfo.event.title}
{eventInfo.event.extendedProps.grp_code} + {eventInfo.event.extendedProps.local_mode_animation && String(eventInfo.event.extendedProps.local_mode_animation) === "1" && + Distanciel} + ) }; @@ -1145,6 +1164,8 @@ const Module_Session_Planification = (props) => { form.append("objectif", p_detail_sequence_objectif); form.append("commentaire", p_detail_sequence_comment); + form.append("mode_animation", p_detail_mode_animation); + form.append("grp_apprenant_id", p_detail_sequence_groupe_apprenant_id); form.append("ue_id", p_detail_sequence_ue_id); form.append("ue_planif_line_id", p_detail_sequence_ue_planif_line_id); @@ -1375,6 +1396,14 @@ const Module_Session_Planification = (props) => { } + const [p_detail_mode_animation, setp_detail_mode_animation] = useState(""); + + const New_Option_mode_animation = [ + { "id": "1", "label": "Distanciel", "value": "1" }, + { "id": "2", "label": "Hybride", "value": "2" }, + { "id": "0", "label": "Présentiel", "value": "0" }, + { "id": "", "label": "", "value": "" }, + ] const [Add_One_Sequence_Session_Ressource_Mass_api, setAdd_One_Sequence_Session_Ressource_Mass_api] = useState(); const [Add_One_Sequence_Session_Ressource_Mass_message, setAdd_One_Sequence_Session_Ressource_Mass_message] = useState(); @@ -1502,6 +1531,14 @@ const Module_Session_Planification = (props) => { var local_session_color = JSON.parse(x).grp_apprenant_color; var local_session_grp_code = JSON.parse(x).grp_apprenant_code; + var local_mode_animation = JSON.parse(x).mode_animation; + + // Si il n'y pas de relief avec le groupe d'apprenant, on va introduire un relief avec la notion de présentiel et distantiel + if (local_session_color === "" && local_mode_animation === "1") { + // sequence en distantiel, on va mettre un code couleur + local_session_color = "#4ea860" + } + //--- var node = { @@ -1513,6 +1550,8 @@ const Module_Session_Planification = (props) => { "grp_code": local_session_grp_code, "color": local_session_color, "local_agenda": local_agenda, + "local_mode_animation": local_mode_animation, + "local_objectif": local_objectif, "local_comment": local_session_comment, "local_type": local_session_type, @@ -2145,6 +2184,7 @@ const Module_Session_Planification = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -2160,6 +2200,8 @@ const Module_Session_Planification = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); + setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -2211,9 +2253,9 @@ const Module_Session_Planification = (props) => { setGetall_List_Sequence_Ressource_result([]); setselectionModel_sequence([]); - console.log(" ### arg.event.extendedProps = ", arg.event.extendedProps); + // console.log(" ### arg.event.extendedProps = ", arg.event.extendedProps); - console.log(" ### arg.event.extendedProps.local_type = ", arg.event.extendedProps.local_type); + //console.log(" ### arg.event.extendedProps.local_type = ", arg.event.extendedProps.local_type); if (arg.event.extendedProps._id) { setselected_sequence_id(arg.event.extendedProps._id); @@ -2228,6 +2270,14 @@ const Module_Session_Planification = (props) => { else setp_detail_sequence_comment(""); + + if (arg.event.extendedProps.local_mode_animation) { + setp_detail_mode_animation(arg.event.extendedProps.local_mode_animation); + } + else + setp_detail_mode_animation(""); + + if (arg.event.extendedProps.local_type) { setp_detail_event_type(arg.event.extendedProps.local_type); } @@ -2383,6 +2433,7 @@ const Module_Session_Planification = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -2442,6 +2493,7 @@ const Module_Session_Planification = (props) => { form.append("agenda", p_detail_sequence_agenda); form.append("objectif", p_detail_sequence_objectif); form.append("commentaire", p_detail_sequence_comment); + form.append("mode_animation", p_detail_mode_animation); form.append("grp_apprenant_id", p_detail_sequence_groupe_apprenant_id); form.append("ue_id", p_detail_sequence_ue_id); @@ -2469,6 +2521,8 @@ const Module_Session_Planification = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); + setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -2547,6 +2601,8 @@ const Module_Session_Planification = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); + setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -2632,6 +2688,8 @@ const Module_Session_Planification = (props) => { setp_detail_sequence_title(""); setp_detail_sequence_comment(""); + setp_detail_mode_animation(""); + setp_detail_sequence_agenda(""); setp_detail_sequence_objectif(""); @@ -2685,6 +2743,9 @@ const Module_Session_Planification = (props) => { setselected_sequence_id(""); setp_detail_sequence_objectif(""); setp_detail_sequence_comment(""); + + setp_detail_mode_animation(""); + setsubmenu_seq_dialog("dialog_detail"); setGetall_List_Sequence_Ressource_result([]); @@ -3415,7 +3476,7 @@ const Module_Session_Planification = (props) => { className="displaypartnersession mysy_MuiPaper-root" > - + Créer un nouveau modèle de planning @@ -3507,7 +3568,7 @@ const Module_Session_Planification = (props) => { static onClose={() => null} - PaperProps={{ + PaperProps={{ className: classes.paper, // Apply the paper style style: { overflowY: 'unset', @@ -3528,7 +3589,7 @@ const Module_Session_Planification = (props) => { className="displaypartnersession mysy_MuiPaper-root" > - + Gestion Modèle de planning @@ -3701,14 +3762,14 @@ const Module_Session_Planification = (props) => { className="displaypartnersession mysy_MuiPaper-root" > - + {String(update_sequence) !== "1" && "Ajouter une séquence"} {String(update_sequence) === "1" && "Mettre à jour une séquence"} - + {Dialog_seq_1_message} @@ -3982,10 +4043,7 @@ const Module_Session_Planification = (props) => { {String(submenu_seq_dialog) !== "dialog_ressource" &&
- - -
-
Unité d'enseignement +
+ + +
+ + +
UE / Matière {New_Getall_Class_List_UE_result && New_Getall_Class_List_UE_result.length > 0 && { className="displaypartnersession" static onClose={() => null} - PaperProps={{ + PaperProps={{ className: classes.paper, // Apply the paper style style: { overflowY: 'unset', @@ -4350,7 +4442,7 @@ const Module_Session_Planification = (props) => { > - Ajout ressource {/*: {selected_sequence_startDate} au {selected_sequence_endDate} */} + Ajout ressource {/*: {selected_sequence_startDate} au {selected_sequence_endDate} */} {Dialog_seq_ressource_1_message} @@ -4544,7 +4636,7 @@ const Module_Session_Planification = (props) => { static onClose={() => null} - PaperProps={{ + PaperProps={{ className: classes.paper, // Apply the paper style style: { overflowY: 'unset', @@ -4564,17 +4656,14 @@ const Module_Session_Planification = (props) => { > - MySy Information + MySy Information {Dialog_EVENT_SEMAINE_TYPE_message}
- - - - +
+
+ + +
Titre { className="displaypartnersession displaypopop_for_sequence_model_week" static onClose={() => null} - PaperProps={{ + PaperProps={{ className: classes.paper, // Apply the paper style style: { overflowY: 'unset', @@ -4871,7 +4991,7 @@ const Module_Session_Planification = (props) => { aria-labelledby="draggable-dialog-title" > - {Dialog_seq_CREATION_SEMAINE_TYPE_message} + {Dialog_seq_CREATION_SEMAINE_TYPE_message} {Dialog_seq_CREATION_SEMAINE_TYPE_message} @@ -5135,7 +5255,7 @@ const Module_Session_Planification = (props) => { > - Choisir un modèle de planification + Choisir un modèle de planification {Dialog_seq_choix_model_emargement_message} @@ -5259,7 +5379,7 @@ const Module_Session_Planification = (props) => { static onClose={() => null} - PaperProps={{ + PaperProps={{ className: classes.paper, // Apply the paper style style: { overflowY: 'unset', @@ -5272,7 +5392,7 @@ const Module_Session_Planification = (props) => { disableScrollLock classes={{ paper: classes.dialog - }} + }} PaperComponent={PaperComponent} aria-labelledby="draggable-dialog-title" @@ -5280,13 +5400,13 @@ const Module_Session_Planification = (props) => { className="module_agenda mysy_MuiPaper-root" > - MySy Information - - - {Dialog_DIALOG_AGENDA_message} + MySy Information + + + {Dialog_DIALOG_AGENDA_message} - {
+ {
@@ -5595,8 +5715,41 @@ const Module_Session_Planification = (props) => {
+
+ + +
+ + +
UE / Matière {New_Getall_Class_List_UE_result && New_Getall_Class_List_UE_result.length > 0 && @@ -6022,7 +6175,7 @@ const Module_Session_Planification = (props) => { agenda: JSON.parse(item).agenda, objectif: JSON.parse(item).objectif, commentaire: JSON.parse(item).commentaire, - + mode_animation: JSON.parse(item).mode_animation, grp_apprenant_id: JSON.parse(item).grp_apprenant_id, ue_id: JSON.parse(item).ue_id, unite_enseignement_planif_id: JSON.parse(item).unite_enseignement_planif_id, @@ -6048,6 +6201,8 @@ const Module_Session_Planification = (props) => { setp_detail_sequence_objectif(newSelectionModel.row.objectif); setp_detail_sequence_comment(newSelectionModel.row.commentaire); + setp_detail_mode_animation(newSelectionModel.row.mode_animation); + Getall_List_Sequence_Ressource(newSelectionModel.row._id); setselected_sequence_id(newSelectionModel.row._id); diff --git a/src/components/New_ButtonHilight_2025.js b/src/components/New_ButtonHilight_2025.js index bb3bf2e..ce0384f 100644 --- a/src/components/New_ButtonHilight_2025.js +++ b/src/components/New_ButtonHilight_2025.js @@ -233,7 +233,7 @@ const New_ButtonHilight_2025 = () => { } history.push("/intranet"); } - + function user_logout() { confirmAlert({ diff --git a/src/components/New_ButtonHilight_ENT_Student_2025.js b/src/components/New_ButtonHilight_ENT_Student_2025.js new file mode 100644 index 0000000..51d7f46 --- /dev/null +++ b/src/components/New_ButtonHilight_ENT_Student_2025.js @@ -0,0 +1,493 @@ + +import React, { useState, useEffect } from 'react'; +//import { slide as Menu } from "react-burger-menu"; +import { NavLink } from "react-router-dom"; +import { getCookie } from 'react-use-cookie'; +import { useHistory } from "react-router-dom"; + +import LogoutOutlinedIcon from '@mui/icons-material/LogoutOutlined'; +import Button from '@mui/material/Button'; +import { confirmAlert } from 'react-confirm-alert'; // Import +import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css +import { useCookies } from "react-cookie"; +import { Helmet } from "react-helmet"; +import logowhite from "../mysy_img/MYSY-LOGO-WHITE.png"; +import connect_white from "../mysy_img/connect_white_v2.png"; +import MenuItem from "@material-ui/core/MenuItem"; +import Menu from "@material-ui/core/Menu"; +import connect_green from "../mysy_img/connect_green.png"; +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 { format } from 'date-fns' +import moment from "moment"; +import SendIcon from '@mui/icons-material/Send'; +import axios from "axios"; +import mysy_logo2 from "../mysy_img2/Logo_MySy.png" + +import New_C_Header_ENT_Student_2025_V2 from "./header_automatic_files/Header_ENT_Student"; + +const New_ButtonHilight_ENT_Student_2025 = () => { + const history = useHistory(); + const [show, setShow] = useState(true); + const [lastScrollY, setLastScrollY] = useState(0); + const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']); + const [partcookie, setpartCookie, removepartCookie] = useCookies(['tokenmysypart']); + + const [country_code, setcountry_code] = useState("FR"); + const [country_name, setcountry_name] = useState("France"); + const [city, setcity] = useState("Paris"); + const [postal, setpostal] = useState("75001"); + const [latitude, setlatitude] = useState("48.861000061035156"); + const [longitude, setlongitude] = useState("2.3380000591278076"); + const [IPv4, setIPv4] = useState("172.71.122.128"); + const [state, setstate] = useState("France"); + const [userIp, setuserIp] = useState("172.71.122.128"); + + + const controlNavbar = () => { + + if (typeof window !== 'undefined') { + if (window.scrollY > lastScrollY && window.scrollY > 100) { + setShow(false); + } else if (window.scrollY < lastScrollY && window.scrollY < 100) { // if scroll up show the navbar + setShow(true); + } + + // remember current page location to use in the next move + setLastScrollY(window.scrollY); + } + }; + + const [userconnected, setuserconnected] = useState("0"); + const [someoneconnected, setsomeoneconnected] = useState("0"); + const [partnerconnected, setpartnerconnected] = useState("0"); + var stored_user = getCookie('tokenmysych'); + var stored_part = getCookie('tokenmysypart'); + + function whosisconnected() { + + stored_user = getCookie('tokenmysych'); + stored_part = getCookie('tokenmysypart'); + + + + var local_user_connect = 0; + var local_part_connect = 0; + + if (typeof (stored_user) === "undefined" || String(stored_user) === '') { + setuserconnected("0"); + local_user_connect = 0; + } else { + setuserconnected("1"); + setsomeoneconnected("1"); + local_user_connect = 1; + //alert(" user connected OK"); + } + + if (typeof (stored_part) === "undefined" || String(stored_part) === '') { + + setpartnerconnected("0"); + setsomeoneconnected("0"); + local_part_connect = 0; + } else { + setpartnerconnected("1"); + setsomeoneconnected("1"); + local_part_connect = 1; + // alert(" partner connected OK"); + } + } + + useEffect(() => { + + + var local_user_connect = 0; + var local_part_connect = 0; + + if (typeof (stored_user) === "undefined" || String(stored_user) === '') { + setuserconnected("0"); + local_user_connect = 0; + } else { + setuserconnected("1"); + setsomeoneconnected("1"); + local_user_connect = 1; + //alert(" user connected OK"); + } + + if (typeof (stored_part) === "undefined" || String(stored_part) === '') { + setpartnerconnected("0"); + local_part_connect = 0; + } else { + setpartnerconnected("1"); + setsomeoneconnected("1"); + local_part_connect = 1; + //alert(" partner connected OK"); + } + + if (typeof window !== 'undefined') { + window.addEventListener('scroll', controlNavbar); + + // cleanup function + return () => { + window.removeEventListener('scroll', controlNavbar); + }; + } + + + }, [lastScrollY]); + + + const [PartnerMenu, setPartnerMenu] = React.useState(null); + const [AccountMenu, setAccountMenu] = React.useState(null); + const [ProduitMenu, setproduitMenu] = React.useState(null); + const [AvisMenu, setavisMenu] = React.useState(null); + + + + const PartnerMenu_Close = () => { + setPartnerMenu(null); + }; + + const AccountMenu_Close = () => { + setAccountMenu(null); + }; + + + const ProduitMenu_Close = () => { + setproduitMenu(null); + }; + + const handlePartnerMenu = (event) => { + setPartnerMenu(event.currentTarget); + }; + + const handleAccountMenu = (event) => { + setAccountMenu(event.currentTarget); + }; + + + const handleProduitMenu = (event) => { + setproduitMenu(event.currentTarget); + }; + + const handleQuisommesNousMenu = (event) => { + history.push("/qui-sommes-nous") + }; + + + + + const handleClose_Account = () => { + alert(" my account"); + setAccountMenu(null); + }; + + const handleAccountConnexion = () => { + setAccountMenu(null); + history.push("/Connexion") + }; + + const handleMyAccount = () => { + setAccountMenu(null); + history.push("/mysy-user-account") + }; + + + + const handleAccountCreation = () => { + setAccountMenu(null); + history.push("/create_account") + }; + + const handlePartnerConnexion = () => { + setAccountMenu(null); + history.push("/PartnerLogin") + }; + + + const handleProduitService = () => { + setproduitMenu(null); + history.push("/tarifs_produits_services/") + }; + + const handleAvis = () => { + setavisMenu(null); + history.push("/Recherche-Article-formation") + }; + + + function user_logout_confirmation() { + /* si c'est une connexion partner qui est active */ + 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: '/' }); + + removeCookie("tokenmysych", { path: '/' }); + + } + history.push("/ent_student"); + } + + + function user_logout() { + confirmAlert({ + title: '', + message: 'Confirmez la deconnexion (user)', + buttons: [ + { + label: 'Oui', + onClick: () => user_logout_confirmation() + }, + { + label: 'Non', + onClick: () => { return } + } + ] + }); + } + + + function part_logout_confirmation() { + /* si c'est une connexion partner qui est active */ + + if (typeof (stored_part) != "undefined") { + const stored_cookie = getCookie('tokenmysypart'); + var acces_right_token_name = stored_cookie + "_uar"; + + setpartCookie("tokenmysypart", "", { path: '/' }); + setpartCookie(acces_right_token_name, "", { path: '/' }); + removeCookie(acces_right_token_name, { path: '/' }); + + + setpartCookie("mysy_session_display_view", "", { path: '/' }); + setpartCookie("mysy_menu_gauche_reduit", "", { path: '/' }); + setpartCookie("mysy_catalog_data_row_grouped_by", "", { path: '/' }); + + removeCookie("tokenmysypart", { path: '/' }); + removeCookie("mysy_session_display_view", { path: '/' }); + removeCookie("mysy_menu_gauche_reduit", { path: '/' }); + removeCookie("mysy_catalog_data_row_grouped_by", { path: '/' }); + + + } + setsomeoneconnected("0"); + setDialog_1_open(false); + history.push("/recherche-formation"); + } + + function part_logout() { + confirmAlert({ + title: '', + message: 'Confirmez la deconnexion (pro)', + buttons: [ + { + label: 'Oui', + onClick: () => part_logout_confirmation() + }, + { + label: 'Non', + onClick: () => { return } + } + ] + }); + } + function handleAccountLogout() { + + if (String(userconnected) === String("1")) { + user_logout(); + } + else if (String(partnerconnected) === String("1")) { + part_logout(); + } + } + + const [CategorieMenu, setCategorieMenu] = React.useState(null); + const CategorieMenu_Close = () => { + setCategorieMenu(null); + }; + + const handleCategorieMenu = (event) => { + setCategorieMenu(event.currentTarget); + }; + + + const handleMarketplace = (event) => { + history.push("/recherche-formation") + }; + + const handleClassCategorie = (e) => { + setCategorieMenu(null); + const pieces = window.location.href.split("/") + const last = pieces[pieces.length - 1] + + + var mymetier = ""; + mymetier = e.target.id + if (last === mymetier) { + //console.log(" ## RELAOD"); + window.location.reload(true); + } else { + history.push("/Recherche_new_v2/0/" + mymetier); + } + }; + + function publiecatalogue() { + history.push("/Partner", { mysy_arg: 'partner' }); + } + + + function resserver_demo() { + history.push("/Partner", { mysy_arg: 'partner' }); + } + + + const handleBlogMenu = (event) => { + history.push("/Recherche-Article-formation") + }; + + + + const [Dialog_1_message, setDialog_1_message] = React.useState(false); + const [Dialog_1_open, setDialog_1_open] = React.useState(false); + function Dialog_1_handle_change_participant_session(message) { + setDialog_1_message(message); + setDialog_1_open(true); + } + + const Dialog_1_handleClose = () => { + //alert(" Utiliser le bouton 'fermer' "); + //setOpen(false); + }; + + const Dialog_1_handleClose_buton = () => { + setDialog_1_open(false); + }; + + + const [Dialog_contact_message, setDialog_contact_message] = React.useState(false); + const [Dialog_contact_open, setDialog_contact_open] = React.useState(false); + function Dialog_contact_handle_change_participant_session(message) { + setDialog_contact_message(message); + setDialog_contact_open(true); + } + + const Dialog_contact_handleClose = () => { + + }; + + const Dialog_contact_handleClose_buton = () => { + + setDialog_contact_open(false); + clear_contact_message_fields(); + + }; + + function clear_contact_message_fields() { + setcontact_message_nom_prenom(""); + setcontact_message_email(""); + setcontact_message_phone(""); + setcontact_message_sujet(""); + setcontact_message_sujet(""); + setcontact_message_message(""); + } + + const [contact_message_nom_prenom, setcontact_message_nom_prenom] = React.useState(""); + const [contact_message_email, setcontact_message_email] = React.useState(""); + const [contact_message_phone, setcontact_message_phone] = React.useState(""); + const [contact_message_sujet, setcontact_message_sujet] = React.useState(""); + const [contact_message_message, setcontact_message_message] = React.useState(""); + + function Send_Contact_Message(e) { + + var sender_mail = ""; + var sender_tel = ""; + var token = ""; + + ////console.log("contacter " + sender_mail + " - " + sender_tel + " - ") + + var mysubject = contact_message_sujet; + var mymessage = contact_message_message; + var mysender_name = contact_message_nom_prenom; + var mysender_email = contact_message_email; + + + //alert("contacter "+mysender_email+" - "+mymessage+" - url = " + //+process.env.REACT_APP_API_URL+" - user_ip ="+IPv4+" - "+latitude); + + var re = /\S+@\S+\.\S+/; + if (re.test(mysender_email) == false) { + alert("l'email est incorrecte"); + return; + } + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/add_user_message/"; + var form = new FormData(); + form.append("type", "email"); + form.append("recever_mail", "contact@mysy-training.com"); + form.append("recever_tel", "+33769203945"); + form.append("sender_mail", mysender_email); + form.append("sender_tel", sender_tel); + form.append("object", mysubject); + form.append("message", mymessage); + form.append("sender_name", mysender_name); + form.append("token", ""); + form.append("user_ip", IPv4); + form.append("user_country_code", country_code); + form.append("user_country_name", country_name); + form.append("user_city", city); + form.append("user_postal", postal); + form.append("user_latitude", latitude); + form.append("user_longitude", longitude); + form.append("user_state", state); + + + // console.log("## form = ", form); + + + + axios.post(myurl, form).then(res => { + + if (String(res.data.status) === String("false")) { + + alert(res.data.message); + } + + else if (String(res.data.status) === String("true")) { + Dialog_contact_handleClose_buton(); + alert(res.data.message); + + } + else { + + } + }).catch((error) => { + console.warn('contact-nous Not good man :( mysearchtext = '); + + + }) + + + } + + + return ( +
+ +
+ + +
+ +
+ ); +} + + + +export default New_ButtonHilight_ENT_Student_2025; \ No newline at end of file diff --git a/src/components/New_Navigation_ENT_Student_2025.js b/src/components/New_Navigation_ENT_Student_2025.js new file mode 100644 index 0000000..139deef --- /dev/null +++ b/src/components/New_Navigation_ENT_Student_2025.js @@ -0,0 +1,33 @@ +import React from 'react'; +import { getCookie, } from 'react-use-cookie'; +import { useHistory } from "react-router-dom"; + +import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css +import New_Sidebar_ENT_Student_2025 from "./New_Sidebar_ENT_Student_2025"; +import { useCookies } from "react-cookie"; +import New_ButtonHilight_ENT_Student_2025 from "./New_ButtonHilight_ENT_Student_2025"; + +const New_Navigation_ENT_Student_2025 = () => { + + const history = useHistory(); + const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']); + const [cookie_part, setCookie_part, removeCookie_part] = useCookies(['tokenmysypart']); + + return ( +
+ +
+
+
+ + +
+ +
+ + + ) +} + + +export default New_Navigation_ENT_Student_2025; \ No newline at end of file diff --git a/src/components/New_Sidebar_2025.js b/src/components/New_Sidebar_2025.js index cf22a7c..e65e1c0 100644 --- a/src/components/New_Sidebar_2025.js +++ b/src/components/New_Sidebar_2025.js @@ -10,7 +10,7 @@ import { confirmAlert } from 'react-confirm-alert'; // Import import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css import { useCookies } from "react-cookie"; - + const New_SideBar_2025 = () => { const stored_cookie = getCookie('tokenmysych'); diff --git a/src/components/New_Sidebar_Client_Intranet_2025.js b/src/components/New_Sidebar_Client_Intranet_2025.js new file mode 100644 index 0000000..ba09363 --- /dev/null +++ b/src/components/New_Sidebar_Client_Intranet_2025.js @@ -0,0 +1,336 @@ +import React, { useState, useEffect } from 'react'; +import { slide as Menu } from "react-burger-menu"; +import { NavLink } from "react-router-dom"; +import { getCookie } from 'react-use-cookie'; +import { useHistory } from "react-router-dom"; + +import LogoutOutlinedIcon from '@mui/icons-material/LogoutOutlined'; +import Button from '@mui/material/Button'; +import { confirmAlert } from 'react-confirm-alert'; // Import +import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css +import { useCookies } from "react-cookie"; + + + +const New_Sidebar_Client_Intranet_2025 = () => { + const stored_cookie = getCookie('tokenmysych'); + const history = useHistory(); + + + const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']); + const [cookie_part, setCookie_part, removeCookie_part] = useCookies(['tokenmysypart']); + // Gestion des Cookies + const stored_partner = cookie_part.tokenmysypart; + const stored_user = cookie.tokenmysych; + + const environnment = process.env.REACT_APP_ENV + + + + function logout_confirmation() { + + // si c'est une connexion partner qui est active + if (typeof (stored_partner) !== "undefined") { + //alert(" c'est une connexion PARTTT qui est active"); + removeCookie_part('tokenmysypart', { path: '/' }); + history.push("/Connexion"); + } + + // si c'est une connexion user qui est active + if (typeof (stored_user) !== "undefined") { + //alert(" c'est une connexion USERR qui est active"); + removeCookie_part('tokenmysych', { path: '/' }); + history.push("/intranet"); + } + } + + + function logout() { + confirmAlert({ + title: 'Deconnexion ?', + message: 'Confirmez la deconnexion', + buttons: [ + { + label: 'Oui', + onClick: () => logout_confirmation() + }, + { + label: 'Non', + + } + ], + closeOnEscape: false, + closeOnClickOutside: false, + keyCodeForClose: [8, 32], + willUnmount: () => { }, + afterClose: () => { }, + onClickOutside: () => { }, + onKeypress: () => { }, + onKeypressEscape: () => { }, + overlayClassName: "overlay-custom-class-name" + }); + } + + const [someoneconnected, setsomeoneconnected] = useState("0"); + const [partnerconnected, setpartnerconnected] = useState("0"); + const [userconnected, setuserconnected] = useState("0"); + + const stored_part = getCookie('tokenmysypart'); + + + function whosisconnected() { + var local_user_connect = 0; + var local_part_connect = 0; + + if (typeof (stored_user) === "undefined" || String(stored_user) === '') { + setuserconnected("0"); + local_user_connect = 0; + } else { + setuserconnected("1"); + setsomeoneconnected("1"); + local_user_connect = 1; + //alert(" user connected OK"); + } + + if (typeof (stored_part) === "undefined" || String(stored_part) === '') { + setpartnerconnected("0"); + local_part_connect = 0; + } else { + setpartnerconnected("1"); + setsomeoneconnected("1"); + local_part_connect = 1; + //alert(" partner connected OK"); + } + } + + useEffect(() => { + var local_user_connect = 0; + var local_part_connect = 0; + + if (typeof (stored_user) === "undefined" || String(stored_user) === '') { + setuserconnected("0"); + local_user_connect = 0; + } else { + setuserconnected("1"); + setsomeoneconnected("1"); + local_user_connect = 1; + //alert(" user connected OK"); + } + + if (typeof (stored_part) === "undefined" || String(stored_part) === '') { + setpartnerconnected("0"); + local_part_connect = 0; + } else { + setpartnerconnected("1"); + setsomeoneconnected("1"); + local_part_connect = 1; + //alert(" partner connected OK"); + } + }, []); + + return ( + // Pass on our props +
+ + {String(environnment) === "PROD" && + + + + A propos + + + + Fonctionnalites + + + + + Tarifs + + + + Contact + + + + Blog + + + + Marketplace + + + + {String(someoneconnected) !== String("1") && + Connexion + } + + {String(someoneconnected) !== String("1") && + Inscription + } + + + {String(someoneconnected) === String("1") && + Mon compte + } + + + + + {typeof (stored_partner) !== "undefined" && + /* Connexion partner active */ + + + + } + + {typeof (stored_user) != "undefined" && + /* Connexion utilisateur active */ + + } + } + + {(String(environnment) === "REC" || String(environnment) === "DEM") && + + + + A propos + + + + Fonctionnalites + + + + + Tarifs + + + + Contact + + + + Blog + + + + Marketplace + + + + {String(someoneconnected) !== String("1") && + Connexion + } + + {String(someoneconnected) !== String("1") && + Inscription + } + + + {String(someoneconnected) === String("1") && + Mon compte + } + + + + + {typeof (stored_partner) !== "undefined" && + /* Connexion partner active */ + + + + } + + {typeof (stored_user) != "undefined" && + /* Connexion utilisateur active */ + + } + } + + + {String(environnment) === "DEV" && + + + + A propos + + + + Fonctionnalites + + + + + Tarifs + + + + Contact + + + + Blog + + + + Marketplace + + + + {String(someoneconnected) !== String("1") && + Connexion + } + + {String(someoneconnected) !== String("1") && + Inscription + } + + + {String(someoneconnected) === String("1") && + Mon compte + } + + + + + {typeof (stored_partner) !== "undefined" && + /* Connexion partner active */ + + + + } + + {typeof (stored_user) != "undefined" && + /* Connexion utilisateur active */ + + } + } +
+ + ); +}; + + +export default New_Sidebar_Client_Intranet_2025; \ No newline at end of file diff --git a/src/components/New_Sidebar_ENT_Student_2025.js b/src/components/New_Sidebar_ENT_Student_2025.js new file mode 100644 index 0000000..a18822c --- /dev/null +++ b/src/components/New_Sidebar_ENT_Student_2025.js @@ -0,0 +1,336 @@ +import React, { useState, useEffect } from 'react'; +import { slide as Menu } from "react-burger-menu"; +import { NavLink } from "react-router-dom"; +import { getCookie } from 'react-use-cookie'; +import { useHistory } from "react-router-dom"; + +import LogoutOutlinedIcon from '@mui/icons-material/LogoutOutlined'; +import Button from '@mui/material/Button'; +import { confirmAlert } from 'react-confirm-alert'; // Import +import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css +import { useCookies } from "react-cookie"; + + + +const New_Sidebar_ENT_Student_2025 = () => { + const stored_cookie = getCookie('tokenmysych'); + const history = useHistory(); + + + const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych']); + const [cookie_part, setCookie_part, removeCookie_part] = useCookies(['tokenmysypart']); + // Gestion des Cookies + const stored_partner = cookie_part.tokenmysypart; + const stored_user = cookie.tokenmysych; + + const environnment = process.env.REACT_APP_ENV + + + + function logout_confirmation() { + + // si c'est une connexion partner qui est active + if (typeof (stored_partner) !== "undefined") { + //alert(" c'est une connexion PARTTT qui est active"); + removeCookie_part('tokenmysypart', { path: '/' }); + history.push("/Connexion"); + } + + // si c'est une connexion user qui est active + if (typeof (stored_user) !== "undefined") { + //alert(" c'est une connexion USERR qui est active"); + removeCookie_part('tokenmysych', { path: '/' }); + history.push("/ent_student"); + } + } + + + function logout() { + confirmAlert({ + title: 'Deconnexion ?', + message: 'Confirmez la deconnexion', + buttons: [ + { + label: 'Oui', + onClick: () => logout_confirmation() + }, + { + label: 'Non', + + } + ], + closeOnEscape: false, + closeOnClickOutside: false, + keyCodeForClose: [8, 32], + willUnmount: () => { }, + afterClose: () => { }, + onClickOutside: () => { }, + onKeypress: () => { }, + onKeypressEscape: () => { }, + overlayClassName: "overlay-custom-class-name" + }); + } + + const [someoneconnected, setsomeoneconnected] = useState("0"); + const [partnerconnected, setpartnerconnected] = useState("0"); + const [userconnected, setuserconnected] = useState("0"); + + const stored_part = getCookie('tokenmysypart'); + + + function whosisconnected() { + var local_user_connect = 0; + var local_part_connect = 0; + + if (typeof (stored_user) === "undefined" || String(stored_user) === '') { + setuserconnected("0"); + local_user_connect = 0; + } else { + setuserconnected("1"); + setsomeoneconnected("1"); + local_user_connect = 1; + //alert(" user connected OK"); + } + + if (typeof (stored_part) === "undefined" || String(stored_part) === '') { + setpartnerconnected("0"); + local_part_connect = 0; + } else { + setpartnerconnected("1"); + setsomeoneconnected("1"); + local_part_connect = 1; + //alert(" partner connected OK"); + } + } + + useEffect(() => { + var local_user_connect = 0; + var local_part_connect = 0; + + if (typeof (stored_user) === "undefined" || String(stored_user) === '') { + setuserconnected("0"); + local_user_connect = 0; + } else { + setuserconnected("1"); + setsomeoneconnected("1"); + local_user_connect = 1; + //alert(" user connected OK"); + } + + if (typeof (stored_part) === "undefined" || String(stored_part) === '') { + setpartnerconnected("0"); + local_part_connect = 0; + } else { + setpartnerconnected("1"); + setsomeoneconnected("1"); + local_part_connect = 1; + //alert(" partner connected OK"); + } + }, []); + + return ( + // Pass on our props +
+ + {String(environnment) === "PROD" && + + + + A propos + + + + Fonctionnalites + + + + + Tarifs + + + + Contact + + + + Blog + + + + Marketplace + + + + {String(someoneconnected) !== String("1") && + Connexion + } + + {String(someoneconnected) !== String("1") && + Inscription + } + + + {String(someoneconnected) === String("1") && + Mon compte + } + + + + + {typeof (stored_partner) !== "undefined" && + /* Connexion partner active */ + + + + } + + {typeof (stored_user) != "undefined" && + /* Connexion utilisateur active */ + + } + } + + {(String(environnment) === "REC" || String(environnment) === "DEM") && + + + + A propos + + + + Fonctionnalites + + + + + Tarifs + + + + Contact + + + + Blog + + + + Marketplace + + + + {String(someoneconnected) !== String("1") && + Connexion + } + + {String(someoneconnected) !== String("1") && + Inscription + } + + + {String(someoneconnected) === String("1") && + Mon compte + } + + + + + {typeof (stored_partner) !== "undefined" && + /* Connexion partner active */ + + + + } + + {typeof (stored_user) != "undefined" && + /* Connexion utilisateur active */ + + } + } + + + {String(environnment) === "DEV" && + + + + A propos + + + + Fonctionnalites + + + + + Tarifs + + + + Contact + + + + Blog + + + + Marketplace + + + + {String(someoneconnected) !== String("1") && + Connexion + } + + {String(someoneconnected) !== String("1") && + Inscription + } + + + {String(someoneconnected) === String("1") && + Mon compte + } + + + + + {typeof (stored_partner) !== "undefined" && + /* Connexion partner active */ + + + + } + + {typeof (stored_user) != "undefined" && + /* Connexion utilisateur active */ + + } + } +
+ + ); +}; + + +export default New_Sidebar_ENT_Student_2025; \ No newline at end of file diff --git a/src/components/Partner_header_automatic_files/Partner_Header.jsx b/src/components/Partner_header_automatic_files/Partner_Header.jsx index ce65088..e6fb93c 100644 --- a/src/components/Partner_header_automatic_files/Partner_Header.jsx +++ b/src/components/Partner_header_automatic_files/Partner_Header.jsx @@ -176,7 +176,7 @@ const Partner_Header = () => { } - history.push("/intranet"); + history.push("/ent_student"); } return ( @@ -197,7 +197,7 @@ const Partner_Header = () => { style: { overflowY: 'unset', position: 'absolute', - top: '7rem', + top: '20rem', margin: "2px", }, }} @@ -214,7 +214,7 @@ const Partner_Header = () => { MySy Information - Confirmez la deconnexion
+ Confirmez la deconnexion de l'Intranet
diff --git a/src/components/Student_Account.js b/src/components/Student_Account.js index a5d6d73..fa465a8 100644 --- a/src/components/Student_Account.js +++ b/src/components/Student_Account.js @@ -316,6 +316,7 @@ function Student_Account() { formData.append('File', selectedFile); formData.append("token", stored_user); formData.append("type", "user"); + // formData.append("apprenant_id", apprenant_id); fetch( process.env.REACT_APP_API_URL + "myclass/api/recordImage/", { @@ -392,7 +393,7 @@ function Student_Account() {
MES FORMATIONS

-
MON PLANNING
+ {/*
MON PLANNING

MES NOTES

@@ -400,6 +401,7 @@ function Student_Account() {
MODULE TOUS DOCUMENTS

+ */} {/*
SUPPRIMER MON COMPTE

*/} @@ -429,10 +431,10 @@ function Student_Account() {
} - {connected_user_data && connected_user_data.type &&

ESPACE ENT INTRANET - {connected_user_data.type} - apprenant_id = {apprenant_id}

} + {connected_user_data && connected_user_data.type &&

ESPACE ENT

} - {String(menu) === String("affichage") && } + {String(menu) === String("affichage") && } {String(menu) === String("recherche") && } diff --git a/src/components/UpdatePartnerInfo.js b/src/components/UpdatePartnerInfo.js index 737ac81..0904df4 100644 --- a/src/components/UpdatePartnerInfo.js +++ b/src/components/UpdatePartnerInfo.js @@ -962,8 +962,6 @@ function UpdateParnterInfo(props) { form.append("indicateur_4_taille", p_indicateur4_taille); form.append("indicateur_4_color", p_indicateur4_color); - - form.append("contact_public_email", p_contact_public_email); form.append("contact_public_telephone", p_contact_public_telephone); @@ -975,6 +973,21 @@ function UpdateParnterInfo(props) { form.append("indicateur_4_gras", "400"); + if (partner_catalog_pub_url) + form.append("partner_catalog_pub_url", partner_catalog_pub_url); + else + form.append("partner_catalog_pub_url", ""); + + if (partner_intranet_pub_url) + form.append("partner_intranet_pub_url", partner_catalog_pub_url); + else + form.append("partner_intranet_pub_url", ""); + + if (partner_ent_student_url) + form.append("partner_ent_student_url", partner_ent_student_url); + else + form.append("partner_ent_student_url", ""); + form.append("_id", selected_catalog_pub_config_id); @@ -1737,6 +1750,7 @@ function UpdateParnterInfo(props) { const [partner_catalog_pub_url, setpartner_catalog_pub_url] = useState(""); const [partner_intranet_pub_url, setpartner_intranet_pub_url] = useState(""); + const [partner_ent_student_url, setpartner_ent_student_url] = useState(""); async function submenu_donnee_catalog_pub() { Get_Partner_Catalog_Pub_Config(); @@ -1744,9 +1758,11 @@ function UpdateParnterInfo(props) { var new_nom = (p_nom).replace(/[^0-9a-z]/gi, '').toLocaleLowerCase(); var new_catalog_url = window.location.protocol + "//" + new_nom + "." + process.env.REACT_APP_PART_PUB_CATALOG_DOMAIN + "moncatalog"; var new_intranet_url = window.location.protocol + "//" + new_nom + "." + process.env.REACT_APP_PART_PUB_CATALOG_DOMAIN + "intranet"; + var new_ent_student = window.location.protocol + "//" + new_nom + "." + process.env.REACT_APP_PART_PUB_CATALOG_DOMAIN + "ent_student"; setpartner_catalog_pub_url(new_catalog_url); setpartner_intranet_pub_url(new_intranet_url); + setpartner_ent_student_url(new_ent_student); setsubmenu("submenu_donnee_catalog_pub"); } @@ -2175,7 +2191,7 @@ function UpdateParnterInfo(props) { }).catch((error) => { setLoading(false); console.warn('Not good man :( Get_Partner_Catalog_Pub_Config = ', error); - alert(" Impossible de récuperer la configuration du catalogue public ") + alert(" Impossible de récuperer la configuration de vos sites publics ") }) } @@ -2602,16 +2618,16 @@ function UpdateParnterInfo(props) { form.append("_id", selected_catalog_pub_config_id); form.append("banniere_img", img_bg_file); - // console.log("Add_Update_Catalog_Pub_Banniere form == ", form); + // console.log("Add_Update_Catalog_Pub_Banniere form == ", form); var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_Partner_Catalog_Pub_Config/"; - // console.log("myurl== ", myurl); + // console.log("myurl== ", myurl); setLoading(true); axios.post(myurl, form).then(res => { setLoading(false); - // console.log(" In Add_Update_Catalog_Pub_Banniere res.data.status = " + res.data.status); + // console.log(" In Add_Update_Catalog_Pub_Banniere res.data.status = " + res.data.status); //console.log(" In Add_Update_Catalog_Pub_Banniere res.data.message r_class = " + res.data.message); if (String(res.data.status) === String("true")) { @@ -3362,7 +3378,7 @@ function UpdateParnterInfo(props) { > - Choisir une couleur + Choisir une couleur @@ -3429,7 +3445,7 @@ function UpdateParnterInfo(props) { {String(is_partner_admin_account) === "1" && } {/**/} - {String(is_partner_admin_account) === "1" && } + {String(is_partner_admin_account) === "1" && }
@@ -3447,7 +3463,7 @@ function UpdateParnterInfo(props) {
} {String(submenu).trim() === "submenu_donnee_catalog_pub" &&
-

Configuration du Catalogue public

+

Configuration des sites publics

@@ -3455,7 +3471,7 @@ function UpdateParnterInfo(props) {
+ +
+ + + + ), + }} + value={partner_ent_student_url} + + /> + +
+ +

@@ -3520,7 +3570,6 @@ function UpdateParnterInfo(props) { {String(submenu_catalog_pub) === String("design") && -
@@ -4749,7 +4798,7 @@ function UpdateParnterInfo(props) { {Partner_Catalog_Pub_banniere && String(Partner_Catalog_Pub_banniere).length > 20 &&
Bannière actuelle :
- {""} + {""}

} - +
- {fields1desabled == false &&
-
- -
-
- -
+ {fields1desabled == false &&
+
+ +
+
+
- - } - {fields1desabled == true && - - } -
- -
 
+ } + {fields1desabled == true && + + } + +
+ + +
 
Accès E-Learning
diff --git a/src/components/UpdateUserInfo.js b/src/components/UpdateUserInfo.js index 94b621c..c8d6f2e 100644 --- a/src/components/UpdateUserInfo.js +++ b/src/components/UpdateUserInfo.js @@ -21,9 +21,11 @@ import TwitterIcon from '@mui/icons-material/Twitter'; import FacebookIcon from '@mui/icons-material/Facebook'; import LinkedInIcon from '@mui/icons-material/LinkedIn'; import axios from "axios"; +import { propsToClassKey } from "@mui/styles"; +import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif"; +import Module_Alert_Confirmation from "./Module_Alert_Confirmation"; - -function UpdateUserInfo() { +function UpdateUserInfo(props) { const history = useHistory(); const [myApiResponse, setmyApiResponse] = useState(""); const [result, setResult] = useState(""); @@ -118,6 +120,8 @@ function UpdateUserInfo() { var mylocaltraining = JSON.parse(res.data.message); if (mylocaltraining) { + console.log(" #### mylocaltraining === ", mylocaltraining) + if (mylocaltraining.adr_city) { document.getElementsByName("adr_city")[0].value = mylocaltraining.adr_city; document.getElementsByName("adr_city")[0].disabled = true; @@ -173,14 +177,14 @@ function UpdateUserInfo() { document.getElementsByName("adr_street")[0].style.backgroundColor = "#ECEFF1"; } - if (mylocaltraining.surname) { - document.getElementsByName("surname")[0].value = mylocaltraining.surname; + if (mylocaltraining.prenom) { + document.getElementsByName("surname")[0].value = mylocaltraining.prenom; document.getElementsByName("surname")[0].disabled = true; document.getElementsByName("surname")[0].style.backgroundColor = "#ECEFF1"; } - if (mylocaltraining.last_name) { - document.getElementsByName("last_name")[0].value = mylocaltraining.last_name; + if (mylocaltraining.nom) { + document.getElementsByName("last_name")[0].value = mylocaltraining.nom; document.getElementsByName("last_name")[0].disabled = true; document.getElementsByName("last_name")[0].style.backgroundColor = "#ECEFF1"; } @@ -298,9 +302,11 @@ function UpdateUserInfo() { } + const [isLoading, setLoading] = useState(); + function RecordData() { const formData = new FormData(); - const url = process.env.REACT_APP_API_URL + "myclass/api/update_user_account/"; + const url = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_update_user_account/"; var adr_city = document.getElementsByName("adr_city")[0].value; var adr_zip = document.getElementsByName("adr_zip")[0].value; @@ -310,8 +316,8 @@ function UpdateUserInfo() { var link_linkedin = document.getElementsByName("link_linkedin")[0].value; var link_twitter = document.getElementsByName("link_twitter")[0].value; var adr_street = document.getElementsByName("adr_street")[0].value; - var surname = document.getElementsByName("surname")[0].value; - var last_name = document.getElementsByName("last_name")[0].value; + var prenom = document.getElementsByName("surname")[0].value; + var nom = document.getElementsByName("last_name")[0].value; formData.append('token', stored_user); @@ -322,11 +328,13 @@ function UpdateUserInfo() { formData.append('link_facebook', link_facebook); formData.append('link_twitter', link_twitter); formData.append('adr_street', adr_street); - formData.append('surname', surname); - formData.append('last_name', last_name); + formData.append('prenom', prenom); + formData.append('nom', nom); formData.append('link_linkedin', link_linkedin); + formData.append('apprenant_id', props.apprenant_id); + setLoading(true); fetch( url, { @@ -336,22 +344,39 @@ function UpdateUserInfo() { ) .then((response) => response.json()) .then((result) => { + setLoading(false); //console.log('Success:', result['message'], "result['status'] = ", result['status']); setmyApiResponse(result['status']); setResult(result['message']); if (String(result['status']) === String("true")) { settestval("true"); desablefield1(); - }else if (String(result['status']) === String("Err_Connexion")) { + + setdisplay_alert_mysy("1"); + setalert_message(result['message']); + setalert_type("success"); + + } else if (String(result['status']) === String("false")) { + setmyApiResponse("false"); + setdisplay_alert_mysy("1"); + setalert_message(result['message']); + setalert_type("error"); + } + + else if (String(result['status']) === String("Err_Connexion")) { alert('Erreur: ' + result['message']); history.push("/Connexion"); - } + } }) .catch((error) => { + setLoading(false); console.error('Error:', error); setmyApiResponse("false"); + setdisplay_alert_mysy("1"); + setalert_message("Impossible de mettre à jour les données"); + setalert_type("error"); }); @@ -396,7 +421,7 @@ function UpdateUserInfo() { function UpdateUserPwd() { setupdatepwd(false); - const url = process.env.REACT_APP_API_URL + "myclass/api/change_user_pwd/"; + const url = process.env.REACT_APP_API_URL + "myclass/api/Get_Ent_Student_change_user_pwd/"; const formData = new FormData(); formData.append('token', stored_user); @@ -413,8 +438,9 @@ function UpdateUserInfo() { formData.append('pwd', pwd); formData.append('new_pwd', new_pwd); formData.append('conf_new_pwd', conf_new_pwd); + formData.append('apprenant_id', props.apprenant_id); - + setLoading(true); fetch( url, { @@ -424,16 +450,26 @@ function UpdateUserInfo() { ) .then((response) => response.json()) .then((result) => { + setLoading(false); //console.log('Success:', result['message'], "result['status'] = ", result['status']); setmyApiResponse(result['status']); setResult(result['message']); if (String(result['status']) == String("true")) { setupdatepwd(true); setfields1desabled(true); + setdisplay_alert_mysy("1"); + setalert_message(result['message']); + setalert_type("success"); + } else { + setdisplay_alert_mysy("1"); + setalert_message(result['message']); + setalert_type("error"); + } }) .catch((error) => { + setLoading(false); console.error('Error:', error); setmyApiResponse("false"); setupdatepwd(false); @@ -498,32 +534,53 @@ function UpdateUserInfo() { }; + const [display_alert_mysy, setdisplay_alert_mysy] = useState(""); + const [alert_message, setalert_message] = useState(""); + const [alert_type, setalert_type] = useState(""); + + function clear_alert_message() { + setalert_message(""); + } + function clear_alert_type() { + setalert_type(""); + } + + function clear_display_alert_mysy() { + setdisplay_alert_mysy(""); + } + + return (
+ {isLoading &&
+
+
} + + + {/*** Affichage des messages d'alerte*/} + {display_alert_mysy && String(display_alert_mysy) === "1" && + + } + {/*** FIN Affichage des messages d'alerte*/} +
Données personnelles
-
+
- {String(testval) == String("true") &&
- Les données ont été mises à jour. -
- } - - {String(testval) == String("false") &&
- Erreur mise à jour. -
- } - - -   - :not(style)': { m: 1 }, width: '100%', }}> +   + :not(style)': { m: 1 }, width: '100%', }}> @@ -539,7 +596,7 @@ function UpdateUserInfo() { name="surname" label="Prénom" className="texte_area" - sx={{ m: 1, width: '48%' }} + sx={{ m: 1, width: '48%', fontFamily: 'DM Sans' }} InputProps={{ startAdornment: ( @@ -646,7 +703,7 @@ function UpdateUserInfo() { />
-
-
 
+
+
 
Securité
-
+
+   + :not(style)': { m: 1 } }}> - {updatepwd == false &&
- Erreur mise à jour. -
- } - - {updatepwd == true &&
- La mise à jour été faite -
- } -   - :not(style)': { m: 1 } }}> -
- + { setsomeoneconnected("0"); setDialog_1_open(false); history.push("/recherche-formation"); - } + } function user_logout_confirmation() { /* si c'est une connexion partner qui est active */ @@ -197,7 +197,7 @@ const Header = () => { style: { overflowY: 'unset', position: 'absolute', - top: '7rem', + top: '20rem', margin: "2px", }, }} diff --git a/src/components/header_automatic_files/Header_Client_Intranet.jsx b/src/components/header_automatic_files/Header_Client_Intranet.jsx new file mode 100644 index 0000000..32b91cf --- /dev/null +++ b/src/components/header_automatic_files/Header_Client_Intranet.jsx @@ -0,0 +1,322 @@ +import React, { useState, useEffect } from 'react'; +import './Header.css'; +import moment from "moment"; +import { getCookie } from 'react-use-cookie'; +import { useHistory } from "react-router-dom"; + +import Header_MySy_Logo from '../../img_new_design_2025/header_mysy_logo.png'; +import Header_User from '../../img_new_design_2025/header_user.png'; +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 Button from '@mui/material/Button'; +import { useCookies } from "react-cookie"; + + +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 { IconButton } from '@material-ui/core'; + + +function PaperComponent(props) { + return ( + + + + ); +} + +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 Header_Client_Intranet = () => { + const history = useHistory(); + const classes = useStyles(); + const [userconnected, setuserconnected] = useState("0"); + const [someoneconnected, setsomeoneconnected] = useState("0"); + const [partnerconnected, setpartnerconnected] = useState("0"); + const stored_user = getCookie('tokenmysych'); + const stored_part = getCookie('tokenmysypart'); + const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych'], { path: '/' }); + const [partcookie, setpartCookie, removepartCookie] = useCookies(['tokenmysypart'], { path: '/' }); + const [PartnerMenu, setPartnerMenu] = React.useState(null); + const [AccountMenu, setAccountMenu] = React.useState(null); + const [ProduitMenu, setproduitMenu] = React.useState(null); + + useEffect(() => { + var local_user_connect = 0; + var local_part_connect = 0; + + if (typeof (stored_user) === "undefined" || String(stored_user) === '') { + setuserconnected("0"); + local_user_connect = 0; + } else { + setuserconnected("1"); + setsomeoneconnected("1"); + local_user_connect = 1; + //alert(" user connected OK"); + } + + if (typeof (stored_part) === "undefined" || String(stored_part) === '') { + setpartnerconnected("0"); + local_part_connect = 0; + } else { + setpartnerconnected("1"); + setsomeoneconnected("1"); + local_part_connect = 1; + //alert(" partner connected OK"); + } + + }, []); + + const handleAccountCreation = () => { + setAccountMenu(null); + history.push("/signup/") + }; + + + const handleMyAccount = () => { + setAccountMenu(null); + history.push("/mysy-user-account") + }; + + const handleAccountConnexion = () => { + setAccountMenu(null); + history.push("/signin/") + }; + + + const handleMyPartnerAccount = () => { + setAccountMenu(null); + history.push("/Partner") + }; + + + function handleAccountConnexion_v2() { + + if (String(userconnected) === String("1")) { + handleMyAccount(); + } + else if (String(partnerconnected) === String("1")) { + handleMyPartnerAccount(); + } + } + + const [Dialog_1_open, setDialog_1_open] = React.useState(false); + const Dialog_1_handleClose = () => { + }; + + const Dialog_1_handleClose_buton = () => { + setDialog_1_open(false); + }; + + function part_logout_confirmation() { + /* si c'est une connexion partner qui est active */ + + if (typeof (stored_part) != "undefined") { + const stored_cookie = getCookie('tokenmysypart'); + var acces_right_token_name = stored_cookie + "_uar"; + + setpartCookie("tokenmysypart", "", { path: '/' }); + setpartCookie(acces_right_token_name, "", { path: '/' }); + removeCookie(acces_right_token_name, { path: '/' }); + + + setpartCookie("mysy_session_display_view", "", { path: '/' }); + setpartCookie("mysy_menu_gauche_reduit", "", { path: '/' }); + setpartCookie("mysy_catalog_data_row_grouped_by", "", { path: '/' }); + + removeCookie("tokenmysypart", { path: '/' }); + removeCookie("mysy_session_display_view", { path: '/' }); + removeCookie("mysy_menu_gauche_reduit", { path: '/' }); + removeCookie("mysy_catalog_data_row_grouped_by", { path: '/' }); + + + } + setsomeoneconnected("0"); + setDialog_1_open(false); + history.push("/recherche-formation"); + } + + function user_logout_confirmation() { + /* si c'est une connexion partner qui est active */ + 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: '/' }); + + removeCookie("tokenmysych", { path: '/' }); + + + } + history.push("/intranet"); + } + + return ( +
+ + {/*** GESTION Deconnexion */} + null} + + PaperProps={{ + + + className: classes.paper, // Apply the paper style + style: { + overflowY: 'unset', + position: 'absolute', + top: '20rem', + margin: "2px", + }, + }} + hideBackdrop={true} + disableScrollLock + classes={{ + paper: classes.dialog + }} + + PaperComponent={PaperComponent} + aria-labelledby="draggable-dialog-title" + > + + MySy Information + + + Confirmez la deconnexion
+ + +
+ +
+ + + + + + + +
+
+ +
+
+ +
+
+ +
+
+ + {/*** Fin GESTION Deconnexion */} + +
+
+ + +
+
+ + +
+
+ {String(someoneconnected) !== String("1") && } + + {String(someoneconnected) === String("1") && } + +
+
+ {String(someoneconnected) !== String("1") &&
+ User icon + Connexion +
} + + {String(someoneconnected) === String("1") &&
setDialog_1_open(true)}> + User icon + Deconnexion +
} + +
+
+
+
+ ); +}; + +export default Header_Client_Intranet; + diff --git a/src/components/header_automatic_files/Header_ENT_Student.jsx b/src/components/header_automatic_files/Header_ENT_Student.jsx new file mode 100644 index 0000000..1b405a8 --- /dev/null +++ b/src/components/header_automatic_files/Header_ENT_Student.jsx @@ -0,0 +1,322 @@ +import React, { useState, useEffect } from 'react'; +import './Header.css'; +import moment from "moment"; +import { getCookie } from 'react-use-cookie'; +import { useHistory } from "react-router-dom"; + +import Header_MySy_Logo from '../../img_new_design_2025/header_mysy_logo.png'; +import Header_User from '../../img_new_design_2025/header_user.png'; +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 Button from '@mui/material/Button'; +import { useCookies } from "react-cookie"; + + +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 { IconButton } from '@material-ui/core'; + + +function PaperComponent(props) { + return ( + + + + ); +} + +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 Header_ENT_Student = () => { + const history = useHistory(); + const classes = useStyles(); + const [userconnected, setuserconnected] = useState("0"); + const [someoneconnected, setsomeoneconnected] = useState("0"); + const [partnerconnected, setpartnerconnected] = useState("0"); + const stored_user = getCookie('tokenmysych'); + const stored_part = getCookie('tokenmysypart'); + const [cookie, setCookie, removeCookie] = useCookies(['tokenmysych'], { path: '/' }); + const [partcookie, setpartCookie, removepartCookie] = useCookies(['tokenmysypart'], { path: '/' }); + const [PartnerMenu, setPartnerMenu] = React.useState(null); + const [AccountMenu, setAccountMenu] = React.useState(null); + const [ProduitMenu, setproduitMenu] = React.useState(null); + + useEffect(() => { + var local_user_connect = 0; + var local_part_connect = 0; + + if (typeof (stored_user) === "undefined" || String(stored_user) === '') { + setuserconnected("0"); + local_user_connect = 0; + } else { + setuserconnected("1"); + setsomeoneconnected("1"); + local_user_connect = 1; + //alert(" user connected OK"); + } + + if (typeof (stored_part) === "undefined" || String(stored_part) === '') { + setpartnerconnected("0"); + local_part_connect = 0; + } else { + setpartnerconnected("1"); + setsomeoneconnected("1"); + local_part_connect = 1; + //alert(" partner connected OK"); + } + + }, []); + + const handleAccountCreation = () => { + setAccountMenu(null); + history.push("/signup/") + }; + + + const handleMyAccount = () => { + setAccountMenu(null); + history.push("/mysy-user-account") + }; + + const handleAccountConnexion = () => { + setAccountMenu(null); + history.push("/signin/") + }; + + + const handleMyPartnerAccount = () => { + setAccountMenu(null); + history.push("/Partner") + }; + + + function handleAccountConnexion_v2() { + + if (String(userconnected) === String("1")) { + handleMyAccount(); + } + else if (String(partnerconnected) === String("1")) { + handleMyPartnerAccount(); + } + } + + const [Dialog_1_open, setDialog_1_open] = React.useState(false); + const Dialog_1_handleClose = () => { + }; + + const Dialog_1_handleClose_buton = () => { + setDialog_1_open(false); + }; + + function part_logout_confirmation() { + /* si c'est une connexion partner qui est active */ + + if (typeof (stored_part) != "undefined") { + const stored_cookie = getCookie('tokenmysypart'); + var acces_right_token_name = stored_cookie + "_uar"; + + setpartCookie("tokenmysypart", "", { path: '/' }); + setpartCookie(acces_right_token_name, "", { path: '/' }); + removeCookie(acces_right_token_name, { path: '/' }); + + + setpartCookie("mysy_session_display_view", "", { path: '/' }); + setpartCookie("mysy_menu_gauche_reduit", "", { path: '/' }); + setpartCookie("mysy_catalog_data_row_grouped_by", "", { path: '/' }); + + removeCookie("tokenmysypart", { path: '/' }); + removeCookie("mysy_session_display_view", { path: '/' }); + removeCookie("mysy_menu_gauche_reduit", { path: '/' }); + removeCookie("mysy_catalog_data_row_grouped_by", { path: '/' }); + + + } + setsomeoneconnected("0"); + setDialog_1_open(false); + history.push("/recherche-formation"); + } + + function user_logout_confirmation() { + /* si c'est une connexion partner qui est active */ + 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: '/' }); + + removeCookie("tokenmysych", { path: '/' }); + + + } + history.push("/intranet"); + } + + return ( +
+ + {/*** GESTION Deconnexion */} + null} + + PaperProps={{ + + + className: classes.paper, // Apply the paper style + style: { + overflowY: 'unset', + position: 'absolute', + top: '20rem', + margin: "2px", + }, + }} + hideBackdrop={true} + disableScrollLock + classes={{ + paper: classes.dialog + }} + + PaperComponent={PaperComponent} + aria-labelledby="draggable-dialog-title" + > + + MySy Information + + + Confirmez la deconnexion
+ + +
+ +
+ + + + + + + +
+
+ +
+
+ +
+
+ +
+
+ + {/*** Fin GESTION Deconnexion */} + +
+
+ + +
+
+ + +
+
+ {String(someoneconnected) !== String("1") && } + + {String(someoneconnected) === String("1") && } + +
+
+ {String(someoneconnected) !== String("1") &&
+ User icon + Connexion +
} + + {String(someoneconnected) === String("1") &&
setDialog_1_open(true)}> + User icon + Deconnexion +
} + +
+
+
+
+ ); +}; + +export default Header_ENT_Student; + diff --git a/src/components/sidebar.js b/src/components/sidebar.js index 8d306bd..71ab67c 100644 --- a/src/components/sidebar.js +++ b/src/components/sidebar.js @@ -25,7 +25,7 @@ const SideBar = () => { const environnment = process.env.REACT_APP_ENV - + function logout_confirmation() { diff --git a/src/mysy_img/client_intranet.jpg b/src/mysy_img/client_intranet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dfde8e81865eeeee32203b60c70d9a2849f79eac GIT binary patch literal 54929 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%0Dpq#(fO~2V%DFB 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%0D6&kuI9-GeSNBKK} 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 ZOK`5kB)3vc)i#xu%H(JW9zXmC|Jjo{k;DK1 literal 0 HcmV?d00001 diff --git a/src/pages/student_account.js b/src/pages/student_account.js index d7a9f2b..393aade 100644 --- a/src/pages/student_account.js +++ b/src/pages/student_account.js @@ -1,21 +1,21 @@ import Navigation from "../components/Navigation"; import Ent_Intranet from "./../components/Ent_Intranet"; -import Partner_New_C_Header_2025_V2 from "../components/Partner_header_automatic_files/Partner_Header"; +import ENT_Student_New_C_Header_2025_V2 from "../components/ENT_Student_header_automatic_files/ENT_Student_Header"; import New_C_Footer_Without_Testimony_2025_V2 from "../components/footer_automatic_files/Layout_Without_Testimony"; -import New_Navigation_2025 from "../components/New_Navigation_2025"; +import New_Navigation_ENT_Student_2025 from "../components/New_Navigation_ENT_Student_2025"; import Student_Account from "./../components/Student_Account"; const student_account = () => { return (
- - + +
) -} +} export default student_account; diff --git a/src/styles/components/_account.scss b/src/styles/components/_account.scss index bdba466..663f4df 100644 --- a/src/styles/components/_account.scss +++ b/src/styles/components/_account.scss @@ -1163,6 +1163,7 @@ text-align: left; color: black; margin-left: 5px; + max-width: 20rem; } .containerBox { diff --git a/src/styles/components/_apprenant.scss b/src/styles/components/_apprenant.scss index d4004ce..b0158cb 100644 --- a/src/styles/components/_apprenant.scss +++ b/src/styles/components/_apprenant.scss @@ -1845,7 +1845,7 @@ text-align: center; margin-bottom: 0.8rem; color: white; - cursor: pointer; + cursor: normal; font-style: italic; background-color: gray; font-weight: normal; @@ -2498,7 +2498,7 @@ text-align: center; margin-bottom: 0.8rem; color: white; - cursor: pointer; + cursor: normal; font-style: italic; background-color: gray; font-weight: normal; diff --git a/src/styles/components/_module_email_management.scss b/src/styles/components/_module_email_management.scss index 12ec171..89cc4e2 100644 --- a/src/styles/components/_module_email_management.scss +++ b/src/styles/components/_module_email_management.scss @@ -2558,8 +2558,8 @@ } .DialogContent_width { - width: 1500px !important; - max-width: 1500px !important; + width: 800px; + max-width: 800; } .DialogContent_width_session { diff --git a/src/styles/components/_updateparnterinfo.scss b/src/styles/components/_updateparnterinfo.scss index 33ce21f..e0cac81 100644 --- a/src/styles/components/_updateparnterinfo.scss +++ b/src/styles/components/_updateparnterinfo.scss @@ -10,7 +10,7 @@ padding-right: 0.2rem !important; height: 3rem !important; margin-bottom: 1rem; - } + } .css-1o9s3wi-MuiInputBase-input-MuiOutlinedInput-input { height: 2.5rem !important; @@ -241,7 +241,7 @@ border: 1px solid #9cf; color: #3b3e40; font-family: "DM Sans", "sans-serif"; - font-size: small; + font-size: 11px; letter-spacing: 0.1rem; font-weight: normal; width: 100%; @@ -505,7 +505,7 @@ border: 1px solid #9cf; color: #3b3e40; font-family: "DM Sans", "sans-serif"; - font-size: small; + font-size: 11px; letter-spacing: 0.1rem; font-weight: normal; height: 2rem !important; @@ -766,7 +766,7 @@ border: 1px solid #9cf; color: #3b3e40; font-family: "DM Sans", "sans-serif"; - font-size: small; + font-size: 11px; letter-spacing: 0.1rem; font-weight: normal; height: 2rem !important; @@ -1046,7 +1046,7 @@ border: 1px solid #9cf; color: #3b3e40; font-family: "DM Sans", "sans-serif"; - font-size: small; + font-size: 11px; letter-spacing: 0.1rem; font-weight: normal; height: 2rem !important; diff --git a/src/styles/components/_updateuserinfo.scss b/src/styles/components/_updateuserinfo.scss index 01a5cb8..a43dd73 100644 --- a/src/styles/components/_updateuserinfo.scss +++ b/src/styles/components/_updateuserinfo.scss @@ -1,10 +1,40 @@ .updateuserinfo { + .loader-container { + width: 100%; + height: 100vh; + display: flex; + justify-content: center; + align-items: center; + position: fixed; + background: white; + background-color: transparent; + z-index: 1; + top: 0px; + opacity: 80%; + left: 0px; + } + .spinner { + width: 20rem; + height: 10rem; + border: 8px solid; + border-color: #3d5af1 transparent #3d5af1 transparent; + border-radius: 50%; + animation: spin-anim 1.2s linear infinite; + background-color: red; + color: black; + } + + .mysy_spinner { + border-radius: 5px; + //border: 1px solid #d5d8dc; + opacity: 100%; + } width: 100%; float: left; - - @media only screen and (max-width: 600px) { + + @media only screen and (max-width: 600px) { text-align: left; font-size: small !important; @@ -18,21 +48,21 @@ margin-top: 0.3rem; } - .texte_area{ + .texte_area { width: 90% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; margin: 0.4rem !important; } - .texte_area_adress{ + .texte_area_adress { width: 90% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; margin: 0.4rem !important; } - .texte_area_passwd{ + .texte_area_passwd { width: 90% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; @@ -41,7 +71,7 @@ - input{ + input { font-size: small !important; padding-top: 0.2rem; padding-bottom: 0.2rem; @@ -58,13 +88,13 @@ background-color: gray; font-weight: normal; } - + .big_hr { height: 0.2rem; border-width: 0; color: black; } - + .div_row22 { text-align: center; border-width: 0.01rem; @@ -73,49 +103,50 @@ border-radius: 1rem; font-size: small; } - + .btn_modif { width: 7rem; background-color: #212121 !important; } - + .btn_enreg { width: 7rem; background-color: green !important; } - + .okUpdateData { font-size: small; color: green; font-style: italic; } - + .koUpdateData { font-size: small; color: red; font-style: italic; } - + } + @media only screen and (min-width: 601px) and (max-width: 991px) { text-align: left; font-size: medium !important; - .texte_area{ + .texte_area { width: 47% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; margin: 0.4rem !important; } - .texte_area_adress{ + .texte_area_adress { width: 96% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; margin: 0.4rem !important; } - .texte_area_passwd{ + .texte_area_passwd { width: 95% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; @@ -124,7 +155,7 @@ - input{ + input { font-size: small !important; padding-top: 0.2rem; padding-bottom: 0.2rem; @@ -142,13 +173,13 @@ background-color: gray; font-weight: normal; } - + .big_hr { height: 0.2rem; border-width: 0; color: black; } - + .div_row22 { text-align: center; border-width: 0.01rem; @@ -157,30 +188,31 @@ border-radius: 1rem; font-size: small; } - + .btn_modif { width: 10rem; background-color: #212121 !important; } - + .btn_enreg { width: 10rem; background-color: green !important; } - + .okUpdateData { font-size: small; color: green; font-style: italic; } - + .koUpdateData { font-size: small; color: red; font-style: italic; } - + } + @media only screen and (min-width: 992px) and (max-width: 1199px) { text-align: left; font-size: larger !important; @@ -196,23 +228,23 @@ background-color: gray; font-weight: normal; } - - - .texte_area{ + + + .texte_area { width: 47% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; margin: 0.4rem !important; } - .texte_area_adress{ + .texte_area_adress { width: 96% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; margin: 0.4rem !important; } - .texte_area_passwd{ + .texte_area_passwd { width: 95% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; @@ -221,7 +253,7 @@ - input{ + input { font-size: small !important; padding-top: 0.2rem; padding-bottom: 0.2rem; @@ -233,7 +265,7 @@ border-width: 0; color: black; } - + .div_row22 { text-align: center; border-width: 0.01rem; @@ -242,31 +274,31 @@ border-radius: 1rem; font-size: small; } - + .btn_modif { width: 10rem; background-color: #212121 !important; } - + .btn_enreg { width: 10rem; background-color: green !important; } - + .okUpdateData { font-size: small; color: green; font-style: italic; } - + .koUpdateData { font-size: small; color: red; font-style: italic; } - + } - + @media only screen and (min-width: 1200px) { text-align: left; font-size: medium !important; @@ -283,41 +315,41 @@ font-weight: normal; } - - .texte_area{ + + .texte_area { width: 47% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; margin: 0.4rem !important; } - .texte_area_adress{ + .texte_area_adress { width: 96% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; margin: 0.4rem !important; } - .texte_area_passwd{ + .texte_area_passwd { width: 95% !important; font-size: x-small !important; font-family: "DM Sans", "sans-serif"; margin: 0.4rem !important; } - input{ + input { font-size: medium !important; padding-top: 0.2rem; padding-bottom: 0.2rem; } - + .big_hr { height: 0.2rem; border-width: 0; color: black; } - + .div_row22 { text-align: center; border-width: 0.01rem; @@ -326,28 +358,28 @@ border-radius: 1rem; font-size: small; } - + .btn_modif { width: 10rem; background-color: #212121 !important; } - + .btn_enreg { width: 10rem; background-color: green !important; } - + .okUpdateData { font-size: small; color: green; font-style: italic; } - + .koUpdateData { font-size: small; color: red; font-style: italic; } - + } -} +} \ No newline at end of file