From 2514d748b5da61087ac57665247027a87e762169 Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Sun, 28 Oct 2018 18:53:20 +0530 Subject: [PATCH] Slider Content Bug Fixed --- packages/Webkul/Admin/src/Http/routes.php | 11 ++-- .../Admin/src/Resources/lang/en/app.php | 8 ++- .../views/settings/sliders/create.blade.php | 8 --- .../src/Repositories/SliderRepository.php | 31 ++++++---- .../Http/Controllers/CategoryController.php | 2 + .../src/Http/Controllers/HomeController.php | 2 +- .../Http/Controllers/OnepageController.php | 1 + .../src/Http/Controllers/ReviewController.php | 2 +- .../src/Http/Controllers/SearchController.php | 35 +++++++++++ .../src/Http/Controllers/SliderController.php | 31 +++++++--- packages/Webkul/Shop/src/Http/routes.php | 61 +++++++++++++++---- .../assets/js/components/image-slider.vue | 2 +- 12 files changed, 145 insertions(+), 49 deletions(-) create mode 100644 packages/Webkul/Shop/src/Http/Controllers/SearchController.php diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index b34b26731..9dfd67ec5 100644 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -442,28 +442,29 @@ Route::group(['middleware' => ['web']], function () { Route::put('/account', 'Webkul\User\Http\Controllers\AccountController@update')->name('admin.account.update'); // Admin Store Front Settings Route + //slider index Route::get('/slider','Webkul\Shop\Http\Controllers\SliderController@index')->defaults('_config',[ 'view' => 'admin::settings.sliders.index' ])->name('admin.sliders.index'); - // Admin Store Front Settings Route - - //slider create + //slider create show Route::get('slider/create','Webkul\Shop\Http\Controllers\SliderController@create')->defaults('_config',[ 'view' => 'admin::settings.sliders.create' ])->name('admin.sliders.create'); + //slider create show Route::post('slider/create','Webkul\Shop\Http\Controllers\SliderController@store')->defaults('_config',[ 'redirect' => 'admin.sliders.index' ])->name('admin.sliders.store'); - //slider edit + //slider edit show Route::get('slider/edit/{id}','Webkul\Shop\Http\Controllers\SliderController@edit')->defaults('_config',[ 'view' => 'admin::settings.sliders.edit' ])->name('admin.sliders.edit'); + //slider edit update Route::post('slider/edit/{id}','Webkul\Shop\Http\Controllers\SliderController@update')->defaults('_config',[ - 'redirect' => 'admin::sliders.index' + 'redirect' => 'admin.sliders.index' ])->name('admin.sliders.update'); //destroy a slider item diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 99fced6e5..fea688aaf 100644 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -423,7 +423,13 @@ return [ 'general' => 'General', 'image' => 'Image', 'content' => 'Content', - 'channels' => 'Channel' + 'channels' => 'Channel', + 'created-success' => 'Slider Item Created Successfully', + 'created-fault' => 'Error In Creating Slider Item', + 'update-success' => 'Slider Item Successfully Updated', + 'update-fail' => 'Slider Cannot Be Updated', + 'delete-success' => 'Cannot Delete The Last Slider Item', + 'delete-fail' => 'Slider Item Successfully Deleted' ], ], 'customers' => [ 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 cf3836da4..7eafcc64f 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 @@ -43,14 +43,6 @@
- - {{-- - - - - @{{ errors.first('image') }} - - --}}
diff --git a/packages/Webkul/Core/src/Repositories/SliderRepository.php b/packages/Webkul/Core/src/Repositories/SliderRepository.php index 76dc32fb2..f7f31547d 100644 --- a/packages/Webkul/Core/src/Repositories/SliderRepository.php +++ b/packages/Webkul/Core/src/Repositories/SliderRepository.php @@ -48,13 +48,16 @@ class SliderRepository extends Repository $dir = 'slider_images/' . $channelName; $uploaded = false; + $image = false; - $image = $first = array_first($data['image'], function ($value, $key) { - if($value) - return $value; - else - return false; - }); + if(isset($data['image'])) { + $image = $first = array_first($data['image'], function ($value, $key) { + if($value) + return $value; + else + return false; + }); + } if($image != false) { $uploaded = $image->store($dir); @@ -82,12 +85,16 @@ class SliderRepository extends Repository $dir = 'slider_images/' . $channelName; $uploaded = false; - $image = $first = array_first($data['image'], function ($value, $key) { - if($value) - return $value; - else - return false; - }); + $image = false; + + if(isset($data['image'])) { + $image = $first = array_first($data['image'], function ($value, $key) { + if($value) + return $value; + else + return false; + }); + } if($image != false) { $uploaded = $image->store($dir); diff --git a/packages/Webkul/Shop/src/Http/Controllers/CategoryController.php b/packages/Webkul/Shop/src/Http/Controllers/CategoryController.php index ed8c81a0e..1230004fe 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/CategoryController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/CategoryController.php @@ -2,6 +2,8 @@ namespace Webkul\Shop\Http\Controllers; +use Webkul\Shop\Http\Controllers\Controller; + use Illuminate\Http\Request; use Illuminate\Http\Response; use Webkul\Category\Repositories\CategoryRepository as Category; diff --git a/packages/Webkul/Shop/src/Http/Controllers/HomeController.php b/packages/Webkul/Shop/src/Http/Controllers/HomeController.php index e2584d011..db2056bee 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/HomeController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/HomeController.php @@ -2,9 +2,9 @@ namespace Webkul\Shop\Http\Controllers; +use Webkul\Shop\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Http\Response; -use Illuminate\Routing\Controller; use Webkul\Core\Repositories\SliderRepository as Sliders; /** diff --git a/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php b/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php index 534f2cda9..c08822b0d 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php @@ -2,6 +2,7 @@ namespace Webkul\Shop\Http\Controllers; +use Webkul\Shop\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Http\Response; use Auth; diff --git a/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php b/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php index 54253c6fb..6b52ca9ae 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php @@ -94,7 +94,7 @@ class ReviewController extends Controller 'title' => 'required', ]); - $data=$request->all(); + $data = request()->all(); $customer_id = auth()->guard('customer')->user()->id; diff --git a/packages/Webkul/Shop/src/Http/Controllers/SearchController.php b/packages/Webkul/Shop/src/Http/Controllers/SearchController.php new file mode 100644 index 000000000..0b2fc348e --- /dev/null +++ b/packages/Webkul/Shop/src/Http/Controllers/SearchController.php @@ -0,0 +1,35 @@ + @prashant-webkul + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ + + class SearchController extends controller +{ + protected $_config; + protected $sliders; + protected $current_channel; + + public function __construct(Sliders $s) + { + $this->_config = request('_config'); + + $this->sliders = $s; + } + + /** + * Index to handle the view loaded with the search results + */ + public function index($data) { + return redirect()->back(); + } +} diff --git a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php index e238eee1f..6d243afc0 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php @@ -2,9 +2,10 @@ namespace Webkul\Shop\Http\Controllers; +use Webkul\Shop\Http\Controllers\Controller; + use Illuminate\Http\Request; use Illuminate\Http\Response; -use Illuminate\Routing\Controller; use Webkul\Core\Repositories\SliderRepository as Slider; /** @@ -53,9 +54,18 @@ class SliderController extends controller * @return response */ public function store() { - $this->slider->save(request()->all()); + $this->validate(request(), [ + 'title' => 'string|required', + 'channel_id' => 'required', + 'image' => 'required', + ]); - session()->flash('success', 'Slider created successfully.'); + $result = $this->slider->save(request()->all()); + + if($result) + session()->flash('success', trans('admin::app.settings.sliders.created-success')); + else + session()->flash('success', trans('admin::app.settings.sliders.created-fail')); return redirect()->route($this->_config['redirect']); } @@ -77,15 +87,20 @@ class SliderController extends controller * @return response */ public function update($id) { + $this->validate(request(), [ + 'title' => 'string|required', + 'channel_id' => 'required', + ]); + $result = $this->slider->updateItem(request()->all(), $id); if($result) { - session()->flash('success', 'Slider Item Successfully Updated'); + session()->flash('success', trans('admin::app.settings.sliders.update-success')); } else { - session()->flash('error', 'Slider Cannot Be Updated'); + session()->flash('error', trans('admin::app.settings.sliders.update-fail')); } - return redirect()->back(); + return redirect()->route($this->_config['redirect']); } /** @@ -95,11 +110,11 @@ class SliderController extends controller */ public function destroy($id) { if($this->slider->findWhere(['channel_id' => core()->getCurrentChannel()->id])->count() == 1) { - session()->flash('warning', 'Cannot Delete The Last Slider Item'); + session()->flash('warning', trans('admin::app.settings.sliders.delete-success')); } else { $this->slider->destroy($id); - session()->flash('success', 'Slider Item Successfully Deleted'); + session()->flash('success', trans('admin::app.settings.sliders.delete-fail')); } return redirect()->back(); diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php index a109fbf9e..66db30e76 100644 --- a/packages/Webkul/Shop/src/Http/routes.php +++ b/packages/Webkul/Shop/src/Http/routes.php @@ -2,187 +2,224 @@ Route::group(['middleware' => ['web', 'theme', 'locale', 'currency']], function () { + //Store front home Route::get('/', 'Webkul\Shop\Http\Controllers\HomeController@index')->defaults('_config', [ 'view' => 'shop::home.index' ])->name('shop.home.index'); + //Store front header nav-menu fetch Route::get('/categories/{slug}', 'Webkul\Shop\Http\Controllers\CategoryController@index')->defaults('_config', [ 'view' => 'shop::products.index' ]); //checkout and cart + //Cart Items(listing) Route::get('checkout/cart', 'Webkul\Shop\Http\Controllers\CartController@index')->defaults('_config', [ 'view' => 'shop::checkout.cart.index' ])->name('shop.checkout.cart.index'); + //Cart Items Add Route::post('checkout/cart/add/{id}', 'Webkul\Shop\Http\Controllers\CartController@add')->name('cart.add'); + //Cart Items Add Configurable for more Route::get('checkout/cart/addconfigurable/{slug}', 'Webkul\Shop\Http\Controllers\CartController@addconfigurable')->name('cart.add.configurable'); + //Cart Items Remove Route::get('checkout/cart/remove/{id}', 'Webkul\Shop\Http\Controllers\CartController@remove')->name('cart.remove'); + //Cart Update Before Checkout Route::post('/checkout/cart', 'Webkul\Shop\Http\Controllers\CartController@updateBeforeCheckout')->defaults('_config',[ 'redirect' => 'shop.checkout.cart.index' ])->name('shop.checkout.cart.update'); + //Cart Items Remove Route::get('/checkout/cart/remove/{id}', 'Webkul\Shop\Http\Controllers\CartController@remove')->defaults('_config',[ 'redirect' => 'shop.checkout.cart.index' ])->name('shop.checkout.cart.remove'); + //Checkout Index page Route::get('/checkout/onepage', 'Webkul\Shop\Http\Controllers\OnepageController@index')->defaults('_config', [ 'view' => 'shop::checkout.onepage' ])->name('shop.checkout.onepage.index'); + //Checkout Save Address Form Store Route::post('/checkout/save-address', 'Webkul\Shop\Http\Controllers\OnepageController@saveAddress')->name('shop.checkout.save-address'); + //Checkout Save Shipping Address Form Store Route::post('/checkout/save-shipping', 'Webkul\Shop\Http\Controllers\OnepageController@saveShipping')->name('shop.checkout.save-shipping'); + //Checkout Save Payment Method Form Route::post('/checkout/save-payment', 'Webkul\Shop\Http\Controllers\OnepageController@savePayment')->name('shop.checkout.save-payment'); + //Checkout Save Order Route::post('/checkout/save-order', 'Webkul\Shop\Http\Controllers\OnepageController@saveOrder')->name('shop.checkout.save-order'); + //Checkout Order Successfull Route::get('/checkout/success', 'Webkul\Shop\Http\Controllers\OnepageController@success')->defaults('_config', [ 'view' => 'shop::checkout.success' ])->name('shop.checkout.success'); - //buy now + //Shop buynow button action Route::get('buynow/{id}', 'Webkul\Shop\Http\Controllers\CartController@test')->name('shop.product.buynow'); + //Show Product Details Page(For individually Viewable Product) Route::get('/products/{slug}', 'Webkul\Shop\Http\Controllers\ProductController@index')->defaults('_config', [ 'view' => 'shop::products.view' ])->name('shop.products.index'); - - // Product Review routes + // Show Product Review Form Route::get('/reviews/{slug}', 'Webkul\Shop\Http\Controllers\ReviewController@show')->defaults('_config', [ 'view' => 'shop::products.reviews.index' ])->name('shop.reviews.index'); + // Show Product Review(listing) Route::get('/product/{slug}/review', 'Webkul\Shop\Http\Controllers\ReviewController@create')->defaults('_config', [ 'view' => 'shop::products.reviews.create' ])->name('shop.reviews.create'); + // Show Product Review Form Store Route::post('/product/{slug}/review', 'Webkul\Shop\Http\Controllers\ReviewController@store')->defaults('_config', [ 'redirect' => 'customer.reviews.index' ])->name('shop.reviews.store'); - //customer routes starts here Route::prefix('customer')->group(function () { // forgot Password Routes + // Forgot Password Form Show Route::get('/forgot-password', 'Webkul\Customer\Http\Controllers\ForgotPasswordController@create')->defaults('_config', [ 'view' => 'shop::customers.signup.forgot-password' ])->name('customer.forgot-password.create'); + // Forgot Password Form Store Route::post('/forgot-password', 'Webkul\Customer\Http\Controllers\ForgotPasswordController@store')->name('customer.forgot-password.store'); - //Reset Password create + // Reset Password Form Show Route::get('/reset-password/{token}', 'Webkul\Customer\Http\Controllers\ResetPasswordController@create')->defaults('_config', [ 'view' => 'shop::customers.signup.reset-password' ])->name('customer.reset-password.create'); + // Reset Password Form Store Route::post('/reset-password', 'Webkul\Customer\Http\Controllers\ResetPasswordController@store')->defaults('_config', [ 'redirect' => 'customer.session.index' ])->name('customer.reset-password.store'); // Login Routes + // Login form show Route::get('login', 'Webkul\Customer\Http\Controllers\SessionController@show')->defaults('_config', [ 'view' => 'shop::customers.session.index', ])->name('customer.session.index'); + // Login form store Route::post('login', 'Webkul\Customer\Http\Controllers\SessionController@create')->defaults('_config', [ 'redirect' => 'customer.profile.index' ])->name('customer.session.create'); // Registration Routes + //registration form show Route::get('register', 'Webkul\Customer\Http\Controllers\RegistrationController@show')->defaults('_config', [ - 'view' => 'shop::customers.signup.index' //hint path + 'view' => 'shop::customers.signup.index' ])->name('customer.register.index'); + //registration form store Route::post('register', 'Webkul\Customer\Http\Controllers\RegistrationController@create')->defaults('_config', [ 'redirect' => 'customer.account.index', - ])->name('customer.register.create'); //redirect attribute will get changed immediately to account.index when account's index page will be made + ])->name('customer.register.create'); // Auth Routes Route::group(['middleware' => ['customer']], function () { - //route for logout which will be under the auth guard of the customer by default + //Customer logout Route::get('logout', 'Webkul\Customer\Http\Controllers\SessionController@destroy')->defaults('_config', [ 'redirect' => 'customer.session.index' ])->name('customer.session.destroy'); - //wishlist + //Customer Wishlist add Route::get('wishlist/add/{id}', 'Webkul\Customer\Http\Controllers\WishlistController@add')->name('customer.wishlist.add'); + //Customer Wishlist remove Route::get('wishlist/remove/{id}', 'Webkul\Customer\Http\Controllers\WishlistController@remove')->name('customer.wishlist.remove'); + //Customer Wishlist move to cart Route::get('wishlist/move/{id}', 'Webkul\Customer\Http\Controllers\WishlistController@move')->name('customer.wishlist.move'); + //Customer Wishlist move all to cart Route::get('wishlist/moveall', 'Webkul\Customer\Http\Controllers\WishlistController@moveAll')->name('customer.wishlist.moveall'); //customer account Route::prefix('account')->group(function () { + //Customer Dashboard Route Route::get('index', 'Webkul\Customer\Http\Controllers\AccountController@index')->defaults('_config', [ 'view' => 'shop::customers.account.index' ])->name('customer.account.index'); - /* Profile Routes Starts Here */ + //Customer Profile Show Route::get('profile', 'Webkul\Customer\Http\Controllers\CustomerController@index')->defaults('_config', [ 'view' => 'shop::customers.account.profile.index' ])->name('customer.profile.index'); - //profile edit + //Customer Profile Edit Form Show Route::get('profile/edit', 'Webkul\Customer\Http\Controllers\CustomerController@editIndex')->defaults('_config', [ 'view' => 'shop::customers.account.profile.edit' ])->name('customer.profile.edit'); + //Customer Profile Edit Form Store Route::post('profile/edit', 'Webkul\Customer\Http\Controllers\CustomerController@edit')->defaults('_config', [ 'view' => 'shop::customers.account.profile.edit' ])->name('customer.profile.edit'); /* Profile Routes Ends Here */ /* Routes for Addresses */ + //Customer Address Show Route::get('address/index', 'Webkul\Customer\Http\Controllers\AddressController@index')->defaults('_config', [ 'view' => 'shop::customers.account.address.address' ])->name('customer.address.index'); + //Customer Address Create Form Show Route::get('address/create', 'Webkul\Customer\Http\Controllers\AddressController@show')->defaults('_config', [ 'view' => 'shop::customers.account.address.create' ])->name('customer.address.create'); + //Customer Address Create Form Store Route::post('address/create', 'Webkul\Customer\Http\Controllers\AddressController@create')->defaults('_config', [ 'view' => 'shop::customers.account.address.address', 'redirect' => 'customer.address.index' ])->name('customer.address.create'); + //Customer Address Edit Form Show Route::get('address/edit/{id}', 'Webkul\Customer\Http\Controllers\AddressController@showEdit')->defaults('_config', [ 'view' => 'shop::customers.account.address.edit' ])->name('customer.address.edit'); + //Customer Address Edit Form Store Route::post('address/edit/{id}', 'Webkul\Customer\Http\Controllers\AddressController@edit')->defaults('_config', [ 'redirect' => 'customer.address.index' ])->name('customer.address.edit'); + //Customer Address Make Default Route::get('address/default/{id}', 'Webkul\Customer\Http\Controllers\AddressController@makeDefault')->name('make.default.address'); + //Customer Address Delete Route::get('address/delete/{id}', 'Webkul\Customer\Http\Controllers\AddressController@destroy')->name('address.delete'); - /* Routes for Addresses ends here */ /* Wishlist route */ + //Customer wishlist(listing) Route::get('wishlist', 'Webkul\Customer\Http\Controllers\WishlistController@index')->defaults('_config', [ 'view' => 'shop::customers.account.wishlist.wishlist' ])->name('customer.wishlist.index'); /* Orders route */ + //Customer orders(listing) Route::get('orders', 'Webkul\Shop\Http\Controllers\OrderController@index')->defaults('_config', [ 'view' => 'shop::customers.account.orders.index' ])->name('customer.orders.index'); + //Customer orders view summary and status Route::get('orders/view/{id}', 'Webkul\Shop\Http\Controllers\OrderController@view')->defaults('_config', [ 'view' => 'shop::customers.account.orders.view' ])->name('customer.orders.view'); /* Reviews route */ + //Customer reviews(listing) only approved Route::get('reviews', 'Webkul\Customer\Http\Controllers\CustomerController@reviews')->defaults('_config', [ 'view' => 'shop::customers.account.reviews.index' ])->name('customer.reviews.index'); diff --git a/packages/Webkul/Shop/src/Resources/assets/js/components/image-slider.vue b/packages/Webkul/Shop/src/Resources/assets/js/components/image-slider.vue index 23786c234..ad9436f3d 100644 --- a/packages/Webkul/Shop/src/Resources/assets/js/components/image-slider.vue +++ b/packages/Webkul/Shop/src/Resources/assets/js/components/image-slider.vue @@ -5,7 +5,7 @@