Livewire Tables v1.0 was released April 16th, 2020. I have been really busy the last few months trying to keep up with the communities issues and requests for features. As of today we are on v1.10, lets take a look at some major features and changes in the last few months.
First a few stats. As of June 20th, 2021 we have:
Stars: 502
Installs: 56,010
Forks: 82
Used By: 328
Contributors: 20
Tags: 36
Closed Issues: 115
Pull Requests: 162
Commits: 627
Clones Avg. Per Week: 461
Visitors Avg. Per Week: 10,409
Total Sponsors: 2
I am super happy with these numbers on a release that has only been available for a few months. I strive to be the most feature rich datatables plugin out there for Laravel Livewire.
Let's go over some of the more prominent features first:
Column Selection
I added the ability to choose which columns are displayed on the table. This is saved in the user's session. You can also mark columns as 'un-hideable' so that the user can not disable them.
Drag & Drop Reordering
Using the Livewire Sortable plugin, I added a new feature to the table that allows you to enter 'reordering' mode. This lets you drag and drop the rows and calls a method behind the scenes to update the order in your database.
Date Filters
@bomshteyn pulled a great feature for date filters as a native filter type:
Other Notable Additions
- Ability to hide columns based on a conditional using
hideIf()
. Good for permission based columns. - Ability to set a default sorting column instead of having to pass it in as a query parameter.
- Replaced Bootstrap dropdowns with Alpine.
- Added a place to put modal code within the table plugin.
- Added multiple configurations for enabling/disabling specific parts of the plugin.
- Allow use of Relation instead of Builder to generate data.
- Added single column sorting only.
- Translations file.
- Added default search functionality to columns.
- Plus a bunch of other small improvements.
This plugin is really a joy to work on, and I'm learning a lot. In future blog posts, I'm going to go into detail on how I added some of these features so hopefully you can learn from me as well.