From c197ade809f641129e4dd4d71a40dcc4b9088c12 Mon Sep 17 00:00:00 2001 From: Fahim Date: Wed, 11 Aug 2021 23:37:11 +0600 Subject: [PATCH] Updated: Product Image Uploading (Added Multiple Image Upload) --- Modules/Product/Entities/Product.php | 2 +- .../Http/Controllers/ProductController.php | 36 +- .../Resources/views/products/create.blade.php | 62 +- .../Resources/views/products/edit.blade.php | 67 +- .../Resources/views/products/show.blade.php | 10 +- .../Http/Controllers/UploadController.php | 25 +- Modules/Upload/Routes/web.php | 3 + .../Http/Controllers/ProfileController.php | 4 +- app/DataTables/ProductDataTable.php | 2 +- config/debugbar.php | 233 + public/css/app.css | 18786 +----- public/css/dropzone.css | 396 + public/js/app.js | 53186 +--------------- public/js/app.js.LICENSE.txt | 21 + public/js/chart-config.js | 76 +- public/js/dropzone.js | 3830 ++ resources/sass/app.scss | 22 + resources/views/layouts/app.blade.php | 2 + storage/temp/dropzone/1628696232.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628696281.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628696379.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628696579.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628696610.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628696677.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628696692.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628696719.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628696738.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628696962.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628697259.jpg | Bin 0 -> 28881 bytes storage/temp/dropzone/1628697283.jpg | Bin 0 -> 28881 bytes storage/temp/dropzone/1628699921.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628700339.torrent | Bin 0 -> 28952 bytes storage/temp/dropzone/1628700356.torrent | Bin 0 -> 28952 bytes storage/temp/dropzone/1628700527.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628700551.jpg | Bin 0 -> 28881 bytes storage/temp/dropzone/1628702071.jpg | Bin 0 -> 28881 bytes storage/temp/dropzone/1628702080.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628702698.jpg | Bin 0 -> 10746 bytes storage/temp/dropzone/1628702702.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628702702.jpg | Bin 0 -> 28881 bytes storage/temp/dropzone/1628702724.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628702735.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628702735.jpg | Bin 0 -> 28881 bytes storage/temp/dropzone/1628702743.jpg | Bin 0 -> 28881 bytes storage/temp/dropzone/1628702907.jpeg | Bin 0 -> 6737 bytes storage/temp/dropzone/1628702908.jpg | Bin 0 -> 28881 bytes storage/temp/dropzone/1628702914.jpg | Bin 0 -> 28881 bytes storage/temp/dropzone/1628702980.jpg | Bin 0 -> 28881 bytes 48 files changed, 4670 insertions(+), 72093 deletions(-) create mode 100644 config/debugbar.php create mode 100644 public/css/dropzone.css create mode 100644 public/js/dropzone.js create mode 100644 storage/temp/dropzone/1628696232.jpeg create mode 100644 storage/temp/dropzone/1628696281.jpeg create mode 100644 storage/temp/dropzone/1628696379.jpeg create mode 100644 storage/temp/dropzone/1628696579.jpeg create mode 100644 storage/temp/dropzone/1628696610.jpeg create mode 100644 storage/temp/dropzone/1628696677.jpeg create mode 100644 storage/temp/dropzone/1628696692.jpeg create mode 100644 storage/temp/dropzone/1628696719.jpeg create mode 100644 storage/temp/dropzone/1628696738.jpeg create mode 100644 storage/temp/dropzone/1628696962.jpeg create mode 100644 storage/temp/dropzone/1628697259.jpg create mode 100644 storage/temp/dropzone/1628697283.jpg create mode 100644 storage/temp/dropzone/1628699921.jpeg create mode 100644 storage/temp/dropzone/1628700339.torrent create mode 100644 storage/temp/dropzone/1628700356.torrent create mode 100644 storage/temp/dropzone/1628700527.jpeg create mode 100644 storage/temp/dropzone/1628700551.jpg create mode 100644 storage/temp/dropzone/1628702071.jpg create mode 100644 storage/temp/dropzone/1628702080.jpeg create mode 100644 storage/temp/dropzone/1628702698.jpg create mode 100644 storage/temp/dropzone/1628702702.jpeg create mode 100644 storage/temp/dropzone/1628702702.jpg create mode 100644 storage/temp/dropzone/1628702724.jpeg create mode 100644 storage/temp/dropzone/1628702735.jpeg create mode 100644 storage/temp/dropzone/1628702735.jpg create mode 100644 storage/temp/dropzone/1628702743.jpg create mode 100644 storage/temp/dropzone/1628702907.jpeg create mode 100644 storage/temp/dropzone/1628702908.jpg create mode 100644 storage/temp/dropzone/1628702914.jpg create mode 100644 storage/temp/dropzone/1628702980.jpg 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')