Tags and images aren't coupled, so they shouldn't be coupled in
the UI, either. This also makes the titles and source domains show
up consistently for image and non-image entry cards.
Thanks to the BC compatibility, almost nothing have to be changed.
All changes are related to new bundle version of:
- SensioFrameworkExtraBundle
- DoctrineFixturesBundle
* Add a form on each tag to handle rename action.
* Add JavaScript to handle action on the corresponding page inside the global index.js file.
* Add support for the 2 active themes : material / baggy
The form solution is cleaner than an Ajax one because it let the browser validate input data and make the POST easier without the need to handle JSON response.
This will help handling the CSRF protection token and use symfony HTML generation layer.
Also a FormView instance is generated for each tag because we need to render a form for each tag and FormView are not reusable.
Improve SQL performance by replacing size(e.tags) with a left join and a
null condition
Move the QueryBuilder logic into getRawBuilderForUntaggedByUser
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
We refactor getBuilderByUser to separate QueryBuilder getter and the
orderBy(). The previous code of getBuilderByUser() has been moved to
getSortedQueryBuilderByUser(). getBuildByUser() now returns a
QueryBuilder without the call to orderBy().
A new method named sortQueryBuilder() returns a given QueryBuilder with
an orderBy() call using given sort parameters.
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
We rename getBuilderByUser to getSortedQueryBuilderByUser as long as the
method currently returns a QueryBuilder with an orderBy()
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
Since the withRemove variable is a template flag, it can be undefined.
In the Entry\Card\_content.html.twig template for example, the withRemove variable is not defined.