resolve conflicts
This commit is contained in:
commit
2d2302c398
|
|
@ -62,7 +62,7 @@ Bagisto is using power of both of these frameworks and making best out of it out
|
|||
|
||||
### Requirements
|
||||
|
||||
* **OS**: Ubuntu 16.04 LTS or higher / Windows 7 or Higher (WAMP / XAMP).
|
||||
* **OS**: Ubuntu 16.04 LTS or higher / Windows 7 or Higher (WampServer / XAMPP).
|
||||
* **SERVER**: Apache 2 or NGINX.
|
||||
* **RAM**: 3 GB or higher.
|
||||
* **PHP**: 7.1.3 or higher.
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use Webkul\Checkout\Repositories\CartRepository;
|
|||
use Webkul\Checkout\Repositories\CartItemRepository;
|
||||
use Webkul\API\Http\Resources\Checkout\Cart as CartResource;
|
||||
use Cart;
|
||||
use Webkul\Customer\Repositories\WishlistRepository;
|
||||
|
||||
/**
|
||||
* Cart controller
|
||||
|
|
@ -37,15 +38,24 @@ class CartController extends Controller
|
|||
*/
|
||||
protected $cartItemRepository;
|
||||
|
||||
/**
|
||||
* WishlistRepository object
|
||||
*
|
||||
* @var Object
|
||||
*/
|
||||
protected $wishlistRepository;
|
||||
|
||||
/**
|
||||
* Controller instance
|
||||
*
|
||||
* @param Webkul\Checkout\Repositories\CartRepository $cartRepository
|
||||
* @param Webkul\Checkout\Repositories\CartItemRepository $cartItemRepository
|
||||
* @param Webkul\Checkout\Repositories\WishlistRepository $wishlistRepository
|
||||
*/
|
||||
public function __construct(
|
||||
CartRepository $cartRepository,
|
||||
CartItemRepository $cartItemRepository
|
||||
CartItemRepository $cartItemRepository,
|
||||
WishlistRepository $wishlistRepository
|
||||
)
|
||||
{
|
||||
$this->guard = request()->has('token') ? 'api' : 'customer';
|
||||
|
|
@ -59,6 +69,8 @@ class CartController extends Controller
|
|||
$this->cartRepository = $cartRepository;
|
||||
|
||||
$this->cartItemRepository = $cartItemRepository;
|
||||
|
||||
$this->wishlistRepository = $wishlistRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -97,6 +109,8 @@ class CartController extends Controller
|
|||
], 400);
|
||||
}
|
||||
|
||||
$this->wishlistRepository->deleteWhere(['product_id' => $id]);
|
||||
|
||||
Event::fire('checkout.cart.item.add.after', $result);
|
||||
|
||||
Cart::collectTotals();
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/admin.js": "/js/admin.js?id=d6734b45d4aa9b6502d9",
|
||||
"/js/admin.js": "/js/admin.js?id=1a04ed2a8f0437dbe740",
|
||||
"/css/admin.css": "/css/admin.css?id=c845e7c275d4df7fa03f"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -106,6 +106,12 @@ return [
|
|||
]
|
||||
],
|
||||
'channel_based' => true,
|
||||
], [
|
||||
'name' => 'admin_page_limit',
|
||||
'title' => 'admin::app.admin.system.admin-page-limit',
|
||||
'type' => 'text',
|
||||
'validation' => 'required|numeric|max:2',
|
||||
'channel_based' => true,
|
||||
]
|
||||
]
|
||||
], [
|
||||
|
|
|
|||
|
|
@ -0,0 +1,177 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Admin\DataGrids;
|
||||
|
||||
use DB;
|
||||
use Webkul\Ui\DataGrid\DataGrid;
|
||||
use Webkul\Customer\Repositories\CustomerRepository as Customer;
|
||||
|
||||
/**
|
||||
* Address Data Grid class
|
||||
*
|
||||
* @author Vivek Sharma <viveksh047@webkul.com>
|
||||
* @copyright 2019 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
class AddressDataGrid extends DataGrid
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
public $index = 'address_id';
|
||||
|
||||
protected $sortOrder = 'desc'; //asc or desc
|
||||
|
||||
/**
|
||||
* CustomerRepository object
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
protected $customer;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @param Webkul\Customer\Repositories\CustomerRepository $customer
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
Customer $customer
|
||||
)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->customer = $customer;
|
||||
}
|
||||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
|
||||
$customer = $this->customer->find(request('id'));
|
||||
|
||||
$queryBuilder = DB::table('customer_addresses as ca')
|
||||
->leftJoin('countries', 'ca.country', '=', 'countries.code')
|
||||
->leftJoin('customers as c', 'ca.customer_id', '=', 'c.id')
|
||||
->addSelect('ca.id as address_id', 'ca.address1', 'ca.country', DB::raw('countries.name as country_name'), 'ca.state', 'ca.city', 'ca.postcode', 'ca.phone', 'ca.default_address')
|
||||
->where('c.id', $customer->id);
|
||||
|
||||
$queryBuilder = $queryBuilder->leftJoin('country_states', function($qb) {
|
||||
$qb->on('ca.state', 'country_states.code')
|
||||
->on('countries.id', 'country_states.country_id');
|
||||
});
|
||||
|
||||
$queryBuilder
|
||||
->groupBy('ca.id')
|
||||
->addSelect(DB::raw('country_states.default_name as state_name'));
|
||||
|
||||
$this->addFilter('address_id', 'ca.id');
|
||||
$this->addFilter('address1', 'ca.address1');
|
||||
$this->addFilter('city', 'ca.city');
|
||||
$this->addFilter('state_name', DB::raw('country_states.default_name'));
|
||||
$this->addFilter('country_name', DB::raw('countries.name'));
|
||||
$this->addFilter('postcode', 'ca.postcode');
|
||||
$this->addFilter('default_address', 'ca.default_address');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
||||
public function addColumns()
|
||||
{
|
||||
$this->addColumn([
|
||||
'index' => 'address_id',
|
||||
'label' => trans('admin::app.customers.addresses.address-id'),
|
||||
'type' => 'number',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'address1',
|
||||
'label' => trans('admin::app.customers.addresses.address-1'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'city',
|
||||
'label' => trans('admin::app.customers.addresses.city'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'state_name',
|
||||
'label' => trans('admin::app.customers.addresses.state-name'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'country_name',
|
||||
'label' => trans('admin::app.customers.addresses.country-name'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'postcode',
|
||||
'label' => trans('admin::app.customers.addresses.postcode'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'default_address',
|
||||
'label' => trans('admin::app.customers.addresses.default-address'),
|
||||
'type' => 'boolean',
|
||||
'sortable' => true,
|
||||
'searchable' => false,
|
||||
'closure' => true,
|
||||
'wrapper' => function($row) {
|
||||
if ($row->default_address == 1)
|
||||
return '<span class="badge badge-md badge-success"">' . trans('admin::app.customers.addresses.yes') . '</span>';
|
||||
else
|
||||
return trans('admin::app.customers.addresses.dash');
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
public function prepareActions()
|
||||
{
|
||||
$this->addAction([
|
||||
'type' => 'Edit',
|
||||
'method' => 'GET', //use post only for redirects only
|
||||
'route' => 'admin.customer.addresses.edit',
|
||||
'icon' => 'icon pencil-lg-icon'
|
||||
]);
|
||||
|
||||
$this->addAction([
|
||||
'type' => 'Delete',
|
||||
'method' => 'POST',
|
||||
'route' => 'admin.customer.addresses.delete',
|
||||
'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'address']),
|
||||
'icon' => 'icon trash-icon'
|
||||
]);
|
||||
}
|
||||
|
||||
public function prepareMassActions()
|
||||
{
|
||||
$this->addMassAction([
|
||||
'type' => 'delete',
|
||||
'label' => trans('admin::app.customers.addresses.delete'),
|
||||
'action' => route('admin.customer.addresses.massdelete', request('id')),
|
||||
'method' => 'DELETE'
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ use DB;
|
|||
* CustomerDataGrid class
|
||||
*
|
||||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @author Vivek Sharma <viveksh047@webkul.com> @viveksh-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
class CustomerDataGrid extends DataGrid
|
||||
|
|
@ -23,11 +24,13 @@ class CustomerDataGrid extends DataGrid
|
|||
{
|
||||
$queryBuilder = DB::table('customers')
|
||||
->leftJoin('customer_groups', 'customers.customer_group_id', '=', 'customer_groups.id')
|
||||
->addSelect('customers.id as customer_id', 'customers.email', 'customer_groups.name', 'status')
|
||||
->addSelect('customers.id as customer_id', 'customers.email', 'customer_groups.name', 'customers.phone', 'customers.gender', 'status')
|
||||
->addSelect(DB::raw('CONCAT(customers.first_name, " ", customers.last_name) as full_name'));
|
||||
|
||||
$this->addFilter('customer_id', 'customers.id');
|
||||
$this->addFilter('full_name', DB::raw('CONCAT(customers.first_name, " ", customers.last_name)'));
|
||||
$this->addFilter('phone', 'customers.phone');
|
||||
$this->addFilter('gender', 'customers.gender');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -70,6 +73,38 @@ class CustomerDataGrid extends DataGrid
|
|||
'filterable' => true
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'phone',
|
||||
'label' => trans('admin::app.datagrid.phone'),
|
||||
'type' => 'number',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => false,
|
||||
'closure' => true,
|
||||
'wrapper' => function ($row) {
|
||||
if (! $row->phone)
|
||||
return '-';
|
||||
else
|
||||
return $row->phone;
|
||||
}
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'gender',
|
||||
'label' => trans('admin::app.datagrid.gender'),
|
||||
'type' => 'string',
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'filterable' => false,
|
||||
'closure' => true,
|
||||
'wrapper' => function ($row) {
|
||||
if (! $row->gender)
|
||||
return '-';
|
||||
else
|
||||
return $row->gender;
|
||||
}
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'status',
|
||||
'label' => trans('admin::app.datagrid.status'),
|
||||
|
|
@ -77,11 +112,12 @@ class CustomerDataGrid extends DataGrid
|
|||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
'closure' => true,
|
||||
'wrapper' => function ($row) {
|
||||
if ($row->status == 1) {
|
||||
return 'Activated';
|
||||
return '<span class="badge badge-md badge-success">Activated</span>';
|
||||
} else {
|
||||
return 'Blocked';
|
||||
return '<span class="badge badge-md badge-danger">Blocked</span>';
|
||||
}
|
||||
}
|
||||
]);
|
||||
|
|
@ -95,6 +131,13 @@ class CustomerDataGrid extends DataGrid
|
|||
'title' => trans('admin::app.customers.customers.edit-help-title')
|
||||
]);
|
||||
|
||||
$this->addAction([
|
||||
'type' => 'Edit',
|
||||
'method' => 'GET', //use post only for redirects only
|
||||
'route' => 'admin.customer.addresses.index',
|
||||
'icon' => 'icon list-icon'
|
||||
]);
|
||||
|
||||
$this->addAction([
|
||||
'method' => 'POST', // use GET request only for redirect purposes
|
||||
'route' => 'admin.customer.delete',
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ class Handler extends ExceptionHandler
|
|||
|
||||
private function isAdminUri()
|
||||
{
|
||||
return strpos($_SERVER['REQUEST_URI'], 'admin') !== false ? true : false;
|
||||
return strpos(\Illuminate\Support\Facades\Request::path(), 'admin') !== false ? true : false;
|
||||
}
|
||||
|
||||
private function response($path, $statusCode)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,189 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Admin\Http\Controllers\Customer;
|
||||
|
||||
use Webkul\Admin\Http\Controllers\Controller;
|
||||
use Webkul\Customer\Repositories\CustomerRepository as Customer;
|
||||
use Webkul\Customer\Repositories\CustomerAddressRepository as CustomerAddress;
|
||||
|
||||
/**
|
||||
* Customer's Address controller
|
||||
*
|
||||
* @author Vivek Sharma <viveksh047@webkul.com>
|
||||
* @copyright 2019 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
class AddressController extends Controller
|
||||
{
|
||||
/**
|
||||
* Contains route related configuration
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_config;
|
||||
|
||||
/**
|
||||
* Customer Repository object
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
protected $customer;
|
||||
|
||||
/**
|
||||
* CustomerAddress Repository object
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
protected $customerAddress;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @param Webkul\Customer\Repositories\CustomerAddressRepository $customerAddress
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
Customer $customer,
|
||||
CustomerAddress $customerAddress
|
||||
)
|
||||
{
|
||||
$this->customer = $customer;
|
||||
|
||||
$this->customerAddress = $customerAddress;
|
||||
|
||||
$this->_config = request('_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to populate the seller order page which will be populated.
|
||||
*
|
||||
* @return Mixed
|
||||
*/
|
||||
public function index($id)
|
||||
{
|
||||
$customer = $this->customer->find($id);
|
||||
|
||||
return view($this->_config['view'], compact('customer'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create($id)
|
||||
{
|
||||
$customer = $this->customer->find($id);
|
||||
|
||||
return view($this->_config['view'], compact('customer'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store()
|
||||
{
|
||||
request()->merge(['address1' => implode(PHP_EOL, array_filter(request()->input('address1')))]);
|
||||
|
||||
$data = collect(request()->input())->except('_token')->toArray();
|
||||
|
||||
$this->validate(request(), [
|
||||
'address1' => 'string|required',
|
||||
'country' => 'string|required',
|
||||
'state' => 'string|required',
|
||||
'city' => 'string|required',
|
||||
'postcode' => 'required',
|
||||
'phone' => 'required'
|
||||
]);
|
||||
|
||||
if ( $this->customerAddress->create($data) ) {
|
||||
session()->flash('success', trans('admin::app.customers.addresses.success-create'));
|
||||
|
||||
return redirect()->route('admin.customer.addresses.index', ['id' => $data['customer_id']]);
|
||||
} else {
|
||||
session()->flash('success', trans('admin::app.customers.addresses.error-create'));
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return Mixed
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$address = $this->customerAddress->find($id);
|
||||
|
||||
return view($this->_config['view'], compact('address'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit's the premade resource of customer called
|
||||
* Address.
|
||||
*
|
||||
* @return redirect
|
||||
*/
|
||||
public function update($id)
|
||||
{
|
||||
request()->merge(['address1' => implode(PHP_EOL, array_filter(request()->input('address1')))]);
|
||||
|
||||
$this->validate(request(), [
|
||||
'address1' => 'string|required',
|
||||
'country' => 'string|required',
|
||||
'state' => 'string|required',
|
||||
'city' => 'string|required',
|
||||
'postcode' => 'required',
|
||||
'phone' => 'required'
|
||||
]);
|
||||
|
||||
$data = collect(request()->input())->except('_token')->toArray();
|
||||
|
||||
$address = $this->customerAddress->find($id);
|
||||
|
||||
if ( $address ) {
|
||||
|
||||
$this->customerAddress->update($data, $id);
|
||||
|
||||
session()->flash('success', trans('admin::app.customers.addresses.success-update'));
|
||||
|
||||
return redirect()->route('admin.customer.addresses.index', ['id' => $address->customer_id]);
|
||||
}
|
||||
return redirect()->route($this->_config['redirect']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$this->customerAddress->delete($id);
|
||||
|
||||
session()->flash('success', trans('admin::app.customers.addresses.success-delete'));
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
/**
|
||||
* Mass Delete the customer's addresses
|
||||
*
|
||||
* @return response
|
||||
*/
|
||||
public function massDestroy($id)
|
||||
{
|
||||
$addressIds = explode(',', request()->input('indexes'));
|
||||
|
||||
foreach ($addressIds as $addressId) {
|
||||
$this->customerAddress->delete($addressId);
|
||||
}
|
||||
|
||||
session()->flash('success', trans('admin::app.customers.addresses.success-mass-delete'));
|
||||
|
||||
return redirect()->route($this->_config['redirect'], ['id' => $id]);
|
||||
}
|
||||
}
|
||||
|
|
@ -14,7 +14,7 @@ use Excel;
|
|||
class ExportController extends Controller
|
||||
{
|
||||
protected $exportableGrids = [
|
||||
'OrderDataGrid', 'OrderInvoicesDataGrid', 'OrderShipmentsDataGrid', 'CustomerDataGrid', 'TaxRateDataGrid', 'ProductDataGrid', 'CMSPageDataGrid'
|
||||
'OrderDataGrid', 'OrderInvoicesDataGrid', 'OrderShipmentsDataGrid', 'OrderRefundDataGrid', 'CustomerDataGrid', 'TaxRateDataGrid', 'ProductDataGrid', 'CMSPageDataGrid'
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -82,6 +82,36 @@ Route::group(['middleware' => ['web']], function () {
|
|||
'view' => 'admin::customers.reviews.index'
|
||||
])->name('admin.customer.review.index');
|
||||
|
||||
//Customer's addresses routes
|
||||
Route::get('customers/{id}/addresses', 'Webkul\Admin\Http\Controllers\Customer\AddressController@index')->defaults('_config', [
|
||||
'view' => 'admin::customers.addresses.index'
|
||||
])->name('admin.customer.addresses.index');
|
||||
|
||||
Route::get('customers/{id}/addresses/create', 'Webkul\Admin\Http\Controllers\Customer\AddressController@create')->defaults('_config',[
|
||||
'view' => 'admin::customers.addresses.create'
|
||||
])->name('admin.customer.addresses.create');
|
||||
|
||||
Route::post('customers/{id}/addresses/create', 'Webkul\Admin\Http\Controllers\Customer\AddressController@store')->defaults('_config',[
|
||||
'redirect' => 'admin.customer.addresses.index'
|
||||
])->name('admin.customer.addresses.store');
|
||||
|
||||
Route::get('customers/addresses/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\AddressController@edit')->defaults('_config',[
|
||||
'view' => 'admin::customers.addresses.edit'
|
||||
])->name('admin.customer.addresses.edit');
|
||||
|
||||
Route::put('customers/addresses/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\AddressController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.addresses.index'
|
||||
])->name('admin.customer.addresses.update');
|
||||
|
||||
Route::post('customers/addresses/delete/{id}', 'Webkul\Admin\Http\Controllers\Customer\AddressController@destroy')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.addresses.index'
|
||||
])->name('admin.customer.addresses.delete');
|
||||
|
||||
//mass destroy
|
||||
Route::post('customers/{id}/addresses', 'Webkul\Admin\Http\Controllers\Customer\AddressController@massDestroy')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.addresses.index'
|
||||
])->name('admin.customer.addresses.massdelete');
|
||||
|
||||
// Configuration routes
|
||||
Route::get('configuration/{slug?}/{slug2?}', 'Webkul\Admin\Http\Controllers\ConfigurationController@index')->defaults('_config', [
|
||||
'view' => 'admin::configuration.index'
|
||||
|
|
|
|||
|
|
@ -844,7 +844,8 @@ return [
|
|||
'create-root-failure' => 'الفئة مع الاسم الجذر موجود',
|
||||
'cancel-success' => ':name canceled successfully.',
|
||||
'cancel-error' => ':name can not be canceled.',
|
||||
'already-taken' => 'The :name has already been taken.'
|
||||
'already-taken' => 'The :name has already been taken.',
|
||||
'order-pending' => 'لا يمكن حذف الحساب لأن بعض الطلبات (الطلبات) معلقة أو قيد المعالجة.'
|
||||
],
|
||||
|
||||
'footer' => [
|
||||
|
|
@ -896,6 +897,7 @@ return [
|
|||
'footer-content' => 'Footer Text',
|
||||
'locale-options' => 'Unit Options',
|
||||
'weight-unit' => 'Weight Unit',
|
||||
'admin-page-limit' => 'العناصر الافتراضية لكل صفحة (المشرف)',
|
||||
'design' => 'Design',
|
||||
'admin-logo' => 'Admin Logo',
|
||||
'logo-image' => 'Logo Image',
|
||||
|
|
|
|||
|
|
@ -161,6 +161,8 @@ return [
|
|||
'hostname' => 'Hostname',
|
||||
'email' => 'Email',
|
||||
'group' => 'Group',
|
||||
'phone' => 'Phone',
|
||||
'gender' => 'Gender',
|
||||
'title' => 'Title',
|
||||
'layout' => 'Layout',
|
||||
'url-key' => 'URL Key',
|
||||
|
|
@ -849,6 +851,35 @@ return [
|
|||
'yes' => 'Yes'
|
||||
],
|
||||
|
||||
'addresses' => [
|
||||
'title' => ':customer_name\'s Addresses List',
|
||||
'create-title' => 'Create Customer\'s Address',
|
||||
'edit-title' => 'Update Customer\'s Address',
|
||||
'title-orders' => ':customer_name\'s Orders List',
|
||||
'address-list' => 'Address\'s List',
|
||||
'order-list' => 'Order\'s List',
|
||||
'address-id' => 'Address ID',
|
||||
'address-1' => 'Address 1',
|
||||
'city' => 'City',
|
||||
'state-name' => 'State',
|
||||
'country-name' => 'Country',
|
||||
'postcode' => 'Post Code',
|
||||
'default-address' => 'Default Address',
|
||||
'yes' => 'Yes',
|
||||
'not-approved' => 'Not Approved',
|
||||
'no' => 'No',
|
||||
'dash' => '-',
|
||||
'delete' => 'Delete',
|
||||
'create-btn-title' => 'Add Address',
|
||||
'save-btn-title' => 'Save Address',
|
||||
'general' => 'General',
|
||||
'success-create' => 'Success: Customer address created successfully.',
|
||||
'success-update' => 'Success: Customer address updated successfully.',
|
||||
'success-delete' => 'Success: Customer address deleted successfully.',
|
||||
'success-mass-delete' => 'Success: selected addresses deleted successfully.',
|
||||
'error-create' => 'Error: Customer address not created.',
|
||||
],
|
||||
|
||||
'note' => [
|
||||
'title' => 'Add Note',
|
||||
'save-note' => 'Save Note',
|
||||
|
|
@ -1132,7 +1163,8 @@ return [
|
|||
'create-root-failure' => 'Category with name root already exists',
|
||||
'cancel-success' => ':name canceled successfully.',
|
||||
'cancel-error' => ':name can not be canceled.',
|
||||
'already-taken' => 'The :name has already been taken.'
|
||||
'already-taken' => 'The :name has already been taken.',
|
||||
'order-pending' => 'Cannot delete account because some Order(s) are pending or processing state.'
|
||||
],
|
||||
|
||||
'footer' => [
|
||||
|
|
@ -1185,6 +1217,7 @@ return [
|
|||
'footer-toggle' => 'Toggle footer',
|
||||
'locale-options' => 'Unit Options',
|
||||
'weight-unit' => 'Weight Unit',
|
||||
'admin-page-limit' => 'Default Items Per Page (Admin)',
|
||||
'design' => 'Design',
|
||||
'admin-logo' => 'Admin Logo',
|
||||
'logo-image' => 'Logo Image',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.customers.addresses.create-title') }}
|
||||
@stop
|
||||
|
||||
|
||||
@section('content-wrapper')
|
||||
|
||||
<div class="content full-page">
|
||||
{!! view_render_event('admin.customer.addresses.create.before') !!}
|
||||
|
||||
<form method="POST" action="{{ route('admin.customer.addresses.store', ['id' => $customer->id]) }}" @submit.prevent="onSubmit">
|
||||
<div class="page-header">
|
||||
<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.customers.addresses.create-title') }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.customers.addresses.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<input type="hidden" name="customer_id" value="{{ $customer->id }}">
|
||||
|
||||
<accordian :title="'{{ __('admin::app.customers.addresses.general') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<div class="control-group" :class="[errors.has('address1[]') ? 'has-error' : '']">
|
||||
<label for="address_0" class="required">{{ __('shop::app.customer.account.address.edit.street-address') }}</label>
|
||||
<input type="text" class="control" name="address1[]" id="address_0" v-validate="'required'" value="{{ old('address1') }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.street-address') }}"">
|
||||
<span class="control-error" v-if="errors.has('address1[]')">@{{ errors.first('address1[]') }}</span>
|
||||
</div>
|
||||
|
||||
@if (core()->getConfigData('customer.settings.address.street_lines') && core()->getConfigData('customer.settings.address.street_lines') > 1)
|
||||
<div class="control-group" style="margin-top: -25px;">
|
||||
@for ($i = 1; $i < core()->getConfigData('customer.settings.address.street_lines'); $i++)
|
||||
<input type="text" class="control" name="address1[{{ $i }}]" id="address_{{ $i }}">
|
||||
@endfor
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="control-group" :class="[errors.has('city') ? 'has-error' : '']">
|
||||
<label for="city" class="required">{{ __('shop::app.customer.account.address.create.city') }}</label>
|
||||
<input type="text" class="control" name="city" v-validate="'required|alpha_spaces'" value="{{ old('city') }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.city') }}"">
|
||||
<span class="control-error" v-if="errors.has('city')">@{{ errors.first('city') }}</span>
|
||||
</div>
|
||||
|
||||
@include ('shop::customers.account.address.country-state', ['countryCode' => old('country') ?? '', 'stateCode' => old('state') ?? ''])
|
||||
|
||||
<div class="control-group" :class="[errors.has('postcode') ? 'has-error' : '']">
|
||||
<label for="postcode" class="required">{{ __('shop::app.customer.account.address.create.postcode') }}</label>
|
||||
<input type="text" class="control" name="postcode" v-validate="'required'" value="{{ old('postcode') }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.postcode') }}"">
|
||||
<span class="control-error" v-if="errors.has('postcode')">@{{ errors.first('postcode') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
|
||||
<label for="phone" class="required">{{ __('shop::app.customer.account.address.create.phone') }}</label>
|
||||
<input type="text" class="control" name="phone" v-validate="'required'" value="{{ old('phone') }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.phone') }}"">
|
||||
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<span class="checkbox">
|
||||
<input type="checkbox" class="control" id="default_address" name="default_address" {{ old('default_address') ? 'checked' : '' }} >
|
||||
|
||||
<label class="checkbox-view" for="default_address"></label>
|
||||
{{ __('admin::app.customers.addresses.default-address') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</accordian>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{!! view_render_event('admin.customer.addresses.create.after') !!}
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.customers.addresses.edit-title') }}
|
||||
@stop
|
||||
|
||||
|
||||
@section('content-wrapper')
|
||||
|
||||
<div class="content full-page">
|
||||
{!! view_render_event('admin.customer.addresses.edit.before', ['address' => $address]) !!}
|
||||
|
||||
<form method="post" action="{{ route('admin.customer.addresses.update', $address->id) }}" @submit.prevent="onSubmit">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.customers.addresses.edit-title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-primary btn-lg">
|
||||
{{ __('admin::app.customers.addresses.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
@csrf()
|
||||
|
||||
<input type="hidden" name="_method" value="PUT">
|
||||
|
||||
<input type="hidden" name="customer_id" value="{{ $address->customer_id }}">
|
||||
|
||||
<accordian :title="'{{ __('admin::app.customers.addresses.general') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<?php $addresses = explode(PHP_EOL, $address->address1); ?>
|
||||
|
||||
<div class="control-group" :class="[errors.has('address1[]') ? 'has-error' : '']">
|
||||
<label for="address_0" class="required">{{ __('shop::app.customer.account.address.edit.street-address') }}</label>
|
||||
<input type="text" class="control" name="address1[]" id="address_0" v-validate="'required'" value="{{ isset($addresses[0]) ? $addresses[0] : '' }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.street-address') }}"">
|
||||
<span class="control-error" v-if="errors.has('address1[]')">@{{ errors.first('address1[]') }}</span>
|
||||
</div>
|
||||
|
||||
@if (core()->getConfigData('customer.settings.address.street_lines') && core()->getConfigData('customer.settings.address.street_lines') > 1)
|
||||
<div class="control-group" style="margin-top: -25px;">
|
||||
@for ($i = 1; $i < core()->getConfigData('customer.settings.address.street_lines'); $i++)
|
||||
<input type="text" class="control" name="address1[{{ $i }}]" id="address_{{ $i }}" value="{{ isset($addresses[$i]) ? $addresses[$i] : '' }}">
|
||||
@endfor
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="control-group" :class="[errors.has('city') ? 'has-error' : '']">
|
||||
<label for="city" class="required">{{ __('shop::app.customer.account.address.create.city') }}</label>
|
||||
<input type="text" class="control" name="city" v-validate="'required|alpha_spaces'" value="{{ $address->city }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.city') }}"">
|
||||
<span class="control-error" v-if="errors.has('city')">@{{ errors.first('city') }}</span>
|
||||
</div>
|
||||
|
||||
@include ('shop::customers.account.address.country-state', ['countryCode' => old('country') ?? $address->country, 'stateCode' => old('state') ?? $address->state])
|
||||
|
||||
<div class="control-group" :class="[errors.has('postcode') ? 'has-error' : '']">
|
||||
<label for="postcode" class="required">{{ __('shop::app.customer.account.address.create.postcode') }}</label>
|
||||
<input type="text" class="control" name="postcode" v-validate="'required'" value="{{ $address->postcode }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.postcode') }}"">
|
||||
<span class="control-error" v-if="errors.has('postcode')">@{{ errors.first('postcode') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
|
||||
<label for="phone" class="required">{{ __('shop::app.customer.account.address.create.phone') }}</label>
|
||||
<input type="text" class="control" name="phone" v-validate="'required'" value="{{ $address->phone }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.phone') }}"">
|
||||
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<span class="checkbox">
|
||||
<input type="checkbox" class="control" id="default_address" name="default_address" {{ $address->default_address ? 'checked' : '' }} >
|
||||
|
||||
<label class="checkbox-view" for="default_address"></label>
|
||||
{{ __('admin::app.customers.addresses.default-address') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</accordian>
|
||||
</form>
|
||||
|
||||
|
||||
{!! view_render_event('admin.customer.addresses.edit.after', ['address' => $address]) !!}
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.customers.addresses.title', ['customer_name' => $customer->first_name . ' ' . $customer->last_name]) }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.customers.addresses.title', ['customer_name' => $customer->first_name . ' ' . $customer->last_name]) }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.customer.addresses.create', ['id' => $customer->id]) }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.customers.addresses.create-btn-title') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customer.addresses.list.before') !!}
|
||||
|
||||
<div class="page-content">
|
||||
|
||||
{!! app('Webkul\Admin\DataGrids\AddressDataGrid')->render() !!}
|
||||
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customer.addresses.list.after') !!}
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
@extends('address::admin.layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('address::app.admin.addresses.title-orders', ['customer_name' => $customer->first_name . ' ' . $customer->last_name]) }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="content">
|
||||
<div class="page-header">
|
||||
<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>
|
||||
|
||||
{{ __('address::app.admin.addresses.title-orders', ['customer_name' => $customer->first_name . ' ' . $customer->last_name]) }}
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="{{ route('admin.address.addresses.index', ['id' => $customer->id]) }}">{{ __('address::app.admin.addresses.address-list') }}</a></li>
|
||||
|
||||
<li class="active"><a href="{{ route('admin.address.orders.index', ['id' => $customer->id]) }}">{{ __('address::app.admin.addresses.order-list') }}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{!! app('Webkul\Address\DataGrids\Admin\OrderDataGrid')->render() !!}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@stop
|
||||
|
|
@ -78,9 +78,9 @@
|
|||
|
||||
<div class="brand-logo">
|
||||
@if (core()->getConfigData('general.design.admin_logo.logo_image'))
|
||||
<img src="{{ \Illuminate\Support\Facades\Storage::url(core()->getConfigData('general.design.admin_logo.logo_image')) }}" alt="Bagisto" style="height: 40px; width: 110px;"/>
|
||||
<img src="{{ \Illuminate\Support\Facades\Storage::url(core()->getConfigData('general.design.admin_logo.logo_image')) }}" alt="{{ config('app.name') }}" style="height: 40px; width: 110px;"/>
|
||||
@else
|
||||
<img src="{{ asset('vendor/webkul/ui/assets/images/logo.png') }}" alt="Bagisto"/>
|
||||
<img src="{{ asset('vendor/webkul/ui/assets/images/logo.png') }}" alt="{{ config('app.name') }}"/>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
<div class="brand-logo">
|
||||
<a href="{{ route('admin.dashboard.index') }}">
|
||||
@if (core()->getConfigData('general.design.admin_logo.logo_image'))
|
||||
<img src="{{ \Illuminate\Support\Facades\Storage::url(core()->getConfigData('general.design.admin_logo.logo_image')) }}" alt="Bagisto" style="height: 40px; width: 110px;"/>
|
||||
<img src="{{ \Illuminate\Support\Facades\Storage::url(core()->getConfigData('general.design.admin_logo.logo_image')) }}" alt="{{ config('app.name') }}" style="height: 40px; width: 110px;"/>
|
||||
@else
|
||||
<img src="{{ asset('vendor/webkul/ui/assets/images/logo.png') }}" alt="Bagisto"/>
|
||||
<img src="{{ asset('vendor/webkul/ui/assets/images/logo.png') }}" alt="{{ config('app.name') }}"/>
|
||||
@endif
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -142,7 +142,6 @@ class CustomerController extends Controller
|
|||
$orders = $customerRepository->all_orders->whereIn('status', ['pending', 'processing'])->first();
|
||||
|
||||
if ( $orders ) {
|
||||
|
||||
session()->flash('error', trans('admin::app.response.order-pending'));
|
||||
|
||||
return redirect()->route($this->_config['redirect']);
|
||||
|
|
@ -160,7 +159,7 @@ class CustomerController extends Controller
|
|||
session()->flash('error', trans('shop::app.customer.account.address.delete.wrong-password'));
|
||||
}
|
||||
|
||||
return redirect()->route($this->_config['redirect']);
|
||||
return redirect()->route('customer.session.index');
|
||||
} catch(\Exception $e) {
|
||||
session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Customer']));
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace Webkul\Customer\Repositories;
|
||||
|
||||
use Webkul\Core\Eloquent\Repository;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
|
||||
/**
|
||||
* Customer Reposotory
|
||||
|
|
@ -23,4 +24,64 @@ class CustomerAddressRepository extends Repository
|
|||
{
|
||||
return 'Webkul\Customer\Contracts\CustomerAddress';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* @return mixed
|
||||
*/
|
||||
public function create(array $data)
|
||||
{
|
||||
Event::fire('customer.addresses.create.before');
|
||||
|
||||
if ( isset($data['default_address']) ) {
|
||||
$data['default_address'] = 1;
|
||||
} else {
|
||||
$data['default_address'] = 0;
|
||||
}
|
||||
|
||||
$default_address = $this->findWhere(['customer_id' => $data['customer_id'], 'default_address' => 1])->first();
|
||||
|
||||
if ( isset($default_address->id) && $data['default_address'] ) {
|
||||
$default_address->update(['default_address' => 0]);
|
||||
}
|
||||
|
||||
$address = $this->model->create($data);
|
||||
|
||||
Event::fire('customer.addresses.create.after', $address);
|
||||
|
||||
return $address;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* @param $id
|
||||
* @return mixed
|
||||
*/
|
||||
public function update(array $data, $id)
|
||||
{
|
||||
$address = $this->find($id);
|
||||
|
||||
Event::fire('customer.addresses.update.before', $id);
|
||||
|
||||
if (isset($data['default_address']) ) {
|
||||
$data['default_address'] = 1;
|
||||
} else {
|
||||
$data['default_address'] = 0;
|
||||
}
|
||||
|
||||
$default_address = $this->findWhere(['customer_id' => $address->customer_id, 'default_address' => 1])->first();
|
||||
|
||||
if ( isset($default_address->id) && $data['default_address'] ) {
|
||||
if ( $default_address->id != $address->id ) {
|
||||
$default_address->update(['default_address' => 0]);
|
||||
}
|
||||
$address->update($data);
|
||||
} else {
|
||||
$address->update($data);
|
||||
}
|
||||
|
||||
Event::fire('customer.addresses.update.after', $id);
|
||||
|
||||
return $address;
|
||||
}
|
||||
}
|
||||
|
|
@ -61,7 +61,7 @@ class Handler extends ExceptionHandler
|
|||
|
||||
private function isSopUri()
|
||||
{
|
||||
return strpos($_SERVER['REQUEST_URI'], 'shop') !== false ? true : false;
|
||||
return strpos(\Illuminate\Support\Facades\Request::path(), 'shop') !== false ? true : false;
|
||||
}
|
||||
|
||||
private function response($path, $statusCode)
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ return [
|
|||
],
|
||||
|
||||
'home' => [
|
||||
'page-title' => 'Bagisto - Home',
|
||||
'page-title' => config('app.name') . ' - Home',
|
||||
'featured-products' => 'Featured Products',
|
||||
'new-products' => 'New Products',
|
||||
'verify-email' => 'Verify your email account',
|
||||
|
|
@ -61,14 +61,14 @@ return [
|
|||
'subscribed' => 'You are now subscribed to subscription emails.',
|
||||
'not-subscribed' => 'You can not be subscribed to subscription emails, please try again later.',
|
||||
'already' => 'You are already subscribed to our subscription list.',
|
||||
'unsubscribed' => 'You are unsubscribed from subscription mails0',
|
||||
'unsubscribed' => 'You are unsubscribed from subscription mails.',
|
||||
'already-unsub' => 'You are already unsubscribed.',
|
||||
'not-subscribed' => 'Error! Mail can not be sent currently, please try again later.'
|
||||
],
|
||||
|
||||
'search' => [
|
||||
'no-results' => 'No Results Found',
|
||||
'page-title' => 'Bagisto - Search',
|
||||
'page-title' => config('app.name') . ' - Search',
|
||||
'found-results' => 'Search Results Found',
|
||||
'found-result' => 'Search Result Found'
|
||||
],
|
||||
|
|
@ -609,7 +609,7 @@ return [
|
|||
'username-email' => 'UserName/Email',
|
||||
'subject' => 'New Customer Registration',
|
||||
'password' => 'Password',
|
||||
'summary' => 'Your account has been created in bagisto.
|
||||
'summary' => 'Your account has been created.
|
||||
Your account details are below: ',
|
||||
'thanks' => 'Thanks!',
|
||||
],
|
||||
|
|
@ -618,13 +618,13 @@ return [
|
|||
'subject' => 'New Customer Registration',
|
||||
'customer-registration' => 'Customer Registered Successfully',
|
||||
'dear' => 'Dear :customer_name',
|
||||
'greeting' => 'Welcome and thank you for registering at Bagisto!',
|
||||
'greeting' => 'Welcome and thank you for registering with us!',
|
||||
'summary' => 'Your account has now been created successfully and you can login using your email address and password credentials. Upon logging in, you will be able to access other services including reviewing past orders, wishlists and editing your account information.',
|
||||
'thanks' => 'Thanks!',
|
||||
],
|
||||
|
||||
'verification' => [
|
||||
'heading' => 'Bagisto - Email Verification',
|
||||
'heading' => config('app.name') . ' - Email Verification',
|
||||
'subject' => 'Verification Mail',
|
||||
'verify' => 'Verify Your Account',
|
||||
'summary' => 'This is the mail to verify that the email address you entered is yours.
|
||||
|
|
@ -633,9 +633,9 @@ return [
|
|||
|
||||
'subscription' => [
|
||||
'subject' => 'Subscription Email',
|
||||
'greeting' => ' Welcome to Bagisto - Email Subscription',
|
||||
'greeting' => ' Welcome to ' . config('app.name') . ' - Email Subscription',
|
||||
'unsubscribe' => 'Unsubscribe',
|
||||
'summary' => 'Thanks for putting me into your inbox. It’s been a while since you’ve read Bagisto email, and we don’t want to overwhelm your inbox. If you still do not want to receive
|
||||
'summary' => 'Thanks for putting me into your inbox. It’s been a while since you’ve read ' . config('app.name') . ' email, and we don’t want to overwhelm your inbox. If you still do not want to receive
|
||||
the latest email marketing news then for sure click the button below.'
|
||||
]
|
||||
]
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ return [
|
|||
],
|
||||
|
||||
'home' => [
|
||||
'page-title' => 'Bagisto - Inicio',
|
||||
'page-title' => config('app.name') . ' - Inicio',
|
||||
'featured-products' => 'Productos Destacados',
|
||||
'new-products' => 'Nuevos Productos',
|
||||
'verify-email' => 'Verifica tu cuenta de correo',
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ return [
|
|||
'subscribed' => 'شما هم اکنون در ایمیل های اشتراک مشترک شده اید',
|
||||
'not-subscribed' => 'شما نمی توانید به عضویت در ایمیل مشترک شوید ، پس از مدتی دوباره امتحان کنید',
|
||||
'already' => 'شما قبلاً در لیست اشتراک های ما مشترک شده اید',
|
||||
'unsubscribed' => 'شما از نامه های اشتراک Bagisto مشترک نیستید',
|
||||
'unsubscribed' => 'شما از نامه های اشتراک مشترکاً مشترک نیستید',
|
||||
'already-unsub' => 'شما قبلاً لغو اشتراک شده اید',
|
||||
'not-subscribed' => 'خطا! نامه ارسال نمی شود در حال حاضر ، لطفا بعدا دوباره امتحان کنید'
|
||||
],
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ return [
|
|||
],
|
||||
|
||||
'home' => [
|
||||
'page-title' => 'Bagisto - Home',
|
||||
'page-title' => config('app.name') . ' - Home',
|
||||
'featured-products' => 'Produtos em Destaque',
|
||||
'new-products' => 'Novos Produtos',
|
||||
'verify-email' => 'Verifique sua Conta de E-mail',
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<div>
|
||||
<div style="text-align: center;">
|
||||
<a href="{{ config('app.url') }}">
|
||||
<img src="{{ bagisto_asset('images/logo.svg') }}">
|
||||
@include ('shop::emails.layouts.logo')
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@if (core()->getConfigData('general.design.admin_logo.logo_image'))
|
||||
<img src="{{ \Illuminate\Support\Facades\Storage::url(core()->getConfigData('general.design.admin_logo.logo_image')) }}" alt="Bagisto" style="height: 40px; width: 110px;"/>
|
||||
<img src="{{ \Illuminate\Support\Facades\Storage::url(core()->getConfigData('general.design.admin_logo.logo_image')) }}" alt="{{ config('app.name') }}" style="height: 40px; width: 110px;"/>
|
||||
@else
|
||||
<img src="{{ bagisto_asset('images/logo.svg') }}">
|
||||
@endif
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
@endif
|
||||
|
||||
<?php
|
||||
$query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
|
||||
$query = parse_url(\Illuminate\Support\Facades\Request::path(), PHP_URL_QUERY);
|
||||
$searchTerm = explode("&", $query);
|
||||
|
||||
foreach($searchTerm as $term){
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
</div>
|
||||
|
||||
<?php
|
||||
$query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
|
||||
$query = parse_url(\Illuminate\Support\Facades\Request::path(), PHP_URL_QUERY);
|
||||
$searchTerm = explode("&", $query);
|
||||
|
||||
foreach($searchTerm as $term){
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Listing</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Listing" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
|
||||
<g id="Group-2" transform="translate(6.000000, 4.000000)" stroke="#8E8E8E" stroke-width="2">
|
||||
<g id="Group">
|
||||
<path d="M5.41666667,1.66666667 L13,1.66666667" id="Path-6"></path>
|
||||
<path d="M0,1.66666667 L1.08333333,1.66666667" id="Path-6-Copy"></path>
|
||||
</g>
|
||||
<g id="Group-Copy" transform="translate(0.000000, 4.000000)">
|
||||
<path d="M5.41666667,1.66666667 L13,1.66666667" id="Path-6"></path>
|
||||
<path d="M0,1.66666667 L1.08333333,1.66666667" id="Path-6-Copy"></path>
|
||||
</g>
|
||||
<g id="Group-Copy-2" transform="translate(0.000000, 8.000000)">
|
||||
<path d="M5.41666667,1.66666667 L13,1.66666667" id="Path-6"></path>
|
||||
<path d="M0,1.66666667 L1.08333333,1.66666667" id="Path-6-Copy"></path>
|
||||
</g>
|
||||
<g id="Group-Copy-3" transform="translate(0.000000, 12.000000)">
|
||||
<path d="M5.41666667,1.66666667 L13,1.66666667" id="Path-6"></path>
|
||||
<path d="M0,1.66666667 L1.08333333,1.66666667" id="Path-6-Copy"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/ui.js": "/js/ui.js?id=62a1f3ccf04e55a10ae8",
|
||||
"/css/ui.css": "/css/ui.css?id=485e4b6533049df9136b"
|
||||
"/js/ui.js": "/js/ui.js?id=1eae825cea6916507733",
|
||||
"/css/ui.css": "/css/ui.css?id=b61e212bdad67ef040f5"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -142,6 +142,8 @@ abstract class DataGrid
|
|||
public function __construct()
|
||||
{
|
||||
$this->invoker = $this;
|
||||
|
||||
$this->itemsPerPage = core()->getConfigData('general.general.locale_options.admin_page_limit') ?: $this->itemsPerPage;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Listing</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Listing" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
|
||||
<g id="Group-2" transform="translate(6.000000, 4.000000)" stroke="#8E8E8E" stroke-width="2">
|
||||
<g id="Group">
|
||||
<path d="M5.41666667,1.66666667 L13,1.66666667" id="Path-6"></path>
|
||||
<path d="M0,1.66666667 L1.08333333,1.66666667" id="Path-6-Copy"></path>
|
||||
</g>
|
||||
<g id="Group-Copy" transform="translate(0.000000, 4.000000)">
|
||||
<path d="M5.41666667,1.66666667 L13,1.66666667" id="Path-6"></path>
|
||||
<path d="M0,1.66666667 L1.08333333,1.66666667" id="Path-6-Copy"></path>
|
||||
</g>
|
||||
<g id="Group-Copy-2" transform="translate(0.000000, 8.000000)">
|
||||
<path d="M5.41666667,1.66666667 L13,1.66666667" id="Path-6"></path>
|
||||
<path d="M0,1.66666667 L1.08333333,1.66666667" id="Path-6-Copy"></path>
|
||||
</g>
|
||||
<g id="Group-Copy-3" transform="translate(0.000000, 12.000000)">
|
||||
<path d="M5.41666667,1.66666667 L13,1.66666667" id="Path-6"></path>
|
||||
<path d="M0,1.66666667 L1.08333333,1.66666667" id="Path-6-Copy"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
|
|
@ -448,7 +448,11 @@ h5 {
|
|||
vertical-align: top;
|
||||
|
||||
&.actions {
|
||||
|
||||
|
||||
.action {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.icon {
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
|
|
|
|||
|
|
@ -236,6 +236,12 @@
|
|||
height: 24px;
|
||||
}
|
||||
|
||||
.list-icon {
|
||||
background-image: url("../images/Icon-Listing.svg");
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.active {
|
||||
.dashboard-icon {
|
||||
background-image: url("../images/Icon-Dashboard-Active.svg");
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
<span> Click the below button to run following : </span>
|
||||
</div>
|
||||
<div class="message">
|
||||
<span>Database Migartion </span>
|
||||
<span>Database Migration </span>
|
||||
</div>
|
||||
<div class="message">
|
||||
<span> Database Seeder </span>
|
||||
|
|
@ -224,4 +224,4 @@
|
|||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue