diff --git a/src/components/AddPartnerClient.js b/src/components/AddPartnerClient.js index 8b698e5..9a177ad 100644 --- a/src/components/AddPartnerClient.js +++ b/src/components/AddPartnerClient.js @@ -10002,26 +10002,6 @@ button { padding: 24px; } -.section-title, -.card-header-row { - display: flex; - align-items: center; - justify-content: space-between; - gap: 14px; - margin-bottom: 18px; -} - -.section-title { - justify-content: flex-start; -} - -.section-title h4, -.card-header-row h4, -.balance-card h4 { - margin: 0; - font-size: 18px; - letter-spacing: -0.02em; -} .section-icon { width: 38px; diff --git a/src/components/Crm_Opportunite.js b/src/components/Crm_Opportunite.js index 50095a7..48f1a3d 100644 --- a/src/components/Crm_Opportunite.js +++ b/src/components/Crm_Opportunite.js @@ -1794,19 +1794,19 @@ const CRM_Opportunite = (props) => { }} renderInput={(params) => @@ -1842,19 +1842,19 @@ const CRM_Opportunite = (props) => { }} renderInput={(params) => @@ -1953,19 +1953,19 @@ const CRM_Opportunite = (props) => { }} renderInput={(params) => @@ -1997,19 +1997,19 @@ const CRM_Opportunite = (props) => { setopport_changed("1"); }} renderInput={(params) => @@ -2105,19 +2105,19 @@ const CRM_Opportunite = (props) => { }} renderInput={(params) => @@ -2212,19 +2212,20 @@ const CRM_Opportunite = (props) => { }} renderInput={(params) => @@ -2310,19 +2311,19 @@ const CRM_Opportunite = (props) => { }} renderInput={(params) => @@ -2409,19 +2410,19 @@ const CRM_Opportunite = (props) => { }} renderInput={(params) => @@ -2527,12 +2528,12 @@ const CRM_Opportunite = (props) => { // Gestion des cellule a distance ou presentiel '& .cell--distantiel': { backgroundColor: '#AFE1AF', - color: "#0a2a4d", + color: "#0a2a4d", }, '& .cell--presentiel': { backgroundColor: '#AFE1AF', - color: "#0a2a4d", + color: "#0a2a4d", }, @@ -2544,11 +2545,11 @@ const CRM_Opportunite = (props) => { '& .line--statut--inscrit': { backgroundColor: '#CEF6D8', - color: "#0a2a4d", + color: "#0a2a4d", }, '& .line--statut--preinscrit': { backgroundColor: '#F7F2E0', - color: "#0a2a4d", + color: "#0a2a4d", }, /*"& .MuiDataGrid-virtualScrollerRenderZone": { @@ -2558,21 +2559,21 @@ const CRM_Opportunite = (props) => { },*/ "& .MuiDataGrid-columnHeaders": { backgroundColor: "#dfe8f2", - color: "#0a2a4d", - fontSize: '14px', - fontFamily:'DM Sans', + color: "#0a2a4d", + fontSize: '14px', + fontFamily: 'DM Sans', }, '& .line--statut--selected': { backgroundColor: '#e9f7f1', - color: "#0a2a4d", + color: "#0a2a4d", }, '& .line--statut--pair': { backgroundColor: 'rgba(235, 235, 235, .7)', - color: "#0a2a4d", + color: "#0a2a4d", }, '& .line--statut--impair': { backgroundColor: '#FFFFFF', - color: "#0a2a4d", + color: "#0a2a4d", }, }} diff --git a/src/components/DisplayPartnerPromotion.js b/src/components/DisplayPartnerPromotion.js index 41e2e48..805f0b4 100644 --- a/src/components/DisplayPartnerPromotion.js +++ b/src/components/DisplayPartnerPromotion.js @@ -3338,12 +3338,12 @@ const DisplayPartnerPromotion = (props) => { setSession_step_chanel(local_opport_chanel); if (String(props.reduce) === "0") { - var tmp = 80 / new_data2.length; + var tmp = 70 / new_data2.length; var tmp_val = tmp + "vw"; setkanban_colonne_width(tmp_val); } else { - var tmp = 95 / new_data2.length; + var tmp = 85 / new_data2.length; var tmp_val = tmp + "vw"; setkanban_colonne_width(tmp_val); @@ -3479,18 +3479,18 @@ const DisplayPartnerPromotion = (props) => { setSession_step_chanel(local_opport_chanel); if (String(props.reduce) === "0") { - var tmp = 80 / new_data2.length; + var tmp = 70 / new_data2.length; var tmp_val = tmp + "vw"; setkanban_colonne_width(tmp_val); } else { - var tmp = 95 / new_data2.length; + var tmp = 85 / new_data2.length; var tmp_val = tmp + "vw"; setkanban_colonne_width(tmp_val); } - console.log(" ### local_opport_chanel = ", local_opport_chanel); + // console.log(" ### local_opport_chanel = ", local_opport_chanel); } else { @@ -14421,7 +14421,7 @@ const DisplayPartnerPromotion = (props) => { } // MySy Comment : design d'une tache (couleur, taille, etc) - const classes_session_step = { + const classes_session_step_ORIG = { board: { display: "flex", margin: "0 auto", @@ -14459,6 +14459,162 @@ const DisplayPartnerPromotion = (props) => { } }; + const classes_session_step = { + board: { + display: "flex", + margin: "0 auto", + width: "100%", + fontFamily: 'Arial, "Helvetica Neue", sans-serif' + }, + column: { + // minWidth: 200, + //width: "16vw", + width: kanban_colonne_width, + textAlign: "center", + height: "80vh", + margin: "0 auto", + backgroundColor: "#FFFFFF", + border: 'solid 1px', + borderLeft: "1px solid #ecf1fc", + borderRight: "1px solid #ecf1fc", + borderRadius: "24px", + backgroundColor: "rgba(255, 255, 255, 0.68)", + border: "1px solid rgba(221, 229, 239, 0.8)", + boxShadow: "var(--shadow-lg)", + overflow: "hidden", + backdropFilter: "blur(10px)", + fontFamily: "'DM Sans', Arial, Helvetica, sans-serif", + marginLeft: "30px", + + }, + + columnHead: { + textAlign: "center", + padding: 5, + fontSize: "14px", + backgroundColor: randomColor(), + border: "1px solid", + marginBottom: "5px", + }, + item: { + padding: 5, + marginBottom: 10, + fontSize: "0.8em", + cursor: "pointer", + backgroundColor: "#f4f6f6", + border: "0px solid", + cursor: "move", + width: "94%", + marginLeft: "3%", + }, + + column_first_left: { + // minWidth: 200, + //width: "16vw", + width: kanban_colonne_width, + textAlign: "center", + height: "80vh", + margin: "0 auto", + backgroundColor: "#FFFFFF", + border: 'solid 1px', + borderTop: 'none', + borderRadius: "24px", + backgroundColor: "rgba(255, 255, 255, 0.68)", + border: "1px solid rgba(221, 229, 239, 0.8)", + boxShadow: "var(--shadow-lg)", + overflow: "hidden", + backdropFilter: "blur(10px)", + fontFamily: "'DM Sans', Arial, Helvetica, sans-serif", + marginLeft: "30px", + + // borderRight: "1px solid #ecf1fc", + + }, + + column_right_solid_border: { + // minWidth: 200, + //width: "16vw", + width: kanban_colonne_width, + textAlign: "center", + height: "80vh", + margin: "0 auto", + backgroundColor: "#FFFFFF", + + borderRadius: "24px", + backgroundColor: "rgba(255, 255, 255, 0.68)", + border: "1px solid rgba(221, 229, 239, 0.8)", + boxShadow: "var(--shadow-lg)", + overflow: "hidden", + backdropFilter: "blur(10px)", + fontFamily: "'DM Sans', Arial, Helvetica, sans-serif", + marginLeft: "30px", + + + }, + + columnHead_Encours: { + textAlign: "center", + padding: 5, + border: "none", + marginBottom: "5px", + background: "linear-gradient(180deg, #eef4ff 0%, #f7faff 100%)", + fontSize: "17px", + color: "#0f2552", + fontWeight: 600, + padding: "18px 18px 16px", + }, + + columnHead_Fait: { + textAlign: "center", + padding: 5, + border: "none", + marginBottom: "5px", + background: "linear-gradient(180deg, #edfdf4 0%, #f8fffb 100%)", + fontSize: "17px", + color: "#0f2552", + fontWeight: 600, + padding: "18px 18px 16px", + }, + + + columnHead_Annule: { + textAlign: "center", + padding: 5, + border: "none", + marginBottom: "5px", + background: "linear-gradient(180deg, #fff5e9 0%, #fffaf3 100%)", + fontSize: "17px", + color: "#0f2552", + fontWeight: 600, + padding: "18px 18px 16px", + }, + + columnHead_Archivé: { + textAlign: "center", + padding: 5, + border: "none", + marginBottom: "5px", + background: "linear-gradient(180deg, #f2f6fb 0%, #f9fbfd 100%)", + fontSize: "17px", + color: "#0f2552", + fontWeight: 600, + padding: "18px 18px 16px", + }, + + item: { + padding: 5, + marginBottom: 10, + fontSize: "0.8em", + cursor: "pointer", + backgroundColor: "#f4f6f6", + border: "0px solid", + cursor: "move", + width: "94%", + marginLeft: "3%", + } + }; + + const KanbanColumn = ({ status, changeTaskStatus, children }) => { const ref = useRef(null); @@ -21780,7 +21936,7 @@ const DisplayPartnerPromotion = (props) => {
- {Session_step_chanel.map(channel => ( + {Session_step_chanel.map((channel, index) => ( { status={channel.label} changeTaskStatus={changeTaskStatus} > -
-
{channel.label} -   ({tasks.filter(item => item.session_etape === channel.label).length}) + {String(index) === "0" &&
+
+
{channel.label} +   ({tasks.filter(item => item.session_etape === channel.label).length}) +
+
+ {tasks + .filter(item => item.session_etape === channel.label) + .map(item => ( + + +
{ + setgridline_id(item.id); + + setsequence_gridline_id(""); + + setaddOneSession("0"); + setEdite_session("0"); + setsessionChanged(false); + //handleClick_edit_session_From_Line(newSelectionModel.row.id); + + setselected_session_id(item._id); + + setsession_selected_row_id(item.id); + setsession_selected_class_id(item.class_id); + + setselected_session_invoiced_statut(item.invoiced_statut); + + //console.log(" ### newSelectionModel.row.invoiced_statut = ", newSelectionModel.row.invoiced_statut); + + setDialog_2_message(String(JSON.parse(rowss[item.id]).title)); + setDialog_2_open(true); + }} + > + + {String(item.code_session).length > 30 && } + {String(item.code_session).length <= 30 && } + + {String(item.date_debut) && } + {String(item.date_fin) && } + {String(item.nb_participant) && } + + + {item.taux_remplissage && parseFloat(item.taux_remplissage) < 0.3 && } + {item.taux_remplissage && parseFloat(item.taux_remplissage) >= 0.3 && parseFloat(item.taux_remplissage) <= 0.6 && } + {item.taux_remplissage && parseFloat(item.taux_remplissage) > 0.6 && } + + + +
+ +
+ ))} +
-
- {tasks - .filter(item => item.session_etape === channel.label) - .map(item => ( - +
} -
+
+
{channel.label} +   ({tasks.filter(item => item.session_etape === channel.label).length}) +
+
+ {tasks + .filter(item => item.session_etape === channel.label) + .map(item => ( + - }} id={item._id} - onDoubleClick={(event) => { - setgridline_id(item.id); +
{ + setgridline_id(item.id); - setaddOneSession("0"); - setEdite_session("0"); - setsessionChanged(false); - //handleClick_edit_session_From_Line(newSelectionModel.row.id); + setsequence_gridline_id(""); - setselected_session_id(item._id); + setaddOneSession("0"); + setEdite_session("0"); + setsessionChanged(false); + //handleClick_edit_session_From_Line(newSelectionModel.row.id); - setsession_selected_row_id(item.id); - setsession_selected_class_id(item.class_id); + setselected_session_id(item._id); - setselected_session_invoiced_statut(item.invoiced_statut); + setsession_selected_row_id(item.id); + setsession_selected_class_id(item.class_id); - //console.log(" ### newSelectionModel.row.invoiced_statut = ", newSelectionModel.row.invoiced_statut); + setselected_session_invoiced_statut(item.invoiced_statut); - setDialog_2_message(String(JSON.parse(rowss[item.id]).title)); - setDialog_2_open(true); - }} - > + //console.log(" ### newSelectionModel.row.invoiced_statut = ", newSelectionModel.row.invoiced_statut); - {String(item.code_session).length > 30 && } - {String(item.code_session).length <= 30 && } + setDialog_2_message(String(JSON.parse(rowss[item.id]).title)); + setDialog_2_open(true); + }} + > - {String(item.date_debut) && } - {String(item.date_fin) && } - {String(item.nb_participant) && } + {String(item.code_session).length > 30 && } + {String(item.code_session).length <= 30 && } + + {String(item.date_debut) && } + {String(item.date_fin) && } + {String(item.nb_participant) && } - {item.taux_remplissage && parseFloat(item.taux_remplissage) < 0.3 && } - {item.taux_remplissage && parseFloat(item.taux_remplissage) >= 0.3 && parseFloat(item.taux_remplissage) <= 0.6 && } - {item.taux_remplissage && parseFloat(item.taux_remplissage) > 0.6 && } + {item.taux_remplissage && parseFloat(item.taux_remplissage) < 0.3 && } + {item.taux_remplissage && parseFloat(item.taux_remplissage) >= 0.3 && parseFloat(item.taux_remplissage) <= 0.6 && } + {item.taux_remplissage && parseFloat(item.taux_remplissage) > 0.6 && } -
+
- - ))} + + ))} +
-
+
} ))}
@@ -30296,4 +30517,132 @@ width: 100%; .texte_area_filter_value{ text-align: left !important; } + + + .kanban_item_css{ + position: relative; + background: rgba(255, 255, 255, 0.96); + border: 1px solid #edf2f8; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + padding: 16px; + overflow: hidden; + cursor: move !important; + overflow: hidden; + cursor: move !important; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + } + + + .kanban_item_css-0{ + padding: 5px; + margin-bottom: 10px; + font-size: 0.8em; + cursor: move; + background: #f4f6f6; + border: 0px solid; + border-left-width: 0px; + width: 94%; + margin-left: 3%; + min-height: 5rem; + border-left-width: 10px; + border-left-color : #f3f7ff; + overflow: hidden; + cursor: move !important; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + } + + .kanban_item_css-1{ + padding: 5px; + margin-bottom: 10px; + font-size: 0.8em; + cursor: move; + background: #f4f6f6; + border: 0px solid; + border-left-width: 0px; + width: 94%; + margin-left: 3%; + min-height: 5rem; + border-left-width: 10px; + border-left-color : #4d6a58; + overflow: hidden; + cursor: move !important; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + } + + .kanban_item_css--1{ + padding: 5px; + margin-bottom: 10px; + font-size: 0.8em; + cursor: move; + background: #f4f6f6; + border: 0px solid; + border-left-width: 0px; + width: 94%; + margin-left: 3%; + min-height: 5rem; + border-left-width: 10px; + border-left-color : #F5C527; + overflow: hidden; + cursor: move !important; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + } + + .kanban_item_css-2{ + padding: 5px; + margin-bottom: 10px; + font-size: 0.8em; + cursor: move; + background: #f4f6f6; + border: 0px solid; + border-left-width: 0px; + width: 94%; + margin-left: 3%; + min-height: 5rem; + border-left-width: 10px; + border-left-color : #bfd7f5; + overflow: hidden; + cursor: move !important; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + } + + .btn { + height: 42px; + border-radius: 12px; + padding: 0 18px; + border: 1px solid var(--border); + display: inline-flex; + align-items: center; + gap: 9px; + font-weight: 700; + cursor: pointer; + background: #fff; + color: var(--text); + transition: 0.18s ease; +} + +.btn:hover { + transform: translateY(-1px); + box-shadow: 0 10px 24px rgba(16, 66, 119, 0.1); +} + +.btn-primary { + background: #0b55c4; + color: #fff; + border-color: #0b55c4; +} + +.btn-light { + background: rgba(255, 255, 255, 0.86); +} + +.kanban_header_css{ +margin-bottom: 10px; + border: none; +} `; diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js index f0daed2..514a0d4 100644 --- a/src/components/DisplayPartnerSession.js +++ b/src/components/DisplayPartnerSession.js @@ -206,6 +206,7 @@ const DisplayPartnerSession = (props) => { const classes = useStyles(); + const history = useHistory(); const [submenu, setsubmenu] = useState(""); const [rowss, setRows] = useState([]); @@ -3439,18 +3440,18 @@ const DisplayPartnerSession = (props) => { setSession_step_chanel(local_opport_chanel); if (String(props.reduce) === "0") { - var tmp = 80 / new_data2.length; + var tmp = 70 / new_data2.length; var tmp_val = tmp + "vw"; setkanban_colonne_width(tmp_val); } else { - var tmp = 95 / new_data2.length; + var tmp = 85 / new_data2.length; var tmp_val = tmp + "vw"; setkanban_colonne_width(tmp_val); } - // console.log(" 222 local_opport_chanel = ", local_opport_chanel); + // console.log(" 222 local_opport_chanel = ", local_opport_chanel); } else { setNew_Getall_Parter_Session_Steps_result([]); @@ -3579,18 +3580,18 @@ const DisplayPartnerSession = (props) => { setSession_step_chanel(local_opport_chanel); if (String(props.reduce) === "0") { - var tmp = 80 / new_data2.length; + var tmp = 70 / new_data2.length; var tmp_val = tmp + "vw"; setkanban_colonne_width(tmp_val); } else { - var tmp = 95 / new_data2.length; + var tmp = 85 / new_data2.length; var tmp_val = tmp + "vw"; setkanban_colonne_width(tmp_val); } - console.log(" ### local_opport_chanel = ", local_opport_chanel); + // console.log(" ### local_opport_chanel = ", local_opport_chanel); } else { @@ -15039,7 +15040,7 @@ const DisplayPartnerSession = (props) => { } // MySy Comment : design d'une tache (couleur, taille, etc) - const classes_session_step = { + const classes_session_step_ORIG = { board: { display: "flex", margin: "0 auto", @@ -15077,6 +15078,161 @@ const DisplayPartnerSession = (props) => { } }; + const classes_session_step = { + board: { + display: "flex", + margin: "0 auto", + width: "100%", + fontFamily: 'Arial, "Helvetica Neue", sans-serif' + }, + column: { + // minWidth: 200, + //width: "16vw", + width: kanban_colonne_width, + textAlign: "center", + height: "80vh", + margin: "0 auto", + backgroundColor: "#FFFFFF", + border: 'solid 1px', + borderLeft: "1px solid #ecf1fc", + borderRight: "1px solid #ecf1fc", + borderRadius: "24px", + backgroundColor: "rgba(255, 255, 255, 0.68)", + border: "1px solid rgba(221, 229, 239, 0.8)", + boxShadow: "var(--shadow-lg)", + overflow: "hidden", + backdropFilter: "blur(10px)", + fontFamily: "'DM Sans', Arial, Helvetica, sans-serif", + marginLeft: "30px", + + }, + + columnHead: { + textAlign: "center", + padding: 5, + fontSize: "14px", + backgroundColor: randomColor(), + border: "1px solid", + marginBottom: "5px", + }, + item: { + padding: 5, + marginBottom: 10, + fontSize: "0.8em", + cursor: "pointer", + backgroundColor: "#f4f6f6", + border: "0px solid", + cursor: "move", + width: "94%", + marginLeft: "3%", + }, + + column_first_left: { + // minWidth: 200, + //width: "16vw", + width: kanban_colonne_width, + textAlign: "center", + height: "80vh", + margin: "0 auto", + backgroundColor: "#FFFFFF", + border: 'solid 1px', + borderTop: 'none', + borderRadius: "24px", + backgroundColor: "rgba(255, 255, 255, 0.68)", + border: "1px solid rgba(221, 229, 239, 0.8)", + boxShadow: "var(--shadow-lg)", + overflow: "hidden", + backdropFilter: "blur(10px)", + fontFamily: "'DM Sans', Arial, Helvetica, sans-serif", + marginLeft: "30px", + + // borderRight: "1px solid #ecf1fc", + + }, + + column_right_solid_border: { + // minWidth: 200, + //width: "16vw", + width: kanban_colonne_width, + textAlign: "center", + height: "80vh", + margin: "0 auto", + backgroundColor: "#FFFFFF", + + borderRadius: "24px", + backgroundColor: "rgba(255, 255, 255, 0.68)", + border: "1px solid rgba(221, 229, 239, 0.8)", + boxShadow: "var(--shadow-lg)", + overflow: "hidden", + backdropFilter: "blur(10px)", + fontFamily: "'DM Sans', Arial, Helvetica, sans-serif", + marginLeft: "30px", + + + }, + + columnHead_Encours: { + textAlign: "center", + padding: 5, + border: "none", + marginBottom: "5px", + background: "linear-gradient(180deg, #eef4ff 0%, #f7faff 100%)", + fontSize: "17px", + color: "#0f2552", + fontWeight: 600, + padding: "18px 18px 16px", + }, + + columnHead_Fait: { + textAlign: "center", + padding: 5, + border: "none", + marginBottom: "5px", + background: "linear-gradient(180deg, #edfdf4 0%, #f8fffb 100%)", + fontSize: "17px", + color: "#0f2552", + fontWeight: 600, + padding: "18px 18px 16px", + }, + + + columnHead_Annule: { + textAlign: "center", + padding: 5, + border: "none", + marginBottom: "5px", + background: "linear-gradient(180deg, #fff5e9 0%, #fffaf3 100%)", + fontSize: "17px", + color: "#0f2552", + fontWeight: 600, + padding: "18px 18px 16px", + }, + + columnHead_Archivé: { + textAlign: "center", + padding: 5, + border: "none", + marginBottom: "5px", + background: "linear-gradient(180deg, #f2f6fb 0%, #f9fbfd 100%)", + fontSize: "17px", + color: "#0f2552", + fontWeight: 600, + padding: "18px 18px 16px", + }, + + item: { + padding: 5, + marginBottom: 10, + fontSize: "0.8em", + cursor: "pointer", + backgroundColor: "#f4f6f6", + border: "0px solid", + cursor: "move", + width: "94%", + marginLeft: "3%", + } + }; + const KanbanColumn = ({ status, changeTaskStatus, children }) => { const ref = useRef(null); @@ -15106,7 +15262,7 @@ const DisplayPartnerSession = (props) => { const opacity = isDragging ? 0 : 1; drag(ref); return ( -
+
{children}
); @@ -22145,10 +22301,11 @@ const DisplayPartnerSession = (props) => { }} > +
- {Session_step_chanel.map(channel => ( + {Session_step_chanel.map((channel, index) => ( { status={channel.label} changeTaskStatus={changeTaskStatus} > -
-
{channel.label} -   ({tasks.filter(item => item.session_etape === channel.label).length}) + {String(index) === "0" &&
+
+
{channel.label} +   ({tasks.filter(item => item.session_etape === channel.label).length}) +
+
+ {tasks + .filter(item => item.session_etape === channel.label) + .map(item => ( + + +
{ + setgridline_id(item.id); + + setsequence_gridline_id(""); + + setaddOneSession("0"); + setEdite_session("0"); + setsessionChanged(false); + //handleClick_edit_session_From_Line(newSelectionModel.row.id); + + setselected_session_id(item._id); + + setsession_selected_row_id(item.id); + setsession_selected_class_id(item.class_id); + + setselected_session_invoiced_statut(item.invoiced_statut); + + //console.log(" ### newSelectionModel.row.invoiced_statut = ", newSelectionModel.row.invoiced_statut); + + setDialog_2_message(String(JSON.parse(rowss[item.id]).title)); + setDialog_2_open(true); + }} + > + {String(item.is_session_alert) === "1" && } + {String(item.code_session).length > 30 && } + {String(item.code_session).length <= 30 && } + + {String(item.date_debut) && } + {String(item.date_fin) && } + {String(item.nb_participant) && } + + + {item.taux_remplissage && parseFloat(item.taux_remplissage) < 0.3 && } + {item.taux_remplissage && parseFloat(item.taux_remplissage) >= 0.3 && parseFloat(item.taux_remplissage) <= 0.6 && } + {item.taux_remplissage && parseFloat(item.taux_remplissage) > 0.6 && } + + + +
+ +
+ ))} +
-
- {tasks - .filter(item => item.session_etape === channel.label) - .map(item => ( - - -
{ - setgridline_id(item.id); - - setsequence_gridline_id(""); - - setaddOneSession("0"); - setEdite_session("0"); - setsessionChanged(false); - //handleClick_edit_session_From_Line(newSelectionModel.row.id); - - setselected_session_id(item._id); - - setsession_selected_row_id(item.id); - setsession_selected_class_id(item.class_id); - - setselected_session_invoiced_statut(item.invoiced_statut); - - //console.log(" ### newSelectionModel.row.invoiced_statut = ", newSelectionModel.row.invoiced_statut); - - setDialog_2_message(String(JSON.parse(rowss[item.id]).title)); - setDialog_2_open(true); - }} - > - {String(item.is_session_alert) === "1" && } - {String(item.code_session).length > 30 && } - {String(item.code_session).length <= 30 && } - - {String(item.date_debut) && } - {String(item.date_fin) && } - {String(item.nb_participant) && } - {item.taux_remplissage && parseFloat(item.taux_remplissage) < 0.3 && } - {item.taux_remplissage && parseFloat(item.taux_remplissage) >= 0.3 && parseFloat(item.taux_remplissage) <= 0.6 && } - {item.taux_remplissage && parseFloat(item.taux_remplissage) > 0.6 && } +
} + + {String(index) !== "0" &&
+
+
{channel.label} +   ({tasks.filter(item => item.session_etape === channel.label).length}) +
+
+ {tasks + .filter(item => item.session_etape === channel.label) + .map(item => ( + + +
{ + setgridline_id(item.id); + + setsequence_gridline_id(""); + + setaddOneSession("0"); + setEdite_session("0"); + setsessionChanged(false); + //handleClick_edit_session_From_Line(newSelectionModel.row.id); + + setselected_session_id(item._id); + + setsession_selected_row_id(item.id); + setsession_selected_class_id(item.class_id); + + setselected_session_invoiced_statut(item.invoiced_statut); + + //console.log(" ### newSelectionModel.row.invoiced_statut = ", newSelectionModel.row.invoiced_statut); + + setDialog_2_message(String(JSON.parse(rowss[item.id]).title)); + setDialog_2_open(true); + }} + > + {String(item.is_session_alert) === "1" && } + {String(item.code_session).length > 30 && } + {String(item.code_session).length <= 30 && } + + {String(item.date_debut) && } + {String(item.date_fin) && } + {String(item.nb_participant) && } + + + {item.taux_remplissage && parseFloat(item.taux_remplissage) < 0.3 && } + {item.taux_remplissage && parseFloat(item.taux_remplissage) >= 0.3 && parseFloat(item.taux_remplissage) <= 0.6 && } + {item.taux_remplissage && parseFloat(item.taux_remplissage) > 0.6 && } -
+
- - ))} + + ))} +
-
+ + +
} + + ))}
@@ -23055,6 +23287,7 @@ const DisplayPartnerSession = (props) => { } {(!data_row_grouped_by || String(data_row_grouped_by) === "") && session_display_view && String(session_display_view) === "kanban" && + { }} > +
@@ -30066,7 +30300,7 @@ const DisplayPartnerSession = (props) => { id="combo-box-demo" className="block_en_mass_select" fullWidth - sx={{ + sx={{ backgroundColor: "#FFF", }} options={New_Option_Emargement_Masse} @@ -30569,7 +30803,7 @@ const DisplayPartnerSession = (props) => { id="combo-box-demo" className="block_en_mass_select" fullWidth - sx={{ + sx={{ backgroundColor: "#FFF", }} options={New_Option_Evaluation_Masse} @@ -30975,4 +31209,133 @@ width: 100%; border: unset; border-radius: 10px; } + + + .kanban_item_css{ + position: relative; + background: rgba(255, 255, 255, 0.96); + border: 1px solid #edf2f8; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + padding: 16px; + overflow: hidden; + cursor: move !important; + overflow: hidden; + cursor: move !important; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + } + + + .kanban_item_css-0{ + padding: 5px; + margin-bottom: 10px; + font-size: 0.8em; + cursor: move; + background: #f4f6f6; + border: 0px solid; + border-left-width: 0px; + width: 94%; + margin-left: 3%; + min-height: 5rem; + border-left-width: 10px; + border-left-color : #f3f7ff; + overflow: hidden; + cursor: move !important; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + } + + .kanban_item_css-1{ + padding: 5px; + margin-bottom: 10px; + font-size: 0.8em; + cursor: move; + background: #f4f6f6; + border: 0px solid; + border-left-width: 0px; + width: 94%; + margin-left: 3%; + min-height: 5rem; + border-left-width: 10px; + border-left-color : #4d6a58; + overflow: hidden; + cursor: move !important; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + } + + .kanban_item_css--1{ + padding: 5px; + margin-bottom: 10px; + font-size: 0.8em; + cursor: move; + background: #f4f6f6; + border: 0px solid; + border-left-width: 0px; + width: 94%; + margin-left: 3%; + min-height: 5rem; + border-left-width: 10px; + border-left-color : #F5C527; + overflow: hidden; + cursor: move !important; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + } + + .kanban_item_css-2{ + padding: 5px; + margin-bottom: 10px; + font-size: 0.8em; + cursor: move; + background: #f4f6f6; + border: 0px solid; + border-left-width: 0px; + width: 94%; + margin-left: 3%; + min-height: 5rem; + border-left-width: 10px; + border-left-color : #bfd7f5; + overflow: hidden; + cursor: move !important; + border-radius: 18px; + box-shadow: 0 4px 14px rgba(17, 39, 76, 0.06); + } + + .btn { + height: 42px; + border-radius: 12px; + padding: 0 18px; + border: 1px solid var(--border); + display: inline-flex; + align-items: center; + gap: 9px; + font-weight: 700; + cursor: pointer; + background: #fff; + color: var(--text); + transition: 0.18s ease; +} + +.btn:hover { + transform: translateY(-1px); + box-shadow: 0 10px 24px rgba(16, 66, 119, 0.1); +} + +.btn-primary { + background: #0b55c4; + color: #fff; + border-color: #0b55c4; +} + +.btn-light { + background: rgba(255, 255, 255, 0.86); +} + +.kanban_header_css{ +margin-bottom: 10px; + border: none; +} + `; diff --git a/src/components/DisplayPartnerStagiaires.js b/src/components/DisplayPartnerStagiaires.js index d365d6a..567604f 100644 --- a/src/components/DisplayPartnerStagiaires.js +++ b/src/components/DisplayPartnerStagiaires.js @@ -8536,7 +8536,7 @@ const DisplayPartnerStagiaires = (props) => { { "id": "1", "label": "Supprimer", "value": "supprimer" }, { "id": "2", "label": "Exporter", "value": "exporter" }, { "id": "3", "label": "Desactiver Recyclage", "value": "recyclage_disable" }, - { "id": "4", "label": "Contacter par Email", "value": "sendemail" }, + { "id": "4", "label": "Envoyer par Email", "value": "sendemail" }, { "id": "5", "label": "Partager Document", "value": "pushdocument" }, { "id": "6", "label": "Archiver/Désarch.", "value": "archive_desarchive" }, ] @@ -9592,6 +9592,75 @@ const DisplayPartnerStagiaires = (props) => { } + + const [Add_RH_Tuto_api, setAdd_RH_Tuto_api] = useState(); + const [Add_RH_Tuto_message, setAdd_RH_Tuto_message] = useState(); + const [Add_RH_Tuto_result, setAdd_RH_Tuto_result] = useState(); + function Add_RH_Tuto(event) { + + var form = new FormData(); + + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + + + var myurl = ""; + + myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_RH_List_Insc_Tutore/"; + + + form.append("rh_id", p_one_detail_tuteur_id); + + + form.append("inscription_id", selected_id); + form.append("role", p_detail_tuteur_role); + form.append("include_com", p_detail_tuteur_communication); + form.append("comment", p_detail_tuteur_comment); + + + setLoading(true); + axios.post(myurl, form).then(res => { + setLoading(false); + + if (String(res.data.status) === String("true")) { + //console.log(" In Add_RH_Tuto res.data.status = " + res.data.status); + //console.log(" In Add_RH_Tuto res.data.message r_class = " + res.data.message); + setAdd_RH_Tuto_api("true"); + setAdd_RH_Tuto_result(res.data.message); + Getall_Tuteurs(selected_id); + + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("success"); + Dialog_tuteur_handleClose_buton(); + } + else { + setAdd_RH_Tuto_api("false"); + setAdd_RH_Tuto_message(res.data.message); + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("error"); + } + + }).catch((error) => { + + setLoading(false); + console.warn('Not good man :( Add_RH_Tuto = ', error); + setAdd_RH_Tuto_api("false"); + // alert(" Impossible de faire la mise à jour"); + + setdisplay_alert_mysy("1"); + setalert_message(" Impossible de faire la mise à jour"); + setalert_type("error"); + //setmyApimyApiMessage("") + }) + } + + + const [Update_RH_Tuto_api, setUpdate_RH_Tuto_api] = useState(); const [Update_RH_Tuto_message, setUpdate_RH_Tuto_message] = useState(); const [Update_RH_Tuto_result, setUpdate_RH_Tuto_result] = useState(); @@ -9607,7 +9676,10 @@ const DisplayPartnerStagiaires = (props) => { var myurl = ""; myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_RH_List_Insc_Tutore/"; + form.append("rh_id", p_detail_tuteur_id); + + form.append("inscription_id", selected_id); form.append("role", p_detail_tuteur_role); form.append("include_com", p_detail_tuteur_communication); @@ -10069,6 +10141,8 @@ const DisplayPartnerStagiaires = (props) => { position: 'absolute', top: "20rem", margin: "2px", + maxWidth: 'unset', + width: '55rem' }, }} hideBackdrop={true} @@ -10082,7 +10156,7 @@ const DisplayPartnerStagiaires = (props) => { > Filtre - +
@@ -10351,7 +10425,7 @@ const DisplayPartnerStagiaires = (props) => {
- {String(p_filtre2).length > 2 && String(p_filtre2) !== "archive" && String(p_filtre2) !== "invoiced" && String(p_filtre1) !== "session_id" && + {String(p_filtre2).length > 2 && String(p_filtre2) !== "archive" && String(p_filtre2) !== "invoiced" && String(p_filtre2) !== "session_id" && { Create_RH_And_Add_Tuto() }} - >Créer ici} + >Créer } {String(create_new_tuteur) !== "1" && String(add_one_tuteur) === "1" && }
@@ -13186,242 +13260,242 @@ const DisplayPartnerStagiaires = (props) => {
- {(!display_stagiaire_with_alert || display_stagiaire_with_alert !== true) && -
-   - +   + - { - setSelectionModel(newSelectionModel); - /*if (newSelectionModel.length === 1) - handleClick_edit_session_From_Line(newSelectionModel);*/ - if (newSelectionModel.length !== 1) { - setaddOneParticipant(); - setdisplay_detail_stagiaire(); - setselected_code_session(); - setsubmenu(); - } - }} - selectionModel={selectionModel} - - localeText={frFR.components.MuiDataGrid.defaultProps.localeText} - rows={rowss.map((item, index) => ( - { - id: index, - _id: JSON.parse(item)._id, - class_id: JSON.parse(item).class_id, - class_internal_url: JSON.parse(item).class_internal_url, - code_session: JSON.parse(item).code_session, - session_id: JSON.parse(item).session_id, - email: JSON.parse(item).email, - nom: JSON.parse(item).nom, - prenom: JSON.parse(item).prenom, - employeur: JSON.parse(item).employeur, - client_nom: JSON.parse(item).client_rattachement_nom, - - client_facture: JSON.parse(item).facture_client_rattachement_id, - - status: JSON.parse(item).status, - title: JSON.parse(item).title, - distantiel: JSON.parse(item).distantiel, - presentiel: JSON.parse(item).presentiel, - - date_debut: JSON.parse(item).date_du, - date_fin: JSON.parse(item).date_au, - class_internal_url: JSON.parse(item).class_internal_url, - civilite: JSON.parse(item).civilite, - - telephone: JSON.parse(item).telephone, - date_naissance: JSON.parse(item).date_naissance, - - invoiced: JSON.parse(item).invoiced, - invoiced_ref: JSON.parse(item).invoiced_ref, - invoiced_date: JSON.parse(item).invoiced_date, - - class_recyclage_delai: JSON.parse(item).class_recyclage_delai, - class_recyclage_periodicite: JSON.parse(item).class_recyclage_periodicite, - nb_jour_avant_recyclage: JSON.parse(item).nb_jour_avant_recyclage, - warning_recyclage: JSON.parse(item).warning_recyclage, - warning_recyclage_alert: JSON.parse(item).warning_recyclage, - - archive: JSON.parse(item).archive, - is_ftion_initiale: JSON.parse(item).is_ftion_initiale, - } - ))} - - columns={columns} - pageSize={20} - className="datagridclass" - - onRowDoubleClick={(newSelectionModel) => { - ///setuserimgclassprofil(""); - - setselected_id(newSelectionModel.row._id); - - Get_List_UE_From_Class_Id(newSelectionModel.row.class_id); - - Getall_Class_List_Evalution(newSelectionModel.row.class_id); - - setselected_internal_url(newSelectionModel.row.class_internal_url); - setselected_class_id(newSelectionModel.row.class_id); - setselected_session_id(newSelectionModel.row.session_id); - - setselected_class_is_ftion_initiale(newSelectionModel.row.is_ftion_initiale); - - setinscription_invoiced(newSelectionModel.row.invoiced); - - setselected_row_data_json_age(''); - setgridline_id(newSelectionModel.row.id); - setselected_id_status(newSelectionModel.row.status); - - //getStagiaireImages(newSelectionModel.row.class_internal_url, newSelectionModel.row.session_id, newSelectionModel.row.email); - - var al = JSON.parse(rowss[newSelectionModel.row.id]) - if (al.date_naissance) { - var date_eval = new Date(moment(al.date_naissance, "DD/MM/YYYY")); - var diff = Date.now() - date_eval.getTime(); - var age = new Date(diff); - var reel_age = Math.abs(age.getUTCFullYear() - 1970); - setselected_row_data_json_age(reel_age); - setp_detail_age(reel_age); - - } - - Get_Inscrit_List_UE(newSelectionModel.row._id); - Get_Inscrit_List_Evaluation_Par_UE(newSelectionModel.row._id); - setselected_row_data_json(JSON.parse(rowss[newSelectionModel.row.id])); - setDialog_stagiaire_open(true); + '& .line--statut--pair': { + backgroundColor: 'rgba(235, 235, 235, .7)', + color: '#0a2a4d', + }, + '& .line--statut--impair': { + backgroundColor: '#FFFFFF', + color: '#0a2a4d', + }, + '& .line--statut--selected': { + backgroundColor: '#e9f7f1', + color: '#0a2a4d', + }, }} + > + { - //field === 'distantiel' - if (params.field === 'distantiel' && String(params.value) === "1") { - return 'cell--distantiel'; - } - if (params.field === "presentiel" && String(params.value) == "1") { - return 'cell--presentiel'; - } + onSelectionModelChange={(newSelectionModel) => { + setSelectionModel(newSelectionModel); + /*if (newSelectionModel.length === 1) + handleClick_edit_session_From_Line(newSelectionModel);*/ + if (newSelectionModel.length !== 1) { + setaddOneParticipant(); + setdisplay_detail_stagiaire(); + setselected_code_session(); + setsubmenu(); + } + }} + selectionModel={selectionModel} + + localeText={frFR.components.MuiDataGrid.defaultProps.localeText} + rows={rowss.map((item, index) => ( + { + id: index, + _id: JSON.parse(item)._id, + class_id: JSON.parse(item).class_id, + class_internal_url: JSON.parse(item).class_internal_url, + code_session: JSON.parse(item).code_session, + session_id: JSON.parse(item).session_id, + email: JSON.parse(item).email, + nom: JSON.parse(item).nom, + prenom: JSON.parse(item).prenom, + employeur: JSON.parse(item).employeur, + client_nom: JSON.parse(item).client_rattachement_nom, + + client_facture: JSON.parse(item).facture_client_rattachement_id, + + status: JSON.parse(item).status, + title: JSON.parse(item).title, + distantiel: JSON.parse(item).distantiel, + presentiel: JSON.parse(item).presentiel, + + date_debut: JSON.parse(item).date_du, + date_fin: JSON.parse(item).date_au, + class_internal_url: JSON.parse(item).class_internal_url, + civilite: JSON.parse(item).civilite, + + telephone: JSON.parse(item).telephone, + date_naissance: JSON.parse(item).date_naissance, + + invoiced: JSON.parse(item).invoiced, + invoiced_ref: JSON.parse(item).invoiced_ref, + invoiced_date: JSON.parse(item).invoiced_date, + + class_recyclage_delai: JSON.parse(item).class_recyclage_delai, + class_recyclage_periodicite: JSON.parse(item).class_recyclage_periodicite, + nb_jour_avant_recyclage: JSON.parse(item).nb_jour_avant_recyclage, + warning_recyclage: JSON.parse(item).warning_recyclage, + warning_recyclage_alert: JSON.parse(item).warning_recyclage, + + archive: JSON.parse(item).archive, + is_ftion_initiale: JSON.parse(item).is_ftion_initiale, + } + ))} + + columns={columns} + pageSize={20} + className="datagridclass" + + onRowDoubleClick={(newSelectionModel) => { + ///setuserimgclassprofil(""); + + setselected_id(newSelectionModel.row._id); + + Get_List_UE_From_Class_Id(newSelectionModel.row.class_id); + + Getall_Class_List_Evalution(newSelectionModel.row.class_id); + + setselected_internal_url(newSelectionModel.row.class_internal_url); + setselected_class_id(newSelectionModel.row.class_id); + setselected_session_id(newSelectionModel.row.session_id); + + setselected_class_is_ftion_initiale(newSelectionModel.row.is_ftion_initiale); + + setinscription_invoiced(newSelectionModel.row.invoiced); + + setselected_row_data_json_age(''); + setgridline_id(newSelectionModel.row.id); + setselected_id_status(newSelectionModel.row.status); + + //getStagiaireImages(newSelectionModel.row.class_internal_url, newSelectionModel.row.session_id, newSelectionModel.row.email); + + var al = JSON.parse(rowss[newSelectionModel.row.id]) + if (al.date_naissance) { + var date_eval = new Date(moment(al.date_naissance, "DD/MM/YYYY")); + var diff = Date.now() - date_eval.getTime(); + var age = new Date(diff); + var reel_age = Math.abs(age.getUTCFullYear() - 1970); + setselected_row_data_json_age(reel_age); + setp_detail_age(reel_age); + + } + + Get_Inscrit_List_UE(newSelectionModel.row._id); + Get_Inscrit_List_Evaluation_Par_UE(newSelectionModel.row._id); + setselected_row_data_json(JSON.parse(rowss[newSelectionModel.row.id])); + setDialog_stagiaire_open(true); + + }} + + rowsPerPageOptions={[20]} + disableSelectionOnClick + /* components={{ + Toolbar: GridToolbar, + }}*/ + //sx={datagridSx} + getCellClassName={(params) => { + //field === 'distantiel' + if (params.field === 'distantiel' && String(params.value) === "1") { + return 'cell--distantiel'; + } + if (params.field === "presentiel" && String(params.value) == "1") { + return 'cell--presentiel'; + } - //field === "statut" - if (params.field === "status" && String(params.value) == "0") { - return 'cell--statut--preinscrit'; - } + //field === "statut" + if (params.field === "status" && String(params.value) == "0") { + return 'cell--statut--preinscrit'; + } - if (params.field === "status" && String(params.value) == "1") { - return 'cell--statut--inscrit'; - } + if (params.field === "status" && String(params.value) == "1") { + return 'cell--statut--inscrit'; + } - if (params.field === "status" && String(params.value) == "-1") { - return 'cell--statut--annule'; - } + if (params.field === "status" && String(params.value) == "-1") { + return 'cell--statut--annule'; + } - }} - getRowClassName={(params) => { - // Pour la gestion de la couleur de zone double cliquée - if (String(params.row.id) === String(gridline_id)) { + }} + getRowClassName={(params) => { + // Pour la gestion de la couleur de zone double cliquée + if (String(params.row.id) === String(gridline_id)) { - return 'line--statut--selected'; - } - if (String(params.row.status) === "-1") { - return 'line--statut--annule'; - } - if (String(params.row.status) === "0") { - return 'line--statut--preinscrit'; - } - if (String(params.row.status) === "1") { - return 'line--statut--inscrit'; - } - else if (parseInt(String(params.row.id)) % 2 === 0) { - return 'line--statut--pair'; - } - else if (parseInt(String(params.row.id)) % 2 !== 0) { - return 'line--statut--impair'; - } + return 'line--statut--selected'; + } + if (String(params.row.status) === "-1") { + return 'line--statut--annule'; + } + if (String(params.row.status) === "0") { + return 'line--statut--preinscrit'; + } + if (String(params.row.status) === "1") { + return 'line--statut--inscrit'; + } + else if (parseInt(String(params.row.id)) % 2 === 0) { + return 'line--statut--pair'; + } + else if (parseInt(String(params.row.id)) % 2 !== 0) { + return 'line--statut--impair'; + } - }} - getEstimatedRowHeight={() => 200} - getRowHeight={() => "auto"} + }} + getEstimatedRowHeight={() => 200} + getRowHeight={() => "auto"} - /> - -
+ /> +
+
-
} +
} {(display_stagiaire_with_alert && display_stagiaire_with_alert === true) &&
  @@ -13652,153 +13726,205 @@ const DisplayPartnerStagiaires = (props) => {
- {String(props.check_user_acces_right("stagiaire", "write")) === "1" && selectionModel && selectionModel.length >= 1 &&
- -   - { - if (value && value.value) { - if (String(value.value) === "supprimer" - || String(value.value) === "convention" - || String(value.value) === "exporter" - || String(value.value) === "valide_inscr" - || String(value.value) === "recyclage_disable" - || String(value.value) === "sendemail" - || String(value.value) === "pushdocument" - || String(value.value) === "archive_desarchive") { - setactionmass_ftion_val(value.value); - } - else { - setactionmass_ftion_val(""); + {String(props.check_user_acces_right("stagiaire", "write")) === "1" && selectionModel && selectionModel.length >= 1 && +
+ +   + { + + + if (value && value.value) { + if (String(value.value) === "supprimer" + || String(value.value) === "convention" + || String(value.value) === "exporter" + || String(value.value) === "valide_inscr" + || String(value.value) === "recyclage_disable" + + || String(value.value) === "archive_desarchive") { + setactionmass_ftion_val(value.value); + } + else if (String(value.value) === "sendemail") { + + var liste_session = ""; + var liste_emails = ""; + + if (display_stagiaire_with_alert && display_stagiaire_with_alert === true) { + liste_session = GetSelectedRowsSession_filtered_on_alert(); + liste_emails = GetSelectedRows_Emails_filtered_on_alert(); + } + else { + liste_session = GetSelectedRowsSession(); + liste_emails = GetSelectedRows_Emails(); + } + + setliste_selected_inscription_id(liste_session); + setselectedtraining_emails(liste_session); + // console.log(" ### liste_emails = ", liste_emails); + + setDialog_SEND_EMAIL_open(true); + } + else if (String(value.value) === "pushdocument") { + + settab_selected_list_ue([]); + setNew_Get_List_UE_From_Session_Id_result([]); + setGet_List_UE_From_Session_Id_result([]) + // actionmass_ftion_Traitemet(); + + var myid = parseInt(String(selectionModel[0])); + var first_line_selected = JSON.parse(rowss[myid]); + + Get_List_UE_From_Session_Id(first_line_selected.session_id); + 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(""); + } + + else { + setactionmass_ftion_val(""); + } + } - } - - }} - - renderInput={(params) => + } /> - } - /> - {String(props.check_user_acces_right("stagiaire", "write")) === "1" && selectionModel && selectionModel.length >= 1 && actionmass_ftion_val && String(actionmass_ftion_val).length > 2 && - String(actionmass_ftion_val) !== "sendemail" - && String(actionmass_ftion_val) !== "pushdocument" && + } - {actionmass_ftion_val && (String(actionmass_ftion_val) === "sendemail" || String(actionmass_ftion_val) === "pushdocument") && */} -
} +
}
diff --git a/src/components/DisplayPartnerTrainingsPagination.js b/src/components/DisplayPartnerTrainingsPagination.js index 158a81b..dd640ed 100644 --- a/src/components/DisplayPartnerTrainingsPagination.js +++ b/src/components/DisplayPartnerTrainingsPagination.js @@ -700,7 +700,7 @@ const DistplayPartnerTraningsPage = (props) => { { field: 'internal_url', headerName: 'internal_url', hide: true, editable: false, }, { field: 'external_code', headerName: 'Code Formation', minWidth: 150, flex: 1, maxWidth: 250, editable: false, renderCell: (params) => , }, { field: 'title', headerName: 'Titre', minWidth: 250, flex: 1, editable: false, renderCell: (params) => , }, - { field: 'referentiel_padagogique', headerName: 'Réferentiel Ped.', minWidth: 150, flex: 1, hideable: true, hide: false, editable: false, renderCell: (params) => , }, + { field: 'referentiel_padagogique', headerName: 'Réferentiel Ped.', minWidth: 0, hideable: true, hide: true, editable: false, renderCell: (params) => , }, { field: 'domain', headerName: 'Domaine', minWidth: 100, flex: 1, maxWidth: 200, hideable: true, editable: false, renderCell: (params) => , }, @@ -784,7 +784,7 @@ const DistplayPartnerTraningsPage = (props) => { { - field: 'is_ftion_initiale', headerName: 'Ftion. Init.', hide: false, Width: 50, editable: false, renderCell: (cellValues) => { + field: 'is_ftion_initiale', headerName: 'Ftion. Init.', hide: true, Width: 0, editable: false, renderCell: (cellValues) => { return (
{String(cellValues.row.is_ftion_initiale) === "1" && "Oui"}  @@ -1633,7 +1633,7 @@ const DistplayPartnerTraningsPage = (props) => { .then((response) => response.json()) .then((result) => { //console.log('Success:', result['message'], "result['status'] = ", result['status']); - setactionmass_ftion_val(""); + setactionmass_ftion_val(""); if (String(result['status']) === String("true")) { //alert(" OK pour la formation :" + tab_class[i]); } @@ -1670,7 +1670,7 @@ const DistplayPartnerTraningsPage = (props) => { .then((response) => response.json()) .then((result) => { //console.log('Success:', result['message'], "result['status'] = ", result['status']); - setactionmass_ftion_val(""); + setactionmass_ftion_val(""); if (String(result['status']) === String("true")) { //alert(" OK pour la formation :" + tab_class[i]); } @@ -3111,19 +3111,19 @@ const DistplayPartnerTraningsPage = (props) => { }} renderInput={(params) => @@ -3182,19 +3182,19 @@ const DistplayPartnerTraningsPage = (props) => { } }} renderInput={(params) => } @@ -3248,19 +3248,19 @@ const DistplayPartnerTraningsPage = (props) => { }} renderInput={(params) => @@ -3315,19 +3315,19 @@ const DistplayPartnerTraningsPage = (props) => { } }} renderInput={(params) => } @@ -3382,19 +3382,19 @@ const DistplayPartnerTraningsPage = (props) => { }} renderInput={(params) => @@ -3450,19 +3450,19 @@ const DistplayPartnerTraningsPage = (props) => { } }} renderInput={(params) => } diff --git a/src/components/DisplayPartnerTrainingsPagination_FI.js b/src/components/DisplayPartnerTrainingsPagination_FI.js new file mode 100644 index 0000000..28b0455 --- /dev/null +++ b/src/components/DisplayPartnerTrainingsPagination_FI.js @@ -0,0 +1,4136 @@ +import React, { useState, useEffect } from 'react'; +import TrainingForm from "./AddClassManual" +import TextField from '@mui/material/TextField'; +import Button from '@mui/material/Button'; +import Autocomplete from '@mui/material/Autocomplete'; +import { getCookie } from 'react-use-cookie'; +import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid'; +import Popup from 'reactjs-popup'; +import fileDownload from 'js-file-download'; +import 'reactjs-popup/dist/index.css'; +import { AiFillCloseCircle, } from "react-icons/ai"; +import parse from 'html-react-parser' +import { BsEye } from "react-icons/bs"; +import { useHistory } from "react-router-dom"; +import axios from "axios"; +import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif"; +import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md"; +import MenuItem from '@mui/material/MenuItem'; +import InputAdornment from '@mui/material/InputAdornment'; +import Box from '@mui/material/Box'; +import 'react-tooltip/dist/react-tooltip.css' +import { Tooltip } from 'react-tooltip' +import { FcAcceptDatabase, } from "react-icons/fc"; +import Dialog from '@mui/material/Dialog'; +import DialogActions from '@mui/material/DialogActions'; +import DialogContent from '@mui/material/DialogContent'; +import DialogTitle from '@mui/material/DialogTitle'; +import ToggleSwitch from "./ToggleSwitch"; +import SendIcon from '@mui/icons-material/Send'; +import { GrDocumentCsv } from "react-icons/gr"; +import { DataGridPro } from '@mui/x-data-grid-pro'; +import { gridClasses } from '@mui/x-data-grid'; +import Link from '@mui/material/Link'; +import { PiDotsThree } from "react-icons/pi"; +import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5"; +import { + GridToolbarContainer, GridToolbarExport, GridToolbarColumnsButton, + GridToolbarFilterButton, GridToolbarDensitySelector, GridToolbarExportContainer, useGridApiContext, + gridFilteredSortedRowIdsSelector, + gridVisibleColumnFieldsSelector, + GridValueGetterParams, + GridPreferencePanelsValue, + +} from '@mui/x-data-grid'; +import * as XLSX from 'xlsx'; +import { useCookies } from "react-cookie"; +import { makeStyles } from "@material-ui/core/styles"; +import Paper from '@material-ui/core/Paper'; +import Draggable from 'react-draggable'; + +import CancelPresentationIcon from '@mui/icons-material/CancelPresentation'; +import { IconButton } from '@material-ui/core'; + +//import IconButton from '@mui/material/IconButton'; +import Menu from '@mui/material/Menu'; +//import MenuItem from '@mui/material/MenuItem'; +import MoreVertIcon from '@mui/icons-material/MoreVert'; + +import Module_Alert_Confirmation from "./Module_Alert_Confirmation"; +import { TbRuler2 } from 'react-icons/tb'; + +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 DistplayPartnerTraningsPage_FI = (props) => { + + const stored_cookie_catalog_data_row_grouped_by = getCookie('mysy_catalog_data_row_grouped_by'); + + + + const history = useHistory(); + const [myApiResponse, setmyApiResponse] = useState("false"); + const filters = [ + { value: 'external_code', label: 'Code Formation' }, + { value: 'title', label: 'Titre' }, + { value: 'certif', label: 'Certification' } + ] + const [selectedfilt1, setselectedfilt1] = useState(""); + const [selectedfilt2, setselectedfilt2] = useState(""); + const [selectedfilt3, setselectedfilt3] = useState(""); + const [reftrainingtoupdate, setreftrainingtoupdate] = useState(); + + const [classidtrainingtoupdate, setclassidtrainingtoupdate] = useState(); + + + const [externalcodetraining_toupdate, setexternalcodetraining_toupdate] = useState(); + const [updatetraining, setupdatetraining] = useState(false); + const [createtraining, setcreatetraining] = useState(false); + + + const changeHandler2 = (event) => { + + + setformation_file_name(); + Closecreatetraining(); + setapiexcelimportmessage(); + setformation_file_name(); + sethandleSubmission_api(); + hiddenFileInput_formation.current.click(); + }; + + const [formation_file_name, setformation_file_name] = useState(); + + const hiddenFileInput_formation = React.useRef(null); + + const [excelimportmessage, setexcelimportmessage] = useState(""); + const [apiexcelimportmessage, setapiexcelimportmessage] = useState(""); + + const [handleSubmission_api, sethandleSubmission_api] = useState(); + const [handleSubmission_result, sethandleSubmission_result] = useState(); + const [handleSubmission_message, sethandleSubmission_message] = useState(); + + const handleSubmission = event => { + + const formData = new FormData(); + + const fileUploaded = event.target.files[0]; + let file_size = event.target.files[0].size; + let file_type = event.target.files[0].type; + + //console.log("file_size = ",file_size," file_type = ",file_type); + if (file_size > 10000000) { + //alert("Le fichier ne doit pas dépasser un 1 Méga octets"); + + setdisplay_alert_mysy("1"); + setalert_message("Le fichier ne doit pas dépasser un 1 Méga octets"); + setalert_type("error"); + + return; + } + + setformation_file_name(event.target.files[0].name); + + //console.log(" import du ficier ", event.target.files[0].name); + + + formData.append('File', fileUploaded); + //formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA'); + const stored_cookie = getCookie('tokenmysypart'); + + + formData.append("token", stored_cookie); + + //console.log("token = " + stored_cookie); theme_name + setLoading(true); + fetch( + process.env.REACT_APP_API_URL + "myclass/api/add_class_mass/", + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + //console.log('Success:', result['message']); + setexcelimportmessage(result['message']); + setmyApiResponse("true"); + setapiexcelimportmessage(result['status']); + setLoading(false); + if (String(result['status']) === String("true")) { + + sethandleSubmission_api("true"); + GetAllClass_new(); + var local_message = result['message']; // + " Vous allez être redirigé vers la liste des formations" + window.scrollTo({ + top: 0, + behavior: "smooth", + }); + + alert(local_message); + + setdisplay_alert_mysy("1"); + setalert_message(local_message); + setalert_type("success"); + + //history.push("/Partner/affichage"); + //window.location.reload(); + //return; + + } else if (String(result['status']) === String("Err_Connexion")) { + alert('Erreur: ' + result['message']); + history.push("/Connexion"); + } + + else { + sethandleSubmission_api("false"); + sethandleSubmission_message(result['message']); + window.scrollTo({ + top: 0, + behavior: "smooth", + }); + // alert(result['message']); + setdisplay_alert_mysy("1"); + setalert_message(result['message']); + setalert_type("error"); + + setformation_file_name(""); + + + + + } + //alert("result['status'] " + result['status']); + }) + .catch((error) => { + setLoading(false); + setmyApiResponse("false"); + setapiexcelimportmessage("-1"); + sethandleSubmission_api("false"); + // alert(" Impossible d'importer/mettre à jour les formations"); + + // alert(result['message']); + setdisplay_alert_mysy("1"); + setalert_message("Impossible d'importer/mettre à jour les formations"); + setalert_type("error"); + + }); + }; + + + function handleClick(event, cellValues) { + + var url = process.env.REACT_APP_API_URL + "myclass/api/check_partner_token_validity_v2/"; + + var formData = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + formData.append("token", stored_cookie); + fetch( + url, + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + console.log(' isValidToken ==> Success:', result['message'], "result['status'] = ", result['status']); + + if (String(result['status']) !== String("true")) { + alert("La session de connexion n'est pas valide"); + history.push("/Connexion"); + } + + if (String(result['status']) === String("true")) { + Edittraining(event, cellValues); + //console.log(cellValues); + } + + + }) + .catch((error) => { + console.error('Error:', error); + + + }); + + + } + + + const [Archive_Given_Class_api, setArchive_Given_Class_api] = useState(); + const [Archive_Given_Class_message, setArchive_Given_Class_message] = useState(); + const [Archive_Given_Class_result, setArchive_Given_Class_result] = useState(); + + function Archive_Given_Class(local_class_id, local_archive_statue) { + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("tab_class_id", local_class_id); + + //console.log(" form == ", form); + var myurl = ""; + if (local_archive_statue !== "1") + myurl = process.env.REACT_APP_API_URL + "myclass/api/archive_class/"; + else + myurl = process.env.REACT_APP_API_URL + "myclass/api/unarchive_class/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + //console.log(" In Archive_Given_Class res.data.status = " + res.data.status); + //console.log(" In Archive_Given_Class res.data.message r_class = " + res.data.message); + + setLoading(false); + if (String(res.data.status) === String("true")) { + setArchive_Given_Class_api("true"); + setArchive_Given_Class_result(res.data.message); + + GetAllClass_new(); + + + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("success"); + + } + else { + setArchive_Given_Class_api("false"); + setArchive_Given_Class_message(res.data.message); + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("error"); + + } + + }).catch((error) => { + + + setLoading(false); + console.warn('UpdateStagiaireData : Not good man :( Archive_Given_Class = ' + error); + setArchive_Given_Class_api("false"); + if (local_archive_statue !== "1") + alert(" Impossible d'archiver la formation "); + else + alert(" Impossible de séarchiver la formation "); + + + }) + } + + const isValidJSON = (text) => { + let isValid = false; + try { + JSON.parse(text); + isValid = true; + + } catch (e) { + isValid = false; + console.error('[isValidJSON], invalid JSON text', text); + } + + return isValid; + } + + const [selectionModel, setSelectionModel] = React.useState([]); + const [rowss, setRows] = useState([]); + const [tableData, setTableData] = useState([]) + + const [refreshgrid, setrefreshgrid] = useState("") + function GetAllClass_WOfilter(event) { + var form = new FormData(); + + + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("is_ftion_initiale", props.class_is_ftion_initiale); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/get_partner_class/"; + + //alert(" laaa"); + fetch(myurl, + { + method: 'POST', + body: form, + }) + .then((data) => data.json()) + .then((data) => { + console.log('GetAllClass_WOfilter : Success:', data['message'], "data['status'] = ", data['status']); + if (data['message'].length) { + setTableData(data['message']); + setRows(data['message']); + } else { + setTableData([]); + setRows([]); + } + + //alert(" GetAllClass_WOfilter OKK "+refreshgrid); + setrefreshgrid("1"); + + + }).catch((error) => { + console.error('GetAllClass_WOfilter Error:', error); + setmyApiResponse("false"); + }); + + } + + + function GetAllClass_new(event) { + + setloading_datagrid(true); + + var form = new FormData(); + + // Recuperation des parametres + var filtre1 = p_filtre1; + var filtre2 = p_filtre2; + var filtre3 = p_filtre3; + + var filtre1_value = ""; + var filtre2_value = ""; + var filtre3_value = ""; + + // Recuperation des valeurs de filtres + + if (p_filtre1_value) { + filtre1_value = p_filtre1_value; + form.append(filtre1, filtre1_value); + } + + if (p_filtre2_value) { + filtre2_value = p_filtre2_value; + form.append(filtre2, filtre2_value); + } + + if (p_filtre3_value) { + filtre3_value = p_filtre3_value; + form.append(filtre3, filtre3_value); + } + + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + + form.append("is_ftion_initiale", props.class_is_ftion_initiale); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/find_partner_class_like/"; + + fetch(myurl, + { + method: 'POST', + body: form, + }) + .then((data) => data.json()) + .then((data) => { + //console.log('GetAllClass_new ==> Success:', data['message'], "data['status'] = ", data['status']); + // console.log(" String(data['status'] = ", String(data['status'])); + + setloading_datagrid(false); + if (String(data['status']) === String("false")) { + //console.log("erreur rrrr:" + data['status']) + setmyApiResponse("False"); + setTableData([]); + setRows([]); + + } + else { + setmyApiResponse("True"); + if (data['message'].length > 0) { + setTableData(data['message']); + setRows(data['message']); + } else { + setTableData([]); + setRows([]); + } + + } + + }).catch((error) => { + console.error('Error:', error); + setmyApiResponse("false"); + setloading_datagrid(false); + setTableData([]); + setRows([]); + }); + + } + + function GetAllClass_new_no_filter(event) { + + var form = new FormData(); + + + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + + form.append("is_ftion_initiale", props.class_is_ftion_initiale); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/find_partner_class_like/"; + fetch(myurl, + { + method: 'POST', + body: form, + }) + .then((data) => data.json()) + .then((data) => { + //console.log('Success:', data['message'], "data['status'] = ", data['status']); + + if (String(data['status']) === String("false")) { + //console.log("erreur rrrr:" + data['status']) + setmyApiResponse("False"); + setTableData([]); + setRows([]); + + } + else { + setmyApiResponse("True"); + if (data['message'].length > 0) { + setTableData(data['message']); + setRows(data['message']); + } else { + setTableData([]); + setRows([]); + } + + } + + }).catch((error) => { + console.error('Error:', error); + setmyApiResponse("false"); + }); + + } + + + function Display_Colunm_text({ value }) { + + return ( +
+ {value}  + +
+ ); + } + + function ExpandableCell_50({ value }) { + const [expanded, setExpanded] = React.useState(false); + + return ( + + ); + } + + const [ismobilephone_columns_hide, setismobilephone_columns_hide] = useState(false); + + const [datagrid_columns_size_model1, setdatagrid_columns_size_model1] = useState(200); + const [datagrid_columns_size_model2, setdatagrid_columns_size_model2] = useState(120); + + + const options_menu_vertical = [ + '', + 'Visualiser', + 'Editer', + 'Pubier E-Learning', + 'Archiver/Désarchiver', + 'Supprimer', + ]; + + const options_menu_vertical_With_E_Learning = [ + '', + 'Visualiser', + 'Editer', + 'Ouvrir E-Learning', + 'Archiver/Désarchiver', + 'Supprimer', + ]; + + const ITEM_HEIGHT = 48; + + + const [anchorEl, setAnchorEl] = React.useState(null); + const open = Boolean(anchorEl); + const handleClick_option_button_vertical = (event) => { + setAnchorEl(event.currentTarget); + }; + const handleClose_option_button_vertical = (event, value) => { + + + console.log("Option traitement = ", value); + + if (value && String(value) === "Supprimer") { + + } + + else if (value && String(value) === "Editer") { + + } + + else if (value && String(value) === "Pub. E-Learning") { + + } + + + else if (value && String(value) === "Supprimer") { + + console.log("Option traitement 22 = ", value); + + + } + + + setAnchorEl(null); + + }; + + const [class_archive_status, setclass_archive_status] = React.useState(''); + + const [anchorEl_A, setanchorEl_A] = React.useState(null); + const open_a = Boolean(anchorEl_A); + const handleClick_option_button_vertical_A = (event) => { + setanchorEl_A(event.currentTarget); + }; + const handleClose_option_button_vertical_A = (event, value) => { + + if (value && String(value) === "Supprimer") { + + } + + else if (value && String(value) === "Editer") { + + } + + else if (value && String(value) === "Accès E-Learning") { + + } + + + else if (value && String(value) === "Supprimer") { + + + } + + + setanchorEl_A(null); + + }; + + + const columns = [ + { field: "id", hide: true, filterable: false, disableExport: true }, + { field: '_id', headerName: '_id', hide: true, disableExport: true, Width: 0, }, + + { field: 'duration', headerName: 'duration', hide: true, Width: 0, }, + { field: 'presentiel', headerName: 'Présentiel', hide: true, Width: 0, }, + { field: 'distanciel', headerName: 'Distanciel', hide: true, Width: 0, }, + { field: 'cible', headerName: 'Cible', hide: true, Width: 0, }, + { field: 'duration_unit', headerName: 'duration_unit', hide: true, Width: 0, editable: false, }, + { field: 'duration_in_hour', headerName: 'duration_in_hour', hide: true, Width: 0, editable: false, }, + { field: 'currency', headerName: 'Devise', hide: true, Width: 0, editable: false, }, + { + field: 'archive', headerName: 'Archivé', hide: true, Width: 50, editable: false, renderCell: (cellValues) => { + return ( +
+ {String(cellValues.row.archive) === "1" && "Oui"}  + {String(cellValues.row.archive) !== "1" && "Non"}  + +
+ + ); + }, + }, + + { field: 'zone_diffusion', headerName: 'zone_diffusion', hide: true, maxWidth: 1, editable: false, }, + { field: 'internal_url', headerName: 'internal_url', hide: true, editable: false, }, + { field: 'external_code', headerName: 'Code Formation', minWidth: 150, flex: 1, maxWidth: 250, editable: false, renderCell: (params) => , }, + { field: 'title', headerName: 'Titre', minWidth: 250, flex: 1, editable: false, renderCell: (params) => , }, + { field: 'referentiel_padagogique', headerName: 'Réferentiel Ped.', minWidth: 150, flex: 1, hideable: true, hide: false, editable: false, renderCell: (params) => , }, + + + { field: 'domain', headerName: 'Domaine', minWidth: 100, flex: 1, maxWidth: 200, hideable: true, editable: false, renderCell: (params) => , }, + { field: 'metier', headerName: 'Métier', minWidth: 100, flex: 1, maxWidth: 200, hideable: true, hide: true, editable: false, renderCell: (params) => , }, + + + { field: 'categorie', headerName: 'Catégorie', minWidth: 100, flex: 1, maxWidth: 200, hideable: true, hide: true, editable: false, renderCell: (params) => , }, + + { + field: 'lms_class_code', headerName: 'LMS', hide: false, Width: 50, editable: false, renderCell: (cellValues) => { + return ( +
+ {String(cellValues.row.lms_class_code).length > 3 && "Oui"}  + {String(cellValues.row.lms_class_code).length <= 3 && "Non"}  + +
+ + ); + }, + }, + + { + field: 'nb_session_formation', headerName: 'Nb Promo', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center", + renderCell: (cellValues) => { + return ( + + + + ); + }, + }, + + + { + field: 'is_ftion_initiale', headerName: 'Ftion. Init.', hide: true, Width: 0, editable: false, renderCell: (cellValues) => { + return ( +
+ {String(cellValues.row.is_ftion_initiale) === "1" && "Oui"}  + {String(cellValues.row.is_ftion_initiale) !== "1" && "Non"}  + +
+ + ); + }, + }, + + { field: 'url', headerName: 'lien', minWidth: 20, hideable: true, hide: true, editable: false, }, + + + { field: 'description', headerName: 'Description', hide: true, resizable: true, minWidth: 250, maxWidth: 300, flex: 1, renderCell: (params) => , }, + + { field: 'version', headerName: 'Version Catalogue', hide: true, minWidth: 100, maxWidth: 200, flex: 1, renderCell: (params) => , }, + + { + field: 'price', headerName: 'Prix', minWidth: 50, flex: 1, maxWidth: 100, align: "center", resizable: true, hide: ismobilephone_columns_hide, editable: false, + renderCell: (params) => , + }, + { + field: 'published', headerName: 'Publié', minWidth: 50, flex: 1, maxWidth: 100, align: "center", resizable: true, editable: false, + + renderCell: (cellValues) => { + return ( +
+ {String(cellValues.row.published) === "1" && "Oui"}  + {String(cellValues.row.published) !== "1" && "Non"}  + +
+ + ); + }, + }, + + { + field: "visual", headerName: 'Visualiser', minWidth: 50, flex: 1, maxWidth: 100, disableExport: true, + renderCell: (cellValues) => { + return ( + + + + ); + } + }, + + + { + field: 'bton_vertif', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center", + renderCell: (cellValues) => { + return ( +
+ + {(!cellValues.row.lms_class_code || String(cellValues.row.lms_class_code).length <= 2) && String(props.check_user_acces_right("formation", "write")) === "1" && + } + {cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length > 2 && String(props.check_user_acces_right("formation", "write")) === "1" && } +
+ ); + }, + }, + ] + + + const [working_cellValues, setworking_cellValues] = useState(false); + + const [dialogOpen_supp, setdialogOpen_supp] = useState(false); + const Dialog_menuitem_close_supp = () => { + setdialogOpen_supp(false) + }; + + + const [dialogOpen_archive, setdialogOpen_archive] = useState(false); + const Dialog_menuitem_close_archive = () => { + setdialogOpen_archive(false) + }; + + + const [dialogOpen_push_lms, setdialogOpen_push_lms] = useState(false); + const Dialog_menuitem_close_push_lms = () => { + setdialogOpen_push_lms(false) + }; + + + function Visualiser(event, cellValues) { + + + var url = process.env.REACT_APP_API_URL + "myclass/api/check_partner_token_validity_v2/"; + + var formData = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + formData.append("token", stored_cookie); + fetch( + url, + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + console.log(' isValidToken ==> Success:', result['message'], "result['status'] = ", result['status']); + + if (String(result['status']) !== String("true")) { + alert("La session de connexion n'est pas valide"); + history.push("/Connexion"); + } + if (String(result['status']) === String("true")) { + // On ne visualise que les formations publiées + if (cellValues.row.published !== "1") { + alert(" Vous devez publier la formation pour la visualiser "); + return; + } + window.open( + "/Display-Detail-formation/" + cellValues.row.internal_url, + '_blank' + ); + } + + + }) + .catch((error) => { + console.error('Error:', error); + + + }); + + } + + + + + function handleClickManagement(event, cellValues) { + + // Verification de la validité du token avant action. + var url = process.env.REACT_APP_API_URL + "myclass/api/check_partner_token_validity_v2/"; + + var formData = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + formData.append("token", stored_cookie); + fetch( + url, + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + console.log(' isValidToken ==> Success:', result['message'], "result['status'] = ", result['status']); + + if (String(result['status']) !== String("true")) { + alert("La session de connexion n'est pas valide"); + history.push("/Connexion"); + } + else if (String(result['status']) === String("true")) { + window.open( + "/GestionAdministrative/" + cellValues.row.internal_url, + '_blank' + ); + } + + + }) + .catch((error) => { + console.error('Error:', error); + + + }); + + // Fin verification + + + } + + + function Edittraining(event, cellValues) { + + setclassidtrainingtoupdate(cellValues.row._id); + + setreftrainingtoupdate(cellValues.row.internal_url); + setexternalcodetraining_toupdate(cellValues.row.external_code); + setupdatetraining(true); + } + + + + + function selectedFilter1(event) { + setselectedfilt1(event.value); + } + + function selectedFilter2(event) { + setselectedfilt2(event.value); + } + + function selectedFilter3(event) { + setselectedfilt3(event.value); + } + + function CancelFiltre2(event) { + setselectedfilt2(""); + } + + function CancelFiltre3(event) { + setselectedfilt3(""); + } + + function closeTrainingForm() { + GetAllClass_new(); + setupdatetraining(false); + } + + function Closecreatetraining() { + setcreatetraining(false); + } + + function Createtraining() { + setcreatetraining(true); + } + + const [selectedtraining, setselectedtraining] = useState([]) + + function GetSelectedRowsTraining() { + ///alert(" les lignes slected sont : " + selectionModel + " nb item = " + selectionModel.length); + //const selectedRowsData = selectionModel.map((id) => rowss.find((row) => row.id === id)); + //console.log(rowss[0]); + var tab_tmp = [] + for (var i = 0; i < selectionModel.length; i++) { + var myid = parseInt(String(selectionModel[i])); + var line = JSON.parse(rowss[myid]); + tab_tmp.push(line.internal_url); + //console.log(rowss[myid]['external_code']); + } + setselectedtraining(tab_tmp); + return tab_tmp; + + } + + function GetSelectedRowsTraining_id_values() { + ///alert(" les lignes slected sont : " + selectionModel + " nb item = " + selectionModel.length); + //const selectedRowsData = selectionModel.map((id) => rowss.find((row) => row.id === id)); + //console.log(rowss[0]); + var tab_tmp = [] + for (var i = 0; i < selectionModel.length; i++) { + var myid = parseInt(String(selectionModel[i])); + var line = JSON.parse(rowss[myid]); + tab_tmp.push(line._id); + //console.log(rowss[myid]['external_code']); + } + setselectedtraining(tab_tmp); + return tab_tmp; + + } + + + // Fonction de verification de la validité d'un token. + function isValidToken() { + + var url = process.env.REACT_APP_API_URL + "myclass/api/check_partner_token_validity_v2/"; + + var formData = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + formData.append("token", stored_cookie); + fetch( + url, + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + console.log(' isValidToken ==> Success:', result['message'], "result['status'] = ", result['status']); + + if (String(result['status']) !== String("true")) { + alert("La session de connexion n'est pas valide"); + history.push("/Connexion"); + } + + + }) + .catch((error) => { + console.error('Error:', error); + + + }); + + } + + + + function Unpublish_class(tab_class) { + + var url = process.env.REACT_APP_API_URL + "myclass/api/unpublish_class/"; + + + for (var i = 0; i < tab_class.length; i++) { + //console.log(" position = "+i+" val = "+tab_class[i]); + //alert(" début desactivation de la formation " + tab_class[i]); + var formData = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + formData.append("token", stored_cookie); + formData.append("internal_url", tab_class[i]); + fetch( + url, + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + //console.log('Success:', result['message'], "result['status'] = ", result['status']); + setactionmass_ftion_val(""); + if (String(result['status']) === String("true")) { + //alert(" OK pour la formation :" + tab_class[i]); + } + + }) + .catch((error) => { + console.error('Error:', error); + //alert(" KOO pour la formation :" + tab_class[i]); + + }); + + } + } + + function Publish_class(tab_class) { + + var url = process.env.REACT_APP_API_URL + "myclass/api/pusblish_class/"; + + for (var i = 0; i < tab_class.length; i++) { + + //alert(" début desactivation de la formation " + tab_class[i]); + //console.log(" NB = "+i+" id = "+tab_class[i]); + var formData = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + formData.append("token", stored_cookie); + formData.append("internal_url", tab_class[i]); + fetch( + url, + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + //console.log('Success:', result['message'], "result['status'] = ", result['status']); + setactionmass_ftion_val(""); + if (String(result['status']) === String("true")) { + //alert(" OK pour la formation :" + tab_class[i]); + } + + }) + .catch((error) => { + console.error('Error:', error); + //alert(" KOO pour la formation :" + tab_class[i]); + + }); + + } + } + + function Disable_class(tab_class) { + + var url = process.env.REACT_APP_API_URL + "myclass/api/disable_class/"; + + for (var i = 0; i < tab_class.length; i++) { + + //alert(" début desactivation de la formation " + tab_class[i]); + var formData = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + formData.append("token", stored_cookie); + formData.append("internal_url", tab_class[i]); + fetch( + url, + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + //console.log('Success:', result['message'], "result['status'] = ", result['status']); + setactionmass_ftion_val(""); + + if (String(result['status']) === String("true")) { + //alert(" OK pour la formation :" + tab_class[i]); + } + + }) + .catch((error) => { + console.error('Error:', error); + //alert(" KOO pour la formation :" + tab_class[i]); + + }); + + } + } + + + function Duplicate_class(tab_class) { + + var url = process.env.REACT_APP_API_URL + "myclass/api/Duplicate_Class_from_internal_url/"; + + setLoading(true); + for (var i = 0; i < tab_class.length; i++) { + + //alert(" début desactivation de la formation " + tab_class[i]); + var formData = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + formData.append("token", stored_cookie); + formData.append("internal_url", tab_class[i]); + fetch( + url, + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + // console.log('Success:', result['message'], "result['status'] = ", result['status']); + setactionmass_ftion_val(""); + if (String(result['status']) === String("true")) { + alert(String(result['message'])) + } + + }) + .catch((error) => { + setLoading(false); + console.error('Error:', error); + //alert(" KOO pour la formation :" + tab_class[i]); + + }); + + } + setLoading(false); + } + + + + function Export_class(tab_class) { + const stored_cookie = getCookie('tokenmysypart'); + + var nom_fichier_cmd = "export_formation.xlsx"; + + var url = process.env.REACT_APP_API_URL + "myclass/api/Export_Class_To_Excel_From_from_List_Id/" + stored_cookie + "/" + tab_class; + + + setLoading(true); + axios.get(url, { responseType: 'blob', },) + .then((res) => { + setLoading(false); + //console.log(" In Export_Dashbord_to_CSV res.data = " + res.data); + if (String(res.data) === String("false")) { + alert("Impossible d'exporter les formations (2) "); + } else { + fileDownload(res.data, nom_fichier_cmd) + + } + }).catch((error) => { + setLoading(false); + console.error('Error:', error); + alert(" Impossible d'exporter les formations ") + + }); + + + setLoading(false); + } + + + function ActionMass(e) { + + // On vide le datagrid pour faire un refresj + setRows([]); + //return; + + var actionenmasse = "" + if (document.getElementById("actionmass")) { + actionenmasse = document.getElementById("actionmass").value; + } + + var liste_formation = GetSelectedRowsTraining(); + var liste_formation_ids_values = GetSelectedRowsTraining_id_values(); + + + + if (String(actionenmasse) === String("depublier")) { + + Unpublish_class(liste_formation); + GetAllClass_WOfilter(); + } + + else if (String(actionenmasse) === String("publier")) { + Publish_class(liste_formation); + GetAllClass_WOfilter(); + } + + else if (String(actionenmasse) === String("supprimer")) { + Disable_class(liste_formation_ids_values); + GetAllClass_WOfilter(); + } + + else if (String(actionenmasse) === String("dupliquer")) { + Duplicate_class(liste_formation_ids_values); + GetAllClass_WOfilter(); + } + + else if (String(actionenmasse) === String("exporter")) { + Export_class(liste_formation_ids_values); + GetAllClass_WOfilter(); + } + + } + + const [rows_champs_specifics, setrows_champs_specifics] = useState([]); + + const [Get_Partner_Object_Specific_Fields_api, setGet_Partner_Object_Specific_Fields_api] = useState(); + const [Get_Partner_Object_Specific_Fields_message, setGet_Partner_Object_Specific_Fields_message] = useState(); + const [Get_Partner_Object_Specific_Fields_result, setGet_Partner_Object_Specific_Fields_result] = useState(); + function Get_Partner_Object_Specific_Fields(local_collection_obj_metier) { + + var form = new FormData(); + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("object_name", local_collection_obj_metier); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Partner_Object_Specific_Valide_Displayed_Fields/"; + + axios.post(myurl, form).then(res => { + + if (String(res.data.status) === String("true")) { + //console.log(" In Get_Partner_Object_Specific_Fields res.data.status = " + res.data.status); + //console.log(" In Get_Partner_Object_Specific_Fields res.data.message r_class = " + res.data.message); + + setGet_Partner_Object_Specific_Fields_api("true"); + setGet_Partner_Object_Specific_Fields_result(res.data.message); + + + setrows_champs_specifics(res.data.message); + + + } + else { + setGet_Partner_Object_Specific_Fields_api("false"); + setGet_Partner_Object_Specific_Fields_message(res.data.message); + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("error"); + } + + }).catch((error) => { + console.warn('Not good man :( Get_Partner_Object_Specific_Fields = ', error); + setGet_Partner_Object_Specific_Fields_api("false"); + + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message("Impossible de recuperer la liste des collection et champs personnalisables"); + setalert_type("error"); + + // alert(" Impossible de recuperer la liste des collection et champs personnalisables"); + //setmyApimyApiMessage("") + }) + } + + + const [New_Get_List_Domaines_result, setNew_Get_List_Domaines_result] = useState([]); + + const [Get_List_Domaines_api, setGet_List_Domaines_api] = useState(); + const [Get_List_Domaines_message, setGet_List_Domaines_message] = useState(); + const [Get_List_Domaines_result, setGet_List_Domaines_result] = useState(); + function Get_List_Domaines() { + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Class_domaine/"; + + fetch(myurl, + { + method: 'POST', + body: form, + }) + .then((data) => data.json()) + .then((data) => { + //console.log(' IN Get_List_Domaines Success:', data['message'], "data['status'] = ", data['status']); + + if (String(data['status']) === String("true")) { + setGet_List_Domaines_api("true"); + setGet_List_Domaines_result(data['message']); + + var new_data2 = []; + const new_data = data['message'].map((x) => { + + //--- + var localid = JSON.parse(x).id; + var local_id = JSON.parse(x)._id; + var local_code = JSON.parse(x).code; + var local_nom = JSON.parse(x).nom; + + + //--- + var node = { + "id": localid, + "_id": local_id, + "nom": local_nom, + "code": local_code, + "label": local_nom, + + + }; + new_data2.push(node); + }); + + var node = { + "id": "", + "_id": "", + "nom": "", + "code": "", + "label": "", + + + }; + new_data2.push(node); + + if (new_data2.length > 0) { + setNew_Get_List_Domaines_result(new_data2); + + // console.log(" ## new_data2 = ", new_data2); + // console.log(" ## New_Get_List_Domaines_result = ", New_Get_List_Domaines_result); + } else { + setNew_Get_List_Domaines_result([]) + } + } + else { + setGet_List_Domaines_api("false"); + setGet_List_Domaines_message(data['message']); + } + + }).catch((error) => { + console.error('Error Get_List_Domaines :', error); + setGet_List_Domaines_api("false"); + }); + } + + const [New_Get_List_Metiers_result, setNew_Get_List_Metiers_result] = useState([]); + + const [Get_List_Metiers_api, setGet_List_Metiers_api] = useState(); + const [Get_List_Metiers_message, setGet_List_Metiers_message] = useState(); + const [Get_List_Metiers_result, setGet_List_Metiers_result] = useState(); + function Get_List_Metiers() { + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_class_metier/"; + setLoading(true); + fetch(myurl, + { + method: 'POST', + body: form, + }) + .then((data) => data.json()) + .then((data) => { + setLoading(false); + // console.log(' IN Get_List_Metiers Success:', data['message'], "data['status'] = ", data['status']); + + if (String(data['status']) === String("true")) { + setGet_List_Metiers_api("true"); + setGet_List_Metiers_result(data['message']); + + var new_data2 = []; + const new_data = data['message'].map((x) => { + + + //--- + var localid = JSON.parse(x).id; + var local_id = JSON.parse(x)._id; + var local_nom = JSON.parse(x).nom; + var local_code = JSON.parse(x).code; + var local_class_domaine_id = JSON.parse(x).class_domaine_id; + var local_class_domaine_nom = JSON.parse(x).class_domaine_nom; + + + //--- + var node = { + "id": localid, + "_id": local_id, + "label": local_nom, + "nom": local_nom, + "code": local_code, + "class_domaine_id": local_class_domaine_id, + "class_domaine_nom": local_class_domaine_nom, + + }; + new_data2.push(node); + }); + + //--- + var node = { + "id": "", + "_id": "", + "label": "", + "nom": "", + "code": "", + "class_domaine_id": "", + "class_domaine_nom": "", + + }; + new_data2.push(node); + + if (new_data2.length > 0) { + setNew_Get_List_Metiers_result(new_data2); + //console.log(" ### new_data2 ", new_data2); + //console.log(" ### setNew_Get_List_Metiers_result ", New_Get_List_Metiers_result); + } else { + setNew_Get_List_Metiers_result([]); + } + + + } + else { + setGet_List_Metiers_api("false"); + setGet_List_Metiers_message(data['message']); + } + + }).catch((error) => { + setLoading(false); + console.error('Error Get_List_Metiers :', error); + setGet_List_Metiers_api("false"); + }); + + } + + const [New_Get_List_Categorie_result, setNew_Get_List_Categorie_result] = useState([]); + + const [Get_List_Categorie_api, setGet_List_Categorie_api] = useState(); + const [Get_List_Categorie_message, setGet_List_Categorie_message] = useState(); + const [Get_List_Categorie_result, setGet_List_Categorie_result] = useState(); + function Get_List_Categorie() { + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Class_Categorie/"; + setLoading(true); + fetch(myurl, + { + method: 'POST', + body: form, + }) + .then((data) => data.json()) + .then((data) => { + setLoading(false); + // console.log(' IN Get_List_Categorie Success:', data['message'], "data['status'] = ", data['status']); + + if (String(data['status']) === String("true")) { + setGet_List_Categorie_api("true"); + setGet_List_Categorie_result(data['message']); + + var new_data2 = []; + const new_data = data['message'].map((x) => { + + + //--- + var localid = JSON.parse(x).id; + var local_id = JSON.parse(x)._id; + var local_nom = JSON.parse(x).nom; + var local_code = JSON.parse(x).code; + var local_class_domaine_id = JSON.parse(x).class_domaine_id; + var local_class_domaine_nom = JSON.parse(x).class_domaine_nom; + + + //--- + var node = { + "id": localid, + "_id": local_id, + "label": local_nom, + "nom": local_nom, + "code": local_code, + "class_domaine_id": local_class_domaine_id, + "class_domaine_nom": local_class_domaine_nom, + + }; + new_data2.push(node); + }); + + //--- + var node = { + "id": "", + "_id": "", + "label": "", + "nom": "", + "code": "", + "class_domaine_id": "", + "class_domaine_nom": "", + + }; + new_data2.push(node); + + if (new_data2.length > 0) { + setNew_Get_List_Categorie_result(new_data2); + //console.log(" ### new_data2 ", new_data2); + //console.log(" ### setNew_Get_List_Categorie_result ", New_Get_List_Categorie_result); + } else { + setNew_Get_List_Categorie_result([]); + } + + + } + else { + setGet_List_Categorie_api("false"); + setGet_List_Categorie_message(data['message']); + } + + }).catch((error) => { + setLoading(false); + console.error('Error Get_List_Categorie :', error); + setGet_List_Categorie_api("false"); + }); + + } + + + + const [ismobilephone, setismobilephone] = useState(); + const [loading_datagrid, setloading_datagrid] = useState(true); + + useEffect(() => { + + Get_List_Domaines(); + Get_List_Metiers(); + Get_List_Categorie(); + Getall_Parter_bloc_competence(); + + Get_Partner_Object_Specific_Fields("myclass"); + + //GetAllClass(); + GetAllClass_new(); + + + if (props.class_internal_url && props.class_external_code && + String(props.class_internal_url).length > 3 && String(props.class_external_code).length > 3) { + + + //console.log(" ## props.class_internal_url = ", props.class_internal_url); + //console.log(" ## props.class_external_code = ", props.class_external_code); + setLoading(true); + setreftrainingtoupdate(props.class_internal_url); + setexternalcodetraining_toupdate(props.class_external_code); + setupdatetraining(true); + + setLoading(false); + } else { + + window.scrollTo({ + top: 0, + behavior: "smooth", + }); + + let windowWidth = window.innerWidth; + if (windowWidth < 1001) { + setismobilephone_columns_hide(true); + setdatagrid_columns_size_model2(10); + } + } + + // Recuperation de mode de regroupement des données de session + if (stored_cookie_catalog_data_row_grouped_by) { + setdata_row_grouped_by(stored_cookie_catalog_data_row_grouped_by); + setdata_row_grouped_field(stored_cookie_catalog_data_row_grouped_by); + datagrid_grouped_by(stored_cookie_catalog_data_row_grouped_by); + } + + }, []); + + + + const [New_Getall_Parter_bloc_competence_result, setNew_Getall_Parter_bloc_competence_result] = useState([]); + + const [Getall_Parter_bloc_competence_api, setGetall_Parter_bloc_competence_api] = useState(); + const [Getall_Parter_bloc_competence_message, setGetall_Parter_bloc_competence_message] = useState(); + const [Getall_Parter_bloc_competence_result, setGetall_Parter_bloc_competence_result] = useState([]); + function Getall_Parter_bloc_competence(event) { + + var form = new FormData(); + + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_bloc_competence_no_filter/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + setLoading(false); + // console.log(" In Getall_Parter_bloc_competence res.data.status = " + res.data.status); + // console.log(" In Getall_Parter_bloc_competence res.data.message r_class = " + res.data.message); + if (String(res.data.status) === String("true")) { + + setGetall_Parter_bloc_competence_api("true"); + setGetall_Parter_bloc_competence_result(res.data.message); + + + var new_data2 = []; + const new_data = res.data.message.map((x) => { + + //--- + var localid = JSON.parse(x).id; + var local_id = JSON.parse(x)._id; + var local_commentaire = JSON.parse(x).commentaire; + var local_code = JSON.parse(x).code; + var local_description = JSON.parse(x).description; + + + //--- + var node = { + "_id": local_id, + "id": localid, + "label": local_code, + "commentaire": local_commentaire, + "code": local_code, + "description": local_description, + + }; + new_data2.push(node); + }); + + //--- + var node = { + "_id": "", + "id": "", + "label": "", + "commentaire": "", + "code": "", + "description": "", + + }; + new_data2.push(node); + + if (new_data2.length > 0) + setNew_Getall_Parter_bloc_competence_result(new_data2); + + } + else { + setGetall_Parter_bloc_competence_api("false"); + setGetall_Parter_bloc_competence_message(res.data.message); + // alert(res.data.message) + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("error"); + } + + }).catch((error) => { + setLoading(false); + console.warn('Not good man :( Getall_Parter_bloc_competence = ', error); + setGetall_Parter_bloc_competence_api("false"); + alert(" Impossible de recuperer la liste des référentiels pédagogiques"); + //setmyApimyApiMessage("") + }) + } + + + function Clearselectedfilt1() { + setselectedfilt1(""); + } + + + + + + function handleClick_delete(event, cellValues) { + var local_class_id = cellValues.row._id; + Delete_Class(local_class_id); + } + + + const [Delete_Class_api, setDelete_Class_api] = useState(); + const [Delete_Class_message, setDelete_Class_message] = useState(); + const [Delete_Class_result, setDelete_Class_result] = useState(); + function Delete_Class(local_class_id) { + + var form = new FormData(); + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("class_id", local_class_id); + + + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/delete_Class/"; + + axios.post(myurl, form).then(res => { + //console.log(" In Delete_Class res.data.status = " + res.data.status); + //console.log(" In Delete_Class res.data.message r_class = " + res.data.message); + + if (String(res.data.status) === String("true")) { + setDelete_Class_api("true"); + setDelete_Class_result(res.data.message); + + GetAllClass_new(); + // alert(res.data.message) + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("success"); + } + else { + setDelete_Class_api("false"); + setDelete_Class_message(res.data.message); + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("error"); + + } + + }).catch((error) => { + + console.log('Delete_Class : Not good man :( Delete_Class = ' + error); + setDelete_Class_api("false"); + + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message("Impossible de supprimer la formation"); + setalert_type("error"); + + //alert(" Impossible de supprimer la formation"); + }) + } + + + + const [isLoading, setLoading] = useState(); + + + const [handlepush_to_lms_api, sethandlepush_to_lms_api] = useState(""); + const [handlepush_to_lms_result, sethandlepush_to_lms_result] = useState(""); + const [handlepush_to_lms_message, sethandlepush_to_lms_message] = useState(""); + + function handlepush_to_lms(event, cellValues) { + + if (cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length > 2) { + // alert(" Cette formation est déjà publiée sur la plateforme de E-Learning"); + + setdisplay_alert_mysy("1"); + setalert_message(" Cette formation est déjà publiée sur la plateforme de E-Learning"); + setalert_type("error"); + + return; + } + + setLoading(true); + + //console.log(" ### event.target.value = ", event.target.value); + const formData = new FormData(); + const url = process.env.REACT_APP_API_URL + "myclass/api/Push_Class_To_MySy_LMS/"; + + const stored_cookie = getCookie('tokenmysypart'); + formData.append("token", stored_cookie); + formData.append('class_internal_url', cellValues.row.internal_url); + + axios.post(url, formData).then(res => { + //console.log(" In getCurrentUserData res.data.status = " + res.data.status); + //console.log(" In getCurrentUserData res.data.message = " + res.data.message); + if (String(res.data.status) === "true") { + + sethandlepush_to_lms_api("true"); + sethandlepush_to_lms_result(res.data.message); + + setLoading(false); + GetAllClass_new(); + // alert(res.data.message) + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("success"); + + + } + else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + return; + } + else { + + sethandlepush_to_lms_api("false"); + sethandlepush_to_lms_message(res.data.message); + setLoading(false); + + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("error"); + + //alert("Erreur : " + res.data.message); + } + + }).catch((error) => { + console.warn('Erro handlepush_to_lms = ', error); + sethandlepush_to_lms_api("false"); + setLoading(false); + }) + } + + const [p_filtre1, setp_filtre1] = useState(""); + const [p_filtre1_value, setp_filtre1_value] = useState(""); + + const [p_filtre2, setp_filtre2] = useState(""); + const [p_filtre2_value, setp_filtre2_value] = useState(""); + + const [p_filtre3, setp_filtre3] = useState(""); + const [p_filtre3_value, setp_filtre3_value] = useState(""); + + function clean_all_filters() { + setp_filtre1(""); + setp_filtre1_value(""); + setp_filtre2(""); + setp_filtre2_value(""); + + setp_filtre3(""); + setp_filtre3_value(""); + GetAllClass_new_no_filter(); + } + + + + const datagridSx = { + borderRadius: 2, + marginRight: 1, + marginLeft: 1, + border: 0, + overflowX: 'scroll', + "& .MuiDataGrid-main": { borderRadius: 0 }, + /*'& div[data-rowIndex][role="row"]:nth-of-type(5n-4)': { + color: "blue", + fontSize: 18, + //risky + minHeight: "60px !important", + height: 60, + "& div": { + minHeight: "60px !important", + height: 60, + lineHeight: "59px !important" + } + },*/ + "& .MuiDataGrid-virtualScrollerRenderZone": { + "& .MuiDataGrid-row": { + "&:nth-child(2n)": { backgroundColor: "rgba(235, 235, 235, .7)" } + } + }, + "& .MuiDataGrid-columnHeaders": { + backgroundColor: "#c8cfd5", + color: "#0a2a4d", + fontSize: 16 + }, + + [`& .${gridClasses.cell}`]: { + py: 1, + }, + + }; + + + const [actionmass_ftion_val, setactionmass_ftion_val] = useState(); + const actionmass_ftion = (event) => { + const value = event.target.value; + + + if (String(value) === "publier" || String(value) === "depublier" || + String(value) === "desactiver" || String(value) === "supprimer" + || String(value) === "dupliquer" || String(value) === "exporter") { + setactionmass_ftion_val(value); + } + else { + setactionmass_ftion_val(); + } + } + + + function GetSelectedRows_ftion_Ids() { + + + var tab_tmp = [] + for (var i = 0; i < selectionModel.length; i++) { + //console.log(" ### selectionModel_insc[i] = ", selectionModel_insc[i]); + var myid = parseInt(String(selectionModel[i])); + //var line = JSON.parse(rowss[myid]); + tab_tmp.push(myid); + } + return tab_tmp; + + } + + async function actionmass_ftion_Traitemet() { + + + var liste_formation = GetSelectedRowsTraining(); + var liste_formation_ids_values = GetSelectedRowsTraining_id_values(); + + //console.log(" liste_formation_ids_values = ", liste_formation_ids_values); + //console.log(" actionmass_ftion_val = ", actionmass_ftion_val); + + if (String(actionmass_ftion_val) === String("depublier")) { + + Unpublish_class(liste_formation); + GetAllClass_WOfilter(); + window.location.reload(); + } + + else if (String(actionmass_ftion_val) === String("publier")) { + Publish_class(liste_formation); + GetAllClass_WOfilter(); + window.location.reload(); + } + + else if (String(actionmass_ftion_val) === String("desactiver")) { + Disable_class(liste_formation); + GetAllClass_WOfilter(); + window.location.reload(); + } + + else if (String(actionmass_ftion_val) === String("dupliquer")) { + Duplicate_class(liste_formation); + GetAllClass_WOfilter(); + window.location.reload(); + } + + else if (String(actionmass_ftion_val) === String("supprimer")) { + Delete_LIST_Formations(liste_formation_ids_values); + GetAllClass_WOfilter(); + //window.location.reload(); + } + + + else if (String(actionmass_ftion_val) === String("exporter")) { + Export_class(liste_formation_ids_values); + } + + } + + const sleep = (milliseconds) => { + return new Promise(resolve => setTimeout(resolve, milliseconds)) + } + + + const [Delete_LIST_Formations_api, setDelete_LIST_Formations_api] = useState(); + const [Delete_LIST_Formations_message, setDelete_LIST_Formations_message] = useState(); + const [Delete_LIST_Formations_result, setDelete_LIST_Formations_result] = useState(); + function Delete_LIST_Formations(local_liste_class) { + + + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + + // console.log(" #### local_liste_class = ", local_liste_class) + + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("list_class_id", local_liste_class); + + + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/delete_list_Class/"; + + axios.post(myurl, form).then(res => { + //console.log(" In Delete_LIST_Formations res.data.status = " + res.data.status); + //console.log(" In Delete_LIST_Formations res.data.message r_class = " + res.data.message); + + if (String(res.data.status) === String("true")) { + setDelete_LIST_Formations_api("true"); + setDelete_LIST_Formations_result(res.data.message); + setSelectionModel([]); + GetAllClass_new(); + + setactionmass_ftion_val(""); + + // alert(res.data.message) + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("success"); + } + else { + setDelete_LIST_Formations_api("false"); + setDelete_LIST_Formations_message(res.data.message); + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message(res.data.message); + setalert_type("error"); + + } + + }).catch((error) => { + + console.warn('Delete_LIST_Formations : Not good man :( mysearchtext = ' + error); + setDelete_LIST_Formations_api("false"); + // alert(res.data.message); + setdisplay_alert_mysy("1"); + setalert_message("Impossible de supprimer la liste des sessions de formation"); + setalert_type("error"); + + //alert(" Impossible de supprimer la liste des sessions de formation"); + }) + } + + + const [Dialog_formation_message, setDialog_formation_message] = React.useState(false); + const [Dialog_formation_open, setDialog_formation_open] = React.useState(false); + function Dialog_formation_handle_change_participant_session(message) { + setDialog_formation_message(message); + setDialog_formation_open(true); + } + + const Dialog_formation_handleClose = () => { + + }; + + const Dialog_formation_handleClose_buton = () => { + setDialog_formation_open(false); + }; + + + const [gridline_id, setgridline_id] = useState(""); + + const [selected_class_is_ftion_initiale, setselected_class_is_ftion_initiale] = useState(props.class_is_ftion_initiale); + + function Show_Detailled_formation_Data() { + setupdatetraining(true); + Dialog_formation_handleClose_buton(); + } + + + const [selected_row_data_json, setselected_row_data_json] = useState([]); + + + const New_Option = [ + { "id": "0", "label": "Publier", "value": "publier" }, + { "id": "1", "label": "Dépublier", "value": "depublier" }, + { "id": "2", "label": "Dupliquer", "value": "dupliquer" }, + { "id": "3", "label": "Exporter", "value": "exporter" }, + { "id": "4", "label": "Supprimer", "value": "supprimer" }, + ] + + const New_Option_Filter = [ + { "id": "external_code", "label": "Code externe formation", "value": "external_code" }, + { "id": "title", "label": "Titre Formation ", "value": "title" }, + { "id": "certif", "label": "Certifiante", "value": "certif" }, + { "id": "archive", "label": "Archive", "value": "archive" }, + { "id": "", "label": "", "value": "" }, + { "id": "1", "label": "", "value": "1" }, // Cette ligne pour couvrir l'ajout d'une ligne de filter. C'est fait expres. + ] + + + // DEBUT EXPORT EXCEL DATAGRID + + function CustomToolbar(props) { + + + + return ( + + + + + + + + + + + ); + } + + function getExcelData(apiRef) { + // Select rows and columns + const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef); + const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__"); + + // Format the data. Here we only keep the value + const data = filteredSortedRowIds.map((id) => { + const row = {}; + visibleColumnsField.forEach((field) => { + row[field] = apiRef.current.getCellParams(id, field).value; + }); + return row; + }); + + return data; + } + + + function ExportButton(props) { + return ( + + + + ); + } + + function handleExport(apiRef, data_colums) { + const data = getExcelData(apiRef); + const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef).filter((data) => (data) !== "__check__"); + + + const local_config = { + keys: visibleColumnsField, + + columnNames: data_colums.filter((mydata) => (mydata).disableExport !== true).map(function (mydata) { + if (mydata.headerName && visibleColumnsField.includes(mydata.field)) { + if (mydata.headerName) { + return mydata.headerName; + } + } + + }), + + fileName: 'data_' + String(new Date().toJSON().slice(0, 10)).replaceAll("-", "_") + '.xlsx', + sheetName: 'Export_' + String(new Date().toJSON().slice(0, 10)).replaceAll("-", "_"), + }; + + local_config.columnNames = local_config.columnNames.filter(function (element) { + return element !== undefined; + }); + + + const rows = data.map((row) => { + const mRow = {}; + for (const key of local_config.keys) { + mRow[key] = row[key]; + } + return mRow; + }); + + const worksheet = XLSX.utils.json_to_sheet(rows); + XLSX.utils.sheet_add_aoa(worksheet, [[...local_config.columnNames]], { + origin: 'A1', + }); + + const workbook = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(workbook, worksheet, local_config.sheetName); + XLSX.writeFile(workbook, local_config.fileName, { compression: true }); + } + + function ExportMenuItem(props) { + const apiRef = useGridApiContext(); + const { hideMenu } = props; + + return ( + { + handleExport(apiRef, props.data_colums); + // Hide the export menu after the export + hideMenu?.(); + }} + > + Export Excel + + ); + } + + // FIN EXPORT EXCEL DATAGRID + const classes = useStyles(); + + // const [getTreeDataPath, setgetTreeDataPath] = useState(""); + + + + const [data_row_grouped_by, setdata_row_grouped_by] = useState(""); + + const [data_row_grouped_field, setdata_row_grouped_field] = useState(""); + + function getTreeDataPath(param) { + + var local_tmp = data_row_grouped_field; + var local_tab_array = []; + + + if (param[local_tmp]) { + local_tab_array.push(String(param[local_tmp])); + } else { + local_tab_array.push(""); + } + + local_tab_array.push(String(param["external_code"])); + + return local_tab_array; + } + + + function datagrid_grouped_by(champ_filtre) { + setdata_row_grouped_field(champ_filtre); + + getTreeDataPath(rowss) + } + + const New_option_group_by = [ + { "id": "", "label": "Aucun", "value": "" }, + { "id": "domain", "label": "Domaine", "value": "domain" }, + { "id": "metier", "label": "Métier ", "value": "metier" }, + { "id": "categorie", "label": "Gatégorie ", "value": "categorie" }, + ] + + const [cookie_catalog_display_view, setcookie_catalog_display_view, removecookie_catalog_display_view] = useCookies(['mysy_catalog_data_row_grouped_by,']); + + function func_catalog_data_grouped_by(grouped_by) { + setdata_row_grouped_by(grouped_by); + setdata_row_grouped_field(grouped_by); + datagrid_grouped_by(grouped_by); + setcookie_catalog_display_view("mysy_catalog_data_row_grouped_by", String(grouped_by), { path: '/' }); + } + + + 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(""); + } + + const New_Option_Is_archive = [ + { "id": "1", "label": "Oui", "value": "1" }, + { "id": "0", "label": "Non", "value": "0" }, + { "id": "2", "label": "Tout", "value": "2" }, + { "id": "", "label": "", "value": "" }, + ] + + + return ( + +
+ {isLoading &&
+
+
} + + {/*** Affichage des messages d'alerte*/} + {display_alert_mysy && String(display_alert_mysy) === "1" && + + } + + {/*** FIN Affichage des messages d'alerte*/} + + null} + + PaperProps={{ + className: classes.paper, // Apply the paper style + style: { + overflowY: 'unset', + position: 'absolute', + top: '5rem', + margin: "2px", + }, + }} + hideBackdrop={true} + disableScrollLock + classes={{ + paper: classes.dialog + }} + + PaperComponent={PaperComponent} + aria-labelledby="draggable-dialog-title" + > + + Info Formation + + +
+
+ Code +
+
+ {} +
+
+ +
+
+ Titre +
+
+ {} +
+
+ +
+
+ Domaine +
+
+ {selected_row_data_json.domaine && New_Get_List_Domaines_result && New_Get_List_Domaines_result.length > 0 && } +
+
+ +
+
+ Coût +
+
+ + {} +
+
+ +
+
+ Durée +
+
+ {selected_row_data_json.duration_in_hour && String(selected_row_data_json.duration_unit) === "jour" && + } + + {String(selected_row_data_json.duration_unit) !== "jour" && + } +
+
+ +
+
+ Présentiel +
+
+ + + {selected_row_data_json.published && } +
+
+ +
+
+ Distanciel +
+
+ + + {selected_row_data_json.published && } + +
+
+ +
+
+ Publié Web +
+
+ + {selected_row_data_json.published && } + +
+
+
+
+ Cible +
+
+ {} +
+
+ + +
  + +
+
+ + + + + + + +
+
+ +
+
+ +
+
+ +
+ + +
+ + {updatetraining &&
+ +
+ +
+ + +
+
+ FERMER +
+ +
+ } + + {createtraining &&
+ +
+
Création manuelle d'une formation
+ + +
+ +
+ +
+ FERMER +
+ +
+ } + +

Mes formations   + {props.class_is_ftion_initiale && props.class_is_ftion_initiale === "1" && Initiales} + {props.class_is_ftion_initiale && props.class_is_ftion_initiale !== "1" && Continues} + +

+
Utilisez les filtres !
+
+
+ {New_Option_Filter && New_Option_Filter.length > 0 && (data).value === String(p_filtre1))[0].label} + options={New_Option_Filter} + onChange={(event, value) => { + if (value && value.value) { + setp_filtre1(value.value); + + } + + }} + + renderInput={(params) => + } + />} + +
+ {String(p_filtre1) !== "archive" &&
+ {p_filtre1 && + { setp_filtre1_value(e.target.value); }} + InputProps={{ + endAdornment: ( + + { + setp_filtre1_value(""); + }} /> + + ), + }} + + /> + } + +
} + + {String(p_filtre1) === "archive" &&
+ {p_filtre1 && + (data).id === String(p_filtre1_value))[0].label} + sx={{ float: "right" }} + className="disabled_style" + + options={New_Option_Is_archive} + onChange={(event, value) => { + if (value && value.value) { + setp_filtre1_value(value.value); + } else { + setp_filtre1_value(""); + } + }} + renderInput={(params) => } + /> + + } + +
} + + + + + {p_filtre1 && } + {p_filtre1 && } + +
+ + {p_filtre2 && +
+
+ {New_Option_Filter && New_Option_Filter.length > 0 && (data).value === String(p_filtre2))[0].label} + options={New_Option_Filter} + onChange={(event, value) => { + if (value && value.value) { + setp_filtre2(value.value); + + } + + }} + + renderInput={(params) => + } + />} + +
+
+ {String(p_filtre2).length > 2 && String(p_filtre2) !== "archive" && + setp_filtre2_value(e.target.value)} + InputProps={{ + endAdornment: ( + + { + setp_filtre2_value(""); + }} /> + + ), + }} + + />} + + {String(p_filtre2).length > 3 && String(p_filtre2) === "archive" && + (data).id === String(p_filtre2_value))[0].label} + sx={{ float: "right" }} + className="disabled_style" + + options={New_Option_Is_archive} + onChange={(event, value) => { + if (value && value.value) { + setp_filtre2_value(value.value); + } else { + setp_filtre2_value(""); + } + }} + renderInput={(params) => } + />} +
+ + {String(p_filtre2).length > 3 && } + + {String(p_filtre2).length > 3 && } + +
+ } + + + {p_filtre3 && +
+
+ + {New_Option_Filter && New_Option_Filter.length > 0 && (data).value === String(p_filtre3))[0].label} + options={New_Option_Filter} + onChange={(event, value) => { + if (value && value.value) { + setp_filtre3(value.value); + + } + + }} + + renderInput={(params) => + } + />} + + +
+
+ {String(p_filtre3).length > 3 && String(p_filtre3) !== "archive" && + setp_filtre3_value(e.target.value)} + InputProps={{ + endAdornment: ( + + { + setp_filtre3_value(""); + }} /> + + ), + }} + + />} + + {String(p_filtre3).length > 3 && String(p_filtre3) === "archive" && + (data).id === String(p_filtre3_value))[0].label} + sx={{ float: "right" }} + className="disabled_style" + + options={New_Option_Is_archive} + onChange={(event, value) => { + if (value && value.value) { + setp_filtre3_value(value.value); + } else { + setp_filtre3_value(""); + } + }} + renderInput={(params) => } + /> + } +
+ + {String(p_filtre3).length > 3 && } +
+ } + + + + {
+ +
+ +
+ +
+ + +
+ +
} + +
+ + {String(myApiResponse) === "False" &&
+ Impossible de traiter la demande +
} + +
+
+
+ + +
+
+ {/*!createtraining &&
+ + + +
*/} + {(!data_row_grouped_by || String(data_row_grouped_by) === "") &&
+
+ + {New_Get_List_Domaines_result && + New_Get_List_Metiers_result && + New_Get_List_Categorie_result && + New_Get_List_Domaines_result.length > 0 && + New_Get_List_Metiers_result.length > 0 && + New_Get_List_Categorie_result.length > 0 && + + { + setSelectionModel(newSelectionModel); + // console.log("ch selected 001--" + newSelectionModel); + }} + selectionModel={selectionModel} + localeText={frFR.components.MuiDataGrid.defaultProps.localeText} + rows={rowss.map((item, index) => ( + + { + id: index, + _id: JSON.parse(item)._id, + internal_url: JSON.parse(item).internal_url, + zone_diffusion: JSON.parse(item).zone_diffusion_str, + external_code: JSON.parse(item).external_code, + title: parse((JSON.parse(item).title).replace(/(<([^>]+)>)/ig, '')), + + domain: New_Get_List_Domaines_result.filter((data) => (data)._id === String(JSON.parse(item).domaine))[0].label, + domain_code: New_Get_List_Domaines_result.filter((data) => (data)._id === String(JSON.parse(item).domaine))[0].code, + + metier: New_Get_List_Metiers_result.filter((data) => (data)._id === String(JSON.parse(item).metier))[0].label, + metier_code: New_Get_List_Metiers_result.filter((data) => (data)._id === String(JSON.parse(item).metier))[0].code, + + categorie: New_Get_List_Categorie_result.filter((data) => (data)._id === String(JSON.parse(item).categorie))[0].label, + + referentiel_padagogique: New_Getall_Parter_bloc_competence_result.filter((data) => (data)._id === String(JSON.parse(item).referentiel_padagogique_id))[0].label, + + url: JSON.parse(item).url, + + price: JSON.parse(item).price, + description: parse((JSON.parse(item).description).replace(/(<([^>]+)>)/ig, '')), + published: JSON.parse(item).published, + lms_class_code: JSON.parse(item).lms_class_code, + duration: JSON.parse(item).duration, + duration_unit: JSON.parse(item).duration_unit, + duration_in_hour: JSON.parse(item).duration_in_hour, + presentiel: JSON.parse(item).presentiel.presentiel, + distanciel: JSON.parse(item).presentiel.distantiel, + cible: JSON.parse(item).pourqui, + currency: JSON.parse(item).currency, + archive: JSON.parse(item).archive, + + version: JSON.parse(item).version, + + is_ftion_initiale: JSON.parse(item).is_ftion_initiale, + + nb_session_formation: JSON.parse(item).nb_session_formation, + + } + ))} + + columns={columns} + pageSize={10} + className="datagridclass" + + onRowDoubleClick={(newSelectionModel) => { + setgridline_id(newSelectionModel.row.id); + setselected_class_is_ftion_initiale(newSelectionModel.row.is_ftion_initiale); + if (newSelectionModel.row.is_ftion_initiale !== "1") + setselected_class_is_ftion_initiale("0") + + Closecreatetraining(); + closeTrainingForm(); + + var al = JSON.parse(rowss[newSelectionModel.row.id]) + + setselected_row_data_json(JSON.parse(rowss[newSelectionModel.row.id])); + setclassidtrainingtoupdate(newSelectionModel.row._id); + + setreftrainingtoupdate(newSelectionModel.row.internal_url); + setexternalcodetraining_toupdate(newSelectionModel.row.external_code); + setDialog_formation_open(true); + + } + } + + rowsPerPageOptions={[10]} + disableSelectionOnClick + /* components={{ + Toolbar: GridToolbar, + }}*/ + + getCellClassName={(params) => { + if (params.field === 'published' && String(params.value) === "1") { + return 'cell--published'; + } + + if (params.field === "published" && String(params.value) !== "1") { + return 'cell--unpublished' + } + + }} + getRowClassName={(params) => { + + + + if (String(params.row.published) === "1") { + return 'line--published'; + } + + if (String(params.row.published) !== "1") { + return 'line--unpublished'; + } + + // Pour la gestion de la couleur de zone double cliquée + if (String(params.row.id) === String(gridline_id)) { + return 'line--statut--selected'; + } else if (parseInt(String(params.row.id)) % 2 === 0) { + return 'line--statut--pair'; + } + else if (parseInt(String(params.row.id)) % 2 !== 0) { + return 'line--statut--impair'; + } + + + }} + getEstimatedRowHeight={() => 200} + getRowHeight={() => "auto"} + + sx={datagridSx} + + + />} + + + + +
+
} + + {data_row_grouped_by && (String(data_row_grouped_by) === "domain" || String(data_row_grouped_by) === "metier" || + String(data_row_grouped_by) === "categorie") && +
+ + { + setSelectionModel(newSelectionModel); + // console.log("ch selected--" + newSelectionModel); + }} + selectionModel={selectionModel} + localeText={frFR.components.MuiDataGrid.defaultProps.localeText} + rows={rowss.map((item, index) => ( + + { + id: index, + _id: JSON.parse(item)._id, + internal_url: JSON.parse(item).internal_url, + zone_diffusion: JSON.parse(item).zone_diffusion_str, + external_code: JSON.parse(item).external_code, + title: parse((JSON.parse(item).title).replace(/(<([^>]+)>)/ig, '')), + + domain: New_Get_List_Domaines_result.filter((data) => (data)._id === String(JSON.parse(item).domaine))[0].label, + + metier: New_Get_List_Metiers_result.filter((data) => (data)._id === String(JSON.parse(item).metier))[0].label, + + categorie: New_Get_List_Categorie_result.filter((data) => (data)._id === String(JSON.parse(item).categorie))[0].label, + + + url: JSON.parse(item).url, + + price: JSON.parse(item).price, + description: parse((JSON.parse(item).description).replace(/(<([^>]+)>)/ig, '')), + published: JSON.parse(item).published, + lms_class_code: JSON.parse(item).lms_class_code, + duration: JSON.parse(item).duration, + duration_unit: JSON.parse(item).duration_unit, + duration_in_hour: JSON.parse(item).duration_in_hour, + presentiel: JSON.parse(item).presentiel.presentiel, + distanciel: JSON.parse(item).presentiel.distantiel, + cible: JSON.parse(item).pourqui, + currency: JSON.parse(item).currency, + + version: JSON.parse(item).version, + + nb_session_formation: JSON.parse(item).nb_session_formation, + + + } + ))} + + columns={columns} + pageSize={10} + className="datagridclass" + + onRowDoubleClick={(newSelectionModel) => { + + setgridline_id(newSelectionModel.row.id); + Closecreatetraining(); + closeTrainingForm(); + + var al = JSON.parse(rowss[newSelectionModel.row.id]) + + setselected_row_data_json(JSON.parse(rowss[newSelectionModel.row.id])); + setclassidtrainingtoupdate(newSelectionModel.row._id); + + setreftrainingtoupdate(newSelectionModel.row.internal_url); + setexternalcodetraining_toupdate(newSelectionModel.row.external_code); + setDialog_formation_open(true); + + } + } + + rowsPerPageOptions={[10]} + disableSelectionOnClick + /* components={{ + Toolbar: GridToolbar, + }}*/ + + getCellClassName={(params) => { + if (params.field === 'published' && String(params.value) === "1") { + return 'cell--published'; + } + + if (params.field === "published" && String(params.value) !== "1") { + return 'cell--unpublished' + } + + }} + getRowClassName={(params) => { + + // Pour la gestion de la couleur de zone double cliquée + if (String(params.row.id) === String(gridline_id)) { + return 'line--statut--selected'; + } else if (parseInt(String(params.row.id)) % 2 === 0) { + return 'line--statut--pair'; + } + else if (parseInt(String(params.row.id)) % 2 !== 0) { + return 'line--statut--impair'; + } + + if (String(params.row.published) === "1") { + return 'line--published'; + } + + if (String(params.row.published) !== "1") { + return 'line--unpublished'; + } + + }} + getEstimatedRowHeight={() => 200} + getRowHeight={() => "auto"} + + sx={datagridSx} + + + /> + + +
+ } + + +
 
+ {String(props.check_user_acces_right("formation", "write")) === "1" &&
+ {selectionModel && selectionModel.length >= 1 &&
+ +  
+ + { + if (value && value.value) { + if (String(value.value) === "publier" || String(value.value) === "depublier" || + String(value.value) === "desactiver" || String(value.value) === "supprimer" + || String(value.value) === "dupliquer" || String(value.value) === "exporter") { + setactionmass_ftion_val(value.value); + } + else { + setactionmass_ftion_val(); + } + } + }} + hiddenLabel="true" + renderInput={(params) => + } + /> + + + {selectionModel && selectionModel.length >= 1 && actionmass_ftion_val && actionmass_ftion_val != "" && + } + + +
} +
} + {selectionModel && selectionModel.length >= 1 &&
+
+
} + +   + + {String(props.check_user_acces_right("formation", "write")) === "1" &&
+ + + + +   + + +
+ {formation_file_name && } + + + + +
} + + {String(props.check_user_acces_right("formation", "write")) === "1" &&
+ + + + Pour le reste,
+
    +
  • Il s'agit d'un fichier csv. Les colonnes sont separées par des ";"
  • +
  • A l'interieur d'une même colonne, les informations sont separées par des ";"
  • +
  • Champ 'Metier' : les valeurs acceptées sont : IT, RH, vente, dev_perso, Graphisme, Management, Digital, Office, Autre
  • +
  • ...
  • +
+ Télécharger le guide complet pour plus d'informations
+
+
} +
 
+ +
+
+
+ +
+ + + ) + +} + +export default DistplayPartnerTraningsPage_FI; \ No newline at end of file diff --git a/src/components/Module_ENT_Absence.js b/src/components/Module_ENT_Absence.js index b6f04d2..f21dd4c 100644 --- a/src/components/Module_ENT_Absence.js +++ b/src/components/Module_ENT_Absence.js @@ -1500,7 +1500,7 @@ const Module_ENT_Absence = (props) => { {String(display_view) === "planning" &&
  - {Get_ENT_Apprenant_Total_Heure_Absence_result && } +
{ } } - //console.log(" ### form = ", form) + console.log(" ### form = ", form) // return; @@ -700,7 +700,7 @@ const Module_Email_Management = (props) => { - {Dialog_1_message} + Gestion Email @@ -736,52 +736,63 @@ const Module_Email_Management = (props) => {
-
Gestion Email
-
Choisir un modèle de courrier - {New_Get_Partner_List_SendEmail_Document_result && +
- options={New_Get_Partner_List_SendEmail_Document_result} +
+ Choisir un modèle de courrier +
+
- onChange={(event, value) => { + {New_Get_Partner_List_SendEmail_Document_result && { + + if (value && value._id) { + setselected_courrier_template_id(value._id); + var msg = "Vous allez modifier le coprs de l'email ! "; + setDialog_1_message(msg); + setDialog_1_open(true); + } else { + setselected_courrier_template_id(""); + var msg = "Vous allez modifier le coprs de l'email ! "; + setDialog_1_message(msg); + setDialog_1_open(true); + } + + }} + + renderInput={(params) => + } + />} +
+
- renderInput={(params) => - } - />}
@@ -806,7 +817,8 @@ const Module_Email_Management = (props) => {
-
+ +
CC
@@ -828,27 +840,8 @@ const Module_Email_Management = (props) => {
-
-
- BCC -
-
- { - setemail_bcc(String(e.target.value).replaceAll(";", ",")); - - } - } - /> -
-
@@ -870,36 +863,51 @@ const Module_Email_Management = (props) => { } />
+ + {props.related_collection && ['inscription', 'apprenant', 'contact'].includes(props.related_collection) &&
+ + + + } + label="Client en CC" + sx={{ + color: "#104277", + fontWeight: 600, + fontFamily:'DM Sans', + fontSize:'10px' + }} + /> + + } + label="Tuteur en CC" + + sx={{ + color: "#104277", + fontWeight: 600, + fontFamily:'DM Sans', + fontSize:'10px' + }} + /> + + +
} +
- {props.related_collection && ['inscription', 'apprenant', 'contact'].includes(props.related_collection) &&
- - - - } - label="Client en CC" - /> - - } - label="Tuteur en CC" - /> - - -
} @@ -921,7 +929,7 @@ const Module_Email_Management = (props) => { }} init={{ resize: false, - height: 400, + height: 300, menubar: true, plugins: [ 'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', diff --git a/src/components/Module_Ent_Internal_Email_Management.js b/src/components/Module_Ent_Internal_Email_Management.js index f396e03..50adfbb 100644 --- a/src/components/Module_Ent_Internal_Email_Management.js +++ b/src/components/Module_Ent_Internal_Email_Management.js @@ -374,7 +374,8 @@ const Module_Ent_Internal_Email_Management = (props) => { Clear_Detail_internal_email_Fields(); Clear_One_Detail_internal_email_Fields(); setgridline_id(""); - props.Get_Nb_Unread_Emails(); + if (props.Get_Nb_Unread_Emails) + props.Get_Nb_Unread_Emails(); sethandleClick_Delete_Internal_Mail_api("true"); @@ -470,7 +471,7 @@ const Module_Ent_Internal_Email_Management = (props) => { setLoading(false); if (String(res.data.status) === String("true")) { //console.log(" In Get_All_Connected_User_Email res.data.status = " + res.data.status); - // console.log(" In Get_All_Connected_User_Email res.data.message r_class = " + res.data.message); + // console.log(" In Get_All_Connected_User_Email res.data.message r_class = " + res.data.message); setGet_All_Connected_User_Email_api("true"); setGet_All_Connected_User_Email_result(res.data.message); } @@ -529,7 +530,7 @@ const Module_Ent_Internal_Email_Management = (props) => { var node = { "_id": local_id, "id": localid, - "label": local_prenom+" "+local_nom+" <"+local_email+">", + "label": local_prenom + " " + local_nom + " <" + local_email + ">", "nom": local_nom, "prenom": local_prenom, "email": local_email, @@ -620,8 +621,8 @@ const Module_Ent_Internal_Email_Management = (props) => { useEffect(() => { - Get_All_Connected_User_Email(); - Get_All_Internal_Destinataire_Emails(); + Get_All_Connected_User_Email(); + Get_All_Internal_Destinataire_Emails(); }, []) @@ -710,15 +711,15 @@ const Module_Ent_Internal_Email_Management = (props) => { form.append("token", stored_cookie); form.append("internal_mail_id", local_selected_email_id); - var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Internal_Mail/"; + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_ENT_Given_Internal_Mail/"; setLoading(true); axios.post(myurl, form).then(res => { if (String(res.data.status) === "true") { //console.log(" In Get_Given_Email_Data res.data.status = " + res.data.status); - // console.log(" In Get_Given_Email_Data res.data.message r_class = " + res.data.message); - // console.log(" In Get_Given_Email_Data res.data.message len = " + String(res.data.message).length); + console.log(" In Get_Given_Email_Data res.data.message r_class = " + res.data.message); + console.log(" In Get_Given_Email_Data res.data.message len = " + String(res.data.message).length); setLoading(false); setGet_Given_Email_Data_api("true"); @@ -797,7 +798,7 @@ const Module_Ent_Internal_Email_Management = (props) => { }); } - props.Get_Nb_Unread_Emails(); + Get_Nb_Unread_Emails(); if (email_envoye_recu === "1") { Get_All_Connected_Sent_User_Email(); @@ -1508,7 +1509,7 @@ const Module_Ent_Internal_Email_Management = (props) => { } - var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Message_To_Internal_Mail/"; + var myurl = process.env.REACT_APP_API_URL + "myclass/api/From_ENT_Update_Message_To_Internal_Mail/"; axios.post(myurl, form).then(res => { setLoading(false); @@ -1528,7 +1529,7 @@ const Module_Ent_Internal_Email_Management = (props) => { setalert_message(res.data.message); setalert_type("success"); - // props.Get_Nb_Unread_Emails(); + // props.Get_Nb_Unread_Emails(); window.scrollTo({ top: 0, @@ -1722,19 +1723,19 @@ const Module_Ent_Internal_Email_Management = (props) => { }} renderInput={(params) => @@ -1823,19 +1824,19 @@ const Module_Ent_Internal_Email_Management = (props) => { }} renderInput={(params) => @@ -1975,14 +1976,14 @@ const Module_Ent_Internal_Email_Management = (props) => { }, "& .MuiDataGrid-columnHeaders": { - backgroundColor: "#dfe8f2", - color: "#0a2a4d", - fontSize: '14px', - fontFamily:'DM Sans', + backgroundColor: "#dfe8f2", + color: "#0a2a4d", + fontSize: '14px', + fontFamily: 'DM Sans', }, '& .line--statut--selected': { - backgroundColor: '#e9f7f1', + backgroundColor: '#e9f7f1', color: '#0a2a4d', }, @@ -1996,12 +1997,12 @@ const Module_Ent_Internal_Email_Management = (props) => { }, '& .line--statut--not_read': { backgroundColor: '#FFFFFF', - color: "#0a2a4d", + color: "#0a2a4d", fontWeight: '600' }, '& .line--statut--read': { backgroundColor: '#FFFFFF', - color: "#0a2a4d", + color: "#0a2a4d", fontWeight: '400' }, @@ -2009,23 +2010,23 @@ const Module_Ent_Internal_Email_Management = (props) => { '& .line--statut--pair_not_read': { backgroundColor: 'rgba(235, 235, 235, .7)', - color: "#0a2a4d", + color: "#0a2a4d", fontWeight: '600' }, '& .line--statut--pair--read': { backgroundColor: 'rgba(235, 235, 235, .7)', - color: "#0a2a4d", + color: "#0a2a4d", fontWeight: '400' }, '& .line--statut--impair_not_read': { backgroundColor: '#FFFFFF', - color: "#0a2a4d", + color: "#0a2a4d", fontWeight: '600' }, '& .line--statut--impair--read': { backgroundColor: '#FFFFFF', - color: "#0a2a4d", + color: "#0a2a4d", fontWeight: '400' }, @@ -2073,7 +2074,7 @@ const Module_Ent_Internal_Email_Management = (props) => { setdisplay_internal_email("1") setselected_id(newSelectionModel.row._id); setgridline_id(newSelectionModel.row.id); - Get_Given_Email_Data(newSelectionModel.row._id); + Get_Given_Email_Data(newSelectionModel.row._id); }} @@ -2158,20 +2159,20 @@ const Module_Ent_Internal_Email_Management = (props) => { }} renderInput={(params) => @@ -2384,8 +2385,8 @@ const Module_Ent_Internal_Email_Management = (props) => { height: 600, menubar: true, plugins: [ - 'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', - 'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', + 'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', + 'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks', ], @@ -2462,10 +2463,10 @@ const Module_Ent_Internal_Email_Management = (props) => {
-
+
Envoyer à
- {(!reply_email || reply_email !== "1") &&
+ {(!reply_email || reply_email !== "1") &&
{ }} renderInput={(params) => @@ -2503,7 +2504,7 @@ const Module_Ent_Internal_Email_Management = (props) => { />
} - {reply_email && reply_email === "1" &&
+ {reply_email && reply_email === "1" &&
{
-
Sujet +
Sujet
-
+
{ height: 600, menubar: true, plugins: [ - 'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', - 'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', + 'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', + 'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'code', 'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks', ], @@ -2598,7 +2599,7 @@ const Module_Ent_Internal_Email_Management = (props) => {
-
+
@@ -2746,7 +2747,7 @@ const Module_Ent_Internal_Email_Management = (props) => {
-
+