Skip to content

Estrutura de grid reaproveitável, para ser usada em vários lugares da aplicação.

Notifications You must be signed in to change notification settings

firmino2611/TableGrid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TableGrid

Estrutura de grid reaproveitável, para ser usada em vários lugares da aplicação.

Instalação

Instalando via composer. Configure o arquivo composer.json para que ele permita a instalação de pacote com estabilidade dev

composer require firmino/tablegrid

Registre o ServiceProvider em config/app.php

'providers' => [
      Firmino\TableGrid\Providers\TableGridServiceProvider::class,
]

Registre também o Facade no mesmo arquivo

'aliases' => [
      'TableGrid' => Firmino\TableGrid\Facades\TableGrid::class,
]

Publique o arquivo de configuração

php artisan vendor:publish --provider="Firmino\TableGrid\Providers\TableGridServiceProvider"

Como utilizar

Utilize o Facade TableGrid para configurar a tabela, este possui os seguintes metódos que podem ser utilizados para criar a estrutura da tablea:

Exemplo básico

<?php
// código omitido ....

use Firmino\TableGrid\Facades\TableGrid;

// codigo omitido ....

public function index(){
    $table = TableGrid::model(Model::class)
        ->columns([
            [
                'label' => 'Titulo',
                'name' => 'title'
            ]
        ])
        ->search();
    return view('view')->with('table', $table);
 }

Para renderizar a tabela basta chamar o metodo ´render()´ da seguinte forma no html:

{!! $table->render() !!}

Metódos

model(Model $model = null)

Recebe um array com os dados que deve ser visualizado na tabela. Caso contrário será retornado o model.


columns(Array $columns = null)

Recupera uma matriz com as informações das colunas caso não seja enviado nenhum valor. Caso contrário recebe uma matriz

[
  [
     'label' => 'Titulo',
      'name' => 'title'
  ]
]

Pode ser enviado ainda uma chave chamada field para caso o campo que se deseja mostrar seja um objeto referente a alguma relação do model, esta chave deve receber qual o campo desse objeto deve ser mostrado. Exemplo:

[
  [
     'label' => 'Autor',
      'name' => 'user',
      'fiedl' => 'name'
  ]
]

rows()

Recupera as linhas da tabela


activeDataTable(Boolean $active)

Configura se o plugin DataTable deverá ser usado.


dataTable()

Recupera o atributo dataTable, que identifica se o plugin DataTable está ativo ou não.


actions()

Recupera as ações que foram adicionadas na tabela


addAction(string $label, string $route, string $template, string $class = 'btn btn-default btn-sm')

Adiciona uma ação para ser exibida na tabela.

  • $label => Texto que aparece no link.
  • $route => Nome da rota que será redirecionado ao clicar no link.
  • $template => Template do link que será mostrado no front-end.
  • $class => Classe do Bootstrap para personalizar os links.

addEditAction(string $label, string $route, string $template, string $class = 'btn btn-primary btn-sm')

Adiciona uma ação de edição para ser exibida na tabela.

  • $label => Texto que aparece no link.
  • $route => Nome da rota que será redirecionado ao clicar no link.
  • $template => Template do link que será mostrado no front-end.
  • $class => Classe do Bootstrap para personalizar os links.

addDeleteAction(string $label, string $route, string $template, string $class = 'danger')

Adiciona uma ação de exclusão para ser exibida na tabela.

  • $label => Texto que aparece no link.
  • $route => Nome da rota que será redirecionado ao clicar no link.
  • $template => Template do link que será mostrado no front-end.
  • $class => Classe do Bootstrap para personalizar os links.

search()

Faz a consulta no banco de dados na tabela referente ao modelconfigurado.


render()

Renderiza a tabela.


Templates

O pacote possui 3 tamplates básicos para renderizar os links de ações, que podem ser chamados da seguinte forma:

  • Table::templates.edit-action
  • Table::templates.delete-action
  • Table::templates.action (Para ações adicionais)

Configurações

O arquivo de configurações permite fazer alguns ajustes no plugin DataTable.

  • translation_table (Permite que as informações da tabela sejam traduziadas para o portugues-br)
  • zero_records (Texto que é mostrado quando não são encontrados registro na tabela)
  • search (Texto que aparece ao lado da barra de pesquisa da tabela)

Exemplos

Usando ações editar e excluir

<?php
// código omitido ....

use Firmino\TableGrid\Facades\TableGrid;

// codigo omitido ....

public function index(){
    $table = TableGrid::model(Model::class)
            ->columns([
                [
                    'label' => 'Titulo',
                    'name' => 'title'
                ],
                [
                    'label' => 'Autor',
                    'name' => 'user',
                    'field' => 'name'
                ]
            ])
            ->activeDataTable(true)
            ->addEditAction('Editar', 'edit', 'Table::templates.edit-action')
            ->addDeleteAction('Excluir', 'destroy', 'Table::templates.delete-action', 'danger')
            ->search();

      return view('home')->with('table', $table);
}

Usando ações adicionais

<?php
// código omitido ....

use Firmino\TableGrid\Facades\TableGrid;

// codigo omitido ....

public function index(){
    $table = TableGrid::model(Model::class)
              ->columns([
                  [
                      'label' => 'Descricao',
                      'name' => 'description'
                  ]
              ])
              ->addAction('acao', 'login', 'table.action', 'warning')
              ->search();

    return view('home')->with('table', $table);
 }

About

Estrutura de grid reaproveitável, para ser usada em vários lugares da aplicação.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published