Skip to content

Commit 7076b99

Browse files
authored
Merge pull request #4981 from magento-tsg/2.3-develop-pr80
[TSG] Fixes for 2.3 (pr80) (2.3-develop)
2 parents 0572853 + 12495a1 commit 7076b99

File tree

16 files changed

+165
-183
lines changed

16 files changed

+165
-183
lines changed

app/code/Magento/Catalog/Test/Mftf/Test/AdvanceCatalogSearchSimpleProductTest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@
1919
<group value="Catalog"/>
2020
</annotations>
2121
<before>
22+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
23+
<actionGroup ref="deleteAllProductsUsingProductGrid" stepKey="deleteAllProducts"/>
2224
<createData entity="ApiProductWithDescription" stepKey="product"/>
2325
</before>
2426
<after>
2527
<deleteData createDataKey="product" stepKey="delete"/>
28+
<actionGroup ref="logout" stepKey="logoutFromAdmin"/>
2629
</after>
2730
</test>
2831
<test name="AdvanceCatalogSearchSimpleProductBySkuTest">

app/code/Magento/CatalogInventory/Test/Mftf/ActionGroup/AdminAssertDisabledQtyActionGroup.xml

Lines changed: 0 additions & 19 deletions
This file was deleted.

app/code/Magento/CatalogInventory/Ui/DataProvider/Product/Form/Modifier/AdvancedInventory.php

Lines changed: 41 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
declare(strict_types=1);
7-
86
namespace Magento\CatalogInventory\Ui\DataProvider\Product\Form\Modifier;
97

108
use Magento\Catalog\Controller\Adminhtml\Product\Initialization\StockDataFilter;
@@ -224,9 +222,48 @@ private function prepareMeta()
224222
) - 1,
225223
'disabled' => $this->locator->getProduct()->isLockedAttribute($fieldCode),
226224
];
225+
$qty['arguments']['data']['config'] = [
226+
'component' => 'Magento_CatalogInventory/js/components/qty-validator-changer',
227+
'group' => 'quantity_and_stock_status_qty',
228+
'dataType' => 'number',
229+
'formElement' => 'input',
230+
'componentType' => 'field',
231+
'visible' => '1',
232+
'require' => '0',
233+
'additionalClasses' => 'admin__field-small',
234+
'label' => __('Quantity'),
235+
'scopeLabel' => '[GLOBAL]',
236+
'dataScope' => 'qty',
237+
'validation' => [
238+
'validate-number' => true,
239+
'less-than-equals-to' => StockDataFilter::MAX_QTY_VALUE,
240+
],
241+
'imports' => [
242+
'handleChanges' => '${$.provider}:data.product.stock_data.is_qty_decimal',
243+
],
244+
'sortOrder' => 10,
245+
];
246+
$advancedInventoryButton['arguments']['data']['config'] = [
247+
'displayAsLink' => true,
248+
'formElement' => 'container',
249+
'componentType' => 'container',
250+
'component' => 'Magento_Ui/js/form/components/button',
251+
'template' => 'ui/form/components/button/container',
252+
'actions' => [
253+
[
254+
'targetName' => 'product_form.product_form.advanced_inventory_modal',
255+
'actionName' => 'toggleModal',
256+
],
257+
],
258+
'title' => __('Advanced Inventory'),
259+
'provider' => false,
260+
'additionalForGroup' => true,
261+
'source' => 'product_details',
262+
'sortOrder' => 20,
263+
];
227264
$container['children'] = [
228-
'qty' => $this->getQtyMetaStructure(),
229-
'advanced_inventory_button' => $this->getAdvancedInventoryButtonMetaStructure(),
265+
'qty' => $qty,
266+
'advanced_inventory_button' => $advancedInventoryButton,
230267
];
231268

