Skip to content

Releases: paschendale/webgente-node

webgente-node-1.4

06 Aug 17:49
bbe467c

Choose a tag to compare

Notas de atualização para a versão 1.4

Principais novidades

  • Melhorias na ferramenta de pesquisas
  • Modo escuro podendo ser desabilitado
  • Mapa apresenta o nome do usuário e ferramentas para acessar a interface restrita sem logar novamente ou deslogar diretamente pelo mapa

Em detalhes:

Melhorias para os usuários logados

  • Nome do usuário logado agora aparece no canto superior esquerdo da tela informando que ele está na interface restrita
  • Caso o usuário seja admin, aparecerá dois botões: um para acesso à interface de administração e outro para logout
  • Caso o usuario seja normal, só aparecerá o botão para logout
  • O usuário admin agora pode fazer acesso à interface de administração sem precisar logar novamente à partir da interface de mapas
  • Remoção do botão de login via conta Google

Alterações no comportamento do Modo Escuro

  • Adicionado suporte à desativação total do modo escuro na interface de administração
  • Como a funcionalidade ainda está em modo experimental pode se comportar com alguns problemas na legenda dinâmica

Melhorias na Interface de Pesquisas

  • Formato GML alterado para KML. Agora o WebGENTE exporta dados em KML e os antigos GeoJSON e CSV
  • Nomes dos arquivos gerados agora empregam o nome da camada exportada
  • Exportações GeoJSON são processadas previamente pelo backend aplicando restrições nos dados
  • Adicionada variavel opcional srs_name à rota WFS para dados que devem possuir o mesmo sistema que o utilizado no Leaflet. Requisições realizadas sem o srs_name objetivam apenas a exibição no mapa (empregando o SRS:4326), requisicoes realizadas com o srs_name objetivam o download dos dados. Neste caso, é empregado o srs_name definido para a ferramenta de coordenadas
  • Adição de spinners aos botões de download enquanto o AJAX para download dos dados não é completo

Correções de erros na interface de Pesquisas

  • Pesquisas vazias retornam todos os objetos da camada. No backend, o parametro cql_filter é removido da requisição.
  • Requisições que retornam erro no backend são devolvidas ao front-end com um código e uma mensagem interpretável.
  • Requisições em erro vindas do backend geram alerts com os erros.

webgente-node-1.3.3

06 Aug 13:59
37fd4dc

Choose a tag to compare

Alterado estilo de logging do WebGENTE

A inicialização do sistema conta com algumas mensagens importantes que devem recorrer no log antes de começar o uso propriamente dito do sistema. Por exemplo:

August 6th 2021, 10:49:11 am | Conexão com a base de dados realizada com sucesso.
August 6th 2021, 10:49:11 am | WebGENTE started at http://localhost:3000
August 6th 2021, 10:49:11 am | Credenciais de autenticação com o Geoserver atualizadas.
August 6th 2021, 10:49:11 am | Model de Camadas sincronizado com sucesso.
August 6th 2021, 10:49:42 am | Model de Usuários sincronizado com sucesso.
August 6th 2021, 10:50:07 am | Model de Configurações sincronizado com sucesso.

Após a sincronização dos 3 Models, o sistema rodará sem erros. Antes da sincronização do Model de Configurações podem ocorrer alguns erros de autenticação entre o WebGENTE e o Geoserver, ainda estamos monitorando estes erros para serem corrigidos nas próximas versões.

Demais atualizações

  • Adicionado módulo MomentJS para auxiliar na geração de logs com data/hora
  • Adicionada função logTime() para ser adicionada em todo console.log do backend. A nova sintaxe que deve ser usada é:
    console.log(logTime() + 'mensagem desejada')
  • Mensagem de coordenadas inválidas na ferramenta de pesquisa por coordenadas alterada.

webgente-node-1.3.2

21 Jul 20:28
6d13f06

Choose a tag to compare

Correção de bugs da versão 1.3

  • Atualização do README.md com informações do projeto e instruções de instalação
  • Impedimento de requisições de seleção de feições (GetFeature) e de informação da feição (GetFeatureInfo) quando não houver nenhuma camada ligada
  • Impedimento de pesquisa por coordenada inválida. O usuário recebe uma notificação caso o valor entrado na pesquisa por coordenadas não seja um número.

