julienmru/laravel-backpack-dropzone-field

Add Dropzone support for Laravel Backpack

3.1.0 2023-08-25 09:41 UTC

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

License

The MIT License (MIT). Please see License File for more information.