Regular merge with master
This commit is contained in:
commit
1e05840c7d
|
|
@ -1,23 +1,5 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'flatrate' => [
|
||||
'code' => 'flatrate',
|
||||
'title' => 'Flat Rate',
|
||||
'description' => 'This is a flat rate',
|
||||
'active' => true,
|
||||
'default_rate' => '10',
|
||||
'type' => 'per_unit',
|
||||
'class' => 'Webkul\Shipping\Carriers\FlatRate',
|
||||
],
|
||||
return [
|
||||
|
||||
'free' => [
|
||||
'code' => 'free',
|
||||
'title' => 'Free Shipping',
|
||||
'description' => 'This is a free shipping',
|
||||
'active' => true,
|
||||
'class' => 'Webkul\Shipping\Carriers\Free',
|
||||
]
|
||||
];
|
||||
|
||||
?>
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
];
|
||||
|
|
@ -1,34 +1,6 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'cashondelivery' => [
|
||||
'code' => 'cashondelivery',
|
||||
'title' => 'Cash On Delivery',
|
||||
'description' => 'Cash On Delivery',
|
||||
'class' => 'Webkul\Payment\Payment\CashOnDelivery',
|
||||
'order_status' => 'pending',
|
||||
'active' => true
|
||||
],
|
||||
|
||||
'moneytransfer' => [
|
||||
'code' => 'moneytransfer',
|
||||
'title' => 'Money Transfer',
|
||||
'description' => 'Money Transfer',
|
||||
'class' => 'Webkul\Payment\Payment\MoneyTransfer',
|
||||
'order_status' => 'pending',
|
||||
'active' => true
|
||||
],
|
||||
|
||||
'paypal_standard' => [
|
||||
'code' => 'paypal_standard',
|
||||
'title' => 'Paypal Standard',
|
||||
'description' => 'Paypal Standard',
|
||||
'class' => 'Webkul\Paypal\Payment\Standard',
|
||||
'order_status' => 'pending_payment',
|
||||
'sandbox' => true,
|
||||
'active' => true,
|
||||
'business_account' => 'test@webkul.com'
|
||||
]
|
||||
];
|
||||
|
||||
?>
|
||||
|
|
@ -18,7 +18,6 @@
|
|||
"vue": "^2.1.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"vee-validate": "2.0.0-rc.26",
|
||||
"flatpickr": "^4.4.6"
|
||||
"vee-validate": "2.0.0-rc.26"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/admin.js": "/js/admin.js?id=1d3c0ea423bffae501e9",
|
||||
"/js/admin.js": "/js/admin.js?id=c70dacdf945a32e04b77",
|
||||
"/css/admin.css": "/css/admin.css?id=201f91bc553baa11139f"
|
||||
}
|
||||
|
|
@ -11,16 +11,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class AttributeDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var AttributeDataGrid
|
||||
* for countries
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for Attributes
|
||||
*/
|
||||
public function createAttributeDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -5,23 +5,18 @@ namespace Webkul\Admin\DataGrids;
|
|||
use Illuminate\View\View;
|
||||
use Webkul\Ui\DataGrid\Facades\DataGrid;
|
||||
|
||||
|
||||
/**
|
||||
* Attributes Family DataGrid
|
||||
*
|
||||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class AttributeFamilyDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var CountryComposer
|
||||
* for countries
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for Attribute Families
|
||||
*/
|
||||
public function createAttributeFamilyDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -12,16 +12,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class CategoryDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var AttributeDataGrid
|
||||
* for countries
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for category
|
||||
*/
|
||||
public function createCategoryDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -12,16 +12,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class ChannelDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var CountryComposer
|
||||
* for countries
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for channel
|
||||
*/
|
||||
public function createChannelsDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -12,16 +12,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class CountryDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var CountryComposer
|
||||
* for countries
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for countries
|
||||
*/
|
||||
public function createCountryDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -11,16 +11,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class CurrencyDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var CurrenciesDataGrid
|
||||
* for countries
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for currencies
|
||||
*/
|
||||
public function createCurrencyDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -13,13 +13,10 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
*/
|
||||
class CustomerDataGrid
|
||||
{
|
||||
/**
|
||||
* The CustomerDataGrid
|
||||
* implementation.
|
||||
*
|
||||
* @var CustomerDataGrid
|
||||
*/
|
||||
|
||||
/**
|
||||
* The CustomerDataGrid implementation.
|
||||
*/
|
||||
public function createCustomerDataGrid()
|
||||
{
|
||||
|
||||
|
|
@ -104,7 +101,12 @@ class CustomerDataGrid
|
|||
'alias' => 'Email',
|
||||
'type' => 'string',
|
||||
'label' => 'Email',
|
||||
],
|
||||
], [
|
||||
'column' => 'cg.name',
|
||||
'alias' => 'CustomerGroupName',
|
||||
'type' => 'string',
|
||||
'label' => 'Group Name',
|
||||
]
|
||||
],
|
||||
|
||||
//don't use aliasing in case of searchables
|
||||
|
|
@ -139,10 +141,10 @@ class CustomerDataGrid
|
|||
|
||||
}
|
||||
|
||||
public function render()
|
||||
public function render($pagination = true)
|
||||
{
|
||||
|
||||
return $this->createCustomerDataGrid()->render();
|
||||
return $this->createCustomerDataGrid()->render($pagination);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -11,14 +11,11 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Rahul Shukla <rahulshukla.symfony517@webkul.com>
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class CustomerGroupDataGrid
|
||||
{
|
||||
|
||||
/**
|
||||
* The Customer Group Data
|
||||
* Grid implementation.
|
||||
*
|
||||
* @var CustomerGroupDataGrid
|
||||
* The Customer Group Data Grid implementation.
|
||||
*/
|
||||
public function createCustomerGroupDataGrid()
|
||||
{
|
||||
|
|
@ -56,8 +53,7 @@ class CustomerGroupDataGrid
|
|||
'route' => 'admin.groups.edit',
|
||||
'confirm_text' => 'Do you really want to edit this record?',
|
||||
'icon' => 'icon pencil-lg-icon',
|
||||
],
|
||||
[
|
||||
], [
|
||||
'type' => 'Delete',
|
||||
'route' => 'admin.groups.delete',
|
||||
'confirm_text' => 'Do you really want to delete this record?',
|
||||
|
|
@ -117,6 +113,7 @@ class CustomerGroupDataGrid
|
|||
'label' => 'Name'
|
||||
]
|
||||
],
|
||||
|
||||
'operators' => [
|
||||
'eq' => "=",
|
||||
'lt' => "<",
|
||||
|
|
@ -135,7 +132,6 @@ class CustomerGroupDataGrid
|
|||
}
|
||||
|
||||
public function render() {
|
||||
|
||||
return $this->createCustomerGroupDataGrid()->render();
|
||||
}
|
||||
}
|
||||
|
|
@ -12,17 +12,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Rahul Shukla <rahulshukla.symfony517@webkul.com> @rahul-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class CustomerReviewDataGrid
|
||||
{
|
||||
/**
|
||||
* The ProductReviewDataGrid
|
||||
* implementation.
|
||||
*
|
||||
* @var CustomerReviewsDataGrid
|
||||
* for Reviews
|
||||
*/
|
||||
|
||||
/**
|
||||
* The ProductReviewDataGrid implementation for Product Reviews
|
||||
*/
|
||||
public function createCustomerReviewDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -11,17 +11,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class ExchangeRatesDataGrid
|
||||
{
|
||||
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var ExchangeRatesDataGrid
|
||||
* for Exchange Rates
|
||||
* The Data Grid implementation for Exchange Rates
|
||||
*/
|
||||
|
||||
|
||||
public function createExchangeRatesDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -11,16 +11,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class InventorySourcesDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var InventorySourcesDataGrid
|
||||
* for Inventory Sources
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for Inventory Sources
|
||||
*/
|
||||
public function createInventorySourcesDataGrid()
|
||||
{
|
||||
return DataGrid::make([
|
||||
|
|
|
|||
|
|
@ -11,16 +11,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class LocalesDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var CountryDataGrid
|
||||
* for countries
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for countries
|
||||
*/
|
||||
public function createCountryDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -11,14 +11,11 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class NewsLetterDataGrid
|
||||
{
|
||||
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var newsletterDataGrid
|
||||
* for orders
|
||||
* The Data Grid implementation for orders
|
||||
*/
|
||||
public function newsLetterDataGrid()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,30 +6,25 @@ use Illuminate\View\View;
|
|||
use Webkul\Ui\DataGrid\Facades\DataGrid;
|
||||
|
||||
/**
|
||||
* orderDataGrid
|
||||
* OrderDataGrid
|
||||
*
|
||||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class OrderDataGrid
|
||||
{
|
||||
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var orderDataGrid
|
||||
* for orders
|
||||
* The Data Grid implementation for orders
|
||||
*/
|
||||
public function createOrderDataGrid()
|
||||
{
|
||||
|
||||
return DataGrid::make([
|
||||
return DataGrid::make([
|
||||
'name' => 'orders',
|
||||
'table' => 'orders as or',
|
||||
'select' => 'or.id',
|
||||
'perpage' => 10,
|
||||
'aliased' => false,
|
||||
//True in case of joins else aliasing key required on all cases
|
||||
'aliased' => false, //True in case of joins else aliasing key required on all cases
|
||||
|
||||
'massoperations' =>[
|
||||
// [
|
||||
|
|
@ -47,19 +42,12 @@ class OrderDataGrid
|
|||
// 'confirm_text' => 'Do you really want to view this record?',
|
||||
'icon' => 'icon eye-icon',
|
||||
'icon-alt' => 'View'
|
||||
],
|
||||
// [
|
||||
// 'type' => 'Delete',
|
||||
// 'route' => route('admin.datagrid.delete'),
|
||||
// 'confirm_text' => 'Do you really want to do this?',
|
||||
// 'icon' => 'icon trash-icon',
|
||||
// ],
|
||||
]
|
||||
],
|
||||
|
||||
'join' => [],
|
||||
|
||||
//use aliasing on secodary columns if join is performed
|
||||
|
||||
'columns' => [
|
||||
[
|
||||
'name' => 'or.id',
|
||||
|
|
@ -94,7 +82,7 @@ class OrderDataGrid
|
|||
], [
|
||||
'name' => 'or.created_at',
|
||||
'alias' => 'createdat',
|
||||
'type' => 'string',
|
||||
'type' => 'datetime',
|
||||
'label' => 'Order Date',
|
||||
'sortable' => true,
|
||||
], [
|
||||
|
|
@ -140,10 +128,15 @@ class OrderDataGrid
|
|||
'alias' => 'orstatus',
|
||||
'type' => 'string',
|
||||
'label' => 'Status'
|
||||
], [
|
||||
'column' => 'or.created_at',
|
||||
'alias' => 'createdat',
|
||||
'type' => 'datetime',
|
||||
'label' => 'Order Date',
|
||||
],
|
||||
],
|
||||
//don't use aliasing in case of searchables
|
||||
|
||||
//don't use aliasing in case of searchables
|
||||
'searchable' => [
|
||||
[
|
||||
'column' => 'or.id',
|
||||
|
|
@ -172,8 +165,8 @@ class OrderDataGrid
|
|||
]);
|
||||
}
|
||||
|
||||
public function render()
|
||||
public function render($pagination = true)
|
||||
{
|
||||
return $this->createOrderDataGrid()->render();
|
||||
return $this->createOrderDataGrid()->render($pagination);
|
||||
}
|
||||
}
|
||||
|
|
@ -11,14 +11,11 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class OrderInvoicesDataGrid
|
||||
{
|
||||
|
||||
/**
|
||||
* The Order invoices Data Grid implementation.
|
||||
*
|
||||
* @var OrderInvoicesDataGrid
|
||||
* for invoices of orders
|
||||
* The Order invoices Data Grid implementation for invoices of orders
|
||||
*/
|
||||
public function createOrderInvoicesDataGrid()
|
||||
{
|
||||
|
|
@ -133,8 +130,8 @@ class OrderInvoicesDataGrid
|
|||
]);
|
||||
}
|
||||
|
||||
public function render()
|
||||
public function render($pagination = true)
|
||||
{
|
||||
return $this->createOrderInvoicesDataGrid()->render();
|
||||
return $this->createOrderInvoicesDataGrid()->render($pagination);
|
||||
}
|
||||
}
|
||||
|
|
@ -12,14 +12,11 @@ use DB;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class OrderShipmentsDataGrid
|
||||
{
|
||||
|
||||
/**
|
||||
* The Order Shipments Data Grid implementation.
|
||||
*
|
||||
* @var OrderShipmentsDataGrid
|
||||
* for shipments of orders
|
||||
* The Order Shipments Data Grid implementation for shipments of orders
|
||||
*/
|
||||
public function createOrderShipmentsDataGrid()
|
||||
{
|
||||
|
|
@ -134,8 +131,8 @@ class OrderShipmentsDataGrid
|
|||
]);
|
||||
}
|
||||
|
||||
public function render()
|
||||
public function render($pagination = true)
|
||||
{
|
||||
return $this->createOrderShipmentsDataGrid()->render();
|
||||
return $this->createOrderShipmentsDataGrid()->render($pagination);
|
||||
}
|
||||
}
|
||||
|
|
@ -15,11 +15,10 @@ use Webkul\Product\Repositories\ProductRepository;
|
|||
*/
|
||||
class ProductDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation @var ProductDataGrid
|
||||
* for Products
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for Products
|
||||
*/
|
||||
public function createProductDataGrid()
|
||||
{
|
||||
return DataGrid::make([
|
||||
|
|
@ -195,4 +194,11 @@ class ProductDataGrid
|
|||
{
|
||||
return $this->createProductDataGrid()->render();
|
||||
}
|
||||
|
||||
public function export()
|
||||
{
|
||||
$paginate = false;
|
||||
return $this->createProductDataGrid()->render($paginate);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -11,17 +11,11 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class RolesDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var RolesDataGrid
|
||||
* for Roles
|
||||
* The Data Grid implementation for Roles
|
||||
*/
|
||||
|
||||
|
||||
public function createRolesDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -11,16 +11,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class SliderDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var SliderDataGrid
|
||||
* for Sliders
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for Sliders
|
||||
*/
|
||||
public function createSliderDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -14,11 +14,9 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
|
||||
class TaxCategoryDataGrid
|
||||
{
|
||||
|
||||
/**
|
||||
* The Tax Category Data
|
||||
* Grid implementation.
|
||||
*
|
||||
* @var TaxCategoryDataGrid
|
||||
* The Tax Category Data Grid implementation.
|
||||
*/
|
||||
public function createTaxCategoryDataGrid()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -11,14 +11,11 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class TaxRateDataGrid
|
||||
{
|
||||
|
||||
/**
|
||||
* The Tax Category Data
|
||||
* Grid implementation.
|
||||
*
|
||||
* @var TaxRateDataGrid
|
||||
* The Tax Category Data Grid implementation.
|
||||
*/
|
||||
public function createTaxRateDataGrid()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -11,16 +11,12 @@ use Webkul\Ui\DataGrid\Facades\DataGrid;
|
|||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class UserDataGrid
|
||||
{
|
||||
/**
|
||||
* The Data Grid implementation.
|
||||
*
|
||||
* @var UserDataGrid
|
||||
* for admin users
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Data Grid implementation for admin users
|
||||
*/
|
||||
public function createUserDataGrid()
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -34,20 +34,17 @@ class DataGridExport implements FromView, ShouldAutoSize
|
|||
$this->gridData = $gridData;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* function to create a blade view for export.
|
||||
*
|
||||
*/
|
||||
public function view(): View
|
||||
{
|
||||
$results = $this->gridData->render();
|
||||
|
||||
$header = [];
|
||||
foreach($results->columns as $col) {
|
||||
$header[] = $col->label;
|
||||
}
|
||||
$pagination = false;
|
||||
|
||||
return view('admin::export.export', [
|
||||
'results' => $this->gridData->render()->results,
|
||||
'columns' => $this->gridData->render()->columns,
|
||||
'header' => $header
|
||||
'results' => $this->gridData->render($pagination)->results,
|
||||
'columns' => $this->gridData->render($pagination)->columns,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ namespace Webkul\Admin\Http\Controllers;
|
|||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Webkul\Admin\Facades\Configuration;
|
||||
use Webkul\Core\Repositories\CoreConfigRepository as CoreConfig;
|
||||
|
||||
/**
|
||||
|
|
@ -52,4 +53,18 @@ class ConfigurationController extends Controller
|
|||
{
|
||||
return view($this->_config['view']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store()
|
||||
{
|
||||
$data = request()->all();
|
||||
|
||||
session()->flash('success', 'Shipping Method is created successfully');
|
||||
|
||||
return redirect()->route($this->_config['redirect']);
|
||||
}
|
||||
}
|
||||
|
|
@ -9,10 +9,6 @@ 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
|
||||
*
|
||||
|
|
@ -49,23 +45,15 @@ 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, CustomerDataGrid $customerDataGrid)
|
||||
public function __construct(Customer $customer, CustomerGroup $customerGroup, Channel $channel)
|
||||
{
|
||||
$this->_config = request('_config');
|
||||
|
||||
|
|
@ -77,8 +65,6 @@ class CustomerController extends Controller
|
|||
|
||||
$this->channel = $channel;
|
||||
|
||||
$this->customerDataGrid = $customerDataGrid;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -190,15 +176,4 @@ 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');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Admin\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Webkul\Admin\Http\Controllers\Controller;
|
||||
use Webkul\Admin\Exports\DataGridExport;
|
||||
use Excel;
|
||||
|
||||
/**
|
||||
* Export controlller
|
||||
*
|
||||
* @author Rahul Shukla <rahulshukla.symfony517@webkul.com>
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
class ExportController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('admin');
|
||||
}
|
||||
|
||||
/**
|
||||
* function for export datagrid
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function export()
|
||||
{
|
||||
$results = unserialize(request()->all()['gridData']);
|
||||
|
||||
$file_name = class_basename($results);
|
||||
|
||||
if(request()->all()['format'] == 'csv') {
|
||||
return Excel::download(new DataGridExport($results), $file_name.'.csv');
|
||||
}else {
|
||||
return Excel::download(new DataGridExport($results), $file_name.'.xlsx');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -63,17 +63,21 @@ 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');
|
||||
|
||||
//Customers Management Routes
|
||||
Route::get('configuration/sales/general', 'Webkul\Admin\Http\Controllers\ConfigurationController@index')->defaults('_config', [
|
||||
'view' => 'admin::configuration.sales.general'
|
||||
])->name('admin.configuration.sales.general');
|
||||
|
||||
//Shipping Methods Routes
|
||||
Route::get('configuration/sales/shipping-methods', 'Webkul\Admin\Http\Controllers\ConfigurationController@index')->defaults('_config', [
|
||||
'view' => 'admin::configuration.sales.shipping-method'
|
||||
])->name('admin.configuration.sales.shipping_methods');
|
||||
|
||||
|
||||
Route::post('configuration/sales/shipping-methods', 'Webkul\Admin\Http\Controllers\ConfigurationController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.configuration.sales.shipping_methods'
|
||||
])->name('admin.configuration.sales.shipping_methods.store');
|
||||
|
||||
// Reviews Routes
|
||||
Route::get('reviews/edit/{id}', 'Webkul\Product\Http\Controllers\ReviewController@edit')->defaults('_config',[
|
||||
|
|
@ -577,6 +581,10 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
Route::get('/tax-rates/delete/{id}', 'Webkul\Tax\Http\Controllers\TaxRateController@destroy')->name('admin.tax-rates.delete');
|
||||
//tax rate ends
|
||||
|
||||
//DataGrid Export
|
||||
Route::post('admin/export', 'Webkul\Admin\Http\Controllers\ExportController@export')->name('admin.datagrid.export');
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ use Illuminate\Support\Facades\Blade;
|
|||
use Webkul\Admin\Providers\EventServiceProvider;
|
||||
use Illuminate\Contracts\Debug\ExceptionHandler;
|
||||
use Webkul\Admin\Exceptions\Handler;
|
||||
use Illuminate\Foundation\AliasLoader;
|
||||
use Webkul\Admin\Facades\Configuration as ConfigurationFacade;
|
||||
use Webkul\Admin\Configuration;
|
||||
|
||||
class AdminServiceProvider extends ServiceProvider
|
||||
{
|
||||
|
|
@ -38,15 +41,6 @@ class AdminServiceProvider extends ServiceProvider
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind the the data to the views
|
||||
*
|
||||
|
|
|
|||
|
|
@ -115,19 +115,19 @@ class EventServiceProvider extends ServiceProvider
|
|||
'sort' => 1,
|
||||
'icon-class' => '',
|
||||
],
|
||||
// [
|
||||
// 'key' => 'configuration.sales',
|
||||
// 'name' => 'Sales',
|
||||
// 'route' => 'admin.configuration.sales.general',
|
||||
// 'sort' => 1,
|
||||
// 'icon-class' => '',
|
||||
// ], [
|
||||
// 'key' => 'configuration.sales.general',
|
||||
// 'name' => 'General',
|
||||
// 'route' => 'admin.configuration.sales.general',
|
||||
// 'sort' => 1,
|
||||
// 'icon-class' => '',
|
||||
// ],
|
||||
[
|
||||
'key' => 'configuration.sales',
|
||||
'name' => 'Sales',
|
||||
'route' => 'admin.configuration.sales.shipping_methods',
|
||||
'sort' => 1,
|
||||
'icon-class' => '',
|
||||
], [
|
||||
'key' => 'configuration.sales.shipping_method',
|
||||
'name' => 'Shipping Methods',
|
||||
'route' => 'admin.configuration.sales.shipping_methods',
|
||||
'sort' => 1,
|
||||
'icon-class' => '',
|
||||
],
|
||||
[
|
||||
'key' => 'settings',
|
||||
'name' => 'Settings',
|
||||
|
|
|
|||
|
|
@ -5,10 +5,6 @@ require("./bootstrap");
|
|||
|
||||
Vue.use(VeeValidate);
|
||||
|
||||
Vue.component("datetime", require("./components/datetime"));
|
||||
Vue.component("date", require("./components/date"));
|
||||
require('flatpickr/dist/flatpickr.css');
|
||||
|
||||
$(document).ready(function () {
|
||||
Vue.config.ignoredElements = [
|
||||
'option-wrapper',
|
||||
|
|
|
|||
|
|
@ -350,9 +350,12 @@ return [
|
|||
],
|
||||
|
||||
'sales' => [
|
||||
'general' => [
|
||||
'title' => 'General',
|
||||
'save-btn-title' => 'Save'
|
||||
'shipping-method' => [
|
||||
'title' => 'Shipping Methods',
|
||||
'save-btn-title' => 'Save',
|
||||
'description' => 'Description',
|
||||
'active' => 'Active',
|
||||
'status' => 'Status'
|
||||
]
|
||||
]
|
||||
],
|
||||
|
|
@ -540,8 +543,7 @@ return [
|
|||
'channel_name' => 'Channel Name',
|
||||
'state' => 'State',
|
||||
'select-state' => 'Select a region, state or province.',
|
||||
'country' => 'Country',
|
||||
'export' => 'Export'
|
||||
'country' => 'Country'
|
||||
],
|
||||
'reviews' => [
|
||||
'title' => 'Reviews',
|
||||
|
|
@ -588,5 +590,11 @@ return [
|
|||
'title' => 'Unauthorized Error',
|
||||
'message' => 'The request has not been applied because it lacks valid authentication credentials for the target resource.'
|
||||
],
|
||||
],
|
||||
|
||||
'export' => [
|
||||
'export' => 'Export',
|
||||
'format' => 'Select Format',
|
||||
'download' => 'Download'
|
||||
]
|
||||
];
|
||||
|
|
@ -103,6 +103,7 @@
|
|||
<select class="control" id="validation" name="validation">
|
||||
<option value=""></option>
|
||||
<option value="numeric">{{ __('admin::app.catalog.attributes.number') }}</option>
|
||||
<option value="decimal">{{ __('admin::app.catalog.attributes.decimal') }}</option>
|
||||
<option value="email">{{ __('admin::app.catalog.attributes.email') }}</option>
|
||||
<option value="url">{{ __('admin::app.catalog.attributes.url') }}</option>
|
||||
</select>
|
||||
|
|
@ -114,14 +115,6 @@
|
|||
<accordian :title="'{{ __('admin::app.catalog.attributes.configuration') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<div class="control-group">
|
||||
<label for="status">{{ __('admin::app.catalog.attributes.status') }}</label>
|
||||
<select class="control" id="status" name="status">
|
||||
<option value="1">{{ __('admin::app.catalog.attributes.yes') }}</option>
|
||||
<option value="0">{{ __('admin::app.catalog.attributes.no') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="value_per_locale">{{ __('admin::app.catalog.attributes.value_per_locale') }}</label>
|
||||
<select class="control" id="value_per_locale" name="value_per_locale">
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<?php $selectedValidation = old('input_validation') ?: $attribute->input_validation ?>
|
||||
<?php $selectedValidation = old('validation') ?: $attribute->validation ?>
|
||||
<label for="validation">{{ __('admin::app.catalog.attributes.input_validation') }}</label>
|
||||
<select class="control" id="validation" name="validation">
|
||||
<option value=""></option>
|
||||
|
|
@ -148,18 +148,6 @@
|
|||
|
||||
<accordian :title="'{{ __('admin::app.catalog.attributes.configuration') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<div class="control-group">
|
||||
<label for="status">{{ __('admin::app.catalog.attributes.status') }}</label>
|
||||
<select class="control" id="status" name="status">
|
||||
<option value="1" {{ $attribute->status ? 'selected' : '' }}>
|
||||
{{ __('admin::app.catalog.attributes.yes') }}
|
||||
</option>
|
||||
<option value="0" {{ $attribute->status ? '' : 'selected' }}>
|
||||
{{ __('admin::app.catalog.attributes.no') }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="value_per_locale">{{ __('admin::app.catalog.attributes.value_per_locale') }}</label>
|
||||
|
|
|
|||
|
|
@ -62,8 +62,7 @@
|
|||
|
||||
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
|
||||
<label for="description" class="required">{{ __('admin::app.catalog.categories.description') }}</label>
|
||||
<textarea v-validate="'required'" class="control" id="description" name="description" data-vv-as=""{{ __('admin::app.catalog.categories.description') }}"">
|
||||
{{ old('description') }}</textarea>
|
||||
<textarea v-validate="'required'" class="control" id="description" name="description" data-vv-as=""{{ __('admin::app.catalog.categories.description') }}"">{{ old('description') }}</textarea>
|
||||
<span class="control-error" v-if="errors.has('description')">@{{ errors.first('description') }}</span>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -75,9 +75,7 @@
|
|||
|
||||
<div class="control-group" :class="[errors.has('{{$locale}}[description]') ? 'has-error' : '']">
|
||||
<label for="description" class="required">{{ __('admin::app.catalog.categories.description') }}</label>
|
||||
<textarea v-validate="'required'" class="control" id="description" name="{{$locale}}[description]" data-vv-as=""{{ __('admin::app.catalog.categories.description') }}"">
|
||||
{{ old($locale)['description'] ?: $category->translate($locale)['description'] }}
|
||||
</textarea>
|
||||
<textarea v-validate="'required'" class="control" id="description" name="{{$locale}}[description]" data-vv-as=""{{ __('admin::app.catalog.categories.description') }}"">{{ old($locale)['description'] ?: $category->translate($locale)['description'] }}</textarea>
|
||||
<span class="control-error" v-if="errors.has('{{$locale}}[description]')">@{{ errors.first('{!!$locale!!}[description]') }}</span>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -21,19 +21,19 @@
|
|||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
|
||||
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<accordian :title="'{{ __('admin::app.catalog.families.general') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
|
||||
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
|
||||
<label for="code" class="required">{{ __('admin::app.catalog.families.code') }}</label>
|
||||
<input type="text" v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" data-vv-as=""{{ __('admin::app.catalog.families.code') }}"" v-code/>
|
||||
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
|
||||
<label for="name" class="required">{{ __('admin::app.catalog.families.name') }}</label>
|
||||
<input type="text" v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') }}" data-vv-as=""{{ __('admin::app.catalog.families.name') }}""/>
|
||||
|
|
@ -66,6 +66,7 @@
|
|||
<group-form></group-form>
|
||||
</div>
|
||||
</modal>
|
||||
|
||||
@stop
|
||||
|
||||
@push('scripts')
|
||||
|
|
@ -173,7 +174,7 @@
|
|||
</div>
|
||||
</accordian>
|
||||
</script>
|
||||
|
||||
|
||||
<script>
|
||||
var groups = @json($attributeFamily ? $attributeFamily->attribute_groups : []);
|
||||
var custom_attributes = @json($custom_attributes);
|
||||
|
|
@ -216,7 +217,7 @@
|
|||
groups.push(this.group);
|
||||
|
||||
groups = this.sortGroups();
|
||||
|
||||
|
||||
this.group = {'groupName': '', 'position': '', 'is_user_defined': 1, 'custom_attributes': []};
|
||||
|
||||
this.$parent.closeModal();
|
||||
|
|
@ -273,7 +274,7 @@
|
|||
addAttributes (groupIndex, attributeIds) {
|
||||
attributeIds.forEach(function(attributeId) {
|
||||
var attribute = this.custom_attributes.filter(attribute => attribute.id == attributeId)
|
||||
|
||||
|
||||
this.groups[groupIndex].custom_attributes.push(attribute[0]);
|
||||
|
||||
let index = this.custom_attributes.indexOf(attribute[0])
|
||||
|
|
@ -321,7 +322,7 @@
|
|||
|
||||
$(e.target).prev().find('li input').each(function() {
|
||||
var attributeId = $(this).val();
|
||||
|
||||
|
||||
if($(this).is(':checked')) {
|
||||
attributeIds.push(attributeId);
|
||||
|
||||
|
|
@ -340,4 +341,4 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@endpush
|
||||
|
|
@ -71,10 +71,14 @@
|
|||
|
||||
$disabled = true;
|
||||
} else {
|
||||
if($attribute->is_required) {
|
||||
if ($attribute->is_required) {
|
||||
array_push($validations, 'required');
|
||||
}
|
||||
|
||||
if ($attribute->type == 'price') {
|
||||
array_push($validations, 'decimal');
|
||||
}
|
||||
|
||||
array_push($validations, $attribute->validation);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
<select v-validate="'{{$validations}}'" class="control" id="{{ $name }}" name="{{ $name }}" data-vv-as=""{{ $field['name'] }}"" >
|
||||
|
||||
@foreach($field['options'] as $option)
|
||||
|
||||
<?php
|
||||
if($option['value']) {
|
||||
$value = 1;
|
||||
}else {
|
||||
$value = 0;
|
||||
}
|
||||
|
||||
$selectedOption = core()->getConfigData($name) ?? '';
|
||||
?>
|
||||
|
||||
<option value="{{ $value }}" {{ $value == $selectedOption ? 'selected' : ''}}>
|
||||
{{ $option['title'] }}
|
||||
</option>
|
||||
@endforeach
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<input type="text" v-validate="'{{$validations}}'" class="control" id="{{ $name }}" name="{{ $name }}" value="{{ old($name) ?: core()->getConfigData($name) }}" data-vv-as=""{{ $field['name'] }}"">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
<textarea v-validate="'{{$validations}}'" class="control" id="{{ $name }}" name="{{ $name }}" data-vv-as=""{{ $field['name'] }}"">{{ old($name) ?: core()->getConfigData($name) }}</textarea>
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.configuration.sales.general.title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<form method="POST" action="" @submit.prevent="onSubmit">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
{{ __('admin::app.configuration.sales.general.title') }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.configuration.sales.general.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
|
||||
<div class="form-container">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -0,0 +1,141 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.configuration.sales.shipping-method.title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<?php $locale = request()->get('locale') ?: app()->getLocale(); ?>
|
||||
<?php $channel = request()->get('channel') ?: core()->getDefaultChannelCode(); ?>
|
||||
|
||||
<form method="POST" action="" @submit.prevent="onSubmit" enctype="multipart/form-data">
|
||||
|
||||
<div class="page-header">
|
||||
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
{{ __('admin::app.configuration.sales.shipping-method.title') }}
|
||||
</h1>
|
||||
|
||||
<div class="control-group">
|
||||
<select class="control" id="channel-switcher" name="channel">
|
||||
@foreach(core()->getAllChannels() as $channelModel)
|
||||
|
||||
<option value="{{ $channelModel->code }}" {{ ($channelModel->code) == $channel ? 'selected' : '' }}>
|
||||
{{ $channelModel->name }}
|
||||
</option>
|
||||
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<select class="control" id="locale-switcher" name="locale">
|
||||
@foreach(core()->getAllLocales() as $localeModel)
|
||||
|
||||
<option value="{{ $localeModel->code }}" {{ ($localeModel->code) == $locale ? 'selected' : '' }}>
|
||||
{{ $localeModel->name }}
|
||||
</option>
|
||||
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.configuration.sales.shipping-method.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
@foreach (config('core.carriers') as $method => $carrier)
|
||||
|
||||
<accordian :title="'{{ __(config('carriers.' . $method . '.title')) }}'" :active="true">
|
||||
<div slot="body">
|
||||
@foreach ($carrier as $field)
|
||||
|
||||
<?php
|
||||
$validations = [];
|
||||
$disabled = false;
|
||||
|
||||
if (isset($field['validation'])) {
|
||||
array_push($validations, $field['validation']);
|
||||
} else {
|
||||
$disabled = true;
|
||||
}
|
||||
|
||||
$validations = implode('|', array_filter($validations));
|
||||
?>
|
||||
|
||||
@if (view()->exists($typeView = 'admin::configuration.sales.field-types.' . $field['type']))
|
||||
|
||||
<?php
|
||||
$name = 'carriers' . '.' . $method . '.' . $field['name'];
|
||||
?>
|
||||
|
||||
<div class="control-group {{ $field['type'] }}" :class="[errors.has('{{ $name }}') ? 'has-error' : '']">
|
||||
<label for="{{ $name }}" {{ $disabled == false ? 'class=required' : '' }}>
|
||||
|
||||
{{ $field['title'] }}
|
||||
|
||||
<?php
|
||||
$channel_locale = [];
|
||||
|
||||
if(isset($field['channel_based']) && $field['channel_based'])
|
||||
{
|
||||
array_push($channel_locale, $channel);
|
||||
}
|
||||
|
||||
if(isset($field['locale_based']) && $field['locale_based']) {
|
||||
array_push($channel_locale, $locale);
|
||||
}
|
||||
?>
|
||||
|
||||
@if(count($channel_locale))
|
||||
<span class="locale">[{{ implode(' - ', $channel_locale) }}]</span>
|
||||
@endif
|
||||
|
||||
</label>
|
||||
|
||||
<?php
|
||||
$configData = core()->getConfigData($name, current($channel_locale), next($channel_locale));
|
||||
?>
|
||||
|
||||
@include ($typeView)
|
||||
|
||||
<span class="control-error" v-if="errors.has('{{ $name }}')">@{{ errors.first('{!! $name !!}') }}</span>
|
||||
|
||||
</div>
|
||||
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
</accordian>
|
||||
|
||||
@endforeach
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
@stop
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('#channel-switcher, #locale-switcher').on('change', function (e) {
|
||||
$('#channel-switcher').val()
|
||||
var query = '?channel=' + $('#channel-switcher').val() + '&locale=' + $('#locale-switcher').val();
|
||||
|
||||
window.location.href = "{{ route('admin.configuration.sales.shipping_methods') }}" + query;
|
||||
})
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
|
@ -23,7 +23,6 @@
|
|||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
|
|
@ -36,8 +35,8 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -12,13 +12,16 @@
|
|||
<h1>{{ __('admin::app.customers.customers.title') }}</h1>
|
||||
</div>
|
||||
<div class="page-action">
|
||||
<div class="export" style="display: inline-flex; cursor: pointer; position: absolute; right: 13%">
|
||||
<i class="export-icon"></i>
|
||||
<span @click="showModal('downloadDataGrid')" style="margin-top: 8px; margin-left: 5px">
|
||||
{{ __('admin::app.export.export') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
|
||||
|
|
@ -29,5 +32,56 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<modal id="downloadDataGrid" :is-open="modalIds.downloadDataGrid">
|
||||
<h3 slot="header">{{ __('admin::app.export.download') }}</h3>
|
||||
<div slot="body">
|
||||
<export-form></export-form>
|
||||
</div>
|
||||
</modal>
|
||||
|
||||
@stop
|
||||
|
||||
@push('scripts')
|
||||
|
||||
<script type="text/x-template" id="export-form-template">
|
||||
<form method="POST" action="{{ route('admin.datagrid.export') }}">
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<input type="hidden" name="gridData" value="{{serialize($customer)}}">
|
||||
|
||||
<div class="control-group">
|
||||
<label for="format" class="required">
|
||||
{{ __('admin::app.export.format') }}
|
||||
</label>
|
||||
<select name="format" class="control" v-validate="'required'">
|
||||
<option value="xls">XLS</option>
|
||||
<option value="csv">CSV</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-lg btn-primary" @click="closeModal">
|
||||
{{ __('admin::app.export.export') }}
|
||||
</button>
|
||||
|
||||
</form>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
Vue.component('export-form', {
|
||||
template: '#export-form-template',
|
||||
methods: {
|
||||
closeModal () {
|
||||
this.$parent.closeModal();
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@endpush
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
|
||||
|
||||
<div class="dashboard-stats">
|
||||
|
||||
<div class="dashboard-card">
|
||||
|
|
@ -34,19 +34,19 @@
|
|||
<span class="icon graph-down-icon"></span>
|
||||
{{ __('admin::app.dashboard.decreased', [
|
||||
'progress' => -number_format($statistics['total_customers']['progress'], 1)
|
||||
])
|
||||
])
|
||||
}}
|
||||
@else
|
||||
<span class="icon graph-up-icon"></span>
|
||||
{{ __('admin::app.dashboard.increased', [
|
||||
'progress' => number_format($statistics['total_customers']['progress'], 1)
|
||||
])
|
||||
])
|
||||
}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="dashboard-card">
|
||||
<div class="title">
|
||||
{{ __('admin::app.dashboard.total-orders') }}
|
||||
|
|
@ -60,18 +60,18 @@
|
|||
<span class="icon graph-down-icon"></span>
|
||||
{{ __('admin::app.dashboard.decreased', [
|
||||
'progress' => -number_format($statistics['total_orders']['progress'], 1)
|
||||
])
|
||||
])
|
||||
}}
|
||||
@else
|
||||
<span class="icon graph-up-icon"></span>
|
||||
{{ __('admin::app.dashboard.increased', [
|
||||
'progress' => number_format($statistics['total_orders']['progress'], 1)
|
||||
])
|
||||
])
|
||||
}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dashboard-card">
|
||||
<div class="title">
|
||||
|
|
@ -86,18 +86,18 @@
|
|||
<span class="icon graph-down-icon"></span>
|
||||
{{ __('admin::app.dashboard.decreased', [
|
||||
'progress' => -number_format($statistics['total_sales']['progress'], 1)
|
||||
])
|
||||
])
|
||||
}}
|
||||
@else
|
||||
<span class="icon graph-up-icon"></span>
|
||||
{{ __('admin::app.dashboard.increased', [
|
||||
'progress' => number_format($statistics['total_sales']['progress'], 1)
|
||||
])
|
||||
])
|
||||
}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dashboard-card">
|
||||
<div class="title">
|
||||
|
|
@ -112,19 +112,19 @@
|
|||
<span class="icon graph-down-icon"></span>
|
||||
{{ __('admin::app.dashboard.decreased', [
|
||||
'progress' => -number_format($statistics['avg_sales']['progress'], 1)
|
||||
])
|
||||
])
|
||||
}}
|
||||
@else
|
||||
<span class="icon graph-up-icon"></span>
|
||||
{{ __('admin::app.dashboard.increased', [
|
||||
'progress' => number_format($statistics['avg_sales']['progress'], 1)
|
||||
])
|
||||
])
|
||||
}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="graph-stats">
|
||||
|
|
@ -138,7 +138,7 @@
|
|||
<div class="card-info">
|
||||
|
||||
<canvas id="myChart" style="width: 100%; height: 87%"></canvas>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
<ul>
|
||||
|
||||
@foreach ($statistics['top_selling_categories'] as $item)
|
||||
|
||||
|
||||
<li>
|
||||
<a href="{{ route('admin.catalog.categories.edit', $item->category_id) }}">
|
||||
<div class="description">
|
||||
|
|
@ -171,7 +171,7 @@
|
|||
<span class="icon angle-right-icon"></span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
|
|
@ -204,7 +204,7 @@
|
|||
<ul>
|
||||
|
||||
@foreach ($statistics['top_selling_products'] as $item)
|
||||
|
||||
|
||||
<li>
|
||||
<a href="{{ route('admin.catalog.products.edit', $item->product_id) }}">
|
||||
<div class="product image">
|
||||
|
|
@ -226,7 +226,7 @@
|
|||
<span class="icon angle-right-icon"></span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
|
|
@ -273,7 +273,7 @@
|
|||
.
|
||||
{{ __('admin::app.dashboard.revenue', [
|
||||
'total' => core()->formatBasePrice($item->total_base_grand_total)
|
||||
])
|
||||
])
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -334,7 +334,7 @@
|
|||
<span class="icon angle-right-icon"></span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
|
|
@ -367,7 +367,7 @@
|
|||
<div class="control-group date">
|
||||
<date @onChange="applyFilter('start', $event)"><input type="text" class="control" id="start_date" value="{{ $startDate->format('Y-m-d') }}" placeholder="{{ __('admin::app.dashboard.from') }}" v-model="start"/></date>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group date">
|
||||
<date @onChange="applyFilter('end', $event)"><input type="text" class="control" id="end_date" value="{{ $endDate->format('Y-m-d') }}" placeholder="{{ __('admin::app.dashboard.to') }}" v-model="end"/></date>
|
||||
</div>
|
||||
|
|
@ -392,7 +392,7 @@
|
|||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
var ctx = document.getElementById("myChart").getContext('2d');
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@foreach($header as $col)
|
||||
<th> {{ $col}} </th>
|
||||
@foreach ($columns as $column)
|
||||
<th>{{ $column->label }}</th>
|
||||
@endforeach
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
<div class="navbar-top">
|
||||
<div class="navbar-top-left">
|
||||
<div class="brand-logo">
|
||||
<img src="{{ asset('vendor/webkul/ui/assets/images/logo.png') }}" alt="Bagisto"/>
|
||||
<a href="{{ route('admin.dashboard.index') }}">
|
||||
<img src="{{ asset('vendor/webkul/ui/assets/images/logo.png') }}" alt="Bagisto"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,12 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<div class="export" style="display: flex; cursor: pointer">
|
||||
<i class="export-icon"></i>
|
||||
<span @click="showModal('downloadDataGrid')" style="margin-top: 8px;margin-right: 5px; margin-left: 5px">
|
||||
{{ __('admin::app.export.export') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -20,4 +26,56 @@
|
|||
{!! $orderInvoicesGrid->render() !!}
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
|
||||
<modal id="downloadDataGrid" :is-open="modalIds.downloadDataGrid">
|
||||
<h3 slot="header">{{ __('admin::app.export.download') }}</h3>
|
||||
<div slot="body">
|
||||
<export-form></export-form>
|
||||
</div>
|
||||
</modal>
|
||||
|
||||
@stop
|
||||
|
||||
@push('scripts')
|
||||
|
||||
<script type="text/x-template" id="export-form-template">
|
||||
<form method="POST" action="{{ route('admin.datagrid.export') }}">
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<input type="hidden" name="gridData" value="{{serialize($orderInvoicesGrid)}}">
|
||||
|
||||
<div class="control-group">
|
||||
<label for="format" class="required">
|
||||
{{ __('admin::app.export.format') }}
|
||||
</label>
|
||||
<select name="format" class="control" v-validate="'required'">
|
||||
<option value="xls">XLS</option>
|
||||
<option value="csv">CSV</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-lg btn-primary" @click="closeModal">
|
||||
{{ __('admin::app.export.export') }}
|
||||
</button>
|
||||
|
||||
</form>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
Vue.component('export-form', {
|
||||
template: '#export-form-template',
|
||||
methods: {
|
||||
closeModal () {
|
||||
this.$parent.closeModal();
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@endpush
|
||||
|
|
@ -12,6 +12,12 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<div class="export" style="display: flex; cursor: pointer">
|
||||
<i class="export-icon"></i>
|
||||
<span @click="showModal('downloadDataGrid')" style="margin-top: 8px;margin-right: 5px; margin-left: 5px">
|
||||
{{ __('admin::app.export.export') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -20,4 +26,56 @@
|
|||
{!! $orderGrid->render() !!}
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
|
||||
<modal id="downloadDataGrid" :is-open="modalIds.downloadDataGrid">
|
||||
<h3 slot="header">{{ __('admin::app.export.download') }}</h3>
|
||||
<div slot="body">
|
||||
<export-form></export-form>
|
||||
</div>
|
||||
</modal>
|
||||
|
||||
@stop
|
||||
|
||||
@push('scripts')
|
||||
|
||||
<script type="text/x-template" id="export-form-template">
|
||||
<form method="POST" action="{{ route('admin.datagrid.export') }}">
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<input type="hidden" name="gridData" value="{{serialize($orderGrid)}}">
|
||||
|
||||
<div class="control-group">
|
||||
<label for="format" class="required">
|
||||
{{ __('admin::app.export.format') }}
|
||||
</label>
|
||||
<select name="format" class="control" v-validate="'required'">
|
||||
<option value="xls">XLS</option>
|
||||
<option value="csv">CSV</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-lg btn-primary" @click="closeModal">
|
||||
{{ __('admin::app.export.export') }}
|
||||
</button>
|
||||
|
||||
</form>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
Vue.component('export-form', {
|
||||
template: '#export-form-template',
|
||||
methods: {
|
||||
closeModal () {
|
||||
this.$parent.closeModal();
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@endpush
|
||||
|
|
@ -12,6 +12,12 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<div class="export" style="display: flex; cursor: pointer">
|
||||
<i class="export-icon"></i>
|
||||
<span @click="showModal('downloadDataGrid')" style="margin-top: 8px;margin-right: 5px; margin-left: 5px">
|
||||
{{ __('admin::app.export.export') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -20,4 +26,56 @@
|
|||
{!! $orderShipmentsGrid->render() !!}
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
|
||||
<modal id="downloadDataGrid" :is-open="modalIds.downloadDataGrid">
|
||||
<h3 slot="header">{{ __('admin::app.export.download') }}</h3>
|
||||
<div slot="body">
|
||||
<export-form></export-form>
|
||||
</div>
|
||||
</modal>
|
||||
|
||||
@stop
|
||||
|
||||
@push('scripts')
|
||||
|
||||
<script type="text/x-template" id="export-form-template">
|
||||
<form method="POST" action="{{ route('admin.datagrid.export') }}">
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<input type="hidden" name="gridData" value="{{serialize($orderShipmentsGrid)}}">
|
||||
|
||||
<div class="control-group">
|
||||
<label for="format" class="required">
|
||||
{{ __('admin::app.export.format') }}
|
||||
</label>
|
||||
<select name="format" class="control" v-validate="'required'">
|
||||
<option value="xls">XLS</option>
|
||||
<option value="csv">CSV</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-lg btn-primary" @click="closeModal">
|
||||
{{ __('admin::app.export.export') }}
|
||||
</button>
|
||||
|
||||
</form>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
Vue.component('export-form', {
|
||||
template: '#export-form-template',
|
||||
methods: {
|
||||
closeModal () {
|
||||
this.$parent.closeModal();
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@endpush
|
||||
|
|
@ -121,16 +121,12 @@
|
|||
|
||||
<div class="control-group">
|
||||
<label for="home_page_content">{{ __('admin::app.settings.channels.home_page_content') }}</label>
|
||||
<textarea class="control" id="home_page_content" name="home_page_content">
|
||||
{{ old('home_page_content') }}
|
||||
</textarea>
|
||||
<textarea class="control" id="home_page_content" name="home_page_content">{{ old('home_page_content') }}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="footer_content">{{ __('admin::app.settings.channels.footer_content') }}</label>
|
||||
<textarea class="control" id="footer_content" name="footer_content">
|
||||
{{ old('footer_content') }}
|
||||
</textarea>
|
||||
<textarea class="control" id="footer_content" name="footer_content">{{ old('footer_content') }}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
|
|
|
|||
|
|
@ -130,16 +130,12 @@
|
|||
|
||||
<div class="control-group">
|
||||
<label for="home_page_content">{{ __('admin::app.settings.channels.home_page_content') }}</label>
|
||||
<textarea class="control" id="home_page_content" name="home_page_content">
|
||||
{{ old('home_page_content') ?: $channel->home_page_content }}
|
||||
</textarea>
|
||||
<textarea class="control" id="home_page_content" name="home_page_content">{{ old('home_page_content') ?: $channel->home_page_content }}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="footer_content">{{ __('admin::app.settings.channels.footer_content') }}</label>
|
||||
<textarea class="control" id="footer_content" name="footer_content">
|
||||
{{ old('footer_content') ?: $channel->footer_content }}
|
||||
</textarea>
|
||||
<textarea class="control" id="footer_content" name="footer_content">{{ old('footer_content') ?: $channel->footer_content }}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
|
|
|
|||
|
|
@ -50,13 +50,15 @@
|
|||
<div class="control-group" :class="[errors.has('target_currency') ? 'has-error' : '']">
|
||||
<select v-validate="'required'" class="control" name="target_currency" data-vv-as=""{{ __('admin::app.settings.exchange_rates.target_currency') }}"">
|
||||
@foreach($currencies as $currency)
|
||||
<option value="{{ $currency->id }}">{{ $currency->name }}</option>
|
||||
@if(is_null($currency->CurrencyExchangeRate))
|
||||
<option value="{{ $currency->id }}">{{ $currency->name }}</option>
|
||||
@endif
|
||||
@endforeach
|
||||
</select>
|
||||
</select>
|
||||
<span class="control-error" v-if="errors.has('target_currency')">@{{ errors.first('target_currency') }}</span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
|
||||
<td>
|
||||
<div class="control-group" :class="[errors.has('rate') ? 'has-error' : '']">
|
||||
<input v-validate="'required'" class="control" id="rate" name="rate" data-vv-as=""{{ __('admin::app.settings.exchange_rates.rate') }}"" value="{{ old('rate') }}"/>
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@
|
|||
|
||||
<div class="control-group" :class="[errors.has('contact_email') ? 'has-error' : '']">
|
||||
<label for="contact_email" class="required">{{ __('admin::app.settings.inventory_sources.contact_email') }}</label>
|
||||
<input class="control" v-validate="'required'" class="required" id="contact_email" name="contact_email" data-vv-as=""{{ __('admin::app.settings.inventory_sources.contact_email') }}"" value="{{ old('contact_email') }}"/>
|
||||
<input class="control" v-validate="'required|email'" class="required" id="contact_email" name="contact_email" data-vv-as=""{{ __('admin::app.settings.inventory_sources.contact_email') }}"" value="{{ old('contact_email') }}"/>
|
||||
<span class="control-error" v-if="errors.has('contact_email')">@{{ errors.first('contact_email') }}</span>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@
|
|||
|
||||
<div class="control-group" :class="[errors.has('contact_email') ? 'has-error' : '']">
|
||||
<label for="contact_email" class="required">{{ __('admin::app.settings.inventory_sources.contact_email') }}</label>
|
||||
<input class="control" v-validate="'required'" id="contact_email" name="contact_email" data-vv-as=""{{ __('admin::app.settings.inventory_sources.contact_email') }}"" value="{{ old('contact_email') ?: $inventorySource->symbol }}"/>
|
||||
<input class="control" v-validate="'required|email'" id="contact_email" name="contact_email" data-vv-as=""{{ __('admin::app.settings.inventory_sources.contact_email') }}"" value="{{ old('contact_email') ?: $inventorySource->contact_email }}"/>
|
||||
<span class="control-error" v-if="errors.has('contact_email')">@{{ errors.first('contact_email') }}</span>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -50,9 +50,7 @@
|
|||
|
||||
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
|
||||
<label for="description" class="required">{{ __('admin::app.settings.tax-categories.description') }}</label>
|
||||
<textarea v-validate="'required'" class="control" id="description" name="description" data-vv-as=""{{ __('admin::app.configuration.tax-categories.description') }}"">
|
||||
{{ $taxCategory->description }}
|
||||
</textarea>
|
||||
<textarea v-validate="'required'" class="control" id="description" name="description" data-vv-as=""{{ __('admin::app.configuration.tax-categories.description') }}"">{{ $taxCategory->description }}</textarea>
|
||||
|
||||
<div class="control-group" :class="[errors.has('taxrates[]') ? 'has-error' : '']">
|
||||
<label for="taxrates" class="required">{{ __('admin::app.settings.tax-categories.select-taxrates') }}</label>
|
||||
|
|
|
|||
|
|
@ -34,9 +34,7 @@
|
|||
|
||||
<div class="control-group">
|
||||
<label for="description">{{ __('admin::app.users.roles.description') }}</label>
|
||||
<textarea class="control" id="description" name="description">
|
||||
{{ old('description') }}
|
||||
</textarea>
|
||||
<textarea class="control" id="description" name="description">{{ old('description') }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</accordian>
|
||||
|
|
|
|||
|
|
@ -36,9 +36,7 @@
|
|||
|
||||
<div class="control-group">
|
||||
<label for="description">{{ __('admin::app.users.roles.description') }}</label>
|
||||
<textarea class="control" id="description" name="description">
|
||||
{{ old('description') ?: $role->description }}
|
||||
</textarea>
|
||||
<textarea class="control" id="description" name="description">{{ old('description') ?: $role->description }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</accordian>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ class AttributeTableSeeder extends Seeder
|
|||
['id' => '19','code' => 'width','admin_name' => 'Width','type' => 'text','validation' => NULL,'position' => '19','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0','created_at' => $now,'updated_at' => $now],
|
||||
['id' => '20','code' => 'height','admin_name' => 'Height','type' => 'text','validation' => NULL,'position' => '20','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0','created_at' => $now,'updated_at' => $now],
|
||||
['id' => '21','code' => 'depth','admin_name' => 'Depth','type' => 'text','validation' => NULL,'position' => '21','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '1','is_visible_on_front' => '0','created_at' => $now,'updated_at' => $now],
|
||||
['id' => '22','code' => 'weight','admin_name' => 'Weight','type' => 'text','validation' => NULL,'position' => '22','is_required' => '1','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0','created_at' => $now,'updated_at' => $now],
|
||||
['id' => '22','code' => 'weight','admin_name' => 'Weight','type' => 'text','validation' => 'decimal','position' => '22','is_required' => '1','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '0','is_configurable' => '0','is_user_defined' => '0','is_visible_on_front' => '0','created_at' => $now,'updated_at' => $now],
|
||||
['id' => '23','code' => 'color','admin_name' => 'Color','type' => 'select','validation' => NULL,'position' => '23','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '1','is_user_defined' => '1','is_visible_on_front' => '0','created_at' => $now,'updated_at' => $now],
|
||||
['id' => '24','code' => 'size','admin_name' => 'Size','type' => 'select','validation' => NULL,'position' => '24','is_required' => '0','is_unique' => '0','value_per_locale' => '0','value_per_channel' => '0','is_filterable' => '1','is_configurable' => '1','is_user_defined' => '1','is_visible_on_front' => '0','created_at' => $now,'updated_at' => $now]
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ class Attribute extends TranslatableModel
|
|||
{
|
||||
public $translatedAttributes = ['name'];
|
||||
|
||||
protected $fillable = ['code', 'admin_name', 'type', 'position', 'is_required', 'is_unique', 'value_per_locale', 'value_per_channel', 'is_filterable', 'is_configurable', 'is_visible_on_front', 'is_user_defined'];
|
||||
protected $fillable = ['code', 'admin_name', 'type', 'position', 'is_required', 'is_unique', 'validation', 'value_per_locale', 'value_per_channel', 'is_filterable', 'is_configurable', 'is_visible_on_front', 'is_user_defined'];
|
||||
|
||||
protected $with = ['options'];
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ use Webkul\Core\Repositories\CountryRepository;
|
|||
use Webkul\Core\Repositories\CountryStateRepository;
|
||||
use Webkul\Core\Repositories\ChannelRepository;
|
||||
use Webkul\Core\Repositories\LocaleRepository;
|
||||
use Webkul\Core\Repositories\CoreConfigRepository;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
|
||||
class Core
|
||||
|
|
@ -55,6 +56,13 @@ class Core
|
|||
*/
|
||||
protected $localeRepository;
|
||||
|
||||
/**
|
||||
* CoreConfigRepository class
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
protected $coreConfigRepository;
|
||||
|
||||
/**
|
||||
* Create a new instance.
|
||||
*
|
||||
|
|
@ -64,6 +72,7 @@ class Core
|
|||
* @param Webkul\Core\Repositories\CountryRepository $countryRepository
|
||||
* @param Webkul\Core\Repositories\CountryStateRepository $countryStateRepository
|
||||
* @param Webkul\Core\Repositories\LocaleRepository $localeRepository
|
||||
* @param Webkul\Core\Repositories\CoreConfigRepository $coreConfigRepository
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
|
|
@ -72,7 +81,8 @@ class Core
|
|||
ExchangeRateRepository $exchangeRateRepository,
|
||||
CountryRepository $countryRepository,
|
||||
CountryStateRepository $countryStateRepository,
|
||||
LocaleRepository $localeRepository
|
||||
LocaleRepository $localeRepository,
|
||||
CoreConfigRepository $coreConfigRepository
|
||||
)
|
||||
{
|
||||
$this->channelRepository = $channelRepository;
|
||||
|
|
@ -86,6 +96,8 @@ class Core
|
|||
$this->countryStateRepository = $countryStateRepository;
|
||||
|
||||
$this->localeRepository = $localeRepository;
|
||||
|
||||
$this->coreConfigRepository = $coreConfigRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -468,13 +480,24 @@ class Core
|
|||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getConfigData($field, $channelId = null)
|
||||
public function getConfigData($field, $channel = null, $locale = null)
|
||||
{
|
||||
if (null === $channelId) {
|
||||
$channelId = $this->getCurrentChannel()->id;
|
||||
if (null === $channel) {
|
||||
$channel = request()->get('channel') ?: ($this->getCurrentChannelCode() ?: $this->getDefaultChannelCode());
|
||||
}
|
||||
|
||||
return Config::get($field);
|
||||
if (null === $locale) {
|
||||
$locale = request()->get('locale') ?: app()->getLocale();
|
||||
}
|
||||
|
||||
$coreConfigValue = $this->coreConfigRepository->findOneWhere([
|
||||
'code' => $field
|
||||
]);
|
||||
|
||||
if(!$coreConfigValue)
|
||||
return Config::get($field);
|
||||
|
||||
return $coreConfigValue->value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class DropForeignKeyCoreConfigTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('core_config', function (Blueprint $table) {
|
||||
$table->dropForeign('core_config_channel_id_foreign');
|
||||
$table->renameColumn('channel_id', 'channel_code');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('core_config', function (Blueprint $table) {
|
||||
$table->dropForeign('core_config_channel_id_foreign');
|
||||
$table->renameColumn('channel_id', 'channel_code');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AlterCoreConfigTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('core_config', function (Blueprint $table) {
|
||||
$table->string('channel_code')->nullable()->change();
|
||||
$table->string('locale_code')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('core_config', function (Blueprint $table) {
|
||||
$table->string('channel_code')->nullable()->change();
|
||||
$table->string('locale_code')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -71,7 +71,7 @@ class ExchangeRateController extends Controller
|
|||
*/
|
||||
public function create()
|
||||
{
|
||||
$currencies = $this->currency->all();
|
||||
$currencies = $this->currency->with('CurrencyExchangeRate')->all();
|
||||
|
||||
return view($this->_config['view'], compact('currencies'));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,4 +6,17 @@ use Illuminate\Database\Eloquent\Model;
|
|||
|
||||
class CoreConfig extends Model
|
||||
{
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
|
||||
protected $table = 'core_config';
|
||||
|
||||
protected $fillable = [
|
||||
'code', 'value','channel_code','locale_code'
|
||||
];
|
||||
|
||||
protected $hidden = ['token'];
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
namespace Webkul\Core\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Webkul\Core\Models\CurrencyExchangeRate;
|
||||
|
||||
class Currency extends Model
|
||||
{
|
||||
|
|
@ -14,4 +15,12 @@ class Currency extends Model
|
|||
protected $fillable = [
|
||||
'code', 'name'
|
||||
];
|
||||
|
||||
/**
|
||||
* Get the currency_exchange associated with the currency.
|
||||
*/
|
||||
public function CurrencyExchangeRate()
|
||||
{
|
||||
return $this->hasOne(CurrencyExchangeRate::class, 'target_currency');
|
||||
}
|
||||
}
|
||||
|
|
@ -65,6 +65,8 @@ class RegistrationController extends Controller
|
|||
|
||||
$data['is_verified'] = 0;
|
||||
|
||||
$data['customer_group_id'] = 1;
|
||||
|
||||
$verificationData['email'] = $data['email'];
|
||||
$verificationData['token'] = md5(uniqid(rand(), true));
|
||||
$data['token'] = $verificationData['token'];
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class InventorySourceController extends Controller
|
|||
'code' => ['required', 'unique:inventory_sources,code', new \Webkul\Core\Contracts\Validations\Code],
|
||||
'name' => 'required',
|
||||
'contact_name' => 'required',
|
||||
'contact_email' => 'required',
|
||||
'contact_email' => 'required|email',
|
||||
'contact_number' => 'required',
|
||||
'street' => 'required',
|
||||
'country' => 'required',
|
||||
|
|
@ -81,7 +81,11 @@ class InventorySourceController extends Controller
|
|||
'postcode' => 'required'
|
||||
]);
|
||||
|
||||
$this->inventorySource->create(request()->all());
|
||||
$data = request()->all();
|
||||
|
||||
$data['status'] = !isset($data['status']) ? 0 : 1;
|
||||
|
||||
$this->inventorySource->create($data);
|
||||
|
||||
session()->flash('success', 'Inventory source created successfully.');
|
||||
|
||||
|
|
@ -114,7 +118,7 @@ class InventorySourceController extends Controller
|
|||
'code' => ['required', 'unique:inventory_sources,code,' . $id, new \Webkul\Core\Contracts\Validations\Code],
|
||||
'name' => 'required',
|
||||
'contact_name' => 'required',
|
||||
'contact_email' => 'required',
|
||||
'contact_email' => 'required|email',
|
||||
'contact_number' => 'required',
|
||||
'street' => 'required',
|
||||
'country' => 'required',
|
||||
|
|
@ -123,7 +127,11 @@ class InventorySourceController extends Controller
|
|||
'postcode' => 'required'
|
||||
]);
|
||||
|
||||
$this->inventorySource->update(request()->all(), $id);
|
||||
$data = request()->all();
|
||||
|
||||
$data['status'] = !isset($data['status']) ? 0 : 1;
|
||||
|
||||
$this->inventorySource->update($data, $id);
|
||||
|
||||
session()->flash('success', 'Inventory source updated successfully.');
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
return [
|
||||
'cashondelivery' => [
|
||||
'code' => 'cashondelivery',
|
||||
'title' => 'Cash On Delivery',
|
||||
'description' => 'Cash On Delivery',
|
||||
'class' => 'Webkul\Payment\Payment\CashOnDelivery',
|
||||
'order_status' => 'pending',
|
||||
'active' => true
|
||||
],
|
||||
|
||||
'moneytransfer' => [
|
||||
'code' => 'moneytransfer',
|
||||
'title' => 'Money Transfer',
|
||||
'description' => 'Money Transfer',
|
||||
'class' => 'Webkul\Payment\Payment\MoneyTransfer',
|
||||
'order_status' => 'pending',
|
||||
'active' => true
|
||||
],
|
||||
|
||||
'paypal_standard' => [
|
||||
'code' => 'paypal_standard',
|
||||
'title' => 'Paypal Standard',
|
||||
'description' => 'Paypal Standard',
|
||||
'class' => 'Webkul\Paypal\Payment\Standard',
|
||||
'order_status' => 'pending_payment',
|
||||
'sandbox' => true,
|
||||
'active' => true,
|
||||
'business_account' => 'test@webkul.com'
|
||||
]
|
||||
];
|
||||
|
|
@ -28,6 +28,10 @@ class PaymentServiceProvider extends ServiceProvider
|
|||
public function register()
|
||||
{
|
||||
$this->registerFacades();
|
||||
|
||||
$this->mergeConfigFrom(
|
||||
dirname(__DIR__) . '/Config/paymentmethods.php', 'paymentmethods'
|
||||
);
|
||||
}
|
||||
/**
|
||||
* Register Bouncer as a singleton.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateProductFlatTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('product_flat', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->string('sku');
|
||||
$table->string('name')->nullable();
|
||||
$table->string('description')->nullable();
|
||||
$table->string('url_key')->nullable();
|
||||
$table->boolean('new')->nullable();
|
||||
$table->boolean('featured')->nullable();
|
||||
$table->boolean('visibility')->nullable();
|
||||
$table->boolean('status')->nullable();
|
||||
$table->string('thumbnail')->nullable();
|
||||
|
||||
$table->decimal('price', 12, 4)->nullable();
|
||||
$table->decimal('cost', 12, 4)->nullable();
|
||||
$table->boolean('special_price')->nullable();
|
||||
$table->date('special_price_from')->nullable();
|
||||
$table->date('special_price_to')->nullable();
|
||||
|
||||
$table->decimal('weight', 12, 4)->nullable();
|
||||
$table->integer('color')->nullable();
|
||||
$table->string('color_label')->nullable();
|
||||
$table->integer('size')->nullable();
|
||||
$table->integer('size_label')->nullable();
|
||||
|
||||
$table->date('created_at')->nullable();
|
||||
|
||||
$table->string('locale')->nullable();
|
||||
$table->string('channel')->nullable();
|
||||
|
||||
$table->integer('product_id')->unsigned();
|
||||
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('product_flat');
|
||||
}
|
||||
}
|
||||
|
|
@ -83,24 +83,28 @@ class ProductForm extends FormRequest
|
|||
$attributes = $product->attribute_family->custom_attributes;
|
||||
|
||||
foreach ($attributes as $attribute) {
|
||||
if($attribute->code == 'sku')
|
||||
if ($attribute->code == 'sku')
|
||||
continue;
|
||||
|
||||
if($product->type == 'configurable' && in_array($attribute->code, ['price', 'cost', 'special_price', 'special_price_from', 'special_price_to', 'width', 'height', 'depth', 'weight']))
|
||||
if ($product->type == 'configurable' && in_array($attribute->code, ['price', 'cost', 'special_price', 'special_price_from', 'special_price_to', 'width', 'height', 'depth', 'weight']))
|
||||
continue;
|
||||
|
||||
$validations = [];
|
||||
if($attribute->is_required) {
|
||||
if ($attribute->is_required) {
|
||||
array_push($validations, 'required');
|
||||
} else {
|
||||
array_push($validations, 'nullable');
|
||||
}
|
||||
|
||||
if($attribute->type == 'text' && $attribute->validation) {
|
||||
if ($attribute->type == 'text' && $attribute->validation) {
|
||||
array_push($validations, $attribute->validation);
|
||||
}
|
||||
|
||||
if($attribute->is_unique) {
|
||||
if ($attribute->type == 'price') {
|
||||
array_push($validations, 'decimal');
|
||||
}
|
||||
|
||||
if ($attribute->is_unique) {
|
||||
array_push($validations, function ($field, $value, $fail) use ($inputs, $attribute) {
|
||||
$column = ProductAttributeValue::$attributeTypeFields[$attribute->type];
|
||||
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ class InvoiceRepository extends Repository
|
|||
$invoice = $this->model->create([
|
||||
'order_id' => $order->id,
|
||||
'total_qty' => $totalQty,
|
||||
'status' => 'paid',
|
||||
'state' => 'paid',
|
||||
'base_currency_code' => $order->base_currency_code,
|
||||
'channel_currency_code' => $order->channel_currency_code,
|
||||
'order_currency_code' => $order->order_currency_code,
|
||||
|
|
@ -111,7 +111,6 @@ class InvoiceRepository extends Repository
|
|||
$invoiceItem = $this->invoiceItem->create([
|
||||
'invoice_id' => $invoice->id,
|
||||
'order_item_id' => $orderItem->id,
|
||||
'state' => 'paid',
|
||||
'name' => $orderItem->name,
|
||||
'sku' => $orderItem->sku,
|
||||
'qty' => $qty,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'flatrate' => [
|
||||
'code' => 'flatrate',
|
||||
'title' => 'Flat Rate',
|
||||
'description' => 'This is a flat rate',
|
||||
'active' => true,
|
||||
'default_rate' => '10',
|
||||
'type' => 'per_unit',
|
||||
'class' => 'Webkul\Shipping\Carriers\FlatRate',
|
||||
],
|
||||
|
||||
'free' => [
|
||||
'code' => 'free',
|
||||
'title' => 'Free Shipping',
|
||||
'description' => 'This is a free shipping',
|
||||
'active' => true,
|
||||
'class' => 'Webkul\Shipping\Carriers\Free',
|
||||
]
|
||||
];
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'carriers' => [
|
||||
'free' => [
|
||||
[
|
||||
'name' => 'title',
|
||||
'title' => 'Title',
|
||||
'type' => 'text',
|
||||
'validation' => 'required',
|
||||
'channel_based' => false,
|
||||
'locale_based' => true
|
||||
], [
|
||||
'name' => 'description',
|
||||
'title' => 'Description',
|
||||
'type' => 'textarea',
|
||||
'channel_based' => false,
|
||||
'locale_based' => true
|
||||
], [
|
||||
'name' => 'active',
|
||||
'title' => 'Status',
|
||||
'type' => 'select',
|
||||
'options' => [
|
||||
[
|
||||
'title' => 'Active',
|
||||
'value' => true
|
||||
], [
|
||||
'title' => 'Inactive',
|
||||
'value' => false
|
||||
]
|
||||
],
|
||||
'validation' => 'required'
|
||||
]
|
||||
],
|
||||
'flatrate' => [
|
||||
[
|
||||
'name' => 'title',
|
||||
'title' => 'Title',
|
||||
'type' => 'text',
|
||||
'validation' => 'required',
|
||||
'channel_based' => true,
|
||||
'locale_based' => true
|
||||
], [
|
||||
'name' => 'description',
|
||||
'title' => 'Description',
|
||||
'type' => 'textarea',
|
||||
'channel_based' => true,
|
||||
'locale_based' => false
|
||||
], [
|
||||
'name' => 'active',
|
||||
'title' => 'Status',
|
||||
'type' => 'select',
|
||||
'options' => [
|
||||
[
|
||||
'title' => 'Active',
|
||||
'value' => true
|
||||
], [
|
||||
'title' => 'Inactive',
|
||||
'value' => false
|
||||
]
|
||||
],
|
||||
'validation' => 'required'
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
@ -29,7 +29,10 @@ class ShippingServiceProvider extends ServiceProvider
|
|||
public function register()
|
||||
{
|
||||
$this->registerFacades();
|
||||
|
||||
$this->registerConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* Register Bouncer as a singleton.
|
||||
*
|
||||
|
|
@ -44,4 +47,20 @@ class ShippingServiceProvider extends ServiceProvider
|
|||
return new Shipping();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Register package config.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function registerConfig()
|
||||
{
|
||||
$this->mergeConfigFrom(
|
||||
dirname(__DIR__) . '/Config/carriers.php', 'carriers'
|
||||
);
|
||||
|
||||
$this->mergeConfigFrom(
|
||||
dirname(__DIR__) . '/Config/fields.php', 'core'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
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?id=ec33679ba3719e48cea6",
|
||||
"/css/shop.css": "/css/shop.css?id=0f78d361a01660ffd946"
|
||||
}
|
||||
}
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
"/js/shop.js": "/js/shop.js?id=c7fe085a512d913b6670",
|
||||
"/css/shop.css": "/css/shop.css?id=77c5b3c611d7a0e05d7e"
|
||||
}
|
||||
=======
|
||||
"/js/shop.js": "/js/shop.js?id=c6ba9f43bd31f175a665",
|
||||
"/css/shop.css": "/css/shop.css?id=637386a2fb6b1de9c4c4"
|
||||
}
|
||||
>>>>>>> 5f5249abe4a1447708683968edd5ea610d7d25dc
|
||||
>>>>>>> e4530c0965b2c02ec2930313f2ec652a09f49cff
|
||||
|
|
|
|||
|
|
@ -367,6 +367,7 @@ input {
|
|||
|
||||
.product-card {
|
||||
position: relative;
|
||||
padding: 15px;
|
||||
|
||||
.product-image {
|
||||
max-height: 350px;
|
||||
|
|
@ -2822,6 +2823,16 @@ section.review {
|
|||
}
|
||||
|
||||
.menu-block {
|
||||
margin-bottom: 30px;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.menu-block-title {
|
||||
padding-bottom: 10px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.menubar {
|
||||
border: 1px solid $border-color;
|
||||
|
|
|
|||
|
|
@ -279,7 +279,7 @@ return [
|
|||
'newest-first' => 'Newest First',
|
||||
'oldest-first' => 'Oldest First',
|
||||
'cheapest-first' => 'Cheapest First',
|
||||
'expansive-first' => 'Expansive First',
|
||||
'expensive-first' => 'Expensive First',
|
||||
'show' => 'Show',
|
||||
'pager-info' => 'Showing :showing of :total Items',
|
||||
'description' => 'Description',
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
</span>
|
||||
|
||||
<span>
|
||||
<a href="{{ route('address.delete', $address->id) }}">
|
||||
<a href="{{ route('address.delete', $address->id) }}" onclick="deleteAddress('Do you really want to do this?')">
|
||||
{{ __('shop::app.customer.account.address.index.delete') }}
|
||||
</a>
|
||||
</span>
|
||||
|
|
@ -79,3 +79,12 @@
|
|||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
function deleteAddress(message){
|
||||
if(!confirm(message))
|
||||
event.preventDefault();
|
||||
}
|
||||
</script>
|
||||
@endpush
|
||||
|
|
|
|||
|
|
@ -62,6 +62,10 @@
|
|||
<span class="badge badge-md badge-info">Closed</span>
|
||||
@elseif($order->status == "pending")
|
||||
<span class="badge badge-md badge-warning">Pending</span>
|
||||
@elseif($order->status == "pending_payment")
|
||||
<span class="badge badge-md badge-warning">Pending Payment</span>
|
||||
@elseif($order->status == "fraud")
|
||||
<span class="badge badge-md badge-danger">Fraud</span>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -27,10 +27,10 @@
|
|||
@foreach($reviews as $review)
|
||||
<div class="account-item-card mt-15 mb-15">
|
||||
<div class="media-info">
|
||||
<?php $image = $productImageHelper->getGalleryImages($review->product); ?>
|
||||
<?php $image = $productImageHelper->getProductBaseImage($review->product); ?>
|
||||
|
||||
<a href="{{ url()->to('/').'/products/'.$review->product->url_key }}" title="{{ $review->product->name }}">
|
||||
<img class="media" src="{{ $image[0]['small_image_url'] }}"/>
|
||||
<img class="media" src="{{ $image['small_image_url'] }}"/>
|
||||
</a>
|
||||
|
||||
<div class="info">
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
<div class="horizontal-rule mb-10 mt-10"></div>
|
||||
@endforeach
|
||||
@else
|
||||
<div class="empty">
|
||||
<div class="empty mt-15">
|
||||
{{ __('customer::app.reviews.empty') }}
|
||||
</div>
|
||||
@endif
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@
|
|||
|
||||
if(thumbList && productHeroImage){
|
||||
|
||||
for(let i=0 ; i < thumbFrame.length ; i++){
|
||||
for(let i=0; i < thumbFrame.length ; i++) {
|
||||
thumbFrame[i].style.height = (productHeroImage.offsetHeight/4) + "px";
|
||||
thumbFrame[i].style.width = (productHeroImage.offsetHeight/4)+ "px";
|
||||
}
|
||||
|
|
@ -170,7 +170,7 @@
|
|||
window.onresize = function() {
|
||||
if(thumbList && productHeroImage){
|
||||
|
||||
for(let i=0 ; i < thumbFrame.length ; i++){
|
||||
for(let i=0; i < thumbFrame.length; i++) {
|
||||
thumbFrame[i].style.height = (productHeroImage.offsetHeight/4) + "px";
|
||||
thumbFrame[i].style.width = (productHeroImage.offsetHeight/4)+ "px";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
<tr>
|
||||
<td>{{ $attribute['label'] }}</td>
|
||||
<td> - {{ $attribute['value'] }}</td>
|
||||
<td>{{ $attribute['value'] }}</td>
|
||||
</tr>
|
||||
|
||||
@endforeach
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
"laravel-mix": "^2.1",
|
||||
"laravel-mix-merge-manifest": "^0.1.1",
|
||||
"jquery": "^3.2",
|
||||
"vue": "^2.1.10"
|
||||
"vue": "^2.1.10",
|
||||
"flatpickr": "^4.4.6"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 50 (54983) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Icon-Export</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Icon-Export" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
|
||||
<g transform="translate(1.000000, 6.000000)" stroke="#979797" stroke-width="2">
|
||||
<path d="M19,5.5 C19,2.78076172 19,0.947428385 19,0 L0,0 L0,20 L19,20 L19,14.5" id="Path-2"></path>
|
||||
<path d="M8,10 L28.068125,10" id="Path-3"></path>
|
||||
<polyline id="Path-4" points="26 5.18359375 29.9388428 10.1218262 26 14.894043"></polyline>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 881 B |
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/ui.js": "/js/ui.js?id=b25a07d206dd0b89048f",
|
||||
"/css/ui.css": "/css/ui.css?id=2a7f04ed7d926eaab910"
|
||||
"/js/ui.js": "/js/ui.js?id=1fdce572fb02cd8c7dad",
|
||||
"/css/ui.css": "/css/ui.css?id=ea20e89bc6f85a06baad"
|
||||
}
|
||||
|
|
@ -654,7 +654,7 @@ class DataGrid
|
|||
}
|
||||
}
|
||||
|
||||
private function getDbQueryResults()
|
||||
private function getDbQueryResults($pagination = true)
|
||||
{
|
||||
$parsed = $this->parse();
|
||||
|
||||
|
|
@ -778,9 +778,10 @@ class DataGrid
|
|||
*
|
||||
* @return view
|
||||
*/
|
||||
public function render()
|
||||
|
||||
public function render($pagination = true)
|
||||
{
|
||||
$this->getDbQueryResults();
|
||||
$this->getDbQueryResults($pagination);
|
||||
|
||||
return view('ui::datagrid.index', [
|
||||
'css' => $this->css,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 50 (54983) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Icon-Export</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Icon-Export" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
|
||||
<g transform="translate(1.000000, 6.000000)" stroke="#979797" stroke-width="2">
|
||||
<path d="M19,5.5 C19,2.78076172 19,0.947428385 19,0 L0,0 L0,20 L19,20 L19,14.5" id="Path-2"></path>
|
||||
<path d="M8,10 L28.068125,10" id="Path-3"></path>
|
||||
<polyline id="Path-4" points="26 5.18359375 29.9388428 10.1218262 26 14.894043"></polyline>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 881 B |
|
|
@ -14,3 +14,7 @@ Vue.component("image-item", require("./components/image/image-item"));
|
|||
Vue.directive("slugify", require("./directives/slugify"));
|
||||
Vue.directive("code", require("./directives/code"));
|
||||
Vue.directive("alert", require("./directives/alert"));
|
||||
Vue.component("datetime", require("./components/datetime"));
|
||||
Vue.component("date", require("./components/date"));
|
||||
|
||||
require('flatpickr/dist/flatpickr.css');
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue