Merge pull request #249 from bagisto/rahul

Rahul
This commit is contained in:
JItendra Singh 2018-11-29 18:14:32 +05:30 committed by GitHub
commit 66639afb6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 53574 additions and 126 deletions

View File

@ -20,6 +20,7 @@
"konekt/concord": "^1.2",
"laravel/framework": "5.6.*",
"laravel/tinker": "^1.0",
"maatwebsite/excel": "3.1.x-dev",
"nwidart/laravel-modules": "^3.2",
"prettus/l5-repository": "^2.6",
"propaganistas/laravel-intl": "^2.0"

View File

@ -194,6 +194,9 @@ return [
//Laravel Intervention
Intervention\Image\ImageServiceProvider::class,
//Laravel Maatwebsite
Maatwebsite\Excel\ExcelServiceProvider::class,
//Repository
Prettus\Repository\Providers\RepositoryServiceProvider::class,
Konekt\Concord\ConcordServiceProvider::class,
@ -274,5 +277,6 @@ return [
'Core' => Webkul\Core\Facades\Core::class,
'DbView' => Flynsarmy\DbBladeCompiler\Facades\DbView::class,
'PDF' => Barryvdh\DomPDF\Facade::class,
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
],
];

112
config/excel.php Normal file
View File

@ -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,
],
];

View File

@ -25,18 +25,18 @@ class CustomerDataGrid
return DataGrid::make([
'name' => 'Customer',
'table' => 'customers',
'select' => 'id',
'table' => 'customers as cus',
'select' => 'cus.id',
'perpage' => 10,
'aliased' => true, //use this with false as default and true in case of joins
'massoperations' =>[
// [
// 'route' => route('admin.datagrid.delete'),
// 'method' => 'DELETE',
// 'label' => 'Delete',
// 'type' => 'button', //select || button only
// ],
[
'route' => route('admin.datagrid.delete'),
'method' => 'DELETE',
'label' => 'Delete',
'type' => 'button', //select || button only
],
],
'actions' => [
@ -54,13 +54,19 @@ class CustomerDataGrid
],
'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
'columns' => [
[
'name' => 'id',
'name' => 'cus.id',
'alias' => 'ID',
'type' => 'number',
'label' => 'ID',
@ -78,10 +84,10 @@ class CustomerDataGrid
'label' => 'Email',
'sortable' => false,
], [
'name' => 'customer_group_id',
'alias' => 'CustomerGroupId',
'type' => 'number',
'label' => 'Group ID',
'name' => 'cg.name',
'alias' => 'CustomerGroupName',
'type' => 'string',
'label' => 'Group Name',
'sortable' => false,
],
],
@ -89,7 +95,7 @@ class CustomerDataGrid
//don't use aliasing in case of filters
'filterable' => [
[
'column' => 'id',
'column' => 'cus.id',
'alias' => 'ID',
'type' => 'number',
'label' => 'ID',

View File

@ -22,6 +22,7 @@ class Handler extends ExceptionHandler
*/
public function render($request, Exception $exception)
{
if ($exception instanceof HttpException) {
$statusCode = $exception->getStatusCode();
if (strpos($_SERVER['REQUEST_URI'], 'admin') !== false) {
@ -53,27 +54,26 @@ class Handler extends ExceptionHandler
return response()->view('shop::errors.500', [], 500);
}
}
} else if ($exception instanceof ModelNotFoundException) {
} else if ($exception instanceof \ModelNotFoundException) {
if (strpos($_SERVER['REQUEST_URI'], 'admin') !== false){
return response()->view('admin::errors.404', [], 404);
}else {
return response()->view('shop::errors.404', [], 404);
}
} else if ($exception instanceof PDOException) {
} else if ($exception instanceof \PDOException) {
if (strpos($_SERVER['REQUEST_URI'], 'admin') !== false){
return response()->view('admin::errors.500', [], 500);
} else {
return response()->view('shop::errors.500', [], 500);
}
}
// else if ($exception instanceof ErrorException) {
// else if ($exception instanceof \ErrorException) {
// if(strpos($_SERVER['REQUEST_URI'], 'admin') !== false){
// return response()->view('admin::errors.500', [], 500);
// }else {
// return response()->view('shop::errors.500', [], 500);
// }
// }
return parent::render($request, $exception);

View File

@ -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
]);
}
}

View File

