A maioria das listagens e formulários processados pelo frontend da plataforma são gerados automaticamente. A ideia principal é definir uma estrutura para criar listagens, relatórios, formulários e importações. Entidades são alimentadas pelo Wormhole e a estrutura (structure) faz quase todo o trabalho, depois disso você deve seguir algumas definições.
Você deve definir uma rota padrão para sua entidade, vamos definir como /foo. Então, aqui estão as definições:
- GET /foo: lista todos os registros
- POST /foo: armazena um novo registro
- GET /foo/{id}: mostra registro de determinado ID
- PUT /foo/{id}: registro de atualização de determinado ID
- DELETE /foo/{id}: exclui o registro de um determinado ID
- GET /foo/structure: estrutura de entidades
- GET /foo/{id}/action-menu: menu de ação para um determinado ID
- POST /foo/action-menu: menu de ação para vários IDs
Structures
A maioria das listagens e formulários processados pelo frontend da plataforma são gerados automaticamente. A ideia principal é definir uma estrutura que contenha todos os dados para renderizar a listagem, realizar buscas, exibir formulário e enviar dados.
{ "data" : { "columns" : [{ "field" : "id" , "sortable" : true , "filter" : true }, { "field" : "name" , "sortable" : true , "filter" : true } ], "rules" : { "name" : [ "required" ] }, "labels" : { "id" : "ID" , "name" : "Name" }, "boxes" : [{ "identification" : "default" , "label" : "Default" , "fields" : [ "name" ] }], "importable" : { "name" : { "type" : "both" , "comment" : null } } } } |
Existem cinco opções: columns, rules, labels, boxes e importable. Dependendo do objectivo do usuário, o renderizador pode informar quais informações são necessárias, adicionando uma string de consulta ao URL da solicitação. Por exemplo: caminho/para/estrutura?data=columns,boxes só precisa de informações das columnas e boxes.
Columns
Columns definem todas as colunas dessa entidade. Eles são representados por uma matriz de objetos de coluna, este objeto possui três atributos:
- field: chave de campo
- sortable: define se esta coluna é ordenável (true) ou não (false)
- filter: define se esta coluna pode ser filtrada (true) ou não (false)
Labels
Labels definem o rótulo de cada coluna. Eles são representados por um objeto em que a chave é a chave do campo e o valor é a string do rótulo.
Rules
As regras definem regras de validação ao criar um novo registro dessa entidade. Eles são representados por um objeto em que a chave é a chave do campo e o valor é uma matriz de todas as regras. Todas as regras do Laravel são permitidas, mas podem não estar disponíveis para validação client-side.
Boxes
As boxes definem a maneira como os campos são exibidos nas telas de criação, atualização e exibição; usá-los permite organizar campos juntos em caixas. Eles são representados por uma matriz de objetos de caixa, este objeto possui três atributos:
- identification: chave da caixa
- label: rótulo a ser exibido para o usuário
- fields: matriz de campos (chaves) desta caixa
Pelo menos uma box é necessária; se a matriz estiver vazia, nenhum campo será renderizado.
Importable
Importable define campos que podem ser importados em massa (como Excel ou CSV). É representado por um objeto em que a chave é a chave do campo e o valor é uma matriz com dois atributos:
- type: se este campo puder ser usado em criar, atualizar ou ambos os processos
- comment: string opcional a ser exibida no processo de importação
Comentários
0 comentário
Por favor, entre para comentar.