Paineis
Paineis são responsáveis por salvar novas instãncias das estruturas criadas na plataforma bem como exibir essas instancias. É a partir de um painel que o usuário terá acesso a lista de instãncias das estruturas e podera navrgar para as páginas de detalhe.
Acessando a configuração
Para configurar um painel devemos acessar o "Modo de Edição Visual" e depois clicar no botão de configuração que fica a direita dentro do grupo "Setup" em azul dento do Painel.

Com o popup de configurações do Painel você pode realizar as configurações necessárias.
Configurações Gerais
Responsável pelas configuraçñoes básicas do Painel.

O campo Modo de acesso por link define como o link para a página de detalhes das instãncias exibidas pelo painel deve se comportar. As opções são:
| Opção | Descrição |
|---|---|
| Padrão | A própria plataforma cuida de gerar o link correto |
| Customizado | Executa uma ação expecífica definida na aba Link Customizado |
| Desabilitado | Não gera nenhum link para acesso da página de detalhes |
O campo Modo de exclusão define como serão executada a ação de exclusão das instãncias exibidas. As opções são:
| Opção | Descrição |
|---|---|
| Padrão | Ao excluir a instãncia vai para a lixeira |
| Com confirmação | Solicita uma confirmação antes de excluir e envia para a Lixeira |
| Customizado | Executa uma ação expecífica definida na aba Menu de Açoes |
| Sem passar pela lixeira | Excluí a instância diretamente sem passar pela lixeira |
| Desabilitado | Não exibe a ação de enviar para a lixeira |
O campo Modo de criação define como será exibido o botão para criar novas instãncias. As opções são:
| Opção | Descrição |
|---|---|
| Padrão | Exibe o botão de acordo com a permissão do usuário |
| Desabilitado | Não exibe a o botão para nenhum usuário |
O campo Resultado por página define quantos itens vão aparecer por página. Caso nenhum valor seja definido o padrão são 50 items.
O campo Modos de Exibição define os tipos de exibição que as instãncias do painel serão exibidas.
O campo Rótulo para o botão de criar define um label para aparecer junto com o icone de "+" no botão de criação de novas instâncias.
O campo Filtros Rápidos define quais campos que já vão aparecer na parte de filtros rápidos do Painel.
O campo Campos para pesquisa por texto define quais campos que estarão sendo utilizdos quando o usuário escrever um texto na caixa de pesquisa do Painel. Caso nenhum campo seja definido a plataforma ira filtrar nos campos de "Rótulo" e "Código" da instãncia. Caso outros campos dejam definidos os campos de "Rótulo" e "Código" param de ser levados em concideração e deve ser incluídos manualmente caso seja necessário.
O campo Estilo aplica um código CSS na tag que envolve o Painel.
Fonte de Dados
Responsável pelas configurações da fonte de dados que carrega as instãncias para serem exibidas pelo Painel.

O campo Fonte de Dados é quem define quais resultados serão exibidos pelo painel. Para mais informações sobre a criação de uma nova fonte de dados clique aqui.
Filtros para a Fonte de Dados é utilizado para filtrar os resultados antes deles serem exibidos para os usuários. Há duas formas de preencher o valor desse campo:
- Utilizando diretamente a notação de criação de filtros para o banco de dados MongoDB, clique aqui para saber mais.
{
"$or": [
{ "custom.status": "approved" },
{ "custom.cost.value": { "$gt": 100000 } }
]
}- Utilizando um array de objetos para pode definir filtros mais complexos. O filtro será construído utilizando cada parte cuja condição seja atendida. Se uma parte do filtro sempre deve ser incluída, basta criar um objeto sem o atributo "condition". O falor do atributo filter deve ser uma string o que quer dizer que é necessário transformar o objeto json em uma string e tratar as aspas duplas.
[
{
"filter": "{\"active\":true}",
},
{
"condition": "${user.activeProfile === 'client'}",
"filter": "{\"custom.restricao\":{\"$ne\":\"${instance.custom.cliente}\"}}",
},
{
"condition": "${instance.custom.status === 'published'}",
"filter": "{\"custom.mapas\":\"${url.id}\"}",
}
];INFO
Importante lembra que é possível utilizar valores que estão disponíveis na plataforma para montar os filtros e definir as condições. Estão disponíveis dados do usuário, da instancia, dó módulo e da estrutura pai.
O campo Estrutura define qual estrutua será utilizada para pegar os campos que estão rão disponíveis para um painel do tipo Tabela.
O campo Segurança é utilizado para selecionar qual funcionalidade será utilizada para definir se os usuário tem acesso aos dados. No caso de Fontes de Dados que não são "seguras" ou que já possuam a segurança pré definida na própria configuração da Fonte de Dados, esse campo é opicional.
Já o atributo Campos para incluir no resultado é utilizado quando queremos que o resultado que virá a partir da Fonte de Dados inclua outros campos além dos que foram selecionados como colunas. Isso é muito comum quando precisamos de um determinado dado para executar alguma regra de validação mas o valor não está sendo exibido na Tabela. O valor desse campo deve conter os códigos dos campos da estrutura separados por virgula.
Menu de Ações
Responsável pelas configurações das ações que estarão disponíveis para cada uma das linhas do painél, além de ações que possam ser executadas pela sessão de ações na barra de comandos do painel.

INFO
Lembre-se que no campo Menu estarão as ações que vão aparecer no menu de cada uma das linhas do painel e o campo Ações definimos ações auxiliares que serão executadas em sequência a um ação definida no campo Menu.
Além disso o campo Menu recebe um array com todas as ações que estarão disponíveis.
[
{...},
{...}
]Para mais detalhes sobre a configuração do menu de ações e de ações individuais clique aqui.
Campos Customizados Extras
Responsável pelas configurações de campos que não estão configurados na estrutura, além disso é possível mudar configurações dos campos padrão.

Para criar um campo extra que vai estar disponível nas colunas do painel é importante definir as configurações para o campo e se sertificar de que o valor para ele esteja disponível na fonte de dados. Lembre-se que esse campo não será editavel.
[
{
"code": "code",
"field": "custom.mapas",
"parentStructure": "project"
},
{
"code": "activities",
"field": "atividades",
"label__translation": {
"pt": "Atividades"
},
"parentStructure": "custom",
"type": "text",
"value": "${data.atividades && data.atividades?.length > 0 ? data.atividades.map(act => {return pattern.date(act.custom?.executionDate).apply()+' - '+datasetResult('usersOptions',act.createdBy)?.label+':<br>'+(act.custom.done?'✔ ':'')+act.label+'<br>'}).join('<br>'):''}",
"view": "textEditor"
}
]Link Customizado
Responsável pelas configurações customizadas de como o link do painel vai funcionar, caso seja necessário criar um link diferente do padrão.

Para configurar links diferentes podemos utilizar uma condição para saber qual tipo de link deve ser utilizado.
[
{
"condition": "${data.custom.type === 'program'}",
"link": "/program/${data.code}"
},
{
"condition": "${data.custom.type === 'issue'}",
"link": "/issue/${data.code}"
}
]INFO
No caso de ser necessário guardar a página do painel, pode ser utilizado o wildcard "panel.page" para que seja incluído na URL essas informações.
[
{
"link": "/project/${data.code}?map=${url.id}&page=__panel.page__"
}
]Criando novas Instâncias
O Painel também é responsável pela criação de novas instãncias de uma determinada estrutura.
Para configurar a seção de criação no painel basta clicar no botão com o icone de "+" e arrastar os campos para definir o layout.

ATENÇÃO
Lembre-se que campos definidos como Obrigatório necessariamente terão que ser incluidos para que não seja gerado um erro no momento da crição.