@ -9,6 +9,10 @@ use Webkul\Customer\Repositories\CustomerRepository as Customer;
use Webkul\Customer\Repositories\CustomerGroupRepository as CustomerGroup;
use Webkul\Core\Repositories\ChannelRepository as Channel;
use Webkul\Admin\DataGrids\CustomerDataGrid as CustomerDataGrid;
use Webkul\Admin\Exports\DataGridExport;
use Excel;
/**
* Customer controlller
*
@ -45,23 +49,36 @@ class CustomerController extends Controller
*/
protected $channel;
/**
* CustomerDataGrid object
*
* @var array
*/
protected $customerDataGrid;
/**
* Create a new controller instance.
*
* @param Webkul\Customer\Repositories\CustomerRepository as customer;
* @param Webkul\Customer\Repositories\CustomerGroupRepository as customerGroup;
* @param Webkul\Core\Repositories\ChannelRepository as Channel;
* @param Webkul\Admin\DataGrids\CustomerDataGrid as customerDataGrid;
* @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->middleware('admin');
$this->customer = $customer;
$this->customerGroup = $customerGroup;
$this->channel = $channel;
$this->customerDataGrid = $customerDataGrid;
}
/**
@ -173,4 +190,15 @@ class CustomerController extends Controller
return redirect()->back();
}
/**
* function to export datagrid
*
*/
public function export()
{
$data = $this->customerDataGrid;
return Excel::download(new DataGridExport($data), 'customers.xlsx');
}
}

View File

@ -39,6 +39,8 @@ class CustomerGroupController extends Controller
{
$this->_config = request('_config');
$this->middleware('admin');
$this->customerGroup = $customerGroup;
}

View File

@ -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');
//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',[
'view' => 'admin::customers.review.index'
])->name('admin.customer.review.index');

View File

@ -531,7 +531,8 @@ return [
'channel_name' => 'Channel Name',
'state' => 'State',
'select-state' => 'Select a region, state or province.',
'country' => 'Country'
'country' => 'Country',
'export' => 'Export'
],
'reviews' => [
'title' => 'Reviews',

View File

@ -15,9 +15,14 @@
<a href="{{ route('admin.customer.create') }}" class="btn btn-lg btn-primary">
{{ __('admin::app.customers.customers.add-title') }}
</a>
<a href="{{ route('admin.customer.export') }}" class="btn btn-lg btn-primary">
{{ __('admin::app.customers.customers.export') }}
</a>
</div>
</div>
<div class="page-content">
@inject('customer','Webkul\Admin\DataGrids\CustomerDataGrid')
{!! $customer->render() !!}

View File

@ -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>

View File

@ -1,8 +1,8 @@
const { mix } = require("laravel-mix");
require("laravel-mix-merge-manifest");
var publicPath = 'publishable/assets';
// var publicPath = "../../../public/vendor/webkul/admin/assets";
// var publicPath = 'publishable/assets';
var publicPath = "../../../public/vendor/webkul/admin/assets";
mix.setPublicPath(publicPath).mergeManifest();
mix.disableNotifications();

View File

@ -55,7 +55,7 @@ class ProductReviewRepository extends Repository
{
$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;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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",
"/css/shop.css": "/css/shop.css?id=2a9e3addb8dd8df86f03"
}
}
>>>>>>> 2a2b1e8ec4f3e110fca0b4926f090ed506b81ce5
>>>>>>> master

View File

@ -11,4 +11,15 @@ $disc-price: #FF6472;
$danger-color: #FF6472;
$disc-price-pro: #A5A5A5;
$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

View File

