📜 Macanudos GEO – Histórico de Funcionalidades
🚀 Versão 1.1.20
Abril 2026📻 QRG Repetidores
- Importação para QRG de repetidores VHF, UHF, DMR e D-STAR com novos campos técnicos, geográficos e operacionais.
- QRG passou a incluir filtros por tipo de repetidor e botão de exportação CSV por filtro ativo.
- Tabela QRG reforçada com informação de canal, entrada/saída, TG/CC, reflector e localização.
- Formulário `Adicionar ao QRG` expandido para entrada manual de campos específicos de repetidor.
📡 Estações e Indicativos
- Criado suporte para upload de imagem da estação/indicativo no criar e editar estação.
- Nova pasta pública dedicada para imagens de estações em `public/assets/img/stations`.
- Perfil da estação passou a mostrar imagem da estação/indicativo e mais campos operacionais.
- Fallback automático de imagem default por banda (CB / PMR) com compatibilidade de nomes de ficheiro.
🚀 Versão 1.1.19
Abril 2026🗓️ Calendário e Eventos
- Nova página dedicada de calendário `/calendario` com grelha mensal e navegação entre meses.
- Calendário alinhado com o widget de próximas atividades, agregando `geo_alerts` e `geo_eventos`.
- Acesso direto para criar eventos a partir do calendário e do widget de atividades.
📻 QRG e Frequências
- Página QRG simplificada com remoção do acesso rápido a QSO e novo botão bordeaux `Adicionar ao QRG`.
- Novo formulário para utilizadores adicionarem frequências ao QRG.
- Adição de frequência ao QRG passa a publicar registo automático no chat público e no log.
🧭 Interface Operacional
- Widget 1 passou a destacar `Calendário` como atalho com descrição de eventos, alertas e atividades.
- Tabela QSO do cluster reorganizada para leitura mais clara da estação escutada e do spotter.
- QRV Radar e DX receberam ajustes visuais nas ações rápidas.
🛠️ Correções
- Edição de registos no perfil voltou a gravar coordenadas `lat/lng`.
- Widget de chat protegido contra carregamentos concorrentes.
- Corrigido ficheiro legado `public/widgets/pchat.php` após inserção acidental de conteúdo inválido.
🚀 Versão 1.1.18
Abril 2026🧭 Navegação e Estrutura
- Separação de páginas dedicadas para QAP, QSO e DX com rotas próprias.
- Menu principal alinhado para GEO | MAPA | QAP | QSO | DX | CHAT.
- Mapa DX passou a rota dedicada `/mapa/dx` para contexto exclusivamente DX.
🗺️ Mapa de Contactos / DX
- Mapa de contactos em `/mapa/registos` agora global (QAP/QSO) e não limitado ao perfil.
- Filtro temporal por defeito definido para últimos 3 meses.
- Popup do mapa expandido com estação que escuta, estação reportada e localização escutada.
- DX mapa com legendas e paleta próprias (azul escuro para estação que reporta, azul claro para estação escutada).
👤 Perfil Operacional
- Perfil dividido em fluxos dedicados: `Os meus QAP e QSO` e `Os meus DX`.
- Página DX do perfil com mapa de linhas de distância e tabela filtrável de registos DX.
- Ações e botões do perfil reorganizados por prioridade operacional.
📡 Estações e Geocodificação
- Formulários de estação (criar/editar) atualizados com novas opções de Tipologia e Rede.
- Localidade e país passam a ser atualizados automaticamente via pesquisa, clique no mapa e arrasto da pinta.
📣 Eventos GEO
- Formulário de eventos com tipologia (Evento/Atividade/Alerta) e tabela de orientação melhorada.
🚀 Versão 1.1.17
Abril 2026📜 Log de Sessão
- Login WordPress passa a gerar registo neutro no log: "Um macanudo logou-se."
- Logout GEO alinhado para registo neutro no log sem expor nome do utilizador.
💬 Chat / Áudio
- Widget 2 de chat na home alinhado para usar o quindar tone, tal como as páginas de chat.
🚀 Versão 1.1.16
Abril 2026🗺️ Mapa de Registos
- Novo mapa dedicado de registos (QSO/QRK/DX) com filtros por tipo e data para reduzir carga.
- Suporte para foco num contacto específico a partir do perfil/cluster (record_id).
- No perfil, o mapa pode ser limitado às estações do próprio utilizador (profile_only).
📒 Perfil e Cluster
- Botões "Ver no mapa" por linha em QSO e DX no perfil e no cluster.
- Botão só aparece quando existem coordenadas válidas nas duas estações do contacto.
🔊 Notificações áudio
- Notificações de log e chat estabilizadas com desbloqueio de reprodução compatível com browsers modernos.
- Chat privado voltou a emitir quindar tone em novas mensagens e ganhou botão de som 🔊/🔇.
📜 Ajuda e Changelog
- Página Ajuda expandida para manual completo com Ajuda Rápida e âncoras por secção.
- Privacidade do perfil clarificada: perfil é privado e separado da exposição operacional de estações.
- Definições QRK/QSO clarificadas: QRK unilateral, QSO bilateral.
- Widget de log voltou a mostrar eventos de login após remoção de filtro incorreto.
- Novo registo automático por sessão no login WordPress: "Um macanudo logou-se." sem identificação do utilizador.
🚀 Versão 1.1.6
Março 2026🛰️ Cluster de Contactos
- Nova área Cluster com registos agregados de QRK, QSO e DX numa única vista.
- Separadores por tipo de contacto (QRK / QSO / DX) com contadores em tempo real.
- Botão de criação muda conforme o separador ativo (Novo QSO, Novo QRK ou Novo DX).
- Formulário DX dedicado com banda CB por defeito e campo privado funcional.
- Registo de contactos DX gravado com type=dx na tabela unificada de contactos.
📩 Mensagens Privadas
- Botão INBOX só acende em vermelho quando existem mensagens privadas por ler.
- Mensagens privadas passam automaticamente a lidas ao abrir chat ou inbox.
- Badge numérico no botão INBOX indica total de mensagens por ler.
- Em modo mobile o botão INBOX exibe a etiqueta INBOX visível.
- Tooltip informativo no botão quando existem mensagens pendentes.
📒 Registos QRK / QSO
- Formulários QRK e QSO bloqueiam datas no futuro, tanto no browser como na validação de servidor.
- Campo Privado (0/1) agora gravado corretamente na base de dados para os três tipos de registo.
📜 Changelog
- Página de changelog convertida para formato textual funcional por versão.
- Conteúdo gerido nativamente em Laravel, sem dependência de visualização de commits Git.
🚀 Versão 1.1.5
Março 2026✅ Laravel como versão principal
- Fluxo principal consolidado em /geo (Laravel); legado mantido em /geolegacy/ para compatibilidade.
- Correção de links internos que ainda apontavam para páginas .php antigas.
- Fluxo de logout alinhado para regressar corretamente à home nativa Laravel.
- Proteção e consistência de acesso em Profile e Registos com bridge WordPress.
🗺️ Mapa e Popups
- Botão Detalhes do popup atualizado para /geo/stations/{id}.
- Botões + QRK e + QSO atualizados para rotas Laravel com pré-preenchimento de estação, banda e hora.
📒 QRK / QSO
- Redireções de erro e sucesso alinhadas com rotas Laravel.
- Autenticação consistente nas páginas de listagem.
- Mensagens informativas de contexto restauradas nas views.
🔗 Navegação
- Perfil, estação e QRG atualizados para links corretos de registo rápido.
- Página SDR e widget SDR atualizados para detalhe de estação em rota Laravel.
🌦️ Meteorologia
- Widget meteo recuperado com ligação correta à base dedicada.
- As três caixas de previsão passaram a mostrar fallback seguro quando não há dados.
🚀 Versão 1.1.4
Fevereiro 2026🌦️ Alertas Meteo (IPMA)
- Regra de seleção de alertas atualizada para preenchimento por prioridade: Vermelho → Laranja → Amarelo → Verde.
- Exibição compacta do número total de alertas no título do widget.
- Rotação dinâmica mantida para cenários com muitos avisos graves.
🗺️ QAP Mapa e Histórico
- Mapa QAP alinhado com o mapa principal em termos de estética e comportamento.
- Popups unificados com descrição, estado No Ar e ações rápidas (+QRK / +QSO).
- Histórico No Ar simplificado para foco exclusivo em rádio: agora, 24h, 3 dias, semana e mês.
- Marcadores por banda aplicados no QAP Mapa e no Histórico.
🎙️ No Ar (QAP)
- Monitor global de expiração do estado No Ar disponível em qualquer página autenticada.
- Popup de prolongamento (+30 min) disponível fora da página de estações.
- Sincronização imediata do estado no topo após ligar ou desligar rádio.
🧭 Menu e UX
- Botão Estações e Indicativos renomeado para RADIOS.
- Indicador visual em tempo real no botão RADIOS quando existem estações no ar.
- Indicador visual em tempo real no botão Mensagens quando existem mensagens privadas por ler.
- Adicionado ícone ao botão Perfil.
👤 Perfil e Estações
- Texto informativo do Perfil revisto para esclarecer isolamento e privacidade total do painel.
- Página de estações atualizada com título "As minhas estações e indicativos".
- Adicionada nota vermelha informativa sobre criação de estações e futura localização móvel.
🚀 Versão 1.1.3
Fevereiro 2026🌦️ Alertas Meteo (IPMA)
- Widget da home migrado para API oficial IPMA com cache local horária.
- Resolução de áreas por identificador de aviso e agrupamento por zona e nível.
- Exclusão de Agitação Marítima no resumo principal.
- Seleção por severidade dominante (vermelho > laranja > amarelo > verde).
- Rotação dinâmica para cenários com muitos avisos graves (janela de 5 minutos).
- Layout compacto otimizado para dashboard.
💬 Chat Privado por Estações
- Correção de duplicação visual no envio otimista.
- ACK com ID real da mensagem para sincronização imediata.
- Fetch incremental com suporte JSON (mantendo fallback HTML).
- Melhoria de robustez no polling e prevenção de requests sobrepostos.
- Endurecimento de segurança no rendering local de mensagens.
🗺️ Popup do Mapa
- Popup visual unificado com tema cinza escuro.
- Remoção do botão fechar (mantém fecho por clique fora ou ESC).
- Ações rápidas no popup: + QRK e + QSO.
- Pré-preenchimento dos formulários com estação, banda e hora do popup.
- Botões equivalentes adicionados também na página da estação.
🎙️ Fluxo No Ar (QAP)
- Ao ligar uma estação, confirmação inicial e escolha de canal por botões.
- CB: canais 1–40 | PMR446: canais 1–16.
- Validação de canal no frontend e backend.
- Suporte para exibir no popup: 🔴 No Ar! Canal X.
🛠️ Correções
- Link inválido corrigido em edição de registos (cancelar).
- Melhoria de cache-busting dos scripts do mapa.
🚀 Versão 1.1.0
Fevereiro 2026📡 Estações no Ar
- Nova funcionalidade Estações no Ar baseada em QRZ.
- Visualização dinâmica de estações ativas no ecossistema GEO.
- Os meus QRK e QSO: editar e apagar registos pessoais.
- Alertas e eventos de atividade rádio em tempo real.
📜 Log / Feed Global
- Centralização de informação em formato de feed cronológico.
- Registos de estações no ar, boletins, Plano 3-3-3 e notícias integradas.
- Superfeed agregado com atualização contínua ordenada por tempo.
💬 Chat
- Expansão do sistema de canais de chat.
- Ativação e desativação de canais por utilizador.
- Filtros de canais persistentes entre sessões.
- Pesquisa de mensagens em tempo real.
- Melhoria da legibilidade em chats com grande volume de mensagens.
🧠 Melhorias Técnicas
- Otimização de polling no chat com redução de carga.
- Estrutura preparada para evolução para SSE / WebSocket.
🚀 Versão 0.1.0
Janeiro 2026🗄️ Base de Dados
- Base de dados GEO separada do WordPress.
- Ligação centralizada via includes/db.php.
- Estruturas criadas para estações, QTH, QSO, QRK, chat e log do sistema.
🔐 Autenticação
- Login integrado com a conta WordPress (Macanudos.org).
- Proteção de páginas e widgets por sessão autenticada.
- Associação direta entre utilizador e atividade rádio.
🧭 Dashboard
- Página inicial em grelha modular com layout responsivo (desktop e mobile).
- Containers reorganizáveis por widgets.
🧱 Topbar
- Exibe utilizador autenticado, versão do sistema e data/hora em tempo real.
- Localização aproximada por IP, endereço IP e logout rápido.
📋 Menus
- Menu Rádio Operador: Perfil e Gestão de estações.
- Menu GEO: Início, Mapa (QTHMap), QRG, SDR, QRK, QSO e Chat.
🗺️ Mapa / Geolocalização
- Mapa interativo com OpenLayers e visualização de estações.
- Integração com QTH, QSO e QRK.
📒 Registos Rádio
- QSO: registo bidirecional de contactos com estações registadas e não registadas.
- QSO: localização confirmada via autocomplete (OpenStreetMap), banda, modo, canal, sinal, rádio e modo privado.
- QRK: registo de escuta com localização associada e integração com mapa.
💬 Chat
- Chat em tempo real por polling.
- Canais: Público, Privado, CB, PMR, MeshCore, DEV.
- Widget e página dedicada de chat.
- Envio via AJAX, cores por canal e destaque das próprias mensagens.
🎛️ Widgets
- 📻 Player: SDR, Emissões, Antena 2, TSF.
- 💬 Chat integrado na dashboard.
- 🗺️ Mapa em widget.
- 📡 Plano 3-3-3.
- 🌦️ Meteorologia.
- 📰 Notícias.
- ☀️ Solar Map e Solar Conditions.
- 📜 Log do sistema em tempo real.
🧩 Interface
- Tema escuro consistente em toda a plataforma.
- Botões selecionáveis para banda, modo, sinal e rádio nos formulários.
- Separação progressiva de CSS por módulos.