reviews
This commit is contained in:
commit
5cc562d972
|
|
@ -18,7 +18,6 @@
|
|||
"laravel/framework": "5.6.*",
|
||||
"laravel/tinker": "^1.0",
|
||||
"nwidart/laravel-modules": "^3.2",
|
||||
"pragmarx/countries": "^0.5.9",
|
||||
"prettus/l5-repository": "^2.6",
|
||||
"propaganistas/laravel-intl": "^2.0"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -284,20 +284,6 @@ Route::group(['middleware' => ['web']], function () {
|
|||
])->name('admin.locales.store');
|
||||
|
||||
|
||||
// Country Routes
|
||||
Route::get('/countries', 'Webkul\Core\Http\Controllers\CountryController@index')->defaults('_config', [
|
||||
'view' => 'admin::settings.countries.index'
|
||||
])->name('admin.countries.index');
|
||||
|
||||
Route::get('/countries/create', 'Webkul\Core\Http\Controllers\CountryController@create')->defaults('_config', [
|
||||
'view' => 'admin::settings.countries.create'
|
||||
])->name('admin.countries.create');
|
||||
|
||||
Route::post('/countries/create', 'Webkul\Core\Http\Controllers\CountryController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.countries.index'
|
||||
])->name('admin.countries.store');
|
||||
|
||||
|
||||
// Currency Routes
|
||||
Route::get('/currencies', 'Webkul\Core\Http\Controllers\CurrencyController@index')->defaults('_config', [
|
||||
'view' => 'admin::settings.currencies.index'
|
||||
|
|
@ -400,54 +386,52 @@ Route::group(['middleware' => ['web']], function () {
|
|||
'redirect' => 'admin::sliders.index'
|
||||
])->name('admin.sliders.store');
|
||||
|
||||
|
||||
//tax routes
|
||||
Route::prefix('tax')->group(function () {
|
||||
Route::get('/tax-categories', 'Webkul\Tax\Http\Controllers\TaxController@index')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-categories.index'
|
||||
])->name('admin.tax-categories.index');
|
||||
|
||||
Route::get('taxrule', 'Webkul\Tax\Http\Controllers\TaxController@index')->defaults('_config', [
|
||||
'view' => 'admin::tax.taxrule.index'
|
||||
])->name('admin.taxrule.index');
|
||||
// tax rule routes
|
||||
Route::get('/tax-categories/create', 'Webkul\Tax\Http\Controllers\TaxCategoryController@show')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-categories.create'
|
||||
])->name('admin.tax-categories.show');
|
||||
|
||||
// tax rule routes
|
||||
Route::get('taxrule/create', 'Webkul\Tax\Http\Controllers\TaxCategoryController@show')->defaults('_config', [
|
||||
'view' => 'admin::tax.taxrule.create.create'
|
||||
])->name('admin.taxrule.show');
|
||||
Route::post('/tax-categories/create', 'Webkul\Tax\Http\Controllers\TaxCategoryController@create')->defaults('_config', [
|
||||
'redirect' => 'admin.tax-categories.index'
|
||||
])->name('admin.tax-categories.create');
|
||||
|
||||
Route::post('taxrule/create', 'Webkul\Tax\Http\Controllers\TaxCategoryController@create')->defaults('_config', [
|
||||
'redirect' => 'admin.taxrule.index'
|
||||
])->name('admin.taxrule.create');
|
||||
Route::get('/tax-categories/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxCategoryController@edit')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-categories.edit'
|
||||
])->name('admin.tax-categories.edit');
|
||||
|
||||
Route::get('/taxrule/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxCategoryController@edit')->defaults('_config', [
|
||||
'view' => 'admin::tax.taxrule.edit.edit'
|
||||
])->name('admin.taxrule.edit');
|
||||
Route::put('/tax-categories/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxCategoryController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.tax-categories.index'
|
||||
])->name('admin.tax-categories.update');
|
||||
|
||||
Route::put('/taxrule/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxCategoryController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.taxrule.index'
|
||||
])->name('admin.taxrule.update');
|
||||
//tax rule ends
|
||||
|
||||
//tax rule ends
|
||||
|
||||
//tax rate
|
||||
//tax rate
|
||||
Route::get('tax-rates', 'Webkul\Tax\Http\Controllers\TaxRateController@index')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-rates.index'
|
||||
])->name('admin.tax-rates.index');
|
||||
|
||||
Route::get('taxrate', 'Webkul\Tax\Http\Controllers\TaxRateController@index')->defaults('_config', [
|
||||
'view' => 'admin::tax.taxrate.index'
|
||||
])->name('admin.taxrate.index');
|
||||
Route::get('tax-rates/create', 'Webkul\Tax\Http\Controllers\TaxRateController@show')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-rates.create'
|
||||
])->name('admin.tax-rates.show');
|
||||
|
||||
Route::get('taxrate/create', 'Webkul\Tax\Http\Controllers\TaxRateController@show')->defaults('_config', [
|
||||
'view' => 'admin::tax.taxrate.create.taxrate'
|
||||
])->name('admin.taxrate.show');
|
||||
Route::post('tax-rates/create', 'Webkul\Tax\Http\Controllers\TaxRateController@create')->defaults('_config', [
|
||||
'redirect' => 'admin.tax-rates.index'
|
||||
])->name('admin.tax-rates.create');
|
||||
|
||||
Route::post('taxrate/create', 'Webkul\Tax\Http\Controllers\TaxRateController@create')->defaults('_config', [
|
||||
'redirect' => 'admin.taxrate.index'
|
||||
])->name('admin.taxrate.create');
|
||||
Route::get('tax-rates/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxRateController@edit')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-rates.edit'
|
||||
])->name('admin.tax-rates.store');
|
||||
|
||||
Route::get('taxrate/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxRateController@edit')->defaults('_config', [
|
||||
'view' => 'admin::tax.taxrate.edit.edit'
|
||||
])->name('admin.taxrate.store');
|
||||
|
||||
Route::put('taxrate/update/{id}', 'Webkul\Tax\Http\Controllers\TaxRateController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.taxrate.index'
|
||||
])->name('admin.taxrate.update');
|
||||
});
|
||||
Route::put('tax-rates/update/{id}', 'Webkul\Tax\Http\Controllers\TaxRateController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.tax-rates.index'
|
||||
])->name('admin.tax-rates.update');
|
||||
//tax rate ends
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -68,21 +68,19 @@ class EventServiceProvider extends ServiceProvider
|
|||
|
||||
$menu->add('configuration.account', 'My Account', 'admin.account.edit', 1);
|
||||
|
||||
$menu->add('settings', 'Settings', 'admin.countries.index', 6, 'settings-icon');
|
||||
$menu->add('settings', 'Settings', 'admin.locales.index', 6, 'settings-icon');
|
||||
|
||||
$menu->add('settings.countries', 'Countries', 'admin.countries.index', 1, '');
|
||||
$menu->add('settings.locales', 'Locales', 'admin.locales.index', 1, '');
|
||||
|
||||
$menu->add('settings.locales', 'Locales', 'admin.locales.index', 2, '');
|
||||
$menu->add('settings.currencies', 'Currencies', 'admin.currencies.index', 2, '');
|
||||
|
||||
$menu->add('settings.currencies', 'Currencies', 'admin.currencies.index', 3, '');
|
||||
$menu->add('settings.exchange_rates', 'Exchange Rates', 'admin.exchange_rates.index', 3, '');
|
||||
|
||||
$menu->add('settings.exchange_rates', 'Exchange Rates', 'admin.exchange_rates.index', 4, '');
|
||||
|
||||
$menu->add('settings.inventory_sources', 'Inventory Sources', 'admin.inventory_sources.index', 5, '');
|
||||
$menu->add('settings.inventory_sources', 'Inventory Sources', 'admin.inventory_sources.index', 4, '');
|
||||
|
||||
$menu->add('settings.channels', 'Channels', 'admin.channels.index', 5, '');
|
||||
|
||||
$menu->add('settings.users', 'Users', 'admin.users.index', 7, '');
|
||||
$menu->add('settings.users', 'Users', 'admin.users.index', 6, '');
|
||||
|
||||
$menu->add('settings.users.users', 'Users', 'admin.users.index', 1, '');
|
||||
|
||||
|
|
@ -90,11 +88,11 @@ class EventServiceProvider extends ServiceProvider
|
|||
|
||||
$menu->add('settings.sliders', 'Create Sliders', 'admin.sliders.index', 8, '');
|
||||
|
||||
$menu->add('settings.tax', 'Taxes', 'admin.taxrule.index', 9, '');
|
||||
$menu->add('settings.tax', 'Taxes', 'admin.tax-categories.index', 9, '');
|
||||
|
||||
$menu->add('settings.tax.taxrule', 'Add Tax Category', 'admin.taxrule.index', 1, '');
|
||||
$menu->add('settings.tax.tax-categories', 'Add Tax Category', 'admin.tax-categories.index', 1, '');
|
||||
|
||||
$menu->add('settings.tax.taxrate', 'Add Tax Rates', 'admin.taxrate.index', 2, '');
|
||||
$menu->add('settings.tax.tax-rates', 'Add Tax Rates', 'admin.tax-rates.index', 2, '');
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
return [
|
||||
'common' => [
|
||||
'no-result-found' => 'We couldn\'t find any records.'
|
||||
'no-result-found' => 'We couldn\'t find any records.',
|
||||
'country' => 'Country',
|
||||
'state' => 'State'
|
||||
],
|
||||
'account' => [
|
||||
'header-title' => 'My Account',
|
||||
|
|
@ -260,9 +262,9 @@ return [
|
|||
'add-title' => 'Add Tax Category'
|
||||
],
|
||||
|
||||
'taxrule' => [
|
||||
'tax-categories' => [
|
||||
'title' => 'Add Tax Category',
|
||||
'create' => 'Create Tax Category',
|
||||
'save-btn-title' => 'Save Tax Category',
|
||||
'general' => 'Tax Category',
|
||||
'select-channel' => 'Select Channel',
|
||||
'name' => 'Name',
|
||||
|
|
@ -275,8 +277,9 @@ return [
|
|||
]
|
||||
],
|
||||
|
||||
'taxrate' => [
|
||||
'tax-rates' => [
|
||||
'title' => 'Add Tax Rate',
|
||||
'save-btn-title' => 'Save Tax Rate',
|
||||
'general' => 'Tax Rate',
|
||||
'identifier' => 'Identifier',
|
||||
'is_zip' => 'Enable Zip Range',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
<div class="control-group">
|
||||
<label for="country">{{ __('admin::app.common.country') }}</label>
|
||||
<select class="control" id="country" name="country">
|
||||
|
||||
@foreach(core()->countries() as $country)
|
||||
|
||||
<option value="{{ $country->code }}" {{ old('country') == $country->code ? 'selected' : '' }}>
|
||||
{{ $country->name }}
|
||||
</option>
|
||||
|
||||
@endforeach
|
||||
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="state">{{ __('admin::app.common.state') }}</label>
|
||||
<input class="control" id="state" name="state" value="{{ old('state') }}"/>
|
||||
</div>
|
||||
|
||||
@push('scripts')
|
||||
|
||||
|
||||
|
||||
@endpush
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<div class="control-group">
|
||||
<?php $selectedCountry = old('country') ?: $model->country ?>
|
||||
|
||||
<label for="country">{{ __('admin::app.common.country') }}</label>
|
||||
|
||||
<select class="control" id="country" name="country">
|
||||
|
||||
@foreach(core()->countries() as $country)
|
||||
|
||||
<option value="{{ $country->code }}" {{ $selectedCountry == $country->code ? 'selected' : '' }}>
|
||||
{{ $country->name }}
|
||||
</option>
|
||||
|
||||
@endforeach
|
||||
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="state">{{ __('admin::app.common.state') }}</label>
|
||||
<input class="control" id="state" name="state" value="{{ old('state') ?: $model->state }}"/>
|
||||
</div>
|
||||
|
||||
@push('scripts')
|
||||
|
||||
|
||||
|
||||
@endpush
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
|
||||
<form method="POST" action="{{ route('admin.countries.store') }}" @submit.prevent="onSubmit">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.settings.countries.add-title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.countries.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<accordian :title="'{{ __('admin::app.settings.countries.general') }}'" :active="true">
|
||||
<div slot="body">
|
||||
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
|
||||
<label for="code" class="required">{{ __('admin::app.settings.countries.code') }}</label>
|
||||
<input v-validate="'required'" class="control" id="code" name="code" v-code/>
|
||||
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
|
||||
<label for="name" class="required">{{ __('admin::app.settings.countries.name') }}</label>
|
||||
<input v-validate="'required'" class="control" id="name" name="name"/>
|
||||
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</accordian>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.settings.countries.title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.countries.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.countries.add-title') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
@inject('countries','Webkul\Admin\DataGrids\CountryDataGrid')
|
||||
{!! $countries->render() !!}
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -100,16 +100,7 @@
|
|||
<accordian :title="'{{ __('admin::app.settings.inventory_sources.address') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<div class="control-group">
|
||||
<label for="country">{{ __('admin::app.settings.inventory_sources.country') }}</label>
|
||||
<select class="control" id="country" name="country">
|
||||
@foreach(core()->countries() as $countryCoode => $countryName)
|
||||
<option value="{{ $countryCoode }}" {{ old('country') == $countryCoode ? 'selected' : '' }}>
|
||||
{{ $countryName }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
@include ('admin::common.create-country-state')
|
||||
|
||||
<div class="control-group">
|
||||
<label for="state">{{ __('admin::app.settings.inventory_sources.state') }}</label>
|
||||
|
|
|
|||
|
|
@ -101,22 +101,7 @@
|
|||
<accordian :title="'{{ __('admin::app.settings.inventory_sources.address') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<div class="control-group">
|
||||
<?php $selectedCountry = old('country') ?: $inventorySource->country ?>
|
||||
<label for="country">{{ __('admin::app.settings.inventory_sources.country') }}</label>
|
||||
<select class="control" id="country" name="country">
|
||||
@foreach(core()->countries() as $countryCoode => $countryName)
|
||||
<option value="{{ $countryCoode }}" {{ $selectedCountry == $countryCoode ? 'selected' : '' }}>
|
||||
{{ $countryName }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="state">{{ __('admin::app.settings.inventory_sources.state') }}</label>
|
||||
<input class="control" id="state" name="state" value="{{ old('state') ?: $inventorySource->state }}"/>
|
||||
</div>
|
||||
@include ('admin::common.edit-country-state', ['model' => $inventorySource])
|
||||
|
||||
<div class="control-group">
|
||||
<label for="city">{{ __('admin::app.settings.inventory_sources.city') }}</label>
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.configuration.taxrule.title') }}
|
||||
{{ __('admin::app.configuration.tax-categories.title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<form method="POST" action="{{ route('admin.taxrule.create') }}" @submit.prevent="onSubmit">
|
||||
<form method="POST" action="{{ route('admin.tax-categories.create') }}" @submit.prevent="onSubmit">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.configuration.taxrule.title') }}</h1>
|
||||
<h1>{{ __('admin::app.configuration.tax-categories.title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.configuration.taxrule.create') }}
|
||||
{{ __('admin::app.configuration.tax-categories.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
<div class="form-container">
|
||||
@csrf()
|
||||
<div class="control-group" :class="[errors.has('channel') ? 'has-error' : '']">
|
||||
<label for="channel" class="required">{{ __('admin::app.configuration.taxrule.select-channel') }}</label>
|
||||
<label for="channel" class="required">{{ __('admin::app.configuration.tax-categories.select-channel') }}</label>
|
||||
|
||||
<select class="control" name="channel_id">
|
||||
@foreach(core()->getAllChannels() as $channelModel)
|
||||
|
|
@ -38,7 +38,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
|
||||
<label for="code" class="required">{{ __('admin::app.configuration.taxrule.code') }}</label>
|
||||
<label for="code" class="required">{{ __('admin::app.configuration.tax-categories.code') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}"/>
|
||||
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
|
||||
<label for="name" class="required">{{ __('admin::app.configuration.taxrule.name') }}</label>
|
||||
<label for="name" class="required">{{ __('admin::app.configuration.tax-categories.name') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') }}"/>
|
||||
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
|
||||
<label for="description" class="required">{{ __('admin::app.configuration.taxrule.description') }}</label>
|
||||
<label for="description" class="required">{{ __('admin::app.configuration.tax-categories.description') }}</label>
|
||||
|
||||
<textarea v-validate="'required'" class="control" id="description" name="description" value="{{ old('description') }}"></textarea>
|
||||
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('taxrates') ? 'has-error' : '']">
|
||||
<label for="taxrates" class="required">{{ __('admin::app.configuration.taxrule.select-taxrates') }}</label>
|
||||
<label for="taxrates" class="required">{{ __('admin::app.configuration.tax-categories.select-taxrates') }}</label>
|
||||
|
||||
<select multiple="multiple" v-validate="'required'" class="control" id="taxrates" name="taxrates[]" value="{{ old('taxrates') }}">
|
||||
@foreach($taxRates as $taxRate)
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.configuration.taxrate.title') }}
|
||||
{{ __('admin::app.configuration.tax-categories.title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<form method="POST" action="{{ route('admin.taxrule.update', $data[0][0]['id']) }}" @submit.prevent="onSubmit">
|
||||
<form method="POST" action="{{ route('admin.tax-categories.update', $data[0][0]['id']) }}" @submit.prevent="onSubmit">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.configuration.taxrule.edit.title') }}</h1>
|
||||
<h1>{{ __('admin::app.configuration.tax-categories.edit.title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.configuration.taxrule.edit.edit-button-title') }}
|
||||
{{ __('admin::app.configuration.tax-categories.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -23,11 +23,11 @@
|
|||
<div class="form-container">
|
||||
@csrf()
|
||||
@method('PUT')
|
||||
<accordian :title="'{{ __('admin::app.configuration.taxrule.general') }}'" :active="true">
|
||||
<accordian :title="'{{ __('admin::app.configuration.tax-categories.general') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<div class="control-group" :class="[errors.has('channel') ? 'has-error' : '']">
|
||||
<label for="channel" class="required">{{ __('admin::app.configuration.taxrule.select-channel') }}</label>
|
||||
<label for="channel" class="required">{{ __('admin::app.configuration.tax-categories.select-channel') }}</label>
|
||||
|
||||
<select class="control" name="channel">
|
||||
@foreach(core()->getAllChannels() as $channelModel)
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
|
||||
<label for="code" class="required">{{ __('admin::app.configuration.taxrule.code') }}</label>
|
||||
<label for="code" class="required">{{ __('admin::app.configuration.tax-categories.code') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="code" name="code" value="{{ $data[0][0]['code'] }}"/>
|
||||
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
|
||||
<label for="name" class="required">{{ __('admin::app.configuration.taxrule.name') }}</label>
|
||||
<label for="name" class="required">{{ __('admin::app.configuration.tax-categories.name') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="name" name="name" value="{{ $data[0][0]['name'] }}"/>
|
||||
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
|
||||
<label for="description" class="required">{{ __('admin::app.configuration.taxrule.description') }}</label>
|
||||
<label for="description" class="required">{{ __('admin::app.configuration.tax-categories.description') }}</label>
|
||||
|
||||
<textarea v-validate="'required'" class="control" id="description" name="description">{{ $data[0][0]['description'] }}</textarea>
|
||||
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('taxrates') ? 'has-error' : '']">
|
||||
<label for="taxrates" class="required">{{ __('admin::app.configuration.taxrule.select-taxrates') }}</label>
|
||||
<label for="taxrates" class="required">{{ __('admin::app.configuration.tax-categories.select-taxrates') }}</label>
|
||||
|
||||
@inject('taxRates', 'Webkul\Core\Repositories\TaxRatesRepository')
|
||||
|
||||
|
|
@ -8,15 +8,15 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.taxrule.show') }}" class="btn btn-lg btn-primary">
|
||||
<a href="{{ route('admin.tax-categories.show') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.configuration.tax.add-title') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
@inject('taxrule','Webkul\Admin\DataGrids\TaxRuleDataGrid')
|
||||
{!! $taxrule->render() !!}
|
||||
@inject('taxCategories','Webkul\Admin\DataGrids\TaxRuleDataGrid')
|
||||
{!! $taxCategories->render() !!}
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.configuration.tax-rates.title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<form method="POST" action="{{ route('admin.tax-rates.create') }}" @submit.prevent="onSubmit">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.configuration.tax-rates.title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.configuration.tax-rates.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<div class="control-group" :class="[errors.has('identifier') ? 'has-error' : '']">
|
||||
<label for="identifier" class="required">{{ __('admin::app.configuration.tax-rates.identifier') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="identifier" name="identifier" value="{{ old('identifier') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('identifier')">@{{ errors.first('identifier') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('state') ? 'has-error' : '']">
|
||||
<label for="state" class="required">{{ __('admin::app.configuration.tax-rates.state') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="state" name="state" value="{{ old('state') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('state')">@{{ errors.first('state') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('country') ? 'has-error' : '']">
|
||||
<label for="country" class="required">{{ __('admin::app.configuration.tax-rates.country') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="country" name="country" value="{{ old('country') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('country')">@{{ errors.first('country') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<span class="checkbox">
|
||||
|
||||
<input type="checkbox" id="is_zip" name="is_zip" onclick="myFunction()">
|
||||
|
||||
<label class="checkbox-view" for="is_zip"></label>
|
||||
Enable Zip Range
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('zip_code') ? 'has-error' : '']" id="zip_code">
|
||||
<label for="zip_code">{{ __('admin::app.configuration.tax-rates.zip_code') }}</label>
|
||||
|
||||
<input class="control" id="zip_code" name="zip_code" value="{{ old('zip_code') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('zip_code')">@{{ errors.first('zip_code') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('zip_from') ? 'has-error' : '']" id="zip_from">
|
||||
<label for="zip_from">{{ __('admin::app.configuration.tax-rates.zip_from') }}</label>
|
||||
|
||||
<input v-validate="'numeric'" class="control" name="zip_from" value="{{ old('zip_from') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('zip_from')">@{{ errors.first('zip_from') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('zip_to') ? 'has-error' : '']" id="zip_to">
|
||||
<label for="zip_to">{{ __('admin::app.configuration.tax-rates.zip_to') }}</label>
|
||||
|
||||
<input v-validate="'numeric'" class="control" name="zip_to" value="{{ old('zip_to') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('zip_to')">@{{ errors.first('zip_to') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('tax_rate') ? 'has-error' : '']">
|
||||
<label for="tax_rate" class="required">{{ __('admin::app.configuration.tax-rates.tax_rate') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="tax_rate" name="tax_rate" value="{{ old('tax_rate') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('tax_rate')">@{{ errors.first('tax_rate') }}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@push('scripts')
|
||||
<script>
|
||||
|
||||
window.onload = function () {
|
||||
document.getElementById("zip_from").style.display = "none";
|
||||
|
||||
document.getElementById("zip_to").style.display = "none";
|
||||
};
|
||||
|
||||
function myFunction() {
|
||||
value = document.getElementById('is_zip').checked;
|
||||
|
||||
// console.log(value);
|
||||
|
||||
if(value) {
|
||||
document.getElementById("zip_from").style.display = "";
|
||||
|
||||
document.getElementById("zip_to").style.display = "";
|
||||
|
||||
document.getElementById("zip_code").style.display = "none";
|
||||
} else {
|
||||
document.getElementById("zip_from").style.display = "none";
|
||||
|
||||
document.getElementById("zip_to").style.display = "none";
|
||||
|
||||
document.getElementById("zip_code").style.display = "";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@endpush
|
||||
@stop
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.configuration.taxrate.title') }}
|
||||
{{ __('admin::app.configuration.tax-rates.title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<form method="POST" action="{{ route('admin.taxrate.update', $data['id']) }}" @submit.prevent="onSubmit">
|
||||
<form method="POST" action="{{ route('admin.tax-rates.update', $data['id']) }}" @submit.prevent="onSubmit">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.configuration.taxrate.edit.title') }}</h1>
|
||||
<h1>{{ __('admin::app.configuration.tax-rates.edit.title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.configuration.taxrate.edit.edit-button-title') }}
|
||||
{{ __('admin::app.configuration.tax-rates.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -23,11 +23,11 @@
|
|||
<div class="form-container">
|
||||
@method('PUT')
|
||||
@csrf()
|
||||
<accordian :title="'{{ __('admin::app.configuration.taxrate.general') }}'" :active="true">
|
||||
<accordian :title="'{{ __('admin::app.configuration.tax-rates.general') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<div class="control-group" :class="[errors.has('identifier') ? 'has-error' : '']">
|
||||
<label for="identifier" class="required">{{ __('admin::app.configuration.taxrate.identifier') }}</label>
|
||||
<label for="identifier" class="required">{{ __('admin::app.configuration.tax-rates.identifier') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="identifier" name="identifier" value="{{ $data['identifier'] }}"/>
|
||||
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('zip_from') ? 'has-error' : '']">
|
||||
<label for="zip_from" class="required">{{ __('admin::app.configuration.taxrate.zip_from') }}</label>
|
||||
<label for="zip_from" class="required">{{ __('admin::app.configuration.tax-rates.zip_from') }}</label>
|
||||
|
||||
<input v-validate="'numeric'" class="control" id="zip_from" name="zip_from" value="{{ $data['zip_from'] }}" />
|
||||
|
||||
|
|
@ -53,7 +53,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('zip_to') ? 'has-error' : '']">
|
||||
<label for="zip_to" class="required">{{ __('admin::app.configuration.taxrate.zip_to') }}</label>
|
||||
<label for="zip_to" class="required">{{ __('admin::app.configuration.tax-rates.zip_to') }}</label>
|
||||
|
||||
<input v-validate="'numeric'" class="control" id="zip_to" name="zip_to" value="{{ $data['zip_to'] }}" />
|
||||
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('state') ? 'has-error' : '']">
|
||||
<label for="state" class="required">{{ __('admin::app.configuration.taxrate.state') }}</label>
|
||||
<label for="state" class="required">{{ __('admin::app.configuration.tax-rates.state') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="state" name="state" value="{{ $data['state'] }}" />
|
||||
|
||||
|
|
@ -69,7 +69,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('country') ? 'has-error' : '']">
|
||||
<label for="country" class="required">{{ __('admin::app.configuration.taxrate.country') }}</label>
|
||||
<label for="country" class="required">{{ __('admin::app.configuration.tax-rates.country') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="country" name="country" value="{{ $data['country'] }}" />
|
||||
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('tax_rate') ? 'has-error' : '']">
|
||||
<label for="tax_rate" class="required">{{ __('admin::app.configuration.taxrate.tax_rate') }}</label>
|
||||
<label for="tax_rate" class="required">{{ __('admin::app.configuration.tax-rates.tax_rate') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="tax_rate" name="tax_rate" value="{{ $data['tax_rate'] }}" />
|
||||
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.configuration.taxrate.title') }}
|
||||
{{ __('admin::app.configuration.tax-rates.title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.configuration.taxrate.title') }}</h1>
|
||||
<h1>{{ __('admin::app.configuration.tax-rates.title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.taxrate.show') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.configuration.taxrate.title') }}
|
||||
<a href="{{ route('admin.tax-rates.show') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.configuration.tax-rates.title') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,126 +0,0 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.configuration.taxrate.title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<form method="POST" action="{{ route('admin.taxrate.create') }}" @submit.prevent="onSubmit">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.configuration.taxrate.title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.configuration.taxrule.create') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<div class="control-group" :class="[errors.has('identifier') ? 'has-error' : '']">
|
||||
<label for="identifier" class="required">{{ __('admin::app.configuration.taxrate.identifier') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="identifier" name="identifier" value="{{ old('identifier') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('identifier')">@{{ errors.first('identifier') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('state') ? 'has-error' : '']">
|
||||
<label for="state" class="required">{{ __('admin::app.configuration.taxrate.state') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="state" name="state" value="{{ old('state') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('state')">@{{ errors.first('state') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('country') ? 'has-error' : '']">
|
||||
<label for="country" class="required">{{ __('admin::app.configuration.taxrate.country') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="country" name="country" value="{{ old('country') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('country')">@{{ errors.first('country') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<span class="checkbox">
|
||||
|
||||
<input type="checkbox" id="is_zip" name="is_zip" onclick="myFunction()">
|
||||
|
||||
<label class="checkbox-view" for="is_zip"></label>
|
||||
Enable Zip Range
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('zip_code') ? 'has-error' : '']" id="zip_code">
|
||||
<label for="zip_code">{{ __('admin::app.configuration.taxrate.zip_code') }}</label>
|
||||
|
||||
<input class="control" id="zip_code" name="zip_code" value="{{ old('zip_code') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('zip_code')">@{{ errors.first('zip_code') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('zip_from') ? 'has-error' : '']" id="zip_from">
|
||||
<label for="zip_from">{{ __('admin::app.configuration.taxrate.zip_from') }}</label>
|
||||
|
||||
<input v-validate="'numeric'" class="control" name="zip_from" value="{{ old('zip_from') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('zip_from')">@{{ errors.first('zip_from') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('zip_to') ? 'has-error' : '']" id="zip_to">
|
||||
<label for="zip_to">{{ __('admin::app.configuration.taxrate.zip_to') }}</label>
|
||||
|
||||
<input v-validate="'numeric'" class="control" name="zip_to" value="{{ old('zip_to') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('zip_to')">@{{ errors.first('zip_to') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('tax_rate') ? 'has-error' : '']">
|
||||
<label for="tax_rate" class="required">{{ __('admin::app.configuration.taxrate.tax_rate') }}</label>
|
||||
|
||||
<input v-validate="'required'" class="control" id="tax_rate" name="tax_rate" value="{{ old('tax_rate') }}"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('tax_rate')">@{{ errors.first('tax_rate') }}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@push('scripts')
|
||||
<script>
|
||||
|
||||
window.onload = function () {
|
||||
document.getElementById("zip_from").style.display = "none";
|
||||
|
||||
document.getElementById("zip_to").style.display = "none";
|
||||
};
|
||||
|
||||
function myFunction() {
|
||||
value = document.getElementById('is_zip').checked;
|
||||
|
||||
// console.log(value);
|
||||
|
||||
if(value) {
|
||||
document.getElementById("zip_from").style.display = "";
|
||||
|
||||
document.getElementById("zip_to").style.display = "";
|
||||
|
||||
document.getElementById("zip_code").style.display = "none";
|
||||
} else {
|
||||
document.getElementById("zip_from").style.display = "none";
|
||||
|
||||
document.getElementById("zip_to").style.display = "none";
|
||||
|
||||
document.getElementById("zip_code").style.display = "";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@endpush
|
||||
@stop
|
||||
|
|
@ -153,7 +153,7 @@ class Cart {
|
|||
|
||||
$itemData = $this->prepareItemData($id, $data);
|
||||
|
||||
if($itemData == false) {
|
||||
if(!$itemData) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,8 +10,9 @@ use Webkul\Core\Models\TaxCategory as TaxCategory;
|
|||
use Webkul\Core\Models\TaxRate as TaxRate;
|
||||
use Webkul\Core\Repositories\CurrencyRepository;
|
||||
use Webkul\Core\Repositories\ExchangeRateRepository;
|
||||
use Webkul\Core\Repositories\CountryRepository;
|
||||
use Webkul\Core\Repositories\CountryStateRepository;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
use PragmaRX\Countries\Package\Countries;
|
||||
|
||||
class Core
|
||||
{
|
||||
|
|
@ -29,21 +30,43 @@ class Core
|
|||
*/
|
||||
protected $exchangeRateRepository;
|
||||
|
||||
/**
|
||||
* CountryRepository model
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
protected $countryRepository;
|
||||
|
||||
/**
|
||||
* CountryStateRepository model
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
protected $countryStateRepository;
|
||||
|
||||
/**
|
||||
* Create a new instance.
|
||||
*
|
||||
* @param Webkul\Core\Repositories\CurrencyRepository $currencyRepository
|
||||
* @param Webkul\Core\Repositories\ExchangeRateRepository $exchangeRateRepository
|
||||
* @param Webkul\Core\Repositories\CountryRepository $countryRepository
|
||||
* @param Webkul\Core\Repositories\CountryStateRepository $countryStateRepository
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
CurrencyRepository $currencyRepository,
|
||||
ExchangeRateRepository $exchangeRateRepository
|
||||
ExchangeRateRepository $exchangeRateRepository,
|
||||
CountryRepository $countryRepository,
|
||||
CountryStateRepository $countryStateRepository
|
||||
)
|
||||
{
|
||||
$this->currencyRepository = $currencyRepository;
|
||||
|
||||
$this->exchangeRateRepository = $exchangeRateRepository;
|
||||
|
||||
$this->countryRepository = $countryRepository;
|
||||
|
||||
$this->countryStateRepository = $countryStateRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -386,9 +409,7 @@ class Core
|
|||
// $timezonelist = \DateTimeZone::listIdentifiers(\DateTimeZone::ALL);
|
||||
|
||||
/**
|
||||
* Find all the tax
|
||||
* rates associated
|
||||
* with a tax category.
|
||||
* Find all the tax rates associated with a tax category.
|
||||
*
|
||||
* @return Array
|
||||
*/
|
||||
|
|
@ -398,8 +419,7 @@ class Core
|
|||
}
|
||||
|
||||
/**
|
||||
* To fetch all
|
||||
* tax rates.
|
||||
* To fetch all tax rates.
|
||||
*
|
||||
* @return Collection
|
||||
*/
|
||||
|
|
@ -451,9 +471,7 @@ class Core
|
|||
*/
|
||||
public function countries()
|
||||
{
|
||||
$countries = new Countries;
|
||||
|
||||
return $countries->all()->pluck('name.common', 'cca2');
|
||||
return $this->countryRepository->all();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -463,14 +481,7 @@ class Core
|
|||
*/
|
||||
public function states($countryCode)
|
||||
{
|
||||
$countries = new Countries;
|
||||
|
||||
return $countries->where('cca2', $countryCode)
|
||||
->first()
|
||||
->hydrateStates()
|
||||
->states
|
||||
->sortBy('name')
|
||||
->pluck('name', 'postal');
|
||||
return $this->countryStateRepository->findByField('country_code', $countryCode);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -482,8 +493,8 @@ class Core
|
|||
{
|
||||
$collection = [];
|
||||
|
||||
foreach ($this->countries() as $countryCode => $countryName) {
|
||||
$collection[$countryCode] = $this->states($countryCode)->toArray();
|
||||
foreach ($this->countries() as $country) {
|
||||
$collection[$country->code] = $this->states($country->code)->toArray();
|
||||
}
|
||||
|
||||
return $collection;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -17,8 +17,6 @@ class CreateCountriesTable extends Migration
|
|||
$table->increments('id');
|
||||
$table->string('code');
|
||||
$table->string('name');
|
||||
$table->boolean('status')->default(0);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateCountryTranslationsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('country_translations', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->string('locale');
|
||||
$table->text('name')->nullable();
|
||||
|
||||
$table->integer('country_id')->unsigned();
|
||||
$table->foreign('country_id')->references('id')->on('countries')->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('country_translations');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateCountryStatesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('country_states', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->string('country_code')->nullable();
|
||||
$table->string('code')->nullable();
|
||||
$table->string('default_name')->nullable();
|
||||
|
||||
$table->integer('country_id')->nullable()->unsigned();
|
||||
$table->foreign('country_id')->references('id')->on('countries')->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('country_states');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateCountryStateTranslationsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('country_state_translations', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->string('locale');
|
||||
$table->text('name')->nullable();
|
||||
|
||||
$table->integer('country_state_id')->unsigned();
|
||||
$table->foreign('country_state_id')->references('id')->on('country_states')->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('country_state_translations');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Core\Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use DB;
|
||||
|
||||
class CountriesTableSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
DB::table('countries')->delete();
|
||||
|
||||
$countries = json_decode(file_get_contents(__DIR__ . '/../../Data/countries.json'), true);
|
||||
|
||||
DB::table('countries')->insert($countries);
|
||||
}
|
||||
}
|
||||
|
|
@ -3,16 +3,18 @@
|
|||
namespace Webkul\Core\Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Webkul\Core\Models\Currency;
|
||||
use DB;
|
||||
|
||||
class CurrencyTableSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
$currency = new Currency();
|
||||
$locale->code = 'USD';
|
||||
$locale->name = 'US Dollar';
|
||||
$locale->symbol = '$';
|
||||
$locale->save();
|
||||
DB::table('currencies')->delete();
|
||||
|
||||
DB::table('currencies')->insert([
|
||||
'code' => 'USD',
|
||||
'name' => 'US Dollar',
|
||||
'symbol' => '$',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -14,5 +14,8 @@ class DatabaseSeeder extends Seeder
|
|||
public function run()
|
||||
{
|
||||
$this->call(LocalesTableSeeder::class);
|
||||
$this->call(LocalesTableSeeder::class);
|
||||
$this->call(CountriesTableSeeder::class);
|
||||
$this->call(StatesTableSeeder::class);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,22 +3,20 @@
|
|||
namespace Webkul\Core\Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Webkul\Core\Models\Locale;
|
||||
use DB;
|
||||
|
||||
class LocalesTableSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
\Illuminate\Database\Eloquent\Model::reguard();
|
||||
DB::table('locales')->delete();
|
||||
|
||||
$locale = new Locale();
|
||||
$locale->code = 'en';
|
||||
$locale->name = 'English';
|
||||
$locale->save();
|
||||
|
||||
$locale = new Locale();
|
||||
$locale->code = 'fr';
|
||||
$locale->name = 'French';
|
||||
$locale->save();
|
||||
DB::table('locales')->insert([
|
||||
'code' => 'en',
|
||||
'name' => 'English',
|
||||
], [
|
||||
'code' => 'fr',
|
||||
'name' => 'French',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Core\Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use DB;
|
||||
|
||||
class StatesTableSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
DB::table('country_states')->delete();
|
||||
|
||||
$states = json_decode(file_get_contents(__DIR__ . '/../../Data/states.json'), true);
|
||||
|
||||
DB::table('country_states')->insert($states);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Core\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Webkul\Core\Repositories\CountryRepository as Country;
|
||||
|
||||
/**
|
||||
* Country controller
|
||||
*
|
||||
* @author Jitendra Singh <jitendra@webkul.com>
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
class CountryController extends Controller
|
||||
{
|
||||
/**
|
||||
* Contains route related configuration
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_config;
|
||||
|
||||
/**
|
||||
* CountryRepository object
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $country;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @param Webkul\Core\Repositories\CountryRepository $country
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Country $country)
|
||||
{
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->country = $country;
|
||||
|
||||
$this->_config = request('_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view($this->_config['view']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view($this->_config['view']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$this->validate(request(), [
|
||||
'code' => 'required|unique:countries,code',
|
||||
'name' => 'required'
|
||||
]);
|
||||
|
||||
$this->country->create(request()->all());
|
||||
|
||||
session()->flash('success', 'Country created successfully.');
|
||||
|
||||
return redirect()->route($this->_config['redirect']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
|
|
@ -6,12 +6,5 @@ use Illuminate\Database\Eloquent\Model;
|
|||
|
||||
class Country extends Model
|
||||
{
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $fillable = [
|
||||
'code', 'name'
|
||||
];
|
||||
public $timestamps = false;
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Core\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class CountryState extends Model
|
||||
{
|
||||
public $timestamps = false;
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Core\Repositories;
|
||||
|
||||
use Webkul\Core\Eloquent\Repository;
|
||||
|
||||
/**
|
||||
* CountryState Reposotory
|
||||
*
|
||||
* @author Jitendra Singh <jitendra@webkul.com>
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
class CountryStateRepository extends Repository
|
||||
{
|
||||
/**
|
||||
* Specify Model class name
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function model()
|
||||
{
|
||||
return 'Webkul\Core\Models\CountryState';
|
||||
}
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ namespace Webkul\Customer\Http\Controllers;
|
|||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Webkul\Customer\Repositories\CustomerRepository;
|
||||
|
||||
use Auth;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ use Illuminate\Http\Request;
|
|||
use Illuminate\Http\Response;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Webkul\Core\Repositories\SliderRepository as Sliders;
|
||||
use Webkul\Channel\Channel as Channel;
|
||||
|
||||
/**
|
||||
* Home page controller
|
||||
|
|
@ -28,7 +27,6 @@ use Webkul\Channel\Channel as Channel;
|
|||
|
||||
}
|
||||
public function index() {
|
||||
|
||||
$current_channel = core()->getCurrentChannel();
|
||||
|
||||
$all_sliders = $this->sliders->findWhere(['channel_id'=>$current_channel['id']]);
|
||||
|
|
|
|||
|
|
@ -12,10 +12,3 @@ $disc-price: #FF6472;
|
|||
$disc-price-pro: #A5A5A5;
|
||||
$other-font-color: #5E5E5E;
|
||||
//shop variables ends here
|
||||
|
||||
|
||||
//=======>Need to be removed
|
||||
//customer variables
|
||||
|
||||
//customer variables ends here
|
||||
//<=======Need to be removed
|
||||
|
|
|
|||
|
|
@ -540,7 +540,7 @@ section.slider-block {
|
|||
right:5px;
|
||||
}
|
||||
|
||||
/* submenu positioning*/
|
||||
/* submenu positioning */
|
||||
|
||||
.nav ul {
|
||||
position: absolute;
|
||||
|
|
@ -558,7 +558,6 @@ section.slider-block {
|
|||
.nav > li:hover > ul {
|
||||
left: auto;
|
||||
min-width: 100%;
|
||||
|
||||
}
|
||||
|
||||
.nav > li li:hover {
|
||||
|
|
@ -864,312 +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: $font-color-light;
|
||||
|
||||
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: $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 pages styles goes here
|
||||
//account layout
|
||||
.account-content {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-top: 5.5%;
|
||||
margin-bottom: 5.5%;
|
||||
|
||||
.side-menu-title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
}
|
||||
|
||||
.profile {
|
||||
margin-left: 5.5%;
|
||||
margin-top: 1%;
|
||||
width: 100%;
|
||||
|
||||
.section-head {
|
||||
.back-icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.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;
|
||||
|
||||
float: right;
|
||||
}
|
||||
|
||||
.horizontal-rule {
|
||||
margin-top: 1.1%;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
vertical-align: middle;
|
||||
background: $border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.profile-content {
|
||||
color: $other-font-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;
|
||||
|
||||
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
|
||||
|
||||
//account responsive layout start here
|
||||
@media only screen and (max-width: 720px){
|
||||
.account-content {
|
||||
flex-direction: column;
|
||||
|
||||
.side-menu-title {
|
||||
height: 48px;
|
||||
padding-top: 13px;
|
||||
border: 1px solid $border-color;
|
||||
font-size: 18px;
|
||||
display: inline-block;
|
||||
|
||||
.right {
|
||||
float: right;
|
||||
margin-top: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
.account-side-menu {
|
||||
width: 100%;
|
||||
border: none;
|
||||
margin-bottom: 20px;
|
||||
display: none;
|
||||
|
||||
li {
|
||||
width: 100%;
|
||||
margin-left: 0%;
|
||||
}
|
||||
|
||||
li a {
|
||||
color: black;
|
||||
}
|
||||
|
||||
li:last-child {
|
||||
border-bottom: 1px solid $border-color;
|
||||
}
|
||||
}
|
||||
|
||||
.profile {
|
||||
margin-left: 0px;
|
||||
|
||||
.section-head {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
border-top: 1px solid $border-color;
|
||||
border-bottom: 1px solid $border-color;
|
||||
height: 50px;
|
||||
padding-top: 7px;
|
||||
|
||||
.back-icon {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.horizontal-rule {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.profile-content {
|
||||
table {
|
||||
tbody {
|
||||
tr {
|
||||
display: grid;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.edit-form-content {
|
||||
margin-left: 0px;
|
||||
|
||||
.control-group .control {
|
||||
width:100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//account responsive layout end here
|
||||
//customers page css ends here
|
||||
|
||||
// product pages css starts here
|
||||
section.product-detail {
|
||||
color: $font-color;
|
||||
|
|
@ -2120,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;
|
||||
}
|
||||
|
|
@ -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%;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -199,6 +199,7 @@ return [
|
|||
'address2' => 'Address 2',
|
||||
'city' => 'City',
|
||||
'state' => 'State',
|
||||
'select-state' => 'Select a region, state or province.',
|
||||
'postcode' => 'Zip/Postcode',
|
||||
'phone' => 'Telephone',
|
||||
'country' => 'Country',
|
||||
|
|
|
|||
|
|
@ -142,6 +142,8 @@
|
|||
selected_payment_method: '',
|
||||
|
||||
disable_button: false,
|
||||
|
||||
countryStates: @json(core()->groupedStatesByCountries())
|
||||
}),
|
||||
|
||||
methods: {
|
||||
|
|
@ -152,6 +154,13 @@
|
|||
}
|
||||
},
|
||||
|
||||
haveStates(addressType) {
|
||||
if(this.countryStates[this.address[addressType].country] && this.countryStates[this.address[addressType].country].length)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
validateForm: function (scope) {
|
||||
this.$validator.validateAll(scope).then((result) => {
|
||||
if(result) {
|
||||
|
|
|
|||
|
|
@ -85,7 +85,18 @@
|
|||
{{ __('shop::app.checkout.onepage.state') }}
|
||||
</label>
|
||||
|
||||
<input type="text" v-validate="'required'" class="control" id="billing[state]" name="billing[state]" v-model="address.billing.state"/>
|
||||
|
||||
<input type="text" v-validate="'required'" class="control" id="billing[state]" name="billing[state]" v-model="address.billing.state" v-if="!haveStates('billing')"/>
|
||||
|
||||
<select v-validate="'required'" class="control" id="billing[state]" name="billing[state]" v-model="address.billing.state" v-if="haveStates('billing')">
|
||||
|
||||
<option value="">{{ __('shop::app.checkout.onepage.select-state') }}</option>
|
||||
|
||||
<option v-for='(state, index) in countryStates[address.billing.country]' :value="state.code">
|
||||
@{{ state.default_name }}
|
||||
</option>
|
||||
|
||||
</select>
|
||||
|
||||
<span class="control-error" v-if="errors.has('address-form.billing[state]')">
|
||||
@{{ errors.first('address-form.billing[state]') }}
|
||||
|
|
@ -104,6 +115,26 @@
|
|||
</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('address-form.billing[country]') ? 'has-error' : '']">
|
||||
<label for="billing[country]" class="required">
|
||||
{{ __('shop::app.checkout.onepage.country') }}
|
||||
</label>
|
||||
|
||||
<select type="text" v-validate="'required'" class="control" id="billing[country]" name="billing[country]" v-model="address.billing.country">
|
||||
<option value=""></option>
|
||||
|
||||
@foreach (core()->countries() as $country)
|
||||
|
||||
<option value="{{ $country->code }}">{{ $country->name }}</option>
|
||||
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
<span class="control-error" v-if="errors.has('address-form.billing[country]')">
|
||||
@{{ errors.first('address-form.billing[country]') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('address-form.billing[phone]') ? 'has-error' : '']">
|
||||
<label for="billing[phone]" class="required">
|
||||
{{ __('shop::app.checkout.onepage.phone') }}
|
||||
|
|
@ -116,26 +147,6 @@
|
|||
</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('address-form.billing[country]') ? 'has-error' : '']">
|
||||
<label for="billing[country]" class="required">
|
||||
{{ __('shop::app.checkout.onepage.country') }}
|
||||
</label>
|
||||
|
||||
<select type="text" v-validate="'required'" class="control" id="billing[country]" name="billing[country]" v-model="address.billing.country">
|
||||
<option value=""></option>
|
||||
|
||||
@foreach (core()->countries() as $code => $country)
|
||||
|
||||
<option value="{{ $code }}">{{ $country }}</option>
|
||||
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
<span class="control-error" v-if="errors.has('address-form.billing[country]')">
|
||||
@{{ errors.first('address-form.billing[country]') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<span class="checkbox">
|
||||
<input type="checkbox" id="billing[use_for_shipping]" name="billing[use_for_shipping]" v-model="address.billing.use_for_shipping"/>
|
||||
|
|
@ -225,7 +236,18 @@
|
|||
{{ __('shop::app.checkout.onepage.state') }}
|
||||
</label>
|
||||
|
||||
<input type="text" v-validate="'required'" class="control" id="shipping[state]" name="shipping[state]" v-model="address.shipping.state"/>
|
||||
|
||||
<input type="text" v-validate="'required'" class="control" id="shipping[state]" name="shipping[state]" v-model="address.shipping.state" v-if="!haveStates('shipping')"/>
|
||||
|
||||
<select v-validate="'required'" class="control" id="shipping[state]" name="shipping[state]" v-model="address.shipping.state" v-if="haveStates('shipping')">
|
||||
|
||||
<option value="">{{ __('shop::app.checkout.onepage.select-state') }}</option>
|
||||
|
||||
<option v-for='(state, index) in countryStates[address.shipping.country]' :value="state.code">
|
||||
@{{ state.default_name }}
|
||||
</option>
|
||||
|
||||
</select>
|
||||
|
||||
<span class="control-error" v-if="errors.has('address-form.shipping[state]')">
|
||||
@{{ errors.first('address-form.shipping[state]') }}
|
||||
|
|
@ -244,6 +266,26 @@
|
|||
</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('address-form.shipping[country]') ? 'has-error' : '']">
|
||||
<label for="shipping[country]" class="required">
|
||||
{{ __('shop::app.checkout.onepage.country') }}
|
||||
</label>
|
||||
|
||||
<select type="text" v-validate="'required'" class="control" id="shipping[country]" name="shipping[country]" v-model="address.shipping.country">
|
||||
<option value=""></option>
|
||||
|
||||
@foreach (core()->countries() as $country)
|
||||
|
||||
<option value="{{ $country->code }}">{{ $country->name }}</option>
|
||||
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
<span class="control-error" v-if="errors.has('address-form.shipping[country]')">
|
||||
@{{ errors.first('address-form.shipping[country]') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('address-form.shipping[phone]') ? 'has-error' : '']">
|
||||
<label for="shipping[phone]" class="required">
|
||||
{{ __('shop::app.checkout.onepage.phone') }}
|
||||
|
|
@ -255,26 +297,6 @@
|
|||
@{{ errors.first('address-form.shipping[phone]') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('address-form.shipping[country]') ? 'has-error' : '']">
|
||||
<label for="shipping[country]" class="required">
|
||||
{{ __('shop::app.checkout.onepage.country') }}
|
||||
</label>
|
||||
|
||||
<select type="text" v-validate="'required'" class="control" id="shipping[country]" name="shipping[country]" v-model="address.shipping.country">
|
||||
<option value=""></option>
|
||||
|
||||
@foreach (core()->countries() as $code => $country)
|
||||
|
||||
<option value="{{ $code }}">{{ $country }}</option>
|
||||
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
<span class="control-error" v-if="errors.has('address-form.shipping[country]')">
|
||||
@{{ errors.first('address-form.shipping[country]') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
|
@ -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/>
|
||||
|
|
|
|||
|
|
@ -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' : '']">
|
||||
|
|
|
|||
|
|
@ -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' : '']">
|
||||
|
|
|
|||
|
|
@ -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') }}">
|
||||
|
|
|
|||
|
|
@ -8,16 +8,22 @@
|
|||
|
||||
@include('shop::customers.account.partials.sidemenu')
|
||||
|
||||
<div class="account 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="back-icon"><a href="{{ route('customer.account.index') }}"><i class="icon icon-menu-back"></i></a></span>
|
||||
<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>
|
||||
|
|
@ -51,10 +57,7 @@
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
@endsection
|
||||
@section('content-wrapper')
|
||||
|
||||
<div class="content">
|
||||
<div class="auth-content">
|
||||
|
||||
<form method="post" action="{{ route('customer.forgot-password.store') }}">
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
@section('content-wrapper')
|
||||
|
||||
<div class="content">
|
||||
<div class="auth-content">
|
||||
|
||||
<form method="post" action="{{ route('customer.reset-password.store') }}" >
|
||||
|
||||
|
|
|
|||
|
|
@ -14,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>
|
||||
|
|
@ -169,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">
|
||||
|
|
@ -235,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>
|
||||
|
|
@ -246,13 +246,13 @@
|
|||
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -33,8 +33,6 @@
|
|||
@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>
|
||||
|
||||
@include('shop::products.wishlist')
|
||||
@else
|
||||
<form action="{{route('cart.add', $product->id)}}" method="POST">
|
||||
@csrf
|
||||
|
|
@ -43,6 +41,7 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -77,8 +77,6 @@ class TaxCategoryController extends Controller
|
|||
'description' => 'required|string'
|
||||
]);
|
||||
|
||||
dd($data);
|
||||
|
||||
if($currentTaxRule = $this->taxRule->create(request()->input())) {
|
||||
$allTaxRules = $data['taxrates'];
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,14 @@ class TaxServiceProvider extends ServiceProvider
|
|||
public function boot(Router $router)
|
||||
{
|
||||
$this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -111,15 +123,15 @@
|
|||
|
||||
.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;
|
||||
}
|
||||
|
|
@ -205,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%;
|
||||
|
|
@ -295,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;
|
||||
|
|
@ -1085,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 {
|
||||
|
|
@ -1485,6 +1524,7 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
.content {
|
||||
padding-top: 15%;
|
||||
padding-bottom: 15%;
|
||||
|
|
@ -1785,6 +1825,8 @@ section.slider-block div.slider-content div.slider-control .light-right-icon {
|
|||
}
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> 4bd252edde6f5f1b7ccb356b0c09c593c9fc0cfc
|
||||
section.product-detail {
|
||||
color: #242424;
|
||||
}
|
||||
|
|
@ -2757,12 +2799,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;
|
||||
|
|
@ -2770,42 +2875,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: #0031F0;
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue