jmuehlig / tablebundle Goto Github PK
View Code? Open in Web Editor NEWBundle for Symfony to create data tables without javascript.
Home Page: http://tablebundle.org
License: MIT License
Bundle for Symfony to create data tables without javascript.
Home Page: http://tablebundle.org
License: MIT License
When I go to a page and then change the rows per page selection so that the current page is not needed anymore, the following exception is thrown:
404 Not Found - NotFoundHttpException
jgm/tablebundle/JGM/TableBundle/Table/Table.php at line 687
I think in this case the first page should be displayed instead.
There is a bug, which breaks the support for Symfony3: The service jgm.table_factory
depends on the @request
, which is not available in Symfony3. Use @request_stack
to fix it.
Table without pagination causes an exception.
The usage of date filters causes the exception:
Warning: strlen() expects parameter 1 to be string, object given
In:
jgm/tablebundle/JGM/TableBundle/Table/Filter/AbstractFilter.php at line 375
Code:
return isset($this->value) && strlen($this->value) > 0;
If $this->value is an instance of DateTime, the strlen Method throws the exception.
An alternative IF could be a solution.
Hey, I noticed that the website with the documentation is offline. Any ideas on when we'll be able to access it?
Thank you!
Remove the deprecated constructor of the EntityDataSource
, which is using an entity and a callback, without alias. This constructor is deprecated since version 1.2 and has to be removed at 1.4.
Remove the column and filter aliases from configuration class.
It should be possible to add columns to any column type, implementing the following aggregate methods:
I've used a boolean filter on the attribute "foo":
->add('boolean', 'foo', array(
'label' => 'Foo',
'true' => 'Present',
'false' => 'Not Present',
'reset_label' => 'All',
'widget' => 'select',
'attr' => array('class' => 'form-control'),
'operator' => FilterOperator::EQ
))
But when the option "Not Present" is selected, the results contain all entries including true and false foo attributes.
The twig method for rendering filters should accept an array of options as second parameter. These are the same options, which can be set at the filter builder.
At the moment, there is no interface for the table type, just an abstract implementation. This is bad design, so we have to create an interface for the table type, which is named "TableTypeInterface".
Same as #15 but this time for filters.
The user input of lines per page (established at version 1.3) is will be saved at cookies. Adapt this for the users choosen order (column and direction), but make this configurable through the configureOrder
method.
The parameter of Table::createView
, called $loadData is deprecated since version 1.2 and has to be removed at version 1.4. The instant data loading can be interrupted by setting the parameter load_data
of the table type to false
.
All columns have an alias, defined hat the configuration class. This alias should be removed and replaced by the full class name, which can be produced by the php class constant. As first step, allow the alias beside the class name and remove the alias at the next release.
Add a new component, called Selection, which allows the developer to add a checkbox or radio button to each row. Further it should be possible to add submit or normal buttons. If any submit button is clicked, it should be possible to ask the table for selected rows and the clicked button (like the form component of symfony does).
It is important to create any possibility to restrict the visibility of each button by roles. If no button is visible for the user, the selection should be hidden.
For sortable tables, there must be an interface like "SortableInterface", which provide the method "setSortableDefaultOptions".
To adjust the table bundle to the form component of Symfony, we have to rename the "setDefaultOptions" method of the "AbstractTableType" to "configureOptions". Furthermore, the resolver has to be an instance of the "OptionsResolver", not the "OptionsResolverInterface" (which is depricated).
The order component has options 'class_asc'
and 'class_desc'
which will set to a <span>
object at the column header, if the column is sorted ('class_asc'
if the column is ordered on direction asc, 'class_desc'
otherwise).
This 'class_*'
options should be replaced by 'html_asc'
and 'html_desc'
, which allows more control to the developer. It is more comfortable to set an image directly.
The class options are deprecated since version 1.3 (to be removed in 1.4) and should be empty by default. If they are set, they should be used instead of the 'html_*'
options.
The user input of lines per page (established at version 1.3) is will be saved at cookies. Adapt this for the user input of filters, but make this configurable through the configureFilter
method.
For paginatable tables, there must be an interface like "PaginatableInterface", which provide the method "setPaginatableDefaultOptions".
The order options 'class_desc'
and 'class_asc'
are deprecated since version 1.3 and will be removed in 1.4.
The initial load of a Table causes a Timeout in the Browser.
In class:
jgm/tablebundle/JGM/TableBundle/Table/Pagination/Strategy/SimpleLimitStrategy.php at line 45
It seems that the iterative use of the in_array method causes this time consumtion.
When you use a Postgres database, filtering generates invalid queries when trying to filter against fields that don't support the LOWER function, like boolean, etc.
Is there any hope for a fast fix?
An exception occurred while executing 'SELECT count(t0_.id) AS sclr_0 FROM tl_user t0_ WHERE (LOWER(t0_.enabled) LIKE ?)' with params ["%1%"]:
SQLSTATE[42883]: Undefined function: 7 ERROR: function lower(boolean) does not exist
LINE 1: ...T count(t0_.id) AS sclr_0 FROM tl_user t0_ WHERE (LOWER(t0_....
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.