123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- import * as React from 'react';
- import {
- EditSharp,
- MailSharp,
- } from '@mui/icons-material'
- import {
- // descendingComparator,
- rows,
- action_icon,
- Comparar,
- Cuerpo,
- TableHeader as EnhancedTableHead,
- TableEncabezadoOperation
- } from '../Components/Password/config.js';
- import {
- Table, TableBody, TableCell, TableContainer,
- TableRow, TablePagination,
- Paper, Box, Switch, FormControlLabel,
- Checkbox,
- // TableSortLabel,TableHead,Card
- } from '@mui/material';
- import { Row, Col, Container } from 'react-bootstrap';
- export function Contras() {
- const [order, setOrder] = React.useState('asc');
- const [orderBy, setOrderBy] = React.useState('calories');
- const [selected, setSelected] = React.useState([]);
- const [page, setPage] = React.useState(0);
- const [dense, setDense] = React.useState(false);
- const [rowsPerPage, setRowsPerPage] = React.useState(10);
- const handleRequestSort = (_event, property) => {
- const isAsc = orderBy === property && order === 'asc';
- setOrder(isAsc ? 'desc' : 'asc');
- setOrderBy(property);
- };
- const handleSelectAllClick = (event) => {
- if (event.target.checked) {
- const newSelecteds = rows.map( (n) => n.name);
- setSelected(newSelecteds);
- return;
- }
- setSelected([]);
- };
- const handleClick = (__event, name) => {
- const selectedIndex = selected.indexOf(name);
- let newSelected = [];
- if (selectedIndex === -1) {
- newSelected = newSelected.concat(selected, name);
- } else if (selectedIndex === 0) {
- newSelected = newSelected.concat(selected.slice(1));
- } else if (selectedIndex === selected.length - 1) {
- newSelected = newSelected.concat(selected.slice(0, -1));
- } else if (selectedIndex > 0) {
- newSelected = newSelected.concat(
- selected.slice(0, selectedIndex),
- selected.slice(selectedIndex + 1),
- );
- }
- setSelected(newSelected);
- };
- const handleChangePage = (_event, newPage) => {
- setPage(newPage);
- };
- const handleChangeRowsPerPage = (event) => {
- setRowsPerPage(parseInt(event.target.value, 10));
- setPage(0);
- };
- const handleChangeDense = (event) => {
- setDense(event.target.checked);
- };
- const isSelected = (name) => selected.indexOf(name) !== -1;
- const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;
- return (
- <div className="content-section">
- <div className="main">
- <Container>
- <Row>
- <Col>
- <Box sx={{ width: '100%' }}>
- <Paper sx={{ width: '100%', mb: 2 }}>
- <TableEncabezadoOperation numSelected={selected.length} />
- <TableContainer>
- <Table
- sx={{ minWidth: 750 }}
- aria-labelledby="tableTitle"
- size={dense ? 'small' : 'medium'}
- >
- <EnhancedTableHead
- numSelected={selected.length}
- order={order}
- orderBy={orderBy}
- onSelectAllClick={handleSelectAllClick}
- onRequestSort={handleRequestSort}
- rowCount={rows.length}
- />
- <TableBody>
- {Cuerpo(rows, Comparar(order, orderBy))
- .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)
- .map( (row, index) => {
- const isItemSelected = isSelected(row.name);
- const labelId = `enhanced-table-checkbox-${index}`;
- return (
- <TableRow
- hover
- onClick={(event) => handleClick(event, row.name)}
- role="checkbox"
- aria-checked={isItemSelected}
- tabIndex={-1}
- key={row.name}
- selected={isItemSelected}
- >
- <TableCell padding="checkbox">
- <Checkbox
- color="primary"
- checked={isItemSelected}
- inputProps={{
- 'aria-labelledby': labelId,
- }}
- />
- </TableCell>
- <TableCell
- component="th"
- id={labelId}
- scope="row"
- padding="none"
- >
- {row.pass}
- </TableCell>
- <TableCell align="right">{row.nivel}</TableCell>
- <TableCell align="right">{row.puesto}</TableCell>
- <TableCell align="right">{row.cui}</TableCell>
- <TableCell align="right">{row.uso}</TableCell>
- <TableCell align="right">{row.picture}</TableCell>
- <TableCell align="right">{row.cv}</TableCell>
- <TableCell align="right">{row.replic}</TableCell>
- <TableCell align="right">
- <EditSharp style={action_icon} />
- <MailSharp style={action_icon}/>
- </TableCell>
- </TableRow>
- );
- })}
- {emptyRows > 0 && (
- <TableRow
- style={{
- height: (dense ? 33 : 53) * emptyRows,
- }}
- >
- <TableCell colSpan={6} />
- </TableRow>
- )}
- </TableBody>
- </Table>
- </TableContainer>
- <TablePagination
- rowsPerPageOptions={[5, 10, 25]}
- component="div"
- count={rows.length}
- rowsPerPage={rowsPerPage}
- page={page}
- onPageChange={handleChangePage}
- onRowsPerPageChange={handleChangeRowsPerPage}
- />
- </Paper>
- <FormControlLabel
- control={<Switch checked={dense} onChange={handleChangeDense} />}
- label="Comprimir"
- />
- </Box>
- </Col>
- </Row>
- </Container>
- </div>
- </div>
- );
- }
|