CRUDComponentBase

Abstração para páginas de CRUD

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.

circle-info

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({...})
export class PageExempleComponent extends CatCRUDComponentBase {
  ...
  
  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' }
      );
  }
}
circle-info

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.

Overview

Implementação Completa

1. Implementando serviço HTTP

2. Implementando componente de foto

3. Implementando componente de página

4. Implementando módulo

5. Configurando xlsx

Last updated