recette2
cherif 2024-08-10 21:39:35 +02:00
parent 08f6967cb3
commit d4fd15bbd2
8 changed files with 3165 additions and 21 deletions

31
package-lock.json generated
View File

@ -127,6 +127,7 @@
"react-native-web": "^0.17.5",
"react-paginate": "^8.1.1",
"react-pdf": "^7.7.1",
"react-pick-color": "^2.0.0",
"react-player": "^2.10.0",
"react-pro-sidebar": "^1.1.0",
"react-range": "^1.8.12",
@ -26371,6 +26372,18 @@
"node": ">=6"
}
},
"node_modules/react-pick-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/react-pick-color/-/react-pick-color-2.0.0.tgz",
"integrity": "sha512-GLYyUN1k60cxkrizqRDqfmCBNP6vJZDam5TfCMMxgxPjNul9zmunAZAJ8x9wy1yMb1NqMa/MI2np7oDQLCEbDg==",
"dependencies": {
"tinycolor2": "^1.4.1"
},
"peerDependencies": {
"react": ">=16.8.0",
"react-dom": ">=16.8.0"
}
},
"node_modules/react-player": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/react-player/-/react-player-2.11.0.tgz",
@ -31278,6 +31291,11 @@
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"node_modules/tinycolor2": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
"integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
},
"node_modules/tinymce": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/tinymce/-/tinymce-7.1.2.tgz",
@ -53550,6 +53568,14 @@
}
}
},
"react-pick-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/react-pick-color/-/react-pick-color-2.0.0.tgz",
"integrity": "sha512-GLYyUN1k60cxkrizqRDqfmCBNP6vJZDam5TfCMMxgxPjNul9zmunAZAJ8x9wy1yMb1NqMa/MI2np7oDQLCEbDg==",
"requires": {
"tinycolor2": "^1.4.1"
}
},
"react-player": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/react-player/-/react-player-2.11.0.tgz",
@ -57352,6 +57378,11 @@
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"tinycolor2": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
"integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
},
"tinymce": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/tinymce/-/tinymce-7.1.2.tgz",

View File

@ -122,6 +122,7 @@
"react-native-web": "^0.17.5",
"react-paginate": "^8.1.1",
"react-pdf": "^7.7.1",
"react-pick-color": "^2.0.0",
"react-player": "^2.10.0",
"react-pro-sidebar": "^1.1.0",
"react-range": "^1.8.12",

View File

