356 lines
15 KiB
JavaScript
356 lines
15 KiB
JavaScript
// Função para obter a URL base do servidor
|
|
async function getApiUrl() {
|
|
try {
|
|
const response = await fetch('../../php/config_url.php'); // Solicita a URL base do PHP
|
|
if (!response.ok) {
|
|
throw new Error('Network response was not ok');
|
|
}
|
|
const data = await response.json();
|
|
return data.apiUrl; // Retorna a URL base
|
|
} catch (error) {
|
|
console.error('Error fetching API URL:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
// Função para obter o token do localStorage
|
|
function getAuthToken() {
|
|
return localStorage.getItem('x-access-token');
|
|
}
|
|
|
|
async function criarBlocos() {
|
|
try {
|
|
// Obtém a URL base do servidor
|
|
const apiUrl = await getApiUrl();
|
|
// Obter o token JWT do localStorage
|
|
const token = getAuthToken();
|
|
|
|
// Fazer uma requisição para o servidor para obter os dados dos blocos
|
|
const response = await fetch(`${apiUrl}/mounting`, {
|
|
method: 'GET',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'x-access-token': token ? token : '' // Usando x-access-token diretamente no cabeçalho
|
|
}
|
|
});
|
|
|
|
if (!response.ok) {
|
|
throw new Error('Failed to fetch block data');
|
|
}
|
|
|
|
const dadosDosBlocos = await response.json();
|
|
// Limpar o container de blocos
|
|
|
|
|
|
const entrada_1 = document.getElementById('entrada_1');
|
|
entrada_1.innerHTML = '';
|
|
|
|
// Iterar sobre o array de dados dos blocos
|
|
dadosDosBlocos.forEach(dadosDoBloco => {
|
|
const Painel = document.createElement('section'); // Responsavel por trazer todos os lementos da tela.
|
|
const cab = document.createElement('section');
|
|
cab.classList.add('menu');//Responsavel por trazer todo o cabeçario para a tela
|
|
const Matriz = document.createElement('main');
|
|
Matriz.classList.add('matriz');//Responsavel por trazer o menu e a tela do iframe.
|
|
|
|
|
|
//Cabeçalho
|
|
|
|
const sucab = document.createElement('header');
|
|
sucab.classList.add('cabecario_1');
|
|
|
|
//Bloco reponsavel pela imagem de logo da itguys
|
|
|
|
const bloco_subcab1_1 = document.createElement('div');//cria a tag div na página
|
|
bloco_subcab1_1.classList.add('Bloco_subcab1_1');//Define a classe do Bloco_subcab1_1, para a constante Bloco_subcab1_1.
|
|
const img_cab = document.createElement('img');//Cria a tag img na página
|
|
img_cab.classList.add('icon_subcab1_1');//Define a classe do icon_subcab1_1, para a constante img_cab.
|
|
img_cab.src = dadosDoBloco.imagem_Cab;//Cria o src para a tag img, e capita a informação registradas no dadosDoBlco no registro imagem_cab.
|
|
img_cab.alt = '';//Cria uma alt sem nenhuma definição para a tag img.
|
|
bloco_subcab1_1.appendChild(img_cab);//Define o img_cap como objeto filho do bloco_subcab1_1, logo a tag img estara dentor da div bloco_suvcab1_1.
|
|
|
|
const bloco_subcab1_2 = document.createElement('div');//cria a tag div na página
|
|
bloco_subcab1_2.classList.add('Bloco_subcab1_2');//Define a classe do bloco_subcab1_2, para a constante Bloco_subcab1_2.
|
|
const bloco_a_cab = document.createElement('a');//Criação da tag a na página.
|
|
bloco_a_cab.href = dadosDoBloco.A_cab;//Criação do href para a tag a, e capita a informação registradas no dadosDoBlco no registro A_cab.
|
|
bloco_subcab1_2.appendChild(bloco_a_cab);//Define o bloco_a_cab como objeto filho do bloco_subcab1_2, logo a tag a estara dentor da div bloco_subcab1_2.
|
|
const bloco_button_cab = document.createElement('button');//cria a tag button na página.
|
|
bloco_button_cab.id = "logoutButton";
|
|
bloco_button_cab.textContent = dadosDoBloco.button_Cab;// Define um texto para o button.
|
|
bloco_a_cab.appendChild(bloco_button_cab);//Define o bloco_button_cab como objeto filho do bloco_a_cab,logo a tag button estara dentor da div bloco_a_cab.
|
|
|
|
//Matriz
|
|
|
|
const capitulo_1 = document.createElement('section');//Cria uma tag section na página.
|
|
capitulo_1.classList.add('capitulo_1');//adicina diretamente a classe capitulo_1, section recem criada.
|
|
const Corpo_1 = document.createElement('section');//Cria uma tag section na página.
|
|
Corpo_1.classList.add('Corpo_1');//adicina diretamente a classe corpo_1, section recem criada.
|
|
const Coluna_1 = document.createElement('div');//Cria uma tag div na página.
|
|
Coluna_1.classList.add('Colunas_1');//adicina diretamente a classe Colunas_1, div recem criada.
|
|
|
|
//Menu Lateral
|
|
|
|
//Painel personalizavel do usuario
|
|
|
|
const seguimento_1 = document.createElement('div');// Cria uma tag div na página.
|
|
seguimento_1.classList.add('seguimentos_1'); // adiciona diretamente a classe seguimentos_1 na div recem criada
|
|
Coluna_1.appendChild(seguimento_1); // define a div seguimento_1 como objeto filo da Coluna_1, log a tag div estara dentro da div Coluna_1
|
|
const seguimento_1_button = document.createElement('button');
|
|
seguimento_1.appendChild(seguimento_1_button);
|
|
const seguimento_1_img = document.createElement('img');
|
|
seguimento_1_img.id = "menu";
|
|
seguimento_1_img.src = dadosDoBloco.imagem_segumento_1;
|
|
seguimento_1_img.alt = "";
|
|
seguimento_1_button.appendChild(seguimento_1_img);
|
|
|
|
const seguimento_2 = document.createElement('div');
|
|
seguimento_2.classList.add('seguimentos_2');
|
|
Coluna_1.appendChild(seguimento_2);
|
|
|
|
const user_1 = document.createElement('div');
|
|
user_1.classList.add('user_1');
|
|
seguimento_2.appendChild(user_1);
|
|
|
|
const seguimento_2_img_1_user_1 = document.createElement('img');
|
|
seguimento_2_img_1_user_1.classList.add('icon_subcab2_2');
|
|
seguimento_2_img_1_user_1.src = dadosDoBloco.imagem_User_1_segumento_2;
|
|
seguimento_2_img_1_user_1.alt = "";
|
|
user_1.appendChild(seguimento_2_img_1_user_1);
|
|
const seguimento_2_img_2_user_1 = document.createElement('img');
|
|
seguimento_2_img_2_user_1.classList.add('icon_subcab2_1');
|
|
seguimento_2_img_2_user_1.src = dadosDoBloco.imagem_User_2_segumento_2;
|
|
seguimento_2_img_2_user_1.alt = "";
|
|
user_1.appendChild(seguimento_2_img_2_user_1);
|
|
|
|
|
|
const user_2 = document.createElement('div');
|
|
user_2.classList.add('user_2');
|
|
seguimento_2.appendChild(user_2);
|
|
|
|
const identidade = document.createElement('p');
|
|
user_2.appendChild(identidade);
|
|
const User = document.createElement('div');
|
|
User.id = "User";
|
|
User.classList.add('user_2');
|
|
User.textContent = dadosDoBloco.texto_User_segumento_2;
|
|
identidade.appendChild(User);
|
|
const Empresa = document.createElement('div');
|
|
Empresa.id = "Empresa";
|
|
Empresa.textContent = dadosDoBloco.texto_Empresa_segumento_2;
|
|
user_2.classList.add('user_2');
|
|
identidade.appendChild(Empresa);
|
|
|
|
const Coluna_2 = document.createElement('div');
|
|
Coluna_2.classList.add('Colunas_2');
|
|
|
|
const seguimento_1_colun_2 = document.createElement('div');
|
|
seguimento_1_colun_2.classList.add('seguimentos_1');
|
|
Coluna_2.appendChild(seguimento_1_colun_2);
|
|
|
|
const seguimento_2_colun_2 = document.createElement('div');
|
|
seguimento_2_colun_2.classList.add('seguimentos_2');
|
|
Coluna_2.appendChild(seguimento_2_colun_2);
|
|
|
|
//Sessão de Cima
|
|
|
|
const sessao1 = document.createElement('div');
|
|
sessao1.classList.add('sessao_1');
|
|
seguimento_2_colun_2.appendChild(sessao1);
|
|
|
|
//Home
|
|
|
|
const sessao1_a_1 = document.createElement('a');
|
|
sessao1_a_1.href = dadosDoBloco.Menu_home_a;
|
|
sessao1_a_1.target = 'frame';
|
|
sessao1.appendChild(sessao1_a_1);
|
|
|
|
const sessao1_a_1_item_menu = document.createElement('div');
|
|
sessao1_a_1_item_menu.classList.add('item_menu');
|
|
sessao1_a_1.appendChild(sessao1_a_1_item_menu);
|
|
|
|
const sessao1_a_1_item_menu_img = document.createElement('img');
|
|
sessao1_a_1_item_menu_img.src = dadosDoBloco.Menu_home_img;
|
|
sessao1_a_1_item_menu_img.alt = "";
|
|
sessao1_a_1_item_menu.appendChild(sessao1_a_1_item_menu_img);
|
|
const sessao1_a_1_item_menu_text = document.createElement('p');
|
|
sessao1_a_1_item_menu_text.textContent = dadosDoBloco.Menu_home_text;
|
|
sessao1_a_1_item_menu.appendChild(sessao1_a_1_item_menu_text);
|
|
|
|
//SevicDesck
|
|
|
|
const sessao1_a_2 = document.createElement('a');
|
|
sessao1_a_2.href = dadosDoBloco.Menu_Servicedesk_a;
|
|
sessao1.appendChild(sessao1_a_2);
|
|
|
|
const sessao1_a_2_item_menu = document.createElement('div');
|
|
sessao1_a_2_item_menu.classList.add('item_menu');
|
|
sessao1_a_2.appendChild(sessao1_a_2_item_menu);
|
|
|
|
const sessao1_a_2_item_menu_img = document.createElement('img');
|
|
sessao1_a_2_item_menu_img.src = dadosDoBloco.Menu_Servicedesk_img;
|
|
sessao1_a_2_item_menu_img.alt = "";
|
|
sessao1_a_2_item_menu.appendChild(sessao1_a_2_item_menu_img);
|
|
const sessao1_a_2_item_menu_text = document.createElement('p');
|
|
sessao1_a_2_item_menu_text.textContent = dadosDoBloco.Menu_Servicedesk_text;
|
|
sessao1_a_2_item_menu.appendChild(sessao1_a_2_item_menu_text);
|
|
|
|
//Monitoramento
|
|
|
|
const sessao1_a_3 = document.createElement('a');
|
|
sessao1_a_3.href = dadosDoBloco.Menu_Monitor_a;
|
|
sessao1_a_3.target = 'frame';
|
|
sessao1.appendChild(sessao1_a_3);
|
|
|
|
const sessao1_a_3_item_menu = document.createElement('div');
|
|
sessao1_a_3_item_menu.classList.add('item_menu');
|
|
sessao1_a_3.appendChild(sessao1_a_3_item_menu);
|
|
|
|
const sessao1_a_3_item_menu_img = document.createElement('img');
|
|
sessao1_a_3_item_menu_img.src = dadosDoBloco.Menu_Monitor_img;
|
|
sessao1_a_3_item_menu_img.alt = "";
|
|
sessao1_a_3_item_menu.appendChild(sessao1_a_3_item_menu_img);
|
|
const sessao1_a_3_item_menu_text = document.createElement('p');
|
|
sessao1_a_3_item_menu_text.textContent = dadosDoBloco.Menu_Monitor_text;
|
|
sessao1_a_3_item_menu.appendChild(sessao1_a_3_item_menu_text);
|
|
|
|
//Sessão de baixo
|
|
|
|
const sessao2 = document.createElement('div');
|
|
sessao2.classList.add('sessao_2');
|
|
seguimento_2_colun_2.appendChild(sessao2);
|
|
|
|
//Suporte
|
|
|
|
const sessao2_a_1 = document.createElement('a');
|
|
sessao2_a_1.href = dadosDoBloco.Menu_Suporte_a;
|
|
sessao2.appendChild(sessao2_a_1);
|
|
|
|
const sessao2_a_1_item_menu = document.createElement('div');
|
|
sessao2_a_1_item_menu.classList.add('item_menu');
|
|
sessao2_a_1.appendChild(sessao2_a_1_item_menu);
|
|
|
|
const sessao2_a_1_item_menu_img = document.createElement('img');
|
|
sessao2_a_1_item_menu_img.src = dadosDoBloco.Menu_Suporte_img;
|
|
sessao2_a_1_item_menu_img.alt = "";
|
|
sessao2_a_1_item_menu.appendChild(sessao2_a_1_item_menu_img);
|
|
const sessao2_a_1_item_menu_text = document.createElement('p');
|
|
sessao2_a_1_item_menu_text.textContent = dadosDoBloco.Menu_Suporte_text;
|
|
sessao2_a_1_item_menu.appendChild(sessao2_a_1_item_menu_text);
|
|
|
|
//Configuração
|
|
|
|
const sessao2_a_2 = document.createElement('a');
|
|
sessao2_a_2.href = dadosDoBloco.Menu_Config_a;
|
|
sessao2_a_2.target = 'frame';
|
|
sessao2.appendChild(sessao2_a_2);
|
|
|
|
const sessao2_a_2_item_menu = document.createElement('div');
|
|
sessao2_a_2_item_menu.classList.add('item_menu');
|
|
sessao2_a_2.appendChild(sessao2_a_2_item_menu);
|
|
|
|
const sessao2_a_2_item_menu_img = document.createElement('img');
|
|
sessao2_a_2_item_menu_img.src = dadosDoBloco.Menu_Config_img;
|
|
sessao2_a_2_item_menu_img.alt = "";
|
|
sessao2_a_2_item_menu.appendChild(sessao2_a_2_item_menu_img);
|
|
const sessao2_a_2_item_menu_text = document.createElement('p');
|
|
sessao2_a_2_item_menu_text.textContent = dadosDoBloco.Menu_Config_text;
|
|
sessao2_a_2_item_menu.appendChild(sessao2_a_2_item_menu_text);
|
|
|
|
//capitulo 2
|
|
|
|
const capitulo_2 = document.createElement('section');
|
|
capitulo_2.classList.add('capitulo_2');
|
|
const Corpo_2 = document.createElement('section');
|
|
Corpo_2.classList.add('Corpo_2');
|
|
const Corpo_2_Coluna_1 = document.createElement('div');
|
|
Corpo_2_Coluna_1.classList.add('Colunas_1');
|
|
|
|
const Tela = document.createElement('iframe');
|
|
Tela.classList.add('transmissão');
|
|
Tela.src = dadosDoBloco.Tela;
|
|
Tela.name = 'frame';
|
|
Corpo_2_Coluna_1.appendChild(Tela);
|
|
|
|
|
|
|
|
// Adicionar o painel ao bloco
|
|
|
|
Painel.appendChild(cab);
|
|
Painel.appendChild(Matriz);
|
|
|
|
|
|
cab.appendChild(sucab);
|
|
sucab.appendChild(bloco_subcab1_1);
|
|
sucab.appendChild(bloco_subcab1_2);
|
|
|
|
Matriz.appendChild(capitulo_1);
|
|
capitulo_1.appendChild(Corpo_1);
|
|
Corpo_1.appendChild(Coluna_1);
|
|
Corpo_1.appendChild(Coluna_2);
|
|
|
|
Matriz.appendChild(capitulo_2);
|
|
capitulo_2.appendChild(Corpo_2);
|
|
Corpo_2.appendChild(Corpo_2_Coluna_1);
|
|
|
|
|
|
// Adicionar o bloco ao container de blocos
|
|
entrada_1.appendChild(Painel);
|
|
});
|
|
|
|
// Todas as funcionalidades que precisam da pagina construida precisam estar dentro de uma função e serem chamadas aqui.
|
|
|
|
espasao();
|
|
|
|
// Event listener para o botão de logout
|
|
const logoutButton = document.getElementById('logoutButton');
|
|
if (logoutButton) {
|
|
logoutButton.addEventListener('click', function () {
|
|
// Limpar o token do localStorage ao clicar no botão de logout
|
|
clearAuthToken();
|
|
// Redirecionar para a página de login ou qualquer outra página desejada após o logout
|
|
window.location.href = '../login.html';
|
|
});
|
|
}
|
|
|
|
|
|
|
|
} catch (error) {
|
|
console.error('Erro ao criar blocos:', error);
|
|
}
|
|
}
|
|
|
|
// Chama a função para criar os blocos ao carregar a página
|
|
document.addEventListener('DOMContentLoaded', criarBlocos);
|
|
|
|
|
|
|
|
|
|
function espasao() {
|
|
|
|
|
|
var botao = document.querySelector('#menu')
|
|
var cabecario = document.querySelector('.cabecario_1')
|
|
var tela = document.querySelector('.transmissão')
|
|
var menu = document.querySelector('.capitulo_1')
|
|
var temas = document.querySelectorAll('.item_menu')
|
|
|
|
|
|
botao.addEventListener('click', function () {
|
|
menu.classList.toggle('expansao');
|
|
cabecario.classList.toggle('expansao');
|
|
tela.classList.toggle('expansao');
|
|
|
|
});
|
|
|
|
function selectLink() {
|
|
temas.forEach((item) =>
|
|
item.classList.remove('ativo')
|
|
)
|
|
this.classList.add('ativo')
|
|
}
|
|
temas.forEach((item) =>
|
|
item.addEventListener('click', selectLink))
|
|
|
|
}
|
|
|