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

Multi table pagination

Open elegasoft opened this issue 2 years ago • 2 comments

Resolves #496: Allow for independent query string pagination with multiple datatables on the same page

Function:

By using the WithMultiTablePaginator one can rely on the query string parameters to separately paginate multiple LivewireDatatable's which are rendered on the same page.

Requirements:

Requires that the DataTableComponent use WithMultiTablePaginator; and declare either a $pageName or $name property on the DataTableComponent.


class WorkInProgressDataTable extends LivewireDatatable
{

    use WithMultiTablePaginator;

    /// Requires declaration of $name
    public $name = 'wip';

    /// or declaration of 
    public $pageName = 'wipPage';
   ...
}

How it works:

  1. The WithMultiTablePaginator overrides all pagination related calls to ensure that it applies the $pageName or LivewireDatatable $name properties.
  2. It also ensures that calls to the getResultsProperty() also paginates based on the page related to $pageName or LivewireDatatable $name property.

Tests:

-- Work In Progress --

Discussion Points:

  1. Naming seems to be a bit off, maybe rename the trait to WithCustomPaginator?
  2. There are no other Exceptions thrown by this plugin, instead of throwing an exception we can provide a default $pageName using static::class?

elegasoft avatar Aug 09 '22 23:08 elegasoft

I like the idea with using Traits a lot, but shouldnt it be possible to use multiple tables on the same page by default without using a Trait ?

thyseus avatar Aug 10 '22 07:08 thyseus

Hi all. Any update in this feature. It would really be awesome to have this implemented.

mrtorks avatar Feb 21 '23 09:02 mrtorks