Merge pull request #54 from bagisto/rahul

Rahul
This commit is contained in:
JItendra Singh 2018-10-15 16:18:49 +05:30 committed by GitHub
commit 0b95681324
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
50 changed files with 1282 additions and 979 deletions

View File

@ -122,23 +122,23 @@ class CustomerDataGrid
'type' => 'string',
'label' => 'Name',
],
[
'name' => 'email',
'alias' => 'customerEmail',
'type' => 'string',
'label' => 'Email',
],
[
'name' => 'phone',
'alias' => 'customerPhone',
'type' => 'number',
'label' => 'Phone',
],
[
'name' => 'email',
'alias' => 'customerEmail',
'type' => 'string',
'label' => 'Comment',
],
[
'name' => 'customer_group_id',
'alias' => 'customerGroupId',
'type' => 'number',
'label' => 'Status',
'type' => 'string',
'label' => 'Customer Group',
],
],

View File

@ -100,7 +100,7 @@ class CustomerReviewDataGrid
],
[
'name' => 'status',
'alias' => 'countryStatus',
'alias' => 'reviewStatus',
'type' => 'number',
'label' => 'Status',
'sortable' => true,
@ -113,7 +113,7 @@ class CustomerReviewDataGrid
'filterable' => [
[
'name' => 'id',
'alias' => 'countryId',
'alias' => 'reviewId',
'type' => 'number',
'label' => 'ID',
],
@ -137,9 +137,9 @@ class CustomerReviewDataGrid
],
[
'name' => 'status',
'alias' => 'countryStatus',
'type' => 'number',
'label' => 'Code',
'alias' => 'reviewStatus',
'type' => 'string',
'label' => 'Status',
],
],

View File