@ -148,7 +148,7 @@ input {
//components
.bold {
font-weight: bold;
color: #3A3A3A;
color: $bold-color;
}
/* The container */
@ -178,7 +178,7 @@ input {
height: 16px;
width: 16px;
background-color: white;
border: 2px solid #FF6472;
border: 2px solid $disc-price;
border-radius: 50%;
}
/* Create the indicator (the dot/circle - hidden when not checked) */
@ -194,19 +194,10 @@ input {
width: 8px;
height: 8px;
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 */
.radio-container input:checked ~ .checkmark:after {
display: block;
@ -233,13 +224,13 @@ input {
}
.regular-price {
color: #A5A5A5;
color: $font-color-light;
text-decoration: line-through;
margin-right: 10px;
}
.special-price {
color: #FF6472;
color: $disc-price;
}
}
@ -374,7 +365,7 @@ input {
max-height: 350px;
max-width: 280px;
margin-bottom: 10px;
background: #F2F2F2;
background: $background-color;
img {
display: block;
@ -435,15 +426,15 @@ input {
text-transform: uppercase;
padding: 4px 13px;
font-size: 14px;
color: #fff;
color: $btn-background-color;
box-shadow: 1px 1px 1px #cccccc;
&.sale {
background: #FF6472;
background: $disc-price;
}
&.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
section.slider-block {
display: block;
@ -773,7 +757,7 @@ section.slider-block {
border-bottom-right-radius: 3px;
button {
background: #fff;
background: $btn-background-color;
border: 0;
padding: 3px 5px;
}
@ -927,7 +911,7 @@ section.slider-block {
}
.dropdown-content .item-details{
max-height: 125px;
height: 75px;
}
.item-details .item-name {
@ -980,7 +964,7 @@ section.slider-block {
}
li:last-child {
margin-right: 0px;
margin-right: -2px;
}
ul {
@ -1145,7 +1129,6 @@ section.slider-block {
@media all and (max-width: 720px) {
.header {
.currency-switcher {
display: none !important;
}
@ -1245,7 +1228,7 @@ section.slider-block {
padding-top: 25px;
a {
color: #242424;
color: $font-color;
}
li {
@ -1319,12 +1302,16 @@ section.slider-block {
width: 100%;
height: 120px;
font-size: 16px;
color: #A5A5A5;
color: $font-color-light;
letter-spacing: -0.26px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
p {
padding: 0px 15px;
}
}
//category page
@ -1353,7 +1340,7 @@ section.slider-block {
.filter-attributes-title {
padding: 10px 40px 0 10px;
color: #5E5E5E;
color: $other-font-color;
cursor: pointer;
position: relative;
@ -1384,7 +1371,7 @@ section.slider-block {
li.item {
padding: 8px 0;
color: #5E5E5E;
color: $other-font-color;
.checkbox {
margin: 0;
@ -1426,6 +1413,7 @@ section.slider-block {
width: 100%;
float: none;
padding-right: 0px;
margin-top: -25px !important;
}
.category-block {
@ -1657,7 +1645,6 @@ section.product-detail {
width: 100%;
max-height: 480px;
height: 100%;
box-shadow: 1px 1px 2px $border-color;
img {
width: 100%;
@ -1754,10 +1741,10 @@ section.product-detail {
.stock-status {
margin-bottom: 15px;
font-weight: 600;
color: #FC6868;
color: $rating-color;
&.active {
color: #4CAF50;
color: $stock-color;
}
}
@ -1812,7 +1799,7 @@ section.product-detail {
// product pages responsive css start here
@media only screen and (max-width: 720px) {
section.product-detail div.layouter form {
section.product-detail div.layouter .form-container {
flex-direction: column;
div.product-image-group {
@ -1856,6 +1843,15 @@ section.product-detail {
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) {
section.product-detail div.layouter form {
section.product-detail div.layouter .form-container {
div.product-image-group {
.product-hero-image img {
width: 100% !important;
@ -1876,11 +1872,15 @@ section.product-detail {
}
}
@media only screen and (max-width: 510px) {
section.product-detail div.layouter form {
.details {
margin-top: -90px;
}
@media only screen and (max-width: 480px) {
section.product-detail div.layouter .form-container .details {
margin-top: 0px;
}
}
@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 {
color: #242424;
color: $font-color;
}
.product-price {
@ -2547,7 +2547,7 @@ section.review {
width: 49%;
.heading {
color: #242424;
color: $font-color;
font-weight: 600;
.right {
@ -2557,18 +2557,19 @@ section.review {
}
.rating {
color: $font-color-light;
color: $bold-color;
font-size: 15px;
.rating-title::after {
content: "*";
color: #FC6868;
color: $rating-color;
font-weight: 700;
display: inline-block;
}
label.star {
font-size: 25px;
color: #d4d4d4;
color: $star-color;
transition: all .2s;
}
@ -2578,36 +2579,16 @@ section.review {
}
.control-group {
label {
color: $font-color-light;
font-size: 16px;
}
.control {
width: 90%;
color: $font-color-light;
}
}
.control-error {
color: #ff5656;
color: $error-color;
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{
height: 150px;
border: 1px solid firebrick;
@ -2689,10 +2670,10 @@ section.review {
width: calc(100% - 100px);
margin-right: 5px;
margin-left: 5px;
background: #D8D8D8;
background: $line-bar-color;
.line-value {
background-color: #0031F0;
background-color: $brand-color;
}
}
}
@ -2724,8 +2705,12 @@ section.review {
width: 100%;
margin-left: 0px;
.heading .right {
margin-top: 50px;
.heading {
margin-bottom: 70px;
.right {
margin-top: 50px;
}
}
.ratings-reviews {
@ -2750,7 +2735,6 @@ section.review {
}
}
}
//review responsive css end here
@ -2778,7 +2762,7 @@ section.review {
border: 1px solid $border-color;
flex-direction: column;
max-width: 500px;
min-width: 380px;
min-width: 320px;
padding: 25px;
.login-text {
@ -2844,7 +2828,7 @@ section.review {
text-align: center;
a {
color: #5E5E5E;
color: $other-font-color;
}
.icon {
@ -3095,13 +3079,13 @@ section.review {
}
.sale-container {
color: #5E5E5E;
color: $other-font-color;
.sale-section {
.secton-title {
font-size: 18px;
color: #8E8E8E;
color: $title-color;
padding: 15px 0;
border-bottom: 1px solid $border-color;
}
@ -3109,7 +3093,7 @@ section.review {
.section-content {
display: block;
padding: 20px 0;
border-bottom: 1px solid #E8E8E8;
border-bottom: 1px solid $address-card-border-color;
.row {
display: block;
@ -3138,11 +3122,11 @@ section.review {
.box-title {
padding: 10px 0;
font-size: 18px;
color: #8E8E8E;
color: $title-color;
}
.box-content {
color: #3A3A3A;
color: $bold-color;
}
}
}
@ -3161,7 +3145,7 @@ section.review {
padding-top: 20px;
display: inline-block;
width: 100%;
border-top: solid 1px #E8E8E8;
border-top: solid 1px $address-card-border-color;
.sale-summary {
height: 130px;
@ -3173,7 +3157,7 @@ section.review {
td {
padding: 5px 8px;
width: auto;
color: #3A3A3A;
color: $bold-color;
}
&.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
.cp-spinner {
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

View File

@ -176,9 +176,13 @@
<div class="search-responsive mt-10">
<form role="search" action="{{ route('shop.search.index') }}" method="GET" style="display: inherit;">
<div class="search-content">
<i class="icon icon-search mt-10"></i>
<button class="" style="background: none; border: none; padding: 0px;">
<i class="icon icon-search mt-10"></i>
</button>
<input type="search" name="term" class="search mt-5">
<i class="icon icon-menu-back right mt-10"></i>
<button class="" style="background: none; float: right; border: none; padding: 0px;">
<i class="icon icon-menu-back right mt-10"></i>
</button>
</div>
</form>

View File

@ -75,7 +75,6 @@
<div class="control-error" v-if="errors.has('rating')">@{{ errors.first('rating') }}</div>
</div>
<div class="control-group mt-20" :class="[errors.has('title') ? 'has-error' : '']">
<label for="title" class="required">
{{ __('shop::app.reviews.title') }}
@ -84,15 +83,13 @@
<span class="control-error" v-if="errors.has('title')">@{{ errors.first('title') }}</span>
</div>
<div class="write-review mt-20">
<div class="control-group" :class="[errors.has('title') ? 'has-error' : '']">
<label for="review" class="required">
{{ __('admin::app.customers.reviews.comment') }}
</label>
<textarea type="text" class="control" name="comment" v-validate="'required'" value="{{ old('comment') }}">
</textarea>
<span class="control-error" v-if="errors.has('comment')">@{{ errors.first('comment') }}</span>
</div>
<div class="control-group" :class="[errors.has('comment') ? 'has-error' : '']">
<label for="comment" class="required">
{{ __('admin::app.customers.reviews.comment') }}
</label>
<textarea type="text" class="control" name="comment" v-validate="'required'" value="{{ old('comment') }}">
</textarea>
<span class="control-error" v-if="errors.has('comment')">@{{ errors.first('comment') }}</span>
</div>
<button type="submit" class="btn btn-lg btn-primary">

View File

@ -129,8 +129,6 @@
</div>
@endforeach
<a href="{{ route('shop.reviews.index', $product->url_key) }}" class="view-all">View All</a>
</div>
</div>

View File

@ -1,8 +1,8 @@
const { mix } = require("laravel-mix");
require("laravel-mix-merge-manifest");
var publicPath = 'publishable/assets';
// var publicPath = "../../../public/themes/default/assets";
// var publicPath = 'publishable/assets';
var publicPath = "../../../public/themes/default/assets";
mix.setPublicPath(publicPath).mergeManifest();
mix.disableNotifications();