Skip to content

Commit 6010122

Browse files
committed
Further improvements to edit url in grids, now works on older Magento versions.
1 parent ebf5a7d commit 6010122

9 files changed

+97
-181
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Baldwin\UrlDataIntegrityChecker\Ui\Component\Listing\Column;
6+
7+
use Magento\Theme\Ui\Component\Listing\Column\EditAction as ColumnEditAction;
8+
9+
class EditAction extends ColumnEditAction
10+
{
11+
/**
12+
* @param array{
13+
* data: ?array{
14+
* items: array{
15+
* array<string, mixed>
16+
* },
17+
* totalRecords: int
18+
* }
19+
* } $dataSource
20+
*
21+
* @return array{
22+
* data: ?array{
23+
* items: array{
24+
* array<string, mixed>
25+
* },
26+
* totalRecords: int
27+
* }
28+
* }
29+
*/
30+
public function prepareDataSource(array $dataSource)
31+
{
32+
$indexField = $this->getData('config/indexField');
33+
$editUrlPath = $this->getData('config/editUrlPath');
34+
35+
if (!is_string($indexField) || $indexField === '' || !is_string($editUrlPath) || $editUrlPath === '') {
36+
return $dataSource;
37+
}
38+
39+
if (isset($dataSource['data']['items'])) {
40+
foreach ($dataSource['data']['items'] as &$item) {
41+
if (isset($item[$indexField])) {
42+
$entityId = $item[$indexField];
43+
44+
$storeId = null;
45+
if (isset($item['storeId'])) {
46+
$storeId = $item['storeId'];
47+
}
48+
49+
$item[$this->getData('name')] = [
50+
'edit' => [
51+
'href' => $this->urlBuilder->getUrl(
52+
$editUrlPath,
53+
[
54+
'id' => $entityId,
55+
'store' => $storeId,
56+
]
57+
),
58+
'label' => __('Edit'),
59+
],
60+
];
61+
}
62+
}
63+
}
64+
65+
return $dataSource;
66+
}
67+
}

Ui/Component/Listing/Columns/CategoryActions.php

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

Ui/Component/Listing/Columns/ProductActions.php

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

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"magento/module-config": "^100.1 || ^101.0",
1919
"magento/module-cron": "^100.1",
2020
"magento/module-store": "^100.1 || ^101.0",
21+
"magento/module-theme": "^100.1 || ^101.0",
2122
"magento/module-ui": "^100.1 || ^101.0",
2223
"symfony/console": "^2.5 || ^3.0 || ^4.0 || ^5.0"
2324
},

composer.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

view/adminhtml/ui_component/baldwin_urldataintegritychecker_grid_catalog_category_urlkey.xml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,13 @@
6969
</item>
7070
</argument>
7171
</column>
72-
<actionsColumn name="actions" class="Baldwin\UrlDataIntegrityChecker\Ui\Component\Listing\Columns\CategoryActions">
73-
<settings>
74-
<indexField>catId</indexField>
75-
</settings>
72+
<actionsColumn name="actions" class="Baldwin\UrlDataIntegrityChecker\Ui\Component\Listing\Column\EditAction">
73+
<argument name="data" xsi:type="array">
74+
<item name="config" xsi:type="array">
75+
<item name="indexField" xsi:type="string">catId</item>
76+
<item name="editUrlPath" xsi:type="string">catalog/category/edit</item>
77+
</item>
78+
</argument>
7679
</actionsColumn>
7780
</columns>
7881
</listing>

view/adminhtml/ui_component/baldwin_urldataintegritychecker_grid_catalog_category_urlpath.xml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,13 @@
6969
</item>
7070
</argument>
7171
</column>
72-
<actionsColumn name="actions" class="Baldwin\UrlDataIntegrityChecker\Ui\Component\Listing\Columns\CategoryActions">
73-
<settings>
74-
<indexField>catId</indexField>
75-
</settings>
72+
<actionsColumn name="actions" class="Baldwin\UrlDataIntegrityChecker\Ui\Component\Listing\Column\EditAction">
73+
<argument name="data" xsi:type="array">
74+
<item name="config" xsi:type="array">
75+
<item name="indexField" xsi:type="string">catId</item>
76+
<item name="editUrlPath" xsi:type="string">catalog/category/edit</item>
77+
</item>
78+
</argument>
7679
</actionsColumn>
7780
</columns>
7881
</listing>

view/adminhtml/ui_component/baldwin_urldataintegritychecker_grid_catalog_product_urlkey.xml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,13 @@
6969
</item>
7070
</argument>
7171
</column>
72-
<actionsColumn name="actions" class="Baldwin\UrlDataIntegrityChecker\Ui\Component\Listing\Columns\ProductActions">
73-
<settings>
74-
<indexField>productId</indexField>
75-
</settings>
72+
<actionsColumn name="actions" class="Baldwin\UrlDataIntegrityChecker\Ui\Component\Listing\Column\EditAction">
73+
<argument name="data" xsi:type="array">
74+
<item name="config" xsi:type="array">
75+
<item name="indexField" xsi:type="string">productId</item>
76+
<item name="editUrlPath" xsi:type="string">catalog/product/edit</item>
77+
</item>
78+
</argument>
7679
</actionsColumn>
7780
</columns>
7881
</listing>

view/adminhtml/ui_component/baldwin_urldataintegritychecker_grid_catalog_product_urlpath.xml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,13 @@
6969
</item>
7070
</argument>
7171
</column>
72-
<actionsColumn name="actions" class="Baldwin\UrlDataIntegrityChecker\Ui\Component\Listing\Columns\ProductActions">
73-
<settings>
74-
<indexField>productId</indexField>
75-
</settings>
72+
<actionsColumn name="actions" class="Baldwin\UrlDataIntegrityChecker\Ui\Component\Listing\Column\EditAction">
73+
<argument name="data" xsi:type="array">
74+
<item name="config" xsi:type="array">
75+
<item name="indexField" xsi:type="string">productId</item>
76+
<item name="editUrlPath" xsi:type="string">catalog/product/edit</item>
77+
</item>
78+
</argument>
7679
</actionsColumn>
7780
</columns>
7881
</listing>

0 commit comments

Comments
 (0)