diff --git a/Acessts/Imagens/Iconis/User 1.png b/Acessts/Imagens/Iconis/User 1.png index 6376578..1bb74f6 100644 Binary files a/Acessts/Imagens/Iconis/User 1.png and b/Acessts/Imagens/Iconis/User 1.png differ diff --git a/Acessts/Imagens/Iconis/User 2.png b/Acessts/Imagens/Iconis/User 2.png index 0e8f8e7..f2bbf29 100644 Binary files a/Acessts/Imagens/Iconis/User 2.png and b/Acessts/Imagens/Iconis/User 2.png differ diff --git a/Acessts/Imagens/Iconis/Zammad_logo.png b/Acessts/Imagens/Iconis/Zammad_logo.png new file mode 100644 index 0000000..fcbc1fd Binary files /dev/null and b/Acessts/Imagens/Iconis/Zammad_logo.png differ diff --git a/Acessts/Imagens/Iconis/o-email.png b/Acessts/Imagens/Iconis/o-email.png index 77fff1c..6d06b93 100644 Binary files a/Acessts/Imagens/Iconis/o-email.png and b/Acessts/Imagens/Iconis/o-email.png differ diff --git a/Acessts/Imagens/Utili/Tela_Marca White.jpg b/Acessts/Imagens/Utili/Tela_Marca White.jpg new file mode 100644 index 0000000..aa8a137 Binary files /dev/null and b/Acessts/Imagens/Utili/Tela_Marca White.jpg differ diff --git a/Css/global/Scroll.css b/Css/global/Scroll.css index e286e73..c4d7baa 100644 --- a/Css/global/Scroll.css +++ b/Css/global/Scroll.css @@ -1,5 +1,6 @@ /* Estilo customizado para o scroll (somente no Webkit) */ -.Capitulo_1 .linha_1 .Corpo::-webkit-scrollbar { +.Capitulo_1 .linha_1 .Corpo::-webkit-scrollbar, +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens::-webkit-scrollbar-thumb { width: 0.2vw; /* Largura da barra de rolagem */ height: 0.2vw; @@ -7,7 +8,8 @@ } -.Capitulo_1 .linha_1 .Corpo::-webkit-scrollbar-thumb { +.Capitulo_1 .linha_1 .Corpo::-webkit-scrollbar-thumb, +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens::-webkit-scrollbar-thumb { background-color: var(--Cor_Segundaria_2_1); /* Cor da parte da barra que você arrasta */ border-radius: 1vw; @@ -16,7 +18,8 @@ } /* Aumentando o tamanho do track (fundo da barra de rolagem) */ -.Capitulo_1 .linha_1 .Corpo::-webkit-scrollbar-track { +.Capitulo_1 .linha_1 .Corpo::-webkit-scrollbar-track, +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens::-webkit-scrollbar-thumb { background-color: var(--Cor_Segundaria_5_2); /* Cor do fundo do scroll */ border-radius: 10px; diff --git a/Css/page/Ambiente/Config/pop.css b/Css/page/Ambiente/Config/pop.css index d393a2d..0606893 100644 --- a/Css/page/Ambiente/Config/pop.css +++ b/Css/page/Ambiente/Config/pop.css @@ -2,43 +2,61 @@ .Pop_up_Config.PainelEstilo .Pop_up_Config.PainelUser { color: #000; - + /*define a cor */ } .Pop_up_Config.PainelEstilo { display: none; - + /* define o display como none*/ border: none; + /*retira a borda padrao do html*/ flex-direction: column; + /*define a direção dos itens na div*/ width: 40vw; + /*define largura*/ height: 70vh; + /*Define altura*/ border-radius: 3vw; + /*define tamanho da borda*/ position: absolute; + /*define se que o elemento ta solto*/ top: 10vh; + /*define o quao pra cima vai estar o objeto*/ left: 30vw; + /*define o qual para esquerda o objeto vai estar */ background-color: #D9D9D9; - + /*define a cor de fundo*/ } .Pop_up_Config.PainelEstilo .PainelFechar button { border: none; + /*tira a borda do html*/ background: none; + /*tira o backgrond*/ outline: none; + /*tira a borda de foco*/ width: 2vw; + /*define largura*/ height: 2vw; + /*define altura*/ margin-left: 1vw; + /*define a margin da esquerda*/ margin-top: 1vw; + /*define a margin de cima*/ color: var(--Matriz); /* Cor do texto do botão */ background-color: var(--Cor_Segundaria_5_1); /* Cor de fundo do botão */ border-radius: 12vh; + /*define aredondamento da borda*/ transition: 1s ease; /* Transição suave de 1 segundo */ - font-family: var(--Cor_Segundaria_5_1); + font-family: var(--font_conteudo); + /*define a fonte */ font-size: 0.8vw; + /*define tamanho*/ } .Pop_up_Config.PainelEstilo .PainelFechar button:hover { @@ -49,67 +67,109 @@ transition: 1s ease; /* Transição suave de 1 segundo */ font-family: var(--font_titulo); + /*define a fonte usada*/ } .Pop_up_Config.PainelEstilo .PainelFechar .TituloPopup img { width: 2vw; + /*define largura*/ height: 2vw; - + /*define altura*/ font-size: 0.8vw; - + /*define tamanho da fonte*/ } .Pop_up_Config.PainelEstilo .PainelConteudo .Forme .CampoInsercao_Perfil button { color: var(--Cor_Segundaria_5_1); /* Muda a cor do texto */ background: none; + /*deixa sem background*/ outline: none; + /*tira a borda de foco*/ border: none; + /*tira a borda*/ background-color: var(--Matriz); /* Muda a cor de fundo */ width: 10vw; + /*define a laregura*/ height: 20vh; + /*define a altura*/ border-radius: 12vh; - font-size: 0.8vw; + /*define o quao arredondado fica a borda*/ + font-size: 2.5vw; + /*define o tamanho da fonte*/ justify-content: center; + /* Alinha os itens horizontalmente no centro do container */ align-items: center; + /* Alinha os itens verticalmente no centro do container */ font-family: var(--font_titulo); + /* Define a fonte para o título, utilizando uma variável CSS */ + } .Pop_up_Config.PainelEstilo .PainelConteudo .Forme .CampoInsercao_Fundo button { color: var(--Cor_Segundaria_5_1); /* Muda a cor do texto */ background: none; + /* Remove o fundo do elemento */ outline: none; + /* Remove a borda de foco (outline) */ border: none; + /* Remove a borda do elemento */ background-color: var(--Matriz); /* Muda a cor de fundo */ width: 10vw; + /* Define a largura do elemento como 10% da largura da janela de visualização */ height: 20vh; + /* Define a altura do elemento como 20% da altura da janela de visualização */ justify-content: center; + /* Alinha os itens horizontalmente no centro do container */ align-items: center; + /* Alinha os itens verticalmente no centro do container */ font-family: var(--font_titulo); - font-size: 0.8vw; + /* Define a fonte para o título, utilizando uma variável CSS */ + font-size: 2.5vw; + /* Define o tamanho da fonte como 0.8% da largura da janela de visualização */ } .Pop_up_Config.PainelManual { display: none; + /* Esconde o elemento da página (não será exibido) */ + width: 40vw; + /* Define a largura do elemento como 40% da largura da janela de visualização */ + height: 70vh; + /* Define a altura do elemento como 70% da altura da janela de visualização */ + margin: 1vh; + /* Adiciona uma margem de 1% da altura da janela de visualização */ + position: absolute; + /* Posiciona o elemento de forma absoluta em relação ao contêiner mais próximo */ + top: 10vh; + /* Define a distância do topo do contêiner (10% da altura da janela de visualização) */ + left: 30vw; + /* Define a distância da esquerda do contêiner (30% da largura da janela de visualização) */ background-color: black; + /* Define o fundo do elemento com cor preta */ } .Pop_up_Config.PainelEstilo .PainelFechar .TituloPopup h2 { font-family: var(--font_titulo); + /* Define a fonte para o título, utilizando uma variável CSS */ + color: rgb(0, 55, 100); + /* Define a cor do texto usando valores RGB (azul escuro) */ + font-size: 3vh; + /* Define o tamanho da fonte como 3% da altura da janela de visualização */ + } @@ -117,86 +177,169 @@ .Pop_up_Config.PainelEstilo .PainelFechar { width: 100%; + /* Define a largura do elemento como 100% da largura do contêiner pai */ + align-items: center; + /* Alinha os itens verticalmente no centro do container (quando usando flexbox) */ + font-family: var(--font_titulo); + /* Define a fonte para o título, utilizando uma variável CSS */ + display: flex; + /* Define o layout como flexbox, permitindo o uso das propriedades de alinhamento e direção */ + flex-direction: row; + /* Define a direção dos itens dentro do flexbox como linha (horizontal) */ + height: 10%; + /* Define a altura do elemento como 10% da altura do contêiner pai */ + } .Pop_up_Config.PainelEstilo .PainelFechar .TituloPopup { margin-top: 2vh; + /* Adiciona uma margem no topo do elemento equivalente a 2% da altura da janela de visualização */ width: 80%; + /* Define a largura do elemento como 80% da largura do contêiner pai */ + display: flex; + /* Define o layout como flexbox, permitindo o uso das propriedades de alinhamento e direção */ + align-items: center; + /* Alinha os itens verticalmente no centro do container (quando usando flexbox) */ + justify-content: center; + /* Alinha os itens horizontalmente no centro do container (quando usando flexbox) */ + flex-direction: row; + /* Define a direção dos itens dentro do flexbox como linha (horizontal) */ + gap: 0.8vw; + /* Define o espaço entre os itens dentro do container como 0.8% da largura da janela de visualização */ + height: 15%; + /* Define a altura do elemento como 15% da altura do contêiner pai */ + } .Pop_up_Config.PainelEstilo .PainelConteudo .Forme .CampoInsercao_Perfil label { font-family: var(--font_conteudo); + /* define a fonte*/ color: rgb(0, 55, 100); + /* define a cor */ font-size: 1.8vw; + /* define tamanho*/ } .Pop_up_Config.PainelEstilo .PainelConteudo .Forme .CampoInsercao_Fundo label { font-family: var(--font_conteudo); + /* define a fonte*/ color: rgb(0, 55, 100); + /* define a cor */ font-size: 1.8vw; + /* define tamanho*/ } .Pop_up_Config.PainelEstilo .PainelConteudo .Forme .CampoInsercao_Perfil { margin-top: 2vh; + /*define a margin de cima*/ width: 100%; + /*largura*/ display: flex; + /*define o dysplay */ align-items: center; + /*alinhar os itens no eixo transversal */ justify-content: center; + /*para alinhar os itens ao longo do eixo principal */ flex-direction: column; + /* alterar a direção do eixo principal dentro de um contêiner flexível.*/ height: 30%; - + /*definir a altura de um elemento como uma porcentagem em relação à altura do seu elemento pai.*/ } .Pop_up_Config.PainelEstilo .PainelConteudo .Forme .CampoInsercao_Fundo { margin-top: 2vh; + /* Dá uma margem superior de 2% da altura da janela de visualização */ + width: 100%; + /* Define a largura do elemento para 100% da largura do seu contêiner pai */ + display: flex; + /* Define o contêiner como um flexbox para controlar o layout dos filhos */ + align-items: center; + /* Alinha os itens ao longo do eixo transversal (horizontal) no centro */ + justify-content: center; + /* Alinha os itens ao longo do eixo principal (vertical, já que o flex-direction está em coluna) no centro */ + flex-direction: column; + /* Define que o eixo principal do layout será vertical (os itens serão organizados em uma coluna) */ + height: 30%; + /* Define a altura do elemento para 30% da altura do seu contêiner pai */ } .Pop_up_Config.PainelEstilo .PainelConteudo .Forme .CampoInsercao_Enviar { margin-top: 2vh; + /* Define uma margem superior de 2% da altura da janela de visualização (a altura da tela) */ + height: 5%; + /* Define a altura do elemento como 5% da altura do seu contêiner pai */ + display: flex; + /* Define o contêiner como um flexbox, permitindo controlar o layout dos itens filhos de forma flexível */ + align-items: center; + /* Alinha os itens ao longo do eixo transversal (horizontal) no centro do contêiner */ + justify-content: center; + /* Alinha os itens ao longo do eixo principal (vertical, no caso de flex-direction ser o padrão, que é horizontal) no centro */ } .Pop_up_Config.PainelEstilo .PainelConteudo .Forme .CampoInsercao_Enviar button { margin-top: 1vh; + /* Define uma margem superior de 1% da altura da janela de visualização (altura da tela) */ + border: none; + /* Remove qualquer borda do elemento (como se fosse um botão, por exemplo) */ + background: none; + /* Remove qualquer fundo anterior, deixando o fundo transparente (pode ser redundante com o background-color) */ + outline: none; + /* Remove a linha de foco ao clicar no elemento (geralmente usada em botões ou links) */ + width: 12vw; - height: 8vh; + /* Define a largura do elemento como 12% da largura da janela de visualização (tela) */ + + height: 5vh; + /* Define a altura do elemento como 8% da altura da janela de visualização (tela) */ + font-size: 0.8vw; + /* Define o tamanho da fonte como 0.8% da largura da janela de visualização, ajustando o texto de acordo com o tamanho da tela */ + color: #D9D9D9; - /* Muda a cor do texto */ + /* Define a cor do texto para um cinza claro (#D9D9D9) */ + background-color: var(--Cor_Segundaria_5_1); - /* Cor de fundo do botão */ + /* Define a cor de fundo usando uma variável CSS personalizada (substituída por um valor real da variável) */ + border-radius: 12vh; + /* Define um raio de borda grande, criando bordas arredondadas com um valor proporcional à altura da tela */ transition: 1s ease; - /* Transição suave de 1 segundo */ + /* Adiciona uma transição suave de 1 segundo, com um efeito de suavização "ease" (transição mais natural) */ + font-family: var(--font_conteudo); + /* Define a fonte do texto usando uma variável CSS personalizada para a família de fontes (substituída pelo valor real da variável) */ + font-size: 0.8vw; + /* Define novamente o tamanho da fonte, repetindo a linha anterior */ + } @@ -213,33 +356,62 @@ /*pop user*/ .Pop_up_Config.PainelUser .PainelConteudo .TituloPopup img { width: 3vw; + /* Define a largura do elemento como 3% da largura da janela de visualização (tela) */ + height: 3vw; + /* Define a altura do elemento como 3% da largura da janela de visualização (tela) */ + font-size: 1.8vw; + /* Define o tamanho da fonte como 1.8% da largura da janela de visualização (tela), ajustando o texto de acordo com a largura da tela */ + } .Pop_up_Config.PainelUser { display: none; + /* Oculta o elemento, fazendo com que ele não seja exibido na página. (Se for necessário exibir o elemento, você pode usar display: block ou outro valor adequado) */ + flex-direction: column; + /* Define que o layout do contêiner flex será em coluna, organizando os itens de cima para baixo (funciona somente se o elemento for um contêiner flex). */ + width: 40vw; + /* Define a largura do elemento como 40% da largura da janela de visualização (tela). */ + height: 80vh; + /* Define a altura do elemento como 80% da altura da janela de visualização (tela). */ + margin: 1vh; + /* Define uma margem ao redor do elemento de 1% da altura da janela de visualização (tela). Isso cria um espaço ao redor do elemento. */ + position: absolute; + /* Define que o elemento será posicionado de forma absoluta em relação ao seu contêiner pai mais próximo com position relativa ou ao documento, se não houver um contêiner com position relativa. */ + top: 10vh; + /* Define a posição do topo do elemento a 10% da altura da janela de visualização (tela), movendo o elemento para baixo em relação ao seu contêiner pai ou ao documento. */ + left: 30vw; + /* Define a posição do lado esquerdo do elemento a 30% da largura da janela de visualização (tela), movendo o elemento para a direita em relação ao seu contêiner pai ou ao documento. */ border-radius: 3vw; + /* Define bordas arredondadas com um raio de 3% da largura da janela de visualização, criando bordas suavemente arredondadas. */ + background-color: #D9D9D9; + /* Define a cor de fundo do elemento como um tom de cinza claro (#D9D9D9). */ + border: 0.2vw solid var(--Cor_Segundaria_5_1); + /* Define uma borda de 0.2% da largura da janela de visualização, com uma cor sólida baseada em uma variável CSS personalizada chamada --Cor_Segundaria_5_1. */ + } .Pop_up_Config.PainelUser .TituloPopup { - display: flex; + /* Define o contêiner como um flexbox, permitindo organizar os itens dentro dele de maneira flexível. */ flex-direction: row; + /* Organiza os itens dentro do contêiner de forma **horizontal** (na linha), ou seja, os itens serão dispostos da esquerda para a direita. */ + } @@ -247,44 +419,65 @@ .Pop_up_Config.PainelUser .PainelFechar button { background: none; + /* Remove qualquer fundo do elemento, deixando-o transparente ou sem qualquer imagem/fundo definido. */ + outline: none; + /* Remove a linha de contorno que aparece ao clicar no elemento (geralmente usada para mostrar o foco, como em botões ou links). */ + border: none; + /* Remove qualquer borda do elemento, tornando-o sem borda visível. */ + color: #D9D9D9; + /* Define a cor do texto como um tom de cinza claro (#D9D9D9). */ + width: 2vw; + /* Define a largura do elemento como 2% da largura da janela de visualização (tela). */ + height: 4vh; - /* Muda a cor do texto */ + /* Define a altura do elemento como 4% da altura da janela de visualização (tela). */ + background-color: var(--Cor_Segundaria_5_1); - /* Cor de fundo do botão */ + /* Define a cor de fundo do elemento usando uma variável CSS personalizada (no caso, a variável --Cor_Segundaria_5_1, que será substituída pelo valor real da variável). */ + border-radius: 12vh; + /* Define bordas arredondadas com um valor de 12% da altura da tela (o que cria um formato bem arredondado, quase circular dependendo das proporções da tela). */ transition: 1s ease; - /* Transição suave de 1 segundo */ + /* Define uma transição suave de 1 segundo, com um efeito de suavização "ease" (transição gradual que começa mais devagar, acelera no meio e desacelera no final). */ + font-family: var(--font_conteudo); + /* Define a fonte do texto utilizando uma variável CSS personalizada para a família de fontes (será substituída pelo valor real da variável). */ font-size: 0.8vw; - /* Arredondar completamente */ + /* Define o tamanho da fonte como 0.8% da largura da janela de visualização (tela), fazendo com que o texto seja responsivo e se ajuste ao tamanho da tela. */ + } #VoltarPopup { background: none; + /* Remove qualquer fundo do elemento (sem cor ou imagem de fundo) */ outline: none; + /* Remove a linha de contorno que aparece ao focar o elemento (geralmente ao clicar em botões ou links) */ border: none; + /* Remove qualquer borda visível do elemento */ color: #D9D9D9; + /* Define a cor do texto para um tom de cinza claro (#D9D9D9) */ width: 7vw; + /* Define a largura do elemento como 7% da largura da janela de visualização (tela), ajustando-se automaticamente ao tamanho da tela */ height: 4vh; - /* Muda a cor do texto */ + /* Define a altura do elemento como 4% da altura da janela de visualização (tela), ajustando-se automaticamente ao tamanho da tela */ background-color: var(--Cor_Segundaria_5_1); - /* Cor de fundo do botão */ + /* Define a cor de fundo do elemento utilizando uma variável CSS personalizada chamada --Cor_Segundaria_5_1, que será substituída pelo valor da variável */ border-radius: 12vh; - + /* Define bordas arredondadas com um valor de 12% da altura da tela, criando bordas muito arredondadas, quase circulares */ transition: 1s ease; - /* Transição suave de 1 segundo */ + /* Adiciona uma transição suave de 1 segundo, com um efeito de suavização "ease" (transição gradual que acelera e desacelera de forma natural) */ font-family: var(--font_conteudo); - - /* Arredondar completamente */ + /* Define a fonte do texto usando uma variável CSS personalizada chamada --font_conteudo, que será substituída pelo valor real da variável */ font-size: 0.8vw; + /* Define o tamanho da fonte como 0.8% da largura da janela de visualização, fazendo o texto responsivo e ajustando automaticamente ao tamanho da tela */ } @@ -311,53 +504,85 @@ .Pop_up_Config.PainelUser .PainelFechar { - - border-radius: 12vh; + /* Define bordas arredondadas no elemento com um raio de 12% da altura da tela, criando bordas muito arredondadas, quase circulares. */ transition: 1s ease; - /* Transição suave de 1 segundo */ + /* Aplica uma transição suave de 1 segundo, com um efeito de suavização "ease", o que significa que a mudança ocorrerá lentamente no início e no final da animação. */ font-family: var(--font_conteudo); - font-size: 0.8vw; - align-items: end; + /* Define a fonte do texto usando uma variável CSS personalizada chamada --font_conteudo, permitindo flexibilidade na escolha da fonte. */ + font-size: 0.8vw; + /* Define o tamanho da fonte como 0.8% da largura da janela de visualização, tornando o texto responsivo ao tamanho da tela. */ + + align-items: end; + /* Alinha os itens dentro do contêiner flex ao **final** do eixo transversal (em um contêiner com `flex-direction: row`, o eixo transversal é vertical). Ou seja, os itens são alinhados na parte inferior. */ display: flex; + /* Define o elemento como um contêiner flexível, permitindo que você organize os itens dentro dele usando as propriedades flexbox. */ flex-direction: row; + /* Organiza os itens dentro do contêiner de forma **horizontal** (em uma linha), ou seja, os itens serão dispostos da esquerda para a direita. Esse é o comportamento padrão de um contêiner flex. */ + margin-top: 1vw; + /* Adiciona uma margem superior de 1% da largura da janela de visualização, criando um espaço acima do elemento. */ + margin-left: 1vw; + /* Adiciona uma margem à esquerda do elemento de 1% da largura da janela de visualização, criando espaço à esquerda do elemento. */ + margin-right: 1vw; + /* Adiciona uma margem à direita do elemento de 1% da largura da janela de visualização, criando espaço à direita do elemento. */ justify-content: space-between; - + /* Define que os itens dentro do contêiner flex serão distribuídos ao longo do eixo principal (horizontal, neste caso), com espaço igual entre eles, deixando o primeiro item no início e o último no final do contêiner. */ } .Pop_up_Config.PainelUser .PainelConteudo .TituloPopup { gap: 1vw; + /* Define um espaço de 1% da largura da janela de visualização entre os itens dentro do contêiner flexível. Essa propriedade cria um espaço igual entre os elementos filhos do contêiner. */ + width: 100%; + /* Define a largura do contêiner como 100% da largura da janela de visualização, fazendo com que ele ocupe toda a largura disponível da tela. */ + display: flex; + /* Define o contêiner como um **flexbox**, permitindo usar as propriedades do flexbox para organizar os itens dentro dele de maneira flexível. */ + align-items: center; + /* Alinha os itens dentro do contêiner **verticalmente** no centro do contêiner (no eixo transversal, ou seja, o eixo perpendicular à direção principal). */ + justify-content: center; + /* Alinha os itens dentro do contêiner **horizontalmente** no centro do contêiner (ao longo do eixo principal, ou seja, o eixo de distribuição). */ + font-family: var(--font_titulo); + /* Define a fonte do texto dentro do contêiner como uma variável CSS personalizada chamada --font_titulo. O valor real da variável será substituído, permitindo flexibilidade na escolha da fonte. */ } .Pop_up_Config.PainelUser .PainelConteudo .TituloPopup { color: var(--Cor_Segundaria_5_1); + /*define a cor com uma variavel no css*/ font-family: var(--font_titulo); - + /* Define a fonte do texto dentro do contêiner como uma variável CSS personalizada chamada --font_titulo. O valor real da variável será substituído, permitindo flexibilidade na escolha da fonte. */ } .Pop_up_Config.PainelUser .PainelConteudo { flex-direction: column; + /* Define a direção dos itens dentro do contêiner flex como **coluna**, ou seja, os itens serão organizados **verticalmente** (um embaixo do outro). */ + width: 100%; + /* Define a largura do contêiner como **100% da largura da janela de visualização**, fazendo com que o contêiner ocupe toda a largura disponível na tela. */ + display: flex; + /* Define o elemento como um **contêiner flexível**, permitindo usar o layout flexbox para organizar os itens de forma dinâmica e flexível. */ + align-items: center; + /* Alinha os itens **verticalmente** no centro do contêiner (no eixo transversal). Isso é útil quando os itens têm alturas variadas e você quer que eles fiquem centralizados na área disponível. */ + justify-content: center; + /* Alinha os itens **horizontalmente** no centro do contêiner (ao longo do eixo principal, ou seja, o eixo de distribuição). Isso garante que os itens sejam centralizados na tela ou no contêiner disponível. */ } @@ -365,62 +590,87 @@ .Pop_up_Config.PainelUser .PainelConteudo .Forme .CampoInsercao h2 { font-family: var(--font_titulo); + /* Define a **família de fontes** do texto dentro do elemento utilizando uma variável CSS personalizada chamada --font_titulo. O valor real dessa variável será substituído, permitindo flexibilidade na escolha da fonte. */ + color: rgb(0, 55, 100); + /* Define a **cor do texto** utilizando o modelo de cor RGB (vermelho, verde, azul). Neste caso, o texto será da cor **azul escuro**, com 0 de vermelho, 55 de verde e 100 de azul. */ + font-size: 3vh; + /* Define o **tamanho da fonte** como 3% da altura da janela de visualização. Isso significa que o tamanho da fonte será adaptado com base na altura da tela, tornando o texto responsivo. */ width: 25vw; - height: 5vh; + /* Define a **largura** do elemento como 25% da largura da janela de visualização. Isso faz com que o elemento ocupe uma fração da largura da tela. */ + height: 5vh; + /* Define a **altura** do elemento como 5% da altura da janela de visualização. Isso faz com que a altura do elemento seja adaptável ao tamanho da tela. */ } .Pop_up_Config.PainelUser .PainelConteudo .Forme .CampoInsercao { - display: flex; + /* Define o elemento como um **contêiner flexível**, permitindo usar o layout flexbox para organizar os itens dentro dele de maneira flexível. */ + align-items: center; + /* Alinha os itens **verticalmente** no centro do contêiner (no eixo transversal). Isso garante que, independentemente das alturas dos itens, todos fiquem centralizados no contêiner. */ + justify-content: center; + /* Alinha os itens **horizontalmente** no centro do contêiner (ao longo do eixo principal). Isso garante que os itens sejam centralizados ao longo da linha ou coluna do contêiner flexível. */ + flex-direction: column; + /* Define a direção dos itens dentro do contêiner flex como **coluna**. Isso significa que os itens serão organizados **verticalmente** (um embaixo do outro), ao invés de ficarem lado a lado, como é o padrão. */ + } .Pop_up_Config.PainelUser .PainelConteudo .Forme .CampoInsercao select { width: 25vw; + /* Define a **largura** do elemento como 25% da **largura da janela de visualização** (tela). Isso faz com que o elemento ocupe uma fração da largura da tela, adaptando-se ao tamanho da janela. */ + height: 4vh; + /* Define a **altura** do elemento como 4% da **altura da janela de visualização**. Isso significa que a altura do elemento será proporcional à altura da tela, tornando o layout responsivo. */ + font-family: var(--font_conteudo); + /* Define a **família de fontes** do texto dentro do elemento usando uma variável CSS personalizada chamada `--font_conteudo`. Essa variável pode ser definida em outro lugar no código, permitindo flexibilidade no uso de fontes. */ + font-size: 1vw; + /* Define o **tamanho da fonte** como 1% da **largura da janela de visualização**. Isso torna o tamanho do texto responsivo ao tamanho da tela, adaptando-se conforme a largura da janela. */ + color: var(--Cor_Segundaria_5_1); + /* Define a **cor do texto** utilizando uma variável CSS personalizada chamada `--Cor_Segundaria_5_1`. A cor será substituída pela definição da variável em outro lugar no código. */ + border-radius: 12vh; + /* Define o **raio de borda** como 12% da **altura da janela de visualização**, criando bordas **muito arredondadas**. Isso torna a borda do elemento extremamente curvada, criando um efeito de bordas quase circulares. */ } .Pop_up_Config.PainelUser .PainelConteudo .Forme .CampoInsercao_criar button { - background: none; - outline: none; - border: none; + width: 25vw; + /* Define a **largura** do elemento como 25% da **largura da janela de visualização** (tela). Isso faz com que o elemento ocupe uma fração da largura da tela, adaptando-se ao tamanho da janela. */ - color: #D9D9D9; + height: 4vh; + /* Define a **altura** do elemento como 4% da **altura da janela de visualização**. Isso significa que a altura do elemento será proporcional à altura da tela, tornando o layout responsivo. */ - /* Muda a cor do texto */ - background-color: var(--Cor_Segundaria_5_1); - /* Cor de fundo do botão */ - border-radius: 12vh; - - transition: 1s ease; - /* Transição suave de 1 segundo */ font-family: var(--font_conteudo); - /* Arredondar completamente */ - width: 8vw; - height: 3vh; - font-size: 0.8vw; + /* Define a **família de fontes** do texto dentro do elemento usando uma variável CSS personalizada chamada `--font_conteudo`. Essa variável pode ser definida em outro lugar no código, permitindo flexibilidade no uso de fontes. */ + + font-size: 1vw; + /* Define o **tamanho da fonte** como 1% da **largura da janela de visualização**. Isso torna o tamanho do texto responsivo ao tamanho da tela, adaptando-se conforme a largura da janela. */ + + color: var(--Cor_Segundaria_5_1); + /* Define a **cor do texto** utilizando uma variável CSS personalizada chamada `--Cor_Segundaria_5_1`. A cor será substituída pela definição da variável em outro lugar no código. */ + + border-radius: 12vh; + /* Define o **raio de borda** como 12% da **altura da janela de visualização**, criando bordas **muito arredondadas**. Isso torna a borda do elemento extremamente curvada, criando um efeito de bordas quase circulares. */ + margin-right: 5vw; } .Pop_up_Config.PainelUser .PainelConteudo .Forme .CampoInsercao_criar button:hover { - color: var(--Cor_Segundaria_5_1); + color: white; /* Muda a cor do texto */ - background-color: white; + background-color: var(--Cor_Segundaria_5_1); /* Muda a cor de fundo */ transition: 1s ease; /* Transição suave de 1 segundo */ @@ -430,36 +680,68 @@ .Pop_up_Config.PainelUser .PainelConteudo .Forme .CampoInsercao input { background: none; + /* Remove o **fundo** do elemento, ou seja, o elemento não terá cor de fundo, imagem ou gradiente. Isso pode ser útil quando você não quer que o fundo do elemento sobrescreva outros estilos. */ + outline: none; + /* Remove o **contorno** do elemento, geralmente usado para remover o contorno que aparece quando o elemento recebe foco, como no caso de campos de formulário. */ + border: none; + /* Remove qualquer **borda** do elemento, deixando-o sem bordas visíveis. Isso é útil se você não quiser bordas padrão nos elementos. */ + font-family: var(--font_conteudo); + /* Define a **família de fontes** do texto dentro do elemento usando uma variável CSS personalizada chamada `--font_conteudo`. A fonte será adaptada de acordo com a variável definida em outro lugar no código. */ + border-bottom: 0.2vw solid var(--Cor_Segundaria_5_1); + /* Adiciona uma **borda inferior** ao elemento com espessura de **0.2% da largura da janela** (usando `vw`) e uma cor definida pela variável CSS `--Cor_Segundaria_5_1`. Isso cria uma linha na parte inferior do elemento, normalmente usada para campos de texto ou links. */ + color: var(--Cor_Segundaria_5_1); + /* Define a **cor do texto** utilizando a variável CSS personalizada `--Cor_Segundaria_5_1`. O valor real dessa cor será substituído pela variável em outro lugar do código. */ + font-size: var(--Matriz); + /* Define o **tamanho da fonte** utilizando uma variável CSS personalizada chamada `--Matriz`. Isso permite que o tamanho da fonte seja ajustado conforme o valor dessa variável em outro lugar do código. */ + width: 25vw; + /* Define a **largura** do elemento como 25% da **largura da janela de visualização** (tela), o que faz o elemento se adaptar à largura da tela. */ + height: 7vh; + /* Define a **altura** do elemento como 7% da **altura da janela de visualização** (tela), fazendo com que o elemento seja adaptável ao tamanho da tela. */ + font-size: 1.8vw; + /* Define o **tamanho da fonte** como 1.8% da **largura da janela de visualização** (tela), tornando o tamanho da fonte responsivo. */ + } .Pop_up_Config.PainelUser .PainelConteudo .Forme .CampoInsercao_criar { display: flex; + /* Define o elemento como um **contêiner flexível**, permitindo o uso do layout flexbox para organizar os itens dentro dele de maneira flexível e dinâmica. */ + align-items: end; + /* Alinha os itens **ao final** do eixo transversal (vertical), ou seja, coloca os itens na **parte inferior** do contêiner se o `flex-direction` for `column`. Caso contrário, no eixo horizontal, eles seriam alinhados à direita. */ + justify-content: center; + /* Alinha os itens **ao centro** ao longo do eixo principal (horizontal ou vertical, dependendo de `flex-direction`). No caso de `flex-direction: column`, isso significa que os itens serão centralizados verticalmente no contêiner. */ + flex-direction: column; + /* Define que os itens dentro do contêiner flex serão organizados em **coluna**, ou seja, um embaixo do outro. Se fosse `row`, os itens seriam organizados horizontalmente, da esquerda para a direita. */ + width: 35vw; - - + /* Define a **largura** do elemento como 35% da **largura da janela de visualização**. Isso faz com que o elemento ocupe uma parte proporcional da largura da tela, adaptando-se ao tamanho da janela. */ } .Pop_up_Config.PainelUser .PainelConteudo .Forme .CampoInsercao p { background: none; + /* Remove qualquer **fundo** do elemento, ou seja, o elemento não terá cor de fundo, imagem ou gradiente. Isso pode ser útil quando você não quer que o fundo do elemento sobrescreva outros estilos. */ outline: none; + /* Remove o **contorno** do elemento, que geralmente aparece quando um campo de formulário ou botão é selecionado ou recebe o foco. Isso pode ser usado para melhorar a aparência visual do elemento, especialmente quando não se deseja um contorno. */ border: none; + /* Remove qualquer **borda** visível do elemento, deixando-o sem bordas. Isso é útil quando você deseja um visual limpo e sem elementos de contorno padrão, como no caso de botões ou campos de texto. */ font-family: var(--font_conteudo); - + /* Define a **família de fontes** do texto dentro do elemento utilizando uma variável CSS personalizada chamada `--font_conteudo`. Isso permite alterar facilmente a fonte de todo o projeto, utilizando um valor variável em vez de uma fonte fixa. */ color: var(--Cor_Segundaria_5_1); + /* Define a **cor do texto** utilizando uma variável CSS personalizada chamada `--Cor_Segundaria_5_1`. Isso permite controlar a cor do texto centralmente no projeto, alterando a variável em vez de ajustar cada instância de cor individualmente. */ font-size: var(--Matriz); + /* Define o **tamanho da fonte** utilizando uma variável CSS personalizada chamada `--Matriz`. Assim, o tamanho da fonte será adaptado conforme o valor dessa variável, facilitando ajustes de estilo em todo o projeto. */ font-size: 0.8vw; - + /* Define o **tamanho da fonte** como 0.8% da **largura da janela de visualização** (tela). Isso torna o tamanho da fonte **responsivo**, adaptando-se ao tamanho da tela, o que é útil em layouts fluidos e adaptáveis a diferentes dispositivos. */ } \ No newline at end of file diff --git a/Css/page/Ambiente/Estrutura/estrutura_menu.css b/Css/page/Ambiente/Estrutura/estrutura_menu.css index 857e530..96f86fe 100644 --- a/Css/page/Ambiente/Estrutura/estrutura_menu.css +++ b/Css/page/Ambiente/Estrutura/estrutura_menu.css @@ -96,7 +96,7 @@ display: flex; flex-direction: row; - background-image: url(../../../../Acessts/Imagens/1605305486169.jpg); + background-image: url(../../../../Acessts/Imagens/Utili/Tela_Marca\ White.jpg); background-position: center; background-size: cover; diff --git a/Css/page/Ambiente/Estrutura/menu_hover.css b/Css/page/Ambiente/Estrutura/menu_hover.css index d91bc39..ec904f4 100644 --- a/Css/page/Ambiente/Estrutura/menu_hover.css +++ b/Css/page/Ambiente/Estrutura/menu_hover.css @@ -5,32 +5,32 @@ z-index: 10; left: 0; top: 0; - transition: 1s ease; + transition: 0.2s ease; .seguimentacao_2 { width: 17vw; - transition: 1s ease; + transition: 0.2s ease; } .seguimentacao_1 .coluna_1 { height: 30vh; - transition: 1s ease; + transition: 0.2s ease; } .seguimentacao_1 .coluna_2 { height: 70vh; - transition: 1s ease; + transition: 0.2s ease; } .seguimentacao_1 .coluna_2 .subcolunas_1 { height: 50vh; - transition: 1s ease; + transition: 0.2s ease; } .seguimentacao_1 .coluna_2 .subcolunas_2 { height: 20vh; - transition: 1s ease; + transition: 0.2s ease; } .seguimentacao_2 .coluna_1 .subcolunas_1 .filheira { @@ -38,7 +38,7 @@ font-size: 0.9vw; opacity: 1; filter: blur(0px); - transition: 1s ease; + transition: 0.2s ease; } @@ -49,7 +49,7 @@ opacity: 1; filter: blur(0px); - transition: 1s ease; + transition: 0.2s ease; } @@ -60,31 +60,31 @@ width: 20vw; - transition: 1s ease; + transition: 0.2s ease; .seguimentacao_2 { width: 17vw; - transition: 1s ease; + transition: 0.2s ease; } .seguimentacao_1 .coluna_1 { height: 30vh; - transition: 1s ease; + transition: 0.2s ease; } .seguimentacao_1 .coluna_2 { height: 70vh; - transition: 1s ease; + transition: 0.2s ease; } .seguimentacao_1 .coluna_2 .subcolunas_1 { height: 50vh; - transition: 1s ease; + transition: 0.2s ease; } .seguimentacao_1 .coluna_2 .subcolunas_2 { height: 20vh; - transition: 1s ease; + transition: 0.2s ease; } .seguimentacao_2 .coluna_1 .subcolunas_1 .filheira { @@ -92,7 +92,7 @@ font-size: 0.9vw; opacity: 1; filter: blur(0px); - transition: 1s ease; + transition: 0.2s ease; } @@ -103,12 +103,12 @@ opacity: 1; filter: blur(0px); - transition: 1s ease; + transition: 0.2s ease; } .imgjust { transform: rotate(180deg); - transition: 1s ease; + transition: 0.2s ease; } @@ -125,7 +125,7 @@ a:hover, background-color: var(--Matriz); border-radius: 2vw 0vw 0vw 2vw; padding-left: 2vw; - transition: 1s ease; + transition: 0.2s ease; } @@ -136,7 +136,7 @@ a:hover, background-color: var(--Matriz); border-radius: 2vw 0vw 0vw 2vw; padding-left: 2vw; - transition: 1s ease; + transition: 0.2s ease; @@ -147,5 +147,5 @@ a:hover, background-color: var(--Cor_Segundaria_5_1); box-shadow: 5px 5px 0px 2px var(--Cor_Segundaria_5_2); - transition: 1s ease; + transition: 0.2s ease; } \ No newline at end of file diff --git a/Css/page/Ambiente/Estrutura/tela_hover.css b/Css/page/Ambiente/Estrutura/tela_hover.css index c668846..f50c791 100644 --- a/Css/page/Ambiente/Estrutura/tela_hover.css +++ b/Css/page/Ambiente/Estrutura/tela_hover.css @@ -1,38 +1,40 @@ .capitulo_1.expansao { width: 80vw; + z-index: 1; - transition: 1s ease; + transition: 0.2s ease; } .capitulo_2.expansao { width: 80vw; z-index: 1; - transition: 1s ease; + transition: 0.2s ease; .Capitulo_1 .linha_1 { - width: 25vw; - transition: 1s ease; + width: 29.2vw; + + transition: 0.2s ease; } .Capitulo_1 .linha_1 .painel { - width: 25vw; - transition: 1s ease; + width: 29.2vw; + transition: 0.2s ease; } .Capitulo_1 .linha_1 .Corpo { - width: 25vw; - transition: 1s ease; + width: 29.2vw; + transition: 0.2s ease; } .Capitulo_1 .linha_1 .cap { - width: 25vw; - transition: 1s ease; + width: 29.2vw; + transition: 0.2s ease; } @@ -41,7 +43,7 @@ width: 15vw; - transition: 1s ease; + transition: 0.2s ease; } @@ -51,14 +53,14 @@ width: 15vw; - transition: 1s ease; + transition: 0.2s ease; } .Capitulo_1 .linha_2 .Corpo_1 { width: 15vw; - transition: 1s ease; + transition: 0.2s ease; } @@ -66,14 +68,14 @@ width: 15vw; height: 8vh; - transition: 1s ease; + transition: 0.2s ease; } .Capitulo_1 .linha_2 .cap { width: 15vw; - transition: 1s ease; + transition: 0.2s ease; } @@ -81,7 +83,7 @@ width: 1.6vw; height: 4vh; font-size: 0.6vw; - transition: 1s ease; + transition: 0.2s ease; } @@ -89,7 +91,13 @@ .Capitulo_1 .linha_2 .Corpo_1 .linhaMes_1 .vazio { width: 1.6vw; height: 4vh; - transition: 1s ease; + transition: 0.2s ease; } + + .PopUpHome.Chamado { + top: 10vh; + /* Define a distância entre a parte esquerda do elemento e o lado esquerdo da viewport (60% da largura da tela) */ + left: 40vh; + } } \ No newline at end of file diff --git a/Css/page/Ambiente/Home/Aplicacoes.css b/Css/page/Ambiente/Home/Aplicacoes.css index 9e050de..6b0208c 100644 --- a/Css/page/Ambiente/Home/Aplicacoes.css +++ b/Css/page/Ambiente/Home/Aplicacoes.css @@ -24,6 +24,12 @@ border: 0.2vw solid #ffa600; } +.Capitulo_1 .linha_1 .Corpo .IconChamado.Atencao { + + border: 0.2vw solid red; + +} + /*Pop Home */ .PainelEstado.Solucionado_Fechado h2 { @@ -53,6 +59,12 @@ /*muda a cor do status do objeto*/ } +.PainelEstado.Atencao h2 { + + color: red; + /*muda a cor do status do objeto*/ + +} .Capitulo_2 .painel .Corpo .Mes_financeiro.Desativado button { diff --git a/Css/page/Ambiente/Home/Item_servico.css b/Css/page/Ambiente/Home/Item_servico.css index 75af761..8707d64 100644 --- a/Css/page/Ambiente/Home/Item_servico.css +++ b/Css/page/Ambiente/Home/Item_servico.css @@ -1,58 +1,104 @@ .Corpo .ItemServicos img { width: 1.5vw; + /*modifica a largura */ height: 3vh; + /*modifica a altura*/ } .Corpo .ItemServicos .PainelTexto { display: flex; + /*define o display como flex*/ flex-direction: row; - + /* definir a direção dos itens dentro do contêiner */ gap: 1vw; + /*define um espaco entre os blocos*/ width: 85%; + /*define largura*/ height: 5vh; + /*define altura*/ border-radius: 1.5vw; + /*define o tamanho da borda*/ padding-right: 1.5vw; + /*define espaco da direita */ padding-left: 1.5vw; - - - - - + /*define espaço da esquerda*/ background-color: var(--Cor_Segundaria_5_1); + /*define a cor de fundo atraves de uma variavel*/ color: var(--Cor_Segundaria_5_1); + /*define a cor atraves de uma variavel*/ font-family: var(--font_titulo); + /*define a fonte usada*/ font-size: 1vw; - + /*define o tamanho da letra*/ align-items: center; + /* Alinha os itens no centro ao longo do eixo vertical (eixo transversal), ou seja, centraliza os itens dentro do contêiner de acordo com o eixo oposto ao principal. */ justify-content: center; + /* Alinha os itens no centro ao longo do eixo horizontal (eixo principal), ou seja, centraliza os itens dentro do contêiner, distribuindo-os de maneira equidistante. */ } .Corpo .ItemServicos p { font-family: var(--font_conteudo); + /*define a fonte */ color: white; - + /*define a cor */ } .Corpo .ItemServicos { display: flex; + /*define o display*/ flex-direction: row; - + /*define a direção dos itens dentro do conteiner*/ gap: 1vw; + /*define os espaoços dos itens */ width: 85%; + /*define o display*/ height: 5vh; + /*define a direção orizontal*/ border-radius: 1.5vw; + /*define o tamanho da borda*/ padding-right: 1.5vw; + /*define um espaço ah direita*/ padding-left: 1.5vw; - - - - - + /*define espaço a esquerda*/ background-color: var(--Cor_Segundaria_5_1); + /*define a cor de fundo*/ color: var(--Cor_Segundaria_5_1); + /*define a cor*/ font-family: var(--font_titulo); + /*define a fonte */ font-size: 1vw; - + /*define o tamanho da fonte*/ align-items: center; + /*define os itens no centro*/ justify-content: start; + /* Alinha os itens ao início do container */ +} + +.capitulo_2 .CorpoArtificial .Capitulo_1 .linha_1 .painel .Corpo .Corpo_erro { + display: flex; + /*define o display como flex*/ + align-items: center; + /* Alinha os itens no centro ao longo do eixo vertical (eixo transversal), ou seja, centraliza os itens dentro do contêiner de acordo com o eixo oposto ao principal. */ + justify-content: center; + /* Alinha os itens no centro ao longo do eixo horizontal (eixo principal), ou seja, centraliza os itens dentro do contêiner, distribuindo-os de maneira equidistante. */ + flex-direction: column; + /*define a direção dos itens dentro do conteiner*/ + + +} + +.capitulo_2 .CorpoArtificial .Capitulo_1 .linha_1 .painel .Corpo .Corpo_erro p { + color: var(--Cor_Segundaria_5_1); + /*define a cor */ + font-size: 1.5vw; + /*define o tamanho da fonte*/ + font-family: var(--font_titulo); +} + +.capitulo_2 .CorpoArtificial .Capitulo_1 .linha_1 .painel .Corpo .Corpo_erro h2 { + color: var(--Cor_Segundaria_5_1); + /*define a cor */ + font-size: 1.3vw; + /*define o tamanho da fonte*/ + font-family: var(--font_titulo); } \ No newline at end of file diff --git a/Css/page/Ambiente/Home/Iten_chamados.css b/Css/page/Ambiente/Home/Iten_chamados.css index 5e63b54..823c846 100644 --- a/Css/page/Ambiente/Home/Iten_chamados.css +++ b/Css/page/Ambiente/Home/Iten_chamados.css @@ -103,6 +103,7 @@ /*alinha onde fica o objeto*/ align-items: center; /*alinha onde fica o objeto*/ + font-size: 1.2vw; } .PopUpHome.Chamado .PainelFechar { @@ -147,10 +148,11 @@ width: 2vw; /* Define a largura do botão como 1.5% da largura da viewport (tela) */ - height: 2vw; + height: 4.5vh; /* Define a altura do botão como 1.5% da largura da viewport (tela) */ /* Alinha o conteúdo do botão (texto ou elementos) no centro, horizontalmente */ + display: flex; justify-content: center; font-size: 1.2vw; /* Alinha o conteúdo do botão (texto ou elementos) no centro, verticalmente */ @@ -173,6 +175,7 @@ font-family: var(--font_titulo); /* Define a fonte do texto com a variável --font_titulo */ + height: 20%; /* Define a altura do elemento como 20% da altura do elemento pai */ diff --git a/Css/page/Ambiente/Home/Iten_dia.css b/Css/page/Ambiente/Home/Iten_dia.css index e6d0c5f..241cbce 100644 --- a/Css/page/Ambiente/Home/Iten_dia.css +++ b/Css/page/Ambiente/Home/Iten_dia.css @@ -84,7 +84,7 @@ .Capitulo_1 .linha_2 .Corpo_1 .linhaMes_1 .vazio { width: 2.3vw; height: 3.5vh; - margin-top: -1.8vh; + margin-top: -1.5vh; display: flex; justify-content: center; diff --git a/Css/page/Ambiente/Home/item_Financeiro.css b/Css/page/Ambiente/Home/item_Financeiro.css index bf31cef..0efbc51 100644 --- a/Css/page/Ambiente/Home/item_Financeiro.css +++ b/Css/page/Ambiente/Home/item_Financeiro.css @@ -1,65 +1,131 @@ .Capitulo_2 .painel .Corpo { display: flex; + /*muda o display para flex*/ font-family: var(--font_titulo); + /*define a fonte atraves de uma variavel*/ flex-direction: column; - - - - - - + /*define a direção das informações*/ } .Capitulo_2 .painel .Corpo .Mes_financeiro { display: flex; + /*muda o display para flex*/ font-family: var(--font_titulo); + /*define a fonte atraves de uma variavel */ flex-direction: row; - + /*define a direção das informações */ width: 95%; + /*define a largura */ height: 7vh; + /*define a altura*/ align-items: center; + /*alinha os itens no centro de cima para baixo*/ justify-content: space-between; + /*alinha deixando cada um pra um lado*/ border-bottom: 0.5vh solid var(--Cor_Segundaria_5_1); + /*define a borda e o tamanho*/ +} + +.Capitulo_2 .painel .Corpo .Mes_financeiro .MesBoleto { + width: 15.3%; + /*define largura*/ } -.Capitulo_2 .painel .Corpo .Mes_financeiro p { +.Capitulo_2 .painel .Corpo .Mes_financeiro .MesBoleto p { background: none; + /*retira a estilização padrao do html do backgrond*/ outline: none; + /* remover a borda de foco */ border: none; + /*tira a estilização da borda */ color: var(--Cor_Segundaria_5_1); - font-size: 1.8vw; - + /*modifica a cor*/ + font-size: 1.3vw; + /*define o tamanho da fonte */ } -.Capitulo_2 .painel .Corpo .Mes_financeiro.Ativado button { +.Capitulo_2 .painel .Corpo .Mes_financeiro.Ativado .GerarBoletoFinanceiro { + width: 11.3%; + /*define largura*/ +} + +.Capitulo_2 .painel .Corpo .Mes_financeiro.Ativado .GerarBoletoFinanceiro button { background: none; + /*retira a estilização padrao do html do backgrond*/ outline: none; + /* remover a borda de foco */ border: none; + /*tira a estilização da borda */ color: #a9a9a9; /* Muda a cor do texto */ background-color: var(--Cor_Segundaria_5_1); /* Cor de fundo do botão */ border-radius: 12vh; + /*define o tamanho das bordas */ transition: 1s ease; /* Transição suave de 1 segundo */ font-family: var(--font_conteudo); /* Arredondar completamente */ width: 10vw; + /*define a largura*/ height: 3vh; + /*define a altura */ font-size: 0.8vw; - + /*define o tamanho da fonte*/ + margin: end; } -.Capitulo_2 .painel .Corpo .Mes_financeiro.Ativado button:hover { +.Capitulo_2 .painel .Corpo .Mes_financeiro.Ativado .GerarBoletoFinanceiro button:hover { color: var(--Cor_Segundaria_5_1); /* Muda a cor do texto */ background-color: white; /* Muda a cor de fundo */ transition: 1s ease; /* Transição suave de 1 segundo */ +} +.Capitulo_2 .painel .Corpo .Mes_financeiro.Desativado .StatusFinanceiro { + width: 12.3%; + margin-right: 4vw; + /*define largura*/ + +} + +.Capitulo_2 .painel .Corpo .Mes_financeiro.Desativado .StatusFinanceiro p { + background: none; + /*retira a estilização padrao do html do backgrond*/ + outline: none; + /* remover a borda de foco */ + border: none; + /*tira a estilização da borda */ + color: var(--Cor_Segundaria_5_1); + /*modifica a cor*/ + font-size: 1.3vw; + /*define o tamanho da fonte */ + text-align: center; +} + +.Capitulo_2 .painel .Corpo .Mes_financeiro.Ativado .StatusFinanceiro p { + background: none; + /*retira a estilização padrao do html do backgrond*/ + outline: none; + /* remover a borda de foco */ + border: none; + /*tira a estilização da borda */ + color: var(--Cor_Segundaria_5_1); + /*modifica a cor*/ + font-size: 1.3vw; + /*define o tamanho da fonte */ + text-align: center; + +} + +.Capitulo_2 .painel .Corpo .Mes_financeiro.Ativado .StatusFinanceiro { + width: 12.3%; + margin-right: 4vw; + /*define largura*/ } \ No newline at end of file diff --git a/Css/page/Ambiente/Home/tela.css b/Css/page/Ambiente/Home/tela.css index 9a2ba04..59a5c62 100644 --- a/Css/page/Ambiente/Home/tela.css +++ b/Css/page/Ambiente/Home/tela.css @@ -1,14 +1,10 @@ /* Estilo para a seção CorpoArtificial dentro do capítulo 2 */ .capitulo_2 .CorpoArtificial { - width: 89.6%; + width: 100%; /* Largura da seção CorpoArtificial, ocupando 89.6% da largura do seu contêiner */ height: 88vh; /* Altura da seção CorpoArtificial, ocupando 88% da altura da janela de visualização */ padding-top: 2vw; - /* Espaçamento superior de 2% da largura da janela */ - padding-left: 5vw; - /* Espaçamento à esquerda de 5% da largura da janela */ - padding-right: 5vw; /* Espaçamento à direita de 5% da largura da janela */ background-color: #D9D9D9; /* Cor de fundo branco */ @@ -39,7 +35,7 @@ /* Estilo para a primeira linha no Capítulo 1 */ .Capitulo_1 .linha_1 { - width: 30vw; + width: 34.8vw; /* Largura de 30% da largura da janela */ display: flex; /* Flexbox para layout */ @@ -55,7 +51,7 @@ /* Estilo para o painel dentro da linha 1 no Capítulo 1 */ .Capitulo_1 .linha_1 .painel { - width: 30vw; + width: 34.8vw; /* Largura de 30% da largura da janela */ display: flex; /* Flexbox para layout */ @@ -69,7 +65,7 @@ /* Estilo para a seção Corpo dentro do painel da linha 1 no Capítulo 1 */ .Capitulo_1 .linha_1 .Corpo { - width: 30vw; + width: 34.8vw; /* Largura de 30% da largura da janela */ height: 47vh; /* Altura de 47% da altura da janela */ @@ -104,11 +100,12 @@ font-size: 1vw; /* Tamanho de fonte de 1% da largura da janela */ font-size: 1vw; + /*define o tamanho da fonte*/ } /* Estilo para a seção 'cap' dentro da linha 1 no Capítulo 1 */ .Capitulo_1 .linha_1 .cap { - width: 30vw; + width: 34.8vw; /* Largura de 30% da largura da janela */ height: 5vh; /* Altura de 5% da altura da janela */ @@ -127,6 +124,7 @@ transition: 1s ease; /* Transição suave de 1 segundo */ font-size: 1vw; + /*define o tamanho da fonte*/ } /* Estilo para a segunda linha no Capítulo 1 */ @@ -182,6 +180,7 @@ overflow: hidden; /* Impede o transbordamento de conteúdo */ font-size: 1vw; + /*define o tamanho da fonte*/ } /* Estilo para o botão dentro da cap na linha 2 do Capítulo 1 */ @@ -221,6 +220,7 @@ justify-content: center; /* Alinha os itens ao centro horizontalmente */ font-size: 1vw; + /*define o tamanho da fonte*/ } /* Estilo para o botão dentro da cap na linha 2 do Capítulo 1 */ @@ -246,6 +246,7 @@ overflow: hidden; /* Impede o transbordamento de conteúdo */ font-size: 1vw; + /*define o tamanho da fonte*/ } /* Estilos do painel no Capítulo 2 */ @@ -275,7 +276,7 @@ justify-content: center; /* Alinha os itens à direita */ font-size: 1vw; - + /*define o tamanho da fonte*/ } /* Estilo para a coluna 1 dentro da cap do Capítulo 2 */ @@ -297,6 +298,7 @@ justify-content: center; /* Alinha os itens à direita */ font-size: 1vw; + /*define o tamanho da fonte*/ } /* Estilo para a coluna 2 dentro da cap do Capítulo 2 */ @@ -320,6 +322,7 @@ padding-left: 10vw; /* Espaçamento à esquerda de 10% da largura da janela */ font-size: 1vw; + /*define o tamanho da fonte*/ } /* Estilo para o botão dentro da coluna 2 no Capítulo 2 */ @@ -337,7 +340,7 @@ transition: 1s ease; /* Transição suave de 1 segundo */ font-size: 1vw; - + /*define o tamanho da fonte*/ } /* Efeito de hover no botão da coluna 2 do Capítulo 2 */ @@ -370,5 +373,5 @@ /* Alinha os itens ao centro horizontalmente */ /* Tamanho da fonte de 2.2% da largura da janela */ font-size: 1vw; - + /*define o tamanho da fonte*/ } \ No newline at end of file diff --git a/Css/page/Ambiente/Monitoramento/Aplicacoes_moni.css b/Css/page/Ambiente/Monitoramento/Aplicacoes_moni.css new file mode 100644 index 0000000..ce4ad4a --- /dev/null +++ b/Css/page/Ambiente/Monitoramento/Aplicacoes_moni.css @@ -0,0 +1,34 @@ +.disk-container { + width: 300px; + /* Largura total do retângulo */ + height: 30px; + background-color: #ddd; + /* Cor de fundo (disco total) */ + border: 2px solid #000; + position: relative; +} + +.disk-usage { + height: 100%; + background-color: #4caf50; + /* Cor do uso (verde) */ +} + + +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens .HostCapa .Ativado { + + border-radius: 100%; + border: 0.4vw solid #3056ff; + width: 1vw; + height: 1.4vh; + +} + +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens.HostCapa .Desativado { + + border-radius: 100%; + border: 0.4vw solid #ffffff; + width: 1vw; + height: 1.4vh; + +} \ No newline at end of file diff --git a/Css/page/Ambiente/Monitoramento/sec_cap_2.css b/Css/page/Ambiente/Monitoramento/ItemHost.css similarity index 100% rename from Css/page/Ambiente/Monitoramento/sec_cap_2.css rename to Css/page/Ambiente/Monitoramento/ItemHost.css diff --git a/Css/page/Ambiente/Monitoramento/Monitor.css b/Css/page/Ambiente/Monitoramento/Monitor.css index bc74400..68c7fa5 100644 --- a/Css/page/Ambiente/Monitoramento/Monitor.css +++ b/Css/page/Ambiente/Monitoramento/Monitor.css @@ -1,3 +1,5 @@ @import url(../../../global/import.css); -@import url(./sec_cap_1.css); -@import url(./sec_cap_2.css); \ No newline at end of file + +@import url(./ItemHost.css); +@import url(./TelaMonitoramento.css); +@import url(./Aplicacoes_moni.css); \ No newline at end of file diff --git a/Css/page/Ambiente/Monitoramento/TelaMonitoramento.css b/Css/page/Ambiente/Monitoramento/TelaMonitoramento.css new file mode 100644 index 0000000..473782d --- /dev/null +++ b/Css/page/Ambiente/Monitoramento/TelaMonitoramento.css @@ -0,0 +1,125 @@ +.capitulo_2 .PainelTitulo_Moni { + + width: 100%; + display: flex; + align-items: center; + justify-content: center; + gap: 2vw; + + font-family: var(--font_titulo); + font-size: 1.5vw; + color: var(--Cor_Segundaria_5_1); + +} + +.capitulo_2 .PainelTitulo_Moni select { + background: none; + border: none; + outline: none; + + border-bottom: solid 0.8vh var(--Cor_Segundaria_5_1); + height: 8vh; + width: 20vw; + + + font-family: var(--font_titulo); + font-size: 1.2vw; + color: var(--Cor_Segundaria_5_1); +} + +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens { + + + width: 100%; + height: 80vh; + + display: flex; + + border-top: solid 0.2vh var(--Cor_Segundaria_5_1); + + align-items: center; + justify-content: center; + align-content: center; + + flex-direction: row; + /* Evita que conteúdos internos quebrem linha */ + gap: 1vw; + + + + +} + +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens .Alerta { + color: var(--Cor_Segundaria_5_1); + font-family: var(--font_titulo); + font-size: 1.2vw; +} + +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens .HostCapa { + display: flex; + + flex-direction: column; + justify-content: center; + align-content: start; + align-items: center; + + width: 80%; + gap: 1vh; + height: 80vh; + + overflow-y: auto; + + +} + +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens .HostCorpo { + display: flex; + + flex-direction: column; + + width: 20%; + height: 78vh; + padding-top: 2vh; + background-color: var(--Cor_Segundaria_5_1); + + + + + display: flex; + align-items: center; + justify-content: start; + gap: 1vw; + + + font-family: var(--font_titulo); + font-size: 1.3vw; + color: var(--Matriz); + +} + + + + +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens .HostCapa .CPU, +.capitulo_2 .PainelConteudo_Moni .PainelHostsAlinhamento .PainelHostsItens .HostCapa .Ram { + + + padding: 3vw; + border-radius: 2vw; + + display: flex; + justify-content: center; + align-content: center; + + font-size: 1.7vw; + font-family: var(--font_titulo); + /* Define a fonte do texto com a variável --font_titulo */ + + + background-color: var(--Cor_Segundaria_5_1); + color: var(--Matriz); + /* Define a cor do texto com a variável --Cor_Segundaria_5_1 */ + + +} \ No newline at end of file diff --git a/Css/page/Ambiente/Monitoramento/sec_cap_1.css b/Css/page/Ambiente/Monitoramento/sec_cap_1.css deleted file mode 100644 index 289526e..0000000 --- a/Css/page/Ambiente/Monitoramento/sec_cap_1.css +++ /dev/null @@ -1,69 +0,0 @@ - .carrossel_host { - width: 100%; - height: 20vh; - - display: flex; - align-items: center; - position: relative; - } - - .carrossel_host .list { - overflow: hidden; - width: 100%; - height: 15vh; - scroll-behavior: smooth; - - padding: 1vw; - display: flex; - align-items: center; - gap: 2vw; - } - - .carrossel_host .list .item button { - background: none; - border: none; - outline: none; - - width: 12vw; - height: 5vh; - display: flex; - justify-content: center; - align-items: center; - - border-radius: 2vw; - background-color: var(--Cor_Segundaria_5_1); - padding: 2vw; - color: var(--Matriz); - font-family: var(--font_titulo); - font-size: 1vw; - } - - .carrossel_host .button button { - background: none; - outline: none; - border: none; - - - padding: 0.5vw; - border-radius: 0.5vw; - backdrop-filter: blur(2px); - background-color: #00000070; - } - - .carrossel_host .button img { - width: 2vw; - } - - #next { - position: absolute; - right: 1vw; - top: 15vh; - } - - #prev { - position: absolute; - left: 1vw; - top: 15vh; - - - } \ No newline at end of file diff --git a/Css/page/Telas_acao/load.css b/Css/page/Telas_acao/load.css index dea5632..2fe3449 100644 --- a/Css/page/Telas_acao/load.css +++ b/Css/page/Telas_acao/load.css @@ -16,11 +16,28 @@ align-content: center; font-family: var(--font_titulo); - font-size: 1.8vw; + font-size: 1vw; color: var(--Cor_Segundaria_5_1); border: 1px solid #fff; + transition: 1s ease; + animation: MudançaNome 3s ease; +} + + +@keyframes MudançaNome { + + from { + opacity: 0; + } + + to { + opacity: 1; + } + + + } .teste canvas { diff --git a/js/global/Modulo_de_Comunicacao/Funcao/Comunicacao.js b/js/global/Modulo_de_Comunicacao/Funcao/Comunicacao.js index 5c2be31..685ce54 100644 --- a/js/global/Modulo_de_Comunicacao/Funcao/Comunicacao.js +++ b/js/global/Modulo_de_Comunicacao/Funcao/Comunicacao.js @@ -18,7 +18,3 @@ async function getApiUrl() { function getAuthToken() { return localStorage.getItem('x-access-token'); } - -function getAuthDomain() { - return localStorage.getItem('Id_Cliente'); -} diff --git a/js/page/Modulo_Autenticacao/Funcao/login.js b/js/page/Modulo_Autenticacao/Funcao/login.js index 44ffcd6..9965bf8 100644 --- a/js/page/Modulo_Autenticacao/Funcao/login.js +++ b/js/page/Modulo_Autenticacao/Funcao/login.js @@ -52,6 +52,7 @@ document.getElementById("formLogin").addEventListener("submit", async function ( } // Função principal para enviar dados criptografados para o backend + errorMessageElement.innerHTML = '

Carregando...

'; try { diff --git a/js/page/Modulo_Autenticacao/Painel/Repostas.js b/js/page/Modulo_Autenticacao/Painel/Repostas.js index cc73460..05a8ffd 100644 --- a/js/page/Modulo_Autenticacao/Painel/Repostas.js +++ b/js/page/Modulo_Autenticacao/Painel/Repostas.js @@ -28,18 +28,20 @@ async function RespostasErro(comunica, response, errorMessageElement, usernameEl /*Caso erro, onde o email usado é invalido*/ if (comunica === 400) { - + // Aplicação do texto dentro do elemento errorMessageElement.innerHTML = `

O E-mail usado é invalido, o formato esperado é "usuario@domino.com.br"

`; - + // Aplicação de uma classe especial errorMessageElement.classList.add('Status_400') - + // Aplicações de tamanho e definição de opacidade errorMessageElement.style.height = '10vh'; errorMessageElement.style.opacity = '1'; - usernameElement.style.borderColor = 'red'; // Marca o campo do usuário com erro + // Aplica coloração vermelha e uma transição suave + usernameElement.style.borderColor = 'red'; errorMessageElement.style.transition = ' 1s ease'; + // Retirar todas as aplicações antes definidas const tempoDeExibicao = 5000; setTimeout(() => { @@ -55,51 +57,54 @@ async function RespostasErro(comunica, response, errorMessageElement, usernameEl /*Caso erro, quando há um erro na autenticação com o banco de dados*/ if (comunica === 401) { - + // Aplicação do texto dentro do elemento errorMessageElement.innerHTML = `

Erro na autenticação, informe ao suporte, no e-mail suporte@itguys.com.br

`; - + // Aplicação de uma classe especial errorMessageElement.classList.add('Status_401') - + // Aplicações de tamanho e definição de opacidade errorMessageElement.style.height = '10vh'; errorMessageElement.style.opacity = '1'; + // Aplica uma transição suave errorMessageElement.style.transition = ' 1s ease'; + // Retirar todas as aplicações antes definidas const tempoDeExibicao = 5000; setTimeout(() => { - errorMessageElement.classList.remove('Status_401') - + errorMessageElement.classList.remove('Status_401'); errorMessageElement.style.height = '0vh'; // Oculta a mensagem errorMessageElement.style.opacity = '0'; - errorMessageElement.style.transition = ' 1s ease'; + errorMessageElement.style.transition = '1s ease'; }, tempoDeExibicao); } /*Caso erro, onde o usuário ou senha podem estar incorretos*/ if (comunica === 404) { - + // Aplicação do texto dentro do elemento errorMessageElement.innerHTML = `

Usuário ou Senha, estão incorretos

`; - + // Aplicações de tamanho e definição de opacidade errorMessageElement.style.height = '10vh'; errorMessageElement.style.opacity = '1'; - errorMessageElement.classList.add('Status_404') + // Aplicação de uma classe especial + errorMessageElement.classList.add('Status_404'); usernameElement.style.borderColor = 'red'; // Marca o campo do usuário com erro passwordElement.style.borderColor = 'red'; // Marca o campo da senha com erro + // Aplica uma transição suave errorMessageElement.style.transition = ' 1s ease'; + // Retirar todas as aplicações antes definidas const tempoDeExibicao = 5000; setTimeout(() => { - errorMessageElement.classList.remove('Status_404') - usernameElement.style.borderColor = '#1478cf'; // Marca o campo do usuário com erro - passwordElement.style.borderColor = '#1478cf'; // Marca o campo da senha com erro + usernameElement.style.borderColor = '#1478cf'; // Desmarca o campo do usuário com erro + passwordElement.style.borderColor = '#1478cf'; // Desmarca o campo da senha com erro errorMessageElement.style.height = '0vh'; // Oculta a mensagem errorMessageElement.style.opacity = '0'; errorMessageElement.style.transition = ' 1s ease'; @@ -109,20 +114,22 @@ async function RespostasErro(comunica, response, errorMessageElement, usernameEl /*Caso erro, onde o usuário ou senha podem estar incorretos*/ if (comunica === 500) { - + // Aplicação do texto dentro do elemento errorMessageElement.innerHTML = `

Estamos enfrentando dificuldades técnicas no momento. Por favor, tente novamente mais tarde.

`; - + // Aplicações de tamanho e definição de opacidade errorMessageElement.style.height = '10vh'; errorMessageElement.style.opacity = '1'; - + // Aplicação de uma classe especial errorMessageElement.classList.add('Status_500') usernameElement.style.borderColor = 'red'; // Marca o campo do usuário com erro passwordElement.style.borderColor = 'red'; // Marca o campo da senha com erro + // Aplica uma transição suave errorMessageElement.style.transition = ' 1s ease'; + // Retirar todas as aplicações antes definidas const tempoDeExibicao = 5000; setTimeout(() => { @@ -137,20 +144,19 @@ async function RespostasErro(comunica, response, errorMessageElement, usernameEl } - /*Caso de erro especial, que é apresentado em um pop up, essa estrutura pega a informações da resposta em json e os apresenta sobre o pop up na tela*/ - /*Caso de erro, onde acontece um problema na comunicação com o proprio servidor*/ if (comunica === 503) { - + // Aplicação do texto dentro do elemento errorMessageElement.innerHTML = `

Estamos realizando manutenções necessárias. Agradecemos por sua compreensão.

`; - + // Aplicações de tamanho e definição de opacidade errorMessageElement.style.height = '15vh'; errorMessageElement.style.opacity = '1'; - + // Aplicação de uma classe especial errorMessageElement.classList.add('Status_503') - + // Aplica uma transição suave errorMessageElement.style.transition = ' 1s ease'; + // Retirar todas as aplicações antes definidas const tempoDeExibicao = 5000; setTimeout(() => { @@ -165,16 +171,17 @@ async function RespostasErro(comunica, response, errorMessageElement, usernameEl /*Caso de erro, onde acontece um problema na comunicação com o proprio servidor*/ if (comunica === 502) { - + // Aplicação do texto dentro do elemento errorMessageElement.innerHTML = `

Houve um problema ao processar sua solicitação. Estamos trabalhando para corrigir a situação.

`; - + // Aplicações de tamanho e definição de opacidade errorMessageElement.style.height = '15vh'; errorMessageElement.style.opacity = '1'; - + // Aplicação de uma classe especial errorMessageElement.classList.add('Status_502') - + // Aplica uma transição suave errorMessageElement.style.transition = ' 1s ease'; + // Retirar todas as aplicações antes definidas const tempoDeExibicao = 5000; setTimeout(() => { diff --git a/js/page/Modulo_Construcao/Funcao/Config/Ambiente/PopAmbientes_Func.js b/js/page/Modulo_Construcao/Funcao/Config/Ambiente/PopAmbientes_Func.js index e69de29..98b3fba 100644 --- a/js/page/Modulo_Construcao/Funcao/Config/Ambiente/PopAmbientes_Func.js +++ b/js/page/Modulo_Construcao/Funcao/Config/Ambiente/PopAmbientes_Func.js @@ -0,0 +1,221 @@ +// 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; + PainelApresentacao() + + + function PainelApresentacao() { + let TelaHtmlRecor = "Apresentacao"; + SeletorEmpresa(TelaHtmlRecor); + + + function ApresentacaoUser() { } + + + } + 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 += `` + 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 += ``; + + } + + + + 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) + } + + + + +} \ No newline at end of file diff --git a/js/page/Modulo_Construcao/Funcao/Config/Estrutura/config.js b/js/page/Modulo_Construcao/Funcao/Config/Estrutura/config.js index fdc5e9e..d57de30 100644 --- a/js/page/Modulo_Construcao/Funcao/Config/Estrutura/config.js +++ b/js/page/Modulo_Construcao/Funcao/Config/Estrutura/config.js @@ -2,43 +2,84 @@ +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 - // 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(); + try { - //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}` - }; + // 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) + //console.log("Esse dados vem para configurações", usuariConfig) + ControladorDeVisualizacao_config(usuariConfig) - const Voltar_home = document.getElementById('Voltar_config'); + const Voltar_home = document.getElementById('Voltar_config'); - const Manual_button = document.getElementById('Manual_config'); - const Perfil_button = document.getElementById('Perfil_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) + } + - // 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'); } async function carregarTela_config(tela) { @@ -62,6 +103,11 @@ async function carregarTela_config(tela) { 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', @@ -114,14 +160,22 @@ async function carregarTela_config(tela) { 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') @@ -164,34 +218,18 @@ function ControladorDeVisualizacao_config(InfoGeral) {

Usuário

`; + EstruraDinamicadeConfiguracao.innerHTML += ` +
+ +

Ambiente

+
`; + 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')); } } -setTimeout(async () => { - const ConfigLoad = document.getElementById('entrada_2'); - - 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 - - diff --git a/js/page/Modulo_Construcao/Funcao/Config/Perfil/PopPerfil_Func.js b/js/page/Modulo_Construcao/Funcao/Config/Perfil/PopPerfil_Func.js index f016d2f..d856a78 100644 --- a/js/page/Modulo_Construcao/Funcao/Config/Perfil/PopPerfil_Func.js +++ b/js/page/Modulo_Construcao/Funcao/Config/Perfil/PopPerfil_Func.js @@ -55,34 +55,43 @@ function InicializandoPopPerfil() { function capiturarInfos() { - //const formularioPerfil = document.getElementById('formularioPerfil') - - // Adiciona eventos para mudar a imagem quando o usuário seleciona um arquivo - - const values = [ - inputPerfil, inputFundo - ]; - - // 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; - } + // Verifica se os inputs existem + if (!inputPerfil || !inputFundo) { + console.error('Um ou mais elementos do formulário não foram encontrados.'); + alert('Erro interno: Elementos do formulário não encontrados.'); + return; } const perfil = inputPerfil.files[0]; const foto_fundo = inputFundo.files[0]; - - // Valida se todos os capos foram preenchidos + // Validação de preenchimento if (!perfil || !foto_fundo) { - - alert('Por favor, preencha todos os campos obrigatórios corretamente!'); + alert('Por favor, selecione ambas as imagens antes de continuar.'); return; + } + // Define limites de tamanho e formato + const tamanhoMaximo = 150 * 1024 * 1024; // 150MB em bytes + const extensoesPermitidas = ["image/jpeg", "image/jpg"]; + + // Função para validar arquivo + function validarArquivo(arquivo, nomeCampo) { + if (!extensoesPermitidas.includes(arquivo.type)) { + alert(`O arquivo selecionado para ${nomeCampo} não é um JPG válido.`); + return false; + } + if (arquivo.size > tamanhoMaximo) { + alert(`O arquivo selecionado para ${nomeCampo} excede o limite de 150MB.`); + return false; + } + return true; + } + + // Valida ambos os arquivos + if (!validarArquivo(perfil, "Perfil") || !validarArquivo(foto_fundo, "Fundo")) { + return; // Interrompe o envio se houver erro } const formData = new FormData(); diff --git a/js/page/Modulo_Construcao/Funcao/Config/User/PopUser_Func.js b/js/page/Modulo_Construcao/Funcao/Config/User/PopUser_Func.js index edf135e..98b3fba 100644 --- a/js/page/Modulo_Construcao/Funcao/Config/User/PopUser_Func.js +++ b/js/page/Modulo_Construcao/Funcao/Config/User/PopUser_Func.js @@ -50,7 +50,7 @@ function InicializandoPopUser() { const EmpresinhasPDf = await Empresinhas.json(); - //console.log(EmpresinhasPDf); + console.log(EmpresinhasPDf); let htmlContentConfig = ''; htmlContentConfig += `` const seletorEmpresa = document.getElementById('SeletorEmpresa'); @@ -58,11 +58,11 @@ function InicializandoPopUser() { for (let EstadoEmpresa of EmpresinhasPDf) { const Empresas = EstadoEmpresa.nome; // "2025-01-14" - const IdEmpresas = EstadoEmpresa.idempresae; + const IdEmpresas = EstadoEmpresa.idempresa; const Dominio = EstadoEmpresa.dominio; - htmlContentConfig += ``; + htmlContentConfig += ``; } @@ -105,12 +105,12 @@ function InicializandoPopUser() { // 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 empresa = SeletorEmpresaElement.value; + const id_empresa = SeletorEmpresaElement.value; // Valida se todos os capos foram preenchidos - if (!nome_completo || !usuario_ad || empresa === '0') { + if (!nome_completo || !usuario_ad || id_empresa === '0') { alert('Por favor, preencha todos os campos obrigatórios corretamente!'); return; @@ -120,11 +120,11 @@ function InicializandoPopUser() { const novoUser = { nome_completo, usuario_ad, - empresa, + id_empresa, dominio_empresa }; - //console.log(novoUser) + console.log(novoUser) EnvioInformacao(novoUser) } diff --git a/js/page/Modulo_Construcao/Funcao/Estrutura/Autencacao.js b/js/page/Modulo_Construcao/Funcao/Estrutura/Autencacao.js index bdf7132..bf56b4c 100644 --- a/js/page/Modulo_Construcao/Funcao/Estrutura/Autencacao.js +++ b/js/page/Modulo_Construcao/Funcao/Estrutura/Autencacao.js @@ -13,8 +13,10 @@ async function Autenticao() { } }); + let ResponseAutenticao = response.status; - return { response, apiUrl }; // Retorne um objeto com a resposta e apiUrl + + return { response, apiUrl, ResponseAutenticao }; // Retorne um objeto com a resposta e apiUrl } @@ -42,7 +44,7 @@ async function IntegracaoZamade() { -async function IntegracaoBoleto() { +async function IntegracaoBoleto_Conect() { const apiUrl = await getApiUrl(); const token = getAuthToken(); @@ -51,9 +53,8 @@ async function IntegracaoBoleto() { throw new Error("Erro: Parâmetros obrigatórios ausentes (apiUrl, token ou domain)"); } - await fetch(`${apiUrl}/boletos`, { method: 'OPTIONS' }); - - const Boleto = await fetch(`${apiUrl}/boletos`, { + // Requisição POST com as opções corretas + const Response_Conect = await fetch(`${apiUrl}/boletos`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -61,14 +62,92 @@ async function IntegracaoBoleto() { } }); + const Boleto_Conect = await fetch(`${apiUrl}/boletos`, { + method: 'OPTIONS', + headers: { + 'Content-Type': 'application/json', + 'x-access-token': token + } + }); + - if (!Boleto.ok) { - throw new Error(`Erro na API de geração de boletos: ${Boleto.status} - ${Boleto.statusText}`); + if (!Boleto_Conect.ok) { + throw new Error(`Erro na API de geração de boletos: ${Boleto_Conect.status} - ${Boleto_Conect.statusText}`); } - return { Boleto, apiUrl }; // Retorna a resposta e a URL + return { Boleto_Conect, Response_Conect, apiUrl }; // Retorna a resposta e a URL + +} + + +async function IntegracaoBoleto_Alinhamento() { + const apiUrl = await getApiUrl(); + const token = getAuthToken(); + + + if (!apiUrl || !token) { + throw new Error("Erro: Parâmetros obrigatórios ausentes (apiUrl, token ou domain)"); + } + + + // Requisição POST com as opções corretas + await fetch(`${apiUrl}/`, { + method: 'GET', + headers: { 'x-access-token': token } + }); + + + const Boleto_Aline = await fetch(`${apiUrl}/`, { + method: 'OPTIONS', + headers: { + 'Content-Type': 'application/json', + 'x-access-token': token + } + }); + + + if (!Boleto_Aline.ok) { + throw new Error(`Erro na API de geração de boletos: ${Boleto_Aline.status} - ${Boleto_Aline.statusText}`); + } + + return { Boleto_Aline, apiUrl }; // Retorna a resposta e a URL + +} + + +async function IntegracaoBoleto_GerarPDF() { + const apiUrl = await getApiUrl(); + const token = getAuthToken(); + + + if (!apiUrl || !token) { + throw new Error("Erro: Parâmetros obrigatórios ausentes (apiUrl, token ou domain)"); + } + + // Requisição POST com as opções corretas + await fetch(`${apiUrl}//pdf`, { + method: 'GET', + headers: { 'x-access-token': token } + }); + + const Boleto_PDF = await fetch(`${apiUrl}//pdf`, { + method: 'OPTIONS', + headers: { + 'Content-Type': 'application/json', + 'x-access-token': token + } + }); + + + + + if (!Boleto_PDF.ok) { + throw new Error(`Erro na API de geração de boletos: ${Boleto_PDF.status} - ${Boleto_PDF.statusText}`); + } + + return { Boleto_PDF, apiUrl }; // Retorna a resposta e a URL } @@ -105,12 +184,9 @@ async function IntegracaoZabix() { const token = getAuthToken(); - if (!apiUrl || !token) { - throw new Error("Erro: Parâmetros obrigatórios ausentes (apiUrl, token ou domain)"); - } - const Zabix = await fetch(`${apiUrl}/zabbix/hosts`, { - method: 'GET', + const Zabix = await fetch(`${apiUrl}/metrics`, { + method: 'POST', headers: { 'Content-Type': 'application/json', 'x-access-token': token, diff --git a/js/page/Modulo_Construcao/Funcao/Estrutura/Controlador_telas.js b/js/page/Modulo_Construcao/Funcao/Estrutura/Controlador_telas.js index 3dc224d..22fa992 100644 --- a/js/page/Modulo_Construcao/Funcao/Estrutura/Controlador_telas.js +++ b/js/page/Modulo_Construcao/Funcao/Estrutura/Controlador_telas.js @@ -24,7 +24,7 @@ async function criarBlocos() { 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(); + const { response, apiUrl, ResponseAutenticao } = await Autenticao(); //Essa constante faz um tratamento sobre a response retirando o json para armazenar nesse data const data = await response.json(); @@ -37,19 +37,11 @@ async function criarBlocos() { logoEmpresa: `${apiUrl}${data.empresa.logo}` }; - //Consoles para validar a chegada das informações, e se estão sendo usadas corretamento //console.log('Data config' + usuarioData); //console.log(usuarioData.nomeCompleto); //console.log(usuarioData.Empresa); - - - - - - - // Inicia a função insercaoFunc_Estrutura await insercaoFunc_Estrutura(); @@ -85,8 +77,8 @@ async function criarBlocos() { async function EstruturaEsqueleto() { //constante que controla o estilo css que está estilizando todo o ambiente do usuário. - const estilos = document.getElementById('conexao'); - estilos.href = './Css/page/Ambiente/Estrutura/estrutura.css'; + const estilos_Estrutura = document.getElementById('conexao'); + estilos_Estrutura.href = './Css/page/Ambiente/Estrutura/estrutura.css'; const construtor_primario = document.getElementById('entrada_1'); @@ -99,6 +91,7 @@ async function criarBlocos() { // Aplica as funções para carregamento das imagens, os alinhando com classe para a aplicação dentro do html. loadImage(usuarioData.ImagemUser, 'profileImage'); loadImage(usuarioData.logoEmpresa, 'companyLogo'); + await loadBackgroundAndUpdateStyle() //console.log('Link da imagem de perfil -' + usuarioData.ImagemUser); //console.log('Link da Logo -' + usuarioData.logoEmpresa); Interatividade(); @@ -111,15 +104,19 @@ async function criarBlocos() { } + setTimeout(localStorage.setItem('Carregou', 'true'), 500) } // Cenario de erro completo da estrutura } catch (error) { + localStorage.removeItem('Carregou'); + // Inicialização da função insercaoFunc_Erro insercaoFunc_Erro(); + // Função similiar de inserção de scripts para o ambiente do usuário, porem nesse caso sendo para a tela de erro. function insercaoFunc_Erro() { @@ -260,8 +257,7 @@ async function loadBackgroundAndUpdateStyle() { document.addEventListener('DOMContentLoaded', async () => { setTimeout(async () => { await criarBlocos(); - await loadBackgroundAndUpdateStyle(); - setTimeout(localStorage.setItem('Carregou', 'true'), 500) // Salva um valor no localStorage + // Salva um valor no localStorage }, 3000); // Executa as funções 3 segundos após o carregamento do DOM }); diff --git a/js/page/Modulo_Construcao/Funcao/Estrutura/Estrutura.js b/js/page/Modulo_Construcao/Funcao/Estrutura/Estrutura.js index f41f225..bee415d 100644 --- a/js/page/Modulo_Construcao/Funcao/Estrutura/Estrutura.js +++ b/js/page/Modulo_Construcao/Funcao/Estrutura/Estrutura.js @@ -1,23 +1,27 @@ - +// Função responsavel por aplicar a funcionalidade de ajuste da tela function Interatividade() { - + //Delcaração das variaveis que serão usadas var botao = document.getElementById('id_ajuste'); var cabecario = document.querySelector('.capitulo_1'); var tela = document.querySelector('.capitulo_2'); var menu = document.querySelector('.menu_lateral'); + //Condicional de existencia do elemento da variavel botao if (botao) { + //Evento de click botao.addEventListener('click', function () { - //console.log('Botão clicado!'); + //console.log('Botão clicado!'); // Console para validar a aplicação do botão pois na epoca tinha conflitos dessa função ser usada ao mesmo tempo que seu elemento estava construido sobre a tela + //Aplicações de classes que pode ser retiradas e aplicadas novamente usando o toggle if (menu) menu.classList.toggle('expansao'); if (cabecario) cabecario.classList.toggle('expansao'); if (tela) tela.classList.toggle('expansao'); }); } else { + //Caso de erro para caso o botão não seja encontrados console.error('Botão não encontrado!'); } - + // Função que foi desutilizada /*if (Permissoes.visuMonitor) { const script2 = document.createElement('script'); script2.src = './js/page/Ambiente/Monitoramento/Modulo_Construcao/Funcao/Estrutura_Secundaria_Monitor.js'; @@ -25,47 +29,36 @@ function Interatividade() { document.body.appendChild(script2); }*/ - // Adiciona o listener de clique após a construção do HTML - - } +// Função para gerar controladores, permitem cada uma das telas do sistema serem apresentadas diante ao sistema. async function ApresentarTelas(InfoGeral) { - + // Inicialização da função InteraçõesTelas InteracoesTelas(); - - - - + // Essa função possui a resposabilidade de alinhar todas const de todas as telas e chamamento de suas funções respectivas function InteracoesTelas() { + ControladorDeVisualizacao(InfoGeral); - + // Alinhamento de todas as consts const Config_texts = document.getElementById('Configuracao_1'); const Config_icon = document.getElementById('Configuracao_2'); - const Home_texts = document.getElementById('Home_1'); const Home_icon = document.getElementById('Home_2'); - - const Logou_texts = document.getElementById('EncerrarSessao_1') - const Logou_icon = document.getElementById('EncerrarSessao_2') - - // Adiciona eventos para alternar entre as telas - Config_texts.addEventListener('click', () => carregarTela('config')); - Config_icon.addEventListener('click', () => carregarTela('config')); - - Home_texts.addEventListener('click', () => carregarTela('home')); - Home_icon.addEventListener('click', () => carregarTela('home')); - - - + const Logou_texts = document.getElementById('EncerrarSessao_1'); + const Logou_icon = document.getElementById('EncerrarSessao_2'); const PainelMoniIcon = document.getElementById('sub_entrada_moni_1'); const PainelMoniButton = document.getElementById('sub_entrada_moni_2'); + // Adiciona eventos para alternar entre as telas cada resposta para o função carregar tela inicia um evento definido mais afrente + Config_texts.addEventListener('click', () => carregarTela('config')); + Config_icon.addEventListener('click', () => carregarTela('config')); + Home_texts.addEventListener('click', () => carregarTela('home')); + Home_icon.addEventListener('click', () => carregarTela('home')); PainelMoniButton.addEventListener('click', () => carregarTela('moni')); PainelMoniIcon.addEventListener('click', () => carregarTela('moni')); - + // Evento de logout Logou_texts.addEventListener('click', EncerrarSessaAm); Logou_icon.addEventListener('click', EncerrarSessaAm); @@ -75,32 +68,38 @@ async function ApresentarTelas(InfoGeral) { } } + // Função responsavel por inicializar cada uma das telas do sistema apartir do evento condicional async function carregarTela(tela) { - + //Alinhamento da inserção estrutural inicial para ser usada dentro da tela de visualização const telaVisualizacao = document.getElementById('TelaVisualizacao'); telaVisualizacao.innerHTML = EstrutraPrimaria(); + // Função que insere base estrutura de visualização, levantando a subEntrada_1 ser a estrutura para a tela de carregamento, enquanto subEntrada_2 é a estrutura que aparesenta toda a tela respectiva. function EstrutraPrimaria() { return `
`; } + // Inicializa a função de TeladeCarregamento TeladeCarregamento(); - + // Função responsavel por apresentar a tela de carregamento function TeladeCarregamento() { - + // Conexão com a subentrada_1 const Subentrada1 = document.getElementById('subEntrada_1'); + // Inicialização de carregamento da função InciandoCarregamento InciandoCarregamento(); + // Inserção da estrutura de carregamento function InciandoCarregamento() { Subentrada1.innerHTML = estruraAnimiada(); + //Inserção html do load function estruraAnimiada() { return `
@@ -115,24 +114,45 @@ async function ApresentarTelas(InfoGeral) { } + // Inicializa a função de FinalizandoCarregamento FinalizandoCarregamento(); } + + // Essa realiza o processo de finalização da tela de carregamento function FinalizandoCarregamento() { //Aplica intevalo de verificações para capitar se foi incluido carregou dentro de localstorage, uma vez encotrado um if busca a resposta para validar se ele é true, ele executa o if. const interval = setInterval(() => { const Subtela_laod = document.getElementById('subEntrada_1'); const SubPaine_load = document.getElementById('Painel_loading') - const Subcarregou = localStorage.getItem('Carregou_tela'); + const Subcarregou_Moni = localStorage.getItem('Carregou_tela_Moni'); + const Subcarregou_Home = localStorage.getItem('Carregou_tela_Home'); + // primeiro caso desenvolvido para capitar a conclusão de carregamento da tela de monitoramento if (SubPaine_load && Subtela_laod) { // Verifica se os elementos existem - if (Subcarregou === 'true') { + if (Subcarregou_Moni === 'true') { + SubPaine_load.style.opacity = "0"; + + // Aplica um delei no carregamento para para deixar a a animação suave + setTimeout(() => { + Subtela_laod.innerHTML = ''; // Limpa o conteúdo do elemento do load + localStorage.removeItem('Carregou_tela_Moni'); // Remove o item do localStorage + clearInterval(interval); // Para de verificar + }, 1000); + } + } else { + clearInterval(interval); // Para de verificar se os elementos não existem + } + + // Aplica um delei no carregamento para para deixar a a animação suave + if (SubPaine_load && Subtela_laod) { // Verifica se os elementos existem + if (Subcarregou_Home === 'true') { SubPaine_load.style.opacity = "0"; setTimeout(() => { Subtela_laod.innerHTML = ''; // Limpa o conteúdo do elemento do load - localStorage.removeItem('Carregou_tela'); // Remove o item do localStorage + localStorage.removeItem('Carregou_tela_Home'); // Remove o item do localStorage clearInterval(interval); // Para de verificar }, 1000); } @@ -145,9 +165,10 @@ async function ApresentarTelas(InfoGeral) { } - + // Conexão com a segunda estrutura const Subentrada2 = document.getElementById('subEntrada_2'); + //Data como o formulario que cada tela precisa possuir para ser incializada, script de html, script de função e mensagem. 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. @@ -201,7 +222,7 @@ async function ApresentarTelas(InfoGeral) { const Tela_homelink = document.getElementById('conexao_tela'); Tela_homelink.href = "./Css/page/Ambiente/Monitoramento/Monitor.css"; - localStorage.setItem('Carregou_tela', 'true') + } // Estrutura html de configuração @@ -209,8 +230,8 @@ async function ApresentarTelas(InfoGeral) { const novatela = document.getElementById('entrada_2') const antigatela = document.getElementById('entrada_1') - localStorage.setItem('Carregou_tela', 'true') Carregar_Configuracoes(); + localStorage.setItem('Iniciar_Config', 'true') function Carregar_Configuracoes() { @@ -250,10 +271,10 @@ async function ApresentarTelas(InfoGeral) { Subtela_laodConfig.innerHTML = ''; // Limpa o conteúdo do elemento do load localStorage.removeItem('Carregou_tela_config'); // Remove o item do localStorage clearInterval(intervalConfig); // Para de verificar - }, 1000); + }, 500); } - }, 3500); // Verifica a cada 500ms + }, 1500); // Verifica a cada 500ms } @@ -307,8 +328,41 @@ async function ApresentarTelas(InfoGeral) { // Carrega a tela 'home' automaticamente ao iniciar carregarTela('home'); + const TElaConfig_new = localStorage.getItem('Carregou_tela_config_New'); + if (TElaConfig_new === "true") { + console.log('home'); + localStorage.setItem('Carregou_Novamente', 'true'); + localStorage.removeItem('Carregou_tela_config_New'); // Remove o item do localStorage + } + + // Controlador de visualização sobre as opições que existem dentro do ambiente do usuário + function ControladorDeVisualizacao(InfoGeral) { + + if (InfoGeral.Empresa == "itguys.com.br") { + const PainelMoniIcon = document.getElementById('sub_entrada_Zammad_1'); + const PainelMoniButton = document.getElementById('sub_entrada_Zammad_2'); + + + PainelMoniButton.innerHTML = ` + + +
+ +

Zammad

+ +
+ +
`; + PainelMoniIcon.innerHTML = ` +
+ +
+ `; + + + } + } } - diff --git a/js/page/Modulo_Construcao/Funcao/Estrutura/Painel_Erro.js b/js/page/Modulo_Construcao/Funcao/Estrutura/Painel_Erro.js index 7763a0b..99e35a9 100644 --- a/js/page/Modulo_Construcao/Funcao/Estrutura/Painel_Erro.js +++ b/js/page/Modulo_Construcao/Funcao/Estrutura/Painel_Erro.js @@ -1,11 +1,12 @@ + async function CasodeErro() { + + const { response } = await Autenticao(); // Recebe o objeto com response e apiUrl //Constante de controle sobre estilos css do painel de erro. const estilos = document.getElementById('conexao'); - - const respostaserver = response.status //console.log(respostaserver) @@ -17,10 +18,13 @@ async function CasodeErro() { let button_acao = '/Sites/Site_ItGuys/ambiente_do_usuário/login.html'; let estilo = './Css/page/Telas_acao/erro_404_Front.css'; + Interpretador(respostaserver, Status, mensagem, sub_mensagem, button_info, button_acao, estilo); function Interpretador(Resposta, Status, mensagem, sub_mensagem, button_info, button_acao, estilo) { + + if (Resposta == 401) { Status = 'Erro 404'; @@ -30,6 +34,7 @@ async function CasodeErro() { button_acao = '/Sites/Site_ItGuys/ambiente_do_usuário/login.html'; estilo = './Css/page/Telas_acao/erro_404_Front.css'; + } if (Resposta == 502) { @@ -65,14 +70,19 @@ async function CasodeErro() { } - estilos.href = estilo; + estilos.href = estilo; } //Constante usada para a criação da estrutura, sendo usada para apresentar todo o painel const erro = document.getElementById('entrada_1'); erro.innerHTML = TeladeErro(Status, mensagem, sub_mensagem, button_info, button_acao); + setTimeout(localStorage.setItem('Carregou', 'true'), 500) + const TElaConfig_new = localStorage.getItem('Carregou_tela_config_New'); + if (TElaConfig_new === "true") { + console.log('home'); + localStorage.setItem('Carregou_Novamente', 'true'); + localStorage.removeItem('Carregou_tela_config_New'); // Remove o item do localStorage + } } - -document.body.style.backgroundColor = 'red' \ No newline at end of file diff --git a/js/page/Modulo_Construcao/Funcao/Home/Func_Home.js b/js/page/Modulo_Construcao/Funcao/Home/Func_Home.js index 1c1a11e..05cd691 100644 --- a/js/page/Modulo_Construcao/Funcao/Home/Func_Home.js +++ b/js/page/Modulo_Construcao/Funcao/Home/Func_Home.js @@ -37,35 +37,44 @@ function IniciandoTelaHome() { function RespostasServiHome(ResutadosES, paineServicos) { - if (ResutadosES === 500) { + if (ResutadosES === 500) {/*status 500 leia pfrrrrr*/ paineServicos.innerHTML = ` -

Statues 404

-

Sem serviços no momento

` +
+

Sem serviços no momento

+

Status 404

+ +
` throw new Error(`Erro na API dos Serviços: ${ResutadosES}`); } if (ResutadosES === 404) { paineServicos.innerHTML = ` -

Statues 404

-

Nenhum serviço encontrado

` +
+

Status 404

+

Nenhum serviço encontrado

+
` throw new Error(`Erro na API dos Serviços: ${ResutadosES}`); } if (ResutadosES === 401) { paineServicos.innerHTML = ` -

Statues 404

-

Usuário não autenticado!

` +
+

Status 404

+

Usuário não autenticado!

+
` throw new Error(`Erro na API dos Serviços: ${ResutadosES} `); } if (ResutadosES === 502) { paineServicos.innerHTML = ` -

Statues 404

-

Estamos realizando manutenções, volte mais tarde

` +
+

Status 404

+

Estamos realizando manutenções, volte mais tarde

+
` throw new Error(`Erro na API dos Serviços: ${ResutadosES} `); } @@ -98,6 +107,7 @@ function IniciandoTelaHome() { async function Chamados_home(dia, pesquisaValor = '') { const { Chamados, ResutadosChamados } = await IntegracaoZamade(); const dataZam = await Chamados.json(); + console.log(dataZam) const ListadeChamados = document.getElementById('ChamadosDominio'); @@ -108,38 +118,42 @@ function IniciandoTelaHome() { if (ResutadosChamados === 500) { ListadeChamados.innerHTML = ` -

Statues 404

+

Status 404

Sem serviços no momento

` - throw new Error(`Erro na API dos Serviços: ${ResutadosChamados}`); + throw new Error(`Erro na API dos Chamados: ${ResutadosChamados}`); } if (ResutadosChamados === 404) { ListadeChamados.innerHTML = ` -

Statues 404

+

Status 404

Nenhum serviço encontrado

` - throw new Error(`Erro na API dos Serviços: ${ResutadosChamados}`); + throw new Error(`Erro na API dos Chamados: ${ResutadosChamados}`); } if (ResutadosChamados === 401) { ListadeChamados.innerHTML = ` -

Statues 404

+

Status 404

Usuário não autenticado!

` - throw new Error(`Erro na API dos Serviços: ${ResutadosChamados}`); + throw new Error(`Erro na API dos Chamados: ${ResutadosChamados}`); + } + + if (ResutadosChamados === 405) { + + ListadeChamados.innerHTML = ` +

Nenhum ticket encontrado nos últimos 30 dias.

`; + throw new Error(`Erro na API dos Chamados: ${ResutadosChamados}`); } if (ResutadosChamados === 502) { ListadeChamados.innerHTML = ` -

Statues 404

+

Status 404

Estamos realizando manutenções, volte mais tarde

` - throw new Error(`Erro na API dos Serviços: ${ResutadosChamados} `); + throw new Error(`Erro na API dos Chamados: ${ResutadosChamados} `); } - - - } let htmlContent = ''; @@ -178,7 +192,11 @@ function IniciandoTelaHome() { case 2: EstadosChamado = 'Aberto_Em_Análise'; break; case 3: EstadosChamado = 'Aguardando_Retorno'; break; case 4: EstadosChamado = 'Solucionado_Fechado'; break; + case 5: EstadosChamado = 'Atencao'; break; case 6: EstadosChamado = 'Em_Andamento'; break; + case 7: EstadosChamado = 'Atencao'; break; + case 8: EstadosChamado = 'Atencao'; break; + } htmlContent += ` @@ -226,7 +244,10 @@ function IniciandoTelaHome() { case 2: StadoChamado = 'Aberto Em Análise'; break; case 3: StadoChamado = 'Aguardando Retorno'; break; case 4: StadoChamado = 'Solucionado Fechado'; break; + case 5: StadoChamado = 'Atenção'; break; case 6: StadoChamado = 'Em Andamento'; break; + case 7: StadoChamado = 'Atenção'; break; + case 8: StadoChamado = 'Atenção'; break; } let StadoChamadoClass = 0; @@ -235,7 +256,10 @@ function IniciandoTelaHome() { case 2: StadoChamadoClass = 'Aberto_Em_Analise'; break; case 3: StadoChamadoClass = 'Aguardando_Retorno'; break; case 4: StadoChamadoClass = 'Solucionado_Fechado'; break; + case 5: StadoChamadoClass = 'Atencao'; break; case 6: StadoChamadoClass = 'Em_Andamento'; break; + case 7: StadoChamadoClass = 'Atencao'; break; + case 8: StadoChamadoClass = 'Atencao'; break; } @@ -540,13 +564,14 @@ function IniciandoTelaHome() { let nomeMes = nomesMeses[mes]; // 🔴 O botão SÓ fica ativo se estivermos DENTRO do mês respectivo E entre os dias 1 e 12 - let botaoAtivo = ano === anoAtual && mes === mesAtual && diaAtual >= 1 && diaAtual <= 13; + let botaoAtivo = ano === anoAtual && mes === mesAtual && diaAtual >= 1 && diaAtual <= 20; console.log(botaoAtivo); + if (botaoAtivo == false) { meses.push(`
-
+

${nomeMes} - ${ano}

@@ -563,6 +588,7 @@ function IniciandoTelaHome() { } if (botaoAtivo == true) { + meses.push(`
@@ -585,37 +611,33 @@ function IniciandoTelaHome() { } BolotosAvencer.innerHTML = meses.join(''); - } + const ButtoaoGerarBoleto = document.getElementById('Gerar'); + + if (ButtoaoGerarBoleto) { + ButtoaoGerarBoleto.addEventListener('click', gerarBoleto); + } + async function gerarBoleto() { + + const { Boleto_Conect, Response_Conect } = await IntegracaoBoleto_Conect(); + //const { Boleto_Aline } = await IntegracaoBoleto_Alinhamento(); + //const { Boleto_PDF } = await IntegracaoBoleto_GerarPDF(); + + const dataBole_Conect = await Boleto_Conect.json(); + //const dataBole_Aline = await Boleto_Aline.json(); + //const dataBole_PDF = await Boleto_PDF.json(); + + const Alinhamento_Pdf = await Response_Conect.blob(); + + console.log("Resposta da conexão", dataBole_Conect, Alinhamento_Pdf); + // console.log("Resposta do Alinhamento", dataBole_Aline); + // console.log("Resposta da Geração de PDF", dataBole_PDF); + const pdfUrl = URL.createObjectURL(Alinhamento_Pdf); + window.open(pdfUrl, '_blank'); - - - - - - - - - async function GerarPDF() { - - const { PDF } = await IntegracaoPDF(); - - const dataPDf = await PDF.json(); - - //console.log(dataPDf); - - } - - async function gerarBoleto() { - - const { Boleto } = await IntegracaoBoleto(); - - const dataBole = await Boleto.json(); - - //console.log(dataBole); - + } } clearInterval(checkElements_home); // Para o setInterval @@ -626,7 +648,7 @@ function IniciandoTelaHome() { //console.log(respostaLoad) function respotadeCarregamento() { - return localStorage.setItem('Carregou_tela', 'true') + return localStorage.setItem('Carregou_tela_Home', 'true') } } diff --git a/js/page/Modulo_Construcao/Funcao/Monitoramento/Func_Moni.js b/js/page/Modulo_Construcao/Funcao/Monitoramento/Func_Moni.js index 9848938..15fa412 100644 --- a/js/page/Modulo_Construcao/Funcao/Monitoramento/Func_Moni.js +++ b/js/page/Modulo_Construcao/Funcao/Monitoramento/Func_Moni.js @@ -1,58 +1,272 @@ +MonitoramentoIniciar(); + +function MonitoramentoIniciar() { + const interval_Moni = 500; // Tempo em milissegundos (1 segundo) + + try { + const checkElements_Moni = setInterval(() => { + try { + const moniConstruida = document.getElementById('Monitoramento'); + + if (moniConstruida) { + let Preinfo = "

Carregando ...

"; + const HostsPainel = document.getElementById('ItensHosts'); + HostsPainel.innerHTML = Preinfo; + + monitoramentoIniciar(); + + async function monitoramentoIniciar() { + const { Zabix, ResutadosZabix } = await IntegracaoZabix(); + RespostasZabixMonitoramento(ResutadosZabix, HostsPainel); -const interval_Moni = 500; // Tempo em milissegundos (1 segundo) - -try { - - const checkElements_Moni = setInterval(() => { - try { - - const moniConstruida = document.getElementById('Monitoramento'); - - if (moniConstruida) { - - const monitoramento = document.getElementById('Monitoramento') - monitoramento.addEventListener('click', monitoramentoIniciar) - - async function monitoramentoIniciar() { - const { Zabix, ResutadosZabix } = await IntegracaoZabix(); - - const dataZabix = await Zabix.json(); + const dataZabix = await Zabix.json(); + const ElementosZabix = dataZabix.data[0].hosts; - if (ResutadosZabix === 500) { - alert(`Erro na API do Zabix: ${Zabix.status} - ${Zabix.statusText}`) - throw new Error(`Erro na API do Zabix: ${Zabix.status} - ${Zabix.statusText}`); - } - - if (ResutadosZabix === 404) { - alert(`Erro na API do Zabix: ${Zabix.status} - ${Zabix.statusText}`) - throw new Error(`Erro na API do Zabix: ${Zabix.status} - ${Zabix.statusText}`); + ApresentarHosts(ElementosZabix); + console.log(ElementosZabix) } + function RespostasZabixMonitoramento(ResutadosZabix, Elementohost) { + + if (ResutadosZabix === 500) { + + Elementohost.innerHTML = ` +
+

Status 404

+

Sem serviços no momento

+
`; + throw new Error(`Erro na API dos Chamados: ${ResutadosZabix}`); + } + + if (ResutadosZabix === 404) { + + Elementohost.innerHTML = ` +
+

Status 404

+

Nenhum serviço encontrado

+
`; + throw new Error(`Erro na API dos Chamados: ${ResutadosZabix}`); + } + + if (ResutadosZabix === 401) { + + Elementohost.innerHTML = ` +
+

Status 404

+

Usuário não autenticado!

+
`; + throw new Error(`Erro na API dos Chamados: ${ResutadosZabix}`); + } + + if (ResutadosZabix === 502) { + + Elementohost.innerHTML = ` +
+

Status 404

+

Estamos realizando manutenções, volte mais tarde

+
`; + throw new Error(`Erro na API dos Chamados: ${ResutadosZabix} `); + } + + if (ResutadosZabix === 504) { + + Elementohost.innerHTML = ` +
+

Status 404

+

Estamos realizando manutenções, volte mais tarde

+
`; + throw new Error(`Erro na API dos Chamados: ${ResutadosZabix} `); + } + + } + + function ApresentarHosts(hosts) { + const filteredHosts = hosts.filter(host => + host.metrics.some(metric => metric.key === "system.hostname") + ); + + const seletorEnseg = document.getElementById('Hostes'); + const hostsPainel = document.getElementById('ItensHosts'); + + if (!seletorEnseg) return; + + // Evita múltiplos eventos sendo adicionados ao select + seletorEnseg.innerHTML = ``; + filteredHosts.forEach(host => { + let hostName = host.metrics.find(metric => metric.key === "system.hostname")?.value || "Desconhecido"; + seletorEnseg.innerHTML += ``; + }); + + Preinfo = "

Selecione um Host

"; + HostsPainel.innerHTML = Preinfo; + + // Removendo eventos anteriores antes de adicionar um novo + seletorEnseg.replaceWith(seletorEnseg.cloneNode(true)); + document.getElementById('Hostes').addEventListener('change', function () { + const selectedHostName = this.value; + hostsPainel.innerHTML = ""; // Limpa o painel + + const selectedHost = filteredHosts.find(host => + host.metrics.some(metric => metric.key === "system.hostname" && metric.value === selectedHostName) + ); + + if (!selectedHost) return; + + let hostContentPainelFixo = ""; + let hostContentPainelMovel = ""; + + selectedHost.metrics.forEach(metric => { + if (metric.key === "icmpping") { + const valor = metric.value; + + if (valor == 0) { + hostContentPainelFixo += `
Host Desativado
`; // Aplicação do Desativado dentro do item host + } + // Reação de aplicação de inserção para o caso do ping for 1 + if (valor == 1) { + hostContentPainelFixo += `
Host Ativado
`; // Aplicação do ativo dentro do item host + } + + + } + + + if (metric.key === "vm.memory.size[total]") { + const valorMemoria = metric.value; + const totalGB = (valorMemoria / Math.pow(1024, 3)).toFixed(2); + + hostContentPainelFixo += `
Total de Ram ${totalGB} GB
` + + } + + let hostContentArmazen = "" + // Suponha que metric.key pode ter diferentes letras de unidade + if (metric.key.startsWith("vfs.fs.dependent.size[")) { + // Expressão regular para capturar a letra da unidade + const match = metric.key.match(/vfs\.fs\.dependent\.size\[([A-Z]):,total\]/); + + if (match) { + const driveLetter = match[1]; // Captura a letra do drive + const valorDisco = metric.value; + + const totalGB = (valorDisco / Math.pow(1024, 3)).toFixed(2); + + hostContentArmazen += `
Disco de Total - ${driveLetter}: ${totalGB} GB
`; + } + + + } + + + + // Suponha que metric.key pode ter diferentes letras de unidade + if (metric.key.startsWith("vfs.fs.dependent.size[")) { + // Expressão regular para capturar a letra da unidade + const match = metric.key.match(/vfs\.fs\.dependent\.size\[([A-Z]):,used\]/); + + if (match) { + const driveLetter = match[1]; // Captura a letra do drive + const valorDisco = metric.value; + + const usedGB = (valorDisco / Math.pow(1024, 3)).toFixed(2); + + hostContentArmazen += `
Disco em uso - ${driveLetter}: ${usedGB} GB
`; + } + } + + hostContentPainelFixo += hostContentArmazen; + + if (metric.key === "system.cpu.util") { + let Alinhadocpu = Math.floor(metric.value); + hostContentPainelMovel += `

CPU ${Alinhadocpu}%

`; + + + setTimeout(() => { + + const Elementoshost_CPU = document.getElementById(`ElementosUtili_CPU_${Alinhadocpu}`); + + if (Alinhadocpu == 100) { + Elementoshost_CPU.classList.add('Consumo_Limite'); + + } + //Maior ou igual á 75 ou Menor ou igual á 99 + if (Alinhadocpu >= 75 && Alinhadocpu <= 99) { + Elementoshost_CPU.classList.add('Consumo_Alto'); + + } + //Maior ou igual á 30 ou Menor ou igual á 74 + if (Alinhadocpu >= 30 && Alinhadocpu <= 74) { + Elementoshost_CPU.classList.add('Consumo_Medio'); + } + + if (Alinhadocpu >= 0 && Alinhadocpu <= 29) { + Elementoshost_CPU.classList.add('Consumo_Baixo'); + + } + + }, 1); + } + + if (metric.key === "vm.memory.util") { + let AlinhadoMemory = Math.floor(metric.value); + hostContentPainelMovel += `

Ram ${AlinhadoMemory}%

`; + + setTimeout(() => { + + const Elementoshost_Memory = document.getElementById(`ElementosUtili_Memory_${AlinhadoMemory}`); + + if (AlinhadoMemory == 100) { + Elementoshost_Memory.classList.add('Consumo_Limite'); + + } + //Maior ou igual á 75 ou Menor ou igual á 99 + if (AlinhadoMemory >= 75 && AlinhadoMemory <= 99) { + Elementoshost_Memory.classList.add('Consumo_Alto'); + + } + //Maior ou igual á 30 ou Menor ou igual á 74 + if (AlinhadoMemory >= 30 && AlinhadoMemory <= 74) { + Elementoshost_Memory.classList.add('Consumo_Medio'); + } + + if (AlinhadoMemory >= 0 && AlinhadoMemory <= 29) { + Elementoshost_Memory.classList.add('Consumo_Baixo'); + + } + + }, 1); + } + }); + + hostsPainel.innerHTML = ` + +
${hostContentPainelMovel}
+
${hostContentPainelFixo}
+ + `; + + + }); + } + localStorage.setItem('Carregou_tela_Moni', 'true'); + clearInterval(checkElements_Moni); } - - clearInterval(checkElements_Moni); // Para o setInterval - + } catch (error) { + console.error('Erro dentro da tela home:', error); + clearInterval(checkElements_Moni); } - - - } catch (error) { - console.error('Houve algo inesperado dentro da tela home' + error) - - clearInterval(checkElements_Moni); // Para o setInterval - } + }, interval_Moni); + } catch (error) { + console.error('Erro fora da tela home:', error); + } - }, interval_Moni); - -} catch (error) { - console.error('Houve algo inesperado fora da tela home' + error) -} - +} \ No newline at end of file diff --git a/js/page/Modulo_Construcao/Painel/Config/Ambiente/PopAmbientes_html.js b/js/page/Modulo_Construcao/Painel/Config/Ambiente/PopAmbientes_html.js index bce5758..3783b3d 100644 --- a/js/page/Modulo_Construcao/Painel/Config/Ambiente/PopAmbientes_html.js +++ b/js/page/Modulo_Construcao/Painel/Config/Ambiente/PopAmbientes_html.js @@ -1 +1,107 @@ -// dedicado para atender as estrutura html desse pop up do ambiente do usuário \ No newline at end of file +// dedicado para atender as estrutura html desse pop up do ambiente do usuário + +// +function Estrututura_html_Ambiente_home() { + return ` +
+ + + +
+
+
+ +

Usuários

+ +
+
+ + +
+
+ +`; +} + + +function Estrututura_html_Ambiente_Criacao() { + return ` +
+ + + +
+
+
+ +

Usuários

+ +
+
+ +
+

Ficha do Usuário

+ + +
+
+

Alinhamento de Empresa

+ +

Dominio

+
+
+ +
+ +
+ + + +
+ +`; +} + +function Estrututura_html_User_edicao() { + return ` +
+ + + +
+
+
+

Usuários

+ +
+
+ +
+

Ficha do Usuário

+ + +
+
+

Alinhamento de Empresa

+ +

Dominio

+
+
+
+
+
+ +
+ + + +
+ +`; +} \ No newline at end of file diff --git a/js/page/Modulo_Construcao/Painel/Config/Estrutura/Estrutura_Config_Html.js b/js/page/Modulo_Construcao/Painel/Config/Estrutura/Estrutura_Config_Html.js index 9b18353..72436ab 100644 --- a/js/page/Modulo_Construcao/Painel/Config/Estrutura/Estrutura_Config_Html.js +++ b/js/page/Modulo_Construcao/Painel/Config/Estrutura/Estrutura_Config_Html.js @@ -20,12 +20,12 @@ function estruturaHtml_Config() { +

Manual do Usuário

-
+
-->
`; diff --git a/js/page/Modulo_Construcao/Painel/Config/User/PopUser_html.js b/js/page/Modulo_Construcao/Painel/Config/User/PopUser_html.js index 9f3e636..a0d8ab3 100644 --- a/js/page/Modulo_Construcao/Painel/Config/User/PopUser_html.js +++ b/js/page/Modulo_Construcao/Painel/Config/User/PopUser_html.js @@ -1,3 +1,4 @@ +// function Estrututura_html_User_home() { return `
diff --git a/js/page/Modulo_Construcao/Painel/Estrutura/Html_estrutura.js b/js/page/Modulo_Construcao/Painel/Estrutura/Html_estrutura.js index 7b6bb2d..b6e9b24 100644 --- a/js/page/Modulo_Construcao/Painel/Estrutura/Html_estrutura.js +++ b/js/page/Modulo_Construcao/Painel/Estrutura/Html_estrutura.js @@ -1,3 +1,5 @@ + +// Inserção do esqueleto principal do projeto. function InterfaceAmbiente(nomeCompleto, Empresa) { return `
+ + + +
+ + + +
+
@@ -55,7 +66,7 @@ function InterfaceAmbiente(nomeCompleto, Empresa) {
- +
@@ -64,6 +75,7 @@ function InterfaceAmbiente(nomeCompleto, Empresa) {
+
@@ -128,6 +140,17 @@ function InterfaceAmbiente(nomeCompleto, Empresa) { + + + +
+ +

Webmail

+ +
+ +
+