[POC] datatable as a component for multiple cruds#5688
Merged
Conversation
d84d59a to
65aa57b
Compare
39a4912 to
d8b8d16
Compare
tabacitu
requested changes
Mar 26, 2025
| @endif | ||
| <x-datatable :crud="$crud" /> | ||
|
|
||
| </div> |
Member
There was a problem hiding this comment.
Todo: let's write in the upgrade guide that the list.blade.php and datatables_logic.blade.php files have been turned into a datatable component - if they've made any changes to them, they can delete them from their project and re-do the changes in the component view (after publishing).
tabacitu
reviewed
Jun 2, 2025
tabacitu
reviewed
Jun 2, 2025
tabacitu
reviewed
Jun 2, 2025
tabacitu
reviewed
Jun 2, 2025
tabacitu
reviewed
Jun 2, 2025
[ci skip] [skip ci]
[ci skip] [skip ci]
[ci skip] [skip ci]
…el-Backpack/CRUD into datatable-single-component
tabacitu
requested changes
Jun 5, 2025
[ci skip] [skip ci]
[ci skip] [skip ci]
Co-authored-by: StyleCI Bot <bot@styleci.io>
pxpm
added a commit
that referenced
this pull request
Nov 21, 2025
Co-authored-by: StyleCI Bot <bot@styleci.io> Co-authored-by: Cristian Tabacitu <cristian.tabacitu@digitallyhappy.com>
pxpm
added a commit
that referenced
this pull request
Nov 21, 2025
Co-authored-by: StyleCI Bot <bot@styleci.io> Co-authored-by: Cristian Tabacitu <cristian.tabacitu@digitallyhappy.com>
tabacitu
added a commit
that referenced
this pull request
Nov 21, 2025
* Uploaders - Refactor and fixes (#5478) * add method to get ajax uploaders * Apply fixes from StyleCI [ci skip] [skip ci] * use an abstract class * wip * Apply fixes from StyleCI [ci skip] [skip ci] * refactor uploaders * Apply fixes from StyleCI [ci skip] [skip ci] * refactor rules * Apply fixes from StyleCI [ci skip] [skip ci] * move ajax to PRO, cleanup * Apply fixes from StyleCI [ci skip] [skip ci] * make attributes available for all subfields * fix tests * wip * Apply fixes from StyleCI [ci skip] [skip ci] * upload multiple and upload properly working 🙏 * fixes * Apply fixes from StyleCI [ci skip] [skip ci] * allow the configuration of valueWithoutPath call. * fix valid upload inside repeatables * Apply fixes from StyleCI [ci skip] [skip ci] * fix condition * cleanup * fix * Apply fixes from StyleCI [ci skip] [skip ci] * fix use case for enabling validation after entry is created * Apply fixes from StyleCI [ci skip] [skip ci] * dont save array keys * fix ajax validation * fix validation messages * Apply fixes from StyleCI [ci skip] [skip ci] * fixes ValidUpload * Apply fixes from StyleCI [ci skip] [skip ci] * dont json encode if casted in the model * Apply fixes from StyleCI [ci skip] [skip ci] * fix previous file identification in repeatable * Apply fixes from StyleCI [ci skip] [skip ci] * fix getting values * Apply fixes from StyleCI [ci skip] [skip ci] * add fake fields support * Apply fixes from StyleCI [ci skip] [skip ci] * wip add uploaders tests * Apply fixes from StyleCI [ci skip] [skip ci] * wip * Apply fixes from StyleCI [ci skip] [skip ci] * add pro columns * fix test suite * fix tests * ffix tests * remove unused test views * add uploaders to test coverage * Apply fixes from StyleCI [ci skip] [skip ci] * add coverage folder to gitignore * make tests run faster by not reloading db when not necessary * add coverage to validation tests * add fake tests to uploaders * Apply fixes from StyleCI [ci skip] [skip ci] * add more tests * Apply fixes from StyleCI [ci skip] [skip ci] * wip * Apply fixes from StyleCI [ci skip] [skip ci] * wip * wip * Apply fixes from StyleCI [ci skip] [skip ci] * wip * Apply fixes from StyleCI [ci skip] [skip ci] * add more upload assets * fixes * Apply fixes from StyleCI [ci skip] [skip ci] * fix single file * Apply fixes from StyleCI [ci skip] [skip ci] * add image column * fix tests * Apply fixes from StyleCI [ci skip] [skip ci] * remove hardcoded macro names * Apply fixes from StyleCI [ci skip] [skip ci] * remove double loop, fix single file uploader * Apply fixes from StyleCI [ci skip] [skip ci] * use a big increments and unsigned for primary key * handle pivot file deletion * Apply fixes from StyleCI [ci skip] [skip ci] * register events for relation models * Apply fixes from StyleCI [ci skip] [skip ci] * fix typo * Apply fixes from StyleCI [ci skip] [skip ci] * fix relationship uploaders * Apply fixes from StyleCI [ci skip] [skip ci] * wip * Apply fixes from StyleCI [ci skip] [skip ci] * wip * Apply fixes from StyleCI [ci skip] [skip ci] * update temporary time key * save objects in the macro --------- Co-authored-by: StyleCI Bot <bot@styleci.io> * trigger testing forkflow on PR * Clean up uploaders (#5725) * wip * clean up * add get uploadedFilesFromRequest to clean up uploaders * Apply fixes from StyleCI [ci skip] [skip ci] * fix type cast * add summernote uploader * update summernote * add summernote * add more test assets --------- Co-authored-by: StyleCI Bot <bot@styleci.io> * allow datatable url configuration (#5713) * use next branch for basset * require alpha version * bump basset version * Lifecycle hooks for CRUD operations (#5687) * wip * Apply fixes from StyleCI [ci skip] [skip ci] * tidy up * Apply fixes from StyleCI [ci skip] [skip ci] * panel hooks * Apply fixes from StyleCI [ci skip] [skip ci] * refactoring :broom * finish implementing hooks * Apply fixes from StyleCI [ci skip] [skip ci] * refactoring hooks * Apply fixes from StyleCI [ci skip] [skip ci] * add hook to delete * allow empty parameters * wip --------- Co-authored-by: StyleCI Bot <bot@styleci.io> * "Agnostic" filters - decouple filters from datatables (#5714) * wip * wip * Apply fixes from StyleCI [ci skip] [skip ci] * wip * Apply fixes from StyleCI [ci skip] [skip ci] * remove filters navbar component --------- Co-authored-by: StyleCI Bot <bot@styleci.io> * bump basset version * Update composer.json * Apply fixes from StyleCI [ci skip] [skip ci] * datatable component (#5688) Co-authored-by: StyleCI Bot <bot@styleci.io> Co-authored-by: Cristian Tabacitu <cristian.tabacitu@digitallyhappy.com> * move the list heading to the datatable component (#5808) * add Datagrid and Datalist components (#5810) Co-authored-by: StyleCI Bot <bot@styleci.io> * Form component (no ajax form) (#5814) Co-authored-by: StyleCI Bot <bot@styleci.io> Co-authored-by: Cristian Tabacitu <cristian.tabacitu@digitallyhappy.com> * dataform component fixes (#5816) Co-authored-by: StyleCI Bot <bot@styleci.io> * Added general chip blade file and chip widget (#5815) * Fix Form issues, Add *name* argument to forms (#5817) Co-authored-by: StyleCI Bot <bot@styleci.io> * Drop support for Laravel 10 and 11 (#5819) * Fix hooks at setup level (#5818) Co-authored-by: StyleCI Bot <bot@styleci.io> * install dev-next version of generators * require basset beta version (#5821) * fix scripts on table * fix the keyboard shortcuts on forms * ensure proper crud identification * fix hooks * fix crud field javacript issue * pass the form id to form content * add error page translations * fix export buttons * wip * wip * wip * map the ui files * fix table without export buttons * always focus on error field * delete button redirect * Apply fixes from StyleCI [ci skip] [skip ci] * Fix padding in name * Fix checkbox padding * Background of select2 * multiple fixes * fix form error highlight * wip * Add toggle to JSON * allow user to choose locale and timezone * fixes bulk actions * fix the filter navbar * fix line buttons dropdown * wip * wip * wip * wip * wip * DataFormModal component (#5863) Co-authored-by: StyleCI Bot <bot@styleci.io> Co-authored-by: Cristian Tabacitu <cristian.tabacitu@digitallyhappy.com> Co-authored-by: Cristian Tăbăcitu <cristitabacitu@gmail.com> * wip * wip * wip * Save action classes (#5878) Enable the usage of classes to describe the save actions. This allow more flexibility and easy to extend and/or configure behaviour. * add cancel button option to modal form (#5881) * fix problem with checklist_dependency field in Update operation * fix indentation * Update src/app/Console/Commands/Install.php * Update composer.json --------- Co-authored-by: Pedro Martins <pxpm88@gmail.com> Co-authored-by: StyleCI Bot <bot@styleci.io> Co-authored-by: jcastroa87 <jcastroa87@gmail.com> Co-authored-by: zachweix <zachweix@users.noreply.github.com>
pxpm
added a commit
that referenced
this pull request
Dec 22, 2025
Co-authored-by: StyleCI Bot <bot@styleci.io> Co-authored-by: Cristian Tabacitu <cristian.tabacitu@digitallyhappy.com>
pxpm
added a commit
that referenced
this pull request
Dec 23, 2025
Co-authored-by: StyleCI Bot <bot@styleci.io> Co-authored-by: Cristian Tabacitu <cristian.tabacitu@digitallyhappy.com>
pxpm
added a commit
that referenced
this pull request
Feb 10, 2026
Co-authored-by: StyleCI Bot <bot@styleci.io> Co-authored-by: Cristian Tabacitu <cristian.tabacitu@digitallyhappy.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This is a very early POC about something me and @tabacitu are exploring.
What we are trying to achieve here, can be summed up in the following way:
They way Backpack was built from start, although simple, comes with some limitations. Now that we want to introduce more advanced features we'd need to do major refactors of the software, that would take months for us to develop, and a lot of time for our users to upgrade.
We are always exploring the possibility of changing something internal that would allow us to do more advanced things, without the cost for the developers that use our software.
That said, one of the most requested features and needs we had, was to have a "relation table", without having to develop a new table from scratch, given how much effort we already spent on the Datatable/columns, and the huge amount of features we have on both of them.
Without much to add for the moment, we will need to decide on the direction we would like to take, here is a screenshot of somewhat we want to achieve:
All of that, with the simplicity we aim for our software:
At the moment there are 0 breaking changes, but also stuff that does no properly work. This is very very wip, we may find something that would require a major breaking change that we are not willing to do for the next version .. but it's a start. 👍