Skip to content

Commit 6908b2c

Browse files
committed
Merge branch '2.4-develop' of https://github.com/magento-commerce/magento2ce into ACP2E-816
2 parents 92c6dbd + 7f5e674 commit 6908b2c

File tree

193 files changed

+4550
-938
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

193 files changed

+4550
-938
lines changed

app/code/Magento/Backend/Controller/Adminhtml/System/Design/Save.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
namespace Magento\Backend\Controller\Adminhtml\System\Design;
88

99
use Magento\Framework\App\Action\HttpPostActionInterface;
10+
use Magento\Framework\Filter\FilterInput;
1011

1112
/**
1213
* Save design action.
@@ -21,13 +22,13 @@ class Save extends \Magento\Backend\Controller\Adminhtml\System\Design implement
2122
*/
2223
protected function _filterPostData($data)
2324
{
24-
$inputFilter = new \Zend_Filter_Input(
25+
$inputFilter = new FilterInput(
2526
['date_from' => $this->dateFilter, 'date_to' => $this->dateFilter],
2627
[],
2728
$data
2829
);
29-
$data = $inputFilter->getUnescaped();
30-
return $data;
30+
31+
return $inputFilter->getUnescaped();
3132
}
3233

3334
/**
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Backend\ViewModel;
9+
10+
use Magento\Framework\App\Config\ScopeConfigInterface;
11+
use Magento\Framework\View\Element\Block\ArgumentInterface;
12+
13+
/**
14+
* Get configuration values related to limit total number of products in grid collection.
15+
*/
16+
class LimitTotalNumberOfProductsInGrid implements ArgumentInterface
17+
{
18+
/**
19+
* @var ScopeConfigInterface
20+
*/
21+
private ScopeConfigInterface $scopeConfig;
22+
23+
/**
24+
* @param ScopeConfigInterface $scopeConfig
25+
*/
26+
public function __construct(
27+
ScopeConfigInterface $scopeConfig
28+
) {
29+
$this->scopeConfig = $scopeConfig;
30+
}
31+
32+
/**
33+
* Check if configuration setting to limit total number of products in grid is enabled.
34+
*
35+
* @return bool
36+
*/
37+
public function limitTotalNumberOfProducts(): bool
38+
{
39+
return (bool)$this->scopeConfig->getValue('admin/grid/limit_total_number_of_products');
40+
}
41+
42+
/**
43+
* Get records threshold for limit total number of products in collection.
44+
*
45+
* @return int
46+
*/
47+
public function getRecordsLimit(): int
48+
{
49+
return (int)$this->scopeConfig->getValue('admin/grid/records_limit');
50+
}
51+
}

app/code/Magento/Backend/etc/adminhtml/system.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,23 @@
480480
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
481481
</field>
482482
</group>
483+
<group id="grid" translate="label" type="text" sortOrder="45" showInDefault="1">
484+
<label>Admin Grids</label>
485+
<field id="limit_total_number_of_products" translate="label comment"
486+
type="select" sortOrder="1" showInDefault="1" canRestore="1">
487+
<label>Limit Number of Products in Grid</label>
488+
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
489+
<comment>Limit total number of products in grid collection.</comment>
490+
</field>
491+
<field id="records_limit" translate="label comment" type="text" sortOrder="2" showInDefault="1" canRestore="1">
492+
<label>Records Limit</label>
493+
<validate>validate-digits validate-digits-range digits-range-20000-</validate>
494+
<comment>Limit total number of products in grid collection if their number is greater than this value. Minimum value: 20000.</comment>
495+
<depends>
496+
<field id="limit_total_number_of_products">1</field>
497+
</depends>
498+
</field>
499+
</group>
483500
</section>
484501
<section id="web" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1">
485502
<label>Web</label>

app/code/Magento/Backend/etc/config.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@
3131
<max_height>1200</max_height>
3232
</upload_configuration>
3333
</system>
34+
<admin>
35+
<grid>
36+
<limit_total_number_of_products>0</limit_total_number_of_products>
37+
<records_limit>20000</records_limit>
38+
</grid>
39+
</admin>
3440
<general>
3541
<validator_data>
3642
<input_types>

app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
7+
use Magento\Catalog\Ui\DataProvider\Product\ProductCollection;
8+
69
?>
710
<?php
811
/**
@@ -18,8 +21,10 @@
1821
/**
1922
* @var \Magento\Backend\Block\Widget\Grid\Extended $block
2023
* @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer
24+
* @var \Magento\Backend\ViewModel\LimitTotalNumberOfProductsInGrid $viewModel
2125
*/
2226
$numColumns = count($block->getColumns());
27+
$viewModel = $block->getViewModel();
2328

2429
?>
2530
<?php if ($block->getCollection()): ?>
@@ -68,11 +73,15 @@ $numColumns = count($block->getColumns());
6873
<?php endif; ?>
6974
<?php $countRecords = $block->getCollection()->getSize(); ?>
7075
<div class="admin__control-support-text">
76+
<?php if (!$block->getCollection() instanceof ProductCollection
77+
|| !$viewModel->limitTotalNumberOfProducts()
78+
|| $countRecords < $viewModel->getRecordsLimit()): ?>
7179
<span id="<?= $block->escapeHtml($block->getHtmlId()) ?>-total-count"
7280
<?= /* @noEscape */ $block->getUiId('total-count') ?>>
7381
<?= /* @noEscape */ $countRecords ?>
7482
</span>
75-
<?= $block->escapeHtml(__('records found')) ?>
83+
<?= $block->escapeHtml(__('records found')) ?>
84+
<?php endif; ?>
7685
<span id="<?= $block->escapeHtml($block->getHtmlId()) ?>_massaction-count"
7786
class="mass-select-info _empty">
7887
<strong data-role="counter">0</strong>
@@ -124,23 +133,27 @@ $numColumns = count($block->getColumns());
124133
<span><?= $block->escapeHtml(__('Previous page')) ?></span>
125134
</button>
126135
<?php endif; ?>
127-
<input type="text"
128-
id="<?= $block->escapeHtml($block->getHtmlId()) ?>_page-current"
129-
name="<?= $block->escapeHtmlAttr($block->getVarNamePage()) ?>"
130-
value="<?= $block->escapeHtmlAttr($_curPage) ?>"
131-
class="admin__control-text"
132-
<?= /* @noEscape */ $block->getUiId('current-page') ?> />
133-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
134-
'onkeypress',
135-
/* @noEscape */ $block->getJsObjectName() . '.inputPage(event, \'' .
136-
/* @noEscape */ $_lastPage . '\')',
137-
'#' . $block->escapeHtml($block->getHtmlId()) . '_page-current'
138-
) ?>
139-
<label class="admin__control-support-text"
140-
for="<?= $block->escapeHtml($block->getHtmlId()) ?>_page-current">
141-
<?= /* @noEscape */ __('of %1', '<span>' .
142-
$block->getCollection()->getLastPageNumber() . '</span>') ?>
143-
</label>
136+
<?php if (!$block->getCollection() instanceof ProductCollection
137+
|| !$viewModel->limitTotalNumberOfProducts()
138+
|| $countRecords < $viewModel->getRecordsLimit()): ?>
139+
<input type="text"
140+
id="<?= $block->escapeHtml($block->getHtmlId()) ?>_page-current"
141+
name="<?= $block->escapeHtmlAttr($block->getVarNamePage()) ?>"
142+
value="<?= $block->escapeHtmlAttr($_curPage) ?>"
143+
class="admin__control-text"
144+
<?= /* @noEscape */ $block->getUiId('current-page') ?> />
145+
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
146+
'onkeypress',
147+
/* @noEscape */ $block->getJsObjectName() . '.inputPage(event, \'' .
148+
/* @noEscape */ $_lastPage . '\')',
149+
'#' . $block->escapeHtml($block->getHtmlId()) . '_page-current'
150+
) ?>
151+
<label class="admin__control-support-text"
152+
for="<?= $block->escapeHtml($block->getHtmlId()) ?>_page-current">
153+
<?= /* @noEscape */ __('of %1', '<span>' .
154+
$block->getCollection()->getLastPageNumber() . '</span>') ?>
155+
</label>
156+
<?php endif; ?>
144157
<?php if ($_curPage < $_lastPage): ?>
145158
<button type="button"
146159
title="<?= $block->escapeHtmlAttr(__('Next page')) ?>"

