Skip to content

Commit dc53b31

Browse files
committed
Added unique index per row entry for the admin grids, prevents duplicated rows from showing up after sorting the grid a few times. Fixes #6
1 parent 904587e commit dc53b31

8 files changed

+20
-12
lines changed

Model/ResourceModel/Catalog/Category/UrlKeyCollection.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public function loadData($printQuery = false, $logQuery = false)
7373
*/
7474
public function createDataObject(array $arguments = []): DataObject
7575
{
76+
$arguments['hash'] = sha1(json_encode($arguments) ?: '');
77+
7678
$obj = $this->_entityFactory->create($this->_itemObjectClass, ['data' => $arguments]);
7779

7880
$attributes = [];

Model/ResourceModel/Catalog/Category/UrlPathCollection.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public function loadData($printQuery = false, $logQuery = false)
7373
*/
7474
public function createDataObject(array $arguments = []): DataObject
7575
{
76+
$arguments['hash'] = sha1(json_encode($arguments) ?: '');
77+
7678
$obj = $this->_entityFactory->create($this->_itemObjectClass, ['data' => $arguments]);
7779

7880
$attributes = [];

Model/ResourceModel/Catalog/Product/UrlKeyCollection.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public function loadData($printQuery = false, $logQuery = false)
7373
*/
7474
public function createDataObject(array $arguments = []): DataObject
7575
{
76+
$arguments['hash'] = sha1(json_encode($arguments) ?: '');
77+
7678
$obj = $this->_entityFactory->create($this->_itemObjectClass, ['data' => $arguments]);
7779

7880
$attributes = [];

Model/ResourceModel/Catalog/Product/UrlPathCollection.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public function loadData($printQuery = false, $logQuery = false)
7373
*/
7474
public function createDataObject(array $arguments = []): DataObject
7575
{
76+
$arguments['hash'] = sha1(json_encode($arguments) ?: '');
77+
7678
$obj = $this->_entityFactory->create($this->_itemObjectClass, ['data' => $arguments]);
7779

7880
$attributes = [];

view/adminhtml/ui_component/baldwin_urldataintegritychecker_grid_catalog_category_urlkey.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
<argument name="dataProvider" xsi:type="configurableObject">
2020
<argument name="class" xsi:type="string">Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider</argument>
2121
<argument name="name" xsi:type="string">baldwin_urldataintegritychecker_grid_catalog_category_urlkey_data_source</argument>
22-
<argument name="primaryFieldName" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</argument>
23-
<argument name="requestFieldName" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</argument>
22+
<argument name="primaryFieldName" xsi:type="string">hash</argument>
23+
<argument name="requestFieldName" xsi:type="string">hash</argument>
2424
<argument name="data" xsi:type="array">
2525
<item name="config" xsi:type="array">
2626
<item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
2727
<item name="update_url" xsi:type="url" path="mui/index/render"/>
2828
<item name="storageConfig" xsi:type="array">
29-
<item name="indexField" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</item>
29+
<item name="indexField" xsi:type="string">hash</item>
3030
</item>
3131
</item>
3232
</argument>

view/adminhtml/ui_component/baldwin_urldataintegritychecker_grid_catalog_category_urlpath.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
<argument name="dataProvider" xsi:type="configurableObject">
2020
<argument name="class" xsi:type="string">Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider</argument>
2121
<argument name="name" xsi:type="string">baldwin_urldataintegritychecker_grid_catalog_category_urlpath_data_source</argument>
22-
<argument name="primaryFieldName" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</argument>
23-
<argument name="requestFieldName" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</argument>
22+
<argument name="primaryFieldName" xsi:type="string">hash</argument>
23+
<argument name="requestFieldName" xsi:type="string">hash</argument>
2424
<argument name="data" xsi:type="array">
2525
<item name="config" xsi:type="array">
2626
<item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
2727
<item name="update_url" xsi:type="url" path="mui/index/render"/>
2828
<item name="storageConfig" xsi:type="array">
29-
<item name="indexField" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</item>
29+
<item name="indexField" xsi:type="string">hash</item>
3030
</item>
3131
</item>
3232
</argument>

view/adminhtml/ui_component/baldwin_urldataintegritychecker_grid_catalog_product_urlkey.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
<argument name="dataProvider" xsi:type="configurableObject">
2020
<argument name="class" xsi:type="string">Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider</argument>
2121
<argument name="name" xsi:type="string">baldwin_urldataintegritychecker_grid_catalog_product_urlkey_data_source</argument>
22-
<argument name="primaryFieldName" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</argument>
23-
<argument name="requestFieldName" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</argument>
22+
<argument name="primaryFieldName" xsi:type="string">hash</argument>
23+
<argument name="requestFieldName" xsi:type="string">hash</argument>
2424
<argument name="data" xsi:type="array">
2525
<item name="config" xsi:type="array">
2626
<item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
2727
<item name="update_url" xsi:type="url" path="mui/index/render"/>
2828
<item name="storageConfig" xsi:type="array">
29-
<item name="indexField" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</item>
29+
<item name="indexField" xsi:type="string">hash</item>
3030
</item>
3131
</item>
3232
</argument>

view/adminhtml/ui_component/baldwin_urldataintegritychecker_grid_catalog_product_urlpath.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
<argument name="dataProvider" xsi:type="configurableObject">
2020
<argument name="class" xsi:type="string">Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider</argument>
2121
<argument name="name" xsi:type="string">baldwin_urldataintegritychecker_grid_catalog_product_urlpath_data_source</argument>
22-
<argument name="primaryFieldName" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</argument>
23-
<argument name="requestFieldName" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</argument>
22+
<argument name="primaryFieldName" xsi:type="string">hash</argument>
23+
<argument name="requestFieldName" xsi:type="string">hash</argument>
2424
<argument name="data" xsi:type="array">
2525
<item name="config" xsi:type="array">
2626
<item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
2727
<item name="update_url" xsi:type="url" path="mui/index/render"/>
2828
<item name="storageConfig" xsi:type="array">
29-
<item name="indexField" xsi:type="string">just-by-specifying-some-attribute-which-doesnt-exists-works-here</item>
29+
<item name="indexField" xsi:type="string">hash</item>
3030
</item>
3131
</item>
3232
</argument>

0 commit comments

Comments
 (0)