232269
$this->meta = $this->arrayManager->merge(
@@ -236,74 +273,4 @@ private function prepareMeta()
236273
);
237274
}
238275
}
239-
240-
/**
241-
* Get Qty meta structure
242-
*
243-
* @return array
244-
*/
245-
private function getQtyMetaStructure()
246-
{
247-
return [
248-
'arguments' => [
249-
'data' => [
250-
'config' => [
251-
'component' => 'Magento_CatalogInventory/js/components/qty-validator-changer',
252-
'group' => 'quantity_and_stock_status_qty',
253-
'dataType' => 'number',
254-
'formElement' => 'input',
255-
'componentType' => 'field',
256-
'visible' => '1',
257-
'require' => '0',
258-
'additionalClasses' => 'admin__field-small',
259-
'label' => __('Quantity'),
260-
'scopeLabel' => '[GLOBAL]',
261-
'dataScope' => 'qty',
262-
'validation' => [
263-
'validate-number' => true,
264-
'less-than-equals-to' => StockDataFilter::MAX_QTY_VALUE,
265-
],
266-
'imports' => [
267-
'handleChanges' => '${$.provider}:data.product.stock_data.is_qty_decimal',
268-
],
269-
'sortOrder' => 10,
270-
'disabled' => $this->locator->getProduct()->isLockedAttribute('quantity_and_stock_status'),
271-
]
272-
]
273-
]
274-
];
275-
}
276-
277-
/**
278-
* Get advances inventory button meta structure
279-
*
280-
* @return array
281-
*/
282-
private function getAdvancedInventoryButtonMetaStructure()
283-
{
284-
return [
285-
'arguments' => [
286-
'data' => [
287-
'config' => [
288-
'displayAsLink' => true,
289-
'formElement' => 'container',
290-
'componentType' => 'container',
291-
'component' => 'Magento_Ui/js/form/components/button',
292-
'template' => 'ui/form/components/button/container',
293-
'actions' => [
294-
[
295-
'targetName' => 'product_form.product_form.advanced_inventory_modal',
296-
'actionName' => 'toggleModal',
297-
],
298-
],
299-
'title' => __('Advanced Inventory'),
300-
'provider' => false,
301-
'additionalForGroup' => true,
302-
'source' => 'product_details',
303-
'sortOrder' => 20,
304-
]
305-
]
306-
]
307-
];
308-
}
309276
}

app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_form.xml

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,8 @@
7272
<link name="linkedValue">${$.provider}:data.product.stock_data.manage_stock</link>
7373
</links>
7474
<exports>
75-
<link name="disabled">${$.parentName}.manage_stock:disabled</link>
7675
<link name="checked">${$.parentName}.manage_stock:disabled</link>
7776
</exports>
78-
<imports>
79-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
80-
</imports>
8177
</settings>
8278
<formElements>
8379
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -103,7 +99,6 @@
10399
<dataScope>quantity_and_stock_status.qty</dataScope>
104100
<links>
105101
<link name="value">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:value</link>
106-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
107102
</links>
108103
<imports>
109104
<link name="handleChanges">${$.provider}:data.product.stock_data.is_qty_decimal</link>
@@ -150,12 +145,8 @@
150145
<link name="linkedValue">${$.provider}:data.product.stock_data.min_qty</link>
151146
</links>
152147
<exports>
153-
<link name="disabled">${$.parentName}.min_qty:disabled</link>
154148
<link name="checked">${$.parentName}.min_qty:disabled</link>
155149
</exports>
156-
<imports>
157-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
158-
</imports>
159150
</settings>
160151
<formElements>
161152
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -216,13 +207,6 @@
216207
<class name="admin__field-no-label">true</class>
217208
</additionalClasses>
218209
<dataScope>use_config_min_sale_qty</dataScope>
219-
<exports>
220-
<link name="disabled">${$.parentName}.min_sale_qty:disabled</link>
221-
<link name="checked">${$.parentName}.min_sale_qty:disabled</link>
222-
</exports>
223-
<imports>
224-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
225-
</imports>
226210
</settings>
227211
<formElements>
228212
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -319,12 +303,8 @@
319303
<link name="linkedValue">${$.provider}:data.product.stock_data.max_sale_qty</link>
320304
</links>
321305
<exports>
322-
<link name="disabled">${$.parentName}.max_sale_qty:disabled</link>
323306
<link name="checked">${$.parentName}.max_sale_qty:disabled</link>
324307
</exports>
325-
<imports>
326-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
327-
</imports>
328308
</settings>
329309
<formElements>
330310
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -352,7 +332,6 @@
352332
<dataScope>stock_data.is_qty_decimal</dataScope>
353333
<imports>
354334
<link name="visible">${$.provider}:data.product.stock_data.manage_stock</link>
355-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
356335
</imports>
357336
</settings>
358337
<formElements>
@@ -375,7 +354,6 @@
375354
<dataScope>stock_data.is_decimal_divided</dataScope>
376355
<imports>
377356
<link name="visible">${$.provider}:data.product.stock_data.manage_stock</link>
378-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
379357
</imports>
380358
</settings>
381359
<formElements>
@@ -433,12 +411,8 @@
433411
<link name="linkedValue">${$.provider}:data.product.stock_data.backorders</link>
434412
</links>
435413
<exports>
436-
<link name="disabled">${$.parentName}.backorders:disabled</link>
437414
<link name="checked">${$.parentName}.backorders:disabled</link>
438415
</exports>
439-
<imports>
440-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
441-
</imports>
442416
</settings>
443417
<formElements>
444418
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -492,12 +466,8 @@
492466
<link name="linkedValue">${$.provider}:data.product.stock_data.notify_stock_qty</link>
493467
</links>
494468
<exports>
495-
<link name="disabled">${$.parentName}.notify_stock_qty:disabled</link>
496469
<link name="checked">${$.parentName}.notify_stock_qty:disabled</link>
497470
</exports>
498-
<imports>
499-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
500-
</imports>
501471
</settings>
502472
<formElements>
503473
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -553,12 +523,8 @@
553523
<link name="linkedValue">${$.provider}:data.product.stock_data.enable_qty_increments</link>
554524
</links>
555525
<exports>
556-
<link name="disabled">${$.parentName}.enable_qty_increments:disabled</link>
557526
<link name="checked">${$.parentName}.enable_qty_increments:disabled</link>
558527
</exports>
559-
<imports>
560-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
561-
</imports>
562528
</settings>
563529
<formElements>
564530
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -616,12 +582,8 @@
616582
<link name="linkedValue">${$.provider}:data.product.stock_data.qty_increments</link>
617583
</links>
618584
<exports>
619-
<link name="disabled">${$.parentName}.qty_increments:disabled</link>
620585
<link name="checked">${$.parentName}.qty_increments:disabled</link>
621586
</exports>
622-
<imports>
623-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
624-
</imports>
625587
</settings>
626588
<formElements>
627589
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -656,9 +618,6 @@
656618
<scopeLabel>[GLOBAL]</scopeLabel>
657619
<label translate="true">Stock Status</label>
658620
<dataScope>is_in_stock</dataScope>
659-
<imports>
660-
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
661-
</imports>
662621
</settings>
663622
<formElements>
664623
<select>

