qsdsq
parent
9795ff1e2a
commit
fd4325c09c
|
@ -133,6 +133,7 @@
|
|||
"react-md-spinner": "^1.0.0",
|
||||
"react-meta-tags": "^1.0.1",
|
||||
"react-multi-carousel": "^2.8.2",
|
||||
"react-native-country-flag": "^2.0.2",
|
||||
"react-native-paper": "^4.9.2",
|
||||
"react-native-web": "^0.17.5",
|
||||
"react-paginate": "^8.1.1",
|
||||
|
@ -27299,6 +27300,11 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-country-flag": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/react-native-country-flag/-/react-native-country-flag-2.0.2.tgz",
|
||||
"integrity": "sha512-5LMWxS79ZQ0Q9ntYgDYzWp794+HcQGXQmzzZNBR1AT7z5HcJHtX7rlk8RHi7RVzfp5gW6plWSZ4dKjRpu/OafQ=="
|
||||
},
|
||||
"node_modules/react-native-iphone-x-helper": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
|
||||
|
@ -55530,6 +55536,11 @@
|
|||
"resolved": "https://registry.npmjs.org/react-multi-carousel/-/react-multi-carousel-2.8.2.tgz",
|
||||
"integrity": "sha512-M9Y7DfAp8bA/r6yexttU6RLA7uyppje4c0ELRuCHZWswH+u7nr0uVP6qHNPjc4XGOEY1MYFOb5nBg7JvoKutuQ=="
|
||||
},
|
||||
"react-native-country-flag": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/react-native-country-flag/-/react-native-country-flag-2.0.2.tgz",
|
||||
"integrity": "sha512-5LMWxS79ZQ0Q9ntYgDYzWp794+HcQGXQmzzZNBR1AT7z5HcJHtX7rlk8RHi7RVzfp5gW6plWSZ4dKjRpu/OafQ=="
|
||||
},
|
||||
"react-native-iphone-x-helper": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
|
||||
|
|
|
@ -128,6 +128,7 @@
|
|||
"react-md-spinner": "^1.0.0",
|
||||
"react-meta-tags": "^1.0.1",
|
||||
"react-multi-carousel": "^2.8.2",
|
||||
"react-native-country-flag": "^2.0.2",
|
||||
"react-native-paper": "^4.9.2",
|
||||
"react-native-web": "^0.17.5",
|
||||
"react-paginate": "^8.1.1",
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 122 B |
|
@ -4472,7 +4472,7 @@ const Jury = (props) => {
|
|||
id="detail_jury_observation"
|
||||
aria-label="minimum height"
|
||||
minRows={3}
|
||||
maxRows={4}
|
||||
maxRows={5}
|
||||
//placeholder="Minimum 3 rows"
|
||||
style={{
|
||||
border: "1px solid gainsboro", width: '99%', padding: '2px',
|
||||
|
@ -5241,7 +5241,7 @@ const Jury = (props) => {
|
|||
<DialogContentText>
|
||||
|
||||
</DialogContentText>
|
||||
zzzzz
|
||||
|
||||
<div className="titre1"> Créneau </div>
|
||||
<div style={{ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', alignItems: 'center', flexWrap: 'wrap' }}>
|
||||
|
||||
|
@ -5423,9 +5423,7 @@ const Jury = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
<div className="titre1"> Salles & Materiels </div>
|
||||
|
||||
<div> Reservation Salle et materiel à faire </div>
|
||||
|
||||
<div className="titre1"> Apprenants </div>
|
||||
|
||||
|
@ -6351,20 +6349,7 @@ const Jury = (props) => {
|
|||
},
|
||||
|
||||
|
||||
// gestion couleur des lignes avec le statut d'inscription
|
||||
'& .line--statut--annule': {
|
||||
backgroundColor: '#D8D8D8',
|
||||
color: 'white',
|
||||
},
|
||||
|
||||
'& .line--statut--inscrit': {
|
||||
backgroundColor: '#CEF6D8',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--preinscrit': {
|
||||
backgroundColor: '#F7F2E0',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
"& .MuiDataGrid-columnHeaders": {
|
||||
backgroundColor: "#c8cfd5",
|
||||
|
@ -8681,11 +8666,12 @@ const Jury = (props) => {
|
|||
id="detail_soutenance_observation"
|
||||
aria-label="minimum height"
|
||||
|
||||
maxRows={10}
|
||||
minRows={3}
|
||||
maxRows={5}
|
||||
//placeholder="Minimum 3 rows"
|
||||
style={{
|
||||
border: "1px solid gainsboro", width: '99%', padding: '2px',
|
||||
maxHeight: '15rem', height: '10rem', minHeight: '10rem', marginBottom: '3rem'
|
||||
maxHeight: '15rem', height: '5rem', minHeight: '5rem', marginBottom: '3rem'
|
||||
}}
|
||||
value={p_detail_soutenance_observation}
|
||||
|
||||
|
@ -8748,11 +8734,11 @@ const Jury = (props) => {
|
|||
id="detail_soutenance_observation"
|
||||
aria-label="minimum height"
|
||||
minRows={3}
|
||||
maxRows={4}
|
||||
maxRows={5}
|
||||
//placeholder="Minimum 3 rows"
|
||||
style={{
|
||||
border: "1px solid gainsboro", width: '99%', padding: '2px',
|
||||
maxHeight: '15rem', height: '10rem', minHeight: '10rem', marginBottom: '3rem'
|
||||
maxHeight: '10rem', height: '5rem', minHeight: '5rem', marginBottom: '3rem'
|
||||
}}
|
||||
value={p_detail_soutenance_observation}
|
||||
onChange={(e) => {
|
||||
|
|
|
@ -38,6 +38,16 @@ import { IconButton } from '@material-ui/core';
|
|||
import MoreVertIcon from '@mui/icons-material/MoreVert';
|
||||
import Menu from '@mui/material/Menu';
|
||||
import MenuItem from '@mui/material/MenuItem';
|
||||
import {
|
||||
GridToolbarContainer, GridToolbarExport, GridToolbarColumnsButton,
|
||||
GridToolbarFilterButton, GridToolbarDensitySelector, GridToolbarExportContainer, useGridApiContext,
|
||||
gridFilteredSortedRowIdsSelector,
|
||||
gridVisibleColumnFieldsSelector,
|
||||
GridValueGetterParams,
|
||||
GridPreferencePanelsValue,
|
||||
|
||||
} from '@mui/x-data-grid';
|
||||
import * as XLSX from 'xlsx';
|
||||
|
||||
function PaperComponent(props) {
|
||||
return (
|
||||
|
@ -1754,6 +1764,115 @@ const Module_Session_Notes_Classement = (props) => {
|
|||
})
|
||||
}
|
||||
|
||||
// DEBUT EXPORT EXCEL DATAGRID
|
||||
|
||||
function CustomToolbar(props) {
|
||||
|
||||
|
||||
return (
|
||||
<GridToolbarContainer {...props}>
|
||||
|
||||
<GridToolbarColumnsButton />
|
||||
<GridToolbarFilterButton />
|
||||
<GridToolbarDensitySelector
|
||||
slotProps={{ tooltip: { title: 'Change density' } }}
|
||||
/>
|
||||
<Box sx={{ flexGrow: 1 }} />
|
||||
<ExportButton data_colums={props.data_colums} />
|
||||
|
||||
|
||||
</GridToolbarContainer>
|
||||
);
|
||||
}
|
||||
|
||||
function getExcelData(apiRef) {
|
||||
// Select rows and columns
|
||||
const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
|
||||
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
|
||||
|
||||
// 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 (
|
||||
<GridToolbarExportContainer {...props}>
|
||||
<ExportMenuItem data_colums={props.data_colums} />
|
||||
</GridToolbarExportContainer>
|
||||
);
|
||||
}
|
||||
|
||||
function handleExport(apiRef, data_colums) {
|
||||
const data = getExcelData(apiRef);
|
||||
const visibleColumnsField = gridVisibleColumnFieldsSelector(apiRef);
|
||||
|
||||
|
||||
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 (
|
||||
<MenuItem
|
||||
onClick={() => {
|
||||
handleExport(apiRef, props.data_colums);
|
||||
// Hide the export menu after the export
|
||||
hideMenu?.();
|
||||
}}
|
||||
>
|
||||
Export Excel
|
||||
</MenuItem>
|
||||
);
|
||||
}
|
||||
|
||||
// FIN EXPORT EXCEL DATAGRID
|
||||
|
||||
const [vue_note, setvue_note] = useState("classement");
|
||||
|
||||
|
@ -1824,11 +1943,11 @@ const Module_Session_Notes_Classement = (props) => {
|
|||
id="detail_jury_observation"
|
||||
aria-label="minimum height"
|
||||
minRows={3}
|
||||
maxRows={4}
|
||||
maxRows={5}
|
||||
//placeholder="Minimum 3 rows"
|
||||
style={{
|
||||
border: "1px solid gainsboro", width: '99%', padding: '2px',
|
||||
maxHeight: '15rem', height: '10rem', minHeight: '10rem', marginBottom: '3rem'
|
||||
maxHeight: '10rem', height: '5rem', minHeight: '5rem', marginBottom: '3rem'
|
||||
}}
|
||||
value={p_detail_jury_observation}
|
||||
onChange={(e) => {
|
||||
|
@ -2019,6 +2138,10 @@ const Module_Session_Notes_Classement = (props) => {
|
|||
setadd_One_Employee();*/
|
||||
}
|
||||
}}
|
||||
|
||||
|
||||
|
||||
|
||||
selectionModel={selectionModel_note_Session_classement}
|
||||
|
||||
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
|
||||
|
@ -2054,9 +2177,14 @@ const Module_Session_Notes_Classement = (props) => {
|
|||
|
||||
rowsPerPageOptions={[10]}
|
||||
disableSelectionOnClick
|
||||
components={{
|
||||
/* components={{
|
||||
Toolbar: GridToolbar,
|
||||
}}*/
|
||||
|
||||
components={{
|
||||
Toolbar: CustomToolbar
|
||||
}}
|
||||
componentsProps={{ toolbar: { data_colums: columns_list_session_note_classement_final } }}
|
||||
//sx={datagridSx}
|
||||
|
||||
|
||||
|
@ -2569,9 +2697,14 @@ const Module_Session_Notes_Classement = (props) => {
|
|||
|
||||
rowsPerPageOptions={[10]}
|
||||
disableSelectionOnClick
|
||||
components={{
|
||||
/* components={{
|
||||
Toolbar: GridToolbar,
|
||||
}}*/
|
||||
|
||||
components={{
|
||||
Toolbar: CustomToolbar
|
||||
}}
|
||||
componentsProps={{ toolbar: { data_colums: columns_list_evaluation_note_classement_final } }}
|
||||
//sx={datagridSx}
|
||||
getCellClassName={(params) => {
|
||||
|
||||
|
@ -2754,9 +2887,14 @@ const Module_Session_Notes_Classement = (props) => {
|
|||
|
||||
rowsPerPageOptions={[10]}
|
||||
disableSelectionOnClick
|
||||
components={{
|
||||
/* components={{
|
||||
Toolbar: GridToolbar,
|
||||
}}*/
|
||||
|
||||
components={{
|
||||
Toolbar: CustomToolbar
|
||||
}}
|
||||
componentsProps={{ toolbar: { data_colums: columns_list_evaluation_detail_note_classement_final } }}
|
||||
//sx={datagridSx}
|
||||
getCellClassName={(params) => {
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
|
||||
|
||||
const FrenchSolution = ({ width = 162, height = 120 }) => {
|
||||
const containerStyle = {
|
||||
width: width,
|
||||
|
@ -38,7 +40,7 @@ const FrenchSolution = ({ width = 162, height = 120 }) => {
|
|||
<div style={containerStyle}>
|
||||
<div className="FrenchSolution_block_containerStyle">Solutions</div>
|
||||
<div className="FrenchSolution_block_percentageStyle">100%</div>
|
||||
<div className="FrenchSolution_block_frenchStyle">française 🇫🇷</div>
|
||||
<div className="FrenchSolution_block_frenchStyle">française <img src="/img/fr_flag.png" alt="France" style={{height:'15px', width:'24px', borderRadius:'1px' }}/> </div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
|
|
@ -4,21 +4,12 @@ import "./new_homepage.css";
|
|||
import { Helmet } from "react-helmet";
|
||||
import WhyUsLayout from './WhyUsLayout.js';
|
||||
import LogoCloud from './LogoCloud.js';
|
||||
import VisionSection from './VisionSection.js';
|
||||
import KeyMetrics from './KeyMetrics.js';
|
||||
import Features from './Features.js';
|
||||
import AboutUsSection from './block_stat/AboutUsSection.js';
|
||||
import FrenchSolution from './FrenchSolution.js';
|
||||
import CommentMarche from './CommentMarche.js';
|
||||
import New_C_Tatif_Section from "../tarif_section_automatic_files/PricingSection"
|
||||
|
||||
import GO_Entreprise_Img from "../../mysy_img/mysy_training_landscape.png";
|
||||
|
||||
import Banniere_mysy_goent from "../../mysy_img/Banniere_mysy_goent.png";
|
||||
import Banniere_mysy_goent_mobile from "../../mysy_img/cherif_balde_landscape.png";
|
||||
import Banniere_mysy_goent_mobile2 from "../../mysy_img/landscape.png";
|
||||
|
||||
|
||||
const New_C_A_Propos_2025 = (props) => {
|
||||
|
||||
useEffect(() => {
|
||||
|
@ -49,7 +40,8 @@ const New_C_A_Propos_2025 = (props) => {
|
|||
</div>
|
||||
|
||||
<div className="title_and_cat_title_text2">
|
||||
Toutes les fonctionnalités dont vous avez besoin, au meilleur prix 🇫🇷
|
||||
Toutes les fonctionnalités dont vous avez besoin, au meilleur prix <img src="/img/fr_flag.png" alt="France" style={{height:'15px',
|
||||
width:'24px', borderRadius:'1px' }}/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -86,7 +78,7 @@ const New_C_A_Propos_2025 = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
<div className="fonctionnalite_Background_bannier_event">
|
||||
{/* <div className="fonctionnalite_Background_bannier_event">
|
||||
<div style={{ width: '100%' }}>
|
||||
<div className="bannier_event">
|
||||
<nav className="LogoCloud_h2" style={{ width: '100%' }}
|
||||
|
@ -132,7 +124,7 @@ const New_C_A_Propos_2025 = (props) => {
|
|||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>*/}
|
||||
|
||||
|
||||
<div className="fonctionnalite_Background_home_page_img_saas">
|
||||
|
|
|
@ -1882,7 +1882,7 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: normal;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
|
@ -2599,7 +2599,7 @@
|
|||
text-align: center;
|
||||
margin-bottom: 0.8rem;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
cursor: normal;
|
||||
font-style: italic;
|
||||
background-color: gray;
|
||||
font-weight: normal;
|
||||
|
|
Loading…
Reference in New Issue