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 0000000..dfde8e8 Binary files /dev/null and b/src/mysy_img/client_intranet.jpg differ 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