diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index eff53a48c..b34b26731 100644 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -454,7 +454,7 @@ Route::group(['middleware' => ['web']], function () { ])->name('admin.sliders.create'); Route::post('slider/create','Webkul\Shop\Http\Controllers\SliderController@store')->defaults('_config',[ - 'redirect' => 'admin::sliders.index' + 'redirect' => 'admin.sliders.index' ])->name('admin.sliders.store'); //slider edit diff --git a/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php index 7e6b7e0d3..cf3836da4 100644 --- a/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/sliders/create.blade.php @@ -44,21 +44,20 @@
- + {{-- @{{ errors.first('image') }} - {{-- The image field validation is not working, resolve it. --}} - + --}} +
- {{-- --}} @{{ errors.first('content') }}
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/sliders/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/sliders/edit.blade.php index c8542e1d4..b8ed706be 100644 --- a/packages/Webkul/Admin/src/Resources/views/settings/sliders/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/sliders/edit.blade.php @@ -43,24 +43,17 @@ @{{ errors.first('channel_id') }} -
- - - - - - @{{ errors.first('image') }} - +
+ path) }}"'>
- +
- @{{ errors.first('content') }}
diff --git a/packages/Webkul/Core/src/Repositories/SliderRepository.php b/packages/Webkul/Core/src/Repositories/SliderRepository.php index 3f734ad68..76dc32fb2 100644 --- a/packages/Webkul/Core/src/Repositories/SliderRepository.php +++ b/packages/Webkul/Core/src/Repositories/SliderRepository.php @@ -41,20 +41,34 @@ class SliderRepository extends Repository * @param array $data * @return mixed */ - public function create(array $data) + public function save(array $data) { - $channelName = $this->channel->find($data['channel_id'])->name; $dir = 'slider_images/' . $channelName; - $image = request()->file('image')->store($dir); + $uploaded = false; - unset($data['image'], $data['_token']); + $image = $first = array_first($data['image'], function ($value, $key) { + if($value) + return $value; + else + return false; + }); - $data['path'] = $image; + if($image != false) { + $uploaded = $image->store($dir); - $this->model->create($data); + unset($data['image'], $data['_token']); + } + + if($uploaded) { + $data['path'] = $uploaded; + } else { + unset($data['image']); + } + + return $this->create($data); } /** @@ -67,13 +81,33 @@ class SliderRepository extends Repository $dir = 'slider_images/' . $channelName; - $image = request()->file('image')->store($dir); + $uploaded = false; + $image = $first = array_first($data['image'], function ($value, $key) { + if($value) + return $value; + else + return false; + }); - unset($data['image'], $data['_token']); + if($image != false) { + $uploaded = $image->store($dir); - $data['path'] = $image; + unset($data['image'], $data['_token']); + } + + if($uploaded) { + $sliderItem = $this->find($id); + + $deleted = Storage::delete($sliderItem->path); + + $data['path'] = $uploaded; + } else { + unset($data['image']); + } $this->update($data, $id); + + return true; } /** diff --git a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php index 0386f4c35..e238eee1f 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php @@ -53,12 +53,11 @@ class SliderController extends controller * @return response */ public function store() { - // dd(request()->all()); - $this->slider->create(request()->all()); + $this->slider->save(request()->all()); session()->flash('success', 'Slider created successfully.'); - return redirect()->back(); + return redirect()->route($this->_config['redirect']); } /** @@ -78,7 +77,9 @@ class SliderController extends controller * @return response */ public function update($id) { - if($this->slider->updateItem(request()->all(), $id)) { + $result = $this->slider->updateItem(request()->all(), $id); + + if($result) { session()->flash('success', 'Slider Item Successfully Updated'); } else { session()->flash('error', 'Slider Cannot Be Updated');