Skip to content

Commit e0c6228

Browse files
ENGCOM-6071: [ImportExport] Fixing the Export page that has a large amount of exported files #24954
2 parents 3c87d79 + 79da983 commit e0c6228

File tree

7 files changed

+94
-1
lines changed

7 files changed

+94
-1
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminAssertVisiblePagerActionGroup">
12+
<seeElement selector="{{AdminExportGridPagerSection.pager}}" stepKey="seeGridPager"/>
13+
<seeElement selector="{{AdminGridRowsPerPage.count}}" stepKey="seeCountPerPageElement"/>
14+
</actionGroup>
15+
</actionGroups>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminNavigateToExportPageActionGroup">
12+
<amOnPage url="{{AdminExportIndexPage.url}}" stepKey="navigateToExportPage"/>
13+
<waitForPageLoad stepKey="waitForExportPageOpened"/>
14+
</actionGroup>
15+
</actionGroups>

app/code/Magento/ImportExport/Test/Mftf/Page/AdminExportIndexPage.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/PageObject.xsd">
1111
<page name="AdminExportIndexPage" url="admin/export/" area="admin" module="Magento_ImportExport">
1212
<section name="AdminExportMainSection"/>
13+
<section name="AdminExportGridPagerSection"/>
1314
</page>
1415
</pages>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
11+
<section name="AdminExportGridPagerSection">
12+
<element name="pager" type="text" selector=".admin__data-grid-header div.admin__data-grid-pager-wrap"/>
13+
<element name="recordsLabel" type="text" selector=".admin__data-grid-header .admin__control-support-text"/>
14+
</section>
15+
</sections>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="AdminExportPagerGridTest">
12+
<annotations>
13+
<features value="ImportExport"/>
14+
<stories value="Export Grid"/>
15+
<title value="Testing if the grid is present on export page"/>
16+
<description value="Admin should be able to see the grid onn export page"/>
17+
<severity value="CRITICAL"/>
18+
<group value="importExport"/>
19+
</annotations>
20+
<before>
21+
<actionGroup ref="LoginAsAdmin" stepKey="LoginAsAdmin"/>
22+
</before>
23+
<after>
24+
<actionGroup ref="logout" stepKey="logout"/>
25+
</after>
26+
<actionGroup ref="AdminNavigateToExportPageActionGroup" stepKey="navigateToExportPage"/>
27+
<actionGroup ref="AdminAssertVisiblePagerActionGroup" stepKey="seeGridPager"/>
28+
</test>
29+
</tests>

app/code/Magento/ImportExport/Ui/DataProvider/ExportFileDataProvider.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,23 @@
77

88
namespace Magento\ImportExport\Ui\DataProvider;
99

10+
use Magento\Framework\App\ObjectManager;
1011
use Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider;
1112
use Magento\Framework\Filesystem\DriverInterface;
1213
use Magento\Framework\App\Filesystem\DirectoryList;
1314
use Magento\Framework\Filesystem;
15+
use Magento\Framework\Filesystem\Io\File;
1416

1517
/**
1618
* Data provider for export grid.
1719
*/
1820
class ExportFileDataProvider extends DataProvider
1921
{
22+
/**
23+
* @var File|null
24+
*/
25+
private $fileIO;
26+
2027
/**
2128
* @var DriverInterface
2229
*/
@@ -37,6 +44,7 @@ class ExportFileDataProvider extends DataProvider
3744
* @param \Magento\Framework\Api\FilterBuilder $filterBuilder
3845
* @param DriverInterface $file
3946
* @param Filesystem $filesystem
47+
* @param File|null $fileIO
4048
* @param array $meta
4149
* @param array $data
4250
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
@@ -51,6 +59,7 @@ public function __construct(
5159
\Magento\Framework\Api\FilterBuilder $filterBuilder,
5260
DriverInterface $file,
5361
Filesystem $filesystem,
62+
File $fileIO = null,
5463
array $meta = [],
5564
array $data = []
5665
) {
@@ -67,6 +76,8 @@ public function __construct(
6776
$meta,
6877
$data
6978
);
79+
80+
$this->fileIO = $fileIO ?: ObjectManager::getInstance()->get(File::class);
7081
}
7182

7283
/**
@@ -89,10 +100,14 @@ public function getData()
89100
}
90101
$result = [];
91102
foreach ($files as $file) {
92-
$result['items'][]['file_name'] = basename($file);
103+
$result['items'][]['file_name'] = $this->fileIO->getPathInfo($file)['basename'];
93104
}
94105

106+
$pageSize = (int) $this->request->getParam('paging')['pageSize'];
107+
$pageCurrent = (int) $this->request->getParam('paging')['current'];
108+
$pageOffset = ($pageCurrent - 1) * $pageSize;
95109
$result['totalRecords'] = count($result['items']);
110+
$result['items'] = array_slice($result['items'], $pageOffset, $pageSize);
96111

97112
return $result;
98113
}

app/code/Magento/ImportExport/view/adminhtml/ui_component/export_grid.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@
3434
</settings>
3535
</dataProvider>
3636
</dataSource>
37+
<listingToolbar name="listing_top">
38+
<paging name="listing_paging"/>
39+
</listingToolbar>
3740
<columns name="export_grid_columns">
3841
<column name="file_name">
3942
<settings>

0 commit comments

Comments
 (0)