From 5188bbbb5a730ee7f4a1f494a50af7478c0474dd Mon Sep 17 00:00:00 2001 From: devansh bawari Date: Mon, 13 Sep 2021 19:11:01 +0530 Subject: [PATCH 1/8] Load More Added And Optimization In Progress --- packages/Webkul/Admin/src/Http/routes.php | 4 + .../views/catalog/attributes/edit.blade.php | 103 ++++++++++-------- .../Http/Controllers/AttributeController.php | 13 +++ 3 files changed, 74 insertions(+), 46 deletions(-) diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index 2bd12a221..2d9ed7404 100755 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -371,6 +371,10 @@ Route::group(['middleware' => ['web', 'admin_locale']], function () { 'view' => 'admin::catalog.attributes.index', ])->name('admin.catalog.attributes.index'); + Route::get('/attributes/{id}/options', 'Webkul\Attribute\Http\Controllers\AttributeController@getAttributeOptions')->defaults('_config', [ + 'view' => 'admin::catalog.attributes.options', + ])->name('admin.catalog.attributes.options'); + Route::get('/attributes/create', 'Webkul\Attribute\Http\Controllers\AttributeController@create')->defaults('_config', [ 'view' => 'admin::catalog.attributes.create', ])->name('admin.catalog.attributes.create'); diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php index 913423fb2..278cd80fb 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php @@ -130,7 +130,7 @@ {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.options.controls.before', ['attribute' => $attribute]) !!} - + {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.options.controls.after', ['attribute' => $attribute]) !!} @@ -306,7 +306,6 @@ @push('scripts') @endpush diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php index 1c0301567..b8c686669 100755 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php @@ -91,6 +91,19 @@ class AttributeController extends Controller return view($this->_config['view'], compact('attribute')); } + /** + * Get attribute options associated with attribute. + * + * @param int $id + * @return \Illuminate\View\View + */ + public function getAttributeOptions($id) + { + $attribute = $this->attributeRepository->findOrFail($id); + + return $attribute->options()->paginate(10); + } + /** * Update the specified resource in storage. * From a397ea9c906732f147d365c380e1ca1e9dae4d07 Mon Sep 17 00:00:00 2001 From: devansh bawari Date: Tue, 14 Sep 2021 11:12:13 +0530 Subject: [PATCH 2/8] Load More Added & Only Deleting Those Which Are Deleted From The Front End --- .../views/catalog/attributes/edit.blade.php | 128 ++++++++++-------- .../Http/Controllers/AttributeController.php | 2 +- .../src/Repositories/AttributeRepository.php | 18 +-- 3 files changed, 79 insertions(+), 69 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php index 278cd80fb..0535631b6 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php @@ -1,3 +1,7 @@ +@php + $allLocales = app('Webkul\Core\Repositories\LocaleRepository')->all(); +@endphp + @extends('admin::layouts.content') @section('page_title') @@ -27,25 +31,29 @@
@csrf() + {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.general.before', ['attribute' => $attribute]) !!}
- {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.general.controls.before', ['attribute' => $attribute]) !!}
- @{{ errors.first('code') }} +
- type ?> + @php + $selectedOption = old('type') ?: $attribute->type; + @endphp + + +
@@ -90,39 +99,32 @@ {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.general.after', ['attribute' => $attribute]) !!} - {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.attributes.before', ['attribute' => $attribute]) !!}
- {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.attributes.controls.before', ['attribute' => $attribute]) !!}
- @{{ errors.first('admin_name') }} +
- @foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale) - + @foreach ($allLocales as $locale)
- @endforeach {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.attributes.controls.after', ['attribute' => $attribute]) !!} -
{!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.attributes.after', ['attribute' => $attribute]) !!} -
- {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.options.before', ['attribute' => $attribute]) !!} @@ -130,7 +132,10 @@ {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.options.controls.before', ['attribute' => $attribute]) !!} - + {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.options.controls.after', ['attribute' => $attribute]) !!} @@ -138,14 +143,12 @@ {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.options.after', ['attribute' => $attribute]) !!} -
{!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.validations.before', ['attribute' => $attribute]) !!}
- {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.validations.controls.before', ['attribute' => $attribute]) !!}
@@ -190,18 +193,15 @@
{!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.validations.controls.after', ['attribute' => $attribute]) !!} -
{!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.validations.after', ['attribute' => $attribute]) !!} - {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.configuration.before', ['attribute' => $attribute]) !!}
- {!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.configuration.controls.before', ['attribute' => $attribute]) !!}
@@ -291,7 +291,6 @@
{!! view_render_event('bagisto.admin.catalog.attribute.edit_form_accordian.configuration.controls.after', ['attribute' => $attribute]) !!} -
@@ -332,6 +331,7 @@ + {{ __('admin::app.catalog.attributes.default_null_option') }}
@@ -344,11 +344,7 @@ {{ __('admin::app.catalog.attributes.admin_name') }} - @foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale) - - {{ $locale->name . ' (' . $locale->code . ')' }} - - @endforeach + {{ __('admin::app.catalog.attributes.position') }} @@ -357,7 +353,9 @@ - + + + @@ -366,30 +364,28 @@
- The image size must be less than 600 KB +
- @{{ errors.first(adminName(row)) }} +
- @foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale) - -
- - @{{ errors.first(localeInputName(row, '{!! $locale->code !!}')) }} -
- - @endforeach + +
+ + +
+
- @{{ errors.first(sortOrderName(row)) }} +
@@ -401,6 +397,10 @@
+ + @@ -414,11 +414,14 @@ inject: ['$validator'], props: [ - 'src' + 'src', + 'allLocales' ], data: function() { return { + appLocale: '{{ app()->getLocale() }}', + optionPage: 1, optionRowCount: 0, optionRows: [], show_swatch: "{{ $attribute->type == 'select' ? true : false }}", @@ -442,24 +445,28 @@ }, created: function () { - let self = this; - - $('#type').on('change', function (e) { - if (['select'].indexOf($(e.target).val()) === -1) { - self.show_swatch = false; - } else { - self.show_swatch = true; - } - }); - this.getAttributeOptions(); + + this.activateToggleSwatch(); }, methods: { - getAttributeOptions: function (id) { + activateToggleSwatch: function () { let self = this; - axios.get(this.src).then(function (response) { + $('#type').on('change', function (e) { + if (['select'].indexOf($(e.target).val()) === -1) { + self.show_swatch = false; + } else { + self.show_swatch = true; + } + }); + }, + + getAttributeOptions: function () { + let self = this; + + axios.get(`${this.src}?page=${this.optionPage}`).then(function (response) { let options = response.data.data; options.forEach((option) => { @@ -472,7 +479,8 @@ 'swatch_value': option.swatch_value, 'swatch_value_url': option.swatch_value_url, 'notRequired': '', - 'locales': {} + 'locales': {}, + 'isDelete': false, }; if (option.label) { @@ -490,14 +498,20 @@ }); }, + loadMoreOptions: function () { + this.optionPage++; + + this.getAttributeOptions(); + }, + addOptionRow: function (isNullOptionRow) { const rowCount = this.optionRowCount++; const id = 'option_' + rowCount; - let row = {'id': id, 'locales': {}}; + let row = {'id': id, 'locales': {}, 'isDelete': false}; - @foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale) - row['locales']['{{ $locale->code }}'] = ''; - @endforeach + this.allLocales.forEach((locale) => { + row['locales'][locale.code] = ''; + }); row['notRequired'] = ''; @@ -515,8 +529,8 @@ this.isNullOptionChecked = false; } - const index = this.optionRows.indexOf(row) - Vue.delete(this.optionRows, index); + const index = this.optionRows.indexOf(row); + this.optionRows[index].isDelete = true; }, adminName: function (row) { @@ -536,7 +550,7 @@ return ''; } - return ('{{ app()->getLocale() }}' === localeCode) ? 'required' : ''; + return (this.appLocale === localeCode) ? 'required' : ''; } }, }); diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php index b8c686669..459634dfa 100755 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php @@ -101,7 +101,7 @@ class AttributeController extends Controller { $attribute = $this->attributeRepository->findOrFail($id); - return $attribute->options()->paginate(10); + return $attribute->options()->paginate(50); } /** diff --git a/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php b/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php index 0eba53f4e..2fe7ed964 100755 --- a/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php +++ b/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php @@ -88,8 +88,6 @@ class AttributeRepository extends Repository $attribute->update($data); - $previousOptionIds = $attribute->options()->pluck('id'); - if (in_array($attribute->type, ['select', 'multiselect', 'checkbox'])) { if (isset($data['options'])) { foreach ($data['options'] as $optionId => $optionInputs) { @@ -98,20 +96,18 @@ class AttributeRepository extends Repository 'attribute_id' => $attribute->id, ], $optionInputs)); } else { - if (is_numeric($index = $previousOptionIds->search($optionId))) { - $previousOptionIds->forget($index); - } + $isDelete = $optionInputs['isDelete'] == 'true' ? true : false; - $this->attributeOptionRepository->update($optionInputs, $optionId); + if ($isDelete) { + $this->attributeOptionRepository->delete($optionId); + } else { + $this->attributeOptionRepository->update($optionInputs, $optionId); + } } } } } - foreach ($previousOptionIds as $optionId) { - $this->attributeOptionRepository->delete($optionId); - } - Event::dispatch('catalog.attribute.update.after', $attribute); return $attribute; @@ -160,7 +156,7 @@ class AttributeRepository extends Repository } /** - * + * * @param array $codes * @return array */ From 188efeb4ee6b5e4e361d54335a274ca33d5c131e Mon Sep 17 00:00:00 2001 From: devansh bawari Date: Tue, 14 Sep 2021 12:20:38 +0530 Subject: [PATCH 3/8] English Translation Added To All Locale --- .../Admin/src/Resources/lang/ar/app.php | 3 ++ .../Admin/src/Resources/lang/de/app.php | 3 ++ .../Admin/src/Resources/lang/en/app.php | 3 ++ .../Admin/src/Resources/lang/es/app.php | 3 ++ .../Admin/src/Resources/lang/fa/app.php | 3 ++ .../Admin/src/Resources/lang/fr/app.php | 3 ++ .../Admin/src/Resources/lang/it/app.php | 3 ++ .../Admin/src/Resources/lang/nl/app.php | 3 ++ .../Admin/src/Resources/lang/pl/app.php | 3 ++ .../Admin/src/Resources/lang/pt_BR/app.php | 3 ++ .../Admin/src/Resources/lang/tr/app.php | 3 ++ .../views/catalog/attributes/edit.blade.php | 2 +- .../src/Repositories/AttributeRepository.php | 47 ++++++++++++------- 13 files changed, 65 insertions(+), 17 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/lang/ar/app.php b/packages/Webkul/Admin/src/Resources/lang/ar/app.php index 60ead8801..269fcfbd2 100644 --- a/packages/Webkul/Admin/src/Resources/lang/ar/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ar/app.php @@ -634,6 +634,9 @@ return [ 'use_in_flat' => "إنشاء في جدول المنتجات المسطحة", 'is_comparable' => "السمة قابلة للمقارنة", 'default_null_option' => 'إنشاء خيار فارغ افتراضي', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ], ], 'families' => [ 'title' => 'الأسر', diff --git a/packages/Webkul/Admin/src/Resources/lang/de/app.php b/packages/Webkul/Admin/src/Resources/lang/de/app.php index a0abd263e..5eea3b2af 100755 --- a/packages/Webkul/Admin/src/Resources/lang/de/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/de/app.php @@ -624,6 +624,9 @@ return [ 'use_in_flat' => 'In Produkt Flat Tabelle erstellen', 'is_comparable' => 'Attribut ist vergleichbar', 'default_null_option' => 'Erstellen Sie eine leere Standardoption', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ], ], 'families' => [ diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index da68ac287..7fc21c45d 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -645,6 +645,9 @@ return [ 'use_in_flat' => "Create in Product Flat Table", 'is_comparable' => "Attribute is comparable", 'default_null_option' => 'Create default empty option', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ] ], 'families' => [ 'title' => 'Families', diff --git a/packages/Webkul/Admin/src/Resources/lang/es/app.php b/packages/Webkul/Admin/src/Resources/lang/es/app.php index 3023f1154..378a43b5d 100644 --- a/packages/Webkul/Admin/src/Resources/lang/es/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/es/app.php @@ -645,6 +645,9 @@ return [ 'use_in_flat' => "Crear en tabla plana de productos", 'is_comparable' => "El atributo es comparable", 'default_null_option' => 'Crear opción vacía por defecto', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ], ], 'families' => [ 'title' => 'Familias', diff --git a/packages/Webkul/Admin/src/Resources/lang/fa/app.php b/packages/Webkul/Admin/src/Resources/lang/fa/app.php index 5fd9d0801..aac1a29b5 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fa/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fa/app.php @@ -634,6 +634,9 @@ return [ 'use_in_flat' => 'اضافه به جدول flat (product_flat)', 'is_comparable' => "ویژگی قابل مقایسه است", 'default_null_option' => 'گزینه پیش فرض خالی ایجاد کنید', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ], ], 'families' => [ 'title' => 'ویژگی ها', diff --git a/packages/Webkul/Admin/src/Resources/lang/fr/app.php b/packages/Webkul/Admin/src/Resources/lang/fr/app.php index 6f7f4b8ff..663853595 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fr/app.php @@ -644,6 +644,9 @@ return [ 'use_in_flat' => 'Créer dans la table plate du produit', 'is_comparable' => 'L\'attribut est comparable', 'default_null_option' => 'Créer une option vide par défaut', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ], ], 'families' => [ diff --git a/packages/Webkul/Admin/src/Resources/lang/it/app.php b/packages/Webkul/Admin/src/Resources/lang/it/app.php index c7b102e77..c2623f869 100644 --- a/packages/Webkul/Admin/src/Resources/lang/it/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/it/app.php @@ -634,6 +634,9 @@ return [ 'use_in_flat' => "Crea in tabella Product flat", 'is_comparable' => "L'attributo è comparabile", 'default_null_option' => 'Crea opzione predefinita vuota', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ], ], 'families' => [ 'title' => 'Famiglie', diff --git a/packages/Webkul/Admin/src/Resources/lang/nl/app.php b/packages/Webkul/Admin/src/Resources/lang/nl/app.php index d098ad8ca..8688284c2 100644 --- a/packages/Webkul/Admin/src/Resources/lang/nl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/nl/app.php @@ -631,6 +631,9 @@ return [ 'use_in_flat' => "Create in Product Flat Table", 'is_comparable' => "Attribuut is vergelijkbaar ", 'default_null_option' => 'Create default empty option', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ], ], 'families' => [ 'title' => 'Families', diff --git a/packages/Webkul/Admin/src/Resources/lang/pl/app.php b/packages/Webkul/Admin/src/Resources/lang/pl/app.php index 648b020a7..dc7814937 100644 --- a/packages/Webkul/Admin/src/Resources/lang/pl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pl/app.php @@ -633,6 +633,9 @@ return [ 'use_in_flat' => "Utwórz w płaskiej tabeli produktu", 'is_comparable' => "Atrybut jest porównywalny", 'default_null_option' => 'Utwórz domyślną pustą opcję', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ], ], 'families' => [ 'title' => 'Rodziny atrybutów', diff --git a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php index d3013ccd3..63bb21370 100755 --- a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php @@ -632,6 +632,9 @@ return [ 'use_in_flat' => "Criar na tabela plana do produto", 'is_comparable' => "O atributo é comparável", 'default_null_option' => 'Criar opção vazia padrão', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ], ], 'families' => [ 'title' => 'Famílias', diff --git a/packages/Webkul/Admin/src/Resources/lang/tr/app.php b/packages/Webkul/Admin/src/Resources/lang/tr/app.php index 94d5d14c6..611a6fb37 100644 --- a/packages/Webkul/Admin/src/Resources/lang/tr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/tr/app.php @@ -627,6 +627,9 @@ return [ 'use_in_flat' => "Ürün Tablosu Oluştur", 'is_comparable' => "Nitelik kıyaslanabilir", 'default_null_option' => 'Varsayılan boş seçenek oluştur', + 'validations' => [ + 'max-size' => 'The image size must be less than 600 KB' + ], ], 'families' => [ 'title' => 'Küme', diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php index 0535631b6..ded68e815 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php @@ -364,7 +364,7 @@
- +
diff --git a/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php b/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php index 2fe7ed964..d2780d50a 100755 --- a/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php +++ b/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php @@ -2,16 +2,16 @@ namespace Webkul\Attribute\Repositories; -use Webkul\Core\Eloquent\Repository; -use Illuminate\Support\Facades\Event; -use Webkul\Attribute\Repositories\AttributeOptionRepository; use Illuminate\Container\Container as App; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Str; +use Webkul\Attribute\Repositories\AttributeOptionRepository; +use Webkul\Core\Eloquent\Repository; class AttributeRepository extends Repository { /** - * AttributeOptionRepository object + * Attribute option repository instance. * * @var \Webkul\Attribute\Repositories\AttributeOptionRepository */ @@ -26,24 +26,25 @@ class AttributeRepository extends Repository public function __construct( AttributeOptionRepository $attributeOptionRepository, App $app - ) - { + ) { $this->attributeOptionRepository = $attributeOptionRepository; parent::__construct($app); } /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { return 'Webkul\Attribute\Contracts\Attribute'; } /** + * Create attribute. + * * @param array $data * @return \Webkul\Attribute\Contracts\Attribute */ @@ -73,6 +74,8 @@ class AttributeRepository extends Repository } /** + * Update attribute. + * * @param array $data * @param int $id * @param string $attribute @@ -114,6 +117,8 @@ class AttributeRepository extends Repository } /** + * Delete attribute. + * * @param int $id * @return void */ @@ -127,6 +132,8 @@ class AttributeRepository extends Repository } /** + * Validate user input. + * * @param array $data * @return array */ @@ -148,6 +155,8 @@ class AttributeRepository extends Repository } /** + * Get filter attributes. + * * @return array */ public function getFilterAttributes() @@ -156,6 +165,7 @@ class AttributeRepository extends Repository } /** + * Get product default attributes. * * @param array $codes * @return array @@ -185,6 +195,8 @@ class AttributeRepository extends Repository } /** + * Get attribute by code. + * * @param string $code * @return \Webkul\Attribute\Contracts\Attribute */ @@ -200,6 +212,8 @@ class AttributeRepository extends Repository } /** + * Get family attributes. + * * @param \Webkul\Attribute\Contracts\AttributeFamily $attributeFamily * @return \Webkul\Attribute\Contracts\Attribute */ @@ -215,6 +229,8 @@ class AttributeRepository extends Repository } /** + * Get partials. + * * @return array */ public function getPartial() @@ -223,13 +239,13 @@ class AttributeRepository extends Repository $trimmed = []; - foreach($attributes as $key => $attribute) { - if ($attribute->code != 'tax_category_id' - && ( - $attribute->type == 'select' + foreach ($attributes as $key => $attribute) { + if ( + $attribute->code != 'tax_category_id' + && ($attribute->type == 'select' || $attribute->type == 'multiselect' - || $attribute->code == 'sku' - )) { + || $attribute->code == 'sku') + ) { if ($attribute->options()->exists()) { array_push($trimmed, [ 'id' => $attribute->id, @@ -249,10 +265,9 @@ class AttributeRepository extends Repository 'options' => null, ]); } - } } return $trimmed; } -} \ No newline at end of file +} From 3c26585c052e55b91215a3cf5404f0031a15d319 Mon Sep 17 00:00:00 2001 From: devansh bawari Date: Tue, 14 Sep 2021 12:25:53 +0530 Subject: [PATCH 4/8] Comment Updated On The AttributeController --- .../src/Http/Controllers/AttributeController.php | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php index 459634dfa..0eee43efb 100755 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php @@ -2,20 +2,19 @@ namespace Webkul\Attribute\Http\Controllers; -use Illuminate\Support\Facades\Event; use Webkul\Attribute\Repositories\AttributeRepository; class AttributeController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * AttributeRepository object + * Attribute repository instance. * * @var \Webkul\Attribute\Repositories\AttributeRepository */ @@ -71,7 +70,7 @@ class AttributeController extends Controller $data['is_user_defined'] = 1; - $attribute = $this->attributeRepository->create($data); + $this->attributeRepository->create($data); session()->flash('success', trans('admin::app.response.create-success', ['name' => 'Attribute'])); @@ -118,7 +117,7 @@ class AttributeController extends Controller 'type' => 'required', ]); - $attribute = $this->attributeRepository->update(request()->all(), $id); + $this->attributeRepository->update(request()->all(), $id); session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Attribute'])); @@ -144,7 +143,7 @@ class AttributeController extends Controller session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Attribute'])); return response()->json(['message' => true], 200); - } catch(\Exception $e) { + } catch (\Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Attribute'])); } } @@ -153,7 +152,7 @@ class AttributeController extends Controller } /** - * Remove the specified resources from database + * Remove the specified resources from database. * * @return \Illuminate\Http\Response */ From 48406fa40193d3169df9ef07b7fca9cf1e6d8c18 Mon Sep 17 00:00:00 2001 From: devansh bawari Date: Tue, 14 Sep 2021 12:35:17 +0530 Subject: [PATCH 5/8] Load More Translations Addded --- packages/Webkul/Admin/src/Resources/lang/ar/app.php | 1 + packages/Webkul/Admin/src/Resources/lang/de/app.php | 1 + packages/Webkul/Admin/src/Resources/lang/en/app.php | 1 + packages/Webkul/Admin/src/Resources/lang/es/app.php | 1 + packages/Webkul/Admin/src/Resources/lang/fa/app.php | 1 + packages/Webkul/Admin/src/Resources/lang/fr/app.php | 1 + packages/Webkul/Admin/src/Resources/lang/it/app.php | 1 + packages/Webkul/Admin/src/Resources/lang/nl/app.php | 1 + packages/Webkul/Admin/src/Resources/lang/pl/app.php | 1 + packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php | 1 + packages/Webkul/Admin/src/Resources/lang/tr/app.php | 1 + .../Admin/src/Resources/views/catalog/attributes/edit.blade.php | 2 +- 12 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/Webkul/Admin/src/Resources/lang/ar/app.php b/packages/Webkul/Admin/src/Resources/lang/ar/app.php index 269fcfbd2..38e8163f5 100644 --- a/packages/Webkul/Admin/src/Resources/lang/ar/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ar/app.php @@ -603,6 +603,7 @@ return [ 'options' => 'خيارات', 'position' => 'موضع', 'add-option-btn-title' => 'إضافة خيار', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'التصديقات', 'input_validation' => 'التحقق من الإدخال', 'is_required' => 'مطلوب', diff --git a/packages/Webkul/Admin/src/Resources/lang/de/app.php b/packages/Webkul/Admin/src/Resources/lang/de/app.php index 5eea3b2af..b9f25b8ff 100755 --- a/packages/Webkul/Admin/src/Resources/lang/de/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/de/app.php @@ -594,6 +594,7 @@ return [ 'options' => 'Optionen', 'position' => 'Position', 'add-option-btn-title' => 'Option hinzufügen', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'Validierungen', 'input_validation' => 'Eingabe-Validierung', 'is_required' => 'Ist erforderlich', diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 7fc21c45d..3f891239f 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -615,6 +615,7 @@ return [ 'options' => 'Options', 'position' => 'Position', 'add-option-btn-title' => 'Add Option', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'Validations', 'input_validation' => 'Input Validation', 'is_required' => 'Is Required', diff --git a/packages/Webkul/Admin/src/Resources/lang/es/app.php b/packages/Webkul/Admin/src/Resources/lang/es/app.php index 378a43b5d..e2351c5ea 100644 --- a/packages/Webkul/Admin/src/Resources/lang/es/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/es/app.php @@ -615,6 +615,7 @@ return [ 'options' => 'Opciones', 'position' => 'Posición', 'add-option-btn-title' => 'Agregar opción', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'Validaciones', 'input_validation' => 'Validación entrada', 'is_required' => 'Es requerido', diff --git a/packages/Webkul/Admin/src/Resources/lang/fa/app.php b/packages/Webkul/Admin/src/Resources/lang/fa/app.php index aac1a29b5..b1ec18b3d 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fa/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fa/app.php @@ -604,6 +604,7 @@ return [ 'options' => 'گزینه ها', 'position' => 'موقعیت', 'add-option-btn-title' => 'افزودن گزینه', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'اعتبار سنجی ها', 'input_validation' => 'اعتبار سنجی ورودی', 'is_required' => 'مورد نیاز است', diff --git a/packages/Webkul/Admin/src/Resources/lang/fr/app.php b/packages/Webkul/Admin/src/Resources/lang/fr/app.php index 663853595..28d0e7e76 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fr/app.php @@ -614,6 +614,7 @@ return [ 'options' => 'Options', 'position' => 'Positionner', 'add-option-btn-title' => 'Ajouter une option', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'Validation', 'input_validation' => 'Validation d\'entrée', 'is_required' => 'Est requis', diff --git a/packages/Webkul/Admin/src/Resources/lang/it/app.php b/packages/Webkul/Admin/src/Resources/lang/it/app.php index c2623f869..86b050f4d 100644 --- a/packages/Webkul/Admin/src/Resources/lang/it/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/it/app.php @@ -604,6 +604,7 @@ return [ 'options' => 'Opzioni', 'position' => 'Posizione', 'add-option-btn-title' => 'Aggiungi Option', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'Validazioni', 'input_validation' => 'Validazione Input', 'is_required' => 'È Richiesto', diff --git a/packages/Webkul/Admin/src/Resources/lang/nl/app.php b/packages/Webkul/Admin/src/Resources/lang/nl/app.php index 8688284c2..bcd1f253d 100644 --- a/packages/Webkul/Admin/src/Resources/lang/nl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/nl/app.php @@ -600,6 +600,7 @@ return [ 'options' => 'Opties', 'position' => 'Positie', 'add-option-btn-title' => 'Optie toevoegen', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'Validations', 'input_validation' => 'Input Validation', 'is_required' => 'is verplicht', diff --git a/packages/Webkul/Admin/src/Resources/lang/pl/app.php b/packages/Webkul/Admin/src/Resources/lang/pl/app.php index dc7814937..60b65783d 100644 --- a/packages/Webkul/Admin/src/Resources/lang/pl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pl/app.php @@ -602,6 +602,7 @@ return [ 'options' => 'Opcje', 'position' => 'Pozycja', 'add-option-btn-title' => 'Dodaj opcję', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'Walidacje danych', 'input_validation' => 'Sprawdzanie poprawności danych wejściowych', 'is_required' => 'Jest wymagany', diff --git a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php index 63bb21370..1a6cfec17 100755 --- a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php @@ -601,6 +601,7 @@ return [ 'options' => 'Opções', 'position' => 'Posição', 'add-option-btn-title' => 'Adicionar Opção', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'Validações', 'input_validation' => 'Validação de Campo', 'is_required' => 'É Obrigratório', diff --git a/packages/Webkul/Admin/src/Resources/lang/tr/app.php b/packages/Webkul/Admin/src/Resources/lang/tr/app.php index 611a6fb37..67856734f 100644 --- a/packages/Webkul/Admin/src/Resources/lang/tr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/tr/app.php @@ -597,6 +597,7 @@ return [ 'options' => 'Seçenekler', 'position' => 'Konum', 'add-option-btn-title' => 'Seçenek Ekle', + 'load-more-options-btn-title' => 'Load More Options', 'validations' => 'Doğrulamalar', 'input_validation' => 'Giriş Doğrulaması', 'is_required' => 'Zorunlu', diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php index ded68e815..3205621de 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php @@ -398,7 +398,7 @@
@@ -424,6 +427,7 @@ optionPage: 1, optionRowCount: 0, optionRows: [], + loadMore: true, show_swatch: "{{ $attribute->type == 'select' ? true : false }}", swatch_type: "{{ $attribute->swatch_type == '' ? 'dropdown' : $attribute->swatch_type }}", isNullOptionChecked: false, @@ -469,6 +473,10 @@ axios.get(`${this.src}?page=${this.optionPage}`).then(function (response) { let options = response.data.data; + if (response.data.current_page === response.data.last_page) { + self.loadMore = false; + } + options.forEach((option) => { self.optionRowCount++; @@ -480,6 +488,7 @@ 'swatch_value_url': option.swatch_value_url, 'notRequired': '', 'locales': {}, + 'isNew': false, 'isDelete': false, }; @@ -507,7 +516,7 @@ addOptionRow: function (isNullOptionRow) { const rowCount = this.optionRowCount++; const id = 'option_' + rowCount; - let row = {'id': id, 'locales': {}, 'isDelete': false}; + let row = {'id': id, 'locales': {}, 'isNew': true, 'isDelete': false}; this.allLocales.forEach((locale) => { row['locales'][locale.code] = ''; @@ -530,7 +539,30 @@ } const index = this.optionRows.indexOf(row); - this.optionRows[index].isDelete = true; + + if (this.optionRows[index].isNew) { + this.hardDeleteNewRow(index); + } else { + this.softDeleteExistingRow(index); + } + }, + + hardDeleteNewRow: function (rowIndex) { + Vue.delete(this.optionRows, rowIndex); + }, + + softDeleteExistingRow: function (rowIndex) { + let self = this; + + this.optionRows[rowIndex].isDelete = true; + + let requiredKeys = ['admin_name', 'sort_order']; + + requiredKeys.forEach((key) => { + if (self.optionRows[rowIndex][key] === undefined || self.optionRows[rowIndex][key] === '') { + self.optionRows[rowIndex][key] = '0'; + } + }); }, adminName: function (row) { @@ -545,13 +577,13 @@ return 'options[' + row.id + '][sort_order]'; }, - getOptionValidation: (row, localeCode) => { + getOptionValidation: function (row, localeCode) { if (row.notRequired === true) { return ''; } return (this.appLocale === localeCode) ? 'required' : ''; - } + }, }, }); diff --git a/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php b/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php index d2780d50a..953c22159 100755 --- a/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php +++ b/packages/Webkul/Attribute/src/Repositories/AttributeRepository.php @@ -4,7 +4,6 @@ namespace Webkul\Attribute\Repositories; use Illuminate\Container\Container as App; use Illuminate\Support\Facades\Event; -use Illuminate\Support\Str; use Webkul\Attribute\Repositories\AttributeOptionRepository; use Webkul\Core\Eloquent\Repository; @@ -94,7 +93,9 @@ class AttributeRepository extends Repository if (in_array($attribute->type, ['select', 'multiselect', 'checkbox'])) { if (isset($data['options'])) { foreach ($data['options'] as $optionId => $optionInputs) { - if (Str::contains($optionId, 'option_')) { + $isNew = $optionInputs['isNew'] == 'true' ? true : false; + + if ($isNew) { $this->attributeOptionRepository->create(array_merge([ 'attribute_id' => $attribute->id, ], $optionInputs)); From fa18b19e23e18c815ed542f39f69eaf3fa4e67c1 Mon Sep 17 00:00:00 2001 From: devansh bawari Date: Tue, 14 Sep 2021 17:23:06 +0530 Subject: [PATCH 7/8] Validation Message Fixed --- .../Admin/src/Resources/lang/ar/app.php | 2 +- .../Admin/src/Resources/lang/de/app.php | 2 +- .../Admin/src/Resources/lang/en/app.php | 2 +- .../Admin/src/Resources/lang/es/app.php | 2 +- .../Admin/src/Resources/lang/fa/app.php | 2 +- .../Admin/src/Resources/lang/fr/app.php | 2 +- .../Admin/src/Resources/lang/it/app.php | 2 +- .../Admin/src/Resources/lang/nl/app.php | 2 +- .../Admin/src/Resources/lang/pl/app.php | 2 +- .../Admin/src/Resources/lang/pt_BR/app.php | 2 +- .../Admin/src/Resources/lang/tr/app.php | 2 +- .../views/catalog/attributes/edit.blade.php | 2 +- .../Admin/Catalog/AttributeCest.php | 26 ++++++++++++++++--- 13 files changed, 34 insertions(+), 16 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/lang/ar/app.php b/packages/Webkul/Admin/src/Resources/lang/ar/app.php index 38e8163f5..29936d7ea 100644 --- a/packages/Webkul/Admin/src/Resources/lang/ar/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ar/app.php @@ -635,7 +635,7 @@ return [ 'use_in_flat' => "إنشاء في جدول المنتجات المسطحة", 'is_comparable' => "السمة قابلة للمقارنة", 'default_null_option' => 'إنشاء خيار فارغ افتراضي', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/de/app.php b/packages/Webkul/Admin/src/Resources/lang/de/app.php index b9f25b8ff..f90eaec58 100755 --- a/packages/Webkul/Admin/src/Resources/lang/de/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/de/app.php @@ -625,7 +625,7 @@ return [ 'use_in_flat' => 'In Produkt Flat Tabelle erstellen', 'is_comparable' => 'Attribut ist vergleichbar', 'default_null_option' => 'Erstellen Sie eine leere Standardoption', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 3f891239f..dc3d1abd3 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -646,7 +646,7 @@ return [ 'use_in_flat' => "Create in Product Flat Table", 'is_comparable' => "Attribute is comparable", 'default_null_option' => 'Create default empty option', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ] ], diff --git a/packages/Webkul/Admin/src/Resources/lang/es/app.php b/packages/Webkul/Admin/src/Resources/lang/es/app.php index e2351c5ea..565e158c8 100644 --- a/packages/Webkul/Admin/src/Resources/lang/es/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/es/app.php @@ -646,7 +646,7 @@ return [ 'use_in_flat' => "Crear en tabla plana de productos", 'is_comparable' => "El atributo es comparable", 'default_null_option' => 'Crear opción vacía por defecto', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/fa/app.php b/packages/Webkul/Admin/src/Resources/lang/fa/app.php index b1ec18b3d..ec2e42311 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fa/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fa/app.php @@ -635,7 +635,7 @@ return [ 'use_in_flat' => 'اضافه به جدول flat (product_flat)', 'is_comparable' => "ویژگی قابل مقایسه است", 'default_null_option' => 'گزینه پیش فرض خالی ایجاد کنید', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/fr/app.php b/packages/Webkul/Admin/src/Resources/lang/fr/app.php index 28d0e7e76..80a3ff81b 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fr/app.php @@ -645,7 +645,7 @@ return [ 'use_in_flat' => 'Créer dans la table plate du produit', 'is_comparable' => 'L\'attribut est comparable', 'default_null_option' => 'Créer une option vide par défaut', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/it/app.php b/packages/Webkul/Admin/src/Resources/lang/it/app.php index 86b050f4d..3c6ee9963 100644 --- a/packages/Webkul/Admin/src/Resources/lang/it/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/it/app.php @@ -635,7 +635,7 @@ return [ 'use_in_flat' => "Crea in tabella Product flat", 'is_comparable' => "L'attributo è comparabile", 'default_null_option' => 'Crea opzione predefinita vuota', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/nl/app.php b/packages/Webkul/Admin/src/Resources/lang/nl/app.php index bcd1f253d..fc19acecc 100644 --- a/packages/Webkul/Admin/src/Resources/lang/nl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/nl/app.php @@ -632,7 +632,7 @@ return [ 'use_in_flat' => "Create in Product Flat Table", 'is_comparable' => "Attribuut is vergelijkbaar ", 'default_null_option' => 'Create default empty option', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/pl/app.php b/packages/Webkul/Admin/src/Resources/lang/pl/app.php index 60b65783d..58c3bd874 100644 --- a/packages/Webkul/Admin/src/Resources/lang/pl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pl/app.php @@ -634,7 +634,7 @@ return [ 'use_in_flat' => "Utwórz w płaskiej tabeli produktu", 'is_comparable' => "Atrybut jest porównywalny", 'default_null_option' => 'Utwórz domyślną pustą opcję', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php index 1a6cfec17..acd60e6ca 100755 --- a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php @@ -633,7 +633,7 @@ return [ 'use_in_flat' => "Criar na tabela plana do produto", 'is_comparable' => "O atributo é comparável", 'default_null_option' => 'Criar opção vazia padrão', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/tr/app.php b/packages/Webkul/Admin/src/Resources/lang/tr/app.php index 67856734f..6376a4a5e 100644 --- a/packages/Webkul/Admin/src/Resources/lang/tr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/tr/app.php @@ -628,7 +628,7 @@ return [ 'use_in_flat' => "Ürün Tablosu Oluştur", 'is_comparable' => "Nitelik kıyaslanabilir", 'default_null_option' => 'Varsayılan boş seçenek oluştur', - 'validations' => [ + 'validation-messages' => [ 'max-size' => 'The image size must be less than 600 KB' ], ], diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php index 8ac2579eb..f32bb1b4b 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php @@ -367,7 +367,7 @@
- +
diff --git a/tests/functional/Admin/Catalog/AttributeCest.php b/tests/functional/Admin/Catalog/AttributeCest.php index d1a203d5b..ef4d9a5a9 100644 --- a/tests/functional/Admin/Catalog/AttributeCest.php +++ b/tests/functional/Admin/Catalog/AttributeCest.php @@ -7,6 +7,12 @@ use Webkul\Attribute\Models\Attribute; class AttributeCest { + /** + * Test attribute index page. + * + * @param FunctionalTester $I + * @return void + */ public function testIndex(FunctionalTester $I): void { $attribute = $I->have(Attribute::class); @@ -21,6 +27,12 @@ class AttributeCest $I->see($attribute->admin_name, '//script[@type="text/x-template"]'); } + /** + * Attribute creation test. + * + * @param FunctionalTester $I + * @return void + */ public function testCreate(FunctionalTester $I): void { $I->loginAsAdmin(); @@ -40,6 +52,12 @@ class AttributeCest $I->seeRecord(Attribute::class, $testData); } + /** + * Attribute updation test. + * + * @param FunctionalTester $I + * @return void + */ public function testEdit(FunctionalTester $I): void { $attribute = $I->have(Attribute::class, ['use_in_flat' => 0]); @@ -66,11 +84,11 @@ class AttributeCest } /** - * @param FunctionalTester $I + * Fill form. * - * @param bool $skipType - * - * @return array with the test-data + * @param FunctionalTester $I + * @param bool $skipType + * @return array */ private function fillForm(FunctionalTester $I, bool $skipType = false): array { From 7dd7b42c251dc376f3947a56554d9c19b0d67072 Mon Sep 17 00:00:00 2001 From: DS-13 Date: Thu, 16 Sep 2021 02:50:46 +0300 Subject: [PATCH 8/8] FEAT: Check if headers weren't sent already --- packages/Webkul/Core/src/Http/Middleware/SecureHeaders.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/Webkul/Core/src/Http/Middleware/SecureHeaders.php b/packages/Webkul/Core/src/Http/Middleware/SecureHeaders.php index 64c2085cf..248a14af2 100644 --- a/packages/Webkul/Core/src/Http/Middleware/SecureHeaders.php +++ b/packages/Webkul/Core/src/Http/Middleware/SecureHeaders.php @@ -55,6 +55,10 @@ class SecureHeaders */ private function removeUnwantedHeaders() { + if (headers_sent()) { + return; + } + foreach ($this->unwantedHeaderList as $header) { header_remove($header); }