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');