Este abstração possui todos os métodos necessárias para uma página de CRUD, utilizando todo o potencial do Cat UI.
C (CREATE)
Para a parte de criação existe a opção padrão que é utilizando Dialog, ou, caso queira, poderá abrir uma Janela Lateral ou navegar para uma nova página.
Para abrir um dialog com seu formulário utilize o método openFormDialog.
O método openFormDialog utiliza por padrão o componente de formulários dinâmicos, permitindo a configuração de um Dialog com formulário sem a necessidade de criar arquivos para tal.
import{CatCRUDComponentBase}from"@catrx/ui/common";@Component({...})exportclassPageExempleComponentextendsCatCRUDComponentBase{...openDialog(data?:any){this.openFormDialog(this.formService.build<Cat>(data).text('Raça','race',(builder)=>builder.grid(6).setRequired().generate() ).select('Sexo','sex',(builder)=> builder.setOptions(CatSexSelectOptions).grid(6).setRequired().generate() ).url('URL da Foto','photo',(builder)=>builder.setRequired().generate() ).onSubmit((cat)=>this.service.save(cat,data?.id)).generate(),!!data,{ title:'Gato'} );}}
Ao realizar o submit no formulário gerado, já será realizado o disparo de spinner no botão de submit junto com seu bloqueio...após o retorno da API em caso de sucesso ou error um Snackbar será exibido de acordo e em caso de sucesso o Dialog será fechado e um comando de reloadList será disparado, em seguida o componente de Datatable será recarregado.
R (READ)
Para a parte de leitura, teremos aqui a utilização do componente de Datatable, onde teremos que configurar o mesmo, passando as colunas que serão exibidas, habilitando seletores, botões de ação e filtro.
A parte de leitura também existe a possibilidade de exportação em .csv ou .xlsx, e para isso, utilizaremos o método exportByService presente na abstração de Serviços HTTP.
U (UPDATE)
Terá a mesma implementação do Create, porém, precisará informar o objeto que deseja editar, para que após a abertura do formulário, o mesmo seja automaticamente preenchido e um comando de PUT seja enviado após o submit.
D (DELETE)
O componente de Datatable, possui em suas configurações, a opção de habilitar seletores ou incluir botões de ação. Aproveitando este recurso, iremos implementar a ação de DELETE por meio de seletores na lista.
Neste caso, todo a implementação para delete já está pronta para uso, bastando chamar pelo método deleteSelected por meio do click do botão.