From db06ed7234078debba39eefefb0307327b43517b Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 11 Jun 2019 17:06:31 +0200 Subject: [PATCH] #2810 --- composer.json | 3 ++- src/app/Console/Commands/GenerateCommand.php | 18 +++++++++++++++++- .../Controllers/CubistMagicController.php | 3 ++- .../CubistMagicNestedController.php | 6 ++++-- src/app/Magic/Fields/Files.php | 19 +++++-------------- 5 files changed, 30 insertions(+), 19 deletions(-) diff --git a/composer.json b/composer.json index c72bb93..ee97085 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,8 @@ "webfactor/laravel-backpack-instant-fields": "^2.3.1", "webfactor/laravel-backpack-nestedmodels": "^1.0.1@dev", "spatie/laravel-translatable": "^4.1", - "venturecraft/revisionable": "^1.30" + "venturecraft/revisionable": "^1.30", + "gaspertrix/laravel-backpack-dropzone-field": "^1.0" }, "require-dev": { "filp/whoops": "^2.3", diff --git a/src/app/Console/Commands/GenerateCommand.php b/src/app/Console/Commands/GenerateCommand.php index d40aa23..72eef3a 100644 --- a/src/app/Console/Commands/GenerateCommand.php +++ b/src/app/Console/Commands/GenerateCommand.php @@ -57,9 +57,25 @@ class GenerateCommand extends CubistCommand { $this->line('Generate code of ' . get_class($model)); $model->generateCode(); - $this->_routes[] = 'CRUD::resource(\'' . $model->getOption('route', $model->getOption('name')) . '\', \'' . $model->getControllerClass() . '\');'; + + $route = $model->getOption('route', $model->getOption('name')); + $controller = $model->getControllerClass(); + + $this->_routes[] = 'CRUD::resource(\'' . $route . '\', \'' . $controller . '\')->with(function () { + Route::match([\'post\'], \'' . $route . '/{id}/media\', \'' . $controller . '@uploadMedia\'); + Route::match([\'delete\'], \'' . $route . '/{id}/media/{mediaId}\', \'' . $controller . '@deleteMedia\'); + Route::match([\'post\'], \'' . $route . '/{id}/media/reorder\', \'' . $controller . '@reorderMedia\'); + });'; } } +/* + * +CRUD::resource('entity', 'EntityCrudController')->with(function () { + Route::match(['post'], 'entity/{id}/media', 'EntityCrudController@uploadMedia'); + Route::match(['delete'], 'entity/{id}/media/{mediaId}', 'EntityCrudController@deleteMedia'); + Route::match(['post'], 'entity/{id}/media/reorder', 'EntityCrudController@reorderMedia'); +}); + */ diff --git a/src/app/Magic/Controllers/CubistMagicController.php b/src/app/Magic/Controllers/CubistMagicController.php index b7ac730..64cc081 100644 --- a/src/app/Magic/Controllers/CubistMagicController.php +++ b/src/app/Magic/Controllers/CubistMagicController.php @@ -5,10 +5,11 @@ namespace Cubist\Backpack\app\Magic\Controllers; use Backpack\CRUD\app\Http\Controllers\CrudController; use Backpack\CRUD\CrudTrait; +use Gaspertrix\Backpack\DropzoneField\Traits\HandleAjaxMedia; class CubistMagicController extends CrudController { - use CrudTrait, CubistMagicControllerTrait; + use CrudTrait, CubistMagicControllerTrait, HandleAjaxMedia; protected $_modelNamespace; protected $_routeURL; diff --git a/src/app/Magic/Controllers/CubistMagicNestedController.php b/src/app/Magic/Controllers/CubistMagicNestedController.php index 101fdbd..f133654 100644 --- a/src/app/Magic/Controllers/CubistMagicNestedController.php +++ b/src/app/Magic/Controllers/CubistMagicNestedController.php @@ -4,11 +4,12 @@ namespace Cubist\Backpack\app\Magic\Controllers; use Backpack\CRUD\CrudTrait; +use Gaspertrix\Backpack\DropzoneField\Traits\HandleAjaxMedia; use Webfactor\Laravel\Backpack\NestedModels\Controllers\NestedModelsCrudController; class CubistMagicNestedController extends NestedModelsCrudController { - use CrudTrait, CubistMagicControllerTrait; + use CrudTrait, CubistMagicControllerTrait, HandleAjaxMedia; protected $_modelNamespace; protected $_routeURL; @@ -16,7 +17,8 @@ class CubistMagicNestedController extends NestedModelsCrudController protected $_plural; protected $_bulk; - public function _postSetModel(){ + public function _postSetModel() + { $this->treeSetup(); } } diff --git a/src/app/Magic/Fields/Files.php b/src/app/Magic/Fields/Files.php index 071a22b..bcfaf72 100644 --- a/src/app/Magic/Fields/Files.php +++ b/src/app/Magic/Fields/Files.php @@ -4,27 +4,18 @@ namespace Cubist\Backpack\app\Magic\Fields; +use Cubist\Backpack\CubistBackpackServiceProvider; + class Files extends Field { protected $_mimeTypes = null; protected $_multiple = false; - protected $_adminType = 'upload'; + protected $_adminType = 'dropzone'; + protected $_viewNamespace = CubistBackpackServiceProvider::NAMESPACE . '::fields'; protected $_databaseType = 'text'; public function getDefaultAttributes() { - return array_merge(parent::getDefaultAttributes(), ['mime_types' => $this->_mimeTypes, 'multiple' => $this->_multiple, 'upload' => true, 'disk' => 'uploads']); - } - - protected function _postSetAttributes() - { - if ($this->_multiple) { - $this->setAttribute('type', 'browse_multiple'); - } else { - $this->setAttribute('type', 'browse'); - } - - parent::_postSetAttributes(); + return array_merge(parent::getDefaultAttributes(), ['mime_types' => $this->_mimeTypes, 'multiple' => $this->_multiple]); } - } -- 2.39.5