area17 / twill

Twill is an open source CMS toolkit for Laravel that helps developers rapidly create a custom admin console that is intuitive, powerful and flexible. Chat with us on Discord at https://discord.gg/cnWk7EFv8R.
https://twillcms.com
Apache License 2.0
3.71k stars 567 forks source link

fix(Buckets): save featured type using morph map instead of module name #2536

Open Tofandel opened 5 months ago

Tofandel commented 5 months ago

Description

Currently when using the bucket feature, the morphMap has to match exactly the name of the twill module, this is very restrictive especially in projects where the morphMap was already defined, because the featured_type column is saved using the module name instead of the MorphMap of the class

This effectively results in a fatal error when loading the Feature because the Morph fails

This PR aims to fix this issue by correctly saving the Feature using the morph map

It also fixes the label displayed here to be taken from the bucketable config rather than the current behavior of ucfirst the module name on reload image And it improves the performance of the bucket controller which currently loads all of the repositories in any case even though only one is ever displayed at a time, it now only loads the first one or the requested one

Also added a documented 'repository' option for bucketables to allow passing the repository class directly (or it cannot work with Package capsules)

PS: it would also be a nice addition to buckets to add an option to edit the featured model either clicking on the title or with an edit button somewhere here image