Skip to content

Commit

Permalink
Aumentando telas do admin e fazendo alteração na listagem de questões.
Browse files Browse the repository at this point in the history
  • Loading branch information
rodrigoborgesmachado committed Feb 2, 2024
1 parent 71c3c3e commit 49488a8
Show file tree
Hide file tree
Showing 6 changed files with 411 additions and 11 deletions.
16 changes: 16 additions & 0 deletions src/components/Navbar/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,12 @@ const ResponsiveAppBar = () => {
navigate('/usuarios', {replace: true});
}

function abreTelaHistoricoTabuadaDivertida(){
handleCloseAdminMenu();
handleCloseNavMenu();
navigate('/historicotabuadadivertida', {replace: true});
}

return (
<AppBar position="static" className='varBarResponsive'>
<div className='conNav'>
Expand Down Expand Up @@ -355,6 +361,11 @@ const ResponsiveAppBar = () => {
Lista todas questões
</Typography>
</MenuItem>
<MenuItem onClick={(e) => abreTelaHistoricoTabuadaDivertida()}>
<Typography textAlign="center">
Histórico Tabuada Divertida
</Typography>
</MenuItem>
</Menu>
</>
))}
Expand Down Expand Up @@ -486,6 +497,11 @@ const ResponsiveAppBar = () => {
Lista todas questões
</Typography>
</MenuItem>
<MenuItem onClick={(e) => abreTelaHistoricoTabuadaDivertida()}>
<Typography textAlign="center">
Histórico Tabuada Divertida
</Typography>
</MenuItem>
</Menu>
</>
))}
Expand Down
137 changes: 131 additions & 6 deletions src/pages/Admin/DashBoard/DashBoard.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,33 @@ function DashBoard(){
const navigate = useNavigate();
const [dados, setDados] = useState({});
const [loadding, setLoadding] = useState(true);
const[questoes, setQuestoes] = useState([])
const [questoes, setQuestoes] = useState([])
const [provas, setProvas] = useState([])
const [modalQuestoesIsOpen, setModalQuestoesIsOpen] = useState(false);
const [modalProvasIsOpen, setModalProvasIsOpen] = useState(false);
const [page, setPage] = useState(1);
const [quantity, setQuantity] = useState(1);
const [quantityQuestoes, setQuantityQuestoes] = useState(1);
const [quantityProvas, setQuantityProvas] = useState(1);
const [quantityPerPage] = useState(8);

function openModalQuestoes() {
setPage(1);
setModalQuestoesIsOpen(true);
}

function closeModalQuestoes() {
setModalQuestoesIsOpen(false);
}

function openModalProvas() {
setPage(1);
setModalProvasIsOpen(true);
}

function closeModalProvas() {
setModalProvasIsOpen(false);
}

async function buscaDados() {
if (!localStorage.getItem(Config.TOKEN)) {
toast.info('Necessário logar para acessar!');
Expand All @@ -55,7 +69,8 @@ function DashBoard(){
await api.get('/Admin/analysis')
.then((response) => {
setDados(response.data.object);
setQuantity(response.data.object.quantidadeQuestoesSolicitadasRevisao);
setQuantityQuestoes(response.data.object.quantidadeQuestoesSolicitadasRevisao);
setQuantityProvas(response.data.object.quantidadeProvasDesativasAtivas);
setLoadding(false);
}).catch(() => {
toast.error('Erro ao buscar os dados');
Expand All @@ -77,6 +92,19 @@ function DashBoard(){
});
}

async function buscaProvasParaRevisao(){
await api.get('/Admin/provaspararevisao?page=' + page + '&quantity=' + quantityPerPage)
.then((response) => {
setProvas(response.data.object);
setLoadding(false);
openModalProvas();
}).catch(() => {
toast.error('Erro ao buscar os dados');
navigate('/', { replace: true });
return;
});
}

useEffect(() => {

buscaDados();
Expand All @@ -90,12 +118,23 @@ function DashBoard(){
navigate('/questoes/codigoquestaolistagem:' + codigoQuestao, {replace: true});
}

function abreProva(codigoProva){
navigate('/listagemquestoes/' + codigoProva, {replace: true});
}


const handleChange = (event, value) => {
setPage(value);
setLoadding(true);
buscaQuestoesParaRevisao(value);
};

const handleChangeProva = (event, value) => {
setPage(value);
setLoadding(true);
buscaProvasParaRevisao(value);
};

if (loadding) {
return (
<div className='loaddingDiv'>
Expand Down Expand Up @@ -170,15 +209,95 @@ function DashBoard(){
</div>
<div className='itensPaginacao global-mt'>
{
quantity > 0 ?
quantityQuestoes > 0 ?
<Stack spacing={4}>
<Pagination sx={{
'& .Mui-selected': {
color: 'white'},
'& .MuiPaginationItem-root': {
color: 'white',

}}} count={parseInt(Math.ceil(quantity / quantityPerPage))} page={parseInt(page)} color="primary" showFirstButton showLastButton onChange={handleChange} />
}}} count={parseInt(Math.ceil(quantityQuestoes / quantityPerPage))} page={parseInt(page)} color="primary" showFirstButton showLastButton onChange={handleChange} />
</Stack>
:
<>
</>
}
</div>
</Modal>
<Modal
isOpen={modalProvasIsOpen}
onRequestClose={closeModalProvas}
style={customStyles}
contentLabel="Filtro"
>
<div className='contextModal'>
<div className='bodymodal'>
<h3>Provas em revisão</h3>
</div>
<div className="separator separator--withMargins"></div>
<div>
<Table>
<thead>
<tr>
<th>
Código
</th>
<th>
Nome
</th>
<th>
Banca
</th>
<th>
Created
</th>
</tr>
</thead>
<tbody>
{
provas.map((item, index) => {
return(
<tr key={item}>
<td className='option'>
<h4 onClick={() => abreProva(item.id)}>
<a>✏️{item.id}</a>
</h4>
</td>
<td>
<h4>
{item.nomeProva}
</h4>
</td>
<td>
<h4>
{item.banca}
</h4>
</td>
<td>
<h4>
{item.dataRegistro}
</h4>
</td>
</tr>
)
})
}
</tbody>
</Table>
</div>
</div>
<div className='itensPaginacao global-mt'>
{
quantityQuestoes > 0 ?
<Stack spacing={4}>
<Pagination sx={{
'& .Mui-selected': {
color: 'white'},
'& .MuiPaginationItem-root': {
color: 'white',

}}} count={parseInt(Math.ceil(quantityQuestoes / quantityPerPage))} page={parseInt(page)} color="primary" showFirstButton showLastButton onChange={handleChangeProva} />
</Stack>
:
<>
Expand Down Expand Up @@ -217,7 +336,13 @@ function DashBoard(){
<h3>Provas</h3>
<div className='dadosDashboard'>
<h4>Quantidade de provas ativas: {dados?.quantidadeProvasAtivas}</h4>
<h4>Quantidade de provas em aberto: {dados?.quantidadeProvasDesativasAtivas}</h4>
<h4>Quantidade de provas em aberto: {dados?.quantidadeProvasDesativasAtivas}<VisibilityIcon onClick={(e) => buscaProvasParaRevisao(1)}/></h4>
</div>
<br/>
<h3>Respostas Tabuada Divertida</h3>
<div className='dadosDashboard'>
<h4>Quantidade de respostas: {dados?.quantidadeRespostasTabuadaDivertida}</h4>
<h4>Quantidade de respostas últimas 24 horas: {dados?.quantidadeRespostasTabuadaDivertidaUltimas24Horas}</h4>
</div>
</div>
<br/>
Expand Down
Loading

0 comments on commit 49488a8

Please sign in to comment.