Fixed conflict and Assets compiled for prodcution

This commit is contained in:
jitendra 2019-03-12 12:04:55 +05:30
commit 12a4c6dc09
56 changed files with 381 additions and 119 deletions

View File

@ -28,6 +28,8 @@ to the ever demanding online world. Your business whether small or huge it suits
**We are also having a forum for any type of your concern, feature request discussions. Please visit: [Bagisto Forums](https://forums.bagisto.com/)**
# Visit our live [Demo](https://demo.bagisto.com)
It packs in lots of demanding features that allows your business to scale in no time:
* Multiple Channels, Locale, Currencies.

7
config/product_types.php Normal file
View File

@ -0,0 +1,7 @@
<?php
return [
];
?>

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,4 @@
{
"/js/admin.js": "/js/admin.js?id=7683c8f127f6ad2ac3ce",
"/css/admin.css": "/css/admin.css?id=4b792d17cf1107f94a6b"
}
"/js/admin.js": "/js/admin.js?id=da5ebef9c25a064e7ed6",
"/css/admin.css": "/css/admin.css?id=54d5d3e2b0d00847e473"
}

View File

@ -34,6 +34,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -42,6 +43,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -50,6 +52,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -58,6 +61,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'string',
'sortable' => true,
'searchable' => true,
'filterable' => true
]);
$this->addColumn([
@ -80,6 +84,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'boolean',
'sortable' => true,
'searchable' => false,
'filterable' => true,
'wrapper' => function($value) {
if ($value->is_unique == 1)
return 'True';
@ -94,6 +99,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'boolean',
'sortable' => true,
'searchable' => false,
'filterable' => true,
'wrapper' => function($value) {
if ($value->value_per_locale == 1)
return 'True';
@ -108,6 +114,7 @@ class AttributeDataGrid extends DataGrid
'type' => 'boolean',
'sortable' => true,
'searchable' => false,
'filterable' => true,
'wrapper' => function($value) {
if ($value->value_per_channel == 1)
return 'True';

View File

@ -32,6 +32,7 @@ class AttributeFamilyDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class AttributeFamilyDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class AttributeFamilyDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -43,6 +43,7 @@ class CategoryDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -51,6 +52,7 @@ class CategoryDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -59,6 +61,7 @@ class CategoryDataGrid extends DataGrid
'type' => 'string',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -67,6 +70,7 @@ class CategoryDataGrid extends DataGrid
'type' => 'boolean',
'sortable' => true,
'searchable' => true,
'filterable' => true,
'wrapper' => function($value) {
if ($value->status == 1)
return 'Active';
@ -81,6 +85,7 @@ class CategoryDataGrid extends DataGrid
'type' => 'number',
'sortable' => true,
'searchable' => false,
'filterable' => false
]);
}

View File

@ -32,6 +32,7 @@ class ChannelDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class ChannelDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class ChannelDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -56,6 +59,7 @@ class ChannelDataGrid extends DataGrid
'type' => 'string',
'sortable' => true,
'searchable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class CurrencyDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class CurrencyDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class CurrencyDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -37,6 +37,7 @@ class CustomerDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -45,6 +46,7 @@ class CustomerDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -53,6 +55,7 @@ class CustomerDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -61,6 +64,7 @@ class CustomerDataGrid extends DataGrid
'type' => 'string',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class CustomerGroupDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class CustomerGroupDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -38,7 +38,7 @@ class CustomerReviewDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => false
'filterable' => true
]);
$this->addColumn([
@ -47,6 +47,7 @@ class CustomerReviewDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -55,6 +56,7 @@ class CustomerReviewDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -63,6 +65,7 @@ class CustomerReviewDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => false
]);
$this->addColumn([
@ -72,6 +75,7 @@ class CustomerReviewDataGrid extends DataGrid
'searchable' => true,
'sortable' => true,
'width' => '100px',
'filterable' => true,
'closure' => true,
'wrapper' => function ($value) {
if ($value->product_review_status == 'approved')

View File

@ -34,6 +34,7 @@ class ExchangeRatesDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -42,6 +43,7 @@ class ExchangeRatesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -50,6 +52,7 @@ class ExchangeRatesDataGrid extends DataGrid
'type' => 'number',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class InventorySourcesDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class InventorySourcesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class InventorySourcesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -56,6 +59,7 @@ class InventorySourcesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -64,6 +68,7 @@ class InventorySourcesDataGrid extends DataGrid
'type' => 'boolean',
'searchable' => true,
'sortable' => true,
'filterable' => true,
'wrapper' => function($value) {
if ($value->status == 1)
return 'Active';

View File

@ -32,6 +32,7 @@ class LocalesDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class LocalesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class LocalesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class NewsLetterDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class NewsLetterDataGrid extends DataGrid
'type' => 'string',
'searchable' => false,
'sortable' => true,
'filterable' => true,
'wrapper' => function($value) {
if ($value->is_subscribed == 1)
return 'True';
@ -54,6 +56,7 @@ class NewsLetterDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -47,6 +47,7 @@ class OrderDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -55,6 +56,7 @@ class OrderDataGrid extends DataGrid
'type' => 'price',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -63,6 +65,7 @@ class OrderDataGrid extends DataGrid
'type' => 'price',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -71,6 +74,7 @@ class OrderDataGrid extends DataGrid
'type' => 'datetime',
'sortable' => true,
'searchable' => false,
'filterable' => true
]);
$this->addColumn([
@ -79,6 +83,7 @@ class OrderDataGrid extends DataGrid
'type' => 'string',
'sortable' => true,
'searchable' => true,
'filterable' => true
]);
$this->addColumn([
@ -88,6 +93,7 @@ class OrderDataGrid extends DataGrid
'sortable' => true,
'searchable' => true,
'closure' => true,
'filterable' => true,
'wrapper' => function ($value) {
if ($value->status == 'processing')
return '<span class="badge badge-md badge-success">Processing</span>';
@ -112,6 +118,7 @@ class OrderDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -120,6 +127,7 @@ class OrderDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class OrderInvoicesDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class OrderInvoicesDataGrid extends DataGrid
'type' => 'number',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class OrderInvoicesDataGrid extends DataGrid
'type' => 'price',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -56,6 +59,7 @@ class OrderInvoicesDataGrid extends DataGrid
'type' => 'datetime',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -48,6 +48,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -56,6 +57,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'number',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -64,6 +66,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -72,6 +75,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -80,6 +84,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'datetime',
'sortable' => true,
'searchable' => false,
'filterable' => true
]);
$this->addColumn([
@ -88,6 +93,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'datetime',
'sortable' => true,
'searchable' => false,
'filterable' => true
]);
$this->addColumn([
@ -96,6 +102,7 @@ class OrderShipmentsDataGrid extends DataGrid
'type' => 'string',
'sortable' => true,
'searchable' => true,
'filterable' => true
]);
}

View File

@ -42,7 +42,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.id'),
'type' => 'number',
'searchable' => false,
'sortable' => true
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -51,6 +52,7 @@ class ProductDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
// 'width' => '100px'
]);
@ -59,7 +61,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.name'),
'type' => 'string',
'searchable' => true,
'sortable' => true
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -67,7 +70,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.attribute-family'),
'type' => 'string',
'searchable' => true,
'sortable' => true
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -75,7 +79,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.type'),
'type' => 'string',
'sortable' => true,
'searchable' => true
'searchable' => true,
'filterable' => true
]);
$this->addColumn([
@ -84,6 +89,7 @@ class ProductDataGrid extends DataGrid
'type' => 'boolean',
'sortable' => true,
'searchable' => false,
'filterable' => true,
'wrapper' => function($value) {
if ($value->status == 1)
return 'Active';
@ -97,7 +103,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.price'),
'type' => 'price',
'sortable' => true,
'searchable' => false
'searchable' => false,
'filterable' => true
]);
$this->addColumn([
@ -105,7 +112,8 @@ class ProductDataGrid extends DataGrid
'label' => trans('admin::app.datagrid.qty'),
'type' => 'number',
'sortable' => true,
'searchable' => false
'searchable' => false,
'filterable' => false
]);
}