webgente-node-1.3.1

15 Jun 17:19
5688364

Choose a tag to compare

Correções de Bugs da Versão 1.3

Metadados não aparecem quando caminho especificado não contém public/

  • Por conta da atualização no endereço de salvamento do metadado à partir da 1.2, casos em que o caminho do metadado não vinha com o /public não passavam no split(), logo não aparecendo no link final. Criada condicional para verificação se existe uma string após o /public.

Correção de exibição dos panoramas para dois tipos diferentes de caminhos

A função open360Viewer chamava somente o link para o caminho absoluto do 360 quando estivessem presentes os atributos path_360 e path_360_min

  • Criada função open360ViewerMin, chamada quando o link clicado for o de caminho relativo do 360

Correção de erro de proj4

O console exibia um erro enquanto o AJAX para obtenção das definições do sistema da ferramenta de coordenadas não era completado

  • Adicionado proj4 padrão para 4326 enquanto o resultado do sistema escolhido nas configurações não é completado

Attribution sendo adicionado para camadas overlay

  • Removida adição de attribution para camadas overlay. A exibição de uma ou mais attributions impedia o uso de HTML para estiliza-las

Password salvo sem encriptação na interface de edição do usuario

  • Adição de hash para o password do usuario na interface de edição

webgente-node-1.3

11 Jun 15:43
8be54fe

Choose a tag to compare

Notas de atualização para a versão 1.3

Principais novidades:

  • Todas as ferramentas do WebGENTE agora funcionam com o proxy reverso do Apache
  • Adicionada interface de reordenamento das camadas
  • Adicionada opção de restrição de download de feições pesquisadas somente para usuários logados
  • Adicionado feed de novidades e de tutoriais de ajuda na interface administrativa

Página de Help na Interface de Administração

  • Página de Help na interface de Administração exibirá vídeos do Feed da playlist de Tutoriais da Interface de Administração
  • Mecanismo de atualização do feed é o mesmo do de atualização do blog, empregando a API do rss2json
  • Futuramente trocaremos esse feed pelo feed da documentação

Feed de novidades do WebGENTE no home da interface administrativa

  • O feed é alimentado através do RSS da tag WebGENTE do Blog
  • O RSS é lido por uma API online e transformado em JSON. A API atualiza o feed diariamente apenas.
  • O JSON é lido no frontend, onde são construídos os cards do Feed através da função feedCardHTML()
  • São exibidos somente os 4 posts mais recentes da tag!

Bug fix na criação de usuários

  • Como birthDate não é mais inserido a constraint allowNull: false estava dando erro nas inserções.
  • Adicionado defaultValue na coluna birthDate no model de Users e adicionado alter: true.

Adicionado suporte à download de feições com restrição através da ferramenta de seleção (@sabrin577)

  • Alteração nos resultados da rota Select: propriedades inclusas com restrição de tributos;
  • Remoção da função removeProperties na rota Select;
  • Restrição de campos na rota Select utilizando a função restrictAttributes.

Adicionado suporte ao reordenamento de camadas

  • Adicionado botão na área de administração de camadas para realizar o reordenamento desta
  • Camadas são sobrepostas conforme sua ordem de chamada, sendo assim, camadas mais abaixo do menu de camadas sobrepõem aquelas mais acima. Isto estava criando alguns efeitos indesejados à depender da ordem de declaração das camadas na interface: uma camada de quadra declarada após uma camada de lotes impediria a visualização de ambas camadas simultaneamente devido à sobreposição da primeira à segunda.
  • A interface de reordenamento permite reordenar tanto os grupos quanto as camadas dentro dos grupos
  • O reordenamento é feito via uma requisição POST à rota /layers/reorder, no corpo da requisição são enviados os id's da ordem antiga das camadas e a nova ordem, realiza-se o reordenamento alterando os id's, e, dessa forma, alterando a forma como o Sequelize serve as camadas por todas as interfaces (ordenadas pelo novo id)
  • A criação da lista é realizada dinamicamente e o draggable é dado pelo jQuery-UI, colocado via CDN unicamente na página reorder.ejs
  • Para todos os elementos foram atribuidas classes e linkadas em administracao.css, ainda que nao tenham personalizações. O CSS principal neste commit é todo do Bootstrap