@ -65,6 +65,10 @@ Route::group(['middleware' => ['web']], function () {
'redirect' => 'admin.customer.index'
])->name('admin.customer.update');
Route::get('reviews', 'Webkul\Product\Http\Controllers\ReviewController@index')->defaults('_config',[
'view' => 'admin::customers.review.index'
])->name('admin.customer.review.index');
Route::get('reviews/edit/{id}', 'Webkul\Product\Http\Controllers\ReviewController@edit')->defaults('_config',[
'view' => 'admin::customers.review.edit'
])->name('admin.customer.review.edit');
@ -73,10 +77,6 @@ Route::group(['middleware' => ['web']], function () {
'redirect' => 'admin.customer.review.index'
])->name('admin.customer.review.update');
Route::get('reviews', 'Webkul\Product\Http\Controllers\ReviewController@index')->defaults('_config',[
'view' => 'admin::customers.review.index'
])->name('admin.customer.review.index');
// Sales Routes
Route::prefix('sales')->group(function () {
// Sales Order Routes

View File

@ -405,7 +405,8 @@ return [
'email' => 'Email',
'date_of_birth' => 'Date of Birth',
'phone' => 'Phone',
'customer_group' => 'Customer Group'
'customer_group' => 'Customer Group',
'save-btn-title' => 'Save Customer'
],
'reviews' => [
'title' => 'Title',

View File

@ -15,7 +15,7 @@
<div class="page-action">
<button type="submit" class="btn btn-lg btn-primary">
{{ __('admin::app.account.save-btn-title') }}
{{ __('admin::app.customers.customers.save-btn-title') }}
</button>
</div>
</div>
@ -25,56 +25,52 @@
<div class="form-container">
@csrf()
<accordian :title="'{{ __('admin::app.account.general') }}'" :active="true">
<div slot="body">
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
<label for="first_name" class="required">{{ __('shop::app.customer.signup-form.firstname') }}</label>
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{ old('first_name') }}">
<span class="control-error" v-if="errors.has('first_name')">@{{ errors.first('first_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
<label for="first_name">{{ __('shop::app.customer.signup-form.firstname') }}</label>
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{ old('first_name') }}">
<span class="control-error" v-if="errors.has('first_name')">@{{ errors.first('first_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
<label for="last_name" class="required">{{ __('shop::app.customer.signup-form.lastname') }}</label>
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{ old('last_name') }}">
<span class="control-error" v-if="errors.has('last_name')">@{{ errors.first('last_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
<label for="last_name">{{ __('shop::app.customer.signup-form.lastname') }}</label>
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{ old('last_name') }}">
<span class="control-error" v-if="errors.has('last_name')">@{{ errors.first('last_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email" class="required">{{ __('shop::app.customer.signup-form.email') }}</label>
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{ old('email') }}">
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email">{{ __('shop::app.customer.signup-form.email') }}</label>
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{ old('email') }}">
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
<div class="control-group" :class="[errors.has('gender') ? 'has-error' : '']">
<label for="gender" class="required">{{ __('admin::app.customers.customers.gender') }}</label>
<select name="gender" class="control" v-validate="'gender'">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
<span class="control-error" v-if="errors.has('gender')">@{{ errors.first('gender') }}</span>
</div>
<div class="control-group">
<label for="gender">{{ __('admin::app.customers.customers.gender') }}</label>
<select name="gender" class="control" v-validate="'required'">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
</div>
<div class="control-group">
<label for="dob">{{ __('admin::app.customers.customers.date_of_birth') }}</label>
<input type="date" class="control" name="date_of_birth">
</div>
<div class="control-group">
<label for="dob">{{ __('admin::app.customers.customers.date_of_birth') }}</label>
<input type="date" class="control" name="date_of_birth" v-validate="'required'">
</div>
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
<label for="phone">{{ __('admin::app.customers.customers.phone') }}</label>
<input type="text" class="control" v-validate="'numeric'" name="phone" value="{{ old('phone') }}">
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
</div>
<div class="control-group">
<label for="phone">{{ __('admin::app.customers.customers.phone') }}</label>
<input type="text" class="control" name="phone" v-validate="'required'">
</div>
<div class="control-group">
<label for="name" >{{ __('admin::app.customers.customers.customer_group') }}</label>
<select class="control" name="customer_group_id">
@foreach ($customerGroup as $group)
<option value="{{ $group->id }}"> {{ $group->group_name}} </>
@endforeach
</select>
</div>
</div>
</accordian>
<div class="control-group">
<label for="name" >{{ __('admin::app.customers.customers.customer_group') }}</label>
<select class="control" name="customer_group_id">
@foreach ($customerGroup as $group)
<option value="{{ $group->id }}"> {{ $group->group_name}} </>
@endforeach
</select>
</div>
</div>
</div>

View File

@ -13,7 +13,7 @@
<div class="page-action">
<button type="submit" class="btn btn-lg btn-primary">
{{ __('admin::app.account.save-btn-title') }}
{{ __('admin::app.customers.customers.save-btn-title') }}
</button>
</div>
</div>
@ -28,37 +28,42 @@
<accordian :title="'{{ __('admin::app.account.general') }}'" :active="true">
<div slot="body">
<div class="control-group">
<label for="name" > {{ __('admin::app.customers.customers.first_name') }}</label>
<input type="text" class="control" name="first_name" value="{{$customer->first_name}}"/>
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
<label for="first_name" class="required"> {{ __('admin::app.customers.customers.first_name') }}</label>
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{$customer->first_name}}"/>
<span class="control-error" v-if="errors.has('first_name')">@{{ errors.first('first_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
<label for="last_name" class="required"> {{ __('admin::app.customers.customers.last_name') }}</label>
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{$customer->last_name}}"/>
<span class="control-error" v-if="errors.has('last_name')">@{{ errors.first('last_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email" class="required"> {{ __('admin::app.customers.customers.email') }}</label>
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{$customer->email}}"/>
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
<div class="control-group">
<label for="name" > {{ __('admin::app.customers.customers.last_name') }}</label>
<input type="text" class="control" name="last_name" value="{{$customer->last_name}}"/>
</div>
<div class="control-group">
<label for="name" > {{ __('admin::app.customers.customers.email') }}</label>
<input type="text" class="control" name="email" value="{{$customer->email}}"/>
</div>
<div class="control-group">
<label for="email">{{ __('admin::app.customers.customers.gender') }}</label>
<select name="gender" class="control" value="{{ $customer->gender }}" v-validate="'required'">
<label for="email" class="required">{{ __('admin::app.customers.customers.gender') }}</label>
<select name="gender" class="control" v-validate="'gender'" value="{{ $customer->gender }}" v-validate="'required'">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
<span class="control-error" v-if="errors.has('gender')">@{{ errors.first('gender') }}</span>
</div>
<div class="control-group">
<label for="dob">{{ __('admin::app.customers.customers.date_of_birth') }}</label>
<input type="date" class="control" name="date_of_birth" value="{{ $customer->date_of_birth }}" v-validate="'required'">
<input type="date" class="control" name="date_of_birth" value="{{ $customer->date_of_birth }}">
</div>
<div class="control-group">
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
<label for="phone">{{ __('admin::app.customers.customers.phone') }}</label>
<input type="text" class="control" name="phone" value="{{ $customer->phone }}" v-validate="'required'">
<input type="text" class="control" v-validate="'numeric'" name="phone" value="{{ $customer->phone }}">
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
</div>
<div class="control-group">

View File

@ -43,7 +43,7 @@
</div>
<div class="control-group">
<label for="name" >{{ __('admin::app.customers.reviews.status') }}</label>
<label for="name" class="required">{{ __('admin::app.customers.reviews.status') }}</label>
<select class="control" name="status">
<option value="pending" {{ $review->status == "pending" ? 'selected' : ''}}>
pending

View File

@ -84,11 +84,11 @@ class CustomerController extends Controller
public function store(Request $request)
{
$request->validate([
'first_name' => 'string|required',
'last_name' => 'string|required',
'email' => 'email|required',
'gender' => 'required',
'phone' => 'nullable|numeric',
'email' => 'required|unique:customers,email'
]);
$data=$request->all();
@ -102,7 +102,6 @@ class CustomerController extends Controller
session()->flash('success', 'Customer created successfully.');
return redirect()->route($this->_config['redirect']);
}
/**
@ -129,6 +128,13 @@ class CustomerController extends Controller
*/
public function update(Request $request, $id)
{
$request->validate([
'first_name' => 'string|required',
'last_name' => 'string|required',
'gender' => 'required',
'phone' => 'nullable|numeric',
'email' => 'required|unique:customers,email,'. $id
]);
$this->customer->update(request()->all(),$id);
@ -136,6 +142,4 @@ class CustomerController extends Controller
return redirect()->route($this->_config['redirect']);
}
}

View File

@ -5,6 +5,7 @@ namespace Webkul\Customer\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Webkul\Customer\Repositories\CustomerRepository;
use Webkul\Sales\Repositories\OrderRepository;
use Auth;
/**
@ -25,26 +26,18 @@ class OrdersController extends Controller
*/
protected $_config;
protected $customer;
protected $order;
public function __construct(CustomerRepository $customer)
public function __construct(CustomerRepository $customer ,OrderRepository $order)
{
$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;
$this->order = $order;
}
public function index() {
@ -56,6 +49,13 @@ class OrdersController extends Controller
}
public function orders() {
return view($this->_config['view']);
$id = auth()->guard('customer')->user()->id;
$orders = $this->order->customerOrder($id);
return view($this->_config['view'],compact('orders'));
}
}

View File

@ -5,6 +5,7 @@ namespace Webkul\Customer\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Webkul\Customer\Models\CustomersGroups;
use Webkul\Sales\Models\Order;
// use Webkul\User\Notifications\AdminResetPassword;
@ -37,6 +38,4 @@ class Customer extends Authenticatable
{
return $this->belongsTo(CustomersGroups::class);
}
}

View File

@ -4,7 +4,6 @@ namespace Webkul\Sales\Models;
use Illuminate\Database\Eloquent\Model;
use Webkul\Sales\Contracts\OrderAddress as OrderAddressContract;
use Webkul\Customer\Models\Customer;
class OrderAddress extends Model implements OrderAddressContract
{
@ -19,7 +18,7 @@ class OrderAddress extends Model implements OrderAddressContract
{
return $this->first_name . ' ' . $this->last_name;
}
/**
* Get the customer record associated with the order.
*/

View File

@ -71,7 +71,7 @@ class OrderRepository extends Repository
public function create(array $data)
{
DB::beginTransaction();
try {
Event::fire('checkout.order.save.before', $data);
@ -97,7 +97,7 @@ class OrderRepository extends Repository
$order->payment()->create($data['payment']);
$order->addresses()->create($data['shipping_address']);
$order->addresses()->create($data['billing_address']);
foreach($data['items'] as $item) {
@ -114,7 +114,7 @@ class OrderRepository extends Repository
throw $e;
}
DB::commit();
Event::fire('checkout.order.save.after', $order);
@ -286,4 +286,13 @@ class OrderRepository extends Repository
return $order;
}
/**
* @param int $customerId
* @return void
*/
public function customerOrder($customerId)
{
return $this->model->where('customer_id',$customerId)->get();
}
}

View File

@ -126,6 +126,17 @@ class CartController extends Controller
return redirect()->back();
}
/**
* Add the configurable product
* to the cart.
*
* @return response
*/
public function addconfigurable($slug) {
session()->flash('warning', trans('shop::app.checkout.cart.add-config-warning'));
return redirect()->route('shop.products.index', $slug);
}
public function test() {
$result = Cart::isConfigurable(9);
}

View File

@ -16,6 +16,8 @@ Route::group(['middleware' => ['web']], function () {
Route::post('checkout/cart/add/{id}', 'Webkul\Shop\Http\Controllers\CartController@add')->name('cart.add');
Route::get('checkout/cart/addconfigurable/{slug}', 'Webkul\Shop\Http\Controllers\CartController@addconfigurable')->name('cart.add.configurable');
Route::get('checkout/cart/remove/{id}', 'Webkul\Shop\Http\Controllers\CartController@remove')->name('cart.remove');
Route::post('/checkout/cart', 'Webkul\Shop\Http\Controllers\CartController@updateBeforeCheckout')->defaults('_config',[
@ -176,7 +178,7 @@ Route::group(['middleware' => ['web']], function () {
/* Reviews route */
Route::get('reviews', 'Webkul\Customer\Http\Controllers\CustomerController@reviews')->defaults('_config', [
'view' => 'shop::customers.account.reviews.reviews'
'view' => 'shop::customers.account.reviews.index'
])->name('customer.reviews.index');
});
});

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 50.2 (55047) - http://www.bohemiancoding.com/sketch -->
<title>Expand-Light-On</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Expand-Light-On" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(2.000000, 6.000000)" fill="#8E8E8E" id="Path-2">
<polygon points="0 0 13.3424655 0 6.67123275 7.3125"></polygon>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 635 B

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 50.2 (55047) - http://www.bohemiancoding.com/sketch -->
<title>Expand-Light</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Expand-Light" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(9.000000, 9.000000) rotate(-90.000000) translate(-9.000000, -9.000000) translate(2.000000, 5.000000)" fill="#3A3A3A" id="Path-2">
<polygon points="0 0 13.3424655 0 6.67123275 7.3125"></polygon>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 710 B

View File

@ -1,10 +1,11 @@
<template>
<li>
<a :href="url+'/categories/'+this.item['translations'][0].slug">{{ this.item['translations'][0].name }}&emsp;<i class="icon dropdown-right-icon"
v-if="haveChildren && item.parent_id != null"></i></a>
<i :class="[show ? 'icon arrow-down-icon mt-15' : 'icon dropdown-right-icon mt-15']"
v-if="haveChildren || item.parent_id == null" @click="showOrHide"></i>
v-if="haveChildren" @click="showOrHide"></i>
<ul v-if="haveChildren && show">
<category-item
@ -29,19 +30,16 @@ export default {
show: false,
};
},
mounted: function() {
if(window.innerWidth > 770){
this.show = true;
}
},
computed: {
haveChildren() {
return this.item.children.length ? true : false;
}
},
methods: {
showOrHide: function() {
this.show = !this.show;

View File

@ -2,15 +2,13 @@
//shop variables
$font-color: #242424;
$border-color: #E8E8E8;
$font-size-base: 16px;
$border-color: #E8E8E8;
$brand-color: #0041FF;
//shop variables ends here
//=======>Need to be removed
//customer variables
$profile-content-color: #5e5e5e;
$horizontal-rule-color: #E8E8E8;
//customer variables ends here
//<=======Need to be removed
$border-color1: #C7C7C7;
$brand-color: #0031F0;
$font-color-light: #A5A5A5;
$link-color: #2650EF;
$background-color: #F2F2F2;
$dark-background: #121212;
$disc-price: #FF6472;
$disc-price-pro: #A5A5A5;
$other-font-color: #5E5E5E;
//shop variables ends here

View File

@ -162,7 +162,7 @@ section.slider-block {
.dark-left-icon {
background-color: #f2f2f2;
background-color: $background-color;
height: 48px;
width: 48px;
max-height: 100%;
@ -170,7 +170,7 @@ section.slider-block {
}
.light-right-icon {
background-color: #000;
background-color: $font-color;
height: 48px;
width: 48px;
max-height: 100%;
@ -348,7 +348,7 @@ section.slider-block {
overflow-y: auto;
.dropdown-cart {
color: #242424;
color: $font-color;
}
.dropdown-cart > .dropdown-header {
width: 100%;
@ -378,7 +378,7 @@ section.slider-block {
.dropdown-content .item{
display: flex;
flex-direction: row;
border-bottom: 1px solid #E8E8E8;
border-bottom: 1px solid $border-color;
padding-top: 8px;
padding-bottom: 8px;
}
@ -466,7 +466,7 @@ section.slider-block {
.nav ul {
margin: 0;
padding:0;
border: 1px solid #B1B1B1;
border: 1px solid $border-color;
box-shadow: 1px 1px 1px 0 rgba(0,0,0,0.40);
}
@ -476,10 +476,14 @@ section.slider-block {
text-decoration: none;
padding: 0.8em 0.3em 0.8em 0.5em;
text-transform: uppercase;
letter-spacing: 2px;
letter-spacing: -0.38px;
position: relative;
}
.nav a:first-child{
margin-left: 20px;
}
.nav li > .icon{
display: none;
}
@ -497,7 +501,6 @@ section.slider-block {
.nav > li {
float: left;
margin-right: 1px;
}
.nav > li > a {
@ -537,22 +540,30 @@ section.slider-block {
right:5px;
}
/* submenu positioning*/
/* submenu positioning */
.nav ul {
position: absolute;
white-space: nowrap;
border: 1px solid #B1B1B1;
border: 1px solid $border-color;
background-color:white;
z-index: 1;
left: -99999em;
}
.nav > li:hover {
background-color: $background-color;
}
.nav > li:hover > ul {
left: auto;
min-width: 100%;
}
.nav > li li:hover {
background-color: $background-color;
}
.nav > li li:hover > ul {
left: 100%;
margin-left: 1px;
@ -576,7 +587,7 @@ section.slider-block {
display: none;
.search-content {
border-bottom: 1px solid #e8e8e8;
border-bottom: 1px solid $border-color;
height: 48px;
.search {
@ -599,7 +610,7 @@ section.slider-block {
}
.search-content:first-child {
border-top: 1px solid #e8e8e8;
border-top: 1px solid $border-color;
}
}
@ -641,8 +652,6 @@ section.slider-block {
padding: 12px 4.8px 12px 8px;
text-transform: uppercase;
letter-spacing: 2px;
position: relative;
width: 90%;
}
.nav li > .icon{
@ -653,11 +662,11 @@ section.slider-block {
display: none;
}
.nav > li {
.nav > li {
border-bottom: 1px solid $border-color;
}
.nav li:first-child {
.nav li:first-child {
border-top: 1px solid $border-color;
}
@ -675,7 +684,7 @@ section.slider-block {
//footer responsive with out media query.
.footer {
background-color: #f2f2f2;
background-color: $background-color;
padding-left: 10%;
padding-right: 10%;
@ -692,7 +701,7 @@ section.slider-block {
.list-container {
.list-heading {
letter-spacing: -0.26px;
text-transform: uppercase;
color: rgba(165, 165, 165, 1);
}
@ -739,7 +748,7 @@ section.slider-block {
}
.btn-primary {
background-color: #000;
background-color: $font-color;
margin-top: 8px;
border-radius: 0px;
text-align: center;
@ -802,8 +811,8 @@ section.slider-block {
}
select {
background: #FFFFFF;
border: 1px solid #C7C7C7;
background: $background-color;
border: 1px solid $border-color;
border-radius: 3px;
color: $font-color;
padding: 10px;
@ -854,220 +863,6 @@ section.slider-block {
}
}
//customers page css goes here
.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: #5e5e5e;
letter-spacing: -0.29px;
text-align: center;
}
.login-form {
margin-left: auto;
margin-right: auto;
display: flex;
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: #3a3a3a;
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: $brand-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%;
}
}
}
//customer pages styles goes here
//account layout
.account-content {
width: 100%;
display: flex;
flex-direction: row;
margin-top: 5.5%;
margin-bottom: 5.5%;
.account-side-menu {
display: flex;
flex-direction: column;
align-content: center;
justify-content: flex-start;
border: 1px solid $border-color;
width: 25%;
height: 100%;
text-transform: capitalize;
color: #5e5e5e;
li {
width: 95%;
height: 50px;
margin-left: 5%;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
border-bottom: 1px solid $border-color;
text-align: center;
}
li:first-child {
border-top: none;
}
li:last-child {
border-bottom: none;
}
li.active {
color: $brand-color;
}
}
.profile {
margin-left: 5.5%;
margin-top: 1%;
width: 100%;
.section-head {
.profile-heading {
font-size: 28px;
color: $font-color;
text-transform: capitalize;
text-align: left;
}
.profile-edit {
font-size: 17px;
margin-top: 1%;
color: $brand-color;
letter-spacing: -0.11px;
float: right;
}
.horizontal-rule {
margin-top: 1.1%;
width: 100%;
height: 1px;
vertical-align: middle;
background: $border-color;
}
}
}
.profile-content {
color: $profile-content-color;
margin-top: 1.4%;
table {
tbody {
tr {
height: 45px;
td {
width: 250px;
text-transform: capitalize;
}
}
}
}
}
//edit form
.edit-form-content {
margin-left: 5.5%;
margin-top: 1%;
width: 100%;
.section-head {
.profile-heading {
font-size: 28px;
color: $font-color;
text-transform: capitalize;
text-align: left;
}
.profile-edit {
font-size: 17px;
margin-top: 1%;
color: $brand-color;
letter-spacing: -0.11px;
float: right;
}
.horizontal-rule {
margin-top: 1.1%;
width: 100%;
height: 1px;
vertical-align: middle;
background: $border-color;
}
}
.edit-text {
margin-bottom: 2%;
margin-left: auto;
margin-right: auto;
font-size: 24px;
}
.edit-form {
display: flex;
border: 1px solid $border-color;
flex-direction: column;
min-height: 345px;
padding: 25px;
}
}
//edit form ends
}
//account ends here
//customers page css ends here
// product pages css starts here
section.product-detail {
color: $font-color;
@ -1094,8 +889,8 @@ section.product-detail {
max-width: 604px;
.loader {
border: 16px solid #f3f3f3;
border-top: 16px solid #3498db;
border: 16px solid $border-color;
border-top: 16px solid $brand-color;
border-radius: 50%;
width: 50px;
height: 50px;
@ -1126,12 +921,12 @@ section.product-detail {
.thumb-frame {
border: 2px solid transparent;
background: #F2F2F2;
background: $background-color;
width: 120px;
max-height: 120px;
&.active {
border-color: #979797;
border-color: $border-color1;
}
img {
@ -1149,7 +944,7 @@ section.product-detail {
.overlay {
opacity: 0.3;
background: #000000;
background: $font-color;
width: 100%;
height: 18px;
position: absolute;
@ -1174,7 +969,7 @@ section.product-detail {
.product-hero-image {
display: block;
position: relative;
background: #F2F2F2;
background: $background-color;
width: 100%;
max-height: 480px;
height: 100%;
@ -1270,7 +1065,7 @@ section.product-detail {
.full-specifications {
td {
padding: 10px 0;
color: #5E5E5E;
color: $font-color-light;
&:first-child {
padding-right: 40px;
@ -1421,7 +1216,7 @@ section.product-detail {
}
.reviewer-details {
color: #5E5E5E;
color: $font-color-light;
}
}
@ -1500,6 +1295,10 @@ section.cart {
font-size: 18px;
margin-bottom: 10px;
font-weight: 600;
a {
color: $font-color;
}
}
.price {
@ -1518,7 +1317,7 @@ section.cart {
justify-content: flex-start;
div.qty-text {
color: #5E5E5E;
color: $font-color-light;
margin-right: 10px;
}
@ -1645,10 +1444,10 @@ section.cart {
}
&.active {
color: #2650EF;
color: $link-color;
.decorator {
border: 1px solid #2650EF;
border: 1px solid $link-color;
}
}
}
@ -1706,14 +1505,14 @@ section.cart {
.card-content {
margin-top: 15px;
color: #121212;
color: $font-color;
line-height: 25px;
.horizontal-rule {
margin: 12px 0;
display: block;
width: 25px;
background: #121212;
background: $dark-background;
}
}
}
@ -1725,7 +1524,7 @@ section.cart {
.title {
width: 100px;
display: inline-block;
color: #5E5E5E;
color: $font-color-light;
font-weight: 500;
margin-bottom: 10px;
}
@ -1841,7 +1640,7 @@ section.cart {
.horizontal-rule {
height: 1px;
background: $horizontal-rule-color;
background: $border-color;
width: 148px;
margin-bottom: 24px;
margin-left:auto;
@ -1878,7 +1677,7 @@ section.review {
span {
font-size: 24px;
letter-spacing: -0.58px;
}
}
@ -1887,19 +1686,19 @@ section.review {
.pro-price {
font-size: 24px;
color: #FF6472;
letter-spacing: -0.58px;
color: $disc-price;
}
.pro-price-not {
margin-left: 10px;
color: #A5A5A5;
letter-spacing: -0.26px;
color: $disc-price-pro;
}
.offer {
margin-left: 10px;
letter-spacing: -0.26px;
}
}
}
@ -1912,7 +1711,7 @@ section.review {
margin-top: 10px;
span {
letter-spacing: -0.26px;
}
.btn.btn-primary.right {
@ -1923,8 +1722,8 @@ section.review {
.rating {
margin-top : 25px;
color: #5E5E5E;
letter-spacing: -0.12px;
color: $font-color-light;
span {
display: inline;
@ -1956,7 +1755,7 @@ section.review {
textarea {
margin-top: 5px;
border: 2px solid #C7C7C7;
border: 2px solid $border-color;
border-radius: 3px;
width: 600px;
height: 120px;
@ -1970,8 +1769,8 @@ section.review {
button {
background: $brand-color;
font-size: 14px;
color: #FFFFFF;
letter-spacing: -0.26px;
color: $background-color;
text-align: center;
width: 120px;
height: 38px;
@ -1995,7 +1794,7 @@ section.review {
span {
font-size: 34px;
letter-spacing: -0.82px;
text-align: center;
}
}
@ -2014,54 +1813,148 @@ section.review {
}
// review page end here
// customer section css start here
.cusomer-section {
margin-left: 50px;
width:100%;
.customer-section-info {
display: flex;
flex-direction: row;
border-top: 1px solid $border-color;
//customers auth page css goes here
.auth-content {
padding-top: 15%;
padding-bottom: 15%;
.pro-img {
margin-top: 10px;
margin-bottom: 5px;
.sign-up-text {
margin-bottom: 2%;
margin-left: auto;
margin-right: auto;
text-align: center;
font-size: 18px;
color: $font-color-light;
img {
height: 125px;
width: 100px;
}
}
.pro-discription {
margin-left: 20px;
width: 100%;
.title {
color: $brand-color;
margin-top: 15px;
}
.rating {
margin-top: 10px;
.icon {
height: 16px;
width: 16px;
}
}
.discription {
margin-top: 15px;
}
}
text-align: center;
}
.customer-section-info:last-child {
border-bottom: 1px solid $border-color;
.login-form {
margin-left: auto;
margin-right: auto;
display: flex;
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: $font-color;
margin-top: 5%;
margin-bottom: 3%;
}
.control-group {
margin-bottom: 15px !important;
.control {
width: 100% !important;
}
}
.forgot-password-link {
font-size: 17px;
color: $brand-color;
margin-bottom: 5%;
}
.signup-confirm {
margin-bottom: 5%;
}
.btn-primary {
width: 100%;
text-transform: uppercase;
border-radius: 0px;
height: 45px;
margin-bottom: 4%;
}
}
}
// customer section css end here
//customer account pages layouts
.account-content {
width: 100%;
display: flex;
flex-direction: row;
margin-top: 5.5%;
margin-bottom: 5.5%;
.account-side-menu {
display: flex;
flex-direction: column;
align-content: center;
justify-content: flex-start;
border: 1px solid $border-color;
width: 25%;
height: 100%;
text-transform: capitalize;
color: $font-color-light;
li {
width: 95%;
height: 50px;
margin-left: 5%;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
border-bottom: 1px solid $border-color;
text-align: center;
}
li:first-child {
border-top: none;
}
li:last-child {
border-bottom: none;
}
li.active {
color: $brand-color;
}
}
//customer account pages content
.account-layout {
margin-left: 5.5%;
margin-top: 1%;
width: 100%;
}
}
//Account content inside a table
.account-table-content {
color: $font-color;
margin-top: 1.4%;
table {
tbody {
tr {
height: 45px;
td {
width: 250px;
text-transform: capitalize;
}
}
}
}
}
.edit-form {
display: flex;
border: 1px solid $border-color;
flex-direction: column;
min-height: 345px;
padding: 25px;
}

View File

@ -1,15 +1,15 @@
// product card, requires no changes for responsiveness.
.product-grid-4 {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
grid-column-gap: 40px;
grid-row-gap: 15px;
grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
grid-auto-rows: auto;
grid-column-gap: 48px;
grid-row-gap: 15px;
}
.product-grid-3 {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
grid-gap: 27px;
grid-auto-rows: auto;
}
@ -102,46 +102,6 @@
}
}
//wishlist item
.wishlist-item {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
width: 100%;
height: 125px;
.media-info {
display: flex;
flex-direction: row;
.media {
height: 125px;
width: 100px;
}
.info {
display: block;
margin-left: 20px;
}
}
.operations {
height: 120px;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
a {
width: 100%;
span {
float: right;
}
}
}
}
//product page price styles
.product-price {
margin-bottom: 14px;
@ -170,3 +130,75 @@
height: 1px;
background: $border-color;
}
//Customer account section header
.account-head {
.account-heading {
font-size: 28px;
color: $font-color;
text-transform: capitalize;
text-align: left;
}
.account-edit {
font-size: 17px;
margin-top: 1%;
color: $brand-color;
float: right;
}
.horizontal-rule {
margin-top: 1.1%;
width: 100%;
height: 1px;
vertical-align: middle;
background: $border-color;
}
}
//denotes the item card that are used in account pages
.account-item-card {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
width: 100%;
height: 125px;
.media-info {
display: flex;
flex-direction: row;
.media {
height: 125px;
width: 125px;
}
.info {
display: block;
margin-left: 20px;
}
}
.operations {
height: 120px;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
a {
width: 100%;
span {
float: right;
}
}
}
}
//Account items list
.account-items-list {
display: block;
width: 100%;
}

View File

@ -55,6 +55,18 @@
height: 24px;
}
.icon-menu {
background-image:URL('../images/icon-menu.svg');
width: 24px;
height: 24px;
}
.icon-search {
background-image:URL('../images/icon-search.svg');
width: 24px;
height: 24px;
}
.icon-menu-back {
background-image:URL('../images/icon-menu-back.svg');
width: 24px;
@ -83,4 +95,28 @@
background-image: url('../images/wishlist.svg');
width: 32px;
height: 32px;
}
.icon-arrow-up {
background-image: url('../images/arrow-up.svg');
width: 16px;
height: 16px;
}
.icon-arrow-down {
background-image: url('../images/arrow-down.svg');
width: 16px;
height: 16px;
}
.expand-icon {
background-image: url("../images/Expand-Light.svg");
width: 18px;
height: 18px;
}
.expand-on-icon {
background-image: url("../images/Expand-Light-On.svg");
width: 18px;
height: 18px;
}

View File

@ -5,7 +5,7 @@ body {
max-width: 100%;
width: auto;
color: $font-color;
font-size: $font-size-base;
font-size: 16px;
}
* {

View File

@ -109,6 +109,24 @@ return [
'title' => 'Edit Address',
'submit' => 'Edit Address'
]
],
'order' => [
'index' => [
'page-title' => 'Customer-Order',
'title' => 'Orders',
'order_id' => 'Order ID',
'date' => 'Date',
'status' => 'Status',
'item' => 'Item',
'total' => 'total'
]
],
'review' => [
'index' => [
'title' => 'Reviews'
]
]
]
],
@ -147,8 +165,8 @@ return [
'integrity' => [
'missing_fields' =>'Cart System Integrity Violation, Some Required Fields Missing',
'missing_options' =>'Cart System Integrity Violation, Configurable product\'s options are missing',
],
'title' => 'Shopping Cart',
'empty' => 'Shopping Cart Is Empty',
'continue-shopping' => 'Continue Shopping',
@ -156,6 +174,7 @@ return [
'remove' => 'Remove',
'remove-link' => 'Remove',
'move-to-wishlist' => 'Move to Wishlist',
'add-config-warning' => 'Please Select Option Before Adding To Cart',
'quantity' => [
'quantity' => 'Quantity',
'success' => 'Quantity successfully updated',

View File

@ -57,7 +57,7 @@
<div class="misc">
<div class="qty-text" :class="[errors.has('qty') ? 'has-error' : '']">{{ __('shop::app.checkout.cart.quantity.quantity') }}</div>
<input class="box" type="text" v-validate="'required|numeric|min_value:1'" name="qty[{{$item->id}}]" value="{{ $item->quantity }}">
<input class="box" type="text" class="control" v-validate="'required|numeric|min_value:1'" name="qty[{{$item->id}}]" value="{{ $item->quantity }}">
<span class="control-error" v-if="errors.has('qty[{{$item->id}}]')">@{{ errors.first('qty') }}</span>

View File

@ -10,13 +10,13 @@
@include('shop::customers.account.partials.sidemenu')
<div class="profile">
<div class="account-layout">
<div class="section-head">
<span class="profile-heading">{{ __('shop::app.customer.account.address.index.title') }}</span>
<div class="account-head">
<span class="account-heading">{{ __('shop::app.customer.account.address.index.title') }}</span>
@if(!$address->isEmpty())
<span class="profile-edit">
<span class="account-edit">
<a href="{{ route('customer.address.edit') }}">
{{ __('shop::app.customer.account.address.index.edit') }}
</a>
@ -25,7 +25,7 @@
<div class="horizontal-rule"></div>
</div>
<div class="profile-content">
<div class="account-table-content">
@if($address->isEmpty())
<div>{{ __('shop::app.customer.account.address.index.empty') }}</div>
<br/>

View File

@ -6,13 +6,13 @@
<div class="account-content">
@include('shop::customers.account.partials.sidemenu')
<div class="edit-form-content">
<div class="section-head mb-10">
<div class="profile-heading">{{ __('shop::app.customer.account.address.create.title') }}</div>
<div class="account-layout">
<div class="account-head mb-10">
<div class="account-heading">{{ __('shop::app.customer.account.address.create.title') }}</div>
</div>
<form method="post" action="{{ route('customer.address.create') }}" @submit.prevent="onSubmit">
<div class="edit-form">
<div class="account-table-content">
@csrf
<div class="control-group" :class="[errors.has('address1') ? 'has-error' : '']">

View File

@ -6,15 +6,15 @@
<div class="account-content">
@include('shop::customers.account.partials.sidemenu')
<div class="edit-form-content">
<div class="account-layout">
<div class="section-head mb-10">
<div class="profile-heading">{{ __('shop::app.customer.account.address.edit.title') }}</div>
<div class="account-head mb-10">
<div class="account-heading">{{ __('shop::app.customer.account.address.edit.title') }}</div>
</div>
<form method="post" action="{{ route('customer.address.edit') }}">
<div class="edit-form">
<div class="account-table-content">
@csrf
<div class="control-group" :class="[errors.has('address1') ? 'has-error' : '']">

View File

@ -4,4 +4,4 @@
@include('shop::customers.account.partials.sidemenu')
<h1>Account Index Page</h1>
</div>
@endsection
@endsection

View File

@ -1 +1,53 @@
<h1>Customer past orders page</h1>
@extends('shop::layouts.master')
@section('page_title')
{{ __('shop::app.customer.account.order.index.page-title') }}
@endsection
@section('content-wrapper')
<div class="account-content">
@include('shop::customers.account.partials.sidemenu')
<div class="account-layout">
<div class="account-head">
<span class="account-heading">{{ __('shop::app.customer.account.order.index.title') }}</span>
<div class="horizontal-rule"></div>
</div>
<div class="account-items-list">
<div class="table">
<table>
<thead>
<tr>
<th> {{ __('shop::app.customer.account.order.index.order_id') }}</th>
<th> {{ __('shop::app.customer.account.order.index.date') }} </th>
<th> {{ __('shop::app.customer.account.order.index.status')}} </th>
<th> {{ __('shop::app.customer.account.order.index.item') }} </th>
<th> {{ __('shop::app.customer.account.order.index.total') }} </th>
</tr>
</thead>
<tbody>
@foreach($orders as $order)
<tr>
<td>{{ $order->id }}</td>
<td></td>
<td>Shipped (2)</td>
<td>2</td>
<td>$35.00</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@endsection

View File

@ -1,3 +1,8 @@
{{-- <div class="side-menu-title mb-20" id="side-menu-title">
<strong>Menu</strong>
<i class="icon icon-arrow-down right" id="down-icon"></i>
</div> --}}
<ul class="account-side-menu">
@foreach($menu->items as $key=>$value)
@ -5,3 +10,38 @@
@endforeach
</ul>
@push('scripts')
<script>
$(document).ready(function(){
var sideMenuTitle = document.getElementById("side-menu-title");
var downIcon = document.getElementById("down-icon");
var accountSideMenu = document.getElementsByClassName("account-side-menu");
sideMenuTitle.addEventListener("click", function(){
if(downIcon.className == 'icon icon-arrow-down right'){
for(let i=0 ; i < accountSideMenu.length ; i++){
accountSideMenu[i].style.display="block";
}
downIcon.classList.remove("icon","icon-arrow-down","right");
downIcon.classList.add("icon","icon-arrow-up","right");
}else{
for(let i=0 ; i < accountSideMenu.length ; i++){
accountSideMenu[i].style.display="none";
}
downIcon.classList.remove("icon","icon-arrow-up","right");
downIcon.classList.add("icon","icon-arrow-down","right");
}
});
});
</script>
@endpush

View File

@ -9,10 +9,10 @@
@include('shop::customers.account.partials.sidemenu')
<div class="edit-form-content">
<div class="account-layout">
<div class="section-head mb-10">
<div class="profile-heading">{{ __('shop::app.customer.account.profile.edit-profile.title') }}</div>
<div class="account-head mb-10">
<div class="account-heading">{{ __('shop::app.customer.account.profile.edit-profile.title') }}</div>
</div>
<form method="post" action="{{ route('customer.profile.edit') }}">

View File

@ -1,6 +1,6 @@
@extends('shop::layouts.master')
@section('page_title')
{{ __('shop::app.customer.account.profile.index.page-title') }}
{{ __('shop::app.order.page-title') }}
@endsection
@section('content-wrapper')
@ -8,15 +8,22 @@
@include('shop::customers.account.partials.sidemenu')
<div class="account-lauyout = profile">
<div class="account-layout">
<div class="account-head">
{{-- <span class="back-icon"><a href="{{ route('customer.account.index') }}"><i class="icon icon-menu-back"></i></a></span> --}}
<span class="account-heading">{{ __('shop::app.customer.account.profile.index.title') }}</span>
<span class="account-edit">
<a href="{{ route('customer.profile.edit') }}">{{ __('shop::app.customer.account.profile.index.edit') }}</a>
</span>
<div class="section-head">
<span class="profile-heading">{{ __('shop::app.customer.account.profile.index.title') }}</span>
<span class="profile-edit"><a href="{{ route('customer.profile.edit') }}">{{ __('shop::app.customer.account.profile.index.edit') }}</a></span>
<div class="horizontal-rule"></div>
</div>
<div class="profile-content">
<div class="account-table-content">
<table>
<tbody>
<tr>
@ -50,10 +57,7 @@
</tr>
</tbody>
</table>
</div>
</div>
</div>
@endsection

View File

@ -0,0 +1,55 @@
@inject ('productImageHelper', 'Webkul\Product\Product\ProductImage')
@extends('shop::layouts.master')
@section('content-wrapper')
<div class="account-content">
@include('shop::customers.account.partials.sidemenu')
<div class="account-layout">
<div class="account-head">
<span class="account-heading">{{ __('shop::app.customer.account.review.index.title') }}</span>
<div class="horizontal-rule"></div>
</div>
<div class="account-items-list">
@if(is_null($reviews))
@foreach($reviews as $review)
<div class="account-item-card mt-15 mb-15">
<div class="media-info">
<?php $image = $productImageHelper->getGalleryImages($review->product); ?>
<img class="media" src="{{ $image[0]['small_image_url'] }}" />
<div class="info mt-20">
<div class="product-name">{{$review->product->name}}</div>
<div>
@for($i=0 ; $i < $review->rating ; $i++)
<span class="icon star-icon"></span>
@endfor
</div>
<div>
{{ $review->comment }}
</div>
</div>
</div>
<div class="operations">
</div>
</div>
<div class="horizontal-rule mb-10 mt-10"></div>
@endforeach
@else
<div class="empty">
{{-- {{ __('customer::app.wishlist.empty') }} --}}
</div>
@endif
</div>
</div>
</div>
@endsection

View File

@ -5,40 +5,61 @@
<div class="account-content">
@include('shop::customers.account.partials.sidemenu')
<div class="cusomer-section">
<h1> Reviews</h1>
@foreach($reviews as $review)
<div class="customer-section-info">
<?php $images = $productImageHelper->getGalleryImages($review->product); ?>
<div class="pro-img">
<img src="{{ $images[0]['small_image_url'] }}" />
</div>
<div class="pro-discription">
<div class="title">
{{ $review->product->name }}
</div>
<div class="rating">
@for($i=0 ; $i < $review->rating ; $i++)
<span class="icon star-icon"></span>
@endfor
</div>
<div class="discription">
{{ $review->comment }}
</div>
</div>
<div class="account-layout">
<div class="account-head">
<span class="account-heading">Reviews</span>
<div class="horizontal-rule"></div>
</div>
@endforeach
<div class="account-items-list">
{{-- <div class="account-item-card mt-15 mb-15">
<div class="media-info">
@php
$image = $productImageHelper->getProductBaseImage($item);
@endphp
<img class="media" src="{{ $image['small_image_url'] }}" />
<div class="info mt-20">
<div class="product-name">{{$item->name}}</div>
</div>
</div>
<div class="operations">
<a class="mb-50" href="{{ route('customer.wishlist.remove', $item->id) }}"><span class="icon trash-icon"></span></a>
<button class="btn btn-primary btn-md">Move To Cart</button>
</div>
</div> --}}
@foreach($reviews as $review)
<div class="account-item-card mt-15 mb-15">
<div class="media-info">
<?php $image = $productImageHelper->getGalleryImages($review->product); ?>
<img class="media" src="{{ $image[0]['small_image_url'] }}" />
<div class="info mt-20">
<div class="product-name">{{$review->product->name}}</div>
<div>
@for($i=0 ; $i < $review->rating ; $i++)
<span class="icon star-icon"></span>
@endfor
</div>
<div>
{{ $review->comment }}
</div>
</div>
</div>
<div class="operations">
</div>
</div>
<div class="horizontal-rule mb-10 mt-10"></div>
@endforeach
</div>
</div>
</div>
@endsection

View File

@ -7,13 +7,13 @@
@include('shop::customers.account.partials.sidemenu')
<div class="profile">
<div class="account-layout">
<div class="section-head">
<span class="profile-heading">{{ __('shop::app.wishlist.title') }}</span>
<div class="account-head">
<span class="account-heading">{{ __('shop::app.wishlist.title') }}</span>
@if(count($items))
<div class="profile-edit">
<div class="account-edit">
<a href="" style="margin-right: 15px;">{{ __('shop::app.wishlist.deleteall') }}</a>
<a href="">{{ __('shop::app.wishlist.moveall') }}</a>
</div>
@ -21,11 +21,11 @@
<div class="horizontal-rule"></div>
</div>
<div class="profile-content">
<div class="account-items-list">
@if(count($items))
@foreach($items as $item)
<div class="wishlist-item mb-10">
<div class="account-item-card mt-15 mb-15">
<div class="media-info">
@php
$image = $productImageHelper->getProductBaseImage($item);

View File

@ -4,7 +4,7 @@
@endsection
@section('content-wrapper')
<div class="content">
<div class="auth-content">
<div class="sign-up-text">
{{ __('shop::app.customer.login-text.no_account') }} - <a href="{{ route('customer.register.index') }}">{{ __('shop::app.customer.login-form.title') }}</a>

View File

@ -4,7 +4,7 @@
@endsection
@section('content-wrapper')
<div class="content">
<div class="auth-content">
<form method="post" action="{{ route('customer.forgot-password.store') }}">

View File

@ -4,7 +4,7 @@
@endsection
@section('content-wrapper')
<div class="content">
<div class="auth-content">
<div class="sign-up-text">
{{ __('shop::app.customer.signup-text.account_exists') }} - <a href="{{ route('customer.session.index') }}">{{ __('shop::app.customer.signup-text.title') }}</a>

View File

@ -2,7 +2,7 @@
@section('content-wrapper')
<div class="content">
<div class="auth-content">
<form method="post" action="{{ route('customer.reset-password.store') }}" >

View File

@ -1,3 +1,4 @@
<div class="header" id="header">
<div class="header-top">
<div class="left-content">
@ -13,7 +14,7 @@
<li class="search-group">
<input type="search" class="search-field" placeholder="Search for products">
<div class="search-icon-wrapper">
<span class="icon search-icon"></span>
<span class="icon icon-search"></span>
</div>
</li>
</ul>
@ -168,7 +169,7 @@
</ul>
<ul class="right-responsive">
<li class="search-box"><span class="icon search-icon" id="search"></span></li>
<li class="search-box"><span class="icon icon-search" id="search"></span></li>
<ul class="resp-account-dropdown-container">
<li class="account-dropdown">
@ -234,7 +235,7 @@
@endif
</li>
</ul>
<li class="menu-box" ><span class="icon sortable-icon" id="hammenu"></span></li>
<li class="menu-box" ><span class="icon icon-menu" id="hammenu"></span></li>
</ul>
</div>
</div>
@ -245,17 +246,95 @@
<div class="search-responsive">
<div class="search-content">
<i class="icon search-icon mt-10"></i>
<i class="icon icon-search mt-10"></i>
<input class="search mt-5">
<i class="icon icon-menu-back right mt-10"></i>
</div>
<div class="search-content">
<i class="icon search-icon mt-10"></i>
<i class="icon icon-search mt-10"></i>
<span class="suggestion mt-15">Designer sarees</span>
</div>
</div>
<div class="responsive-nav-menu">
<div class="responsive-nav">
<category-nav categories='@json($categories)' url="{{url()->to('/')}}"></category-nav>
</div>
</div>
</div>
@push('scripts')
<script>
window.onload = function() {
var hamMenu = document.getElementById("hammenu");
var search = document.getElementById("search");
var searchResponsive = document.getElementsByClassName('search-responsive')[0];
var sortLimit = document.getElementsByClassName('reponsive-sorter-limiter')[0];
var layerFilter = document.getElementsByClassName('responsive-layred-filter')[0];
var navResponsive = document.getElementsByClassName('responsive-nav')[0];
var thumbList = document.getElementsByClassName('thumb-list')[0];
var thumbFrame = document.getElementsByClassName('thumb-frame');
var productHeroImage = document.getElementsByClassName('product-hero-image')[0];
search.addEventListener("click", header);
hamMenu.addEventListener("click", header);
// activate on window resize
window.addEventListener('resize', function(){
if(window.innerWidth > 720){
searchResponsive.style.display = 'none';
navResponsive.style.display = 'none';
if(layerFilter && sortLimit){
layerFilter.style.display ="none";
sortLimit.style.display ="none";
}
}
if(window.innerWidth < 1313 && window.innerWidth > 720){
if(thumbList){
thumbList.style.maxHeight = productHeroImage.offsetHeight + "px";
for(let i=0 ; i < thumbFrame.length ; i++){
thumbFrame[i].style.height = (productHeroImage.offsetHeight/4) + "px";
}
}
}else {
for(let i=0 ; i < thumbFrame.length ; i++){
thumbFrame[i].style.height = 120 + "px";
}
}
});
// for header responsive icon
function header(){
var className = document.getElementById(this.id).className;
if(className === 'icon icon-search' ){
search.classList.remove("icon-search");
search.classList.add("icon-menu-close");
hamMenu.classList.remove("icon-menu-close");
hamMenu.classList.add("icon-menu");
searchResponsive.style.display = 'block';
navResponsive.style.display = 'none';
}else if(className === 'icon icon-menu'){
hamMenu.classList.remove("icon-menu");
hamMenu.classList.add("icon-menu-close");
search.classList.remove("icon-menu-close");
search.classList.add("icon-search");
searchResponsive.style.display = 'none';
navResponsive.style.display = 'block';
}else{
search.classList.remove("icon-menu-close");
search.classList.add("icon-search");
hamMenu.classList.remove("icon-menu-close");
hamMenu.classList.add("icon-menu");
searchResponsive.style.display = 'none';
navResponsive.style.display = 'none';
}
}
}
</script>
@endpush

View File

@ -42,7 +42,6 @@
<script type="text/javascript">
window.flashMessages = [];
@if($success = session('success'))
window.flashMessages = [{'type': 'alert-success', 'message': "{{ $success }}" }];
@elseif($warning = session('warning'))
@ -50,7 +49,6 @@
@elseif($error = session('error'))
window.flashMessages = [{'type': 'alert-error', 'message': "{{ $error }}" }];
@endif
window.serverErrors = [];
@if (count($errors))
window.serverErrors = @json($errors->getMessages());
@ -60,57 +58,8 @@
<script type="text/javascript" src="{{ bagisto_asset('js/shop.js') }}"></script>
<script type="text/javascript" src="{{ asset('vendor/webkul/ui/assets/js/ui.js') }}"></script>
{{-- For JS that requires onload property --}}
<script>
window.onload = function () {
//header
var hamMenu = document.getElementById("hammenu");
var search = document.getElementById("search");
var sort = document.getElementById("sort");
var filter = document.getElementById("filter");
var searchResponsive = document.getElementsByClassName('search-responsive')[0];
var sortLimit = document.getElementsByClassName('reponsive-sorter-limiter')[0];
var layerFilter = document.getElementsByClassName('responsive-layred-filter')[0];
var navResponsive = document.getElementsByClassName('responsive-nav')[0];
search.addEventListener("click", header);
hamMenu.addEventListener("click", header);
//clone nav menu
};
// for responsive header
function header(){
var className = document.getElementById(this.id).className;
if(className === 'icon search-icon' ){
search.classList.remove("search-icon");
search.classList.add("icon-menu-close");
hamMenu.classList.remove("icon-menu-close");
hamMenu.classList.add("sortable-icon");
searchResponsive.style.display = 'block';
navResponsive.style.display = 'none';
}else if(className === 'icon sortable-icon'){
hamMenu.classList.remove("sortable-icon");
hamMenu.classList.add("icon-menu-close");
search.classList.remove("icon-menu-close");
search.classList.add("search-icon");
searchResponsive.style.display = 'none';
navResponsive.style.display = 'block';
}else{
search.classList.remove("icon-menu-close");
search.classList.add("search-icon");
hamMenu.classList.remove("icon-menu-close");
hamMenu.classList.add("sortable-icon");
searchResponsive.style.display = 'none';
navResponsive.style.display = 'none';
}
}
</script>
@stack('scripts')
</body>
</html>

View File

@ -1 +1 @@
<button class="btn btn-lg btn-primary addtocart">ADD TO CART</button>
<button class="btn btn-lg btn-primary addtocart">{{ __('shop::app.home.product-card.add-to-cart') }}</button>

View File

@ -55,4 +55,52 @@
@stop
@push('scripts')
<script>
$(document).ready(function() {
var sort = document.getElementById("sort");
var filter = document.getElementById("filter");
var sortLimit = document.getElementsByClassName('reponsive-sorter-limiter')[0];
var layerFilter = document.getElementsByClassName('responsive-layred-filter')[0];
if(sort && filter){
sort.addEventListener("click", sortFilter);
filter.addEventListener("click", sortFilter);
}
function sortFilter(){
var className = document.getElementById(this.id).className;
if(className === 'icon sort-icon' ){
sort.classList.remove("sort-icon");
sort.classList.add("icon-menu-close");
filter.classList.remove("icon-menu-close");
filter.classList.add("filter-icon");
sortLimit.style.display ="flex";
sortLimit.style.justifyContent="space-between";
layerFilter.style.display ="none";
}else if(className === 'icon filter-icon'){
filter.classList.remove("filter-icon");
filter.classList.add("icon-menu-close");
sort.classList.remove("icon-menu-close");
sort.classList.add("sort-icon");
layerFilter.style.display ="block";
sortLimit.style.display ="none";
}else{
sort.classList.remove("icon-menu-close");
sort.classList.add("sort-icon");
filter.classList.remove("icon-menu-close");
filter.classList.add("filter-icon");
sortLimit.style.display ="none";
layerFilter.style.display ="none";
}
}
})
</script>
@endpush

View File

@ -13,7 +13,6 @@
<div class="product-information">
<div class="product-name">
<a href="{{ url()->to('/').'/products/'.$product->url_key }}" title="{{ $product->name }}">
<span>
{{ $product->name }}
@ -29,8 +28,22 @@
@include ('shop::products.review', ['product' => $product])
@include ('shop::products.add-to', ['product' => $product])
@if(Route::currentRouteName() == "shop.products.index")
@include ('shop::products.add-to', ['product' => $product])
@else
@if($product->type == "configurable")
<a href="{{ route('cart.add.configurable', $product->url_key) }}" class="btn btn-lg btn-primary addtocart">{{ __('shop::app.home.product-card.add-to-cart') }}</a>
@else
<form action="{{route('cart.add', $product->id)}}" method="POST">
@csrf
<input type="hidden" name="product" value="{{ $product->id }}">
<input type="hidden" name="quantity" value="1">
<input type="hidden" value="false" name="is_configurable">
<button class="btn btn-lg btn-primary addtocart">{{ __('shop::app.home.product-card.add-to-cart') }}</button>
</form>
@include('shop::products.wishlist')
@endif
@endif
</div>
</div>

View File

@ -75,4 +75,42 @@
@endsection
@push('scripts')
<script>
document.onreadystatechange = function () {
var state = document.readyState
var galleryTemplate = document.getElementById('product-gallery-template');
var addTOButton = document.getElementsByClassName('add-to-buttons')[0];
if(galleryTemplate){
if (state == 'interactive') {
galleryTemplate.style.display="none";
} else {
document.getElementById('loader').style.display="none";
addTOButton.style.display="flex";
}
}
}
$(document).ready(function() {
var thumbList = document.getElementsByClassName('thumb-list')[0];
var thumbFrame = document.getElementsByClassName('thumb-frame');
var productHeroImage = document.getElementsByClassName('product-hero-image')[0];
// for product page resize image
if(thumbList && productHeroImage){
thumbList.style.maxHeight = productHeroImage.offsetHeight + "px";
for(let i=0 ; i < thumbFrame.length ; i++){
thumbFrame[i].style.height = (productHeroImage.offsetHeight/4) + "px";
}
}
})
</script>
@endpush

View File

@ -40,6 +40,31 @@ h2 {
color: $font-color;
}
//tool tip
.tooltip {
position: relative;
border-bottom: 1px solid black;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 1;
}
.tooltip:hover .tooltiptext {
visibility: visible;
}
//tooltip ends here
.hide {
display: none !important;
}

View File

@ -141,6 +141,12 @@
height: 18px;
}
.expand-on-icon {
background-image: url("../images/Expand-Light-On.svg");
width: 18px;
height: 18px;
}
.dark-left-icon {
background-image: url("../images/arrow-left-dark.svg");
width: 18px;

View File

@ -55,6 +55,18 @@
height: 24px;
}
.icon-menu {
background-image: URL("../images/icon-menu.svg");
width: 24px;
height: 24px;
}
.icon-search {
background-image: URL("../images/icon-search.svg");
width: 24px;
height: 24px;
}
.icon-menu-back {
background-image: URL("../images/icon-menu-back.svg");
width: 24px;
@ -85,17 +97,41 @@
height: 32px;
}
.icon-arrow-up {
background-image: url("../images/arrow-up.svg");
width: 16px;
height: 16px;
}
.icon-arrow-down {
background-image: url("../images/arrow-down.svg");
width: 16px;
height: 16px;
}
.expand-icon {
background-image: url("../images/Expand-Light.svg");
width: 18px;
height: 18px;
}
.expand-on-icon {
background-image: url("../images/Expand-Light-On.svg");
width: 18px;
height: 18px;
}
.product-grid-4 {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
grid-column-gap: 40px;
grid-row-gap: 15px;
grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
grid-auto-rows: auto;
grid-column-gap: 48px;
grid-row-gap: 15px;
}
.product-grid-3 {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
grid-gap: 27px;
grid-auto-rows: auto;
}
@ -181,69 +217,6 @@
background-image: url("../images/wishadd.svg");
}
.wishlist-item {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
width: 100%;
height: 125px;
}
.wishlist-item .media-info {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
.wishlist-item .media-info .media {
height: 125px;
width: 100px;
}
.wishlist-item .media-info .info {
display: block;
margin-left: 20px;
}
.wishlist-item .operations {
height: 120px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.wishlist-item .operations a {
width: 100%;
}
.wishlist-item .operations a span {
float: right;
}
.product-price {
margin-bottom: 14px;
width: 100%;
@ -271,6 +244,96 @@
background: #E8E8E8;
}
.account-head .account-heading {
font-size: 28px;
color: #242424;
text-transform: capitalize;
text-align: left;
}
.account-head .account-edit {
font-size: 17px;
margin-top: 1%;
color: #0031F0;
float: right;
}
.account-head .horizontal-rule {
margin-top: 1.1%;
width: 100%;
height: 1px;
vertical-align: middle;
background: #E8E8E8;
}
.account-item-card {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
width: 100%;
height: 125px;
}
.account-item-card .media-info {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
.account-item-card .media-info .media {
height: 125px;
width: 125px;
}
.account-item-card .media-info .info {
display: block;
margin-left: 20px;
}
.account-item-card .operations {
height: 120px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.account-item-card .operations a {
width: 100%;
}
.account-item-card .operations a span {
float: right;
}
.account-items-list {
display: block;
width: 100%;
}
body {
margin: 0;
padding: 0;
@ -472,7 +535,7 @@ body {
.layered-filter-wrapper .filter-attributes .filter-attributes-item .filter-attributes-title .remove-filter-link, .responsive-layred-filter .filter-attributes .filter-attributes-item .filter-attributes-title .remove-filter-link {
font-weight: 400;
color: #0041FF;
color: #0031F0;
margin-right: 10px;
}
@ -710,7 +773,7 @@ section.slider-block div.slider-content div.slider-control {
}
section.slider-block div.slider-content div.slider-control .dark-left-icon {
background-color: #f2f2f2;
background-color: #F2F2F2;
height: 48px;
width: 48px;
max-height: 100%;
@ -718,7 +781,7 @@ section.slider-block div.slider-content div.slider-control .dark-left-icon {
}
section.slider-block div.slider-content div.slider-control .light-right-icon {
background-color: #000;
background-color: #242424;
height: 48px;
width: 48px;
max-height: 100%;
@ -1061,7 +1124,7 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
border-top: 1px solid lightgrey;
border-bottom: 1px solid lightgrey;
display: block;
/* submenu positioning*/
/* submenu positioning */
}
.header .header-bottom ul.nav {
@ -1077,7 +1140,7 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
.header .header-bottom .nav ul {
margin: 0;
padding: 0;
border: 1px solid #B1B1B1;
border: 1px solid #E8E8E8;
-webkit-box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, 0.4);
box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, 0.4);
}
@ -1088,10 +1151,14 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
text-decoration: none;
padding: 0.8em 0.3em 0.8em 0.5em;
text-transform: uppercase;
letter-spacing: 2px;
letter-spacing: -0.38px;
position: relative;
}
.header .header-bottom .nav a:first-child {
margin-left: 20px;
}
.header .header-bottom .nav li > .icon {
display: none;
}
@ -1156,17 +1223,25 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
.header .header-bottom .nav ul {
position: absolute;
white-space: nowrap;
border: 1px solid #B1B1B1;
border: 1px solid #E8E8E8;
background-color: white;
z-index: 1;
left: -99999em;
}
.header .header-bottom .nav > li:hover {
background-color: #F2F2F2;
}
.header .header-bottom .nav > li:hover > ul {
left: auto;
min-width: 100%;
}
.header .header-bottom .nav > li li:hover {
background-color: #F2F2F2;
}
.header .header-bottom .nav > li li:hover > ul {
left: 100%;
margin-left: 1px;
@ -1190,7 +1265,7 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
}
.header .search-responsive .search-content {
border-bottom: 1px solid #e8e8e8;
border-bottom: 1px solid #E8E8E8;
height: 48px;
}
@ -1213,7 +1288,7 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
}
.header .search-responsive .search-content:first-child {
border-top: 1px solid #e8e8e8;
border-top: 1px solid #E8E8E8;
}
.header .responsive-nav {
@ -1249,8 +1324,6 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
padding: 12px 4.8px 12px 8px;
text-transform: uppercase;
letter-spacing: 2px;
position: relative;
width: 90%;
}
.responsive-nav .nav li > .icon {
float: right;
@ -1275,7 +1348,7 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
}
.footer {
background-color: #f2f2f2;
background-color: #F2F2F2;
padding-left: 10%;
padding-right: 10%;
}
@ -1292,7 +1365,6 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
}
.footer .footer-content .footer-list-container .list-container .list-heading {
letter-spacing: -0.26px;
text-transform: uppercase;
color: #a5a5a5;
}
@ -1341,7 +1413,7 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
}
.footer .footer-content .footer-list-container .list-container .form-container .control-group .btn-primary {
background-color: #000;
background-color: #242424;
margin-top: 8px;
border-radius: 0px;
text-align: center;
@ -1403,8 +1475,8 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
}
.main .top-toolbar .pager select {
background: #FFFFFF;
border: 1px solid #C7C7C7;
background: #F2F2F2;
border: 1px solid #E8E8E8;
border-radius: 3px;
color: #242424;
padding: 10px;
@ -1452,235 +1524,6 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
text-align: center;
}
.content {
padding-top: 15%;
padding-bottom: 15%;
}
.content .sign-up-text {
margin-bottom: 2%;
margin-left: auto;
margin-right: auto;
text-align: center;
font-size: 18px;
color: #5e5e5e;
letter-spacing: -0.29px;
text-align: center;
}
.content .login-form {
margin-left: auto;
margin-right: auto;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
border: 1px solid #E8E8E8;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
max-width: 530px;
min-width: 380px;
min-height: 345px;
padding-left: 25px;
padding-right: 25px;
}
.content .login-form .login-text {
font-size: 24px;
font-weight: bold;
color: #3a3a3a;
letter-spacing: -0.23px;
margin-top: 5%;
margin-bottom: 3%;
}
.content .login-form .control-group {
margin-bottom: 15px !important;
}
.content .login-form .control-group .control {
width: 100% !important;
}
.content .login-form .forgot-password-link {
font-size: 17px;
color: #0041FF;
letter-spacing: -0.11px;
margin-bottom: 5%;
}
.content .login-form .signup-confirm {
letter-spacing: -0.11px;
margin-bottom: 5%;
}
.content .login-form .btn-primary {
width: 100%;
text-transform: uppercase;
border-radius: 0px;
height: 45px;
margin-bottom: 4%;
}
.account-content {
width: 100%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
margin-top: 5.5%;
margin-bottom: 5.5%;
}
.account-content .account-side-menu {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-ms-flex-line-pack: center;
align-content: center;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
border: 1px solid #E8E8E8;
width: 25%;
height: 100%;
text-transform: capitalize;
color: #5e5e5e;
}
.account-content .account-side-menu li {
width: 95%;
height: 50px;
margin-left: 5%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border-bottom: 1px solid #E8E8E8;
text-align: center;
}
.account-content .account-side-menu li:first-child {
border-top: none;
}
.account-content .account-side-menu li:last-child {
border-bottom: none;
}
.account-content .account-side-menu li.active {
color: #0041FF;
}
.account-content .profile {
margin-left: 5.5%;
margin-top: 1%;
width: 100%;
}
.account-content .profile .section-head .profile-heading {
font-size: 28px;
color: #242424;
text-transform: capitalize;
text-align: left;
}
.account-content .profile .section-head .profile-edit {
font-size: 17px;
margin-top: 1%;
color: #0041FF;
letter-spacing: -0.11px;
float: right;
}
.account-content .profile .section-head .horizontal-rule {
margin-top: 1.1%;
width: 100%;
height: 1px;
vertical-align: middle;
background: #E8E8E8;
}
.account-content .profile-content {
color: #5e5e5e;
margin-top: 1.4%;
}
.account-content .profile-content table tbody tr {
height: 45px;
}
.account-content .profile-content table tbody tr td {
width: 250px;
text-transform: capitalize;
}
.account-content .edit-form-content {
margin-left: 5.5%;
margin-top: 1%;
width: 100%;
}
.account-content .edit-form-content .section-head .profile-heading {
font-size: 28px;
color: #242424;
text-transform: capitalize;
text-align: left;
}
.account-content .edit-form-content .section-head .profile-edit {
font-size: 17px;
margin-top: 1%;
color: #0041FF;
letter-spacing: -0.11px;
float: right;
}
.account-content .edit-form-content .section-head .horizontal-rule {
margin-top: 1.1%;
width: 100%;
height: 1px;
vertical-align: middle;
background: #E8E8E8;
}
.account-content .edit-form-content .edit-text {
margin-bottom: 2%;
margin-left: auto;
margin-right: auto;
font-size: 24px;
}
.account-content .edit-form-content .edit-form {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
border: 1px solid #E8E8E8;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
min-height: 345px;
padding: 25px;
}
section.product-detail {
color: #242424;
}
@ -1714,8 +1557,8 @@ section.product-detail div.layouter form div.product-image-group {
}
section.product-detail div.layouter form div.product-image-group .loader {
border: 16px solid #f3f3f3;
border-top: 16px solid #3498db;
border: 16px solid #E8E8E8;
border-top: 16px solid #0031F0;
border-radius: 50%;
width: 50px;
height: 50px;
@ -1784,7 +1627,7 @@ section.product-detail div.layouter form div.product-image-group div .thumb-list
}
section.product-detail div.layouter form div.product-image-group div .thumb-list .thumb-frame.active {
border-color: #979797;
border-color: #C7C7C7;
}
section.product-detail div.layouter form div.product-image-group div .thumb-list .thumb-frame img {
@ -1802,7 +1645,7 @@ section.product-detail div.layouter form div.product-image-group div .thumb-list
section.product-detail div.layouter form div.product-image-group div .thumb-list .gallery-control .overlay {
opacity: 0.3;
background: #000000;
background: #242424;
width: 100%;
height: 18px;
position: absolute;
@ -1926,7 +1769,7 @@ section.product-detail div.layouter form .details .description {
section.product-detail div.layouter form .details .full-specifications td {
padding: 10px 0;
color: #5E5E5E;
color: #A5A5A5;
}
section.product-detail div.layouter form .details .full-specifications td:first-child {
@ -2065,12 +1908,12 @@ section.product-detail div.layouter form .details .attributes {
}
.rating-reviews .reviews .review .reviewer-details {
color: #5E5E5E;
color: #A5A5A5;
}
.rating-reviews .reviews .view-all {
margin-top: 15px;
color: #0041FF;
color: #0031F0;
margin-bottom: 15px;
}
@ -2161,6 +2004,10 @@ section.cart .cart-content .right-side {
font-weight: 600;
}
.cart-item-list .item .item-details .item-title a {
color: #242424;
}
.cart-item-list .item .item-details .price {
margin-bottom: 10px;
font-size: 18px;
@ -2184,7 +2031,7 @@ section.cart .cart-content .right-side {
}
.cart-item-list .item .item-details .misc div.qty-text {
color: #5E5E5E;
color: #A5A5A5;
margin-right: 10px;
}
@ -2201,12 +2048,12 @@ section.cart .cart-content .right-side {
}
.cart-item-list .item .item-details .misc .remove {
color: #0041FF;
color: #0031F0;
margin-right: 30px;
}
.cart-item-list .item .item-details .misc .towishlist {
color: #0041FF;
color: #0031F0;
}
.order-summary h3 {
@ -2376,7 +2223,7 @@ section.cart .cart-content .right-side {
.checkout-process .col-main .step-content .address .address-card .card-content {
margin-top: 15px;
color: #121212;
color: #242424;
line-height: 25px;
}
@ -2390,7 +2237,7 @@ section.cart .cart-content .right-side {
.checkout-process .col-main .step-content .cart-item-list .item .row .title {
width: 100px;
display: inline-block;
color: #5E5E5E;
color: #A5A5A5;
font-weight: 500;
margin-bottom: 10px;
}
@ -2531,7 +2378,6 @@ section.review .review-layouter .product-info .heading {
section.review .review-layouter .product-info .heading span {
font-size: 24px;
letter-spacing: -0.58px;
}
section.review .review-layouter .product-info .price {
@ -2541,18 +2387,15 @@ section.review .review-layouter .product-info .price {
section.review .review-layouter .product-info .price .pro-price {
font-size: 24px;
color: #FF6472;
letter-spacing: -0.58px;
}
section.review .review-layouter .product-info .price .pro-price-not {
margin-left: 10px;
color: #A5A5A5;
letter-spacing: -0.26px;
}
section.review .review-layouter .product-info .price .offer {
margin-left: 10px;
letter-spacing: -0.26px;
}
section.review .review-layouter .review-info {
@ -2564,10 +2407,6 @@ section.review .review-layouter .review-info .heading {
margin-top: 10px;
}
section.review .review-layouter .review-info .heading span {
letter-spacing: -0.26px;
}
section.review .review-layouter .review-info .heading .btn.btn-primary.right {
float: right;
margin-top: -10px;
@ -2575,8 +2414,7 @@ section.review .review-layouter .review-info .heading .btn.btn-primary.right {
section.review .review-layouter .review-info .rating {
margin-top: 25px;
color: #5E5E5E;
letter-spacing: -0.12px;
color: #A5A5A5;
}
section.review .review-layouter .review-info .rating span {
@ -2609,7 +2447,7 @@ section.review .review-layouter .review-info .write-review .control-group {
section.review .review-layouter .review-info .write-review .control-group textarea {
margin-top: 5px;
border: 2px solid #C7C7C7;
border: 2px solid #E8E8E8;
border-radius: 3px;
width: 600px;
height: 120px;
@ -2620,10 +2458,9 @@ section.review .review-layouter .review-info .submit-button {
}
section.review .review-layouter .review-info .submit-button button {
background: #0041FF;
background: #0031F0;
font-size: 14px;
color: #FFFFFF;
letter-spacing: -0.26px;
color: #F2F2F2;
text-align: center;
width: 120px;
height: 38px;
@ -2651,7 +2488,6 @@ section.review .review-layouter .review-info .review-detail .rating-review {
section.review .review-layouter .review-info .review-detail .rating-review .avg-rating-count span {
font-size: 34px;
letter-spacing: -0.82px;
text-align: center;
}
@ -2660,12 +2496,75 @@ section.review .review-layouter .review-info .review-detail .rating-calculate .p
border: 1px solid blue;
}
.cusomer-section {
margin-left: 50px;
width: 100%;
.auth-content {
padding-top: 15%;
padding-bottom: 15%;
}
.cusomer-section .customer-section-info {
.auth-content .sign-up-text {
margin-bottom: 2%;
margin-left: auto;
margin-right: auto;
text-align: center;
font-size: 18px;
color: #A5A5A5;
text-align: center;
}
.auth-content .login-form {
margin-left: auto;
margin-right: auto;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
border: 1px solid #E8E8E8;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
max-width: 530px;
min-width: 380px;
min-height: 345px;
padding-left: 25px;
padding-right: 25px;
}
.auth-content .login-form .login-text {
font-size: 24px;
font-weight: bold;
color: #242424;
margin-top: 5%;
margin-bottom: 3%;
}
.auth-content .login-form .control-group {
margin-bottom: 15px !important;
}
.auth-content .login-form .control-group .control {
width: 100% !important;
}
.auth-content .login-form .forgot-password-link {
font-size: 17px;
color: #0031F0;
margin-bottom: 5%;
}
.auth-content .login-form .signup-confirm {
margin-bottom: 5%;
}
.auth-content .login-form .btn-primary {
width: 100%;
text-transform: uppercase;
border-radius: 0px;
height: 45px;
margin-bottom: 4%;
}
.account-content {
width: 100%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
@ -2673,42 +2572,92 @@ section.review .review-layouter .review-info .review-detail .rating-calculate .p
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
border-top: 1px solid #E8E8E8;
margin-top: 5.5%;
margin-bottom: 5.5%;
}
.cusomer-section .customer-section-info .pro-img {
margin-top: 10px;
margin-bottom: 5px;
.account-content .account-side-menu {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-ms-flex-line-pack: center;
align-content: center;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
border: 1px solid #E8E8E8;
width: 25%;
height: 100%;
text-transform: capitalize;
color: #A5A5A5;
}
.cusomer-section .customer-section-info .pro-img img {
height: 125px;
width: 100px;
.account-content .account-side-menu li {
width: 95%;
height: 50px;
margin-left: 5%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border-bottom: 1px solid #E8E8E8;
text-align: center;
}
.cusomer-section .customer-section-info .pro-discription {
margin-left: 20px;
.account-content .account-side-menu li:first-child {
border-top: none;
}
.account-content .account-side-menu li:last-child {
border-bottom: none;
}
.account-content .account-side-menu li.active {
color: #0031F0;
}
.account-content .account-layout {
margin-left: 5.5%;
margin-top: 1%;
width: 100%;
}
.cusomer-section .customer-section-info .pro-discription .title {
color: #0041FF;
margin-top: 15px;
.account-table-content {
color: #242424;
margin-top: 1.4%;
}
.cusomer-section .customer-section-info .pro-discription .rating {
margin-top: 10px;
.account-table-content table tbody tr {
height: 45px;
}
.cusomer-section .customer-section-info .pro-discription .rating .icon {
height: 16px;
width: 16px;
.account-table-content table tbody tr td {
width: 250px;
text-transform: capitalize;
}
.cusomer-section .customer-section-info .pro-discription .discription {
margin-top: 15px;
}
.cusomer-section .customer-section-info:last-child {
border-bottom: 1px solid #E8E8E8;
.edit-form {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
border: 1px solid #E8E8E8;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
min-height: 345px;
padding: 25px;
}

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/js/shop.js": "/js/shop.js",
"/css/shop.css": "/css/shop.css"
}
}