app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext/Collection.php

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -212,10 +212,8 @@ public function __construct(
212212
DefaultFilterStrategyApplyCheckerInterface $defaultFilterStrategyApplyChecker = null
213213
) {
214214
$this->queryFactory = $catalogSearchData;
215-
if ($searchResultFactory === null) {
216-
$this->searchResultFactory = \Magento\Framework\App\ObjectManager::getInstance()
215+
$this->searchResultFactory = $searchResultFactory ?? \Magento\Framework\App\ObjectManager::getInstance()
217216
->get(\Magento\Framework\Api\Search\SearchResultFactory::class);
218-
}
219217
parent::__construct(
220218
$entityFactory,
221219
$logger,
@@ -427,25 +425,40 @@ protected function _renderFiltersBefore()
427425
return;
428426
}
429427

430-
$this->prepareSearchTermFilter();
431-
$this->preparePriceAggregation();
432-
433-
$searchCriteria = $this->getSearchCriteriaResolver()->resolve();
434-
try {
435-
$this->searchResult = $this->getSearch()->search($searchCriteria);
436-
$this->_totalRecords = $this->getTotalRecordsResolver($this->searchResult)->resolve();
437-
} catch (EmptyRequestDataException $e) {
438-
/** @var \Magento\Framework\Api\Search\SearchResultInterface $searchResult */
439-
$this->searchResult = $this->searchResultFactory->create()->setItems([]);
440-
} catch (NonExistingRequestNameException $e) {
441-
$this->_logger->error($e->getMessage());
442-
throw new LocalizedException(__('An error occurred. For details, see the error log.'));
428+
if ($this->searchRequestName !== 'quick_search_container'
429+
|| strlen(trim($this->queryText))
430+
) {
431+
$this->prepareSearchTermFilter();
432+
$this->preparePriceAggregation();
433+
434+
$searchCriteria = $this->getSearchCriteriaResolver()->resolve();
435+
try {
436+
$this->searchResult = $this->getSearch()->search($searchCriteria);
437+
$this->_totalRecords = $this->getTotalRecordsResolver($this->searchResult)->resolve();
438+
} catch (EmptyRequestDataException $e) {
439+
$this->searchResult = $this->createEmptyResult();
440+
} catch (NonExistingRequestNameException $e) {
441+
$this->_logger->error($e->getMessage());
442+
throw new LocalizedException(__('An error occurred. For details, see the error log.'));
443+
}
444+
} else {
445+
$this->searchResult = $this->createEmptyResult();
443446
}
444447

445448
$this->getSearchResultApplier($this->searchResult)->apply();
446449
parent::_renderFiltersBefore();
447450
}
448451

452+
/**
453+
* Create empty search result
454+
*
455+
* @return SearchResultInterface
456+
*/
457+
private function createEmptyResult()
458+
{
459+
return $this->searchResultFactory->create()->setItems([]);
460+
}
461+
449462
/**
450463
* Set sort order for search query.
451464
*

0 commit comments

Comments
 (0)