Bug fix - Decoding de URLs em proxys reversos

  • Quando empregando proxys reversos no WebGENTE é necessário adicionar uma diretiva AllowEncodedSlashes setada para Decode para permitir que as requisições url-codificadas no frontend cheguem ao backend corretamente, ou seja, sem decodificar os slashes (/ -> %2F)
  • Essa diretiva faz com que alguns parametros cheguem codificados ao backend e não são decodificados, por ex. o outputFormat = 'application/json' que é enviado ao geoserver como 'outputFormat=application%252Fjson'
  • Para resolver este problema criei uma função decodeURIComponentSafely Problema parecido no StackOverflow
  • Basta envolver os parametros recebidos em req.params com decodeURIComponentSafely que tudo deve resolver

PS: Foi criado um post com as diretrizes para criação de Proxy Reverso via Apache em nosso blog

Bug fix - URL do Host no DescribeLayer não estava funcionando em proxys reversos

  • removida verificação se host é URL na rota que faz o DescribeLayer

Adicionado opção de desabilitar download de feições na interface de pesquisa por atributos (@sabrin577)

  • Caso habilitada a função as opções de download da tabela de atributos na interface de pesquisa só aparecem para usuários logados
  • Criado um campo booleano no model de Config.js para armazenar se a ferramenta esta ou nao habilitada
  • Campo download_enabled enviado ao front-end
  • se habilitada a funcionalidade, a rota que envia a requisicao WFS ao backend só aceita requisicoes de usuarios logados

webgente-node-1.2

04 Jun 17:22

Choose a tag to compare

Importante:

  • Migrações a partir da versão 1.0 necessitam de npm install ou yarn install para a instalação de 3 novas dependências: formidable, fs e path
  • Migrações irão inicializar com ferramentas todas desativadas, basta ativar as que deseja em Configurações

Responsividade, CSS e UX

  • Correções de responsividade do menu de camadas e de legendas, agora apresentam barra de rolagem ao atingir altura máxima de 70% da altura da tela
  • Adicionado dark mode automatico toda vez que a color scheme do navegador ou sistema for escura. Todas as alterações de estilo são listadas após o comentário 'Dark mode' em webgente.css
  • Alterada attribution do sistema de Leaflet para WebGENTE
  • Removida a navbar, funcionalidades de login e help transferidas para botões
  • Botões de ferramentas agrupados utilizando o easyBar, uma função do easyButton
  • Traduzidos os textos da ferramenta de desenhos
  • Adicionados tooltips para todas as ferramentas
  • Requisicoes de GetLegendGraphics agora vêm transparentes

Código e funcionamento do sistema

  • Atualização de TODO's pelo código com pontos de melhoria
  • O Model de Config agora tem a permissão de alterar a tabela, isto é, a criação de novas colunas no model implica na criação dela também na base mesmo após a tabela já ter sido criada. Este tipo de configuração não é o recomendado para produção, mas vamos seguindo com ele até desenvolvermos algum método mais adequado.
  • Camadas default alteradas do workspace gianetti para ufv, adicionado Modelo Digital de Terreno para demonstração
  • O js do Leaflet.Draw agora está local
  • Adicionado campo para alteração da attribution das camadas base e MDT em layer_details.ejs, agora é possível alterar o texto que aparece no canto inferior direito do mapa, inclusive com HTML

Ferramenta de Coordenadas

  • Sistema de referencia definido em configurações
  • O default para o sistema de referência é o EPSG 31983, ou seja, UTM 23 S SIRGAS 2000.

Ferramenta de seleção de feições funcional

  • Correção no método de seleção das feições, antes selecionava apenas via bounding box, agora foi empregada solução ECQL + CQL com pesquisa via point in polygon. Referência no SE

Obs: Notamos que a execução da ferramenta no Geoserver exige bastante em máquinas com menor capacidade de hardware, sugerimos desabilitar a ferramenta quando seu Geoserver estiver rodando com menos de 4 GB de memória RAM

Upload de metadados

  • Resolvido bug do formidable onde o armazenamento do metadado em sistemas UNIX estava dando crash no sistema devido às barras invertidas.
  • Resolvido bug de metadados indefinidos no menu de camadas, levando à um caminho inexistente.
  • Adicionado botão para remover metadados de uma camada. o Metadado não é excluido do servidor, apenas seu caminho é limpo.

Habilitando e desabilitando ferramentas

  • Adicionada interface de habilitar/desabilitar ferramentas em config_tools.ejs

  • Adicionados campos booleanos em configurações para habilitar/desabilitar ferramentas

  • Até o momento foram criadas as variáveis:
    home_enabled -> Desabilita o botão de volta à vista inicial
    select_enabled -> Desabilita a ferramenta de seleção de feições
    information_enabled -> Desabilita a ferramenta de visualização de atributos de feições
    search_enabled -> Desabilita a ferramenta de pesquisa por atributo
    legend_enabled -> Desabilita a ferramenta de legendas
    geolocation_enabled -> Desabilita a geolocalização
    measurement_enabled -> Desabilita as ferramentas de medição
    custom_legend_enabled -> Desabilita as legendas customizadas
    coordinates_enabled -> Desabilita a ferramenta de coordenadas

  • Novas ferramentas são desabilitadas por default na atualização do sistema, devendo ser habilitadas em configurações

  • A funcionalidade permite habilitarmos ferramentas em modo 'beta' para irmos testando na main sem comprometer a atualização de sistemas em produção

  • Na versão 1.2 são desabilitadas as funcionalidades: pesquisa por atributos e legenda personalizada, para habilitar por padrão deve-se alterar o valor da variavel inserida em dummyData

  • Ferramentas sao desabilitadas somente visualmente na interface através de webgente.js, código para a funcionalidade está e deve permanecer nas ultimas linhas

Legendas customizadas

  • Almejando a melhoria do dark mode futuramente agora é possível utilizar legendas customizadas pelo Geoserver. A funcionalidade remove o título da legenda ao acionar a camada e insere um <hr> entre as imagens com um aspecto mais minimalista.

Melhoria da interface do usuário

  • Removido o atributo birthDate das interfaces do usuário
  • Password agora é editável na interface de edição
  • Grupo do usuário é selecionado por menu

webgente-node-1.1

21 May 17:19
d2f8a63

Choose a tag to compare

Adiciona suporte à upload de metadados, definição do sistema de referência da ferramenta de coordenadas via interface de administração, corrige elementos de responsibidade geral.

Adicionado mecanismo de manutenção e atualização de bases de dados da versão 1.0 com o Sequelize para o modelo de Config. Pode ocasionar erros em bases de produção, iremos elaborar um mecanismo mais seguro nas próximas versões.

webgente-node-1.0-stable

18 May 18:15

Choose a tag to compare

Olá a todos! Essa release corresponde à primeira versão estável do sistema e conta com as seguintes ferramentas:

Na interface de mapas:

  • Controle de Camadas
  • Botão para acesso aos metadados da camada
  • Zoom e Panorâmica
  • Identificação dos Atributos da Feição
  • Seleção de Feição no Mapa para Download
  • Pesquisa por Atributos, com download de resultados, individuais ou em grupo, nos formatos: GML, CSV e GeoJSON
  • Legendas Dinâmicas
  • Geolocalização
  • Realização de Medidas de Distância e Áreas, com download dos resultados em GeoJSON
  • Leitor de coordenadas reprojetadas em um sistema de coordenadas especificado pelo administrador
  • Busca por coordenadas em um sistema de coordenadas especificado pelo administrador

Na interface de administração

  • Gerenciamento de usuários administradores e com permissão de visualização total
  • Gerenciamento de camadas base, de sobreposição e modelos digitais de terreno
  • Restrição de informações exibidas das camadas na interface anônima
  • Restrição de informações pesquisáveis
  • Configurações gerais do sistema (coordenadas de inicialização, nome do município/instituição, credenciais e URL do servidor de mapas, sistema de referencia do leitor de coordenadas