app/code/Magento/Bundle/Test/Mftf/Test/AdvanceCatalogSearchBundleByDescriptionTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<severity value="MAJOR"/>
1818
<testCaseId value="MC-25427"/>
1919
<group value="bundle"/>
20-
<group value="SearchEngineElasticsearch"/>
20+
<group value="SearchEngine"/>
2121
<group value="pr_exclude"/>
2222
</annotations>
2323
<before>

app/code/Magento/Bundle/Test/Mftf/Test/AdvanceCatalogSearchBundleByPriceTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<severity value="MAJOR"/>
1818
<testCaseId value="MC-25435"/>
1919
<group value="bundle"/>
20-
<group value="SearchEngineElasticsearch"/>
20+
<group value="SearchEngine"/>
2121
</annotations>
2222
<before>
2323
<createData entity="ApiProductWithDescription" stepKey="simple1" before="simple2"/>

app/code/Magento/Bundle/Test/Mftf/Test/AdvanceCatalogSearchBundleByShortDescriptionTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<severity value="MAJOR"/>
1818
<testCaseId value="MC-25434"/>
1919
<group value="bundle"/>
20-
<group value="SearchEngineElasticsearch"/>
20+
<group value="SearchEngine"/>
2121
</annotations>
2222
<before>
2323
<createData entity="ApiProductWithDescription" stepKey="simple1" before="simple2"/>

app/code/Magento/Bundle/Test/Mftf/Test/AdvanceCatalogSearchBundleProductTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<severity value="MAJOR"/>
1818
<testCaseId value="MC-25342"/>
1919
<group value="bundle"/>
20-
<group value="SearchEngineElasticsearch"/>
20+
<group value="SearchEngine"/>
2121
</annotations>
2222
<before>
2323
<createData entity="ApiProductWithDescription" stepKey="simple1" before="simple2"/>

app/code/Magento/Bundle/Test/Mftf/Test/StorefrontAdvanceCatalogSearchBundleBySkuWithHyphenTest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<severity value="MAJOR"/>
1818
<testCaseId value="MC-28812"/>
1919
<group value="Bundle"/>
20-
<group value="SearchEngineElasticsearch"/>
20+
<group value="SearchEngine"/>
2121
<group value="pr_exclude"/>
2222
</annotations>
2323
<before>
@@ -44,4 +44,4 @@
4444
<deleteData createDataKey="simple2" before="delete" stepKey="deleteSimple2"/>
4545
</after>
4646
</test>
47-
</tests>
47+
</tests>

0 commit comments

Comments
 (0)