08/12/2024 - 12h
parent
353228ba89
commit
3cb154f5bb
|
@ -1664,7 +1664,7 @@ const AddClassManual = (props) => {
|
|||
}
|
||||
/// zzzz
|
||||
|
||||
console.log(" ### titre = ", p_detail_title);
|
||||
// console.log(" ### titre = ", p_detail_title);
|
||||
|
||||
var title = p_detail_title;
|
||||
if (String(title).length > title_limite) {
|
||||
|
@ -3201,7 +3201,8 @@ const AddClassManual = (props) => {
|
|||
const [submenu, setsubmenu] = useState("");
|
||||
|
||||
function submenu_color_management(current_menu) {
|
||||
const list_sous_menu = ["detail_formation", "unite_enseignement", "admission", "piece_jointe", "note_evaluation", "historique"]
|
||||
const list_sous_menu = ["detail_formation", "unite_enseignement", "admission", "piece_jointe", "note_evaluation",
|
||||
"historique", "aide_ia"]
|
||||
|
||||
for (let i = 0; i < list_sous_menu.length; i++) {
|
||||
|
||||
|
@ -3252,6 +3253,11 @@ const AddClassManual = (props) => {
|
|||
submenu_color_management("piece_jointe");
|
||||
}
|
||||
|
||||
function submenu_aide_ia() {
|
||||
setsubmenu("aide_ia");
|
||||
submenu_color_management("aide_ia");
|
||||
}
|
||||
|
||||
|
||||
function submenu_statistiques() {
|
||||
setsubmenu("statistiques");
|
||||
|
@ -3802,9 +3808,19 @@ const AddClassManual = (props) => {
|
|||
function function_of_text_replacement_ia(text_result) {
|
||||
if (fiels_of_text_replacement_ia === "description")
|
||||
setfield_description(text_result);
|
||||
|
||||
else if (fiels_of_text_replacement_ia === "objectif")
|
||||
setfield_objectif(text_result)
|
||||
|
||||
else if (fiels_of_text_replacement_ia === "programme")
|
||||
setfield_programme(text_result)
|
||||
|
||||
else if (fiels_of_text_replacement_ia === "prerequis")
|
||||
setfield_prerequis(text_result)
|
||||
|
||||
else if (fiels_of_text_replacement_ia === "plusproduit")
|
||||
setfield_plus_produit(text_result)
|
||||
|
||||
|
||||
DataUpdated();
|
||||
}
|
||||
|
@ -3818,7 +3834,6 @@ const AddClassManual = (props) => {
|
|||
|
||||
{/*** GESTION IA */}
|
||||
<Dialog
|
||||
|
||||
open={Dialog_mysy_ia_open}
|
||||
className="displaypartnersession"
|
||||
|
||||
|
@ -4261,6 +4276,12 @@ const AddClassManual = (props) => {
|
|||
<Button variant="outlined" onClick={submenu_statistiques} className="detail_class_submenu" id='statistiques' name='statistiques'>Statistiques </Button>
|
||||
{String(history_securite_read) === "1" && <Button variant="outlined" onClick={submenu_historique} className="detail_class_submenu" id='historique' name='historique'>Historique </Button>}
|
||||
|
||||
<Button variant="outlined" onClick={submenu_aide_ia} className="detail_class_submenu" id='aide_ia' name='piece_jointe'
|
||||
> <font style={{ "color": "#A52A2A" }}> Assistant IA </font>
|
||||
<AutoFixHighOutlinedIcon style={{ "color": "#A52A2A", fontWeight: "700" }} />
|
||||
</Button>
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
{String(props.formation_initiale) !== "1" &&
|
||||
|
@ -5464,6 +5485,55 @@ const AddClassManual = (props) => {
|
|||
write_access={props.write_access} />
|
||||
</div>}
|
||||
|
||||
{submenu && String(submenu) === "aide_ia" && <div>
|
||||
|
||||
<div style={{ height: 550, width: '100%', paddingRight: '10px', paddingLeft: '10px' }}>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
height: 500,
|
||||
width: '100%',
|
||||
paddingRight: '5px',
|
||||
paddingLeft: '5px',
|
||||
|
||||
"& .MuiDataGrid-columnHeaders": {
|
||||
backgroundColor: "#c8cfd5",
|
||||
color: "black",
|
||||
fontSize: 14
|
||||
},
|
||||
|
||||
|
||||
'& .line--statut--selected': {
|
||||
backgroundColor: '#FBF2EF',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--pair': {
|
||||
backgroundColor: 'rgba(235, 235, 235, .7)',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--impair': {
|
||||
backgroundColor: '#FFFFFF',
|
||||
color: 'black',
|
||||
}, [`& .${gridClasses.cell}`]: {
|
||||
py: 1,
|
||||
},
|
||||
|
||||
}}
|
||||
>
|
||||
|
||||
<MySyIA champ_text_input={""} function_replace_text={""} close_function={""} />
|
||||
|
||||
|
||||
|
||||
</Box>
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
</div>}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -5604,7 +5674,7 @@ const AddClassManual = (props) => {
|
|||
onClick={(e) => {
|
||||
|
||||
const regex = /(<([^>]+)>)/gi;
|
||||
var initial_text_no_html = field_description.replace(regex, " ");
|
||||
var initial_text_no_html = editorRef_description.current.getContent().replace(regex, " ");
|
||||
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
|
||||
return "&#" + chr.charCodeAt(0) + ";";
|
||||
});
|
||||
|
@ -5660,7 +5730,7 @@ const AddClassManual = (props) => {
|
|||
onClick={(e) => {
|
||||
|
||||
const regex = /(<([^>]+)>)/gi;
|
||||
var initial_text_no_html = field_objectif.replace(regex, " ");
|
||||
var initial_text_no_html = editorRef_objectif.current.getContent().replace(regex, " ");
|
||||
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
|
||||
return "&#" + chr.charCodeAt(0) + ";";
|
||||
});
|
||||
|
@ -5673,8 +5743,6 @@ const AddClassManual = (props) => {
|
|||
</nav>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<Editor
|
||||
onInit={(evt, editor) => editorRef_objectif.current = editor}
|
||||
|
@ -5706,7 +5774,33 @@ const AddClassManual = (props) => {
|
|||
|
||||
<div className="training_text">
|
||||
<div className="plus_produit_desabled">
|
||||
<div className="titre_training_text"> Programme (max 1000 caractères) </div>
|
||||
<div className="titre_training_text" style={{ "width": "100%", "float": "left" }}>
|
||||
<nav className="nav_descrip_champs" > Programme (max 1000 caractères) </nav>
|
||||
|
||||
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
|
||||
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
|
||||
|
||||
<nav className="nav_ia">
|
||||
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
|
||||
onClick={(e) => {
|
||||
|
||||
const regex = /(<([^>]+)>)/gi;
|
||||
|
||||
var initial_text_no_html = editorRef_programme.current.getContent().replace(regex, " ");
|
||||
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
|
||||
return "&#" + chr.charCodeAt(0) + ";";
|
||||
});
|
||||
|
||||
|
||||
setfiels_of_text_replacement_ia("programme");
|
||||
settext_for_ia(initial_text_no_html);
|
||||
setDialog_mysy_ia_open(true);
|
||||
}} />
|
||||
|
||||
</nav>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<Editor
|
||||
onInit={(evt, editor) => editorRef_programme.current = editor}
|
||||
initialValue={field_programme}
|
||||
|
@ -5834,7 +5928,30 @@ const AddClassManual = (props) => {
|
|||
|
||||
<div className="training_text">
|
||||
<div className="plus_produit_desabled">
|
||||
<div className="titre_training_text"> Pré-requis</div>
|
||||
<div className="titre_training_text" style={{ "width": "100%", "float": "left" }}>
|
||||
<nav className="nav_descrip_champs" > Pré-requis </nav>
|
||||
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
|
||||
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
|
||||
|
||||
<nav className="nav_ia">
|
||||
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
|
||||
onClick={(e) => {
|
||||
|
||||
const regex = /(<([^>]+)>)/gi;
|
||||
var initial_text_no_html = editorRef_prerequis.current.getContent().replace(regex, " ");
|
||||
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
|
||||
return "&#" + chr.charCodeAt(0) + ";";
|
||||
});
|
||||
|
||||
setfiels_of_text_replacement_ia("prerequis")
|
||||
settext_for_ia(initial_text_no_html);
|
||||
setDialog_mysy_ia_open(true);
|
||||
}} />
|
||||
|
||||
</nav>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<Editor
|
||||
onInit={(evt, editor) => editorRef_prerequis.current = editor}
|
||||
initialValue={field_prerequis}
|
||||
|
@ -5927,7 +6044,30 @@ const AddClassManual = (props) => {
|
|||
|
||||
<div className="training_text">
|
||||
<div className="plus_produit_desabled">
|
||||
<div className="titre_training_text"> Plus produit</div>
|
||||
<div className="titre_training_text" style={{ "width": "100%", "float": "left" }}>
|
||||
<nav className="nav_descrip_champs" > Plus produit </nav>
|
||||
|
||||
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
|
||||
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
|
||||
|
||||
<nav className="nav_ia">
|
||||
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
|
||||
onClick={(e) => {
|
||||
|
||||
const regex = /(<([^>]+)>)/gi;
|
||||
var initial_text_no_html = editorRef_plus_produit.current.getContent().replace(regex, " ");
|
||||
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
|
||||
return "&#" + chr.charCodeAt(0) + ";";
|
||||
});
|
||||
|
||||
setfiels_of_text_replacement_ia("plusproduit")
|
||||
settext_for_ia(initial_text_no_html);
|
||||
setDialog_mysy_ia_open(true);
|
||||
}} />
|
||||
|
||||
</nav>
|
||||
</a>
|
||||
</div>
|
||||
<Editor
|
||||
onInit={(evt, editor) => editorRef_plus_produit.current = editor}
|
||||
initialValue={field_plus_produit}
|
||||
|
|
|
@ -3468,7 +3468,7 @@ const AddParnerClient = (props) => {
|
|||
|
||||
|
||||
</Button>
|
||||
<Button variant="outlined" onClick={submenu_activite} className="detail_submenu client_menu" id='submenu_activite' name='submenu_activite'>Activité</Button>
|
||||
{/*<Button variant="outlined" onClick={submenu_activite} className="detail_submenu client_menu" id='submenu_activite' name='submenu_activite'>Activité</Button>*/}
|
||||
<Button variant="outlined" onClick={submenu_piece_jointe} className="detail_submenu client_menu" id='submenu_piece_jointe' name='submenu_piece_jointe'>Pièces Jointes</Button>
|
||||
|
||||
<Button variant="outlined" className="detail_submenu client_menu" id='submenu_factures' name='submenu_factures'
|
||||
|
|
|
@ -53,6 +53,51 @@ import {
|
|||
} from '@mui/x-data-grid';
|
||||
import * as XLSX from 'xlsx';
|
||||
|
||||
import { makeStyles } from "@material-ui/core/styles";
|
||||
import Paper from '@material-ui/core/Paper';
|
||||
import Draggable from 'react-draggable';
|
||||
import AutoFixHighOutlinedIcon from '@mui/icons-material/AutoFixHighOutlined';
|
||||
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';
|
||||
|
||||
function PaperComponent(props) {
|
||||
return (
|
||||
<Draggable
|
||||
handle="#draggable-dialog-title"
|
||||
cancel={'[class*="MuiDialogContent-root"]'}
|
||||
>
|
||||
<Paper {...props} />
|
||||
</Draggable>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
|
||||
dialog: {
|
||||
position: 'absolute',
|
||||
// left: 10,
|
||||
top: 400
|
||||
},
|
||||
|
||||
paper: {
|
||||
overflowY: 'unset',
|
||||
},
|
||||
customizedButton: {
|
||||
position: 'absolute',
|
||||
left: '98%',
|
||||
top: '-3%',
|
||||
backgroundColor: 'lightgray',
|
||||
color: 'gray',
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
|
||||
const DistplayPartnerTraningsPage = (props) => {
|
||||
|
||||
|
@ -407,6 +452,52 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
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',
|
||||
'Pub. E-Learning',
|
||||
'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 columns = [
|
||||
{ field: 'id', headerName: 'id', hide: true, maxWidth: 1, disableExport: true, },
|
||||
{ field: '_id', headerName: '_id', hide: true, maxWidth: 1, disableExport: true, },
|
||||
|
@ -429,9 +520,6 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
{ field: 'categorie', headerName: 'Catégorie', minWidth: 100, flex: 1, maxWidth: 200, hideable: true, hide: true, editable: false, renderCell: (params) => <Display_Colunm_text {...params} />, },
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{
|
||||
field: 'nb_session_formation', headerName: 'Nb Session', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center",
|
||||
renderCell: (cellValues) => {
|
||||
|
@ -452,7 +540,7 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
|
||||
onClick={(event) => {
|
||||
window.open(
|
||||
process.env.REACT_APP_FRONT_URL + "Partner/mes_sessions/class/"+String(cellValues.row.internal_url),
|
||||
process.env.REACT_APP_FRONT_URL + "Partner/mes_sessions/class/" + String(cellValues.row.internal_url),
|
||||
'_blank'
|
||||
);
|
||||
}}
|
||||
|
@ -469,8 +557,6 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
|
||||
);
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
|
||||
|
||||
|
@ -499,24 +585,7 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
);
|
||||
},
|
||||
},
|
||||
/*{
|
||||
field: "management", headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<Button style={{ "marginLeft": "auto", "marginRight": "auto", "cursor": "pointer" }}
|
||||
|
||||
onClick={(event) => {
|
||||
handleClickManagement(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<BsFileText />
|
||||
|
||||
</Button>
|
||||
|
||||
);
|
||||
}
|
||||
},*/
|
||||
{
|
||||
field: "visual", headerName: 'Visualiser', minWidth: 50, flex: 1, maxWidth: 100, disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
|
@ -535,52 +604,318 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
);
|
||||
}
|
||||
},
|
||||
/* {
|
||||
field: "Print", headerName: 'Editer', minWidth: 50, flex: 1, maxWidth: 100, disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<Button style={{ "marginLeft": "auto", "marginRight": "auto", "cursor": "pointer" }}
|
||||
|
||||
onClick={(event) => {
|
||||
handleClick(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<AiOutlineEdit />
|
||||
|
||||
</Button>
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
field: "push_to_lms", headerName: 'E-learning Creation', minWidth: 100, flex: 1, maxWidth: 150, disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<nav style={{ "textAlign": "center" }}>
|
||||
<Popup
|
||||
trigger={
|
||||
<Button style={{ "marginLeft": "auto", "marginRight": "auto", "cursor": "pointer", "textAlign": "center" }}
|
||||
|
||||
onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
}}
|
||||
>
|
||||
|
||||
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length > 2 && <CiFileOff />}
|
||||
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length <= 2 && <CiDesktop />}
|
||||
{!cellValues.row.lms_class_code && <CiDesktop />}
|
||||
|
||||
</Button>}
|
||||
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
/!\ Important : Confirmer la publication de la formation dans l'eapce E-Learning.
|
||||
Vous allez écraser d'eventuelles informations déjà présente dans le e-Learning, pour cette formation.
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
</nav>
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
{
|
||||
field: "delete", headerName: 'Supprimer', minWidth: 50, flex: 1, maxWidth: 100, disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
onClick={(event) => {
|
||||
// handleClick_delete(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<CiTrash />
|
||||
|
||||
</Button>}
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, la formation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
Avant, assurez-vous de n'avoir aucune session rattachée à la formation.
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_delete(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
|
||||
|
||||
);
|
||||
}
|
||||
},*/
|
||||
{
|
||||
field: "Print", headerName: 'Editer', minWidth: 50, flex: 1, maxWidth: 100, disableExport: true,
|
||||
field: 'bton_vertif', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center",
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<Button style={{ "marginLeft": "auto", "marginRight": "auto", "cursor": "pointer" }}
|
||||
<nav style={{ width: '100%', 'textAlign': 'center' }}>
|
||||
<IconButton
|
||||
aria-label="more"
|
||||
id="long-button"
|
||||
aria-controls={open ? 'long-menu' : undefined}
|
||||
aria-expanded={open ? 'true' : undefined}
|
||||
aria-haspopup="true"
|
||||
onClick={handleClick_option_button_vertical}
|
||||
>
|
||||
<MoreVertIcon />
|
||||
</IconButton>
|
||||
<Menu
|
||||
id="long-menu"
|
||||
MenuListProps={{
|
||||
'aria-labelledby': 'long-button',
|
||||
}}
|
||||
anchorEl={anchorEl}
|
||||
open={open}
|
||||
onClose={handleClose_option_button_vertical}
|
||||
slotProps={{
|
||||
paper: {
|
||||
style: {
|
||||
maxHeight: ITEM_HEIGHT * 4.5,
|
||||
width: '20ch',
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
borderRadius: '0px !important',
|
||||
lineHeight: '3rem'
|
||||
},
|
||||
},
|
||||
}}
|
||||
>
|
||||
{options_menu_vertical.map((option) => (
|
||||
<MenuItem key={option}
|
||||
|
||||
onClick={(event) => {
|
||||
handleClick(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<AiOutlineEdit />
|
||||
onClick={(e) => {
|
||||
//handleClose_option_button_vertical(e, option);
|
||||
setAnchorEl(null);
|
||||
|
||||
</Button>
|
||||
if (option && String(option) === "Supprimer") {
|
||||
setdialogOpen_supp(true);
|
||||
}
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
else if (option && String(option) === "Editer") {
|
||||
handleClick(e, cellValues);
|
||||
}
|
||||
|
||||
{
|
||||
field: "push_to_lms", headerName: 'E-learning Creation', minWidth: 100, flex: 1, maxWidth: 150, disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<nav style={{ "textAlign": "center" }}>
|
||||
<Popup
|
||||
trigger={
|
||||
<Button style={{ "marginLeft": "auto", "marginRight": "auto", "cursor": "pointer", "textAlign": "center" }}
|
||||
else if (option && String(option) === "Pub. E-Learning") {
|
||||
setdialogOpen_push_lms(true);
|
||||
}
|
||||
|
||||
else if (option && String(option) === "Visualiser") {
|
||||
Visualiser(e, cellValues);
|
||||
}
|
||||
|
||||
onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
}}
|
||||
>
|
||||
{option}
|
||||
</MenuItem>
|
||||
))}
|
||||
</Menu>
|
||||
|
||||
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length > 2 && <CiFileOff />}
|
||||
{cellValues.row.lms_class_code && String(cellValues.row.lms_class_code).length <= 2 && <CiDesktop />}
|
||||
{!cellValues.row.lms_class_code && <CiDesktop />}
|
||||
{/*** GESTION Dialog menu item pour suppression */}
|
||||
{dialogOpen_supp && <Dialog
|
||||
open={dialogOpen_supp}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
</Button>}
|
||||
PaperProps={{
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
// position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
{close => (
|
||||
|
||||
<DialogContent className="DialogContent_width">
|
||||
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
<button className="gest_close" onClick={Dialog_menuitem_close_supp}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, la formation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
Avant, assurez-vous de n'avoir aucune session rattachée à la formation.
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_delete(event, cellValues);
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
console.log('modal closed ');
|
||||
Dialog_menuitem_close_supp();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
</DialogActions>
|
||||
|
||||
|
||||
</Dialog>}
|
||||
{/*** FIN GESTION Dialog menu item pour suppression*/}
|
||||
|
||||
|
||||
{/*** GESTION Dialog menu item pour push lms */}
|
||||
{dialogOpen_push_lms && <Dialog
|
||||
open={dialogOpen_push_lms}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => null}
|
||||
|
||||
PaperProps={{
|
||||
className: classes.paper, // Apply the paper style
|
||||
style: {
|
||||
overflowY: 'unset',
|
||||
// position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
boxShadow: "-3px 4px 0px -30px #000000",
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
disableScrollLock
|
||||
classes={{
|
||||
paper: classes.dialog
|
||||
}}
|
||||
|
||||
PaperComponent={PaperComponent}
|
||||
aria-labelledby="draggable-dialog-title"
|
||||
>
|
||||
|
||||
<DialogContent className="DialogContent_width">
|
||||
|
||||
<div>
|
||||
<button className="gest_close" onClick={Dialog_menuitem_close_push_lms}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
|
@ -589,12 +924,12 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
|
||||
/!\ Important : Confirmer la publication de la formation dans l'eapce E-Learning.
|
||||
Vous allez écraser d'eventuelles informations déjà présente dans le e-Learning, pour cette formation.
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handlepush_to_lms(event, cellValues);
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
|
@ -602,8 +937,8 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
console.log('modal closed ');
|
||||
Dialog_menuitem_close_push_lms();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
|
@ -611,78 +946,35 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
</DialogActions>
|
||||
|
||||
|
||||
</Dialog>}
|
||||
{/*** FIN GESTION Dialog menu item pour push lms*/}
|
||||
|
||||
|
||||
</nav>
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
field: "delete", headerName: 'Supprimer', minWidth: 50, flex: 1, maxWidth: 100, disableExport: true,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
|
||||
onClick={(event) => {
|
||||
// handleClick_delete(event, cellValues);
|
||||
}}
|
||||
>
|
||||
<CiTrash />
|
||||
|
||||
</Button>}
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, la formation sera <i><font color="red"> définitivement supprimée</font></i>. <br />
|
||||
Avant, assurez-vous de n'avoir aucune session rattachée à la formation.
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
handleClick_delete(event, cellValues);
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
|
||||
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
]
|
||||
|
||||
const [dialogOpen_supp, setdialogOpen_supp] = useState(false);
|
||||
const Dialog_menuitem_close_supp = () => {
|
||||
setdialogOpen_supp(false)
|
||||
};
|
||||
|
||||
|
||||
|
||||
const [dialogOpen_push_lms, setdialogOpen_push_lms] = useState(false);
|
||||
const Dialog_menuitem_close_push_lms = () => {
|
||||
setdialogOpen_push_lms(false)
|
||||
};
|
||||
|
||||
|
||||
function Visualiser(event, cellValues) {
|
||||
|
||||
|
@ -1470,9 +1762,7 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
|
||||
|
||||
function handleClick_delete(event, cellValues) {
|
||||
|
||||
var local_class_id = cellValues.row._id;
|
||||
|
||||
Delete_Class(local_class_id);
|
||||
}
|
||||
|
||||
|
@ -1921,6 +2211,7 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
}
|
||||
|
||||
// FIN EXPORT EXCEL DATAGRID
|
||||
const classes = useStyles();
|
||||
|
||||
return (
|
||||
|
||||
|
@ -1932,8 +2223,27 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
|
||||
<Dialog
|
||||
open={Dialog_formation_open}
|
||||
onClose={Dialog_formation_handleClose}
|
||||
className="displaypartnersession"
|
||||
static
|
||||
onClose={() => 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"
|
||||
>
|
||||
|
||||
<DialogTitle>Info Formation</DialogTitle>
|
||||
|
@ -2044,6 +2354,16 @@ const DistplayPartnerTraningsPage = (props) => {
|
|||
</DialogContent>
|
||||
|
||||
<DialogActions>
|
||||
|
||||
<IconButton
|
||||
autoFocus
|
||||
onClick={Dialog_formation_handleClose_buton}
|
||||
color="primary"
|
||||
className={classes.customizedButton}
|
||||
>
|
||||
<CancelPresentationIcon />
|
||||
</IconButton>
|
||||
|
||||
<div className="div_row">
|
||||
<div className="div_row_gauche">
|
||||
<Button onClick={Show_Detailled_formation_Data} className="bton_enreg_dialog">Voir détail</Button>
|
||||
|
|
|
@ -265,7 +265,7 @@ const Module_IA = (props) => {
|
|||
|
||||
|
||||
return (
|
||||
<div className="moduleia">
|
||||
<div className="moduleia" >
|
||||
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
|
@ -287,7 +287,7 @@ const Module_IA = (props) => {
|
|||
</div>
|
||||
<div className="div_row">
|
||||
<div className="div_row" style={{ "textAlign": 'left' }}>
|
||||
<b> Texte Article </b>
|
||||
<b> Votre texte </b>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -311,9 +311,7 @@ const Module_IA = (props) => {
|
|||
|
||||
|
||||
</div>
|
||||
<div className="div_row">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div className="div_row">
|
||||
<ul className="ul_bouton">
|
||||
|
@ -328,16 +326,14 @@ const Module_IA = (props) => {
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="div_row">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div className="div_row" style={{ "textAlign": 'left' }}>
|
||||
<b> Résultat </b>
|
||||
</div>
|
||||
<div className="div_row" >
|
||||
|
||||
{/* <Editor
|
||||
{/* <Editor
|
||||
id="detail_document_resultat"
|
||||
name="detail_document_resultat"
|
||||
onInit={(evt, editor) => editorRef_texte_resultat.current = editor}
|
||||
|
@ -387,11 +383,11 @@ const Module_IA = (props) => {
|
|||
</div>
|
||||
|
||||
<div className="div_row">
|
||||
<div style={{ width: '45%', float: 'left', textAlign: 'left' }}> <Button className="li_button"
|
||||
{String(formulaire_parent) === "1" && <div style={{ width: '45%', float: 'left', textAlign: 'left' }}> <Button className="li_button"
|
||||
onClick={(e) => {
|
||||
accept_replace();
|
||||
}}
|
||||
> <FcAcceptDatabase style={{ fontSize: '15px' }} /> Accepter et remplacer</Button> </div>
|
||||
> <FcAcceptDatabase style={{ fontSize: '15px' }} /> Accepter et remplacer</Button> </div>}
|
||||
|
||||
|
||||
<div style={{ width: '45%', float: 'right', marginRight: "5px", textAlign: 'right' }}> <Button className="li_button"
|
||||
|
|
|
@ -1075,10 +1075,6 @@ const TestUrl_New = (props) => {
|
|||
setColumnVisibilityModel(newModel);
|
||||
}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -76,6 +76,8 @@
|
|||
width: 100%;
|
||||
margin-bottom: 1rem;
|
||||
border-radius: 1rem;
|
||||
border: none;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.div_row_dialog {
|
||||
|
@ -492,6 +494,8 @@
|
|||
width: 100%;
|
||||
|
||||
border-radius: 1rem;
|
||||
border: none;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.div_row_dialog {
|
||||
|
@ -774,6 +778,7 @@
|
|||
font-weight: 500;
|
||||
line-height: 2.25rem;
|
||||
padding-top: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.li_button {
|
||||
|
@ -1255,6 +1260,8 @@
|
|||
width: 100%;
|
||||
//margin-bottom: 1rem;
|
||||
border-radius: 1rem;
|
||||
border: none;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.div_row_dialog {
|
||||
|
@ -1521,6 +1528,7 @@
|
|||
font-weight: 500;
|
||||
line-height: 2.25rem;
|
||||
padding-top: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.li_button {
|
||||
|
@ -1600,6 +1608,8 @@
|
|||
width: 100%;
|
||||
margin-bottom: 1rem;
|
||||
border-radius: 1rem;
|
||||
border: none;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
|
||||
|
@ -2191,6 +2201,7 @@
|
|||
font-weight: 500;
|
||||
line-height: 2.25rem;
|
||||
padding-top: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.li_button {
|
||||
|
@ -2270,6 +2281,8 @@
|
|||
width: 100%;
|
||||
//margin-bottom: 1rem;
|
||||
border-radius: 1rem;
|
||||
border: none;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.div_row_dialog {
|
||||
|
@ -3037,6 +3050,7 @@
|
|||
font-weight: 500;
|
||||
line-height: 2.25rem;
|
||||
padding-top: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.li_button {
|
||||
|
|
|
@ -754,7 +754,7 @@
|
|||
}
|
||||
|
||||
.div_mobile {
|
||||
position: absolute;
|
||||
// position: absolute;
|
||||
top: 8.5rem;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
|
@ -1260,7 +1260,7 @@
|
|||
}
|
||||
|
||||
.div_mobile {
|
||||
position: absolute;
|
||||
// position: absolute;
|
||||
top: 8.5rem;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
|
@ -1741,7 +1741,7 @@
|
|||
}
|
||||
|
||||
.div_mobile {
|
||||
position: absolute;
|
||||
// position: absolute;
|
||||
top: 8.5rem;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
|
|
Loading…
Reference in New Issue