datatables-bundle icon indicating copy to clipboard operation
datatables-bundle copied to clipboard

So, what with column filters ?

Open e1sep0 opened this issue 1 year ago • 1 comments

Hi, are you planning to fix column filters? They're not displayed ( Neither Choice filter, nor Text filter:

$statusFilter = new ChoiceFilter();
        $statusFilter->set([
            'choices' => ['foo' => 'bar', 'bar' => 'baz']
        ]);
        $textFilter = new TextFilter();

        $table = $dataTableFactory->create()
            ->add('id', TextColumn::class, ['label' => 'Id'])
            ->add('status', TextColumn::class, ['field' => 'e.status','searchable' => true, 'filter' => $statusFilter])
            ->add('name', TextColumn::class, [ 'field' => 'e.name', 'filter' => $textFilter])
            ->createAdapter(ORMAdapter::class, [
                'entity' => Entity::class,
                'hydrate' => AbstractQuery::HYDRATE_ARRAY,
                'query' => function (QueryBuilder $builder) use ($scheduleIds): void {
                    $builder
                        ->select('e')
                        ->from(Entity::class, 'e')
                    ;
                },
            ])
            ->handleRequest($request);

datatables.yaml:

# Latest documentation available at https://omines.github.io/datatables-bundle/#configuration
datatables:
    language_from_cdn: false
    # Set options, as documented at https://datatables.net/reference/option/
    options:
        lengthMenu : [10, 25, 50, 100, 250, 500, 1000, 2500]
        pageLength: 10
        dom: "<'row' <'col-sm-12' ftr>><'row' <'col-sm-6'l><'col-sm-6 text-right'pi>>"
        searching: true

    template_parameters:
        # Example classes to integrate nicely with Bootstrap 3.x
        className: 'table table-bordered table-hover data-table report-table'
        columnFilter: 'both'

    # You can for example override this to "tables" to keep the translation domains separated nicely
    translation_domain: 'messages'

table.html.twig:

$(function () {
            $('#table').initDataTables({{ datatable_settings(datatable) }},
                {
                    searching: true,
                    dom: 'Bfltip',
                });
        });

e1sep0 avatar Jun 09 '24 15:06 e1sep0