On Thu, Apr 8, 2021 at 1:12 PM Georg Ragaller <tapes...@dev.ragaller.org>
wrote:

> Hello all,
>

Hello, Georg!


> I am just starting with Tapestry (5.7.1) and use the grid component.
>

Welcome to the Tapestry community!


> Also, the application module is annotated with
> @ImportModule(Bootstrap4Module.class), as I want to use Bootstrap 4.x.
> However, with this combination the links of the embedded pager component
> are not drawn in the expected Bootstrap 4 style.
> In my opinion, this is because in
> org.apache.tapestry5.corelib.components.GridPager the render
> functionality does not distinguish between Bootstrap 3 and 4.
> As far as I can see, the pagination component in Bootstrap 4 needs
> additional CSS classes compared to version 3, namely 'page-item' and
> 'page-link'.
>
> See:
>
> https://getbootstrap.com/docs/3.4/components/#pagination
> https://getbootstrap.com/docs/4.3/components/pagination/
>
> So is the current behaviour a bug, or am I still doing something wrong?
>

It's a bug and thanks for reporting it. Unluckily, we cut 5.7.2 and 5.6.4
last Thursday, otherwise your very well written patch would have been
applied already. Thanks for the patch!

Meanwhile, you can fix this without touching Tapestry's sources in at least
4 different ways, and I'll really explain just one for now for time reasons:
1) Easier one: copy the Grid Java source file, rename it to something like
FixedGrid, then tell Tapestry to use FixedGrid anytime you use Grid by
adding this method to AppModule (not tested):
public static void contributeServiceOverride(MappedConfiguration<Class,
Class> configuration) {
    configuration.add(Grid.class, FixedGrid.class);
}
2) Create a mixin to add the missing CSS classes through DOM rewriting and
apply it manually to your Grid instances through t:mixins
3) Create a mixin to add the missing CSS classes through DOM rewriting and
apply it automatically by adding a new component class transformer.
4) Create a GridWrapper class that passes all the parameters it gets to
Grid, then uses DOM rewriting to add the missing CSS classes.

Tapestry is very, very flexible and composable, which explains the variety
of ways you can use to solve your problem. :)


>
> Cheers,
> Georg
>
>
> P.S.: For me, I have solved the problem for the time being with the
> enclosed patch.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org



-- 
Thiago

Reply via email to