Merge branch 'master' of https://github.com/bagisto/bagisto into sarga-v1
|
|
@ -1,6 +1,6 @@
|
|||
APP_NAME=Bagisto
|
||||
APP_ENV=local
|
||||
APP_VERSION=1.4.1
|
||||
APP_VERSION=1.4.2
|
||||
APP_KEY=
|
||||
APP_DEBUG=true
|
||||
APP_URL=http://localhost
|
||||
|
|
|
|||
|
|
@ -3,6 +3,71 @@
|
|||
This changelog consists of the bug & security fixes and new features being included in the releases listed below.
|
||||
|
||||
|
||||
|
||||
## **v1.4.2 (31st of March 2022)** - *Release*
|
||||
|
||||
* #6164 [enhancement] - UI Enhancement - Please Add the separation Lines in the Heading section also in Orders and Downloadable Product Details.
|
||||
|
||||
* #6162 [enhancement] -UI Enhancement - Please Make the Information Text Bold in the Compare Product Page.
|
||||
|
||||
* #6119 [enhancement] -The locale dropdown should be in ascending order
|
||||
|
||||
* #6117 ['enhancement] -The locale name should be shown instead of the locale code on the orders page
|
||||
|
||||
* #5964 [enhancement] - The process to checkout button should be disabled if the product is out of stock.
|
||||
|
||||
* #5399 [enhancement] - There should be a Back to Top Button in the user panel.
|
||||
|
||||
* #5355 [enhancement] -There should be an option to upload user's picture
|
||||
|
||||
|
||||
* #6186 [fixed] - The page should be redirected to the product-review page after submitting the review
|
||||
|
||||
* #6181 [fixed] - There should not be any UI issue on the product-view page in the quantity field.
|
||||
|
||||
* #6177 [fixed] - There is a UI issue on the product-view page in the Arabic locale
|
||||
|
||||
* #6174 [fixed] - The sidebar should be disabled if the admin is trying to send the duplicate invoice.
|
||||
|
||||
* #6167 [fixed] - In Reviews Section - Grammatical Mistake Found.
|
||||
|
||||
* #6165 [fixed] - In Downloadable Product Section Unnecessary Column is present.
|
||||
|
||||
* #6161 [fixed] - There should not be any UI issue on the orders page.if the user is trying to filter the orders
|
||||
|
||||
* #6158 [fixed] - The quantity option should not be visible for booking products.
|
||||
|
||||
* #6157 [fixed] - There is a UI issue on the product-edit page
|
||||
|
||||
* #6156 [fixed] - LINT ERROR IN EDIT PRODUCTS BLADE
|
||||
|
||||
* #6153 [fixed] - There should be an asterisk icon for the required fields.
|
||||
|
||||
* #6144 [fixed] - Payment methods page is Blank if admin_locale=fr
|
||||
|
||||
* #6134 [fixed] - The total amount of cart items should be correct.
|
||||
|
||||
* #6132 [fixed] - The edit channel page should not be blank in the Chinese locale.
|
||||
|
||||
* #6126 [fixed] - There is a UI issue on the cart section with Arabic locale
|
||||
|
||||
* #6124 [fixed] - There is a UI issue on the header section
|
||||
|
||||
* #6121 [fixed] - The warning message should be correct if the user is trying to delete the account
|
||||
|
||||
* #6115 [fixed] - The Back to top button should be disabled when the user is placing the order
|
||||
|
||||
* #6114 [fixed] - Edit channel page is Blank if admin_locale=fr
|
||||
|
||||
* #6112 [fixed] - There should not be Error 500 if the admin is trying to edit the product.
|
||||
|
||||
* #6109 [fixed] - The add to cart button should be blurred if the item is out of stock
|
||||
|
||||
* #6103 [fixed] - The header section should be responsive in mobile view
|
||||
|
||||
* #4959 [fixed] - getting exception when merge guest cart with customer cart with configurable item
|
||||
|
||||
|
||||
## **v1.4.1 (17th of March 2022)** - *Release*
|
||||
|
||||
* #6040 [enhancement] - The locale dropdown should be in ascending order
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ Take advantage of two of the hottest frameworks used in this project -- Laravel
|
|||
|
||||
* **SERVER**: Apache 2 or NGINX.
|
||||
* **RAM**: 3 GB or higher.
|
||||
* **PHP**: 7.4 or higher.
|
||||
* **PHP**: 8.0 or higher.
|
||||
* **For MySQL users**: 5.7.23 or higher.
|
||||
* **For MariaDB users**: 10.2.7 or Higher.
|
||||
* **Node**: 8.11.3 LTS or higher.
|
||||
|
|
|
|||
|
|
@ -38,8 +38,6 @@ class ConfigurationController extends Controller
|
|||
*/
|
||||
public function __construct(CoreConfigRepository $coreConfigRepository)
|
||||
{
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->coreConfigRepository = $coreConfigRepository;
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
|
|
|||
|
|
@ -66,8 +66,6 @@ class CustomerController extends Controller
|
|||
) {
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->customerRepository = $customerRepository;
|
||||
|
||||
$this->customerAddressRepository = $customerAddressRepository;
|
||||
|
|
|
|||
|
|
@ -32,8 +32,6 @@ class CustomerGroupController extends Controller
|
|||
{
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->customerGroupRepository = $customerGroupRepository;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -100,8 +100,6 @@ class DashboardController extends Controller
|
|||
) {
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->orderRepository = $orderRepository;
|
||||
|
||||
$this->orderItemRepository = $orderItemRepository;
|
||||
|
|
|
|||
|
|
@ -7,16 +7,6 @@ use Webkul\Admin\Exports\DataGridExport;
|
|||
|
||||
class ExportController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('admin');
|
||||
}
|
||||
|
||||
/**
|
||||
* Export datagrid.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -47,8 +47,6 @@ class InvoiceController extends Controller
|
|||
OrderRepository $orderRepository,
|
||||
InvoiceRepository $invoiceRepository
|
||||
) {
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->orderRepository = $orderRepository;
|
||||
|
|
|
|||
|
|
@ -43,8 +43,6 @@ class OrderController extends Controller
|
|||
OrderCommentRepository $orderCommentRepository
|
||||
)
|
||||
{
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->orderRepository = $orderRepository;
|
||||
|
|
|
|||
|
|
@ -51,8 +51,6 @@ class RefundController extends Controller
|
|||
OrderItemRepository $orderItemRepository,
|
||||
RefundRepository $refundRepository
|
||||
) {
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->orderRepository = $orderRepository;
|
||||
|
|
|
|||
|
|
@ -51,8 +51,6 @@ class ShipmentController extends Controller
|
|||
OrderRepository $orderRepository,
|
||||
OrderItemRepository $orderItemRepository
|
||||
) {
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->orderRepository = $orderRepository;
|
||||
|
|
|
|||
|
|
@ -52,8 +52,6 @@ class TransactionController extends Controller
|
|||
OrderRepository $orderRepository,
|
||||
OrderTransactionRepository $orderTransactionRepository,
|
||||
InvoiceRepository $invoiceRepository) {
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->orderRepository = $orderRepository;
|
||||
|
|
|
|||
|
|
@ -309,7 +309,7 @@ return [
|
|||
],
|
||||
|
||||
'users' => [
|
||||
'title' => 'User',
|
||||
'title' => 'Users',
|
||||
'add-user-title' => 'Add User',
|
||||
'edit-user-title' => 'Edit User',
|
||||
'save-btn-title' => 'Save User',
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@
|
|||
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
<accordian :title="{{ __('admin::app.cms.pages.general') }}" :active="true">
|
||||
<accordian title="{{ __('admin::app.cms.pages.general') }}" :active="true">
|
||||
<div slot="body">
|
||||
<div class="control-group" :class="[errors.has('{{$locale}}[page_title]') ? 'has-error' : '']">
|
||||
<label for="page_title" class="required">{{ __('admin::app.cms.pages.page-title') }}</label>
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@
|
|||
|
||||
<div class="dropdown-toggle">
|
||||
|
||||
<i class="icon locale-icon-bold"></i>
|
||||
<i class="icon locale-icon"></i>
|
||||
</div>
|
||||
|
||||
<div class="dropdown-list bottom-right">
|
||||
|
|
|
|||
|
|
@ -1,29 +1,22 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Webkul\Admin\Http\Controllers\Controller;
|
||||
use Webkul\User\Http\Controllers\ForgetPasswordController;
|
||||
use Webkul\User\Http\Controllers\ResetPasswordController;
|
||||
use Webkul\User\Http\Controllers\SessionController;
|
||||
use Webkul\Notification\Http\Controllers\Admin\NotificationController;
|
||||
|
||||
/**
|
||||
* Auth routes.
|
||||
* Notification routes.
|
||||
*/
|
||||
Route::group(['middleware' => ['web', 'admin_locale'], 'prefix' => config('app.admin_url')], function () {
|
||||
// notification
|
||||
Route::get('notifications', 'Webkul\Notification\Http\Controllers\Admin\NotificationController@index')->defaults('_config', [
|
||||
Route::group(['middleware' => ['web', 'admin', 'admin_locale'], 'prefix' => config('app.admin_url')], function () {
|
||||
Route::get('notifications', [NotificationController::class, 'index'])->defaults('_config', [
|
||||
'view' => 'admin::notifications.index',
|
||||
])->name('admin.notification.index');
|
||||
|
||||
// get notification
|
||||
Route::get('get-notifications', 'Webkul\Notification\Http\Controllers\Admin\NotificationController@getNotifications')
|
||||
Route::get('get-notifications', [NotificationController::class, 'getNotifications'])
|
||||
->name('admin.notification.get-notification');
|
||||
|
||||
//view order
|
||||
Route::get('viewed-notifications/{orderId}', 'Webkul\Notification\Http\Controllers\Admin\NotificationController@viewedNotifications')
|
||||
Route::get('viewed-notifications/{orderId}', [NotificationController::class, 'viewedNotifications'])
|
||||
->name('admin.notification.viewed-notification');
|
||||
|
||||
// read all notification
|
||||
Route::post('read-all-notifications', 'Webkul\Notification\Http\Controllers\Admin\NotificationController@readAllNotifications')
|
||||
Route::post('read-all-notifications', [NotificationController::class, 'readAllNotifications'])
|
||||
->name('admin.notification.read-all');
|
||||
});
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@
|
|||
<quantity-changer
|
||||
:control-name="'booking[qty][' + ticket.id + ']'"
|
||||
:validations="'required|numeric|min_value:0'"
|
||||
quantity="0"
|
||||
min-quantity="0">
|
||||
:quantity="defaultQty"
|
||||
:min-quantity="defaultQty">
|
||||
</quantity-changer>
|
||||
</div>
|
||||
|
||||
|
|
@ -61,6 +61,12 @@
|
|||
return {
|
||||
tickets: @json($bookingSlotHelper->getTickets($bookingProduct)),
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
defaultQty: function() {
|
||||
return this.tickets.length > 1 ? 0 : 1;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@
|
|||
<quantity-changer
|
||||
:control-name="'booking[qty][' + ticket.id + ']'"
|
||||
:validations="'required|numeric|min_value:0'"
|
||||
quantity="0"
|
||||
min-quantity="0">
|
||||
:quantity="defaultQty"
|
||||
:min-quantity="defaultQty">
|
||||
</quantity-changer>
|
||||
</div>
|
||||
|
||||
|
|
@ -61,6 +61,12 @@
|
|||
return {
|
||||
tickets: @json($bookingSlotHelper->getTickets($bookingProduct)),
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
defaultQty: function() {
|
||||
return this.tickets.length > 1 ? 0 : 1;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -30,8 +30,6 @@ class PageController extends Controller
|
|||
*/
|
||||
public function __construct(CmsRepository $cmsRepository)
|
||||
{
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->cmsRepository = $cmsRepository;
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@ class AccountController extends Controller
|
|||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('customer');
|
||||
|
||||
$this->_config = request('_config');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,8 +36,6 @@ class AddressController extends Controller
|
|||
*/
|
||||
public function __construct(CustomerAddressRepository $customerAddressRepository)
|
||||
{
|
||||
$this->middleware('customer');
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->customer = auth()->guard('customer')->user();
|
||||
|
|
|
|||
|
|
@ -54,8 +54,6 @@ class CustomerController extends Controller
|
|||
ProductReviewRepository $productReviewRepository,
|
||||
SubscribersListRepository $subscriptionRepository
|
||||
) {
|
||||
$this->middleware('customer');
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->customerRepository = $customerRepository;
|
||||
|
|
|
|||
|
|
@ -22,8 +22,6 @@ class SessionController extends Controller
|
|||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('customer')->except(['show', 'create']);
|
||||
|
||||
$this->_config = request('_config');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ return [
|
|||
],
|
||||
|
||||
'reviews' => [
|
||||
'empty' => 'You have not reviewed any of product yet',
|
||||
'empty' => 'You have not reviewed any product yet',
|
||||
],
|
||||
|
||||
'forget_password' => [
|
||||
|
|
|
|||
|
|
@ -8,14 +8,14 @@ use Webkul\Notification\Repositories\NotificationRepository;
|
|||
class NotificationController extends Controller
|
||||
{
|
||||
/**
|
||||
* Contains route related configuration
|
||||
* Contains route related configuration.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_config;
|
||||
|
||||
/**
|
||||
* NotificationRepository
|
||||
* Notification repository instance.
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
|
|
@ -30,8 +30,6 @@ class NotificationController extends Controller
|
|||
{
|
||||
$this->notificationRepository = $notificationRepository;
|
||||
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->_config = request('_config');
|
||||
}
|
||||
|
||||
|
|
@ -56,7 +54,7 @@ class NotificationController extends Controller
|
|||
|
||||
if (isset($params['page'])) {
|
||||
unset($params['page']);
|
||||
}
|
||||
}
|
||||
|
||||
if (count($params)) {
|
||||
$searchResults = $this->notificationRepository->getParamsData($params);
|
||||
|
|
@ -71,26 +69,26 @@ class NotificationController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Update the notification is readed or not
|
||||
* Update the notification is readed or not.
|
||||
*
|
||||
* @param int $orderId
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function viewedNotifications($orderId)
|
||||
{
|
||||
|
||||
if ($notification = $this->notificationRepository->where('order_id', $orderId)->first()) {
|
||||
$notification->read = 1;
|
||||
|
||||
$notification->save();
|
||||
|
||||
return redirect()->route('admin.sales.orders.view',$orderId);
|
||||
}
|
||||
return redirect()->route('admin.sales.orders.view', $orderId);
|
||||
}
|
||||
|
||||
abort(404);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the notification is readed or not
|
||||
* Update the notification is readed or not.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
|
|
@ -99,8 +97,8 @@ class NotificationController extends Controller
|
|||
$this->notificationRepository->where('read', 0)->update(['read' => 1]);
|
||||
|
||||
$params = [
|
||||
"limit" => 5,
|
||||
"read" => 0
|
||||
'limit' => 5,
|
||||
'read' => 0,
|
||||
];
|
||||
|
||||
$searchResults = $this->notificationRepository->getParamsData($params);
|
||||
|
|
@ -108,9 +106,7 @@ class NotificationController extends Controller
|
|||
return [
|
||||
'search_results' => $searchResults,
|
||||
'total_unread' => $this->notificationRepository->where('read', 0)->count(),
|
||||
'success_message' => trans('admin::app.notification.notification-marked-success')
|
||||
'success_message' => trans('admin::app.notification.notification-marked-success'),
|
||||
];
|
||||
|
||||
abort(404);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ class Bundle extends AbstractType
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $skipAttributes = ['price', 'cost', 'special_price', 'special_price_from', 'special_price_to', 'length', 'width', 'height', 'weight'];
|
||||
protected $skipAttributes = ['price', 'cost', 'special_price', 'special_price_from', 'special_price_to', 'length', 'width', 'height', 'weight', 'depth'];
|
||||
|
||||
/**
|
||||
* These blade files will be included in product edit page.
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ class Downloadable extends AbstractType
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $skipAttributes = ['length', 'width', 'height', 'weight', 'guest_checkout'];
|
||||
protected $skipAttributes = ['length', 'width', 'height', 'weight', 'depth', 'guest_checkout'];
|
||||
|
||||
/**
|
||||
* These blade files will be included in product edit page.
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ class Grouped extends AbstractType
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $skipAttributes = ['price', 'cost', 'special_price', 'special_price_from', 'special_price_to', 'length', 'width', 'height', 'weight'];
|
||||
protected $skipAttributes = ['price', 'cost', 'special_price', 'special_price_from', 'special_price_to', 'length', 'width', 'height', 'weight', 'depth'];
|
||||
|
||||
/**
|
||||
* These blade files will be included in product edit page.
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class Virtual extends AbstractType
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $skipAttributes = ['length', 'width', 'height', 'weight'];
|
||||
protected $skipAttributes = ['length', 'width', 'height', 'weight', 'depth'];
|
||||
|
||||
/**
|
||||
* These blade files will be included in product edit page.
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@ class DownloadableProductController extends Controller
|
|||
DownloadableLinkPurchasedRepository $downloadableLinkPurchasedRepository
|
||||
)
|
||||
{
|
||||
$this->middleware('customer');
|
||||
|
||||
$this->downloadableLinkPurchasedRepository = $downloadableLinkPurchasedRepository;
|
||||
|
||||
parent::__construct();
|
||||
|
|
|
|||
|
|
@ -43,8 +43,6 @@ class OrderController extends Controller
|
|||
OrderRepository $orderRepository,
|
||||
InvoiceRepository $invoiceRepository
|
||||
) {
|
||||
$this->middleware('customer');
|
||||
|
||||
$this->currentCustomer = auth()->guard('customer')->user();
|
||||
|
||||
$this->orderRepository = $orderRepository;
|
||||
|
|
|
|||
|
|
@ -82,23 +82,26 @@ class ReviewController extends Controller
|
|||
'title' => 'required',
|
||||
]);
|
||||
|
||||
$data = request()->all();
|
||||
$product = $this->productRepository->find($id);
|
||||
|
||||
$data = array_merge(request()->all(), [
|
||||
'status' => 'pending',
|
||||
'product_id' => $id,
|
||||
]);
|
||||
|
||||
if (auth()->guard('customer')->user()) {
|
||||
$data['customer_id'] = auth()->guard('customer')->user()->id;
|
||||
|
||||
$data['name'] = auth()->guard('customer')->user()->first_name . ' ' . auth()->guard('customer')->user()->last_name;
|
||||
}
|
||||
|
||||
$data['status'] = 'pending';
|
||||
$data['product_id'] = $id;
|
||||
|
||||
$review = $this->productReviewRepository->create($data);
|
||||
|
||||
$this->productReviewImageRepository->uploadImages($data, $review);
|
||||
|
||||
session()->flash('success', trans('shop::app.response.submit-success', ['name' => 'Product Review']));
|
||||
|
||||
return redirect()->route($this->_config['redirect']);
|
||||
return redirect()->route('shop.productOrCategory.index', $product->url_key);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -147,10 +150,8 @@ class ReviewController extends Controller
|
|||
{
|
||||
$reviews = auth()->guard('customer')->user()->all_reviews;
|
||||
|
||||
if ($reviews->count() > 0) {
|
||||
foreach ($reviews as $review) {
|
||||
$this->productReviewRepository->delete($review->id);
|
||||
}
|
||||
foreach ($reviews as $review) {
|
||||
$this->productReviewRepository->delete($review->id);
|
||||
}
|
||||
|
||||
session()->flash('success', trans('shop::app.reviews.delete-all'));
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@ class TaxController extends Controller
|
|||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->_config = request('_config');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Icon-Language-color">
|
||||
<circle id="Ellipse 77" cx="16" cy="16" r="14" stroke="#0041ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<ellipse id="Ellipse 78" cx="16" cy="16" rx="5" ry="14" stroke="#0041ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="Vector 148" d="M3 12H29" stroke="#0041ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="Vector 149" d="M3 21H29" stroke="#0041ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 642 B |
|
|
@ -0,0 +1,8 @@
|
|||
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Icon-Language-color">
|
||||
<circle id="Ellipse 77" cx="16" cy="16" r="14" stroke="#8184AB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<ellipse id="Ellipse 78" cx="16" cy="16" rx="5" ry="14" stroke="#8184AB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="Vector 148" d="M3 12H29" stroke="#8184AB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="Vector 149" d="M3 21H29" stroke="#8184AB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 642 B |
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/ui.js": "/js/ui.js?id=a45138406e848b98ad5d",
|
||||
"/css/ui.css": "/css/ui.css?id=8d793a6d94eb4db0298b"
|
||||
"/js/ui.js": "/js/ui.js?id=e136e7c7f62341fd089a",
|
||||
"/css/ui.css": "/css/ui.css?id=c8a7ade09358a1d61a4a"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M39 19C39 27.2843 24 44 24 44C24 44 9 27.2843 9 19C9 10.7157 15.7157 4 24 4C32.2843 4 39 10.7157 39 19Z" stroke="#0041FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<circle cx="24" cy="19" r="7" stroke="#0041FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 413 B |
|
|
@ -1,4 +0,0 @@
|
|||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M39 19C39 27.2843 24 44 24 44C24 44 9 27.2843 9 19C9 10.7157 15.7157 4 24 4C32.2843 4 39 10.7157 39 19Z" stroke="#8184AB" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<circle cx="24" cy="19" r="7" stroke="#8184AB" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 413 B |
|
|
@ -1,4 +0,0 @@
|
|||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M39 19C39 27.2843 24 44 24 44C24 44 9 27.2843 9 19C9 10.7157 15.7157 4 24 4C32.2843 4 39 10.7157 39 19Z" stroke="#8184AB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<circle cx="24" cy="19" r="7" stroke="#8184AB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 413 B |
|
|
@ -0,0 +1,8 @@
|
|||
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Icon-Language-color">
|
||||
<circle id="Ellipse 77" cx="16" cy="16" r="14" stroke="#0041ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<ellipse id="Ellipse 78" cx="16" cy="16" rx="5" ry="14" stroke="#0041ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="Vector 148" d="M3 12H29" stroke="#0041ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="Vector 149" d="M3 21H29" stroke="#0041ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 642 B |
|
|
@ -0,0 +1,8 @@
|
|||
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Icon-Language-color">
|
||||
<circle id="Ellipse 77" cx="16" cy="16" r="14" stroke="#8184AB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<ellipse id="Ellipse 78" cx="16" cy="16" rx="5" ry="14" stroke="#8184AB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="Vector 148" d="M3 12H29" stroke="#8184AB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="Vector 149" d="M3 21H29" stroke="#8184AB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 642 B |
|
|
@ -689,6 +689,7 @@
|
|||
<td
|
||||
class="actions"
|
||||
style="white-space: nowrap; width: 100px"
|
||||
v-if="enableActions"
|
||||
:data-value="translations.actions"
|
||||
>
|
||||
<div class="action">
|
||||
|
|
|
|||
|
|
@ -811,7 +811,8 @@ h5 {
|
|||
margin-left: -34px;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
top: 51%;
|
||||
top: 50%;
|
||||
left: 70%;
|
||||
}
|
||||
|
||||
.cross-icon {
|
||||
|
|
@ -1205,7 +1206,7 @@ modal {
|
|||
.modal-overlay {
|
||||
display: none;
|
||||
overflow-y: auto;
|
||||
z-index: 10;
|
||||
z-index: 1001;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
|
|
@ -1227,7 +1228,7 @@ modal {
|
|||
left: 50%;
|
||||
margin-left: -300px;
|
||||
position: fixed;
|
||||
z-index: 11;
|
||||
z-index: 1002;
|
||||
@include box-shadow(
|
||||
0px 15px 25px 0px rgba(0, 0, 0, 0.03),
|
||||
0px 20px 45px 5px rgba(0, 0, 0, 0.2)
|
||||
|
|
|
|||
|
|
@ -162,14 +162,9 @@
|
|||
|
||||
.locale-icon {
|
||||
@extend %menu-properties;
|
||||
background-image: url("../images/Local-Icon.svg");
|
||||
}
|
||||
|
||||
.locale-icon-bold {
|
||||
@extend %menu-properties;
|
||||
background-image: url("../images/Local-Icon-bold.svg");
|
||||
height: 26px;
|
||||
background-image: url("../images/Locale-Icon.svg");
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
}
|
||||
|
||||
.store-icon {
|
||||
|
|
|
|||
|
|
@ -40,8 +40,6 @@ class RoleController extends Controller
|
|||
RoleRepository $roleRepository,
|
||||
AdminRepository $adminRepository
|
||||
) {
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->roleRepository = $roleRepository;
|
||||
|
||||
$this->adminRepository = $adminRepository;
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@ class SessionController extends Controller
|
|||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('admin')->except(['create', 'store']);
|
||||
|
||||
$this->_config = request('_config');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -49,8 +49,6 @@ class UserController extends Controller
|
|||
$this->roleRepository = $roleRepository;
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->middleware('guest', ['except' => 'destroy']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
"/js/jquery-ez-plus.js": "/js/jquery-ez-plus.js?id=ba3c7cada62de152fd8fce211d0b1b70",
|
||||
"/js/velocity-core.js": "/js/velocity-core.js?id=73cc7c3501570ebe9151c72d954bd97d",
|
||||
"/js/velocity.js": "/js/velocity.js?id=f655ac65cbd1aa549cba57f77b9a4344",
|
||||
"/js/manifest.js": "/js/manifest.js?id=e069a8f952a02ea0f290bcca8fab930e",
|
||||
"/js/components.js": "/js/components.js?id=13ebf112e40292178d2386143e9d75cd",
|
||||
"/css/velocity.css": "/css/velocity.css?id=bba65352574a5ae54c4a83a2cc04e3ee",
|
||||
"/css/velocity-admin.css": "/css/velocity-admin.css?id=b67a82956e53163b5e3ff45a44f9778f",
|
||||
"/images/icon-calendar.svg": "/images/icon-calendar.svg?id=870d0f733a58377422766f3152e15486",
|
||||
"/images/icon-camera.svg": "/images/icon-camera.svg?id=b2fd2f9e17e1ccee96e29f6c6cec91e8",
|
||||
"/images/icon-crossed.svg": "/images/icon-crossed.svg?id=c72c3c1ef790bd4fd99376bd4ba7bd5b",
|
||||
"/images/icon-eye.svg": "/images/icon-eye.svg?id=9345f20b862e21aa30c675df49d56fd5",
|
||||
"/images/icon-search.svg": "/images/icon-search.svg?id=a5f38a895551b8a015b24952561263f1"
|
||||
"/js/jquery-ez-plus.js": "/js/jquery-ez-plus.js?id=ba3c7cada62de152fd8f",
|
||||
"/js/velocity-core.js": "/js/velocity-core.js?id=73cc7c3501570ebe9151",
|
||||
"/js/velocity.js": "/js/velocity.js?id=f655ac65cbd1aa549cba",
|
||||
"/js/manifest.js": "/js/manifest.js?id=e069a8f952a02ea0f290",
|
||||
"/js/components.js": "/js/components.js?id=13ebf112e40292178d23",
|
||||
"/css/velocity.css": "/css/velocity.css?id=7290c10f17cb95070a07",
|
||||
"/css/velocity-admin.css": "/css/velocity-admin.css?id=b67a82956e53163b5e3f",
|
||||
"/images/icon-calendar.svg": "/images/icon-calendar.svg?id=870d0f733a5837742276",
|
||||
"/images/icon-camera.svg": "/images/icon-camera.svg?id=b2fd2f9e17e1ccee96e2",
|
||||
"/images/icon-crossed.svg": "/images/icon-crossed.svg?id=c72c3c1ef790bd4fd993",
|
||||
"/images/icon-eye.svg": "/images/icon-eye.svg?id=9345f20b862e21aa30c6",
|
||||
"/images/icon-search.svg": "/images/icon-search.svg?id=a5f38a895551b8a015b2"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,8 +128,6 @@ class CartController extends Controller
|
|||
{
|
||||
$result = Cart::removeItem($itemId);
|
||||
|
||||
session()->forget('cart');
|
||||
|
||||
if ($result) {
|
||||
$response = [
|
||||
'status' => 'success',
|
||||
|
|
|
|||
|
|
@ -952,8 +952,8 @@
|
|||
.table {
|
||||
table {
|
||||
tr {
|
||||
margin-bottom: 20px;
|
||||
border: 1px solid #cccccc;
|
||||
height: auto !important;
|
||||
|
||||
td {
|
||||
width: auto;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,11 @@
|
|||
padding: 12px 10px;
|
||||
background: #f8f9fa;
|
||||
color: $font-color;
|
||||
border-right: 1px solid #ccc !important;
|
||||
|
||||
&:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
}
|
||||
|
||||
tbody td {
|
||||
|
|
@ -126,6 +131,7 @@
|
|||
grid-template-columns: auto auto;
|
||||
column-gap: 10px;
|
||||
align-items: end;
|
||||
position: relative;
|
||||
|
||||
.filter-right {
|
||||
justify-self: end;
|
||||
|
|
@ -135,10 +141,27 @@
|
|||
align-items: end;
|
||||
|
||||
.control-group {
|
||||
margin-bottom: 10px;
|
||||
|
||||
.control {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-list {
|
||||
right: 0;
|
||||
padding: 15px;
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.apply-filter {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -433,22 +433,28 @@ body {
|
|||
.text-right {
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
.text-left {
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
.pr0 {
|
||||
padding-left: 0 !important;
|
||||
padding-right: 15px !important;
|
||||
}
|
||||
|
||||
.pl0 {
|
||||
padding-right: 0px !important;
|
||||
}
|
||||
|
||||
.pl10 {
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
|
||||
.rango-arrow-right::before {
|
||||
content: '\E907';
|
||||
}
|
||||
|
||||
.styled-select {
|
||||
+ .select-icon-container {
|
||||
.select-icon {
|
||||
|
|
@ -457,21 +463,61 @@ body {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ml15 {
|
||||
margin-right: 15px !important;
|
||||
}
|
||||
|
||||
.pl30 {
|
||||
padding-right: 30px;
|
||||
}
|
||||
|
||||
.ml-5 {
|
||||
margin-right: 3rem !important;
|
||||
}
|
||||
|
||||
.mr15 {
|
||||
margin-left: 15px !important;
|
||||
}
|
||||
|
||||
.ml5 {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.payment-methods {
|
||||
.pl40 {
|
||||
padding-right: 40px !important;
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
#top #account .dropdown-list {
|
||||
left: 10px;
|
||||
right: unset !important;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.VueCarousel {
|
||||
.VueCarousel-inner {
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
}
|
||||
|
||||
.quantity {
|
||||
.input-btn-group {
|
||||
button {
|
||||
&.increase {
|
||||
border-right: 0;
|
||||
border-left: 1px solid #dcdcdc;
|
||||
}
|
||||
|
||||
&.decrease {
|
||||
border-left: 0;
|
||||
border-right: 1px solid #dcdcdc;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -594,19 +640,4 @@ body {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
body.rtl {
|
||||
.payment-methods {
|
||||
.pl40 {
|
||||
padding-right: 40px !important;
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
#top #account .dropdown-list {
|
||||
left: 10px;
|
||||
right: unset !important;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
@push('scripts')
|
||||
<script type="text/x-template" id="catalog-product-template">
|
||||
<div>
|
||||
<?php $catalogType = old($locale)['catalog_type'] ?? (isset($content) ? $content->translate($locale) ? $content->translate($locale)['catalog_type'] : '' : ''); ?>
|
||||
<?php $catalogType = old($locale)['catalog_type'] ?? (isset($content) ? ($content->translate($locale) ? $content->translate($locale)['catalog_type'] : '') : ''); ?>
|
||||
|
||||
<div class="control-group" :class="[errors.has('{{$locale}}[catalog_type]') ? 'has-error' : '']">
|
||||
<label for="catalog_type" class="required">
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
@foreach ($comparableAttributes as $attribute)
|
||||
<tr>
|
||||
<td class="header">
|
||||
<span class="fs16">{{ isset($attribute['name']) ? $attribute['name'] : $attribute['admin_name'] }}</span>
|
||||
<span class="fs16 font-weight-bold">{{ isset($attribute['name']) ? $attribute['name'] : $attribute['admin_name'] }}</span>
|
||||
</td>
|
||||
|
||||
<td :key="`title-${index}`" v-for="(product, index) in products">
|
||||
|
|
|
|||