Widget
Widget é um elemento gráfico de interação, e fornecem funcionalidades e/ou informações ao usuário.
No agilityflow, são os elementos que compõem um dashboard.
Ao se criar um widget, é necessário definir algumas informações básicas.
- Tipo: existem dois tipos de widgets:
- Nativo: o tipo Nativo é reservado para futuras implementações de widgets nativos do sistema, como o de rascunhos e o de pendências. Essa opção não deve ser utilizada.
- Customizado: é a opção que permite criar um widget sob-medida. Essa é a opção que deve ser utilizada.
- Nome: um nome para identificar o widget na montagem do dashboard.
- Descrição: um nome para ajudar na identificação do widget na montagem do dashboard.
- Categoria: escolha ou crie uma categoria, para organizar os widgets.
- Subcategoria: escolhe ou crie uma subcategoria, para organizar os widgets.
Ao adicionar o widget no dashboard, como no exemplo acima, é possível identificar o widget pelo nome (Pendências para aprovação), pela categoria (Fluxo de Aprovação), pela subcategoria (Aprovação) e pela descrição no quadro maior (em cinza).
- Ativo: é possível deixar um widget ativo ou inativo. Isso permite ao usuário não mais permitir o uso de um widget, sem a necessidade de removê-lo e posteriormente, caso necessário, ter que criá-lo novamente.
- Url (Mvc Action), altura e largura do Widget: essas opção estão disponíveis para widgets do tipo nativo. Não devem ser utilizadas.
Montar o Widget
Quando se seleciona o tipo customizado, o botão 'Montar o Widget' fica disponível. Ao clicar, é possível configurar as características do widget.
Todo widget tem um título. Esse título pode ou não ser exibido, usando a opção 'Mostrar Título do Box'.
Outra opção, é a cor do tema. Ela pode ser escolhida na opção tema. As opções de cores são:
- Branco (padrão)
- Cinza
- Azul
- Verde
- Roxo
- Vermelho
- Amarelo
Para alterar o tamanho de um widget
Adicionar elemento
Em um widget, é possível adicionar vários elementos, e de vários tipos.
Label
É um texto, que pode ser fixo ou dinâmico. Caso seja dinâmico, o texto deve ser o resultado de uma query SQL. Essa query vai ter seu resultado atribuído à variáveis. Para utilizá-las, basta escrever @ e selecionar a variável. É possível combinar textos com variáveis.
Caso seja fixo, basta digitar o texto normalmente.
Além disso, é possível formatar o texto de várias maneiras, como definir o alinhamento vertical e horizontal do texto, tamanho e fonte.
E por fim, é possível que ao clicar no texto, o usuário seja levado a um link. Basta preencher a URL.
Ao posicionar qualquer elemento no widget, é possível redimensioná-lo usando o ícone .
Ícone
É possível adicionar um ícone como elemento de um widget. Basta selecionar um ícone em uma das bibliotecas disponíveis. Ainda é possível editar alinhamento (vertical e horizontal), tamanho, cor e criar um link.
Imagem
Para fazer o upload de uma imagem, basta clicar no retângulo ou arrastar um arquivo até ele.
É possível formatar largura, altura e alinhamento (vertical e horizontal) e criar um link.
Gráfico
Ao se adicionar um gráfico, é possível escolher entre duas origem dos dados:
Criar uma tabela com dados Estáticos
Nessa opção, o usuário define os dados de maneira manual em uma tabela, como uma planilha. É possível adicionar dados em linhas e colunas, usando os botões .
Ao clicar na opção 'Editar tipo e propriedades do gráfico' ou no ícone , é possível definir o tipo do gráfico.
O sistema já sugere o gráfico mais recomendado na guia início. Clicando na aba Gráficos (ou em 'Mais »'), o sistema exibe todos os demais gráficos disponíveis.
Na aba Personalizar é possível editar as características do gráfico selecionado, como título, legenda, fonte, cores, entre outros.
Fonte de dados Dinâmica
Nesse caso, é necessário criar uma query para se obter os dados. As demais configurações, seguem o padrão do exemplo acima.
Tabela de Dados
Quando o elemento é a tabela de dados, a fonte para essa tabela, só pode ser dinâmica, ou seja, através de uma query.
Query
No exemplo abaixo, queremos uma tabela com a lista de autores cadastrados no sistema. A query está obtendo os campos 'id', 'nome', 'sexo' e 'nacionalidade' da tabela 'x_tbl_autor'.
select nome, sexo, nacionalidade from x_tbl_autor
Esse é um exemplo de um resultado dessa query:
Uma vez a query montada, é possível formatar a tabela.
Configuração das colunas da tabela
- Ordem das colunas: clique no ícone e arraste a coluna para a posição desejada;
- Nome de apresentação: edite o nome da coluna;
- Largura em %: deixe 'padrão' para uma divisão igual da largura entre as colunas. Caso contrário, informe em porcentagem a largura de cada coluna;
- Visível: ligador por padrão, é possível ocultar uma coluna sem precisar alterar a query;
- Prefixo: é possível incluir um texto antes dos valores dessa coluna;
- Sufixo: é possível incluir um texto depois dos valores dessa coluna;
- Informação no rodapé:
- Cálculo: é possível fazer um cálculo (numérico ou hora) e informar no rodapé da coluna. Os valores nessa coluna precisam ser do tipo inteiro ou decimal (para cálculo numérico) ou estar no formato de hora HH:mm (para cálculo em hora)
- Máscara: caso o cálculo seja numérico, escolha a máscara apropriada para o resultado. Para cálculo em hora, a máscara HH:mm é preenchida automaticamente.
Ordenação
Selecione o campo que será ordenada as informações, e escolha se a ordenação é crescente ou decrescente.
Paginação
Escolha a quantidade de registros por página.
Header
Permite mostrar ou não o cabeçalho da tabela;
Link da Linha
É possível redirecionar o usuário caso haja um click na linha. Esse link pode ser interno no agilityflow ou externo. Caso seja interno, é possível escolher se o link será aberto como:
- Um lightbox;
- Na mesma janela;
- Uma nova janela;
Tabelas de dados filha (Master e Detail)
Além de uma tabela, é possível agrupar uma tabela em cada linha dessa primeira tabela, configurada no exemplo acima.
Para isso, basta adicionar uma tabela de dados filha. Ao fazer isso, o mesmo processo de configuração de uma tabela de dados comum é iniciado, mas com uma diferença.
Caso essa tabela filha tenha relação com a tabela principal, basta obter a coluna id na query da tabela principal. Esse valor, é passado para a tabela filha, em uma variável chamada @master_id.
No exemplo acima, ao clicar no nome do autor, é apresentado a lista de livros cadastradas no sistema relacionados com esse autor. A query ficaria assim:
select x_tbl_livro.nome as NomeLivro, x_tbl_livro.ano as Ano from x_autor_livro
inner join x_tbl_livro on id_x_tbl_livro = x_tbl_livro.id
where id_x_tbl_autor = @master_id
A tabela filha, apesar de recomendado, não precisa ter relação com a tabela principal.