testes/js/page/Modulo_Construcao/Funcao/Config/User/PopUser_Func.js

323 lines
13 KiB
JavaScript

// Pop up desenvolvido para alinhar os Grupos de usuário de um ambiente respectivamente
// Pop up dedicado para direcionar o manual do ambiente do usuário
InicializandoPopUser();
function InicializandoPopUser() {
const interval_ConfigUser = 500; // Tempo em milissegundos (1 segundo)
try {
const checkElements_ConfigUser = setInterval(() => {
try {
const ConfigUserConstruida = document.getElementById('EstruturaUser');
if (ConfigUserConstruida) {
const IntegridadePopUp = document.getElementById('Pop_up_Config');
let TelaHtmlRecor = null;
const PainelUsers = document.getElementById('ApresentarUser');
let BuscandoInfor = "Buscando Usuários....";
PainelUsers.innerHTML = BuscandoInfor;
PainelApresentacao()
async function PainelApresentacao() {
let TelaHtmlRecor = "Apresentacao";
SeletorEmpresa(TelaHtmlRecor);
await ApresentacaoUser();
async function ApresentacaoUser() {
const { UserBank, ResutadosUserBank } = await IntegracaoBancoConsultaUser();
const dataUser = await UserBank.json();
const PainelUsers = document.getElementById('ApresentarUser');
RespostasChamadosHome(ResutadosUserBank, PainelUsers)
function RespostasChamadosHome(ResutadosUserBank, PainelUsers) {
if (ResutadosUserBank === 500) {
PainelUsers.innerHTML = `
<div class='Corpo_erro Status_${ResutadosUserBank}'>
<h2>Status 404</h2>
<p>Sem serviços no momento</p>
</div>`;
throw new Error(`Erro na API dos Chamados: ${ResutadosUserBank}`);
}
if (ResutadosUserBank === 404) {
PainelUsers.innerHTML = `
<div class='Corpo_erro Status_${ResutadosUserBank}'>
<h2>Status 404</h2>
<p>Nenhum serviço encontrado</p>
</div>`;
throw new Error(`Erro na API dos Chamados: ${ResutadosUserBank}`);
}
if (ResutadosUserBank === 401) {
PainelUsers.innerHTML = `
<div class='Corpo_erro Status_${ResutadosUserBank}'>
<h2>Status 404</h2>
<p>Usuário não autenticado!</p>
</div>`;
location.reload(true);
throw new Error(`Erro na API dos Chamados: ${ResutadosUserBank}`);
}
if (ResutadosUserBank === 502) {
PainelUsers.innerHTML = `
<div class='Corpo_erro Status_${ResutadosUserBank}'>
<h2>Status 404</h2>
<p>Estamos realizando manutenções, volte mais tarde</p>
</div>`;
throw new Error(`Erro na API dos Chamados: ${ResutadosUserBank} `);
}
if (ResutadosUserBank === 504) {
PainelUsers.innerHTML = `
<div class='Corpo_erro Status_${ResutadosUserBank}'>
<h2>Status 404</h2>
<p>Estamos realizando manutenções, volte mais tarde</p>
</div>`;
throw new Error(`Erro na API dos Chamados: ${ResutadosUserBank} `);
}
}
htmlContent = "";
for (let Usuario of dataUser) {
encontrouChamado = true;
const UsuarioBank = Usuario.dominio
const DominioBank = Usuario.nome
// Função para limitar o nome ao primeiro e último nome
function limitarNome(nome) {
const nomes = nome.split(" "); // Divide o nome em um array
if (nomes.length > 1) {
// Retorna o primeiro e o último nome
return nomes[0] + " " + nomes[nomes.length - 1];
}
return nome; // Se tiver apenas um nome, retorna ele
}
htmlContent += `
<div class="CorpoPainelUser">
<img src="./Acessts/Imagens/Icons/User 2" alt="">
<p>${UsuarioBank}</p>
<p>${limitarNome(DominioBank)}</p> <!-- Exibe o primeiro e o último nome -->
<button id="">...</button>
</div>`;
}
PainelUsers.innerHTML = htmlContent;
}
}
async function PainelCricao() {
let TelaHtmlRecor = "Criacao";
IntegridadePopUp.innerHTML = Estrututura_html_User_Criacao();
SeletorEmpresa(TelaHtmlRecor);
const SeletorEmpresaElement = document.getElementById('SeletorEmpresa');
const ButtoEnviarUser = document.getElementById('CriarUsuario');
const DominioEmpresaElement = document.getElementById('DominioEmpresa');
await Empresasconsulta();
let dominio_empresa = 'Vazio';
async function Empresasconsulta() {
const { Empresinhas } = await ConsultasEmpresas();
const EmpresinhasPDf = await Empresinhas.json();
console.log(EmpresinhasPDf);
let htmlContentConfig = '';
htmlContentConfig += `<option value="0"> Escolha uma empresa</option>`
const seletorEmpresa = document.getElementById('SeletorEmpresa');
for (let EstadoEmpresa of EmpresinhasPDf) {
const Empresas = EstadoEmpresa.nome; // "2025-01-14"
const IdEmpresas = EstadoEmpresa.idempresa;
const Dominio = EstadoEmpresa.dominio;
htmlContentConfig += `<option value="${IdEmpresas}" data-dominio="${Dominio}" > ${Empresas}</option>`;
}
seletorEmpresa.innerHTML = htmlContentConfig;
// Evento para atualizar o domínio ao mudar a seleção
seletorEmpresa.addEventListener('change', function () {
const selectedOption = seletorEmpresa.options[seletorEmpresa.selectedIndex];
const dominio = selectedOption.getAttribute('data-dominio') || 'Dominio';
DominioEmpresaElement.textContent = dominio;
dominio_empresa = dominio;
});
}
ButtoEnviarUser.addEventListener('click', CapitacaodeInformacao);
async function CapitacaodeInformacao() {
const NomeCompletoElement = document.getElementById('NomeUser');
const UsuarioADElement = document.getElementById('UserAdUser');
const values = [
NomeCompletoElement, UsuarioADElement, SeletorEmpresaElement
];
// Verifica se todos os elementos existem, meio que uma validação de todos as informações do formulario estão sendo enviadas.
for (const el of values) {
if (!el) {
console.error('Elemento não encontrado:', el);
alert('Um ou mais elementos não foram encontrados.');
return;
}
}
// Alinhar cada um dos campos do formulario á sua variavel, para receber os dados que estão sendo prenchidos
const nome_completo = NomeCompletoElement.value.trim(); // Alinha o valor de um input
const usuario_ad = UsuarioADElement.value.trim();
const id_empresa = SeletorEmpresaElement.value;
// Valida se todos os capos foram preenchidos
if (!nome_completo || !usuario_ad || id_empresa === '0') {
alert('Por favor, preencha todos os campos obrigatórios corretamente!');
return;
}
// Criação do objeto json do extintor, será enviado para o back end
const novoUser = {
nome_completo,
usuario_ad,
id_empresa,
dominio_empresa
};
console.log(novoUser)
EnvioInformacao(novoUser)
}
async function EnvioInformacao(novoUser) {
try {
await NovoUser(novoUser);
alert('usuário criado com sucesso');
} catch (error) {
console.error('Erro:', error);
alert('Erro ao criar ao usuário. Tente novamente mais tarde.');
}
}
}
function PainelEdicao() {
let TelaHtmlRecor = "Edicao";
SeletorEmpresa(TelaHtmlRecor);
}
function SeletorEmpresa(Seletor) {
if (Seletor == "Criacao") {
const ButtonRetornarUser = document.getElementById('VoltarPopup');
const ButtonFecharUser = document.getElementById('EncerrarPopup');
ButtonRetornarUser.addEventListener('click', Retonar);
ButtonFecharUser.addEventListener('click', Fechar);
}
if (Seletor == "Apresentacao") {
const ButtonFecharUser = document.getElementById('EncerrarPopup');
const ButtonCriarUser = document.getElementById('NovoUsuarioPopup');
const ButtonEditarUser = document.getElementById('');
ButtonCriarUser.addEventListener('click', PainelCricao);
ButtonFecharUser.addEventListener('click', Fechar);
}
if (Seletor == "Edicao") {
const ButtonRetornarUser = document.getElementById('VoltarPopup');
const ButtonFecharUser = document.getElementById('EncerrarPopup');
ButtonRetornarUser.addEventListener('click', Retonar);
ButtonFecharUser.addEventListener('click', Fechar);
}
function Retonar() {
IntegridadePopUp.innerHTML = Estrututura_html_User_home();
PainelApresentacao();
}
function Fechar() {
IntegridadePopUp.style.display = "none"
IntegridadePopUp.innerHTML = '';
}
}
clearInterval(checkElements_ConfigUser); // Para o setInterval
}
} catch (error) {
console.error('Houve algo inesperado dentro da tela home' + error)
clearInterval(checkElements_ConfigUser); // Para o setInterval
return false
}
}, interval_ConfigUser);
} catch (error) {
console.error('Houve algo inesperado fora da tela home' + error)
}
}