From 2b8e198d0d9c5f4c644ba51f83d4139c599b281b Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Fri, 21 Dec 2018 18:48:31 +0530 Subject: [PATCH 1/5] cart customer details fetched when user logged in --- packages/Webkul/Checkout/src/Cart.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 215f6b2a2..c4014baad 100644 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -639,9 +639,16 @@ class Cart { } } - $cart->customer_email = $cart->billing_address->email; - $cart->customer_first_name = $cart->billing_address->first_name; - $cart->customer_last_name = $cart->billing_address->last_name; + if(auth()->guard('customer')->check()) { + $cart->customer_email = auth()->guard('customer')->user()->email; + $cart->customer_first_name = auth()->guard('customer')->user()->first_name; + $cart->customer_last_name = auth()->guard('customer')->user()->last_name; + } else { + $cart->customer_email = $cart->billing_address->email; + $cart->customer_first_name = $cart->billing_address->first_name; + $cart->customer_last_name = $cart->billing_address->last_name; + } + $cart->save(); return true; From 81da5bd1d13fbbaa55ca551e5526f12a74be8d79 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 22 Dec 2018 11:56:26 +0530 Subject: [PATCH 2/5] Changed the product card hover style and fixed issue #369 --- packages/Webkul/Admin/src/Listeners/Product.php | 7 +++++++ packages/Webkul/Admin/src/Resources/lang/en/app.php | 13 ++++++++++++- .../src/Http/Controllers/ProductController.php | 4 ++-- .../Webkul/Shop/src/Resources/assets/sass/app.scss | 6 +++++- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/packages/Webkul/Admin/src/Listeners/Product.php b/packages/Webkul/Admin/src/Listeners/Product.php index 1f259232f..758155f26 100644 --- a/packages/Webkul/Admin/src/Listeners/Product.php +++ b/packages/Webkul/Admin/src/Listeners/Product.php @@ -268,6 +268,13 @@ class Product { $gridObject = []; } + + $this->findRepeated(); + return true; } + + public function findRepeated() { + + } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index faec0f03c..cf43766b8 100644 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -50,6 +50,7 @@ return [ 'change-password' => 'Change Account Password', 'current-password' => 'Current Password' ], + 'users' => [ 'forget-password' => [ 'title' => 'Forget Password', @@ -60,6 +61,7 @@ return [ 'back-link-title' => 'Back to Sign In', 'submit-btn-title' => 'Email Password Reset Link' ], + 'reset-password' => [ 'title' => 'Reset Password', 'title' => 'Reset Password', @@ -69,6 +71,7 @@ return [ 'back-link-title' => 'Back to Sign In', 'submit-btn-title' => 'Reset Password' ], + 'roles' => [ 'title' => 'Roles', 'add-role-title' => 'Add Role', @@ -82,6 +85,7 @@ return [ 'custom' => 'Custom', 'all' => 'All' ], + 'users' => [ 'title' => 'User', 'add-user-title' => 'Add User', @@ -97,6 +101,7 @@ return [ 'status' => 'Status', 'account-is-active' => 'Account is Active' ], + 'sessions' => [ 'title' => 'Sign In', 'email' => 'Email', @@ -106,6 +111,7 @@ return [ 'submit-btn-title' => 'Sign In' ] ], + 'sales' => [ 'orders' => [ 'title' => 'Orders', @@ -157,6 +163,7 @@ return [ 'total-due' => 'Total Due', 'cancel-confirm-msg' => 'Are you sure you want to cancel this order ?' ], + 'invoices' => [ 'title' => 'Invoices', 'id' => 'Id', @@ -178,6 +185,7 @@ return [ 'print' => 'Print', 'order-date' => 'Order Date' ], + 'shipments' => [ 'title' => 'Shipments', 'id' => 'Id', @@ -196,6 +204,7 @@ return [ 'view-title' => 'Shipment #:shipment_id', ] ], + 'catalog' => [ 'products' => [ 'title' => 'Products', @@ -227,8 +236,10 @@ return [ 'add-variant-title' => 'Add Variant', 'variant-already-exist-message' => 'Variant with same attribute options already exists.', 'add-image-btn-title' => 'Add Image', - 'mass-delete-success' => 'All the selected index of products have been deleted successfully' + 'mass-delete-success' => 'All the selected index of products have been deleted successfully', + 'mass-update-success' => 'All the selected index of products have been updated successfully' ], + 'attributes' => [ 'title' => 'Attributes', 'add-title' => 'Add Attribute', diff --git a/packages/Webkul/Product/src/Http/Controllers/ProductController.php b/packages/Webkul/Product/src/Http/Controllers/ProductController.php index c1d2b0194..3666a9dd4 100644 --- a/packages/Webkul/Product/src/Http/Controllers/ProductController.php +++ b/packages/Webkul/Product/src/Http/Controllers/ProductController.php @@ -268,7 +268,7 @@ class ProductController extends Controller Event::fire('catelog.product.update.after', $product); } else if($data['update-options'] == 1 && $data['selected-option-text'] == 'Active') { Event::fire('catelog.product.update.before', $productId); - + $result = $this->product->updateAttribute($product, $attribute, $data['update-options']); if($result) @@ -277,7 +277,7 @@ class ProductController extends Controller } } - session()->flash('success', trans('admin::app.catalog.products.mass-delete-success')); + session()->flash('success', trans('admin::app.catalog.products.mass-update-success')); return redirect()->route($this->_config['redirect']); } diff --git a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss index bf022bf20..cadaae9fc 100644 --- a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss @@ -456,7 +456,11 @@ input { } .product-card:hover { - box-shadow: 1px 1px 10px #ccc; + outline: 1px solid #eaeaec; + box-shadow: 0 1px 2px rgba(0,0,0,0.05); + -webkit-box-shadow: 0px 2px 16px 4px rgba(40, 44, 63, 0.07); + -moz-box-shadow: 0px 2px 16px 4px rgba(40, 44, 63, 0.07); + box-shadow: 0px 2px 16px 4px rgba(40, 44, 63, 0.07); } @media only screen and (max-width: 580px) { From e526af061e9e03f566f418cf84e6d1f16835e82a Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 22 Dec 2018 15:02:10 +0530 Subject: [PATCH 3/5] Fixed issues #378, #379 and #373 --- .../Admin/src/DataGrids/AttributeDataGrid.php | 8 ++--- .../Admin/src/DataGrids/ProductDataGrid.php | 4 +-- .../Webkul/Admin/src/Listeners/Product.php | 35 +++++++++++-------- .../Http/Controllers/ProductController.php | 1 - packages/Webkul/Ui/src/DataGrid/DataGrid.php | 2 +- 5 files changed, 27 insertions(+), 23 deletions(-) diff --git a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php index 0e8382e5d..bb6caf11c 100644 --- a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php @@ -150,22 +150,22 @@ class AttributeDataGrid 'type' => 'string', 'label' => 'Type', ], [ - 'name' => 'is_required', + 'column' => 'is_required', 'alias' => 'attributeIsRequired', 'type' => 'boolean', 'label' => 'Required', ], [ - 'name' => 'is_unique', + 'column' => 'is_unique', 'alias' => 'attributeIsUnique', 'type' => 'boolean', 'label' => 'Unique', ], [ - 'name' => 'value_per_locale', + 'column' => 'value_per_locale', 'alias' => 'attributeValuePerLocale', 'type' => 'boolean', 'label' => 'Locale based', ], [ - 'name' => 'value_per_channel', + 'column' => 'value_per_channel', 'alias' => 'attributeValuePerChannel', 'type' => 'boolean', 'label' => 'Channel based', diff --git a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php index c6faf091b..1bd3dbc1f 100644 --- a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php @@ -123,7 +123,7 @@ class ProductDataGrid 'type' => 'string', 'label' => 'Product Quantity', 'sortable' => true, - ], + ] ], 'filterable' => [ @@ -149,7 +149,7 @@ class ProductDataGrid 'type' => 'string', 'label' => 'Product Type', ], [ - 'name' => 'prods.status', + 'column' => 'prods.status', 'alias' => 'ProductStatus', 'type' => 'boolean', 'label' => 'Status' diff --git a/packages/Webkul/Admin/src/Listeners/Product.php b/packages/Webkul/Admin/src/Listeners/Product.php index 758155f26..b8c3d8d40 100644 --- a/packages/Webkul/Admin/src/Listeners/Product.php +++ b/packages/Webkul/Admin/src/Listeners/Product.php @@ -73,24 +73,29 @@ class Product { $variants = []; - $this->productGrid->create($gridObject); + $found = $this->productGrid->findOneByField('product_id', $product->id); - if($product->type == 'configurable') { - $variants = $product->variants()->get(); + //extra measure to stop duplicate entries + if($found == null) { + $this->productGrid->create($gridObject); - foreach($variants as $variant) { - $variantObj = [ - 'product_id' => $variant->id, - 'sku' => $variant->sku, - 'type' => $variant->type, - 'attribute_family_name' => $variant->toArray()['attribute_family']['name'], - 'name' => $variant->name, - 'quantity' => 0, - 'status' => $variant->status, - 'price' => $variant->price, - ]; + if($product->type == 'configurable') { + $variants = $product->variants()->get(); - $this->productGrid->create($variantObj); + foreach($variants as $variant) { + $variantObj = [ + 'product_id' => $variant->id, + 'sku' => $variant->sku, + 'type' => $variant->type, + 'attribute_family_name' => $variant->toArray()['attribute_family']['name'], + 'name' => $variant->name, + 'quantity' => 0, + 'status' => $variant->status, + 'price' => $variant->price, + ]; + + $this->productGrid->create($variantObj); + } } } diff --git a/packages/Webkul/Product/src/Http/Controllers/ProductController.php b/packages/Webkul/Product/src/Http/Controllers/ProductController.php index 3666a9dd4..7cfabee7d 100644 --- a/packages/Webkul/Product/src/Http/Controllers/ProductController.php +++ b/packages/Webkul/Product/src/Http/Controllers/ProductController.php @@ -142,7 +142,6 @@ class ProductController extends Controller 'sku' => ['required', 'unique:products,sku', new \Webkul\Core\Contracts\Validations\Slug] ]); - //before store of the product Event::fire('catalog.product.create.before'); diff --git a/packages/Webkul/Ui/src/DataGrid/DataGrid.php b/packages/Webkul/Ui/src/DataGrid/DataGrid.php index 9a1f7c0ee..b14f58df9 100644 --- a/packages/Webkul/Ui/src/DataGrid/DataGrid.php +++ b/packages/Webkul/Ui/src/DataGrid/DataGrid.php @@ -631,7 +631,7 @@ class DataGrid throw new \Exception('Multiple Sort keys Found, Please Resolve the URL Manually.'); } } elseif ($key=="search") { - + // dd($this->searchable, $parsed); $count_keys = count(array_keys($value)); if($count_keys==1) $this->query->where(function ($query) use ($parsed) { From affcca3d08cb2208ef7abfe1bbe204c92b1a598d Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 22 Dec 2018 16:12:42 +0530 Subject: [PATCH 4/5] fixed issue #304 --- packages/Webkul/Admin/src/Http/routes.php | 4 ++ .../Admin/src/Resources/lang/en/app.php | 8 +++- .../customers/confirm-password.blade.php | 37 ++++++++++++++++++ packages/Webkul/Ui/src/DataGrid/DataGrid.php | 1 - .../src/Http/Controllers/UserController.php | 39 ++++++++++++++++++- 5 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 packages/Webkul/Admin/src/Resources/views/customers/confirm-password.blade.php diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index 28c0dee76..7a2f0a56c 100644 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -324,6 +324,10 @@ Route::group(['middleware' => ['web']], function () { //delete backend user Route::get('/users/delete/{id}', 'Webkul\User\Http\Controllers\UserController@destroy')->name('admin.users.delete'); + Route::post('/confirm/destroy', 'Webkul\User\Http\Controllers\UserController@destroySelf')->defaults('_config', [ + 'redirect' => 'admin.users.index' + ])->name('admin.users.confirm.destroy'); + // User Role Routes Route::get('/roles', 'Webkul\User\Http\Controllers\RoleController@index')->defaults('_config', [ 'view' => 'admin::users.roles.index' diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index cf43766b8..6f4753234 100644 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -99,7 +99,13 @@ return [ 'status-and-role' => 'Status and Role', 'role' => 'Role', 'status' => 'Status', - 'account-is-active' => 'Account is Active' + 'account-is-active' => 'Account is Active', + 'current-password' => 'Enter Current Password', + 'confirm-delete' => 'Confirm Delete This Account', + 'confirm-delete-title' => 'Confirm password before delete', + 'delete-last' => 'At least one admin is required.', + 'delete-success' => 'Success! User deleted', + 'incorrect-password' => 'The password you entered is incorrect' ], 'sessions' => [ diff --git a/packages/Webkul/Admin/src/Resources/views/customers/confirm-password.blade.php b/packages/Webkul/Admin/src/Resources/views/customers/confirm-password.blade.php new file mode 100644 index 000000000..125112c81 --- /dev/null +++ b/packages/Webkul/Admin/src/Resources/views/customers/confirm-password.blade.php @@ -0,0 +1,37 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.customers.customers.title') }} +@stop + +@section('content') +
+ + +
+
+ @csrf +
+ + + + + + @{{ errors.first('password') }} + +
+ + +
+
+
+@endsection diff --git a/packages/Webkul/Ui/src/DataGrid/DataGrid.php b/packages/Webkul/Ui/src/DataGrid/DataGrid.php index b14f58df9..c174266f1 100644 --- a/packages/Webkul/Ui/src/DataGrid/DataGrid.php +++ b/packages/Webkul/Ui/src/DataGrid/DataGrid.php @@ -631,7 +631,6 @@ class DataGrid throw new \Exception('Multiple Sort keys Found, Please Resolve the URL Manually.'); } } elseif ($key=="search") { - // dd($this->searchable, $parsed); $count_keys = count(array_keys($value)); if($count_keys==1) $this->query->where(function ($query) use ($parsed) { diff --git a/packages/Webkul/User/src/Http/Controllers/UserController.php b/packages/Webkul/User/src/Http/Controllers/UserController.php index 211ea50e4..f449bbd9b 100644 --- a/packages/Webkul/User/src/Http/Controllers/UserController.php +++ b/packages/Webkul/User/src/Http/Controllers/UserController.php @@ -8,6 +8,7 @@ use Illuminate\Support\Facades\Event; use Webkul\User\Repositories\AdminRepository as Admin; use Webkul\User\Repositories\RoleRepository as Role; use Webkul\User\Http\Requests\UserForm; +use Hash; /** * Admin user controller @@ -94,7 +95,7 @@ class UserController extends Controller $data['password'] = bcrypt($data['password']); Event::fire('user.admin.create.before'); - + $admin = $this->admin->create($data); Event::fire('user.admin.delete.after', $admin); @@ -165,6 +166,10 @@ class UserController extends Controller } else { Event::fire('user.admin.delete.before', $id); + if (auth()->guard('admin')->user()->id == $id) { + return view('admin::customers.confirm-password'); + } + $this->admin->delete($id); Event::fire('user.admin.delete.after', $id); @@ -174,4 +179,36 @@ class UserController extends Controller return redirect()->back(); } + + /** + * destroy current after confirming + * + * @return mixed + */ + public function destroySelf() + { + $password = request()->input('password'); + + if(Hash::check($password, auth()->guard('admin')->user()->password)) { + if($this->admin->count() == 1) { + session()->flash('error', trans('admin::app.users.users.delete-last')); + } else { + $id = auth()->guard('admin')->user()->id; + + Event::fire('user.admin.delete.before', $id); + + $this->admin->delete($id); + + Event::fire('user.admin.delete.after', $id); + + session()->flash('success', trans('admin::app.users.users.delete-success')); + + return redirect()->route('admin.session.create'); + } + } else { + session()->flash('warning', trans('admin::app.users.users.incorrect-password')); + + return redirect()->route($this->_config['redirect']); + } + } } \ No newline at end of file From 232e430ab035f0854d08dd68efe0251614f28c86 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 22 Dec 2018 16:15:23 +0530 Subject: [PATCH 5/5] fixed issue #319 --- .../Webkul/Admin/src/Resources/views/layouts/nav-top.blade.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/Webkul/Admin/src/Resources/views/layouts/nav-top.blade.php b/packages/Webkul/Admin/src/Resources/views/layouts/nav-top.blade.php index 16f6dfd27..46e72c591 100644 --- a/packages/Webkul/Admin/src/Resources/views/layouts/nav-top.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/layouts/nav-top.blade.php @@ -30,6 +30,9 @@