diff --git a/packages/Webkul/Admin/src/Config/auth.php b/packages/Webkul/Admin/src/Config/auth.php index fc49f9cdb..1e7bb3cdc 100644 --- a/packages/Webkul/Admin/src/Config/auth.php +++ b/packages/Webkul/Admin/src/Config/auth.php @@ -12,6 +12,11 @@ return [ 'provider' => 'users', ], + 'customer' =>[ + 'driver' => 'session', + 'provider' => 'customers' + ], + 'admin' => [ 'driver' => 'session', 'provider' => 'admins' @@ -27,7 +32,12 @@ return [ 'users' => [ 'driver' => 'eloquent', 'model' => Webkul\User\Models\User::class, - ], + ], + + 'customers' => [ + 'driver' => 'eloquent', + 'model' => Webkul\Customer\Models\Customer::class, + ], 'admins' => [ 'driver' => 'eloquent', @@ -41,5 +51,10 @@ return [ 'table' => 'admin_password_resets', 'expire' => 60, ], + 'admins' => [ + 'provider' => 'customers', + 'table' => 'customers_password_resets', + 'expire' => 60, + ], ], -]; \ No newline at end of file +]; diff --git a/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php b/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php index b0aeef74f..22422ed62 100644 --- a/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php @@ -24,15 +24,9 @@ class DashboardController extends Controller public function __construct() { $this->_config = request('_config'); - } public function index() { return view('admin::dashboard.index'); } - - public function loadCatalog() - { - return view($this->_config['view']); - } } diff --git a/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php b/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php new file mode 100644 index 000000000..d820878f0 --- /dev/null +++ b/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php @@ -0,0 +1,42 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CustomerController extends Controller +{ + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + protected $_config; + + public function __construct() + { + $this->_config = request('_config'); + } + public function index() + { + return view('customer::login.index'); + } + + public function login() + { + return view($this->_config['view']); + } + + public function signup() + { + return view($this->_config['view']); + } +} diff --git a/packages/Webkul/Customer/src/Http/Middleware/RedirectIfNotCustomer.php b/packages/Webkul/Customer/src/Http/Middleware/RedirectIfNotCustomer.php new file mode 100644 index 000000000..7c386b90a --- /dev/null +++ b/packages/Webkul/Customer/src/Http/Middleware/RedirectIfNotCustomer.php @@ -0,0 +1,26 @@ +check()) { + return redirect()->route('admin.login'); + } + + return $next($request); + } +} diff --git a/packages/Webkul/Customer/src/Http/routes.php b/packages/Webkul/Customer/src/Http/routes.php index 86dc4869e..67d5d3e14 100644 --- a/packages/Webkul/Customer/src/Http/routes.php +++ b/packages/Webkul/Customer/src/Http/routes.php @@ -1,5 +1,21 @@ ['web']], function () { + Route::prefix('customer')->group(function () { + // Login Routes + Route::get('/login', 'Webkul\Customer\Http\Controllers\CustomerController@login')->defaults('_config', [ + 'view' => 'customer::login.index' + ])->name('customer.login'); + + Route::get('/register', 'Webkul\Customer\Http\Controllers\CustomerController@signup')->defaults('_config', [ + 'view' => 'customer::signup.index' + ])->name('customer.register'); + + // Auth Routes + Route::group(['middleware' => ['customer']], function () { + Route::get('/logout', 'Webkul\Customer\Http\Controllers\CustomerController@logout')->defaults('_config', [ + 'redirect' => 'customer.session.index' + ])->name('customer.session.destroy'); + }); + }); }); diff --git a/packages/Webkul/Customer/src/Models/Customer.php b/packages/Webkul/Customer/src/Models/Customer.php new file mode 100644 index 000000000..a0b9fa918 --- /dev/null +++ b/packages/Webkul/Customer/src/Models/Customer.php @@ -0,0 +1,9 @@ +token); + } + + return (new MailMessage) + ->line('You are receiving this email because we received a password reset request for your account.') + ->action('Reset Password', route('customer.reset-password.create', $this->token)) + ->line('If you did not request a password reset, no further action is required.'); + } +} diff --git a/packages/Webkul/Customer/src/Providers/CustomerServiceProvider.php b/packages/Webkul/Customer/src/Providers/CustomerServiceProvider.php index b474e37c9..78ab4c2a9 100644 --- a/packages/Webkul/Customer/src/Providers/CustomerServiceProvider.php +++ b/packages/Webkul/Customer/src/Providers/CustomerServiceProvider.php @@ -3,6 +3,11 @@ namespace Webkul\Customer\Providers; use Illuminate\Support\ServiceProvider; +use Illuminate\Support\Facades\Event; +use Illuminate\Support\Facades\Blade; +use Webkul\Admin\Providers\EventServiceProvider; + +// use Webkul\Admin\Providers\ComposerServiceProvider; class CustomerServiceProvider extends ServiceProvider { @@ -14,6 +19,10 @@ class CustomerServiceProvider extends ServiceProvider __DIR__ . '/../../publishable/assets' => public_path('vendor/webkul/customer/assets'), ], 'public'); + $router->aliasMiddleware('customer', RedirectIfNotCustomer::class); + + $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'customer'); } diff --git a/packages/Webkul/Customer/src/Resources/assets/sass/_mixins.scss b/packages/Webkul/Customer/src/Resources/assets/sass/_mixins.scss new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Webkul/Customer/src/Resources/assets/sass/_variables.scss b/packages/Webkul/Customer/src/Resources/assets/sass/_variables.scss new file mode 100644 index 000000000..2a94e2a15 --- /dev/null +++ b/packages/Webkul/Customer/src/Resources/assets/sass/_variables.scss @@ -0,0 +1,5 @@ +$sign-up-text-color: #5e5e5e; +$login-text: #3a3a3a; +$background-color: #ffffff; +$border-color: #ffe8e8e8; +$forgot-password-color: #0031f0; diff --git a/packages/Webkul/Customer/src/Resources/assets/sass/app.scss b/packages/Webkul/Customer/src/Resources/assets/sass/app.scss new file mode 100644 index 000000000..7962137f6 --- /dev/null +++ b/packages/Webkul/Customer/src/Resources/assets/sass/app.scss @@ -0,0 +1,66 @@ +@import "mixins"; +@import "variables"; + +.content { + padding-top: 15%; + padding-bottom: 15%; + + .sign-up-text { + margin-bottom: 2%; + margin-left: auto; + margin-right: auto; + text-align: center; + font-size: 18px; + color: $sign-up-text-color; + letter-spacing: -0.29px; + text-align: center; + } + .login-form { + margin-left: auto; + margin-right: auto; + display: flex; + background: $background-color; + border: 1px solid $border-color; + flex-direction: column; + max-width: 530px; + min-width: 380px; + min-height: 345px; + padding-left: 25px; + padding-right: 25px; + + .login-text { + font-size: 24px; + font-weight: bold; + color: $login-text; + letter-spacing: -0.23px; + margin-top: 5%; + margin-bottom: 3%; + } + + .control-group { + margin-bottom: 15px !important; + .control { + width: 100% !important; + } + } + + .forgot-password-link { + font-size: 17px; + color: $forgot-password-color; + letter-spacing: -0.11px; + margin-bottom: 5%; + } + .signup-confirm { + letter-spacing: -0.11px; + margin-bottom: 5%; + } + + .btn-primary { + width: 100%; + text-transform: uppercase; + border-radius: 0px; + height: 45px; + margin-bottom: 4%; + } + } +} diff --git a/packages/Webkul/Customer/src/Resources/views/layouts/master.blade.php b/packages/Webkul/Customer/src/Resources/views/layouts/master.blade.php new file mode 100644 index 000000000..7d256aaac --- /dev/null +++ b/packages/Webkul/Customer/src/Resources/views/layouts/master.blade.php @@ -0,0 +1,48 @@ + + + + @yield('page_title') + + + + + + + + @yield('head') + @yield('css') + + + +
+ @include('shop::layouts.header') +
+
+ @yield('content-wrapper') +
+
+ @include('shop::layouts.footer') +
+ + + + + @yield('javascript') + + + + diff --git a/packages/Webkul/Customer/src/Resources/views/login/index.blade.php b/packages/Webkul/Customer/src/Resources/views/login/index.blade.php new file mode 100644 index 000000000..0c3813930 --- /dev/null +++ b/packages/Webkul/Customer/src/Resources/views/login/index.blade.php @@ -0,0 +1,27 @@ +@extends('customer::layouts.master') +@section('content-wrapper') +
+
+ Don't have account - Sign Up +
+
+ +
+
+ +@endsection diff --git a/packages/Webkul/Customer/src/Resources/views/signup/index.blade.php b/packages/Webkul/Customer/src/Resources/views/signup/index.blade.php new file mode 100644 index 000000000..6e1790e9c --- /dev/null +++ b/packages/Webkul/Customer/src/Resources/views/signup/index.blade.php @@ -0,0 +1,44 @@ +@extends('customer::layouts.master') +@section('content-wrapper') +
+
+ Already have an account - Sign In +
+
+ +
+ +
+@endsection diff --git a/packages/Webkul/Customer/webpack.mix.js b/packages/Webkul/Customer/webpack.mix.js index 1e85053fe..2c30c65cd 100644 --- a/packages/Webkul/Customer/webpack.mix.js +++ b/packages/Webkul/Customer/webpack.mix.js @@ -6,18 +6,13 @@ var publicPath = "../../../public/vendor/webkul/customer/assets"; mix.setPublicPath(publicPath).mergeManifest(); mix.disableNotifications(); -mix.js( - [ - __dirname + "/src/Resources/assets/js/app.js" - // __dirname + "/src/Resources/assets/js/dropdown.js" - ], - "js/ui.js" -) - // .copy(__dirname + "/src/Resources/assets/images", publicPath + "/images") - .sass(__dirname + "/src/Resources/assets/sass/app.scss", "css/customer.css") - .options({ - processCssUrls: false - }); + +mix.sass( + __dirname + "/src/Resources/assets/sass/app.scss", + "css/customer.css" +).options({ + processCssUrls: false +}); if (mix.inProduction()) { mix.version(); diff --git a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss index e33481913..58e813235 100644 --- a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss @@ -1,9 +1,13 @@ +@import url("https://fonts.googleapis.com/css?family=Montserrat:400,500"); @import "mixins"; @import "variables"; body { margin: 0; padding: 0; + font-family: "Montserrat", sans-serif; + font-weight: 500; + font-size: 14px; } .header { @@ -18,7 +22,6 @@ body { width: 100%; margin-left: auto; margin-right: auto; - // border: 1px solid indigo; align-items: center; justify-content: space-between; @@ -49,15 +52,9 @@ body { border-right: none; border-top-right-radius: 0px; border-bottom-right-radius: 0px; - } - - input.search-field::-moz-placeholder { - font-family: "montserrat", sans-serif; - padding-left: 10px; - } - input.search-field::-webkit-input-placeholder { - font-family: "montserrat", sans-serif; - padding-left: 10px; + padding-left: 12px; + font-family: "Montserrat", sans-serif; + font-size: 14px; } .q-c { @@ -92,17 +89,18 @@ body { li.account-dropdown { display: flex; flex-direction: row; - margin-right: 10px; + margin-right: 14px; - .icon-account { + .account-icon { margin: 0; - padding-right: 5px; + padding-right: 8px; height: 24px; width: 24px; } .account { padding-top: 3px; padding-right: 5px; + margin-left: 8px; } .icon.arrow-down-icon { margin-top: 10px; @@ -116,13 +114,13 @@ body { li.product-dropdown { display: flex; flex-direction: row; - margin-left: 10px; + margin-left: 14px; - .icon-cart { + .cart-icon { margin: 0; height: 24px; width: 24px; - margin-right: 9px; + margin-right: 8px; } .cart { padding-top: 3px; @@ -397,6 +395,7 @@ body { .btn-primary { background-color: $subscribe-btn-color; + margin-top: 8px; border-radius: 0px; text-align: center; } @@ -1173,14 +1172,3 @@ body { } } } - -// @media all and (max-width: 960px) { - -// } - -// @media all and (max-width: 768px) { - -// } - -// @media all and (max-width: 480px) { -// } diff --git a/packages/Webkul/Shop/src/Resources/views/layouts/header.blade.php b/packages/Webkul/Shop/src/Resources/views/layouts/header.blade.php index dd2ee7d1d..78112fe91 100644 --- a/packages/Webkul/Shop/src/Resources/views/layouts/header.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/layouts/header.blade.php @@ -23,7 +23,7 @@