Skip to content

po-table: permitir conteúdo personalizado no cabeçalho das colunas #2978

Open

Description

@efdeiasoliveira

Hoje o po-table tem três formas de personalizar o conteúdo: p-table-column-template, p-table-cell-template e p-table-row-template. As três atuam nas linhas da tabela, mas nenhuma chega ao cabeçalho. O título da coluna só aceita o texto do label.

Gostaria de propor uma diretiva no mesmo estilo das que já existem, a p-table-header-template. Ela permitiria colocar um conteúdo logo abaixo do título da coluna, seja um template genérico para todas as colunas, seja um específico para uma coluna via p-property.

Caso de uso

O caso que me levou a isso foi a pesquisa por coluna, algo bem comum em ferramentas como DBeaver e em vários ERPs: uma caixinha embaixo de cada título para o usuário filtrar aquela coluna sem precisar abrir um formulário de filtros.

Temos uma aplicação de consultas SQL sobre o Protheus que exibe o resultado num po-table. Os usuários pediram exatamente isso, e hoje a única saída seria abandonar o po-table e montar uma tabela própria, ou manipular o DOM do componente, o que não é nada sustentável.

Com a diretiva também daria para colocar ícones, botões de ação ou um aviso em colunas específicas (por exemplo, "use o filtro avançado" numa coluna de status).

Informações adicionais

Já implementei uma versão funcionando num fork (efdeiasoliveira/po-ui, branch f10/table-header-template), com testes e um sample. Se fizer sentido para o time, já abri o PR #2979. Fico à disposição para ajustar a API, o nome da diretiva ou o que mais acharem melhor.

Exemplo de utilização

Esse é exemplo de uso real, numa tela de consultas SQL: a lupa no cabeçalho da coluna # mostra ou esconde uma caixinha de pesquisa embaixo de cada título (template genérico + template específico via p-property), junto com p-sort e p-draggable.

Image

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions