Quer mais?Faça login ou
assine
para acessar todas as 569 questões e recursos adicionais!
Faça login e assine para usar o filtro de questões.
Questão 1 de 10
QLEG-21147
04/03/2025
Federal
Decreto Federal nº 6.514/2008 - Infrações e Sanções Administrativas ao Meio Ambiente
Capítulo I - Das Infrações e Sanções Administrativas ao Meio Ambiente
Seção I - Das Disposições Gerais
Explicação:
A afirmação está incorreta. O Art. 1º estabelece que o Capítulo I dispõe não apenas sobre as infrações, mas também sobre as sanções administrativas ao meio ambiente.
Art. 1º Este Capítulo dispõe sobre as condutas infracionais ao meio ambiente e suas respectivas sanções administrativas.
Anotações da Questão
Quer mais?Faça login ou
assine
para acessar todas as 569 questões e recursos adicionais!
Atalhos desativados - Editor ativo
`).removeClass('hidden');
// Inicializar as abas
new bootstrap.Tab(document.querySelector(`#estatisticasTabs_${questaoId} .nav-link.active`));
// Coletar dados das alternativas
const ordemAtual = {
a: $questao.find('.opcao[data-opcao="a"] .opcao-texto').text().trim(),
b: $questao.find('.opcao[data-opcao="b"] .opcao-texto').text().trim(),
c: $questao.find('.opcao[data-opcao="c"] .opcao-texto').text().trim(),
d: $questao.find('.opcao[data-opcao="d"] .opcao-texto').text().trim(),
e: $questao.find('.opcao[data-opcao="e"] .opcao-texto').text().trim()
};
// Carregar estatísticas
$.ajax({
url: 'estatisticas_questao.php',
method: 'POST',
data: {
questao_id: questaoId,
ordem_atual_a: ordemAtual.a,
ordem_atual_b: ordemAtual.b,
ordem_atual_c: ordemAtual.c,
ordem_atual_d: ordemAtual.d,
ordem_atual_e: ordemAtual.e
},
success: function(response) {
try {
const data = typeof response === 'string' ? JSON.parse(response) : response;
if (data.success) {
// Atualizar apenas o conteúdo da aba individual
const $individualPane = $(`#individual_${questaoId}`);
$individualPane.html(`
`);
}
});
} else {
$estatisticasConteudo.addClass('hidden');
}
}, 300));
var questoes_base64 = "W3siaWQiOjIxMTQ3LCJxbGVnX2lkIjoiUUxFRy0yMTE0NyIsImVudW5jaWFkbyI6Ik8gQ2FwXHUwMGVkdHVsbyBJIGRvIERlY3JldG8gblx1MDBiYSA2LjUxNFwvMjAwOCB0cmF0YSBleGNsdXNpdmFtZW50ZSBkYXMgaW5mcmFcdTAwZTdcdTAwZjVlcyBhZG1pbmlzdHJhdGl2YXMgYW8gbWVpbyBhbWJpZW50ZS4iLCJvcGNhb19hIjoiRXJyYWRvIiwib3BjYW9fYiI6IkNlcnRvIiwib3BjYW9fYyI6IiIsIm9wY2FvX2QiOiIiLCJvcGNhb19lIjoiIiwicmVzcG9zdGFfY29ycmV0YSI6IkEiLCJleHBsaWNhY2FvIjoiQSBhZmlybWFcdTAwZTdcdTAwZTNvIGVzdFx1MDBlMSBpbmNvcnJldGEuIE8gQXJ0LiAxXHUwMGJhIGVzdGFiZWxlY2UgcXVlIG8gQ2FwXHUwMGVkdHVsbyBJIGRpc3BcdTAwZjVlIG5cdTAwZTNvIGFwZW5hcyBzb2JyZSBhcyBpbmZyYVx1MDBlN1x1MDBmNWVzLCBtYXMgdGFtYlx1MDBlOW0gc29icmUgYXMgc2FuXHUwMGU3XHUwMGY1ZXMgYWRtaW5pc3RyYXRpdmFzIGFvIG1laW8gYW1iaWVudGUuIiwidGV4dG9fbGVpIjoiQXJ0LiAxXHUwMGJhIEVzdGUgQ2FwXHUwMGVkdHVsbyBkaXNwXHUwMGY1ZSBzb2JyZSBhcyBjb25kdXRhcyBpbmZyYWNpb25haXMgYW8gbWVpbyBhbWJpZW50ZSBlIHN1YXMgcmVzcGVjdGl2YXMgc2FuXHUwMGU3XHUwMGY1ZXMgYWRtaW5pc3RyYXRpdmFzLiIsInN1YmRpdmlzYW9faWQiOiIzNV8xXzEiLCJsZWdpc2xhY2FvX2lkIjozNSwidXBkYXRlZF9hdCI6IjIwMjUtMDMtMDUgMDI6MDU6MzYiLCJoaWVyYXJxdWlhX2NvbXBsZXRhIjoiRmVkZXJhbCA+IERlY3JldG8gRmVkZXJhbCBuXHUwMGJhIDYuNTE0XC8yMDA4IC0gSW5mcmFcdTAwZTdcdTAwZjVlcyBlIFNhblx1MDBlN1x1MDBmNWVzIEFkbWluaXN0cmF0aXZhcyBhbyBNZWlvIEFtYmllbnRlID4gQ2FwXHUwMGVkdHVsbyBJIC0gRGFzIEluZnJhXHUwMGU3XHUwMGY1ZXMgZSBTYW5cdTAwZTdcdTAwZjVlcyBBZG1pbmlzdHJhdGl2YXMgYW8gTWVpbyBBbWJpZW50ZSA+IFNlXHUwMGU3XHUwMGUzbyBJIC0gRGFzIERpc3Bvc2lcdTAwZTdcdTAwZjVlcyBHZXJhaXMifV0=";
var questoes = JSON.parse(atob(questoes_base64));
// Função para carregar estatísticas gerais
function carregarEstatisticas(questaoId) {
if (!usuarioLogado) {
mostrarAlertaLogin('as estatísticas');
return;
}
if (false) {
$.ajax({
url: 'estatisticas_questao.php',
method: 'POST',
data: { questao_id: questaoId },
success: function(response) {
// Processar e exibir estatísticas
}
});
} else {
// Exibir mensagem para usuários não logados
$('.estatisticas-conteudo').html(`
Faça login para ver estatísticas detalhadas.
`);
}
}
function carregarEstatisticasGerais(questaoId) {
// Usar as variáveis já calculadas no PHP
const estatisticas = {
total_questoes: 569,
corretas: 0,
erradas: 0,
nao_respondidas: 569 };
renderizarEstatisticasGerais(estatisticas, questaoId);
}
function renderizarEstatisticasGerais(estatisticas, questaoId) {
const $conteudoGeral = $(`#geral_${questaoId}`);
// Verifica se é um bloco de questões erradas
const isBlocoQuestoesErradas = false;
let htmlBotoes = `
`;
if (!isBlocoQuestoesErradas) {
htmlBotoes += `
`;
}
$conteudoGeral.html(`
${htmlBotoes}
Distribuição das Respostas
Taxa de Acerto do Bloco
Progresso do Bloco
`);
renderizarDistribuicaoRespostas(estatisticas, `distribuicaoRespostasChart_${questaoId}`);
renderizarTaxaAcerto(estatisticas, `taxaAcertoChart_${questaoId}`);
renderizarProgressoBloco(estatisticas, `progressoBlocoChart_${questaoId}`);
$(document).on('click', '#duplicarBloco', function() {
duplicarBloco(58);
$('#modalOpcoesBloco').modal('hide');
});
$(document).on('click', '#reiniciarBloco', function() {
reiniciarBloco(58);
$('#modalOpcoesBloco').modal('hide');
});
$(document).on('click', '#criarBlocoErros', function() {
criarBlocoErradas(58);
$('#modalOpcoesBloco').modal('hide');
});
function criarBlocoErradas(blocoId) {
$.ajax({
url: 'criar_bloco_erros.php',
method: 'POST',
data: { bloco_id: blocoId },
dataType: 'json',
success: function(response) {
if (response.success) {
alert(`Novo bloco criado com sucesso! Contém ${response.total_questoes} questões erradas. Redirecionando...`);
window.location.href = response.novo_bloco_url;
} else {
alert('Erro ao criar o bloco: ' + response.error);
}
},
error: function() {
alert('Erro ao comunicar com o servidor');
}
});
}
}
function renderizarDistribuicaoRespostas(estatisticas, elementId) {
const ctx = document.getElementById(elementId).getContext('2d');
new Chart(ctx, {
type: 'pie',
data: {
labels: ['Corretas', 'Erradas', 'Não Respondidas'],
datasets: [{
data: [
estatisticas.corretas,
estatisticas.erradas,
estatisticas.nao_respondidas
],
backgroundColor: ['#28a745', '#dc3545', '#6c757d']
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: 'bottom'
},
tooltip: {
callbacks: {
label: function(context) {
const label = context.label || '';
const value = context.raw;
const total = estatisticas.total_questoes;
const percentage = ((value / total) * 100).toFixed(1);
return `${label}: ${value} (${percentage}%)`;
}
}
}
}
}
});
}
function renderizarTaxaAcerto(estatisticas, elementId) {
const ctx = document.getElementById(elementId).getContext('2d');
const totalRespondidas = estatisticas.corretas + estatisticas.erradas;
const percentualAcertos = totalRespondidas > 0 ? (estatisticas.corretas / totalRespondidas * 100).toFixed(1) : 0;
const percentualErros = totalRespondidas > 0 ? (estatisticas.erradas / totalRespondidas * 100).toFixed(1) : 0;
new Chart(ctx, {
type: 'doughnut',
data: {
labels: ['Acertos', 'Erros'],
datasets: [{
data: [percentualAcertos, percentualErros],
backgroundColor: ['#28a745', '#dc3545']
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: 'bottom'
},
tooltip: {
callbacks: {
label: function(context) {
const label = context.label || '';
const value = parseFloat(context.raw).toFixed(1);
return `${label}: ${value}%`;
}
}
}
}
}
});
}
function renderizarProgressoBloco(estatisticas, elementId) {
const ctx = document.getElementById(elementId).getContext('2d');
const respondidas = estatisticas.corretas + estatisticas.erradas;
const percentualRespondidas = (respondidas / estatisticas.total_questoes * 100).toFixed(1);
const percentualNaoRespondidas = (100 - percentualRespondidas).toFixed(1);
new Chart(ctx, {
type: 'doughnut',
data: {
labels: ['Respondidas', 'Não Respondidas'],
datasets: [{
data: [percentualRespondidas, percentualNaoRespondidas],
backgroundColor: ['#17a2b8', '#6c757d']
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: 'bottom'
},
tooltip: {
callbacks: {
label: function(context) {
const label = context.label || '';
const value = parseFloat(context.raw).toFixed(1);
const count = label === 'Respondidas' ? respondidas : estatisticas.nao_respondidas;
return `${label}: ${value}% (${count} questões)`;
}
}
}
}
}
});
}
// Função para garantir que o botão seja visível
function mostrarBotaoCriarBloco() {
$('#criarBlocoErros').show();
}
// Chamar a função quando a aba geral for mostrada
$('#geral-tab').on('shown.bs.tab', function (e) {
mostrarBotaoCriarBloco();
});
// Chamar a função também quando o documento estiver pronto
mostrarBotaoCriarBloco();
// Manipulador de clique para o botão
$(document).on('click', '#criarBlocoErros', function() {
const blocoId = 58;
$.ajax({
url: 'criar_bloco_erros.php',
method: 'POST',
data: { bloco_id: blocoId },
dataType: 'json',
success: function(response) {
if (response.success) {
alert('Novo bloco criado com sucesso! Redirecionando...');
window.location.href = response.novo_bloco_url;
} else {
alert('Erro ao criar o bloco: ' + response.error);
}
},
error: function() {
alert('Erro ao comunicar com o servidor');
}
});
});
// Manipulador de clique para o botão "Duplicar Bloco"
$(document).on('click', '#duplicarBloco', function() {
const blocoId = 58;
if (confirm("Tem certeza que deseja duplicar este bloco?")) {
$.ajax({
url: 'duplicar_bloco.php',
method: 'POST',
data: { bloco_id: blocoId },
dataType: 'json',
success: function(response) {
if (response.success) {
alert('Bloco duplicado com sucesso! Redirecionando...');
window.location.href = response.novo_bloco_url;
} else {
alert('Erro ao duplicar o bloco: ' + response.error);
}
},
error: function() {
alert('Erro ao comunicar com o servidor');
}
});
}
});
// Manipulador de clique para o botão "Reiniciar Bloco"
$(document).on('click', '#reiniciarBloco', function() {
const blocoId = 58;
if (confirm("Tem certeza que deseja reiniciar este bloco? Todas as suas respostas serão apagadas.")) {
$.ajax({
url: 'reiniciar_bloco.php',
method: 'POST',
data: { bloco_id: blocoId },
dataType: 'json',
success: function(response) {
if (response.success) {
alert('Bloco reiniciado com sucesso! A página será recarregada.');
window.location.reload();
} else {
alert('Erro ao reiniciar o bloco: ' + response.error);
}
},
error: function() {
alert('Erro ao comunicar com o servidor');
}
});
}
});
function selectOption(letter) {
// Usar seletor mais direto e eficiente
const $questao = $('.questao:not(.hidden)');
const $opcao = $questao.find(`.opcao[data-opcao="${letter}"]`);
// Verificar existência antes de manipular
if ($opcao.length) {
handleOptionClick($opcao);
}
}
function proximaQuestaoNaoResolvida() {
const tipoSelecionado = $('#tipoQuestoes').val();
const $questoesFiltradas = tipoSelecionado === 'todas' ? $('.questao') : $(`.questao[data-tipo-questao="${tipoSelecionado}"]`);
let proximo = (questaoAtualIndex + 1) % $questoesFiltradas.length;
while (proximo !== questaoAtualIndex) {
const $questao = $questoesFiltradas.eq(proximo);
if (!$questao.data('respondida')) {
questaoAtualIndex = $questoes.index($questao);
showQuestion(questaoAtualIndex);
return;
}
proximo = (proximo + 1) % $questoesFiltradas.length;
}
alert('Todas as questões já foram resolvidas!');
}
function proximaQuestaoAleatoriaNaoResolvida() {
const tipoSelecionado = $('#tipoQuestoes').val();
const $questoesFiltradas = tipoSelecionado === 'todas' ? $('.questao') : $(`.questao[data-tipo-questao="${tipoSelecionado}"]`);
const ehAssinanteOuAdmin = false;
const limiteQuestoes = ehAssinanteOuAdmin ? $questoesFiltradas.length : Math.min(10, $questoesFiltradas.length);
let naoResolvidas = $questoesFiltradas.filter(function(index) {
return index < limiteQuestoes && !$(this).data('respondida');
});
if (naoResolvidas.length > 0) {
let aleatorio = Math.floor(Math.random() * naoResolvidas.length);
questaoAtualIndex = $questoesFiltradas.index(naoResolvidas[aleatorio]);
showQuestion(questaoAtualIndex);
} else {
// Se todas as questões disponíveis foram resolvidas, seleciona uma aleatória dentro do limite
let aleatorio = Math.floor(Math.random() * limiteQuestoes);
questaoAtualIndex = aleatorio;
showQuestion(questaoAtualIndex);
alert('Todas as questões disponíveis já foram resolvidas. Selecionando uma aleatória.');
}
}
function atualizarIndicadorAtalhos() {
if (editorAtivo) {
$('.atalhos-status').removeClass('hidden').text('Atalhos desativados - Editor ativo');
} else {
$('.atalhos-status').addClass('hidden');
}
}
function handleKeyPress(letter) {
const currentTime = new Date().getTime();
if (currentTime - lastKeyPressTime < doubleClickThreshold) {
// Duplo clique simulado
const $opcao = $('.questao:not(.hidden) .opcao[data-opcao="' + letter + '"]');
$opcao.toggleClass('descartada');
if ($opcao.hasClass('descartada') && $opcao.hasClass('selected')) {
$opcao.removeClass('selected');
$opcao.find('input[type="radio"]').prop('checked', false);
}
} else {
// Clique simples
selectOption(letter);
}
lastKeyPressTime = currentTime;
}
const keyHandlers = {
37: () => document.getElementById('btn-prev').click(), // Seta para esquerda
39: () => document.getElementById('btn-next').click(), // Seta para direita
78: () => document.getElementById('btn-proxima-nao-resolvida').click(), // Tecla N
77: () => document.getElementById('btn-proxima-aleatoria-nao-resolvida').click(), // Tecla M
82: () => $('.questao:not(.hidden) .responder').click(), // Tecla R
88: () => $('.questao:not(.hidden) .explicacao').click(), // Tecla X
13: () => $('.questao:not(.hidden) .responder').click(), // Enter
65: () => handleKeyPress('a'), // A
66: () => handleKeyPress('b'), // B
67: () => handleKeyPress('c'), // C
68: () => handleKeyPress('d'), // D
69: () => handleKeyPress('e'), // E
49: () => handleKeyPress('a'), // 1
50: () => handleKeyPress('b'), // 2
51: () => handleKeyPress('c'), // 3
52: () => handleKeyPress('d'), // 4
53: () => handleKeyPress('e'), // 5
97: () => handleKeyPress('a'), // Numpad 1
98: () => handleKeyPress('b'), // Numpad 2
99: () => handleKeyPress('c'), // Numpad 3
100: () => handleKeyPress('d'), // Numpad 4
101: () => handleKeyPress('e'), // Numpad 5
};
// Handler para teclas
$(document).on('keydown', throttle(function(e) {
// Verifica se algum modal está aberto ou se o campo de pesquisa está ativo
if ($('.modal.show').length > 0 || campoPesquisaAtivo) {
// Se algum modal estiver aberto ou o campo de pesquisa estiver ativo, não processa os atalhos
return;
}
const handler = keyHandlers[e.which];
if (handler) {
e.preventDefault();
handler();
}
}, 50));
// Adicione um handler para o clique fora do editor
$(document).on('click', function(e) {
if (!$(e.target).closest('.anotacoes-conteudo').length &&
!$(e.target).closest('.anotacoes').length) {
editorAtivo = false;
}
});
// Modifique o handler de salvar anotação
$(document).on('click', '.salvar-anotacao', function() {
const $questao = $(this).closest('.questao');
const questaoId = $questao.data('questao-id');
const editor = editors[questaoId];
if (editor) {
$.ajax({
url: 'salvar_anotacao.php',
method: 'POST',
data: {
questao_id: questaoId,
conteudo: editor.getData()
},
success: function(response) {
const data = JSON.parse(response);
if (data.success) {
mostrarAlerta('Anotação salva com sucesso!', 'success');
// Desativa o editor após salvar
editorAtivo = false;
}
}
});
}
});
// Carregar respostas salvas (se houver)
$questoes.each(function() {
const $questao = $(this);
const respostaUsuario = $questao.data('resposta-usuario');
if (respostaUsuario) {
$questao.find(`input[value="${respostaUsuario}"]`).prop('checked', true);
$questao.data('respondida', true);
estatisticas.resolvidas++;
// Aqui você pode adicionar lógica para determinar se a resposta estava correta
// e atualizar estatisticas.corretas e estatisticas.erradas
}
});
atualizarEstatisticas();
updateNavigationButtons();
let editors = {};
let editor = null;
let questaoAtualId = null;
// Handler para o botão de anotações
$(document).on('click', '.anotacoes', function() {
if (!usuarioLogado) {
mostrarAlertaLogin('as anotações');
return;
}
const $questao = $(this).closest('.questao');
questaoAtualId = $questao.data('questao-id');
// Mostrar o modal
$('#modalAnotacoes').modal('show');
// Inicializar o editor se ainda não foi inicializado
if (!editor) {
ClassicEditor
.create(document.querySelector('#editor'), {
toolbar: [
'heading', '|', 'bold', 'italic', 'link', 'bulletedList', 'numberedList', '|',
'blockQuote', 'insertTable', '|', 'undo', 'redo'
],
placeholder: 'Digite suas anotações aqui...'
})
.then(newEditor => {
editor = newEditor;
carregarAnotacao(questaoAtualId);
})
.catch(error => {
});
} else {
carregarAnotacao(questaoAtualId);
}
});
// Função para carregar anotações
function carregarAnotacao(questaoId) {
if (!usuarioLogado) {
mostrarAlertaLogin('as anotações');
return;
}
// Mostrar loading
$('#editorLoading').removeClass('d-none');
editor.setData(''); // Limpa o editor enquanto carrega
$.ajax({
url: 'carregar_anotacao.php',
method: 'POST',
data: { questao_id: questaoId },
success: function(response) {
try {
const data = JSON.parse(response);
if (data.success) {
// Se houver conteúdo, carrega no editor
if (data.conteudo) {
editor.setData(data.conteudo);
} else {
editor.setData(''); // Se não houver conteúdo, deixa vazio
}
} else {
editor.setData('Erro ao carregar anotação.');
}
} catch (e) {
editor.setData('Erro ao processar resposta do servidor.');
}
},
error: function(xhr, status, error) {
editor.setData('Erro ao se comunicar com o servidor.');
},
complete: function() {
$('#editorLoading').addClass('d-none');
}
});
}
// Função para salvar anotações
function salvarAnotacao(questaoId, conteudo) {
if (!usuarioLogado) {
mostrarAlertaLogin('salvar anotações');
return;
}
if (false) {
$.ajax({
url: 'salvar_anotacao.php',
method: 'POST',
data: {
questao_id: questaoId,
conteudo: conteudo
},
success: function(response) {
// Processar resposta
}
});
} else {
mostrarAlerta('Faça login para salvar anotações', 'info');
}
}
// Salvar anotação
$(document).on('click', '.salvar-anotacao-modal', function() {
if (!usuarioLogado) {
mostrarAlertaLogin('salvar anotações');
return;
}
if (editor && questaoAtualId) {
const conteudo = editor.getData();
$.ajax({
url: 'salvar_anotacao.php',
method: 'POST',
data: {
questao_id: questaoAtualId,
conteudo: conteudo
},
success: function(response) {
try {
const data = JSON.parse(response);
if (data.success) {
mostrarAlerta('Anotação salva com sucesso!', 'success');
$('#modalAnotacoes').modal('hide');
}
} catch (e) {
}
},
error: function(xhr, status, error) {
mostrarAlerta('Erro ao salvar anotação', 'danger');
}
});
}
});
// Limpar editor quando o modal for fechado
$('#modalAnotacoes').on('hidden.bs.modal', function() {
if (editor) {
editor.setData('');
}
questaoAtualId = null;
});
// Função auxiliar para mostrar alertas
function mostrarAlerta(mensagem, tipo) {
const $alerta = $(`
${mensagem}
`);
$('body').append($alerta);
setTimeout(() => $alerta.alert('close'), 3000);
}
// Handler para o botão de editar nas anotações listadas
$(document).on('click', '.editar-anotacao', function() {
const questaoId = $(this).data('questao-id');
// Fechar o modal de todas as anotações
$('#modalTodasAnotacoes').modal('hide');
// Esperar um pouco para evitar problemas com múltiplos modais
setTimeout(() => {
// Atualizar o questaoAtualId
questaoAtualId = questaoId;
// Mostrar o modal de edição
$('#modalAnotacoes').modal('show');
// Se o editor já existe, carregar a anotação
if (editor) {
carregarAnotacao(questaoId);
} else {
// Se o editor ainda não existe, criar e depois carregar a anotação
ClassicEditor
.create(document.querySelector('#editor'), {
toolbar: [
'heading',
'|',
'bold',
'italic',
'link',
'bulletedList',
'numberedList',
'|',
'blockQuote',
'insertTable',
'|',
'undo',
'redo'
],
placeholder: 'Digite suas anotações aqui...'
})
.then(newEditor => {
editor = newEditor;
carregarAnotacao(questaoId);
})
.catch(error => {
});
}
}, 300); // Espera 300ms para evitar problemas com a transição dos modais
});
// Ver todas as anotações
$(document).on('click', '.ver-todas-anotacoes', function() {
if (!usuarioLogado) {
mostrarAlertaLogin('ver todas as anotações');
return;
}
$('#modalAnotacoes').modal('hide');
// Mostrar loading
const $lista = $('.anotacoes-lista');
$lista.html(`
Carregando...
Carregando anotações...
`);
// Mostra o modal com o loading
$('#modalTodasAnotacoes').modal('show');
$.ajax({
url: 'listar_anotacoes.php',
method: 'POST',
data: { bloco_id: 58 },
success: function(response) {
try {
const data = typeof response === 'string' ? JSON.parse(response) : response;
if (data.success) {
$lista.empty();
if (data.anotacoes && data.anotacoes.length > 0) {
data.anotacoes.forEach(anotacao => {
$lista.append(`
`);
}
});
});
});
// Handler para o botão de reportar erro
$(document).on('click', '.reportar-erro', function() {
const $questao = $(this).closest('.questao');
const questaoId = $questao.data('questao-id');
// Limpar o campo de texto antes de mostrar o modal
$('#descricaoErro').val('');
// Mostrar o modal
$('#modalReportarErro').modal('show');
// Handler para o botão de enviar reporte
$('#enviarReporte').off('click').on('click', function() {
const descricao = $('#descricaoErro').val().trim();
if (!descricao) {
alert('Por favor, descreva o erro encontrado.');
return;
}
// Desabilitar o botão durante o envio
$(this).prop('disabled', true);
$.ajax({
url: 'salvar_reporte.php',
method: 'POST',
data: {
questao_id: questaoId,
descricao: descricao
},
success: function(response) {
try {
const data = typeof response === 'string' ? JSON.parse(response) : response;
if (data.success) {
// Mostrar mensagem de sucesso
mostrarAlerta('Reporte enviado com sucesso!', 'success');
// Fechar o modal
$('#modalReportarErro').modal('hide');
// Limpar o campo de texto
$('#descricaoErro').val('');
} else {
mostrarAlerta('Erro ao enviar reporte: ' + (data.error || 'Erro desconhecido'), 'danger');
}
} catch (e) {
mostrarAlerta('Erro ao processar resposta do servidor', 'danger');
}
},
error: function(xhr, status, error) {
mostrarAlerta('Erro ao comunicar com o servidor', 'danger');
},
complete: function() {
// Reabilitar o botão após o envio (sucesso ou erro)
$('#enviarReporte').prop('disabled', false);
}
});
});
});
// Função para mostrar alertas
function mostrarAlerta(mensagem, tipo) {
const $alerta = $(`
${mensagem}
`);
$('body').append($alerta);
setTimeout(() => $alerta.alert('close'), 3000);
}
// Limpar o campo de texto quando o modal for fechado
$('#modalReportarErro').on('hidden.bs.modal', function() {
$('#descricaoErro').val('');
$('#enviarReporte').prop('disabled', false);
});
-->
Estrutura
Anotações da Questão
Carregando...
Carregando editor...
Todas as Anotações
Atalhos de Teclado e Funcionalidades
Atalhos de Teclado:
Alternativa A: Tecla A ou 1
Alternativa B: Tecla B ou 2
Alternativa C: Tecla C ou 3
Alternativa D: Tecla D ou 4
Alternativa E: Tecla E ou 5
Responder: Tecla R ou Enter
Explicação: Tecla X ou ,
Questão anterior: Seta para esquerda
Próxima questão: Seta para direita
Próxima não resolvida: Tecla N
Próxima aleatória não resolvida: Tecla M
Funcionalidades Especiais:
Duplo Clique em Alternativa: Marca a alternativa como "descartada".
Útil para eliminar opções consideradas incorretas.
Desfazer Descarte: Duplo clique novamente na alternativa descartada.