tanthammar / tall-blueprint-addon
Fund package maintenance!
tanthammar
Installs: 311
Dependents: 0
Suggesters: 0
Security: 0
Stars: 29
Watchers: 1
Forks: 7
Open Issues: 1
pkg:composer/tanthammar/tall-blueprint-addon
Requires
- laravel-shift/blueprint: ^2.0
- laravel/framework: ^8.0|^9.0
- tanthammar/tall-forms: ^8.0|dev-master|v9.x-dev
Requires (Dev)
- mockery/mockery: ^1.3
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.3
README
Auto generate TALL-forms for all models with the php artisan blueprint:build command.
This plugin is based on Blueprint Nova Addon by Krishan König.
What you get
- Code: Consider the code you get as a mockup/draft. It won't work as is. You'll have to review and finalize the field declarations.
- Usability: You will get a single form component for each model.
It's up to you to split it in two components if you need separate forms for create/update forms.
- Tests: The Blueprint generated tests matches the controllers, not tall-forms. You will have to update them to Livewire syntax.
- Duplicated code:
Any Controller statements in yourdraft.yamlrelated tostore,updateanddestroy, will be written to both Controllers and the Livewire form components. To avoid code duplication you can manually remove the code in Controllers after the build command. Another suggestion is to refactor intoActionsthat you can use in both Controllers, and the Livewire form components.
Controller => TallForm, duplicated code position:
- Controller->store() => TallForm->onCreateModel()
- Controller->update() => TallForm->onUpdateModel()
- Controller->destroy() => TallForm->onDeleteModel()
- Sponsors: If you are a sponsor, the build command will generate sponsor fields instead of open source versions. Like
DatePickerinstead ofInput->type('datetime-local'). See the configuration option below.
Early version!
- Relationship fields are outputted as
Repeaters,SelectsorMultiSelect. This will change when I create required fields in TALL-forms - Review generated code, it's not perfect :)
Requirements
- tall-forms >= v7.8.4 || v8
- blueprint >= 1.20
Installation
- Install Laravel, Livewire and TALL-forms
- Then install this package and Blueprint via composer:
composer require --dev tanthammar/tall-blueprint-addon
Configuration
You may publish the configuration with the following command:
php artisan vendor:publish --tag=tall_forms_blueprint
Sponsors - update config!
- If you are a sponsor of tall-forms, publish the config file and set
sponsortotrue.
The build command will generate sponsor fields instead of open source versions.
LikeDatePickerinstead ofInput->type('datetime-local'). - If not, please sponsor the tall-forms package here: https://github.com/sponsors/tanthammar
//Do you have access to the tall-forms-sponsor repository? 'sponsor' => true,
Timestamp fields
To disable the generation of timestamp fields for all forms set this option to false.
Usage
Refer to Blueprint's Basic Usage
to get started. Afterwards you can run the blueprint:build command to
generate Tall-forms automatically. Try this example draft.yaml file.
# draft.yaml models: Post: author_id: id foreign:users title: string:400 content: longtext published_at: nullable timestamp relationships: HasMany: Comment Comment: post_id: id foreign content: longtext published_at: nullable timestamp controllers: Post: index: query: all render: post.index with:posts create: render: post.create store: validate: title, content, author_id save: post dispatch: SyncMedia with:post notify: post.author ReviewPost with:post send: ReviewPost to:post.author with:post flash: post.title fire: NewPost with:post redirect: post.index update: update: post dispatch: SyncMedia with:post destroy: flash: post.title send: SupportPostDeleted to:support with:post delete: post redirect: post.index Comment: resource
Contribution
This is open source, I'll gladly accept every effort to contribute.
Credits
License
The MIT License (MIT). Please see License File for more information.