Merge with master
This commit is contained in:
commit
c5fabf9c2a
|
|
@ -14,6 +14,7 @@ class Kernel extends HttpKernel
|
|||
* @var array
|
||||
*/
|
||||
protected $middleware = [
|
||||
// \App\Http\Middleware\TrustHosts::class,
|
||||
\App\Http\Middleware\TrustProxies::class,
|
||||
\Illuminate\Http\Middleware\HandleCors::class,
|
||||
\Webkul\Core\Http\Middleware\CheckForMaintenanceMode::class,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Http\Middleware\TrustHosts as Middleware;
|
||||
|
||||
class TrustHosts extends Middleware
|
||||
{
|
||||
/**
|
||||
* Get the host patterns that should be trusted.
|
||||
*
|
||||
* @return array<int, string|null>
|
||||
*/
|
||||
public function hosts()
|
||||
{
|
||||
return [
|
||||
$this->allSubdomainsOfApplicationUrl(),
|
||||
];
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Pusher JavaScript Library v7.2.0
|
||||
* Pusher JavaScript Library v7.4.0
|
||||
* https://pusher.com/
|
||||
*
|
||||
* Copyright 2020, Pusher
|
||||
|
|
@ -18,13 +18,13 @@
|
|||
*/
|
||||
|
||||
/*!
|
||||
* Vue.js v2.7.7
|
||||
* Vue.js v2.7.10
|
||||
* (c) 2014-2022 Evan You
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.6.0
|
||||
* jQuery JavaScript Library v3.6.1
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2021-03-02T17:08Z
|
||||
* Date: 2022-08-26T17:52Z
|
||||
*/
|
||||
|
||||
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/admin.js": "/js/admin.js?id=342ead48e2eb8d7dc7a3",
|
||||
"/css/admin.css": "/css/admin.css?id=bd6f253e4db4d12d1a57"
|
||||
"/js/admin.js": "/js/admin.js?id=6634340c498715fb5f58",
|
||||
"/css/admin.css": "/css/admin.css?id=253e4340dd4c55e09cba"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -165,6 +165,11 @@ return [
|
|||
'name' => 'admin::app.acl.mass-delete',
|
||||
'route' => 'admin.catalog.categories.massdelete',
|
||||
'sort' => 4,
|
||||
], [
|
||||
'key' => 'catalog.categories.mass-update',
|
||||
'name' => 'admin::app.acl.mass-update',
|
||||
'route' => 'admin.catalog.categories.mass-update',
|
||||
'sort' => 4,
|
||||
], [
|
||||
'key' => 'catalog.attributes',
|
||||
'name' => 'admin::app.acl.attributes',
|
||||
|
|
|
|||
|
|
@ -174,5 +174,16 @@ class CategoryDataGrid extends DataGrid
|
|||
'action' => route('admin.catalog.categories.massdelete'),
|
||||
'method' => 'POST',
|
||||
]);
|
||||
|
||||
$this->addMassAction([
|
||||
'type' => 'update',
|
||||
'label' => trans('admin::app.datagrid.update-status'),
|
||||
'action' => route('admin.catalog.categories.mass-update'),
|
||||
'method' => 'POST',
|
||||
'options' => [
|
||||
trans('admin::app.datagrid.active') => 1,
|
||||
trans('admin::app.datagrid.inactive') => 0,
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ class CustomerDataGrid extends DataGrid
|
|||
$this->addFilter('phone', 'customers.phone');
|
||||
$this->addFilter('gender', 'customers.gender');
|
||||
$this->addFilter('status', 'status');
|
||||
$this->addFilter('is_suspended', 'customers.is_suspended');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -158,6 +159,16 @@ class CustomerDataGrid extends DataGrid
|
|||
return $html;
|
||||
},
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'is_suspended',
|
||||
'label' => trans('admin::app.customers.customers.suspended'),
|
||||
'type' => 'boolean',
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
'visibility' => false,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -215,8 +215,7 @@ $(function() {
|
|||
localStorage.setItem('bagisto-sidebar', this.isMenuOpen);
|
||||
},
|
||||
|
||||
checkMode(){
|
||||
|
||||
checkMode() {
|
||||
this.isDarkMode = ! this.isDarkMode;
|
||||
|
||||
localStorage.setItem('dark-mode', this.isDarkMode);
|
||||
|
|
@ -233,7 +232,7 @@ $(function() {
|
|||
return false;
|
||||
},
|
||||
|
||||
CheckIsMenuOpen: function(){
|
||||
CheckIsMenuOpen: function() {
|
||||
return this.isMenuOpen;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,23 +22,20 @@ export default {
|
|||
},
|
||||
|
||||
methods: {
|
||||
|
||||
toggle: function () {
|
||||
|
||||
this.$root.checkMode();
|
||||
|
||||
this.toggleBodyClass();
|
||||
},
|
||||
|
||||
toggleBodyClass: function(){
|
||||
|
||||
let element = document.body;
|
||||
|
||||
element.classList.toggle("dark-mode");
|
||||
|
||||
if(this.buttonText == this.darkMode){
|
||||
if (this.buttonText == this.darkMode) {
|
||||
this.buttonText = this.lightMode;
|
||||
}else{
|
||||
} else {
|
||||
this.buttonText = this.darkMode;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,9 +19,12 @@ export default {
|
|||
toggle: function () {
|
||||
this.$root.toggleMenu();
|
||||
|
||||
if(this.$root.isMenuOpen && this.iconClass == 'accordian-right-icon'){
|
||||
if (
|
||||
this.$root.isMenuOpen
|
||||
&& this.iconClass == 'accordian-right-icon'
|
||||
) {
|
||||
this.iconClass = this.leftIconClass;
|
||||
}else{
|
||||
} else {
|
||||
this.iconClass = this.rightIconClass;
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -91,6 +91,10 @@ export default {
|
|||
closed: {
|
||||
icon: 'closed-icon',
|
||||
message: 'Order Closed'
|
||||
},
|
||||
pending_payment: {
|
||||
icon: 'pending-icon',
|
||||
message: 'Payment Pending'
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -731,6 +731,7 @@ return [
|
|||
'image' => 'صورة',
|
||||
'filterable-attributes' => 'سمات قابلة للفلترة',
|
||||
'attributes' => 'السمات',
|
||||
'mass-update-success' => 'تم تحديث جميع الفئات المحددة بنجاح',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1658,6 +1659,7 @@ return [
|
|||
'canceled' => 'تم إلغاء الطلب',
|
||||
'pending' => 'انتظار الطلب',
|
||||
'processing' => 'معالجة الطلب',
|
||||
'pending_payment' => 'في انتظار الدفع',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -737,6 +737,8 @@ return [
|
|||
'attributes' => 'Attributes',
|
||||
'image-size' => 'Image resolution should be like 300px X 168px',
|
||||
'image-size-logo' => 'Image resolution should be like 20px X 20px',
|
||||
'mass-update-success' => 'All the selected categories have been updated successfully',
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1676,6 +1678,7 @@ return [
|
|||
'canceled' => 'Order Canceled',
|
||||
'pending' => 'Order Pending',
|
||||
'processing' => 'Order Processing',
|
||||
'pending_payment' => 'Pending Payment',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -723,6 +723,7 @@ return [
|
|||
'image' => 'Bild',
|
||||
'filterable-attributes' => 'Filterbare Attribute',
|
||||
'attributes' => 'Attribute',
|
||||
'mass-update-success' => 'Alle ausgewählten Kategorien wurden erfolgreich aktualisiert',
|
||||
],
|
||||
],
|
||||
'configuration' =>
|
||||
|
|
@ -1635,6 +1636,7 @@ return [
|
|||
'canceled' => 'Bestellung storniert',
|
||||
'pending' => 'Bestellung ausstehend',
|
||||
'processing' => 'Auftragsabwicklung',
|
||||
'pending_payment' => 'Ausstehende Zahlung',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -737,6 +737,7 @@ return [
|
|||
'attributes' => 'Attributes',
|
||||
'image-size' => 'Image resolution should be like 300px X 168px',
|
||||
'image-size-logo' => 'Image resolution should be like 20px X 20px',
|
||||
'mass-update-success' => 'All the selected categories have been updated successfully',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1633,6 +1634,7 @@ return [
|
|||
'logo-size' => 'Image resolution should be like 112px X 41px',
|
||||
'favicon-size' => 'Image resolution should be like 16px X 16px',
|
||||
'invoice-logo-size' => 'Image resolution should be like 192px X 50px',
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1676,7 +1678,7 @@ return [
|
|||
'canceled' => 'Order Canceled',
|
||||
'pending' => 'Order Pending',
|
||||
'processing' => 'Order Processing',
|
||||
'pending payment' => 'Pending Payment',
|
||||
'pending_payment' => 'Pending Payment',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -733,6 +733,7 @@ return [
|
|||
'image' => 'Imagen',
|
||||
'filterable-attributes' => 'Atributos filtrables',
|
||||
'attributes' => 'Atributos',
|
||||
'mass-update-success' => 'Todas las categorías seleccionadas se han actualizado correctamente',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1656,6 +1657,7 @@ return [
|
|||
'canceled' => 'Orden cancelada',
|
||||
'pending' => 'Orden pendiente',
|
||||
'processing' => 'procesando orden',
|
||||
'pending_payment' => 'Pago pendiente',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -716,6 +716,7 @@ return [
|
|||
'image' => 'تصویر',
|
||||
'filterable-attributes' => 'ویژگی های فیلتر',
|
||||
'attributes' => 'ویژگی های',
|
||||
'mass-update-success' => 'همه دسته های انتخابی با موفقیت به روز شدند',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1635,6 +1636,7 @@ return [
|
|||
'canceled' => 'سفارش لغو شد',
|
||||
'pending' => 'سفارش در انتظار',
|
||||
'processing' => 'پردازش سفارش',
|
||||
'pending_payment' => 'در انتظار پرداخت',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -736,6 +736,7 @@ return [
|
|||
'image' => 'Image',
|
||||
'filterable-attributes' => 'Attributs filtrables',
|
||||
'attributes' => 'Les attributs',
|
||||
'mass-update-success' => 'Toutes les catégories sélectionnées ont été mises à jour avec succès',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1672,6 +1673,7 @@ return [
|
|||
'canceled' => 'Tilaus peruutettu',
|
||||
'pending' => 'Tilaus vireillä',
|
||||
'processing' => 'Tilausta Käsitellään',
|
||||
'pending_payment' => 'En attente de paiement',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -737,6 +737,7 @@ return [
|
|||
'attributes' => 'Attributes',
|
||||
'image-size' => 'Image resolution should be like 300px X 168px',
|
||||
'image-size-logo' => 'Image resolution should be like 20px X 20px',
|
||||
'mass-update-success' => 'All the selected categories have been updated successfully',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1676,6 +1677,7 @@ return [
|
|||
'canceled' => 'Order Canceled',
|
||||
'pending' => 'Order Pending',
|
||||
'processing' => 'Order Processing',
|
||||
'pending_payment' => 'Pending Payment',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -734,6 +734,7 @@ return [
|
|||
'attributes' => 'गुण',
|
||||
'image-size' => 'इमेज रेजोल्यूशन 300px X 168px जैसा होना चाहिए',
|
||||
'image-size-logo' => 'इमेज रेजोल्यूशन 20px X 20px जैसा होना चाहिए',
|
||||
'mass-update-success' => 'सभी चयनित श्रेणियों को सफलतापूर्वक अपडेट कर दिया गया है',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1673,6 +1674,7 @@ return [
|
|||
'canceled' => 'आदेश रद्द',
|
||||
'pending' => 'आदेश लम्बित',
|
||||
'processing' => 'आदेश प्रसंस्करण',
|
||||
'pending_payment' => 'En attente de paiement',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
@ -721,6 +721,7 @@ return [
|
|||
'image' => 'Immagine',
|
||||
'filterable-attributes' => 'Attributi filtrabili',
|
||||
'attributes' => 'Attributi',
|
||||
'mass-update-success' => 'Tutte le categorie selezionate sono state aggiornate con successo',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1643,6 +1644,7 @@ return [
|
|||
'canceled' => 'Ordine annullato',
|
||||
'pending' => 'ordine pendente',
|
||||
'processing' => "Elaborazione dell'ordine",
|
||||
'pending_payment' => 'In attesa di Pagamento',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -737,6 +737,7 @@ return [
|
|||
'attributes' => 'Attributes',
|
||||
'image-size' => 'Image resolution should be like 300px X 168px',
|
||||
'image-size-logo' => 'Image resolution should be like 20px X 20px',
|
||||
'mass-update-success' => 'All the selected categories have been updated successfully',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1676,6 +1677,7 @@ return [
|
|||
'canceled' => 'Order Canceled',
|
||||
'pending' => 'Order Pending',
|
||||
'processing' => 'Order Processing',
|
||||
'pending_payment' => 'Pending Payment',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -715,6 +715,7 @@ return [
|
|||
'image' => 'Afbeelding',
|
||||
'filterable-attributes' => 'Filtreerbare kenmerken',
|
||||
'attributes' => 'Attributen',
|
||||
'mass-update-success' => 'Alle geselecteerde categorieën zijn met succes bijgewerkt',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1635,6 +1636,7 @@ return [
|
|||
'canceled' => 'Bestelling geannuleerd',
|
||||
'pending' => 'Order in behandeling',
|
||||
'processing' => 'Orderverwerking',
|
||||
'pending_payment' => 'In afwachting van betaling',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -716,6 +716,7 @@ return [
|
|||
'filterable-attributes' => '
|
||||
„filterable-atrybuty” => „Filtrowalne atrybuty',
|
||||
'attributes' => 'Atrybuty',
|
||||
'mass-update-success' => 'Wszystkie wybrane kategorie zostały pomyślnie zaktualizowane',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1624,6 +1625,7 @@ return [
|
|||
'canceled' => 'Zamówienie anulowane',
|
||||
'pending' => 'Zamówienie w trakcie realizacji',
|
||||
'processing' => 'przetwarzanie zamówienia',
|
||||
'pending_payment' => 'oczekująca płatność',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -714,6 +714,7 @@ return [
|
|||
'image' => 'Imagem',
|
||||
'filterable-attributes' => 'Atributos filtráveis',
|
||||
'attributes' => 'Atributos',
|
||||
'mass-update-success' => 'Todas as categorias selecionadas foram atualizadas com sucesso',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1638,6 +1639,7 @@ return [
|
|||
'canceled' => 'Pedido cancelado',
|
||||
'pending' => 'pedido pendente',
|
||||
'processing' => 'processamento de pedido',
|
||||
'pending_payment' => 'Pagamento Pendente',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -737,6 +737,7 @@ return [
|
|||
'attributes' => 'Attributes',
|
||||
'image-size' => 'Image resolution should be like 300px X 168px',
|
||||
'image-size-logo' => 'Image resolution should be like 20px X 20px',
|
||||
'mass-update-success' => 'All the selected categories have been updated successfully',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1676,6 +1677,7 @@ return [
|
|||
'canceled' => 'Order Canceled',
|
||||
'pending' => 'Order Pending',
|
||||
'processing' => 'Order Processing',
|
||||
'pending_payment' => 'Pending Payment',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -737,6 +737,7 @@ return [
|
|||
'attributes' => 'Attributes',
|
||||
'image-size' => 'Image resolution should be like 300px X 168px',
|
||||
'image-size-logo' => 'Image resolution should be like 20px X 20px',
|
||||
'mass-update-success' => 'All the selected categories have been updated successfully',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1676,6 +1677,7 @@ return [
|
|||
'canceled' => 'Order Canceled',
|
||||
'pending' => 'Order Pending',
|
||||
'processing' => 'Order Processing',
|
||||
'pending_payment' => 'Pending Payment',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -721,6 +721,7 @@ return [
|
|||
'image' => 'Görsel',
|
||||
'filterable-attributes' => 'Filtrelenebilir Nitelikler',
|
||||
'attributes' => 'Nitelikler',
|
||||
'mass-update-success' => 'All the selected categories have been updated successfully',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1590,6 +1591,7 @@ return [
|
|||
'set-order-status' => 'Faturayı oluşturduktan sonra sipariş durumunu ayarlayın.',
|
||||
'generate-invoice-applicable' => 'Otomatik fatura oluştur etkinse geçerlidir',
|
||||
'records-found' => 'Kayıt(lar) bulundu',
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1633,6 +1635,7 @@ return [
|
|||
'canceled' => 'Sipariş İptal Edildi',
|
||||
'pending' => 'Sipariş beklemede',
|
||||
'processing' => 'sipariş düzenleniyor',
|
||||
'pending_payment' => 'bekleyen ödeme',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -716,6 +716,7 @@ return [
|
|||
'image' => '图片',
|
||||
'filterable-attributes' => '可过滤属性',
|
||||
'attributes' => '属性列表',
|
||||
'mass-update-success' => '所有選擇的類別都已成功更新',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1630,6 +1631,7 @@ return [
|
|||
'canceled' => '订单取消',
|
||||
'pending' => '订单待处理',
|
||||
'processing' => '订单处理',
|
||||
'pending_payment' => '待付款',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -12,12 +12,14 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a
|
||||
href="{{ route('admin.catalog.attributes.create') }}"
|
||||
class="btn btn-lg btn-primary"
|
||||
>
|
||||
{{ __('admin::app.catalog.attributes.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('catalog.attributes.create'))
|
||||
<a
|
||||
href="{{ route('admin.catalog.attributes.create') }}"
|
||||
class="btn btn-lg btn-primary"
|
||||
>
|
||||
{{ __('admin::app.catalog.attributes.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,12 +16,14 @@ $locale = core()->getRequestedLocaleCode();
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a
|
||||
href="{{ route('admin.catalog.categories.create') }}"
|
||||
class="btn btn-lg btn-primary"
|
||||
>
|
||||
{{ __('admin::app.catalog.categories.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('catalog.categories.create'))
|
||||
<a
|
||||
href="{{ route('admin.catalog.categories.create') }}"
|
||||
class="btn btn-lg btn-primary"
|
||||
>
|
||||
{{ __('admin::app.catalog.categories.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.catalog.families.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.catalog.families.add-family-btn-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('catalog.families.create'))
|
||||
<a href="{{ route('admin.catalog.families.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.catalog.families.add-family-btn-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
{!! view_render_event('bagisto.admin.catalog.product.edit_form_accordian.images.controls.before', ['product' => $product]) !!}
|
||||
|
||||
<div class="control-group {{ $errors->has('images.files.*') ? 'has-error' : '' }}">
|
||||
<label>{{ __('admin::app.catalog.categories.image') }}</label>
|
||||
<label class="required">{{ __('admin::app.catalog.categories.image') }}</label>
|
||||
|
||||
<product-image></product-image>
|
||||
|
||||
|
|
|
|||
|
|
@ -19,10 +19,11 @@
|
|||
{{ __('admin::app.export.export') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<a href="{{ route('admin.catalog.products.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.catalog.products.add-product-btn-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('catalog.products.create'))
|
||||
<a href="{{ route('admin.catalog.products.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.catalog.products.add-product-btn-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -19,10 +19,11 @@
|
|||
{{ __('admin::app.export.export') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<a href="{{ route('admin.cms.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.cms.pages.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('cms.pages.create'))
|
||||
<a href="{{ route('admin.cms.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.cms.pages.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,9 +16,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
@if (bouncer()->hasPermission('customers.addresses.create '))
|
||||
<a href="{{ route('admin.customer.addresses.create', ['id' => $customer->id]) }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.customers.addresses.create-btn-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.groups.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.customers.groups.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('customers.groups.create'))
|
||||
<a href="{{ route('admin.groups.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.customers.groups.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -19,10 +19,11 @@
|
|||
{{ __('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>
|
||||
@if (bouncer()->hasPermission('customers.customers.create'))
|
||||
<a href="{{ route('admin.customer.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.customers.customers.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@
|
|||
'canceled'=> trans('admin::app.notification.order-status-messages.canceled'),
|
||||
'closed' => trans('admin::app.notification.order-status-messages.closed'),
|
||||
'completed'=> trans('admin::app.notification.order-status-messages.completed'),
|
||||
'processing' => trans('admin::app.notification.order-status-messages.processing')
|
||||
'processing' => trans('admin::app.notification.order-status-messages.processing'),
|
||||
'pending_payment' => trans('admin::app.notification.order-status-messages.pending_payment')
|
||||
];
|
||||
$allLocales = core()->getAllLocales()->pluck('name', 'code');
|
||||
@endphp
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.campaigns.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.campaigns.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('marketing.email-marketing.campaigns.create'))
|
||||
<a href="{{ route('admin.campaigns.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.campaigns.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.events.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.events.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('marketing.email-marketing.events.create'))
|
||||
<a href="{{ route('admin.events.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.events.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.email-templates.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.templates.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('marketing.email-marketing.email-templates.create'))
|
||||
<a href="{{ route('admin.email-templates.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.templates.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -18,9 +18,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.cart-rules.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.promotions.cart-rules.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('marketing.promotions.cart-rules.create'))
|
||||
<a href="{{ route('admin.cart-rules.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.promotions.cart-rules.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -218,9 +218,9 @@
|
|||
</div>
|
||||
|
||||
<div v-else>
|
||||
<div class="control-group" :class="[errors.has('value') ? 'has-error' : '']" v-if="matchedAttribute.type == 'text' || matchedAttribute.type == 'price' || matchedAttribute.type == 'decimal' || matchedAttribute.type == 'integer'">
|
||||
<input v-validate="matchedAttribute.type == 'price' ? 'decimal:2' : '' || matchedAttribute.type == 'decimal' ? 'decimal:2' : '' || matchedAttribute.type == 'integer' ? 'decimal:2' : '' || matchedAttribute.type == 'text' ? 'alpha_num' : ''" class="control" :name="['conditions[' + index + '][value]']" v-model="condition.value" name="value"/>
|
||||
<span class="control-error" v-if="errors.has('value')" v-text="errors.first('value')"></span>
|
||||
<div class="control-group" :class="[errors.has('conditions[' + index + '][value]') ? 'has-error' : '']" v-if="matchedAttribute.type == 'text' || matchedAttribute.type == 'price' || matchedAttribute.type == 'decimal' || matchedAttribute.type == 'integer'">
|
||||
<input v-validate="matchedAttribute.type == 'price' ? 'decimal:2' : '' || matchedAttribute.type == 'decimal' ? 'decimal:2' : '' || matchedAttribute.type == 'integer' ? 'decimal:2' : '' || matchedAttribute.type == 'text' ? 'alpha_dash' : ''" class="control" :name="['conditions[' + index + '][value]']" v-model="condition.value" data-vv-as=""{{ __('admin::app.promotions.catalog-rules.conditions') }}""/>
|
||||
<span class="control-error" v-if="errors.has('conditions[' + index + '][value]')" v-text="errors.first('conditions[' + index + '][value]')"></span>
|
||||
</div>
|
||||
|
||||
<div class="control-group date" v-if="matchedAttribute.type == 'date'">
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.catalog-rules.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.promotions.catalog-rules.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('marketing.promotions.catalog-rules'))
|
||||
<a href="{{ route('admin.catalog-rules.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.promotions.catalog-rules.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.sitemaps.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.sitemaps.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('marketing.sitemaps.create'))
|
||||
<a href="{{ route('admin.sitemaps.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.sitemaps.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -117,6 +117,10 @@
|
|||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.logo {
|
||||
margin-left: 300px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@
|
|||
</span>
|
||||
|
||||
<span class="value">
|
||||
{{ __('admin::app.notification.order-status-messages.'.strtolower($order->status_label)) }}
|
||||
{{ __('admin::app.notification.order-status-messages.'.strtolower($order->status)) }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.channels.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.channels.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('settings.channels.create'))
|
||||
<a href="{{ route('admin.channels.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.channels.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.currencies.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.currencies.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('settings.currencies.create'))
|
||||
<a href="{{ route('admin.currencies.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.currencies.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -15,10 +15,11 @@
|
|||
<a href="{{ route('admin.exchange_rates.update_rates') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.exchange_rates.update-rates') }}
|
||||
</a>
|
||||
|
||||
<a href="{{ route('admin.exchange_rates.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.exchange_rates.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('settings.exchange_rates.create'))
|
||||
<a href="{{ route('admin.exchange_rates.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.exchange_rates.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.inventory_sources.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.inventory_sources.add') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('settings.inventory_sources.create'))
|
||||
<a href="{{ route('admin.inventory_sources.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.inventory_sources.add') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.locales.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.locales.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('settings.locales.create'))
|
||||
<a href="{{ route('admin.locales.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.locales.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -18,9 +18,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.sliders.store') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.sliders.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('settings.sliders.create'))
|
||||
<a href="{{ route('admin.sliders.store') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.sliders.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.tax-categories.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.tax-categories.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('settings.taxes.tax-categories.create'))
|
||||
<a href="{{ route('admin.tax-categories.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.tax-categories.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -46,10 +46,11 @@
|
|||
{{ __('admin::app.export.export') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<a href="{{ route('admin.tax-rates.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.tax-rates.add-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('settings.taxes.tax-rates.create'))
|
||||
<a href="{{ route('admin.tax-rates.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.settings.tax-rates.add-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.roles.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.users.roles.add-role-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('settings.users.roles.create'))
|
||||
<a href="{{ route('admin.roles.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.users.roles.add-role-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.users.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.users.users.add-user-title') }}
|
||||
</a>
|
||||
@if (bouncer()->hasPermission('settings.users.users.create'))
|
||||
<a href="{{ route('admin.users.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.users.users.add-user-title') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -104,6 +104,10 @@ Route::group(['middleware' => ['web', 'admin'], 'prefix' => config('app.admin_ur
|
|||
'redirect' => 'admin.catalog.categories.index',
|
||||
])->name('admin.catalog.categories.massdelete');
|
||||
|
||||
Route::post('categories/mass-update', [CategoryController::class, 'massUpdate'])->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.categories.index',
|
||||
])->name('admin.catalog.categories.mass-update');
|
||||
|
||||
Route::post('/categories/product/count', [CategoryController::class, 'categoryProductCount'])->name('admin.catalog.categories.product.count');
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -205,6 +205,37 @@ class CategoryController extends Controller
|
|||
return redirect()->route($this->_config['redirect']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mass update Category.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function massUpdate()
|
||||
{
|
||||
$data = request()->all();
|
||||
|
||||
if (! isset($data['massaction-type']) || ! $data['massaction-type'] == 'update') {
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
$categoryIds = explode(',', $data['indexes']);
|
||||
|
||||
foreach ($categoryIds as $categoryId) {
|
||||
Event::dispatch('catalog.categories.mass-update.before', $categoryId);
|
||||
|
||||
$category = $this->categoryRepository->find($categoryId);
|
||||
|
||||
$category->status = $data['update-options'];
|
||||
$category->save();
|
||||
|
||||
Event::dispatch('catalog.categories.mass-update.after', $category);
|
||||
}
|
||||
|
||||
session()->flash('success', trans('admin::app.catalog.categories.mass-update-success'));
|
||||
|
||||
return redirect()->route($this->_config['redirect']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get category product count.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -318,11 +318,9 @@ class ProductController extends Controller
|
|||
{
|
||||
$data = request()->all();
|
||||
|
||||
if (! isset($data['massaction-type'])) {
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
if (! $data['massaction-type'] == 'update') {
|
||||
if (! isset($data['massaction-type'])
|
||||
|| ! $data['massaction-type'] == 'update'
|
||||
) {
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,13 +2,14 @@
|
|||
|
||||
namespace Webkul\Product\Http\Requests;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Webkul\Admin\Validations\ProductCategoryUniqueSlug;
|
||||
use Webkul\Core\Contracts\Validations\Decimal;
|
||||
use Webkul\Core\Contracts\Validations\Slug;
|
||||
use Webkul\Core\Contracts\Validations\Decimal;
|
||||
use Webkul\Product\Models\ProductAttributeValue;
|
||||
use Webkul\Product\Repositories\ProductAttributeValueRepository;
|
||||
use Webkul\Product\Repositories\ProductRepository;
|
||||
use Webkul\Admin\Validations\ProductCategoryUniqueSlug;
|
||||
use Webkul\Product\Repositories\ProductAttributeValueRepository;
|
||||
|
||||
class ProductForm extends FormRequest
|
||||
{
|
||||
|
|
@ -66,6 +67,16 @@ class ProductForm extends FormRequest
|
|||
'special_price' => ['nullable', new Decimal, 'lt:price'],
|
||||
]);
|
||||
|
||||
if (request()->images) {
|
||||
foreach (request()->images['files'] as $key => $file) {
|
||||
if (Str::contains($key, 'image_')) {
|
||||
$this->rules = array_merge($this->rules, [
|
||||
'images.files.' . $key => ['required', 'mimes:bmp,jpeg,jpg,png,webp'],
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($product->getEditableAttributes() as $attribute) {
|
||||
if (
|
||||
in_array($attribute->code, ['sku', 'url_key'])
|
||||
|
|
|
|||
|
|
@ -643,7 +643,7 @@ class Configurable extends AbstractType
|
|||
} else {
|
||||
return '<span class="price-label">' . trans('shop::app.products.price-label') . '</span>'
|
||||
. ' '
|
||||
. '<span class="final-price">' . core()->currency($this->evaluatePrice($this->getMinimalPrice())) . '</span>';
|
||||
. '<span class="special-price">' . core()->currency($this->evaluatePrice($this->getMinimalPrice())) . '</span> <span class="regular-price"></span>';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -4925,6 +4925,15 @@ body {
|
|||
|
||||
.compare-products {
|
||||
width: unset !important;
|
||||
|
||||
tr {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
|
||||
td {
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mt-0 {
|
||||
|
|
|
|||
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,4 @@
|
|||
{
|
||||
"/js/ui.js": "/js/ui.js?id=2effb6ad469c2b8c5af2",
|
||||
"/js/ui.js": "/js/ui.js?id=3aeb5916956a19f3e02f",
|
||||
"/css/ui.css": "/css/ui.css?id=933372010d246f94f931"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -603,7 +603,8 @@ export default {
|
|||
response: isEncoded
|
||||
? encodeURIComponent(this.types[type].value)
|
||||
: this.types[type].value,
|
||||
label
|
||||
label,
|
||||
type
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -118,6 +118,7 @@
|
|||
<th
|
||||
:key="columnKey"
|
||||
v-for="(column, columnKey) in columns"
|
||||
v-if ="column.visibility != false"
|
||||
v-text="column.label"
|
||||
class="grid_head"
|
||||
:class="{ sortable: column.sortable }"
|
||||
|
|
@ -160,6 +161,7 @@
|
|||
<td
|
||||
:key="columnKey"
|
||||
v-for="(column, columnKey) in columns"
|
||||
v-if ="column.visibility != false"
|
||||
v-html="record[column.index]"
|
||||
:data-value="column.label"
|
||||
></td>
|
||||
|
|
|
|||
|
|
@ -1437,7 +1437,7 @@ modal {
|
|||
margin-bottom: 20px;
|
||||
margin-top: 10px;
|
||||
display: inline-block;
|
||||
width: 200px;
|
||||
width: 100%;
|
||||
|
||||
.image-item {
|
||||
width: 200px;
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -16,7 +16,7 @@
|
|||
*/
|
||||
|
||||
/*!
|
||||
* Vue.js v2.7.8
|
||||
* Vue.js v2.7.10
|
||||
* (c) 2014-2022 Evan You
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
*/
|
||||
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.6.0
|
||||
* jQuery JavaScript Library v3.6.1
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2021-03-02T17:08Z
|
||||
* Date: 2022-08-26T17:52Z
|
||||
*/
|
||||
|
||||
/*!
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -3,8 +3,8 @@
|
|||
"/js/velocity-core.js": "/js/velocity-core.js?id=dcc312fe978be1aff63a33eaf7ad190c",
|
||||
"/js/velocity.js": "/js/velocity.js?id=5e563e0af3ea88a56b03a4a30fad0a92",
|
||||
"/js/manifest.js": "/js/manifest.js?id=4113cf6789cdd4f2768f508bc32cad2d",
|
||||
"/js/components.js": "/js/components.js?id=f1962fbe19365543e54b0e329f86b8ff",
|
||||
"/css/velocity.css": "/css/velocity.css?id=b052a38bbdda8e29ff1dee8479d69d63",
|
||||
"/js/components.js": "/js/components.js?id=f60a033c9b4233754d022b4b9f156bb9",
|
||||
"/css/velocity.css": "/css/velocity.css?id=1dc9d611540ff31dfa2cf8c86f5ad16a",
|
||||
"/css/velocity-admin.css": "/css/velocity-admin.css?id=b67a82956e53163b5e3ff45a44f9778f",
|
||||
"/images/Camera.svg": "/images/Camera.svg?id=b2fd2f9e17e1ccee96e29f6c6cec91e8",
|
||||
"/images/Icon-Arrow-Right.svg": "/images/Icon-Arrow-Right.svg?id=e30f624f1a70197dc9ad9011b240aa8e",
|
||||
|
|
|
|||
|
|
@ -9,4 +9,5 @@ class VelocityMetadata extends Model implements VelocityMetadataContract
|
|||
{
|
||||
protected $table = 'velocity_meta_data';
|
||||
|
||||
protected $guarded = ['id'];
|
||||
}
|
||||
|
|
@ -129,6 +129,14 @@
|
|||
<span class="category-title">{{
|
||||
subCategory['name']
|
||||
}}</span>
|
||||
|
||||
<i
|
||||
class="rango-arrow-down pr15 float-right"
|
||||
@mouseout="toggleSidebar(id, $event, 'mouseout')"
|
||||
@mouseover="toggleSidebar(id, $event, 'mouseover')"
|
||||
v-if="subCategory.children.length > 0"
|
||||
>
|
||||
</i>
|
||||
</a>
|
||||
|
||||
<ul type="none" class="nested">
|
||||
|
|
|
|||
|
|
@ -1145,4 +1145,18 @@ i.within-circle {
|
|||
|
||||
.show-password {
|
||||
margin-top:10px !important;
|
||||
}
|
||||
|
||||
.category {
|
||||
line-height: 2.0rem !important;
|
||||
}
|
||||
|
||||
.sub-category {
|
||||
padding-left: 0 !important;
|
||||
padding-top: 0 !important;
|
||||
line-height: 2.0rem !important;
|
||||
|
||||
i {
|
||||
margin-top: 8px !important;
|
||||
}
|
||||
}
|
||||
|
|
@ -1753,7 +1753,7 @@
|
|||
|
||||
.category {
|
||||
padding: 5px 0 4px 15px;
|
||||
|
||||
|
||||
+ .nested {
|
||||
color: $font-color;
|
||||
|
||||
|
|
@ -2689,3 +2689,11 @@
|
|||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.sub-category:hover ~ ul {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.nested {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -307,6 +307,11 @@
|
|||
position: sticky;
|
||||
top: 70px;
|
||||
|
||||
div.col-12:first-child {
|
||||
max-height: 420px;
|
||||
height: 420px;
|
||||
}
|
||||
|
||||
> div {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
|
|
|||
|
|
@ -297,7 +297,7 @@
|
|||
background-color: $white-color !important;
|
||||
box-shadow: 0 1px 0 0 #CFCFCF;
|
||||
border: 1px solid rgba(0,0,0,0.12);
|
||||
z-index: 0;
|
||||
z-index: 1;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
|
|
|
|||
|
|
@ -289,9 +289,35 @@
|
|||
setTimeout(function() {
|
||||
document.getElementById('product-form').submit();
|
||||
}, 0);
|
||||
} else {
|
||||
this.activateAutoScroll();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
activateAutoScroll: function(event) {
|
||||
|
||||
/**
|
||||
* This is normal Element
|
||||
*/
|
||||
const normalElement = document.querySelector(
|
||||
'.control-error:first-of-type'
|
||||
);
|
||||
|
||||
/**
|
||||
* Scroll Config
|
||||
*/
|
||||
const scrollConfig = {
|
||||
behavior: 'smooth',
|
||||
block: 'end',
|
||||
inline: 'nearest',
|
||||
}
|
||||
|
||||
if (normalElement) {
|
||||
normalElement.scrollIntoView(scrollConfig);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -314,7 +314,7 @@
|
|||
});
|
||||
|
||||
let priceLabelElement = document.querySelector('.price-label');
|
||||
let priceElement = document.querySelector('.final-price');
|
||||
let priceElement = document.querySelector('.special-price');
|
||||
let regularPriceElement = document.querySelector('.regular-price');
|
||||
|
||||
if (this.childAttributes.length == selectedOptionCount) {
|
||||
|
|
@ -326,7 +326,18 @@
|
|||
|
||||
priceElement.innerHTML = this.config.variant_prices[this.simpleProduct].final_price.formated_price;
|
||||
|
||||
if (regularPriceElement && this.config.variant_prices[this.simpleProduct].final_price.price < this.config.variant_prices[this.simpleProduct].regular_price.price) {
|
||||
if (
|
||||
this.config.variant_prices[this.simpleProduct].regular_price.formated_price == "$0.00"
|
||||
|| this.config.variant_prices[this.simpleProduct].regular_price.formated_price == this.config.variant_prices[this.simpleProduct].final_price.formated_price
|
||||
) {
|
||||
regularPriceElement.innerHTML = "";
|
||||
}
|
||||
|
||||
if (
|
||||
regularPriceElement
|
||||
&& this.config.variant_prices[this.simpleProduct].regular_price.formated_price != "$0.00"
|
||||
&& this.config.variant_prices[this.simpleProduct].regular_price.formated_price != this.config.variant_prices[this.simpleProduct].final_price.formated_price
|
||||
) {
|
||||
regularPriceElement.innerHTML = this.config.variant_prices[this.simpleProduct].regular_price.formated_price;
|
||||
regularPriceElement.style.display = 'inline-block';
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue