Releases: paschendale/webgente-node
webgente-node-1.4
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 osrs_nameobjetivam apenas a exibição no mapa (empregando oSRS:4326), requisicoes realizadas com osrs_nameobjetivam o download dos dados. Neste caso, é empregado osrs_namedefinido 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
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
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
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
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
birthDatenão é mais inserido a constraintallowNull: falseestava dando erro nas inserções. - Adicionado
defaultValuena colunabirthDateno model de Users e adicionadoalter: 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
removePropertiesna 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
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,fsepath - 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
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
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