145 lines
4.1 KiB
JavaScript
145 lines
4.1 KiB
JavaScript
async function respostaServer_data() {
|
|
// Function to get the API URL
|
|
async function getApiUrl() {
|
|
try {
|
|
const response = await fetch('../../../Site_ItGuys/php/config_url.php');
|
|
if (!response.ok) {
|
|
throw new Error('Network response was not ok');
|
|
}
|
|
const data = await response.json();
|
|
return data.apiUrl;
|
|
} catch (error) {
|
|
console.error('Error fetching API URL:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
// Function to get the authentication token
|
|
function getAuthToken() {
|
|
return localStorage.getItem('x-access-token');
|
|
}
|
|
|
|
const apiUrl = await getApiUrl();
|
|
const token = getAuthToken();
|
|
return { apiUrl, token };
|
|
}
|
|
|
|
async function verificardados() {
|
|
try {
|
|
const { apiUrl, token } = await respostaServer_data();
|
|
|
|
const response = await fetch(`${apiUrl}/mounting`, {
|
|
method: 'GET',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'x-access-token': token || ''
|
|
}
|
|
});
|
|
|
|
if (!response.ok) {
|
|
throw new Error('Erro na requisição: ' + response.statusText);
|
|
}
|
|
|
|
const data = await response.json();
|
|
const nameempresa = data.empresa?.nome || 'Empresa Desconhecida';
|
|
|
|
console.log(nameempresa);
|
|
|
|
const Data_Center = {
|
|
Ser_User: {},
|
|
Ser_Itguys: {}
|
|
};
|
|
|
|
if (nameempresa === 'itguys') {
|
|
setupItGuysServices(Data_Center);
|
|
}
|
|
|
|
if (true) { // Assuming this is a permission check
|
|
setupUserServices(Data_Center);
|
|
}
|
|
|
|
renderAllServices(Data_Center);
|
|
} catch (error) {
|
|
console.error('Erro ao verificar o ambiente:', error);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function renderService(service) {
|
|
const { nome, Imagem, id_server, resposta_popup, resposta_script, resposta_estilo } = service;
|
|
const serviceDiv = document.createElement('div');
|
|
serviceDiv.classList.add('painel');
|
|
serviceDiv.id = id_server;
|
|
|
|
serviceDiv.innerHTML = `
|
|
<div class="Colun_1">
|
|
<img src="${Imagem}" alt="">
|
|
</div>
|
|
<div class="Colun_2">
|
|
<h2>${nome}</h2>
|
|
</div>
|
|
`;
|
|
|
|
const painel_serviços_icon = document.getElementById('saida');
|
|
painel_serviços_icon.appendChild(serviceDiv);
|
|
|
|
serviceDiv.addEventListener('click', () => {
|
|
popup(resposta_popup, resposta_script, resposta_estilo);
|
|
});
|
|
}
|
|
|
|
function renderAllServices(Data_Center) {
|
|
const painel_serviços_icon = document.getElementById('saida');
|
|
painel_serviços_icon.innerHTML = '';
|
|
|
|
// Renderiza os serviços de Ser_Itguys
|
|
for (const service of Object.values(Data_Center.Ser_Itguys)) {
|
|
renderService(service);
|
|
}
|
|
|
|
// Renderiza os serviços de Ser_User
|
|
for (const service of Object.values(Data_Center.Ser_User)) {
|
|
renderService(service);
|
|
}
|
|
}
|
|
|
|
function popup(resposta, script, estilo) {
|
|
const painel_serviços = document.getElementById('painel_Servico');
|
|
painel_serviços.innerHTML = `
|
|
<section>
|
|
<div class='colun_1'>
|
|
<button id='fechar'>X</button>
|
|
</div>
|
|
<div class='colun_2'>${resposta}</div>
|
|
</section>
|
|
`;
|
|
|
|
// Remove previous styles and scripts
|
|
document.querySelectorAll('style').forEach(style => style.remove());
|
|
document.querySelectorAll('script[data-dynamic]').forEach(script => script.remove());
|
|
|
|
// Inject style if present
|
|
if (estilo) {
|
|
const style = document.createElement('style');
|
|
style.innerHTML = estilo;
|
|
document.head.appendChild(style);
|
|
}
|
|
|
|
// Inject script if present
|
|
if (script) {
|
|
const scriptElement = document.createElement('script');
|
|
scriptElement.setAttribute('data-dynamic', '');
|
|
scriptElement.src = script;
|
|
document.body.appendChild(scriptElement);
|
|
}
|
|
|
|
document.getElementById('fechar').addEventListener('click', () => {
|
|
painel_serviços.style.display = "none";
|
|
});
|
|
|
|
painel_serviços.style.display = "flex";
|
|
}
|
|
|
|
window.addEventListener('load', verificardados);
|