diff --git a/Modules/Product/Entities/Product.php b/Modules/Product/Entities/Product.php index c2583846..4c76d996 100644 --- a/Modules/Product/Entities/Product.php +++ b/Modules/Product/Entities/Product.php @@ -21,7 +21,7 @@ class Product extends Model implements HasMedia } public function registerMediaCollections(): void { - $this->addMediaCollection('default') + $this->addMediaCollection('images') ->useFallbackUrl('/images/fallback_product_image.png'); } diff --git a/Modules/Product/Http/Controllers/ProductController.php b/Modules/Product/Http/Controllers/ProductController.php index 8645b0a9..114f1b44 100644 --- a/Modules/Product/Http/Controllers/ProductController.php +++ b/Modules/Product/Http/Controllers/ProductController.php @@ -31,16 +31,11 @@ class ProductController extends Controller public function store(StoreProductRequest $request) { - $product = Product::create($request->except('image')); + $product = Product::create($request->except('document')); - if ($request->has('image')) { - $tempFile = Upload::where('folder', $request->image)->first(); - - if ($tempFile) { - $product->addMedia(Storage::path('public/temp/' . $request->image . '/' . $tempFile->filename))->toMediaCollection(); - - Storage::deleteDirectory('public/temp/' . $request->image); - $tempFile->delete(); + if ($request->has('document')) { + foreach ($request->input('document', []) as $file) { + $product->addMedia(storage_path('temp/dropzone/' . $file))->toMediaCollection('images'); } } @@ -65,20 +60,23 @@ class ProductController extends Controller public function update(UpdateProductRequest $request, Product $product) { - $product->update($request->except('image')); + $product->update($request->except('document')); - if ($request->has('image')) { - $tempFile = Upload::where('folder', $request->image)->first(); - - if ($product->getFirstMedia()) { - $product->getFirstMedia()->delete(); + if ($request->has('document')) { + if (count($product->getMedia('images')) > 0) { + foreach ($product->getMedia('images') as $media) { + if (!in_array($media->file_name, $request->input('document', []))) { + $media->delete(); + } + } } - if ($tempFile) { - $product->addMedia(Storage::path('public/temp/' . $request->image . '/' . $tempFile->filename))->toMediaCollection(); + $media = $product->getMedia('images')->pluck('file_name')->toArray(); - Storage::deleteDirectory('public/temp/' . $request->image); - $tempFile->delete(); + foreach ($request->input('document', []) as $file) { + if (count($media) === 0 || !in_array($file, $media)) { + $product->addMedia(storage_path('temp/dropzone/' . $file))->toMediaCollection('images'); + } } } diff --git a/Modules/Product/Resources/views/products/create.blade.php b/Modules/Product/Resources/views/products/create.blade.php index 193beaed..38f608d8 100644 --- a/Modules/Product/Resources/views/products/create.blade.php +++ b/Modules/Product/Resources/views/products/create.blade.php @@ -2,10 +2,6 @@ @section('title', 'Create Product') -@section('third_party_stylesheets') - @include('includes.filepond-css') -@endsection - @section('breadcrumb')