edweld / datatablesbundle
Symfony Datatable Bundle For Doctrine2 Entities
Installs: 21
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 235
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.3.3
- friendsofsymfony/jsrouting-bundle: ~1.6|~2.0
- symfony/framework-bundle: ~2.6|~3.0
- symfony/options-resolver: ~2.6|~3.0
- symfony/property-access: ~2.6|~3.0
Requires (Dev)
- doctrine/orm: ^2.2.3
- sensio/generator-bundle: ~2.5|~3.0
Suggests
- components/jquery: ~1.12
- datatables/datatables: ^1.10.10
- liip/imagine-bundle: ^1.3
- moment/moment: ~2.11
README
Recent Changes
In-place editing callback (#372)
$this->columnBuilder
->add('name', 'column', array(
'title' => 'Name',
'editable' => true,
'editable_if' => function($row) {
return (
$this->authorizationChecker->isGranted('ROLE_USER') &&
$row['public'] == true
);
}
))
Pipelining to reduce Ajax calls
$this->ajax->set(array(
'url' => $this->router->generate('chili_private_results'),
'pipeline' => 6
));
Search result highlighting.
- Include the jQuery Highlight Plugin
- Configure your Datatables-Class features
$this->features->set(array(
// ...
'highlight' => true,
'highlight_color' => 'red' // 'red' is the default value
));
Enlargement of thumbnails with Featherlight
see #401
The Bootstrap modal window does not work properly in responsive mode.
Load Featherlight with your base layout.
add_if
Closure for all Columns and TopActions
$this->columnBuilder
->add('title', 'column', array(
// ...
'add_if' => function() {
return ($this->authorizationChecker->isGranted('ROLE_ADMIN'));
},
))
;
$this->topActions->set(array(
// ...
'add_if' => function() {
return ($this->authorizationChecker->isGranted('ROLE_ADMIN'));
},
'actions' => array(
// ...
)
));
Render Actions
before
'actions' => array(
array(
'route' => 'post_edit',
'route_parameters' => array(
'id' => 'id'
),
'role' => 'ROLE_ADMIN',
'render_if' => function($row) {
return ($row['title'] === 'Title 1');
},
),
// ...
after
'actions' => array(
array(
'route' => 'post_edit',
'route_parameters' => array(
'id' => 'id'
),
'render_if' => function($row) {
return (
$this->authorizationChecker->isGranted('ROLE_USER') &&
$row['user']['username'] == $this->getUser()->getUsername()
);
},
),
// ...
Multiselect: render checkboxes only if conditions are True
$this->columnBuilder
->add('title', 'multiselect', array(
// ...
'render_checkbox_if' => function($row) {
return ($row['public'] == true);
},
))
;
Screenshots
Table with Bootstrap3 integration:
Documentation
Extensions like Buttons or Responsive
Example
Integrating 3rd party stuff
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.
- 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 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 /*)!