julienmru / laravel-backpack-dropzone-field
Add Dropzone support for Laravel Backpack
3.1.0
2023-08-25 09:41 UTC
Requires
- backpack/crud: 5.6.*
- spatie/laravel-medialibrary: ^10.0.0
This package is auto-updated.
Last update: 2024-11-25 12:32:11 UTC
README
Add Dropzone support for Laravel Backpack.
Requirements
Limitations
Currently, you can only manage media while editing an entry.
Install
Via Composer
composer require julienmru/laravel-backpack-dropzone-field
Publish assets:
php artisan julienmru:backpackdropzonefield:install
Usage
EntityCrudController
For simplicity add the HandleAjaxMedia
trait to all EntityCrudController.
<?php ... use JulienMru\BackpackDropzoneField\Traits\HandleAjaxMedia; ... class EntityCrudController extends CrudController { ... use HandleAjaxMedia; ... }
Routes
In your routes file, you have to add additionals routes.
<?php ... Route::crud('entity', 'EntityCrudController') Route::post('entity/{id}/media', 'EntityCrudController@uploadMedia'); Route::delete('entity/{id}/media/{mediaId}', 'EntityCrudController@deleteMedia'); Route::post('entity/{id}/media/reorder', 'EntityCrudController@reorderMedia'); ...
Field
[
...
'type' => 'dropzone_media',
'collection' => 'photos', // Media collection where files are added to
'thumb_collection' => 'thumbs', // Media collection where thumb are displayed from. If not set, 'collection' is used by default
'options' => [
... // Dropzone options
]
...
]
Example:
<?php
...
$this->crud->operation(['update'], function() {
$this->crud->addField([
'label' => 'Photos',
'type' => 'dropzone_media',
'name' => 'photos',
'collection' => 'photos',
'thumb_collection' => 'thumbs',
'options' => [
'thumbnailHeight' => 120,
'thumbnailWidth' => 120,
'maxFilesize' => 10,
'addRemoveLinks' => true,
'createImageThumbnails' => true,
],
]);
});
...
Change log
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email mail@julien.expert instead of using the issue tracker.
Credits
- Adrian Sacchi
- [Julien Tessier][https://github.com/julienmru]
- All Contributors
License
The MIT License (MIT). Please see License File for more information.