sg/datatablesbundle

Symfony Datatable Bundle For Doctrine2 Entities

Installs: 31 350

Dependents: 3

Suggesters: 0

Stars: 120

Watchers: 38

Forks: 103

Open Issues: 17

Type: symfony-bundle

v0.11 2016-05-28 12:59 UTC

README

SensioLabsInsight

knpbundles.com

Build Status

Latest Stable Version Total Downloads Latest Unstable Version License

Recent Important Changes

The ClientSide mode is no longer supported by me!

  • use parent service instead of tagging datatables view class
services:
    app.datatable.post:
        class: AppBundle\Datatables\PostDatatable
        parent: sg_datatables.datatable.abstract
  • unlimited nested association support and fix filtered counter when using a custom query
  • start for PostgreSql support
  • Datatable Events supported
  • some new translations
  • render_if Closure parameter in action column
  • cancel button for some filters added
  • outsourcing individual filter in new classes, see below example
    public function buildDatatable(array $options = array())
    {
        // ...

        $users = $this->em->getRepository('AppBundle:User')->findAll();

        $this->columnBuilder
            ->add('title', 'column', array(
                'title' => 'Title',
                'filter' => array('text', array(
                    'search_type' => 'eq'
                ))
            ))
            ->add('visible', 'boolean', array(
                'title' => 'Visible',
                'filter' => array('select', array(
                    'search_type' => 'eq',
                    'select_options' => array('' => 'All', '1' => 'Yes', '0' => 'No')
                )),
            ))
            ->add('createdby.username', 'column', array(
                'title' => 'Createdby User',
                'filter' => array('select', array(
                    'search_type' => 'eq',
                    'select_options' => array('' => 'All') + $this->getCollectionAsOptionsArray($users, 'username', 'username'),
                ))
            ))
            ->add('createdAt', 'datetime', array(
                'title' => 'Created',
                'filter' => array('daterange', array()),
            ))
        ;
    }

Screenshots

Table with Bootstrap3 integration:

Screenshot

Documentation

Installation

Column types

In-place editing

How to use the ColumnBuilder

Setup Datatable Class

Filtering

To use a line formatter

Query callbacks

Extensions like Buttons or Responsive

Options of the generator

Reference configuration

Example

Demo Application

Integrating 3rd party stuff

Integrate Bootstrap3

Integrate the Translatable behavior extension for Doctrine 2

Integrate the LiipImagineBundle / ImageColumn, GalleryColumn and thumbnails

Limitations and Known Issues

Much like every other piece of software SgDatatablesBundle is not perfect and far from feature complete.

Use this Bundle in ServerSide mode

The ClientSide mode is no longer supported by me.

Other limitations

  • This bundle does not support multiple Ids
  • Searching and filtering on a virtual column not yet implemented and disabled by default
  • PostgreSql is currently not fully supported

Reporting an issue or a feature request

Issues and feature requests are tracked in the Github issue tracker.

You must know that all the pull requests you are going to submit must be released under the MIT license.

Friendly License

This bundle is available under the MIT license. See the complete license in the bundle:

Resources/meta/LICENSE

You are free to use, modify and distribute this software, as long as the copyright header is left intact (specifically the comment block which starts with /*)!