Slider Backend Fixed

This commit is contained in:
prashant-webkul 2018-10-28 16:30:15 +05:30
parent f5b4cc4c46
commit 7a157ee17d
5 changed files with 55 additions and 28 deletions

View File

@ -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

View File

@ -44,21 +44,20 @@
<div class="control-group" :class="[errors.has('image') ? 'has-error' : '']">
<label for="new_image">{{ __('admin::app.settings.sliders.image') }}</label>
<image-upload>
{{-- <image-upload>
<input type="file" class="control" id="add_image" name="image" value="" v-validate="'image|required'" placeholder="Upload from Outer"/>
<span class="control-error" v-if="errors.has('image')">@{{ errors.first('image') }}</span>
{{-- The image field validation is not working, resolve it. --}}
</image-upload>
</image-upload> --}}
<image-wrapper :button-label="'{{ __('admin::app.settings.sliders.image') }}'" input-name="image" :multiple="false"></image-wrapper>
</div>
<div class="control-group" :class="[errors.has('content') ? 'has-error' : '']">
<label for="content">{{ __('admin::app.settings.sliders.content') }}</label>
<textarea class="control" id="add_content" name="content" rows="5"></textarea>
{{-- <textarea></textarea> --}}
<span class="control-error" v-if="errors.has('content')">@{{ errors.first('content') }}</span>
</div>

View File

@ -43,24 +43,17 @@
<span class="control-error" v-if="errors.has('channel_id')">@{{ errors.first('channel_id') }}</span>
</div>
<div class="control-group" :class="[errors.has('image') ? 'has-error' : '']">
<label for="new_image">{{ __('admin::app.settings.sliders.image') }}</label>
<image-upload>
<input type="file" class="control" id="add_image" name="image" value="" v-validate="'image|required'" placeholder="Upload Image" />
<span class="control-error" v-if="errors.has('image')">@{{ errors.first('image') }}</span>
</image-upload>
<div class="control-group">
<image-wrapper :button-label="'{{ __('admin::app.settings.sliders.image') }}'" input-name="image" :multiple="false" :images='"{{ url('storage/'.$slider->path) }}"'></image-wrapper>
</div>
<div class="control-group" :class="[errors.has('content') ? 'has-error' : '']">
<label for="content">{{ __('admin::app.settings.sliders.content') }}</label>
<div class="panel-body">
<textarea class="control" id="add_content" name="content" v-validate="'required'" rows="5">{{ $slider->content ? : old('content') }}</textarea>
<textarea class="control" id="add_content" name="content" v-validate="'required'" rows="5">{{ $slider->content ? : old('content') }}</textarea>
</div>
<span class="control-error" v-if="errors.has('content')">@{{ errors.first('content') }}</span>
</div>

View File

@ -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;
}
/**

View File

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