View File

@ -32,7 +32,8 @@ class RolesDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'width' => '40px'
'width' => '40px',
'filterable' => true
]);
$this->addColumn([
@ -41,6 +42,7 @@ class RolesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -49,6 +51,7 @@ class RolesDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -36,6 +36,7 @@ class SliderDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -44,6 +45,7 @@ class SliderDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -52,6 +54,7 @@ class SliderDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class TaxCategoryDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class TaxCategoryDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class TaxCategoryDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -32,6 +32,7 @@ class TaxRateDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -40,6 +41,7 @@ class TaxRateDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -48,6 +50,7 @@ class TaxRateDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -56,6 +59,7 @@ class TaxRateDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -64,6 +68,7 @@ class TaxRateDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -36,6 +36,7 @@ class UserDataGrid extends DataGrid
'type' => 'number',
'searchable' => false,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -44,6 +45,7 @@ class UserDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -52,6 +54,7 @@ class UserDataGrid extends DataGrid
'type' => 'boolean',
'searchable' => true,
'sortable' => true,
'filterable' => true,
'wrapper' => function($value) {
if ($value->status == 1) {
return 'Active';
@ -67,6 +70,7 @@ class UserDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
@ -75,6 +79,7 @@ class UserDataGrid extends DataGrid
'type' => 'string',
'searchable' => true,
'sortable' => true,
'filterable' => true
]);
}

View File

@ -517,32 +517,32 @@ Route::group(['middleware' => ['web']], function () {
])->name('admin.customers.subscribers.update');
//slider index
Route::get('/slider','Webkul\Shop\Http\Controllers\SliderController@index')->defaults('_config',[
Route::get('/slider','Webkul\Core\Http\Controllers\SliderController@index')->defaults('_config',[
'view' => 'admin::settings.sliders.index'
])->name('admin.sliders.index');
//slider create show
Route::get('slider/create','Webkul\Shop\Http\Controllers\SliderController@create')->defaults('_config',[
Route::get('slider/create','Webkul\Core\Http\Controllers\SliderController@create')->defaults('_config',[
'view' => 'admin::settings.sliders.create'
])->name('admin.sliders.create');
//slider create show
Route::post('slider/create','Webkul\Shop\Http\Controllers\SliderController@store')->defaults('_config',[
Route::post('slider/create','Webkul\Core\Http\Controllers\SliderController@store')->defaults('_config',[
'redirect' => 'admin.sliders.index'
])->name('admin.sliders.store');
//slider edit show
Route::get('slider/edit/{id}','Webkul\Shop\Http\Controllers\SliderController@edit')->defaults('_config',[
Route::get('slider/edit/{id}','Webkul\Core\Http\Controllers\SliderController@edit')->defaults('_config',[
'view' => 'admin::settings.sliders.edit'
])->name('admin.sliders.edit');
//slider edit update
Route::post('slider/edit/{id}','Webkul\Shop\Http\Controllers\SliderController@update')->defaults('_config',[
Route::post('slider/edit/{id}','Webkul\Core\Http\Controllers\SliderController@update')->defaults('_config',[
'redirect' => 'admin.sliders.index'
])->name('admin.sliders.update');
//destroy a slider item
Route::get('slider/delete/{id}', 'Webkul\Shop\Http\Controllers\SliderController@destroy')->name('admin.sliders.delete');
Route::get('slider/delete/{id}', 'Webkul\Core\Http\Controllers\SliderController@destroy')->name('admin.sliders.delete');
//tax routes
Route::get('/tax-categories', 'Webkul\Tax\Http\Controllers\TaxController@index')->defaults('_config', [

View File

@ -93,8 +93,42 @@ body {
}
}
.open-nav-aside {
display: none;
width: 100%;
height: 8%;
margin-top: 2%;
padding: 5px;
text-align: center;
border: 1px solid $border-color;
cursor: pointer;
}
.close-nav-aside {
display: block;
width: 100%;
height: 8%;
margin-top: 3%;
padding: 10px;
text-align: center;
border: 1px solid $border-color;
cursor: pointer;
}
.close-nav-aside:hover, .open-nav-aside:hover {
background: $brand-color;
}
.open-nav-aside, .close-nav-aside {
.icon {
height: 28px;
width: 28px;
}
}
.navbar-left {
position: absolute;
display: block;
position: fixed;
top: 60px;
bottom: 0;
width: 90px;
@ -104,6 +138,8 @@ body {
z-index: 2;
ul.menubar {
height: 93%;
li.menu-item {
height: 90px;
padding: 10px 5px;
@ -143,9 +179,13 @@ body {
border-right: 1px solid $border-color;
background: #f8f9fa;
padding-top: 10px;
overflow-y: auto;
z-index: 4;
ul {
height: 93%;
overflow-y: auto;
}
a {
padding: 15px;
display: block;
@ -576,6 +616,40 @@ body {
margin-right: 10px;
}
.aside-nav-toggle {
height: 48px;
width: 100%;
padding-top: 15px;
border-top: 1px solid rgba(162, 162, 162, 0.2);
.close-icon, .open-icon {
position: absolute;
cursor: pointer;
left: 45%;
}
}
.aside-nav-toggle.open {
display: none;
}
.linked-product-search-result {
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 0 9px 0 rgba(0, 0, 0, 0.16);
z-index: 10;
text-align: left;
border-radius: 3px;
background-color: #ffffff;
width: 70%;
max-height: 200px;
overflow-y: auto;
li {
padding: 10px;
border-bottom: 1px solid #e8e8e8;
cursor: pointer;
}
}
// css for rtl start here
.rtl {
direction: rtl;

View File

@ -13,7 +13,7 @@
<div class="page-title">
<h1>
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
{{ __('admin::app.catalog.categories.add-title') }}
</h1>
</div>
@ -103,7 +103,7 @@
<accordian :title="'{{ __('admin::app.catalog.categories.parent-category') }}'" :active="true">
<div slot="body">
{!! view_render_event('bagisto.admin.catalog.category.create_form_accordian.parent_category.controls.before') !!}
<tree-view value-field="id" name-field="parent_id" input-type="radio" items='@json($categories)'></tree-view>

View File

@ -14,7 +14,7 @@
<div class="page-title">
<h1>
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
{{ __('admin::app.catalog.categories.edit-title') }}
</h1>
@ -79,7 +79,7 @@
</div>
</accordian>
{!! view_render_event('bagisto.admin.catalog.category.edit_form_accordian.general.after', ['category' => $category]) !!}
@ -87,7 +87,7 @@
<accordian :title="'{{ __('admin::app.catalog.categories.description-and-images') }}'" :active="true">
<div slot="body">
{!! view_render_event('bagisto.admin.catalog.category.edit_form_accordian.description_images.controls.before', ['category' => $category]) !!}
<div class="control-group" :class="[errors.has('{{$locale}}[description]') ? 'has-error' : '']">
@ -111,12 +111,12 @@
{!! view_render_event('bagisto.admin.catalog.category.edit_form_accordian.description_images.after', ['category' => $category]) !!}
@if ($categories->count())
{!! view_render_event('bagisto.admin.catalog.category.edit_form_accordian.parent_category.before', ['category' => $category]) !!}
<accordian :title="'{{ __('admin::app.catalog.categories.parent-category') }}'" :active="true">
<div slot="body">
{!! view_render_event('bagisto.admin.catalog.category.edit_form_accordian.parent_category.controls.before', ['category' => $category]) !!}
<tree-view value-field="id" name-field="parent_id" input-type="radio" items='@json($categories)' value='@json($category->parent_id)'></tree-view>

View File

@ -19,20 +19,23 @@
<label for="up-selling">{{ __('admin::app.catalog.products.up-selling') }}</label>
<input type="text" class="control" autocomplete="off" v-model="search_term" placeholder="{{ __('admin::app.catalog.products.product-search-hint') }}">
<div class="linked-product-search-result">
<ul>
<li v-for='(product, index) in products'@click="addProduct(product)">
@{{ product.name }}
</li>
</ul>
</div>
<input type="hidden" name="up_sell[]" v-for='(product, index) in this.addedProduct' :value="product.id"/>
<span class="filter-tag" style="text-transform: capitalize; margin-top: 10px; margin-right: 0px; justify-content: flex-start">
<span class="filter-tag" v-if="this.addedProduct.length" style="text-transform: capitalize; margin-top: 10px; margin-right: 0px; justify-content: flex-start">
<span class="wrapper" style="margin-left: 0px; margin-right: 10px;" v-for='(product, index) in this.addedProduct'>
@{{ product.name }}
<span class="icon cross-icon" @click="removeProduct(product)"></span>
</span>
</span>
<ul>
<li v-for='(product, index) in products' style="padding: 10px; border-bottom: 1px solid #e8e8e8; width: 70%; cursor: pointer;" @click="addProduct(product)">
@{{ product.name }}
</li>
</ul>
</div>
</div>
</script>
@ -108,20 +111,22 @@
<label for="up-selling">{{ __('admin::app.catalog.products.cross-selling') }}</label>
<input type="text" class="control" autocomplete="off" v-model="search_term" placeholder="{{ __('admin::app.catalog.products.product-search-hint') }}">
<div class="linked-product-search-result">
<ul>
<li v-for='(product, index) in products'@click="addProduct(product)">
@{{ product.name }}
</li>
</ul>
</div>
<input type="hidden" name="cross_sell[]" v-for='(product, index) in this.addedProduct' :value="product.id"/>
<span class="filter-tag" style="text-transform: capitalize; margin-top: 10px; margin-right: 0px; justify-content: flex-start">
<span class="filter-tag" v-if="this.addedProduct.length" style="text-transform: capitalize; margin-top: 10px; margin-right: 0px; justify-content: flex-start">
<span class="wrapper" style="margin-left: 0px; margin-right: 10px;" v-for='(product, index) in this.addedProduct'>
@{{ product.name }}
<span class="icon cross-icon" @click="removeProduct(product)"></span>
</span>
</span>
<ul>
<li v-for='(product, index) in products' style="padding: 10px; border-bottom: 1px solid #e8e8e8; width: 70%; cursor: pointer;" @click="addProduct(product)">
@{{ product.name }}
</li>
</ul>
</div>
</div>
</script>
@ -197,20 +202,22 @@
<label for="up-selling">{{ __('admin::app.catalog.products.related-products') }}</label>
<input type="text" class="control" autocomplete="off" v-model="search_term" placeholder="{{ __('admin::app.catalog.products.product-search-hint') }}">
<div class="linked-product-search-result">
<ul>
<li v-for='(product, index) in products'@click="addProduct(product)">
@{{ product.name }}
</li>
</ul>
</div>
<input type="hidden" name="related_products[]" v-for='(product, index) in this.addedProduct' :value="product.id"/>
<span class="filter-tag" style="text-transform: capitalize; margin-top: 10px; margin-right: 0px; justify-content: flex-start">
<span class="filter-tag" v-if="this.addedProduct.length" style="text-transform: capitalize; margin-top: 10px; margin-right: 0px; justify-content: flex-start">
<span class="wrapper" style="margin-left: 0px; margin-right: 10px;" v-for='(product, index) in this.addedProduct'>
@{{ product.name }}
<span class="icon cross-icon" @click="removeProduct(product)"></span>
</span>
</span>
<ul>
<li v-for='(product, index) in products' style="padding: 10px; border-bottom: 1px solid #e8e8e8; width: 70%; cursor: pointer;" @click="addProduct(product)">
@{{ product.name }}
</li>
</ul>
</div>
</div>
</script>

View File

@ -27,7 +27,7 @@
<div class="page-title">
<h1>
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
{{ __('admin::app.catalog.products.add-title') }}
</h1>
</div>
@ -44,7 +44,6 @@
<?php $familyId = app('request')->input('family') ?>
<?php $sku = app('request')->input('sku') ?>
{!! view_render_event('bagisto.admin.catalog.product.create_form_accordian.general.before') !!}
<accordian :title="'{{ __('admin::app.catalog.products.general') }}'" :active="true">
@ -55,8 +54,9 @@
<div class="control-group" :class="[errors.has('type') ? 'has-error' : '']">
<label for="type" class="required">{{ __('admin::app.catalog.products.product-type') }}</label>
<select class="control" v-validate="'required'" id="type" name="type" {{ $familyId ? 'disabled' : '' }} data-vv-as="&quot;{{ __('admin::app.catalog.products.product-type') }}&quot;">
<option value="simple">{{ __('admin::app.catalog.products.simple') }}</option>
<option value="configurable" {{ $familyId ? 'selected' : '' }}>{{ __('admin::app.catalog.products.configurable') }}</option>
@foreach($productTypes as $key => $productType)
<option value="{{ $key }}">{{ $productType['name'] }}</option>
@endforeach
</select>
@if ($familyId)

View File

@ -1,8 +1,5 @@
<div class="aside-nav">
<ul>
{{-- <li class="slider-aside">
<span class="icon cross-icon" style="height: 64px; width: 64px; background: red;"></span>
</li> --}}
@if (request()->route()->getName() != 'admin.configuration.index')
<?php $keys = explode('.', $menu->currentKey); ?>
@ -31,30 +28,26 @@
@endforeach
@endif
</ul>
{{-- <div class="close-nav-aside">
<i class="icon angle-left-icon close-icon"></i>
</div> --}}
</div>
{{-- @push('scripts')
<script type="text/javascript">
var turned = false;
<script>
$(document).ready(function() {
if(turned == false) {
$('.slider-aside').on('click', function() {
$('.aside-nav').css('display', 'none');
$('.content-wrapper').css('margin-left', '0px');
turned = true;
});
} else {
$('.slider-aside').on('click', function() {
$('.aside-nav').css('display', '');
$('.content-wrapper').css('margin-left', '305px');
turned = false;
});
}
$(".close-nav-aside").on('click', function(e) {
$('.content-wrapper').css("margin-left", "0px");
$('.aside-nav').css('display', 'none');
$('.open-nav-aside').css('display', 'block');
});
$(".open-nav-aside").on('click', function(e) {
$('.content-wrapper').css("margin-left", "305px");
$('.aside-nav').css('display', '');
$('.open-nav-aside').css('display', 'none');
});
});
</script>
@endpush --}}

View File

@ -10,4 +10,8 @@
</li>
@endforeach
</ul>
<div class="open-nav-aside">
<i class="icon angle-right-icon open-icon"></i>
</div>
</div>

View File

@ -152,7 +152,7 @@ class AttributeRepository extends Repository
*/
public function getFilterAttributes()
{
return $this->model->filterableAttributes()->get();
return $this->model->where('is_filterable', 1)->get();
}
/**

View File

@ -75,7 +75,7 @@ class CategoryController extends Controller
$this->validate(request(), [
'slug' => ['required', 'unique:category_translations,slug', new \Webkul\Core\Contracts\Validations\Slug],
'name' => 'required',
'image.*' => 'mimes:jpeg, jpg, bmp, png'
'image.*' => 'mimes:jpeg,jpg,bmp,png'
]);
if (strtolower(request()->input('name')) == 'root') {

View File

@ -0,0 +1,14 @@
<?php
return [
[
'key' => 'simple',
'name' => 'Simple',
'sort' => 1
], [
'key' => 'configurable',
'name' => 'Configurable',
'sort' => 2
]
];

View File

@ -21,6 +21,8 @@ class ProductServiceProvider extends ServiceProvider
$this->app->register(EventServiceProvider::class);
$this->app->register(ModuleServiceProvider::class);
$this->composeView();
}
/**
@ -30,6 +32,28 @@ class ProductServiceProvider extends ServiceProvider
*/
public function register()
{
$this->registerConfig();
}
public function registerConfig() {
$this->mergeConfigFrom(
dirname(__DIR__) . '/Config/product_types.php', 'product_types'
);
}
public function composeView() {
view()->composer(['admin::catalog.products.create'], function ($view) {
$items = array();
foreach (config('product_types') as $item) {
$item['children'] = [];
array_push($items, $item);
}
$types = core()->sortItems($items);
$view->with('productTypes', $types);
});
}
}

View File

@ -196,14 +196,23 @@ class ProductRepository extends Repository
if (isset($data['up_sell'])) {
$product->up_sells()->sync($data['up_sell']);
} else {
$data['up_sell'] = [];
$product->up_sells()->sync($data['up_sell']);
}
if (isset($data['cross_sell'])) {
$product->cross_sells()->sync($data['cross_sell']);
} else {
$data['cross_sell'] = [];
$product->cross_sells()->sync($data['cross_sell']);
}
if (isset($data['related_products'])) {
$product->related_products()->sync($data['related_products']);
} else {
$data['related_products'] = [];
$product->related_products()->sync($data['related_products']);
}
$previousVariantIds = $product->variants->pluck('id');

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,4 @@
{
"/js/shop.js": "/js/shop.js?id=e019a3a0b0cbcc981fd8",
"/css/shop.css": "/css/shop.css?id=6a1fef3231745a7b94ce"
}
"/js/shop.js": "/js/shop.js?id=391400bc9a994e60b97f",
"/css/shop.css": "/css/shop.css?id=f179c72a73d0f8996e4e"
}

View File

@ -58,10 +58,10 @@ class SubscriptionController extends Controller
public function subscribe()
{
$this->validate(request(), [
'email' => 'email|required'
'subscriber_email' => 'email|required'
]);
$email = request()->input('email');
$email = request()->input('subscriber_email');
$unique = 0;
@ -133,4 +133,4 @@ class SubscriptionController extends Controller
return redirect()->route('shop.home.index');
}
}
}

View File

@ -2692,6 +2692,7 @@ section.review {
.product-info {
font-size: 24px;
max-width: 25%;
.product-image {
img {
@ -2857,6 +2858,8 @@ section.review {
flex-direction: column;
.product-info {
max-width: 100%;
.product-image, .product-name, .product-price {
max-width: 280px;
margin-left: auto;
@ -2881,7 +2884,7 @@ section.review {
.left-side {
width: 100%;
padding: 0px 0px 40px 0px;
margin-top: -50px;
margin-top: -30px;
}
.right-side {

View File

@ -51,7 +51,7 @@
<div class="button-group">
<button type="button" class="btn btn-lg btn-primary" @click="validateForm('address-form')" :disabled="disable_button" id="checkout-continue-button">
<button type="button" class="btn btn-lg btn-primary" @click="validateForm('address-form')" :disabled="disable_button" id="checkout-address-continue-button">
{{ __('shop::app.checkout.onepage.continue') }}
</button>
@ -65,7 +65,7 @@
<div class="button-group">
<button type="button" class="btn btn-lg btn-primary" @click="validateForm('shipping-form')" :disabled="disable_button" id="checkout-continue-button">
<button type="button" class="btn btn-lg btn-primary" @click="validateForm('shipping-form')" :disabled="disable_button" id="checkout-shipping-continue-button">
{{ __('shop::app.checkout.onepage.continue') }}
</button>
@ -79,7 +79,7 @@
<div class="button-group">
<button type="button" class="btn btn-lg btn-primary" @click="validateForm('payment-form')" :disabled="disable_button" id="checkout-continue-button">
<button type="button" class="btn btn-lg btn-primary" @click="validateForm('payment-form')" :disabled="disable_button" id="checkout-payment-continue-button">
{{ __('shop::app.checkout.onepage.continue') }}
</button>
@ -158,7 +158,7 @@
}),
created() {
if(!customerAddress) {
if(! customerAddress) {
this.new_shipping_address = true;
this.new_billing_address = true;
} else {

View File

@ -22,8 +22,8 @@
<span class="list-heading">{{ __('shop::app.footer.subscribe-newsletter') }}</span>
<div class="form-container">
<form action="{{ route('shop.subscribe') }}">
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<input type="email" class="control subscribe-field" name="email" placeholder="Email Address" required><br/>
<div class="control-group" :class="[errors.has('subscriber_email') ? 'has-error' : '']">
<input type="email" class="control subscribe-field" name="subscriber_email" placeholder="Email Address" required><br/>
<button class="btn btn-md btn-primary">{{ __('shop::app.subscription.subscribe') }}</button>
</div>
@ -61,4 +61,4 @@
</div>
</div>
</div>
</div>
</div>

View File

@ -5,27 +5,32 @@
@endforeach
@if ($products)
<div class="attached-products-wrapper mt-50">
<div class="title">
{{ __('shop::app.products.cross-sell-title') }}
<span class="border-bottom"></span>
</div>
@foreach ($products as $product)
<div class="product-grid-4">
@if ($product->cross_sells()->count())
@foreach ($products as $product)
<div class="attached-products-wrapper mt-50">
@foreach ($product->cross_sells()->paginate(4) as $cross_sell_product)
<div class="title">
{{ __('shop::app.products.cross-sell-title') }}
<span class="border-bottom"></span>
</div>
@include ('shop::products.list.card', ['product' => $cross_sell_product])
<div class="product-grid-4">
@endforeach
@foreach ($product->cross_sells()->paginate(4) as $cross_sell_product)
@endforeach
@include ('shop::products.list.card', ['product' => $cross_sell_product])
</div>
@endforeach
</div>
</div>
@endif
@endforeach
</div>
@endif

View File

@ -27,7 +27,7 @@
<i class="icon arrow-up-white-icon"></i>
</li>
<li class="thumb-frame" v-for='(thumb, index) in thumbs' @click="changeImage(thumb)" :class="[thumb.large_image_url == currentLargeImageUrl ? 'active' : '']">
<li class="thumb-frame" v-for='(thumb, index) in thumbs' @mouseover="changeImage(thumb)" :class="[thumb.large_image_url == currentLargeImageUrl ? 'active' : '']">
<img :src="thumb.small_image_url" />
</li>
@ -111,5 +111,4 @@
});
</script>
@endpush

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,4 @@
{
"/js/ui.js": "/js/ui.js?id=83b5b520995eba4ce1f3",
"/css/ui.css": "/css/ui.css?id=6e9dd13119891a48ec16"
}
"/js/ui.js": "/js/ui.js?id=0219a3829322d1811a09",
"/css/ui.css": "/css/ui.css?id=212dcb4147a9796aee09"
}

View File

@ -207,7 +207,9 @@ abstract class DataGrid
if ($column['searchable'] == true) {
if($this->enableFilterMap && isset($this->filterMap[$column['index']])) {
$collection->orWhere($this->filterMap[$column['index']], 'like', '%'.$info['all'].'%');
} else {
} else if($this->enableFilterMap && !isset($this->filterMap[$column['index']])) {
$collection->orWhere($column['index'], 'like', '%'.$info['all'].'%');
}else {
$collection->orWhere($column['index'], 'like', '%'.$info['all'].'%');
}
}
@ -215,6 +217,12 @@ abstract class DataGrid
});
}
} else {
foreach ($this->completeColumnDetails as $column) {
if($column['index'] == $columnName && !$column['filterable']) {
return $collection;
}
}
if (array_keys($info)[0] == "like" || array_keys($info)[0] == "nlike") {
foreach ($info as $condition => $filter_value) {
if ($this->enableFilterMap && isset($this->filterMap[$columnName])) {
@ -223,6 +231,12 @@ abstract class DataGrid
$this->operators[$condition],
'%'.$filter_value.'%'
);
} else if($this->enableFilterMap && !isset($this->filterMap[$columnName])) {
$collection->where(
$columnName,
$this->operators[$condition],
'%'.$filter_value.'%'
);
} else {
$collection->where(
$columnName,
@ -240,6 +254,12 @@ abstract class DataGrid
$this->operators[$condition],
$filter_value
);
} else if($this->enableFilterMap && !isset($this->filterMap[$columnName])) {
$collection->whereDate(
$columnName,
$this->operators[$condition],
$filter_value
);
} else {
$collection->whereDate(
$columnName,
@ -254,6 +274,12 @@ abstract class DataGrid
$this->operators[$condition],
$filter_value
);
} else if($this->enableFilterMap && !isset($this->filterMap[$columnName])) {
$collection->where(
$columnName,
$this->operators[$condition],
$filter_value
);
} else {
$collection->where(
$columnName,

View File

@ -11,6 +11,7 @@ return [
'edit' => 'Do you really want to edit this :resource?',
],
'zero-index' => 'Index columns can have values greater than zero only',
'no-records' => 'No Records Found',
'filter-fields-missing' => 'Some of the required field is null, please check column, condition and value properly',
'click_on_action' => 'Do you really want to perform this action?',

View File

@ -32,9 +32,11 @@
<select class="filter-column-select control" v-model="filterColumn" v-on:click="getColumnOrAlias(filterColumn)">
<option selected disabled>{{ __('ui::app.datagrid.column') }}</option>
@foreach($results['columns'] as $column)
<option value="{{ $column['index'] }}">
{{ $column['label'] }}
</option>
@if(isset($column['filterable']) && $column['filterable'])
<option value="{{ $column['index'] }}">
{{ $column['label'] }}
</option>
@endif
@endforeach
</select>
</div>
@ -338,7 +340,7 @@
if (this.filterIndex == this.columnOrAlias && (this.numberValue == 0 || this.numberValue < 0)) {
indexConditions = false;
alert('index columns can have values greater than zero only');
alert('{{__('ui::app.datagrid.zero-index')}}');
}
if(indexConditions)

View File

@ -4,7 +4,7 @@
$data = array();
// run command on terminal
$command = 'cd ../.. && php artisan migrate';
$command = 'cd ../.. && php artisan migrate --force';
$last_line = exec($command, $data['migrate'], $data['results']);
// return a response