08/12/2024 - 12h

recette2
cherif 2024-12-08 12:05:26 +01:00
parent 353228ba89
commit 3cb154f5bb
7 changed files with 621 additions and 155 deletions

View File

@ -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> &nbsp;
<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' }}>
&nbsp;
<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) &nbsp; </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 &nbsp; </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 &nbsp; </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}

View File

@ -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'

View File

@ -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}>
&times;
</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}>
&times;
</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}>
&times;
</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}>
&times;
</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}>
&times;
</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>

View File

@ -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">
&nbsp;
</div>
<div className="div_row">
<ul className="ul_bouton">
@ -328,16 +326,14 @@ const Module_IA = (props) => {
</ul>
</div>
<div className="div_row">
&nbsp;
</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' }} /> &nbsp; Accepter et remplacer</Button> </div>
> <FcAcceptDatabase style={{ fontSize: '15px' }} /> &nbsp; Accepter et remplacer</Button> </div>}
<div style={{ width: '45%', float: 'right', marginRight: "5px", textAlign: 'right' }}> <Button className="li_button"

View File

@ -1075,10 +1075,6 @@ const TestUrl_New = (props) => {
setColumnVisibilityModel(newModel);
}}
/>
</div>

View File

@ -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 {

View File

@ -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%;