sg/datatablesbundle

Symfony Datatable Bundle For Doctrine2 Entities

Installs: 27 953

Dependents: 2

Stars: 117

Watchers: 37

Forks: 93

Open Issues: 18

Type: symfony-bundle

v0.10 2016-02-25 20:30 UTC

README

SensioLabsInsight

knpbundles.com

Latest Stable Version Total Downloads Latest Unstable Version License

Help wanted

To all russian and polish speaking contributors. Please help me to update the translation files. Thanks a lot!

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
  • 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

Table with default stylesheet (display):

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.

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 /*)!