@ -40,7 +40,7 @@ import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import ColorPicker from 'react-pick-color';
import Visibility from '@mui/icons-material/Visibility';
import VisibilityOff from '@mui/icons-material/VisibilityOff';
import { Fab } from "@material-ui/core";
@ -69,7 +69,7 @@ import Draggable from 'react-draggable';
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'fixed',
position: 'absolute',
// left: 10,
top: 400
},
@ -1156,6 +1156,7 @@ const Groupe_Apprenant = (props) => {
setdisplay_grp_apprenant("");
setselected_id("");
setgridline_id("");
setp_detail_color("#33b8ff")
setadd_one_grp_apprenant("1");
setsubmenu("detail_groupe");
@ -1304,6 +1305,12 @@ const Groupe_Apprenant = (props) => {
setp_detail_description("");
}
if (mylocal_groupe.color) {
setp_detail_color(mylocal_groupe.color);
} else {
setp_detail_color("");
}
if (mylocal_groupe.comment) {
setp_detail_comment(mylocal_groupe.comment);
} else {
@ -1406,6 +1413,7 @@ const Groupe_Apprenant = (props) => {
const [p_detail_class_internal_url, setp_detail_class_internal_url] = React.useState("");
const [p_detail_session_id, setp_detail_session_id] = React.useState("");
const [p_detail_type_groupe_code, setp_detail_type_groupe_code] = React.useState("");
const [p_detail_color, setp_detail_color] = React.useState("#33b8ff");
const [p_detail_nb_grp_auto, setp_detail_nb_grp_auto] = React.useState("");
const [p_detail_split_type_auto, setp_detail_split_type_auto] = React.useState("");
@ -1423,6 +1431,7 @@ const Groupe_Apprenant = (props) => {
setp_detail_class_id("");
setp_detail_session_id("");
setp_detail_type_groupe_code("");
setp_detail_color("");
}
@ -1443,6 +1452,7 @@ const Groupe_Apprenant = (props) => {
form.append("type_groupe_code", p_detail_type_groupe_code);
form.append("class_id", p_detail_class_id);
form.append("session_id", p_detail_session_id);
form.append("color", p_detail_color);
@ -1955,15 +1965,15 @@ const Groupe_Apprenant = (props) => {
if (String(res.data.status) === String("true")) {
setAutomatic_Split_Membre_No_Grp_Creation_api("true");
setAutomatic_Split_Membre_No_Grp_Creation_result(res.data.message);
Disable_Grp_Apprenant_DetailFields();
setgrp_apprenant_data_changed("");
setgrp_apprenant_data_edit_mode("");
setSelectionModel([]);
clear_DetailFieds();
Dialog_GRP_AUTOMATIC_handleClose_buton();
Getall_Partner_Groupe_Inscrit();
alert(res.data.message);
@ -2111,19 +2121,37 @@ const Groupe_Apprenant = (props) => {
//setOpen(false);
};
const [Dialog_GRP_COLOR_message, setDialog_GRP_COLOR_message] = React.useState(false);
const [Dialog_GRP_COLOR_open, setDialog_GRP_COLOR_open] = React.useState(false);
const Dialog_GRP_COLOR_handleClose = () => {
//alert(" Utiliser le bouton 'fermer' ");
//setOpen(false);
};
const Dialog_GRP_COLOR_handleClose_buton = () => {
setDialog_GRP_COLOR_open(false);
};
return (
<div className="groupe_apprenant">
<div className="groupe_apprenant" style={{ position: 'absolute' }}>
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{/*** Dialog GROUPE AUTOMATIC */}
{/*** Dialog pickup Color */}
<Dialog
open={Dialog_GRP_AUTOMATIC_open}
// onClose={Dialog_GRP_AUTOMATIC_handleClose}
open={Dialog_GRP_COLOR_open}
// onClose={Dialog_GRP_COLOR_handleClose}
className="displaypartnersession"
static
onClose={() => null}
@ -2142,7 +2170,89 @@ const Groupe_Apprenant = (props) => {
classes={{
paper: classes.dialog
}}
className="groupe_apprenant_dialog mysy_MuiPaper-root"
>
<DialogTitle> Choisir une couleur</DialogTitle>
<DialogContent className="DialogContent_color_pickup_width" >
<DialogContentText>
</DialogContentText>
<div className="session_caract"> Code couleur <br />
<ColorPicker
color="#3573CB"
theme={{
background: 'lightgrey',
inputBackground: 'grey',
borderColor: 'darkgrey',
borderRadius: '8px',
color: 'black',
width: '100px'
}}
name="detail_grp_color"
id="detail_grp_color"
onChange={(color) => {
setp_detail_color(color.hex);
setgrp_apprenant_data_changed("1");
}
}
/>
</div>
</DialogContent>
<DialogActions>
<IconButton
autoFocus
onClick={Dialog_GRP_COLOR_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
</DialogActions>
</Dialog>
{/*** Fin ajout pickup Color */}
{/*** Dialog GROUPE AUTOMATIC */}
<Dialog
open={Dialog_GRP_AUTOMATIC_open}
// onClose={Dialog_GRP_AUTOMATIC_handleClose}
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
//top: '5rem'
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
className="groupe_apprenant_dialog mysy_MuiPaper-root"
>
@ -3084,6 +3194,13 @@ const Groupe_Apprenant = (props) => {
</div>
<div className="session_caract"> Code couleur &nbsp;
<nav className="disabled_style" style={{ backgroundColor: p_detail_color, borderRadius:'10px' , paddingTop:'5px'}}
> &nbsp; </nav>
</div>
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
@ -3273,6 +3390,14 @@ const Groupe_Apprenant = (props) => {
</div>
<div className="session_caract"> Code couleur &nbsp;
<nav className="disabled_style" style={{ backgroundColor: p_detail_color, cursor:'pointer', borderRadius:'10px' , paddingTop:'5px'}} onClick={(event, value) => {
setDialog_GRP_COLOR_open(true)
}}
> &nbsp; Choisir une couleur </nav>
</div>
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
@ -3503,15 +3628,21 @@ const Groupe_Apprenant = (props) => {
</div>
<div className="session_caract"> Code couleur &nbsp;
<nav className="disabled_style" style={{ backgroundColor: p_detail_color, cursor:'pointer', borderRadius:'10px' , paddingTop:'5px'}} onClick={(event, value) => {
setDialog_GRP_COLOR_open(true)
}}
> &nbsp; Choisir une couleur </nav>
</div>
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
</div>
<div className="div_row" style={{ "border": "None" }}>
&nbsp;
</div>
</div>
<div className="div_row" style={{ "border": "None" }}>

View File

@ -74,8 +74,37 @@ import FormLabel from '@mui/material/FormLabel';
import allLocales from '@fullcalendar/core/locales-all'
import listPlugin from '@fullcalendar/list';
import multiMonthPlugin from '@fullcalendar/multimonth'
import { makeStyles } from "@material-ui/core/styles";
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
import { IconButton } from '@material-ui/core';
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'absolute',
// left: 10,
top: 400
},
paper: {
overflowY: 'unset',
},
customizedButton: {
position: 'absolute',
left: '95%',
top: '-9%',
backgroundColor: 'lightgray',
color: 'gray',
},
}));
const Module_Session_Planification = (props) => {
const classes = useStyles();
const history = useHistory();
const [submenu, setsubmenu] = useState("");
const [rowss, setRows] = useState([]);
@ -1334,6 +1363,7 @@ const Module_Session_Planification = (props) => {
setDialog_seq_ressource_1_selected_type_ressource("");
setDialog_seq_ressource_1_selected_ressource_id("");
setDialog_seq_ressource_1_selected_ressource_poste("");
setselected_sequence_id("");
}
function Dialog_1_handle_change_participant_session(message) {
@ -1699,6 +1729,8 @@ const Module_Session_Planification = (props) => {
}
function submenu_add_one_sequence() {
setselected_sequence_id("");
setupdate_sequence();
setp_detail_sequence_title("");
@ -1794,11 +1826,14 @@ const Module_Session_Planification = (props) => {
if (arg.event.extendedProps.local_grp_apprenant_id) {
setp_detail_sequence_groupe_apprenant_id(arg.event.extendedProps.local_grp_apprenant_id);
//console.log(" ## arg.event.extendedProps.local_grp_apprenant_id = ", arg.event.extendedProps.local_grp_apprenant_id)
}
else
setp_detail_sequence_groupe_apprenant_id("");
if (arg.event.extendedProps.local_objectif) {
setp_detail_sequence_objectif(arg.event.extendedProps.local_objectif);
}
@ -2574,6 +2609,11 @@ const Module_Session_Planification = (props) => {
}
function submenu_sequence_ressource() {
if (!selected_sequence_id || String(selected_sequence_id).length < 3) {
alert("Vous devez créer la séquence avant d'ajouter des ressources ");
return;
}
setsubmenu_seq_dialog("dialog_ressource");
}
@ -2595,9 +2635,27 @@ const Module_Session_Planification = (props) => {
open={Dialog_seq_1_open}
//onClose={Dialog_seq_1_handleClose}
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
//top: '5rem'
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
className="displaypartnersession mysy_MuiPaper-root"
>
<DialogTitle>
@ -2612,19 +2670,31 @@ const Module_Session_Planification = (props) => {
{Dialog_seq_1_message}
</DialogContentText>
{<div className="session_caract_Dialog" style={{ textAlign: 'right' }} >
<Button variant="outlined" onClick={submenu_sequence_detail} className="detail_class_submenu" id='dialog_detail_seq_detail'
name='dialog_detail_seq_detail'>Détail</Button>
<Button variant="outlined" onClick={submenu_sequence_ressource} className="detail_class_submenu" id='dialog_detail_seq_ressource'
name='dialog_detail_seq_ressource'>Ressouces</Button>
{String(selected_sequence_id).length <= 3 &&
<Button variant="outlined" onClick={submenu_sequence_ressource} className="detail_class_submenu" id='dialog_detail_seq_ressource'
name='dialog_detail_seq_ressource' style={{ background: "grey", border: "None" }}>
<Tooltip className="tooltip_css" id="tooltip_ress01" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="tooltip_ress01" data-tooltip-html="Vous devez créer la séquence avant d'ajouter des ressources">
Ressouces
</a>
</Button>}
{String(selected_sequence_id).length > 3 &&
<Button variant="outlined" onClick={submenu_sequence_ressource} className="detail_class_submenu" id='dialog_detail_seq_ressource'
name='dialog_detail_seq_ressource'>Ressouces</Button>}
</div>}
{String(submenu_seq_dialog) === "dialog_ressource" && <div>
{New_Option_Type_Ressource && New_Option_Type_Ressource.length > 1 && <div className="session_caract_Dialog" > Type de ressource
<Autocomplete
disablePortal
@ -3140,10 +3210,37 @@ const Module_Session_Planification = (props) => {
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Close_Dialog_Detail_seq_open} className="bton_annule_dialog" >Fermer</Button>
</div>
</div>
<IconButton
autoFocus
onClick={Close_Dialog_Detail_seq_open}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
</DialogActions>}
{String(submenu_seq_dialog) === "dialog_ressource" && <DialogActions>
<IconButton
autoFocus
onClick={Close_Dialog_Detail_seq_open}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
</DialogActions>}

View File

@ -2804,13 +2804,16 @@
position: absolute !important;
}
.css-zw3mfo-MuiModal-root-MuiDialog-root {
position: absolute !important;
}
}
.MuiModal-root {
position: absolute !important;
// position: absolute !important;
}
.MuiMenu-paper {

View File

@ -2370,7 +2370,18 @@
}
}
.css-zw3mfo-MuiModal-root-MuiDialog-root {
position: absolute;
z-index: 3300;
right: 0;
bottom: 0;
top: 0;
left: 0;
}
}
.session_caract_Dialog_comment_2_lines {
@ -2477,7 +2488,9 @@
}
.MuiModal-root {
position: absolute !important;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -118,4 +118,5 @@
@import "./components/moduleselectionapprenants";
@import "./components/emarge_qr_code";
@import "./components/partner_product_service";
@import "./components/module_email_management";
@import "./components/module_email_management";
@import "./components/groupe_apprenant_dialog";