Histórico da Página
...
- Back-End (foram desenvolvidas APIs no endpoint /v1/services/license/pulse):
- Método: GET | Endpoint: /client-distinct | Descrição: Retorna lista de clientes únicos (tcode + displayName) para popular filtro T-Code;
- Método: POST | Endpoint: /app-distinct | Descrição: Retorna lista de aplicativos móveis únicos, opcionalmente filtrados por tcodes (body);
- Método: POST | Endpoint: /device-distinct | Descrição: Retorna lista de dispositivos únicos, opcionalmente filtrados por tcodes (body);
- Método: POST | Endpoint: /user-distinct | Descrição: Retorna lista de usuários únicos, opcionalmente filtrados por tcodes (body);
- Método: POST | Endpoint: /metrics-distinct | Descrição: Retorna métricas agregadas (dispositivos, apps, usuários únicos + total de registros) (filtro body);
- Método: POST | Endpoint: /filter | Descrição: Retorna dados paginados aplicando filtros (body) e paginação;
- Método: POST | Endpoint: /export | Descrição: Exporta todos dados filtrados para CSV (ignora paginação).
- Front-end: (foram desenvolvidos os seguintes recursos):
Inicialização automática:
- Carrega opções de filtros via 4 APIs distintas (clientes, apps, dispositivos, usuários);
- Define datas padrão: 1º dia do mês atual até hoje;
- PO-UI dispara busca automaticamente ao preencher initValue nas datas.
- Widgets de métricas:
- Dispositivos Únicos / Total Registros na Tabela;
- Aplicativos Únicos / Total Registros na Tabela;
- Usuários Únicos / Total Registros na Tabela.
- Colunas da Tabela (Ações | T-Code | ID Dispositivo | Aplicativo | Usuário ID | Tipo Pulso (badge colorido) | Data Criação | Data Atualização);
- Busca rápida: Campo texto livre que busca em 8 campos (limpa filtros avançados);
- Busca avançada: 9 filtros com validação de datas obrigatórias juntas e data final ≥ inicial;
- Modal de detalhes:
- Com Token E Dados: Exibe seção token completa + JSON;Sem Token, Com Dados: Oculta seção token, exibe apenas JSON;
- Com Token, Sem Dados: Exibe token completo, JSON vazio {};Sem Token E Sem Dados: Modal não abre, exibe notificação informativa.
- Exportação CSV:
- Botão desabilitado se tabela vazia;
- Confirmação via popover com loading (mínimo 500ms);
- Referência do Blob salvo em localStorage com persistência entre recargas;
- Nome arquivo: license-pulse-history-YYYY-MM-DD.csv;
- Limpeza automática no ngOnDestroy.
CSS da tabela do PO UI customizado:
- font-size 11px, padding 6px, line-height 0.9;
- Escopo local (:host ::ng-deep) para não afetar outras telas.
- Demonstração:
- Figura 1:
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas