2017 © Pedro Peláez
 

package tablegrid

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

image

firmino/tablegrid

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

  • Wednesday, November 8, 2017
  • by firmino2611
  • Repository
  • 1 Watchers
  • 1 Stars
  • 25 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 1 Versions
  • 4 % Grown

The README.md

TableGrid

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

Instalação

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

composer require firmino/tablegrid

Registre o ServiceProvider em config/app.php, (*3)

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

Registre também o Facade no mesmo arquivo, (*4)

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

Publique o arquivo de configuração, (*5)

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:, (*6)

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:, (*7)

{!! $table->render() !!}, (*8)

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., (*9)


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, (*10)

[
  [
     '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:, (*11)

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

rows()

Recupera as linhas da tabela, (*12)


activeDataTable(Boolean $active)

Configura se o plugin DataTable deverá ser usado., (*13)


dataTable()

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


actions()

Recupera as ações que foram adicionadas na tabela, (*15)


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., (*16)


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., (*17)


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., (*18)


Faz a consulta no banco de dados na tabela referente ao modelconfigurado., (*19)


render()

Renderiza a tabela., (*20)


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), (*21)

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), (*22)

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);
 }

The Versions

08/11 2017

dev-master

9999999-dev

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

  Sources   Download

MIT

by Lucas Firmino