commit
66639afb6c
|
|
@ -20,6 +20,7 @@
|
||||||
"konekt/concord": "^1.2",
|
"konekt/concord": "^1.2",
|
||||||
"laravel/framework": "5.6.*",
|
"laravel/framework": "5.6.*",
|
||||||
"laravel/tinker": "^1.0",
|
"laravel/tinker": "^1.0",
|
||||||
|
"maatwebsite/excel": "3.1.x-dev",
|
||||||
"nwidart/laravel-modules": "^3.2",
|
"nwidart/laravel-modules": "^3.2",
|
||||||
"prettus/l5-repository": "^2.6",
|
"prettus/l5-repository": "^2.6",
|
||||||
"propaganistas/laravel-intl": "^2.0"
|
"propaganistas/laravel-intl": "^2.0"
|
||||||
|
|
|
||||||
|
|
@ -194,6 +194,9 @@ return [
|
||||||
//Laravel Intervention
|
//Laravel Intervention
|
||||||
Intervention\Image\ImageServiceProvider::class,
|
Intervention\Image\ImageServiceProvider::class,
|
||||||
|
|
||||||
|
//Laravel Maatwebsite
|
||||||
|
Maatwebsite\Excel\ExcelServiceProvider::class,
|
||||||
|
|
||||||
//Repository
|
//Repository
|
||||||
Prettus\Repository\Providers\RepositoryServiceProvider::class,
|
Prettus\Repository\Providers\RepositoryServiceProvider::class,
|
||||||
Konekt\Concord\ConcordServiceProvider::class,
|
Konekt\Concord\ConcordServiceProvider::class,
|
||||||
|
|
@ -274,5 +277,6 @@ return [
|
||||||
'Core' => Webkul\Core\Facades\Core::class,
|
'Core' => Webkul\Core\Facades\Core::class,
|
||||||
'DbView' => Flynsarmy\DbBladeCompiler\Facades\DbView::class,
|
'DbView' => Flynsarmy\DbBladeCompiler\Facades\DbView::class,
|
||||||
'PDF' => Barryvdh\DomPDF\Facade::class,
|
'PDF' => Barryvdh\DomPDF\Facade::class,
|
||||||
|
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
@ -0,0 +1,112 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Maatwebsite\Excel\Excel;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exports' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Chunk size
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When using FromQuery, the query is automatically chunked.
|
||||||
|
| Here you can specify how big the chunk should be.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'chunk_size' => 1000,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Temporary path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When exporting files, we use a temporary file, before storing
|
||||||
|
| or downloading. Here you can customize that path.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'temp_path' => sys_get_temp_dir(),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Pre-calculate formulas during export
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'pre_calculate_formulas' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| CSV Settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Configure e.g. delimiter, enclosure and line ending for CSV exports.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'csv' => [
|
||||||
|
'delimiter' => ',',
|
||||||
|
'enclosure' => '"',
|
||||||
|
'line_ending' => PHP_EOL,
|
||||||
|
'use_bom' => false,
|
||||||
|
'include_separator_line' => false,
|
||||||
|
'excel_compatibility' => false,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'imports' => [
|
||||||
|
|
||||||
|
'read_only' => true,
|
||||||
|
|
||||||
|
'heading_row' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Heading Row Formatter
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Configure the heading row formatter.
|
||||||
|
| Available options: none|slug|custom
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'formatter' => 'slug',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Extension detector
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Configure here which writer type should be used when
|
||||||
|
| the package needs to guess the correct type
|
||||||
|
| based on the extension alone.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'extension_detector' => [
|
||||||
|
'xlsx' => Excel::XLSX,
|
||||||
|
'xlsm' => Excel::XLSX,
|
||||||
|
'xltx' => Excel::XLSX,
|
||||||
|
'xltm' => Excel::XLSX,
|
||||||
|
'xls' => Excel::XLS,
|
||||||
|
'xlt' => Excel::XLS,
|
||||||
|
'ods' => Excel::ODS,
|
||||||
|
'ots' => Excel::ODS,
|
||||||
|
'slk' => Excel::SLK,
|
||||||
|
'xml' => Excel::XML,
|
||||||
|
'gnumeric' => Excel::GNUMERIC,
|
||||||
|
'htm' => Excel::HTML,
|
||||||
|
'html' => Excel::HTML,
|
||||||
|
'csv' => Excel::CSV,
|
||||||
|
'tsv' => Excel::TSV,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| PDF Extension
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Configure here which Pdf driver should be used by default.
|
||||||
|
| Available options: Excel::MPDF | Excel::TCPDF | Excel::DOMPDF
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'pdf' => Excel::DOMPDF,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
@ -25,18 +25,18 @@ class CustomerDataGrid
|
||||||
|
|
||||||
return DataGrid::make([
|
return DataGrid::make([
|
||||||
'name' => 'Customer',
|
'name' => 'Customer',
|
||||||
'table' => 'customers',
|
'table' => 'customers as cus',
|
||||||
'select' => 'id',
|
'select' => 'cus.id',
|
||||||
'perpage' => 10,
|
'perpage' => 10,
|
||||||
'aliased' => true, //use this with false as default and true in case of joins
|
'aliased' => true, //use this with false as default and true in case of joins
|
||||||
|
|
||||||
'massoperations' =>[
|
'massoperations' =>[
|
||||||
// [
|
[
|
||||||
// 'route' => route('admin.datagrid.delete'),
|
'route' => route('admin.datagrid.delete'),
|
||||||
// 'method' => 'DELETE',
|
'method' => 'DELETE',
|
||||||
// 'label' => 'Delete',
|
'label' => 'Delete',
|
||||||
// 'type' => 'button', //select || button only
|
'type' => 'button', //select || button only
|
||||||
// ],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
'actions' => [
|
'actions' => [
|
||||||
|
|
@ -54,13 +54,19 @@ class CustomerDataGrid
|
||||||
],
|
],
|
||||||
|
|
||||||
'join' => [
|
'join' => [
|
||||||
|
[
|
||||||
|
'join' => 'leftjoin',
|
||||||
|
'table' => 'customer_groups as cg',
|
||||||
|
'primaryKey' => 'cus.customer_group_id',
|
||||||
|
'condition' => '=',
|
||||||
|
'secondaryKey' => 'cg.id',
|
||||||
|
]
|
||||||
],
|
],
|
||||||
|
|
||||||
//use aliasing on secodary columns if join is performed
|
//use aliasing on secodary columns if join is performed
|
||||||
'columns' => [
|
'columns' => [
|
||||||
[
|
[
|
||||||
'name' => 'id',
|
'name' => 'cus.id',
|
||||||
'alias' => 'ID',
|
'alias' => 'ID',
|
||||||
'type' => 'number',
|
'type' => 'number',
|
||||||
'label' => 'ID',
|
'label' => 'ID',
|
||||||
|
|
@ -78,10 +84,10 @@ class CustomerDataGrid
|
||||||
'label' => 'Email',
|
'label' => 'Email',
|
||||||
'sortable' => false,
|
'sortable' => false,
|
||||||
], [
|
], [
|
||||||
'name' => 'customer_group_id',
|
'name' => 'cg.name',
|
||||||
'alias' => 'CustomerGroupId',
|
'alias' => 'CustomerGroupName',
|
||||||
'type' => 'number',
|
'type' => 'string',
|
||||||
'label' => 'Group ID',
|
'label' => 'Group Name',
|
||||||
'sortable' => false,
|
'sortable' => false,
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
@ -89,7 +95,7 @@ class CustomerDataGrid
|
||||||
//don't use aliasing in case of filters
|
//don't use aliasing in case of filters
|
||||||
'filterable' => [
|
'filterable' => [
|
||||||
[
|
[
|
||||||
'column' => 'id',
|
'column' => 'cus.id',
|
||||||
'alias' => 'ID',
|
'alias' => 'ID',
|
||||||
'type' => 'number',
|
'type' => 'number',
|
||||||
'label' => 'ID',
|
'label' => 'ID',
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ class Handler extends ExceptionHandler
|
||||||
*/
|
*/
|
||||||
public function render($request, Exception $exception)
|
public function render($request, Exception $exception)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ($exception instanceof HttpException) {
|
if ($exception instanceof HttpException) {
|
||||||
$statusCode = $exception->getStatusCode();
|
$statusCode = $exception->getStatusCode();
|
||||||
if (strpos($_SERVER['REQUEST_URI'], 'admin') !== false) {
|
if (strpos($_SERVER['REQUEST_URI'], 'admin') !== false) {
|
||||||
|
|
@ -53,27 +54,26 @@ class Handler extends ExceptionHandler
|
||||||
return response()->view('shop::errors.500', [], 500);
|
return response()->view('shop::errors.500', [], 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ($exception instanceof ModelNotFoundException) {
|
} else if ($exception instanceof \ModelNotFoundException) {
|
||||||
if (strpos($_SERVER['REQUEST_URI'], 'admin') !== false){
|
if (strpos($_SERVER['REQUEST_URI'], 'admin') !== false){
|
||||||
return response()->view('admin::errors.404', [], 404);
|
return response()->view('admin::errors.404', [], 404);
|
||||||
}else {
|
}else {
|
||||||
return response()->view('shop::errors.404', [], 404);
|
return response()->view('shop::errors.404', [], 404);
|
||||||
}
|
}
|
||||||
} else if ($exception instanceof PDOException) {
|
} else if ($exception instanceof \PDOException) {
|
||||||
if (strpos($_SERVER['REQUEST_URI'], 'admin') !== false){
|
if (strpos($_SERVER['REQUEST_URI'], 'admin') !== false){
|
||||||
return response()->view('admin::errors.500', [], 500);
|
return response()->view('admin::errors.500', [], 500);
|
||||||
} else {
|
} else {
|
||||||
return response()->view('shop::errors.500', [], 500);
|
return response()->view('shop::errors.500', [], 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// else if ($exception instanceof ErrorException) {
|
// else if ($exception instanceof \ErrorException) {
|
||||||
|
|
||||||
// if(strpos($_SERVER['REQUEST_URI'], 'admin') !== false){
|
// if(strpos($_SERVER['REQUEST_URI'], 'admin') !== false){
|
||||||
// return response()->view('admin::errors.500', [], 500);
|
// return response()->view('admin::errors.500', [], 500);
|
||||||
// }else {
|
// }else {
|
||||||
// return response()->view('shop::errors.500', [], 500);
|
// return response()->view('shop::errors.500', [], 500);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
return parent::render($request, $exception);
|
return parent::render($request, $exception);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Webkul\Admin\Exports;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\View\View;
|
||||||
|
use Maatwebsite\Excel\Concerns\FromView;
|
||||||
|
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataGridExport class
|
||||||
|
*
|
||||||
|
* @author Rahul Shukla <rahulshukla.symfony517@webkul.com>
|
||||||
|
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
class DataGridExport implements FromView, ShouldAutoSize
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataGrid instance
|
||||||
|
*
|
||||||
|
* @var mixed
|
||||||
|
*/
|
||||||
|
public $gridData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new instance.
|
||||||
|
*
|
||||||
|
* @param mixed DataGrid
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct($gridData)
|
||||||
|
{
|
||||||
|
$this->gridData = $gridData;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function view(): View
|
||||||
|
{
|
||||||
|
$results = $this->gridData->render();
|
||||||
|
|
||||||
|
$header = [];
|
||||||
|
foreach($results->columns as $col) {
|
||||||
|
$header[] = $col->label;
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('admin::export.export', [
|
||||||
|
'results' => $this->gridData->render()->results,
|
||||||
|
'columns' => $this->gridData->render()->columns,
|
||||||
|
'header' => $header
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -9,6 +9,10 @@ use Webkul\Customer\Repositories\CustomerRepository as Customer;
|
||||||
use Webkul\Customer\Repositories\CustomerGroupRepository as CustomerGroup;
|
use Webkul\Customer\Repositories\CustomerGroupRepository as CustomerGroup;
|
||||||
use Webkul\Core\Repositories\ChannelRepository as Channel;
|
use Webkul\Core\Repositories\ChannelRepository as Channel;
|
||||||
|
|
||||||
|
use Webkul\Admin\DataGrids\CustomerDataGrid as CustomerDataGrid;
|
||||||
|
use Webkul\Admin\Exports\DataGridExport;
|
||||||
|
use Excel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Customer controlller
|
* Customer controlller
|
||||||
*
|
*
|
||||||
|
|
@ -45,23 +49,36 @@ class CustomerController extends Controller
|
||||||
*/
|
*/
|
||||||
protected $channel;
|
protected $channel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CustomerDataGrid object
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $customerDataGrid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new controller instance.
|
* Create a new controller instance.
|
||||||
*
|
*
|
||||||
* @param Webkul\Customer\Repositories\CustomerRepository as customer;
|
* @param Webkul\Customer\Repositories\CustomerRepository as customer;
|
||||||
* @param Webkul\Customer\Repositories\CustomerGroupRepository as customerGroup;
|
* @param Webkul\Customer\Repositories\CustomerGroupRepository as customerGroup;
|
||||||
* @param Webkul\Core\Repositories\ChannelRepository as Channel;
|
* @param Webkul\Core\Repositories\ChannelRepository as Channel;
|
||||||
|
* @param Webkul\Admin\DataGrids\CustomerDataGrid as customerDataGrid;
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function __construct(Customer $customer, CustomerGroup $customerGroup, Channel $channel )
|
public function __construct(Customer $customer, CustomerGroup $customerGroup, Channel $channel, CustomerDataGrid $customerDataGrid)
|
||||||
{
|
{
|
||||||
$this->_config = request('_config');
|
$this->_config = request('_config');
|
||||||
|
|
||||||
|
$this->middleware('admin');
|
||||||
|
|
||||||
$this->customer = $customer;
|
$this->customer = $customer;
|
||||||
|
|
||||||
$this->customerGroup = $customerGroup;
|
$this->customerGroup = $customerGroup;
|
||||||
|
|
||||||
$this->channel = $channel;
|
$this->channel = $channel;
|
||||||
|
|
||||||
|
$this->customerDataGrid = $customerDataGrid;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -173,4 +190,15 @@ class CustomerController extends Controller
|
||||||
|
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function to export datagrid
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function export()
|
||||||
|
{
|
||||||
|
$data = $this->customerDataGrid;
|
||||||
|
|
||||||
|
return Excel::download(new DataGridExport($data), 'customers.xlsx');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,8 @@ class CustomerGroupController extends Controller
|
||||||
{
|
{
|
||||||
$this->_config = request('_config');
|
$this->_config = request('_config');
|
||||||
|
|
||||||
|
$this->middleware('admin');
|
||||||
|
|
||||||
$this->customerGroup = $customerGroup;
|
$this->customerGroup = $customerGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,9 @@ Route::group(['middleware' => ['web']], function () {
|
||||||
|
|
||||||
Route::get('customers/delete/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@destroy')->name('admin.customer.delete');
|
Route::get('customers/delete/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@destroy')->name('admin.customer.delete');
|
||||||
|
|
||||||
|
//DataGrid Export
|
||||||
|
Route::get('customer-export', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@export')->name('admin.customer.export');
|
||||||
|
|
||||||
Route::get('reviews', 'Webkul\Product\Http\Controllers\ReviewController@index')->defaults('_config',[
|
Route::get('reviews', 'Webkul\Product\Http\Controllers\ReviewController@index')->defaults('_config',[
|
||||||
'view' => 'admin::customers.review.index'
|
'view' => 'admin::customers.review.index'
|
||||||
])->name('admin.customer.review.index');
|
])->name('admin.customer.review.index');
|
||||||
|
|
|
||||||
|
|
@ -531,7 +531,8 @@ return [
|
||||||
'channel_name' => 'Channel Name',
|
'channel_name' => 'Channel Name',
|
||||||
'state' => 'State',
|
'state' => 'State',
|
||||||
'select-state' => 'Select a region, state or province.',
|
'select-state' => 'Select a region, state or province.',
|
||||||
'country' => 'Country'
|
'country' => 'Country',
|
||||||
|
'export' => 'Export'
|
||||||
],
|
],
|
||||||
'reviews' => [
|
'reviews' => [
|
||||||
'title' => 'Reviews',
|
'title' => 'Reviews',
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,14 @@
|
||||||
<a href="{{ route('admin.customer.create') }}" class="btn btn-lg btn-primary">
|
<a href="{{ route('admin.customer.create') }}" class="btn btn-lg btn-primary">
|
||||||
{{ __('admin::app.customers.customers.add-title') }}
|
{{ __('admin::app.customers.customers.add-title') }}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
<a href="{{ route('admin.customer.export') }}" class="btn btn-lg btn-primary">
|
||||||
|
{{ __('admin::app.customers.customers.export') }}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="page-content">
|
<div class="page-content">
|
||||||
@inject('customer','Webkul\Admin\DataGrids\CustomerDataGrid')
|
@inject('customer','Webkul\Admin\DataGrids\CustomerDataGrid')
|
||||||
{!! $customer->render() !!}
|
{!! $customer->render() !!}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
@foreach($header as $col)
|
||||||
|
<th> {{ $col}} </th>
|
||||||
|
@endforeach
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach ($results as $result)
|
||||||
|
<tr>
|
||||||
|
@foreach ($columns as $column)
|
||||||
|
<td class="">{!! $column->render($result) !!}</td>
|
||||||
|
@endforeach
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
const { mix } = require("laravel-mix");
|
const { mix } = require("laravel-mix");
|
||||||
require("laravel-mix-merge-manifest");
|
require("laravel-mix-merge-manifest");
|
||||||
|
|
||||||
var publicPath = 'publishable/assets';
|
// var publicPath = 'publishable/assets';
|
||||||
// var publicPath = "../../../public/vendor/webkul/admin/assets";
|
var publicPath = "../../../public/vendor/webkul/admin/assets";
|
||||||
|
|
||||||
mix.setPublicPath(publicPath).mergeManifest();
|
mix.setPublicPath(publicPath).mergeManifest();
|
||||||
mix.disableNotifications();
|
mix.disableNotifications();
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ class ProductReviewRepository extends Repository
|
||||||
{
|
{
|
||||||
$customerId = auth()->guard('customer')->user()->id;
|
$customerId = auth()->guard('customer')->user()->id;
|
||||||
|
|
||||||
$reviews = $this->model->where(['customer_id'=> $customerId, 'status' => 'approved'])->with('product')->get();
|
$reviews = $this->model->where(['customer_id'=> $customerId])->with('product')->get();
|
||||||
|
|
||||||
return $reviews;
|
return $reviews;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,16 @@
|
||||||
{
|
{
|
||||||
|
<<<<<<< HEAD
|
||||||
|
"/js/shop.js": "/js/shop.js",
|
||||||
|
"/css/shop.css": "/css/shop.css"
|
||||||
|
}
|
||||||
|
=======
|
||||||
|
<<<<<<< HEAD
|
||||||
|
"/js/shop.js": "/js/shop.js",
|
||||||
|
"/css/shop.css": "/css/shop.css"
|
||||||
|
}
|
||||||
|
=======
|
||||||
"/js/shop.js": "/js/shop.js?id=c6ba9f43bd31f175a665",
|
"/js/shop.js": "/js/shop.js?id=c6ba9f43bd31f175a665",
|
||||||
"/css/shop.css": "/css/shop.css?id=2a9e3addb8dd8df86f03"
|
"/css/shop.css": "/css/shop.css?id=2a9e3addb8dd8df86f03"
|
||||||
}
|
}
|
||||||
|
>>>>>>> 2a2b1e8ec4f3e110fca0b4926f090ed506b81ce5
|
||||||
|
>>>>>>> master
|
||||||
|
|
|
||||||
|
|
@ -11,4 +11,15 @@ $disc-price: #FF6472;
|
||||||
$danger-color: #FF6472;
|
$danger-color: #FF6472;
|
||||||
$disc-price-pro: #A5A5A5;
|
$disc-price-pro: #A5A5A5;
|
||||||
$other-font-color: #5E5E5E;
|
$other-font-color: #5E5E5E;
|
||||||
|
$title-color: #8E8E8E;
|
||||||
|
$address-card-border-color: #E8E8E8;
|
||||||
|
$bold-color: #3A3A3A;
|
||||||
|
$sticker-color: #2ED04C;
|
||||||
|
$stock-color: #4CAF50;
|
||||||
|
$rating-color: #FC6868;
|
||||||
|
$star-color: #d4d4d4;
|
||||||
|
$error-color: #ff5656;
|
||||||
|
$line-bar-color: #D8D8D8;
|
||||||
|
$btn-background-color: #fff;
|
||||||
|
$info-color: #204d74;
|
||||||
//shop variables ends here
|
//shop variables ends here
|
||||||
|
|
@ -148,7 +148,7 @@ input {
|
||||||
//components
|
//components
|
||||||
.bold {
|
.bold {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #3A3A3A;
|
color: $bold-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The container */
|
/* The container */
|
||||||
|
|
@ -178,7 +178,7 @@ input {
|
||||||
height: 16px;
|
height: 16px;
|
||||||
width: 16px;
|
width: 16px;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
border: 2px solid #FF6472;
|
border: 2px solid $disc-price;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
/* Create the indicator (the dot/circle - hidden when not checked) */
|
/* Create the indicator (the dot/circle - hidden when not checked) */
|
||||||
|
|
@ -194,19 +194,10 @@ input {
|
||||||
width: 8px;
|
width: 8px;
|
||||||
height: 8px;
|
height: 8px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: #FF6472;
|
background: $disc-price;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Verify Email */
|
|
||||||
.verify-account {
|
|
||||||
width: 100%;
|
|
||||||
height: 30px;
|
|
||||||
background-color: $border-color;
|
|
||||||
line-height: 30px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Show the indicator (dot/circle) when checked */
|
/* Show the indicator (dot/circle) when checked */
|
||||||
.radio-container input:checked ~ .checkmark:after {
|
.radio-container input:checked ~ .checkmark:after {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
@ -233,13 +224,13 @@ input {
|
||||||
}
|
}
|
||||||
|
|
||||||
.regular-price {
|
.regular-price {
|
||||||
color: #A5A5A5;
|
color: $font-color-light;
|
||||||
text-decoration: line-through;
|
text-decoration: line-through;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.special-price {
|
.special-price {
|
||||||
color: #FF6472;
|
color: $disc-price;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -374,7 +365,7 @@ input {
|
||||||
max-height: 350px;
|
max-height: 350px;
|
||||||
max-width: 280px;
|
max-width: 280px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
background: #F2F2F2;
|
background: $background-color;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
@ -435,15 +426,15 @@ input {
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
padding: 4px 13px;
|
padding: 4px 13px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #fff;
|
color: $btn-background-color;
|
||||||
box-shadow: 1px 1px 1px #cccccc;
|
box-shadow: 1px 1px 1px #cccccc;
|
||||||
|
|
||||||
&.sale {
|
&.sale {
|
||||||
background: #FF6472;
|
background: $disc-price;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.new {
|
&.new {
|
||||||
background: #2ED04C;
|
background: $sticker-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -600,13 +591,6 @@ input {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media only screen and (max-width: 530px) {
|
|
||||||
.main-container-wrapper {
|
|
||||||
padding-left: 0px;
|
|
||||||
padding-right: 0px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//slider styles
|
//slider styles
|
||||||
section.slider-block {
|
section.slider-block {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
@ -773,7 +757,7 @@ section.slider-block {
|
||||||
border-bottom-right-radius: 3px;
|
border-bottom-right-radius: 3px;
|
||||||
|
|
||||||
button {
|
button {
|
||||||
background: #fff;
|
background: $btn-background-color;
|
||||||
border: 0;
|
border: 0;
|
||||||
padding: 3px 5px;
|
padding: 3px 5px;
|
||||||
}
|
}
|
||||||
|
|
@ -927,7 +911,7 @@ section.slider-block {
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-content .item-details{
|
.dropdown-content .item-details{
|
||||||
max-height: 125px;
|
height: 75px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-details .item-name {
|
.item-details .item-name {
|
||||||
|
|
@ -980,7 +964,7 @@ section.slider-block {
|
||||||
}
|
}
|
||||||
|
|
||||||
li:last-child {
|
li:last-child {
|
||||||
margin-right: 0px;
|
margin-right: -2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
|
|
@ -1145,7 +1129,6 @@ section.slider-block {
|
||||||
|
|
||||||
@media all and (max-width: 720px) {
|
@media all and (max-width: 720px) {
|
||||||
.header {
|
.header {
|
||||||
|
|
||||||
.currency-switcher {
|
.currency-switcher {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
@ -1245,7 +1228,7 @@ section.slider-block {
|
||||||
padding-top: 25px;
|
padding-top: 25px;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: #242424;
|
color: $font-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
li {
|
li {
|
||||||
|
|
@ -1319,12 +1302,16 @@ section.slider-block {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 120px;
|
height: 120px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #A5A5A5;
|
color: $font-color-light;
|
||||||
letter-spacing: -0.26px;
|
letter-spacing: -0.26px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
p {
|
||||||
|
padding: 0px 15px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//category page
|
//category page
|
||||||
|
|
@ -1353,7 +1340,7 @@ section.slider-block {
|
||||||
|
|
||||||
.filter-attributes-title {
|
.filter-attributes-title {
|
||||||
padding: 10px 40px 0 10px;
|
padding: 10px 40px 0 10px;
|
||||||
color: #5E5E5E;
|
color: $other-font-color;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
|
|
@ -1384,7 +1371,7 @@ section.slider-block {
|
||||||
|
|
||||||
li.item {
|
li.item {
|
||||||
padding: 8px 0;
|
padding: 8px 0;
|
||||||
color: #5E5E5E;
|
color: $other-font-color;
|
||||||
|
|
||||||
.checkbox {
|
.checkbox {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
@ -1426,6 +1413,7 @@ section.slider-block {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
float: none;
|
float: none;
|
||||||
padding-right: 0px;
|
padding-right: 0px;
|
||||||
|
margin-top: -25px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-block {
|
.category-block {
|
||||||
|
|
@ -1657,7 +1645,6 @@ section.product-detail {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-height: 480px;
|
max-height: 480px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
box-shadow: 1px 1px 2px $border-color;
|
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
@ -1754,10 +1741,10 @@ section.product-detail {
|
||||||
.stock-status {
|
.stock-status {
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #FC6868;
|
color: $rating-color;
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
color: #4CAF50;
|
color: $stock-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1812,7 +1799,7 @@ section.product-detail {
|
||||||
|
|
||||||
// product pages responsive css start here
|
// product pages responsive css start here
|
||||||
@media only screen and (max-width: 720px) {
|
@media only screen and (max-width: 720px) {
|
||||||
section.product-detail div.layouter form {
|
section.product-detail div.layouter .form-container {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
div.product-image-group {
|
div.product-image-group {
|
||||||
|
|
@ -1856,6 +1843,15 @@ section.product-detail {
|
||||||
width: 480px;
|
width: 480px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.wrap {
|
||||||
|
flex-direction: row;
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-to-buttons {
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1867,7 +1863,7 @@ section.product-detail {
|
||||||
}
|
}
|
||||||
|
|
||||||
@media only screen and (max-width: 510px) {
|
@media only screen and (max-width: 510px) {
|
||||||
section.product-detail div.layouter form {
|
section.product-detail div.layouter .form-container {
|
||||||
div.product-image-group {
|
div.product-image-group {
|
||||||
.product-hero-image img {
|
.product-hero-image img {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
|
|
@ -1876,11 +1872,15 @@ section.product-detail {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media only screen and (max-width: 510px) {
|
@media only screen and (max-width: 480px) {
|
||||||
section.product-detail div.layouter form {
|
section.product-detail div.layouter .form-container .details {
|
||||||
.details {
|
margin-top: 0px;
|
||||||
margin-top: -90px;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 360px) {
|
||||||
|
section.product-detail div.layouter .form-container .details {
|
||||||
|
margin-top: -120px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2521,7 +2521,7 @@ section.review {
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-name a {
|
.product-name a {
|
||||||
color: #242424;
|
color: $font-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-price {
|
.product-price {
|
||||||
|
|
@ -2547,7 +2547,7 @@ section.review {
|
||||||
width: 49%;
|
width: 49%;
|
||||||
|
|
||||||
.heading {
|
.heading {
|
||||||
color: #242424;
|
color: $font-color;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|
||||||
.right {
|
.right {
|
||||||
|
|
@ -2557,18 +2557,19 @@ section.review {
|
||||||
}
|
}
|
||||||
|
|
||||||
.rating {
|
.rating {
|
||||||
color: $font-color-light;
|
color: $bold-color;
|
||||||
|
font-size: 15px;
|
||||||
|
|
||||||
.rating-title::after {
|
.rating-title::after {
|
||||||
content: "*";
|
content: "*";
|
||||||
color: #FC6868;
|
color: $rating-color;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
label.star {
|
label.star {
|
||||||
font-size: 25px;
|
font-size: 25px;
|
||||||
color: #d4d4d4;
|
color: $star-color;
|
||||||
transition: all .2s;
|
transition: all .2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2578,36 +2579,16 @@ section.review {
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-group {
|
.control-group {
|
||||||
label {
|
|
||||||
color: $font-color-light;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
.control {
|
.control {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
color: $font-color-light;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-error {
|
.control-error {
|
||||||
color: #ff5656;
|
color: $error-color;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.write-review {
|
|
||||||
label {
|
|
||||||
color: $font-color-light;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
textarea {
|
|
||||||
margin-top: 5px;
|
|
||||||
border: 2px solid $border-color;
|
|
||||||
color: $font-color-light;
|
|
||||||
border-radius: 3px;
|
|
||||||
width: 90%;
|
|
||||||
height: 120px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.review-detail{
|
.review-detail{
|
||||||
height: 150px;
|
height: 150px;
|
||||||
border: 1px solid firebrick;
|
border: 1px solid firebrick;
|
||||||
|
|
@ -2689,10 +2670,10 @@ section.review {
|
||||||
width: calc(100% - 100px);
|
width: calc(100% - 100px);
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
background: #D8D8D8;
|
background: $line-bar-color;
|
||||||
|
|
||||||
.line-value {
|
.line-value {
|
||||||
background-color: #0031F0;
|
background-color: $brand-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2724,9 +2705,13 @@ section.review {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-left: 0px;
|
margin-left: 0px;
|
||||||
|
|
||||||
.heading .right {
|
.heading {
|
||||||
|
margin-bottom: 70px;
|
||||||
|
|
||||||
|
.right {
|
||||||
margin-top: 50px;
|
margin-top: 50px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.ratings-reviews {
|
.ratings-reviews {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
@ -2750,7 +2735,6 @@ section.review {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//review responsive css end here
|
//review responsive css end here
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2778,7 +2762,7 @@ section.review {
|
||||||
border: 1px solid $border-color;
|
border: 1px solid $border-color;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
max-width: 500px;
|
max-width: 500px;
|
||||||
min-width: 380px;
|
min-width: 320px;
|
||||||
padding: 25px;
|
padding: 25px;
|
||||||
|
|
||||||
.login-text {
|
.login-text {
|
||||||
|
|
@ -2844,7 +2828,7 @@ section.review {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: #5E5E5E;
|
color: $other-font-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
|
|
@ -3095,13 +3079,13 @@ section.review {
|
||||||
}
|
}
|
||||||
|
|
||||||
.sale-container {
|
.sale-container {
|
||||||
color: #5E5E5E;
|
color: $other-font-color;
|
||||||
|
|
||||||
.sale-section {
|
.sale-section {
|
||||||
|
|
||||||
.secton-title {
|
.secton-title {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: #8E8E8E;
|
color: $title-color;
|
||||||
padding: 15px 0;
|
padding: 15px 0;
|
||||||
border-bottom: 1px solid $border-color;
|
border-bottom: 1px solid $border-color;
|
||||||
}
|
}
|
||||||
|
|
@ -3109,7 +3093,7 @@ section.review {
|
||||||
.section-content {
|
.section-content {
|
||||||
display: block;
|
display: block;
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
border-bottom: 1px solid #E8E8E8;
|
border-bottom: 1px solid $address-card-border-color;
|
||||||
|
|
||||||
.row {
|
.row {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
@ -3138,11 +3122,11 @@ section.review {
|
||||||
.box-title {
|
.box-title {
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: #8E8E8E;
|
color: $title-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-content {
|
.box-content {
|
||||||
color: #3A3A3A;
|
color: $bold-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -3161,7 +3145,7 @@ section.review {
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-top: solid 1px #E8E8E8;
|
border-top: solid 1px $address-card-border-color;
|
||||||
|
|
||||||
.sale-summary {
|
.sale-summary {
|
||||||
height: 130px;
|
height: 130px;
|
||||||
|
|
@ -3173,7 +3157,7 @@ section.review {
|
||||||
td {
|
td {
|
||||||
padding: 5px 8px;
|
padding: 5px 8px;
|
||||||
width: auto;
|
width: auto;
|
||||||
color: #3A3A3A;
|
color: $bold-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.bold {
|
&.bold {
|
||||||
|
|
@ -3253,6 +3237,20 @@ section.review {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//verify account
|
||||||
|
.verify-account {
|
||||||
|
text-align: center;
|
||||||
|
background: $info-color;
|
||||||
|
width: 200px;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: auto;
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $btn-background-color !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// css for loader
|
// css for loader
|
||||||
.cp-spinner {
|
.cp-spinner {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
@ -3269,3 +3267,493 @@ section.review {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//css for responsive error pages
|
||||||
|
@media only screen and (max-width: 720px) {
|
||||||
|
.error-container .wrapper {
|
||||||
|
flex-direction: column-reverse !important;
|
||||||
|
margin: 10px 0px 20px 0px !important;
|
||||||
|
align-items: start !important;
|
||||||
|
height: 100% !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// rtl css start here
|
||||||
|
.rtl {
|
||||||
|
direction: rtl;
|
||||||
|
|
||||||
|
//header css start here
|
||||||
|
.header {
|
||||||
|
.header-top {
|
||||||
|
div.left-content {
|
||||||
|
ul.logo-container {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.search-container li.search-group {
|
||||||
|
.search-field {
|
||||||
|
border-left: none;
|
||||||
|
border-right: 2px solid $border-color;
|
||||||
|
padding-right: 12px;
|
||||||
|
padding-left: 0px;
|
||||||
|
}
|
||||||
|
.search-icon-wrapper {
|
||||||
|
border: 2px solid $border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
div.right-content {
|
||||||
|
.currency-switcher .dropdown-list {
|
||||||
|
left: 0px;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.cart-dropdown-container {
|
||||||
|
float: left;
|
||||||
|
margin-left: 0px;
|
||||||
|
|
||||||
|
li.cart-dropdown {
|
||||||
|
.cart-icon {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-list {
|
||||||
|
left: 0px !important;
|
||||||
|
right: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-container .dropdown-content .item img {
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-bottom {
|
||||||
|
.nav > li {
|
||||||
|
float: right;
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav a {
|
||||||
|
padding: 0.8em 0.5em 0.8em 0.3em !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav li a > .icon {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav > li li:hover > ul {
|
||||||
|
left: unset !important;
|
||||||
|
right: 100% !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-responsive .search-content .right {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-list {
|
||||||
|
text-align: right;
|
||||||
|
|
||||||
|
&.bottom-right {
|
||||||
|
left: 0px;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 720px) {
|
||||||
|
.header{
|
||||||
|
.header-top ul.right-responsive {
|
||||||
|
margin-left: 0px;
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin: 0px;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-left: -2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-bottom {
|
||||||
|
.nav > li {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
.nav li > .icon {
|
||||||
|
float: left;
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
.icon.icon-arrow-down {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// header css end here
|
||||||
|
|
||||||
|
// slider start
|
||||||
|
section.slider-block div.slider-content div.slider-control {
|
||||||
|
left: 2%;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 720px) {
|
||||||
|
section.slider-block div.slider-content div.slider-control {
|
||||||
|
left: 0%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//slider end
|
||||||
|
|
||||||
|
// product card
|
||||||
|
.main-container-wrapper .product-card .sticker {
|
||||||
|
left: auto;
|
||||||
|
right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-container-wrapper .product-card .cart-wish-wrap .addtocart {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
// product card end
|
||||||
|
|
||||||
|
// product page start here
|
||||||
|
section.product-detail div.layouter .form-container {
|
||||||
|
div.product-image-group {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div .thumb-list {
|
||||||
|
margin-left: 4px;
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.details .product-ratings .total-reviews {
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 720px) {
|
||||||
|
section.product-detail div.layouter .form-container div.product-image-group {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// product page end here
|
||||||
|
|
||||||
|
//category page start here
|
||||||
|
.main .category-container .layered-filter-wrapper, .main .category-container .responsive-layred-filter {
|
||||||
|
padding-right: 0px;
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main .top-toolbar {
|
||||||
|
.pager {
|
||||||
|
float: left;
|
||||||
|
|
||||||
|
.view-mode {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sorter {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-info {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//category page end here
|
||||||
|
|
||||||
|
//product review page
|
||||||
|
section.review .review-layouter .review-form {
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: 20px;
|
||||||
|
|
||||||
|
.heading .right {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ratings-reviews .right-side .rater {
|
||||||
|
.star-name {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 770px) {
|
||||||
|
section.review .review-layouter .review-form {
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//product review page end here
|
||||||
|
|
||||||
|
//add to cart start here
|
||||||
|
section.cart .cart-content {
|
||||||
|
.left-side {
|
||||||
|
width: 70%;
|
||||||
|
float: right;
|
||||||
|
|
||||||
|
.misc-controls a.link {
|
||||||
|
margin-left: 15px;
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-side {
|
||||||
|
width: 30%;
|
||||||
|
padding-right: 40px;
|
||||||
|
padding-left: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.order-summary .item-detail, .payble-amount {
|
||||||
|
label.right {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.item div {
|
||||||
|
margin-left: 15px;
|
||||||
|
margin-right: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cart-item-list .item .item-details .misc {
|
||||||
|
div.qty-text {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.box {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.remove {
|
||||||
|
margin-left: 30px;
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 770px) {
|
||||||
|
section.cart .cart-content {
|
||||||
|
.left-side {
|
||||||
|
width: 100%;
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-side {
|
||||||
|
width: 100%;
|
||||||
|
padding-right: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//add to cart page end here
|
||||||
|
|
||||||
|
//checkout process page start here
|
||||||
|
.checkout-process {
|
||||||
|
.col-right {
|
||||||
|
padding-left: 0px;
|
||||||
|
padding-right: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-main {
|
||||||
|
padding-left: 40px;
|
||||||
|
padding-right: 0px;
|
||||||
|
|
||||||
|
ul.checkout-steps li span {
|
||||||
|
margin-right: 7px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.step-content {
|
||||||
|
.form-header {
|
||||||
|
h1 {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.payment-methods .control-info {
|
||||||
|
margin-right: 28px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.order-description, .address {
|
||||||
|
.pull-left, .billing-address {
|
||||||
|
float: right !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pull-right, .shipping-address {
|
||||||
|
float: left !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox {
|
||||||
|
margin: 10px 0px 5px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio {
|
||||||
|
margin: 10px 0px 5px 5px;
|
||||||
|
|
||||||
|
.radio-view {
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
right: 0;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 770px) {
|
||||||
|
.checkout-process .col-main {
|
||||||
|
padding-left: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//checkout process page end here
|
||||||
|
|
||||||
|
//customer page start here
|
||||||
|
.account-content {
|
||||||
|
.account-layout {
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.account-side-menu li {
|
||||||
|
margin-right: 5%;
|
||||||
|
margin-left: 0%;
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
left: 12px;
|
||||||
|
right: auto;
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.account-head .account-action {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.account-item-card {
|
||||||
|
.media-info .info {
|
||||||
|
margin-right: 20px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.operations a span {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.table table {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sale-container {
|
||||||
|
.totals .sale-summary {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sale-section .section-content .order-box-container {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 770px) {
|
||||||
|
.account-content {
|
||||||
|
.account-layout {
|
||||||
|
margin-right: 0px;
|
||||||
|
|
||||||
|
.account-head {
|
||||||
|
.account-action {
|
||||||
|
margin-right: 15px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.back-icon {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.responsive-side-menu .right {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.account-side-menu li {
|
||||||
|
margin-right: 0%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//customer page end here
|
||||||
|
|
||||||
|
// footer start
|
||||||
|
.footer .footer-content .footer-list-container .list-container .list-group li span.icon {
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media all and (max-width: 720px) {
|
||||||
|
.footer {
|
||||||
|
padding-right: 15px;
|
||||||
|
padding-left: 10%;
|
||||||
|
|
||||||
|
.footer-list-container {
|
||||||
|
padding-right: 0px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// footer end
|
||||||
|
|
||||||
|
// css for loader
|
||||||
|
.cp-spinner {
|
||||||
|
position: absolute;
|
||||||
|
left: auto;
|
||||||
|
right: 26%;
|
||||||
|
margin-top: calc(20% - 80px);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 720px) {
|
||||||
|
.cp-spinner {
|
||||||
|
right: 50%;
|
||||||
|
margin-right: -24px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// rtl css end here
|
||||||
|
|
|
||||||
|
|
@ -176,9 +176,13 @@
|
||||||
<div class="search-responsive mt-10">
|
<div class="search-responsive mt-10">
|
||||||
<form role="search" action="{{ route('shop.search.index') }}" method="GET" style="display: inherit;">
|
<form role="search" action="{{ route('shop.search.index') }}" method="GET" style="display: inherit;">
|
||||||
<div class="search-content">
|
<div class="search-content">
|
||||||
|
<button class="" style="background: none; border: none; padding: 0px;">
|
||||||
<i class="icon icon-search mt-10"></i>
|
<i class="icon icon-search mt-10"></i>
|
||||||
|
</button>
|
||||||
<input type="search" name="term" class="search mt-5">
|
<input type="search" name="term" class="search mt-5">
|
||||||
|
<button class="" style="background: none; float: right; border: none; padding: 0px;">
|
||||||
<i class="icon icon-menu-back right mt-10"></i>
|
<i class="icon icon-menu-back right mt-10"></i>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,6 @@
|
||||||
<div class="control-error" v-if="errors.has('rating')">@{{ errors.first('rating') }}</div>
|
<div class="control-error" v-if="errors.has('rating')">@{{ errors.first('rating') }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="control-group mt-20" :class="[errors.has('title') ? 'has-error' : '']">
|
<div class="control-group mt-20" :class="[errors.has('title') ? 'has-error' : '']">
|
||||||
<label for="title" class="required">
|
<label for="title" class="required">
|
||||||
{{ __('shop::app.reviews.title') }}
|
{{ __('shop::app.reviews.title') }}
|
||||||
|
|
@ -84,16 +83,14 @@
|
||||||
<span class="control-error" v-if="errors.has('title')">@{{ errors.first('title') }}</span>
|
<span class="control-error" v-if="errors.has('title')">@{{ errors.first('title') }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="write-review mt-20">
|
<div class="control-group" :class="[errors.has('comment') ? 'has-error' : '']">
|
||||||
<div class="control-group" :class="[errors.has('title') ? 'has-error' : '']">
|
<label for="comment" class="required">
|
||||||
<label for="review" class="required">
|
|
||||||
{{ __('admin::app.customers.reviews.comment') }}
|
{{ __('admin::app.customers.reviews.comment') }}
|
||||||
</label>
|
</label>
|
||||||
<textarea type="text" class="control" name="comment" v-validate="'required'" value="{{ old('comment') }}">
|
<textarea type="text" class="control" name="comment" v-validate="'required'" value="{{ old('comment') }}">
|
||||||
</textarea>
|
</textarea>
|
||||||
<span class="control-error" v-if="errors.has('comment')">@{{ errors.first('comment') }}</span>
|
<span class="control-error" v-if="errors.has('comment')">@{{ errors.first('comment') }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<button type="submit" class="btn btn-lg btn-primary">
|
<button type="submit" class="btn btn-lg btn-primary">
|
||||||
{{ __('shop::app.reviews.submit') }}
|
{{ __('shop::app.reviews.submit') }}
|
||||||
|
|
|
||||||
|
|
@ -129,8 +129,6 @@
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
||||||
<a href="{{ route('shop.reviews.index', $product->url_key) }}" class="view-all">View All</a>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
const { mix } = require("laravel-mix");
|
const { mix } = require("laravel-mix");
|
||||||
require("laravel-mix-merge-manifest");
|
require("laravel-mix-merge-manifest");
|
||||||
|
|
||||||
var publicPath = 'publishable/assets';
|
// var publicPath = 'publishable/assets';
|
||||||
// var publicPath = "../../../public/themes/default/assets";
|
var publicPath = "../../../public/themes/default/assets";
|
||||||
|
|
||||||
mix.setPublicPath(publicPath).mergeManifest();
|
mix.setPublicPath(publicPath).mergeManifest();
|
||||||
mix.disableNotifications();
|
mix.disableNotifications();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue