testes/js/page/Modulo_Construcao/Funcao/Config/Estrutura/config.js

236 lines
8.7 KiB
JavaScript

setTimeout(async () => {
const ApresentarTeladeConfiguracao = localStorage.getItem('Iniciar_Config')
if (ApresentarTeladeConfiguracao === "true") {
const ConfigLoad = document.getElementById('entrada_2');
localStorage.removeItem('Iniciar_Config', 'true')
if (ConfigLoad) {
// Verifica se o conteúdo do elemento não está vazio
if (ConfigLoad.innerHTML.trim() !== "") {
const estilos_config = document.getElementById('conexao');
const estilos_config_tela = document.getElementById('conexao_tela');
estilos_config_tela.href = '';
estilos_config.href = './Css/page/Ambiente/Config/Config.css';
InteracoesTelas_Config();
}
} else {
console.error("Elemento 'entrada_2' não encontrado.");
}
setTimeout(ConfigLoad == null, 500) // Salva um valor no localStorage
}
}, 300); // Executa as funções 3 segundos após o carregamento do DOM
async function InteracoesTelas_Config() {
let usuariConfig = null
try {
// Conexção com o script de Comunicacao.js para se utilizar da função de autenticação com a rota mouten, para puxar a const response e apiURL
const { response, apiUrl } = await Autenticao();
//Essa constante faz um tratamento sobre a response retirando o json para armazenar nesse data
const data = await response.json();
//console.log(data)
// Armazena os dados para usos futuros
usuariConfig = {
nomeCompleto: data.usuario.nome,
Empresa: data.empresa.nome,
ImagemUser: `${apiUrl}${data.usuario.img_perfil}`,
FundoUser: `${apiUrl}${data.usuario.img_fundo}`
};
//console.log("Esse dados vem para configurações", usuariConfig)
ControladorDeVisualizacao_config(usuariConfig)
const Voltar_home = document.getElementById('Voltar_config');
const Manual_button = document.getElementById('Manual_config');
const Perfil_button = document.getElementById('Perfil_config');
// Adiciona eventos para alternar entre as telas
Voltar_home.addEventListener('click', () => carregarTela_config('RetornarHome'));
// Manual_button.addEventListener('click', () => carregarTela_config('PainelManual'));
Perfil_button.addEventListener('click', () => carregarTela_config('PainelEstilo'));
localStorage.setItem('Carregou_tela_config', 'true');
} catch (error) {
const ConfigErro = document.getElementById('entrada_2');
ConfigErro.innerHTML = ""
await criarBlocos();
localStorage.setItem('Carregou_tela_config', 'true');
setTimeout(() => {
localStorage.removeItem('Carregou_tela_config');
}, 100);
console.error("Erro na tela de configuração" + error)
}
}
async function carregarTela_config(tela) {
const telaVisualizacao = document.getElementById('Pop_up_Config');
const scriptPaths = {
//Alinhamento das telas por datas, aqui são organizadas das possiveis respostas de cada botão e os caminhos scripts cada uma delas necessita para o seu funcionamento.
PainelEstilo: {
func: './js/page/Modulo_Construcao/Funcao/Config/Perfil/PopPerfil_Func.js',
html: './js/page/Modulo_Construcao/Painel/Config/Perfil/PopPerfil_html.js',
mensagem: 'Carregando ...',
},
PainelUser: {
func: './js/page/Modulo_Construcao/Funcao/Config/User/PopUser_Func.js',
html: './js/page/Modulo_Construcao/Painel/Config/User/PopUser_html.js',
mensagem: 'Carregando ...',
},
PainelManual: {
func: './js/page/Modulo_Construcao/Funcao/Config/Manual/PopManual_Func.js',
html: './js/page/Modulo_Construcao/Painel/Config/Manual/PopManual_html.js',
mensagem: 'Carregando ...',
},
PainelAmbiente: {
func: './js/page/Modulo_Construcao/Funcao/Config/Ambiente/PopAmbientes_Func.js',
html: './js/page/Modulo_Construcao/Painel/Config/Ambiente/PopAmbientes_html.js',
mensagem: 'Carregando ...',
},
RetornarHome: {
func: './js/page/Modulo_Construcao/Funcao/Config/Estrutura/config.js',
html: './js/page/Modulo_Construcao/Painel/Config/Estrutura/Estrutura_Config_Html.js',
mensagem: 'Carregando ...',
},
};
if (!scriptPaths[tela]) {
console.error('Tela inválida:', tela);
return;
}
// Remove scripts antigos antes de adicionar novos
document.querySelectorAll('script[data-dinamico]').forEach(script => script.remove());
try {
// Aguarda o carregamento dos dois scripts
await Promise.all([
carregarScript(scriptPaths[tela].func),
carregarScript(scriptPaths[tela].html),
]);
// Função para atualizar a classe de forma dinâmica
function atualizarClasse(novaClasse) {
telaVisualizacao.className = 'Pop_up_Config'; // Remove todas as classes, mantendo apenas a base
telaVisualizacao.classList.add(novaClasse); // Adiciona a nova classe
}
// Estrutura html do home
if (tela === 'PainelEstilo' && typeof estruturaHtml_Home === 'function') {
scriptPaths[tela].mensagem = Estrututura_html_Perfil();
telaVisualizacao.style.display = "flex"
atualizarClasse('PainelEstilo'); // Aplica a classe dinamicamente
}
// Estrutura html de monitoramento
if (tela === 'PainelUser' && typeof estruturaHtml_Home === 'function') {
scriptPaths[tela].mensagem = Estrututura_html_User_home();
telaVisualizacao.style.display = "flex"
atualizarClasse('PainelUser');
}
// Estrutura html de monitoramento
if (tela === 'PainelManual' && typeof estruturaHtml_Home === 'function') {
scriptPaths[tela].mensagem = Estrututura_html_Manual();
telaVisualizacao.style.display = "flex"
atualizarClasse('PainelManual');
}
// Estrutura html de monitoramento
if (tela === 'Painel_configuracao' && typeof estruturaHtml_Home === 'function') {
scriptPaths[tela].mensagem = Estrututura_html_Ambiente_home();
telaVisualizacao.style.display = "flex"
atualizarClasse('Painel_configuracao');
}
// Estrutura html de configuração
if (tela === 'RetornarHome' && typeof estruturaHtml_Home === 'function') {
// Verifica se a função EstruturaEsqueleto existe antes de chamar
localStorage.setItem('Carregou_tela_config_New', 'true');
const fimPainel = document.getElementById('entrada_2')
fimPainel.innerHTML = '';
CarregamentoLoad();
await criarBlocos();
//console.log('config')
}
telaVisualizacao.innerHTML = scriptPaths[tela].mensagem;
//console.log(`Tela ${tela} carregada com sucesso!`);
} catch (error) {
console.error('Erro ao carregar os scripts:', error);
}
}
// função que carreca os scripts dentro do html
function carregarScript(src) {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = src;
script.dataset.dinamico = true; // Marca como script dinâmico
script.onload = () => resolve();
script.onerror = () => reject(new Error(`Erro ao carregar o script ${src}`));
document.body.appendChild(script);
});
}
// Carrega a tela 'home' automaticamente ao iniciar
//carregarTela('home');
// Controlador de visualização sobre as opições que existem dentro do ambiente do usuário
function ControladorDeVisualizacao_config(InfoGeral) {
//console.log(InfoGeral)
if (InfoGeral.Empresa == "itguys.com.br") {
const EstruraDinamicadeConfiguracao = document.getElementById('Painel_configuracao');
EstruraDinamicadeConfiguracao.innerHTML += `
<div class="element_1" id="User_config">
<img src="./Acessts/Imagens/Iconis/group.png" alt="">
<p>Usuário</p>
</div>`;
EstruraDinamicadeConfiguracao.innerHTML += `
<div class="element_1" id="Ambiente_config">
<img src="./Acessts/Imagens/Iconis/ferramentas copiar.png" alt="" >
<p>Ambiente</p>
</div>`;
const User_button = document.getElementById('User_config');
User_button.addEventListener('click', () => carregarTela_config('PainelUser'));
const Ambiente_button = document.getElementById('Ambiente_config');
Ambiente_button.addEventListener('click', () => carregarTela_config('PainelAmbiente'));
}
}