From 9bd460b871777026eb0b4df3385db8bcfcdf163e Mon Sep 17 00:00:00 2001 From: Valeriy Nayda <vnayda@ebay.com> Date: Thu, 25 Jun 2015 17:39:11 +0300 Subject: [PATCH] MAGETWO-35896: PHP - Apply New Data Grids in Products Data Grids -- MAGETWO-35868: [Admin] Applying Enhanced Grid Component to Product Grid -- refactoring --- .htaccess | 4 +- .../Product/AddStoreFieldToCollection.php | 5 +-- .../Product/ProductDataProvider.php | 10 ++--- app/code/Magento/Catalog/etc/adminhtml/di.xml | 1 - .../Customer/Model/Customer/DataProvider.php | 2 +- .../Entity/Collection/AbstractCollection.php | 32 ++++++++++++++ .../DataProvider/AbstractEavDataProvider.php | 43 ------------------- .../DataProvider/AddFieldToEavCollection.php | 22 ---------- .../AddFilterToCollectionInterface.php | 5 +-- 9 files changed, 45 insertions(+), 79 deletions(-) delete mode 100644 app/code/Magento/Ui/DataProvider/AbstractEavDataProvider.php delete mode 100644 app/code/Magento/Ui/DataProvider/AddFieldToEavCollection.php diff --git a/.htaccess b/.htaccess index 01f8f8dd24d..db51125fa8c 100644 --- a/.htaccess +++ b/.htaccess @@ -187,4 +187,6 @@ ## If running in cluster environment, uncomment this ## http://developer.yahoo.com/performance/rules.html#etags - #FileETag none \ No newline at end of file + #FileETag none + +SetEnv MAGE_MODE developer diff --git a/app/code/Magento/Catalog/Ui/DataProvider/Product/AddStoreFieldToCollection.php b/app/code/Magento/Catalog/Ui/DataProvider/Product/AddStoreFieldToCollection.php index 38c56980272..439c62044ba 100644 --- a/app/code/Magento/Catalog/Ui/DataProvider/Product/AddStoreFieldToCollection.php +++ b/app/code/Magento/Catalog/Ui/DataProvider/Product/AddStoreFieldToCollection.php @@ -33,9 +33,8 @@ class AddStoreFieldToCollection implements AddFilterToCollectionInterface */ public function addFilter(Collection $collection, $field, $condition = null) { - $storeId = isset($condition['eq']) ? $condition['eq'] : null; - if ($storeId) { - $collection->addStoreFilter($this->storeManager->getStore($storeId)); + if (isset($condition['eq']) && $condition['eq']) { + $collection->addStoreFilter($this->storeManager->getStore($condition['eq'])); } } } diff --git a/app/code/Magento/Catalog/Ui/DataProvider/Product/ProductDataProvider.php b/app/code/Magento/Catalog/Ui/DataProvider/Product/ProductDataProvider.php index f4f8e690aeb..a5dde67b3e7 100644 --- a/app/code/Magento/Catalog/Ui/DataProvider/Product/ProductDataProvider.php +++ b/app/code/Magento/Catalog/Ui/DataProvider/Product/ProductDataProvider.php @@ -10,7 +10,7 @@ use Magento\Catalog\Model\Resource\Product\CollectionFactory; /** * Class ProductDataProvider */ -class ProductDataProvider extends \Magento\Ui\DataProvider\AbstractEavDataProvider +class ProductDataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider { /** * Product collection @@ -46,8 +46,8 @@ class ProductDataProvider extends \Magento\Ui\DataProvider\AbstractEavDataProvid $primaryFieldName, $requestFieldName, CollectionFactory $collectionFactory, - array $addFieldStrategies, - array $addFilterStrategies, + array $addFieldStrategies = [], + array $addFilterStrategies = [], array $meta = [], array $data = [] ) { @@ -94,9 +94,9 @@ class ProductDataProvider extends \Magento\Ui\DataProvider\AbstractEavDataProvid public function addField($field, $alias = null) { if (isset($this->addFieldStrategies[$field])) { - $this->addFieldStrategies[$field]->addField($this->getCollection(), $field, $alias = null); + $this->addFieldStrategies[$field]->addField($this->getCollection(), $field, $alias); } else { - $this->addFieldStrategies['default']->addField($this->getCollection(), $field, $alias = null); + parent::addField($field, $alias); } } diff --git a/app/code/Magento/Catalog/etc/adminhtml/di.xml b/app/code/Magento/Catalog/etc/adminhtml/di.xml index a1b392c9586..dd16554ac01 100644 --- a/app/code/Magento/Catalog/etc/adminhtml/di.xml +++ b/app/code/Magento/Catalog/etc/adminhtml/di.xml @@ -69,7 +69,6 @@ <type name="Magento\Catalog\Ui\DataProvider\Product\ProductDataProvider"> <arguments> <argument name="addFieldStrategies" xsi:type="array"> - <item name="default" xsi:type="object">Magento\Ui\DataProvider\AddFieldToEavCollection</item> <item name="websites" xsi:type="object">Magento\Catalog\Ui\DataProvider\Product\AddWebsitesFieldToCollection</item> </argument> <argument name="addFilterStrategies" xsi:type="array"> diff --git a/app/code/Magento/Customer/Model/Customer/DataProvider.php b/app/code/Magento/Customer/Model/Customer/DataProvider.php index 8e482715ba7..d6fde62a17a 100644 --- a/app/code/Magento/Customer/Model/Customer/DataProvider.php +++ b/app/code/Magento/Customer/Model/Customer/DataProvider.php @@ -16,7 +16,7 @@ use Magento\Customer\Model\Resource\Customer\CollectionFactory as CustomerCollec /** * Class DataProvider */ -class DataProvider extends \Magento\Ui\DataProvider\AbstractEavDataProvider +class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider { /** * @var Collection diff --git a/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php b/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php index 96465ce1dfb..c458e464de2 100755 --- a/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php +++ b/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php @@ -1558,4 +1558,36 @@ abstract class AbstractCollection extends \Magento\Framework\Data\Collection\Abs } return parent::removeItemByKey($key); } + + /** + * Wrapper for compatibility with \Magento\Framework\Data\Collection\AbstractDb + * + * @param string $field + * @return $this|\Magento\Framework\Data\Collection\AbstractDb + */ + public function addFieldToSelect($field) + { + return $this->addAttributeToSelect($field); + } + + /** + * Wrapper for compatibility with \Magento\Framework\Data\Collection\AbstractDb + * + * @param string $field + * @return $this|\Magento\Framework\Data\Collection\AbstractDb + */ + public function removeFieldFromSelect($field) + { + return $this->removeAttributeToSelect($field); + } + + /** + * Wrapper for compatibility with \Magento\Framework\Data\Collection\AbstractDb + * + * @return $this|\Magento\Framework\Data\Collection\AbstractDb + */ + public function removeAllFieldsFromSelect() + { + return $this->removeAttributeToSelect(); + } } diff --git a/app/code/Magento/Ui/DataProvider/AbstractEavDataProvider.php b/app/code/Magento/Ui/DataProvider/AbstractEavDataProvider.php deleted file mode 100644 index 6733eb1b670..00000000000 --- a/app/code/Magento/Ui/DataProvider/AbstractEavDataProvider.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Ui\DataProvider; - -abstract class AbstractEavDataProvider extends AbstractDataProvider -{ - /** - * Add field to select - * - * @param string|array $field - * @param string|null $alias - * @return void - */ - public function addField($field, $alias = null) - { - $this->getCollection()->addAttributeToSelect($field); - } - - /** - * Removes field from select - * - * @param string|null $field - * @param bool $isAlias Alias identifier - * @return void - */ - public function removeField($field, $isAlias = false) - { - $this->getCollection()->removeAttributeToSelect($field); - } - - /** - * Removes all fields from select - * - * @return void - */ - public function removeAllFields() - { - $this->getCollection()->removeAttributeToSelect(); - } -} diff --git a/app/code/Magento/Ui/DataProvider/AddFieldToEavCollection.php b/app/code/Magento/Ui/DataProvider/AddFieldToEavCollection.php deleted file mode 100644 index 43c46300687..00000000000 --- a/app/code/Magento/Ui/DataProvider/AddFieldToEavCollection.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Ui\DataProvider; - -use Magento\Framework\Data\Collection; - -/** - * Class AddFieldToEavCollection - */ -class AddFieldToEavCollection implements AddFieldToCollectionInterface -{ - /** - * {@inheritdoc} - */ - public function addField(Collection $collection, $field, $alias = null) - { - $collection->addAttributeToSelect($field); - } -} diff --git a/app/code/Magento/Ui/DataProvider/AddFilterToCollectionInterface.php b/app/code/Magento/Ui/DataProvider/AddFilterToCollectionInterface.php index bc52878544d..9a14eebb43a 100644 --- a/app/code/Magento/Ui/DataProvider/AddFilterToCollectionInterface.php +++ b/app/code/Magento/Ui/DataProvider/AddFilterToCollectionInterface.php @@ -14,9 +14,8 @@ interface AddFilterToCollectionInterface { /** * @param Collection $collection - * @param $field - * @param null $condition - * @return mixed + * @param string $field + * @param string|null $condition */ public function addFilter(Collection $collection, $field, $condition = null); } -- GitLab