From 11e7db8f8572894e855a81a028f22694e8f27f24 Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Wed, 17 Oct 2018 16:03:57 +0530 Subject: [PATCH 1/3] Before merge with masteer --- packages/Webkul/Admin/src/Http/routes.php | 17 ++++- .../views/settings/sliders/edit.blade.php | 69 +++++++++++++++++++ .../src/Repositories/SliderRepository.php | 12 ++++ .../Http/Controllers/AddressController.php | 53 +++++--------- .../Http/Controllers/CustomerController.php | 49 +++++++------ .../Http/Controllers/ReviewsController.php | 61 ---------------- .../Repositories/ProductReviewRepository.php | 10 ++- .../src/Http/Controllers/ReviewController.php | 8 ++- .../src/Http/Controllers/SliderController.php | 51 +++++++++++++- packages/Webkul/Shop/src/Http/routes.php | 4 -- .../customers/account/reviews/index.blade.php | 2 +- .../js/components/image/image-upload.vue | 8 +++ public/themes/default/assets/js/shop.js | 4 -- 13 files changed, 215 insertions(+), 133 deletions(-) create mode 100644 packages/Webkul/Admin/src/Resources/views/settings/sliders/edit.blade.php delete mode 100644 packages/Webkul/Customer/src/Http/Controllers/ReviewsController.php diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index fc4fc2d19..6fdf0780b 100644 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -386,14 +386,27 @@ Route::group(['middleware' => ['web']], function () { ])->name('admin.sliders.index'); // Admin Store Front Settings Route - Route::get('/slider/create','Webkul\Shop\Http\Controllers\SliderController@create')->defaults('_config',[ + + //slider create + Route::get('slider/create','Webkul\Shop\Http\Controllers\SliderController@create')->defaults('_config',[ 'view' => 'admin::settings.sliders.create' ])->name('admin.sliders.create'); - Route::post('/slider/create','Webkul\Shop\Http\Controllers\SliderController@store')->defaults('_config',[ + Route::post('slider/create','Webkul\Shop\Http\Controllers\SliderController@store')->defaults('_config',[ 'redirect' => 'admin::sliders.index' ])->name('admin.sliders.store'); + //slider edit + Route::get('slider/edit/{id}','Webkul\Shop\Http\Controllers\SliderController@edit')->defaults('_config',[ + 'view' => 'admin::settings.sliders.edit' + ])->name('admin.sliders.edit'); + + Route::post('slider/edit/{id}','Webkul\Shop\Http\Controllers\SliderController@update')->defaults('_config',[ + 'redirect' => 'admin::sliders.index' + ])->name('admin.sliders.update'); + + //destroy a slider item + Route::get('slider/delete/{id}', 'Webkul\Shop\Http\Controllers\SliderController@destroy'); //tax routes Route::get('/tax-categories', 'Webkul\Tax\Http\Controllers\TaxController@index')->defaults('_config', [ 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 new file mode 100644 index 000000000..1ed666826 --- /dev/null +++ b/packages/Webkul/Admin/src/Resources/views/settings/sliders/edit.blade.php @@ -0,0 +1,69 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.settings.sliders.add-title') }} +@stop + +@section('content') +
+
+ + +
+
+ + @csrf() + +
+ + + @{{ errors.first('title') }} +
+ + getAllChannels() ?> +
+ + + @{{ errors.first('channel_id') }} +
+ +
+ + + + + + @{{ errors.first('image') }} + +
+ +
+ + + + + @{{ errors.first('content') }} +
+ + +
+
+
+
+@endsection \ No newline at end of file diff --git a/packages/Webkul/Core/src/Repositories/SliderRepository.php b/packages/Webkul/Core/src/Repositories/SliderRepository.php index 766a0bcd8..0e37ad7fc 100644 --- a/packages/Webkul/Core/src/Repositories/SliderRepository.php +++ b/packages/Webkul/Core/src/Repositories/SliderRepository.php @@ -33,10 +33,22 @@ class SliderRepository extends Repository $image_name = uniqid(20).'.'.$image->getClientOriginalExtension(); $destinationPath = public_path('/vendor/webkul/shop/assets/images/slider'); + $path = $image->move($destinationPath, $image_name); + $path= 'vendor/webkul/shop/assets/images/slider/'.$image_name; + $data['path'] = $path; + $this->model->create($data); } + /** + * Delete a slider item and delete the image from the disk or where ever it is + * + * @return Boolean + */ + public function destroy($id) { + return $this->model->destroy($id); + } } \ No newline at end of file diff --git a/packages/Webkul/Customer/src/Http/Controllers/AddressController.php b/packages/Webkul/Customer/src/Http/Controllers/AddressController.php index 9ca161166..1f5b98c5b 100644 --- a/packages/Webkul/Customer/src/Http/Controllers/AddressController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/AddressController.php @@ -28,7 +28,6 @@ class AddressController extends Controller protected $customer; protected $address; - public function __construct(CustomerRepository $customer, CustomerAddressRepository $address) { $this->middleware('customer'); @@ -41,22 +40,9 @@ class AddressController extends Controller } /** - * Getting logged in - * customer helper - * @return Array - */ - private function getCustomer($id) { - - $customer = collect($this->customer->findOneWhere(['id'=>$id])); - - return $customer; - } - - /** - * Getting logged in - * customer address - * helper - * @return Array + * Getting logged in customer address helper + * + * @return array */ private function getAddress($id) { @@ -66,37 +52,32 @@ class AddressController extends Controller } - /** - * Address Route - * index page - * @return View + * Address Route index page + * + * @return view */ public function index() { $id = auth()->guard('customer')->user()->id; - $customer = $this->getCustomer($id); - $address = $this->getAddress($id); return view($this->_config['view'])->with('address', $address); } /** - * Show the address - * create form - * @return View + * Show the address create form + * + * @return view */ public function show() { return view($this->_config['view']); } /** - * Create a new - * address for - * customer. + * Create a new address for customer. * - * @return View + * @return view */ public function create() { @@ -144,11 +125,9 @@ class AddressController extends Controller } /** - * For editing the - * existing address - * of the customer + * For editing the existing address of the customer * - * @return View + * @return view */ public function showEdit() { @@ -160,6 +139,12 @@ class AddressController extends Controller } + /** + * Edits the premade resource of customer called + * Address. + * + * @return redirect + */ public function edit() { $id = auth()->guard('customer')->user()->id; diff --git a/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php b/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php index 913ecdd9d..0f4ea7683 100644 --- a/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php @@ -10,10 +10,7 @@ use Webkul\Customer\Models\Customer; use Auth; /** - * Customer controlller for the customer - * basically for the tasks of customers - * which will be done after customer - * authenticastion. + * Customer controlller for the customer basically for the tasks of customers which will be done after customer authentication. * * @author Prashant Singh * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) @@ -36,7 +33,7 @@ class CustomerController extends Controller protected $productReview; /** - * Create a new controller instance. + * Create a new Repository instance. * * @param Webkul\Product\Repositories\ProductReviewRepository $productReview * @return void @@ -54,9 +51,8 @@ class CustomerController extends Controller } /** - * For taking the customer - * to the dashboard after - * authentication + * For taking the customer to the dashboard after authentication + * * @return view */ private function getCustomer($id) { @@ -65,9 +61,8 @@ class CustomerController extends Controller } /** - * Taking the customer - * to profile details - * page + * Taking the customer to profile details page + * * @return View */ public function index() { @@ -79,8 +74,7 @@ class CustomerController extends Controller } /** - * For loading the - * edit form page. + * For loading the edit form page. * * @return View */ @@ -93,9 +87,7 @@ class CustomerController extends Controller } /** - * Edit function - * for editing customer - * profile. + * Edit function for editing customer profile. * * @return Redirect. */ @@ -148,23 +140,40 @@ class CustomerController extends Controller } } + /** + * Load the view for the customer account panel, showing orders in a table. + * + * @return Mixed + */ public function orders() { return view($this->_config['view']); } + /** + * Load the view for the customer account panel, showing wishlist items. + * + * @return Mixed + */ public function wishlist() { return view($this->_config['view']); } + /** + * Load the view for the customer account panel, showing approved reviews. + * + * @return Mixed + */ public function reviews() { - - $id = auth()->guard('customer')->user()->id; - - $reviews = $this->productReview->getCustomerReview($id); + $reviews = $this->productReview->getCustomerReview(); return view($this->_config['view'],compact('reviews')); } + /** + * Load the view for the customer account panel, shows the customer address. + * + * @return Mixed + */ public function address() { return view($this->_config['view']); } diff --git a/packages/Webkul/Customer/src/Http/Controllers/ReviewsController.php b/packages/Webkul/Customer/src/Http/Controllers/ReviewsController.php deleted file mode 100644 index 62e2f78ec..000000000 --- a/packages/Webkul/Customer/src/Http/Controllers/ReviewsController.php +++ /dev/null @@ -1,61 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class ReviewsController extends Controller -{ - /** - * Display a listing of the resource. - * - * @return \Illuminate\Http\Response - */ - protected $_config; - protected $customer; - - - public function __construct(CustomerRepository $customer) - { - $this->middleware('customer'); - - $this->_config = request('_config'); - - $this->customer = $customer; - } - - /** - * For taking the customer - * to the dashboard after - * authentication - * @return view - */ - private function getCustomer($id) { - $customer = collect($this->customer->findOneWhere(['id'=>$id])); - return $customer; - } - - public function index() { - $id = auth()->guard('customer')->user()->id; - - $customer = $this->getCustomer($id); - - return view($this->_config['view'])->with('customer', $customer); - } - - public function reviews() { - return view($this->_config['view']); - } -} \ No newline at end of file diff --git a/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php b/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php index 4e135b324..71c19f9ce 100644 --- a/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php @@ -14,7 +14,7 @@ use Webkul\Product\Repositories\ProductRepository; */ class ProductReviewRepository extends Repository { - /** + /** * ProductImageRepository object * * @var array @@ -51,9 +51,13 @@ class ProductReviewRepository extends Repository * * @param int $customerId */ - function getCustomerReview($customerId) + function getCustomerReview() { - $reviews = $this->model->where('customer_id',$customerId)->with('product')->get(); + $customerId = auth()->guard('customer')->user()->id; + + $reviews = $this->model->where(['customer_id'=> $customerId, 'status' => 'approved'])->with('product')->get(); + + // dd($reviews); return $reviews; } diff --git a/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php b/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php index 4447db8b0..bf7a8fda9 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php @@ -46,6 +46,10 @@ class ReviewController extends Controller */ public function __construct(Product $product, ProductReview $productReview) { + $this->middleware('admin'); + + $this->middleware('customer')->only(['create', 'store']); + $this->product = $product; $this->productReview = $productReview; @@ -118,7 +122,7 @@ class ReviewController extends Controller return view($this->_config['view'],compact('product')); } - /** + /** * Show the form for editing the specified resource. * * @param int $id @@ -131,7 +135,7 @@ class ReviewController extends Controller return view($this->_config['view'],compact('review')); } - /** + /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request diff --git a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php index c987bbc13..927e3b43b 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php @@ -49,12 +49,59 @@ class SliderController extends controller } /** - * Creates the new - * sider item + * Creates the new sider item. + * + * @return response */ public function store() { + $this->slider->create(request()->all()); + session()->flash('success', 'Slider created successfully.'); + + return redirect()->back(); + } + + /** + * Edit the previously created slider item. + * + * @return mixed + */ + public function edit($id) { + $slider = $this->slider->find($id); + + return view($this->_config['view'])->with('slider', $slider); + } + + /** + * Edit the previously created slider item. + * + * @return response + */ + public function update($id) { + if($this->slider->update(request()->all(), $id)) { + session()->flash('success', 'Slider Item Successfully Updated'); + } else { + session()->flash('error', 'Slider Cannot Be Updated'); + } + + return redirect()->back(); + } + + /** + * Delete a slider item and preserve the last one from deleting + * + * @return mixed + */ + public function destroy($id) { + if($this->slider->findWhere(['channel_id' => core()->getCurrentChannel()->id])->count() == 1) { + session()->flash('warning', 'Cannot Delete The Last Slider Item'); + } else { + $this->slider->destroy($id); + + session()->flash('success', 'Slider Item Successfully Deleted'); + } + return redirect()->back(); } } \ No newline at end of file diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php index 444862394..67f8be2cf 100644 --- a/packages/Webkul/Shop/src/Http/routes.php +++ b/packages/Webkul/Shop/src/Http/routes.php @@ -66,10 +66,6 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'customer.reviews.index' ])->name('shop.reviews.store'); - // Route::post('/reviews/create/{slug}', 'Webkul\Shop\Http\Controllers\ReviewController@store')->defaults('_config', [ - // 'redirect' => 'admin.reviews.index' - // ])->name('admin.reviews.store'); - // forgot Password Routes Route::get('/forgot-password', 'Webkul\Customer\Http\Controllers\ForgotPasswordController@create')->defaults('_config', [ 'view' => 'shop::customers.signup.forgot-password' diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/reviews/index.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/reviews/index.blade.php index f6fca6cc3..e4cad9a9f 100644 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/reviews/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/reviews/index.blade.php @@ -14,7 +14,7 @@