Skip to content

Commit 9d4530d

Browse files
committed
Fixing the export page issue, if there are a huge amount of exported items
1 parent 68c48d5 commit 9d4530d

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

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

Lines changed: 17 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,9 @@ public function __construct(
6776
$meta,
6877
$data
6978
);
79+
80+
$this->fileIO = $fileIO ?: ObjectManager::getInstance()->get(File::class);
81+
$this->request = $request;
7082
}
7183

7284
/**
@@ -89,10 +101,14 @@ public function getData()
89101
}
90102
$result = [];
91103
foreach ($files as $file) {
92-
$result['items'][]['file_name'] = basename($file);
104+
$result['items'][]['file_name'] = $this->fileIO->getPathInfo($file)['basename'];
93105
}
94106

107+
$pageSize = (int) $this->request->getParam('paging')['pageSize'];
108+
$pageCurrent = (int) $this->request->getParam('paging')['current'];
109+
$pageOffset = ($pageCurrent - 1) * $pageSize;
95110
$result['totalRecords'] = count($result['items']);
111+
$result['items'] = array_slice($result['items'], $pageOffset, $pageSize);
96112

97113
return $result;
98114
}

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)