Add Dropzone support for Laravel Backpack.
Currently, you can only manage media while editing an entry.
composer require gaspertrix/laravel-backpack-dropzone-field
Publish assets:
php artisan gaspertrix:backpack:dropzone:install
For simplicity add the HandleAjaxMedia
trait to all EntityCrudController.
<?php
...
use Gaspertrix\Backpack\DropzoneField\Traits\HandleAjaxMedia;
...
class EntityCrudController extends CrudController
{
...
use HandleAjaxMedia;
...
}
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');
...
[
...
'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,
],
]);
});
...
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email adrian@gaspertrix.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.