From: Vincent Vanwaelscappel Date: Tue, 6 Jul 2021 16:38:33 +0000 (+0200) Subject: wip #4216 @3 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=029cadc78ec1a9c6f4bcd4390d299ba502c2cf8a;p=cubist_cms-back.git wip #4216 @3 --- diff --git a/src/app/Magic/Fields/Field.php b/src/app/Magic/Fields/Field.php index 2b2daa6..6c0fd97 100644 --- a/src/app/Magic/Fields/Field.php +++ b/src/app/Magic/Fields/Field.php @@ -154,7 +154,8 @@ class Field implements \ArrayAccess /** * @return string */ - public function getName(){ + public function getName() + { return $this->getAttribute('name'); } diff --git a/src/app/Magic/Models/CubistMagicAbstractModel.php b/src/app/Magic/Models/CubistMagicAbstractModel.php index a314037..dc096a9 100644 --- a/src/app/Magic/Models/CubistMagicAbstractModel.php +++ b/src/app/Magic/Models/CubistMagicAbstractModel.php @@ -5,6 +5,7 @@ namespace Cubist\Backpack\Magic\Models; use Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation; use Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation; use Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation; +use Cubist\Backpack\Magic\Fields\Files; use Cubist\Backpack\Magic\Operations\CreateOperation; use Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation; use Cubist\Backpack\Magic\Operations\UpdateOperation; @@ -502,6 +503,16 @@ class CubistMagicAbstractModel extends Model implements HasMedia return $type; } + public function registerMediaCollections(): void + { + foreach ($this->getFields() as $field) { + if ($field instanceof Files && $field->getAttribute('name_as_collection', false)) { + $this->addMediaCollection($field->getAttribute('name')) + ->onlyKeepLatest($field->getAttribute('maxFiles')); + } + } + } + public function registerMediaConversions(Media $media = null): void { $this->addMediaConversion('backpack_thumb') @@ -671,11 +682,15 @@ class CubistMagicAbstractModel extends Model implements HasMedia if ($preserveOriginal) { $media->preservingOriginal(); } - $media->toMediaCollection($collection); + $col = $this->getMediaCollection($collection); if ($col) { - $col->onlyKeepLatest($field->getAttribute('maxFiles')); + $maxFiles = $field->getAttribute('maxFiles'); + $col->onlyKeepLatest($maxFiles); } + + $media->toMediaCollection($collection); + if ($save) { $this->save(); } diff --git a/src/resources/views/create.blade.php b/src/resources/views/create.blade.php index 88ca3c7..e663852 100644 --- a/src/resources/views/create.blade.php +++ b/src/resources/views/create.blade.php @@ -1,2 +1,58 @@ +@extends(backpack_view('blank')) + @include('cubist_back::when') -@include('crud::create') + +@php + $defaultBreadcrumbs = [ + trans('backpack::crud.admin') => url(config('backpack.base.route_prefix'), 'dashboard'), + $crud->entity_name_plural => url($crud->route), + trans('backpack::crud.add') => false, + ]; + + // if breadcrumbs aren't defined in the CrudController, use the default breadcrumbs + $breadcrumbs = $breadcrumbs ?? $defaultBreadcrumbs; +@endphp + +@section('header') +
+

+ {!! $crud->getHeading() ?? $crud->entity_name_plural !!} + {!! $crud->getSubheading() ?? trans('backpack::crud.add').' '.$crud->entity_name !!}. + + @if ($crud->hasAccess('list')) + {{ trans('backpack::crud.back_to_all') }} {{ $crud->entity_name_plural }} + @endif +

+
+@endsection + +@section('content') + +
+
+ + + @include('crud::inc.grouped_errors') + +
hasUploadFields('create')) + enctype="multipart/form-data" + @endif + > + {!! csrf_field() !!} + + @if(view()->exists('vendor.backpack.crud.form_content')) + @include('vendor.backpack.crud.form_content', [ 'fields' => $crud->fields(), 'action' => 'create' ]) + @else + @include('crud::form_content', [ 'fields' => $crud->fields(), 'action' => 'create' ]) + @endif + + @include('crud::inc.form_save_buttons') +
+
+ @include('cubist_back::form.shortcuts') +
+ +@endsection + diff --git a/src/resources/views/edit.blade.php b/src/resources/views/edit.blade.php index b00aea0..370fe7a 100644 --- a/src/resources/views/edit.blade.php +++ b/src/resources/views/edit.blade.php @@ -1,3 +1,5 @@ +@extends(backpack_view('blank')) + @push('crud_fields_scripts')