Skip to content
Snippets Groups Projects
Commit b4b421e3 authored by Valeriy Nayda's avatar Valeriy Nayda
Browse files

MAGETWO-35896: PHP - Apply New Data Grids in Products Data Grids

-- MAGETWO-35868:  [Admin] Applying Enhanced Grid Component to Product Grid
-- refactoring
parent a37550d1
Branches
No related merge requests found
...@@ -7,11 +7,6 @@ namespace Magento\Catalog\Ui\Component; ...@@ -7,11 +7,6 @@ namespace Magento\Catalog\Ui\Component;
class ColumnFactory class ColumnFactory
{ {
/**
* @var int
*/
private $columnSortOrder = 0;
/** /**
* @var \Magento\Framework\View\Element\UiComponentFactory * @var \Magento\Framework\View\Element\UiComponentFactory
*/ */
...@@ -49,22 +44,20 @@ class ColumnFactory ...@@ -49,22 +44,20 @@ class ColumnFactory
/** /**
* @param \Magento\Catalog\Api\Data\ProductAttributeInterface $attribute * @param \Magento\Catalog\Api\Data\ProductAttributeInterface $attribute
* @param \Magento\Framework\View\Element\UiComponent\ContextInterface $context * @param \Magento\Framework\View\Element\UiComponent\ContextInterface $context
* @param int $columnsAmount * @param array $config
* @return \Magento\Ui\Component\Listing\Columns\ColumnInterface * @return \Magento\Ui\Component\Listing\Columns\ColumnInterface
*/ */
public function create($attribute, $context, $columnsAmount) public function create($attribute, $context, array $config = [])
{ {
$this->columnSortOrder += 1;
$columnName = $attribute->getAttributeCode(); $columnName = $attribute->getAttributeCode();
$config = [ $config = array_merge([
'label' => __($attribute->getDefaultFrontendLabel()), 'label' => __($attribute->getDefaultFrontendLabel()),
'dataType' => $this->getDataType($attribute), 'dataType' => $this->getDataType($attribute),
'sorting' => 'asc', 'sorting' => 'asc',
'align' => 'left', 'align' => 'left',
'add_field' => true, 'add_field' => true,
'visible' => $attribute->getIsVisibleInGrid(), 'visible' => $attribute->getIsVisibleInGrid(),
'sortOrder' => $this->columnSortOrder + $columnsAmount, ], $config);
];
if ($attribute->usesSource()) { if ($attribute->usesSource()) {
$config['options'] = $attribute->getSource()->getAllOptions(); $config['options'] = $attribute->getSource()->getAllOptions();
......
...@@ -31,10 +31,11 @@ class Columns extends \Magento\Ui\Component\Listing\Columns ...@@ -31,10 +31,11 @@ class Columns extends \Magento\Ui\Component\Listing\Columns
*/ */
public function prepare() public function prepare()
{ {
$columnsAmount = count($this->components); $columnSortOrder = count($this->components);
foreach ($this->attributeRepository->getList() as $attribute) { foreach ($this->attributeRepository->getList() as $attribute) {
if (!isset($this->components[$attribute->getAttributeCode()])) { if (!isset($this->components[$attribute->getAttributeCode()])) {
$column = $this->columnFactory->create($attribute, $this->getContext(), $columnsAmount); $config['sortOrder'] = ++$columnSortOrder;
$column = $this->columnFactory->create($attribute, $this->getContext(), $config);
$column->prepare(); $column->prepare();
$this->addComponent($attribute->getAttributeCode(), $column); $this->addComponent($attribute->getAttributeCode(), $column);
} }
......
...@@ -10,6 +10,9 @@ use Magento\Framework\View\Element\UiComponent\ContextInterface; ...@@ -10,6 +10,9 @@ use Magento\Framework\View\Element\UiComponent\ContextInterface;
class Price extends \Magento\Ui\Component\Listing\Columns\Column class Price extends \Magento\Ui\Component\Listing\Columns\Column
{ {
/**
* Column name
*/
const NAME = 'price'; const NAME = 'price';
/** /**
...@@ -46,13 +49,14 @@ class Price extends \Magento\Ui\Component\Listing\Columns\Column ...@@ -46,13 +49,14 @@ class Price extends \Magento\Ui\Component\Listing\Columns\Column
*/ */
public function prepareDataSource(array & $dataSource) public function prepareDataSource(array & $dataSource)
{ {
$store = $this->storeManager->getStore(
$this->context->getFilterParam('store_id', \Magento\Store\Model\Store::DEFAULT_STORE_ID)
);
$currencyCode = $store->getCurrentCurrencyCode();
$currencyRate = $store->getCurrentCurrencyRate();
$currency = $this->localeCurrency->getCurrency($currencyCode);
if (isset($dataSource['data']['items'])) { if (isset($dataSource['data']['items'])) {
$store = $this->storeManager->getStore(
$this->context->getFilterParam('store_id', \Magento\Store\Model\Store::DEFAULT_STORE_ID)
);
$currencyCode = $store->getCurrentCurrencyCode();
$currencyRate = $store->getCurrentCurrencyRate();
$currency = $this->localeCurrency->getCurrency($currencyCode);
$fieldName = $this->getData('name'); $fieldName = $this->getData('name');
foreach ($dataSource['data']['items'] as & $item) { foreach ($dataSource['data']['items'] as & $item) {
$item[$fieldName] = $currency->toCurrency(sprintf("%f", $item[$fieldName] * $currencyRate)); $item[$fieldName] = $currency->toCurrency(sprintf("%f", $item[$fieldName] * $currencyRate));
......
...@@ -46,8 +46,9 @@ class ProductActions extends Column ...@@ -46,8 +46,9 @@ class ProductActions extends Column
*/ */
public function prepareDataSource(array &$dataSource) public function prepareDataSource(array &$dataSource)
{ {
$storeId = $this->context->getFilterParam('store_id');
if (isset($dataSource['data']['items'])) { if (isset($dataSource['data']['items'])) {
$storeId = $this->context->getFilterParam('store_id');
foreach ($dataSource['data']['items'] as &$item) { foreach ($dataSource['data']['items'] as &$item) {
$item[$this->getData('name')]['edit'] = [ $item[$this->getData('name')]['edit'] = [
'href' => $this->urlBuilder->getUrl( 'href' => $this->urlBuilder->getUrl(
......
...@@ -281,7 +281,7 @@ ...@@ -281,7 +281,7 @@
<item name="sorting" xsi:type="string">asc</item> <item name="sorting" xsi:type="string">asc</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">ID</item> <item name="label" xsi:type="string" translate="true">ID</item>
<item name="sortOrder" xsi:type="number">1</item> <item name="sortOrder" xsi:type="number">10</item>
</item> </item>
</argument> </argument>
</column> </column>
...@@ -299,7 +299,7 @@ ...@@ -299,7 +299,7 @@
<item name="sorting" xsi:type="string">asc</item> <item name="sorting" xsi:type="string">asc</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">Thumbnail</item> <item name="label" xsi:type="string" translate="true">Thumbnail</item>
<item name="sortOrder" xsi:type="number">2</item> <item name="sortOrder" xsi:type="number">20</item>
</item> </item>
</argument> </argument>
</column> </column>
...@@ -314,7 +314,7 @@ ...@@ -314,7 +314,7 @@
<item name="sorting" xsi:type="string">asc</item> <item name="sorting" xsi:type="string">asc</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">Name</item> <item name="label" xsi:type="string" translate="true">Name</item>
<item name="sortOrder" xsi:type="number">3</item> <item name="sortOrder" xsi:type="number">30</item>
</item> </item>
</argument> </argument>
</column> </column>
...@@ -328,7 +328,7 @@ ...@@ -328,7 +328,7 @@
<item name="dataType" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">Type</item> <item name="label" xsi:type="string" translate="true">Type</item>
<item name="sortOrder" xsi:type="number">4</item> <item name="sortOrder" xsi:type="number">40</item>
</item> </item>
</argument> </argument>
</column> </column>
...@@ -342,7 +342,7 @@ ...@@ -342,7 +342,7 @@
<item name="dataType" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">Attribute Set</item> <item name="label" xsi:type="string" translate="true">Attribute Set</item>
<item name="sortOrder" xsi:type="number">5</item> <item name="sortOrder" xsi:type="number">50</item>
</item> </item>
</argument> </argument>
</column> </column>
...@@ -356,7 +356,7 @@ ...@@ -356,7 +356,7 @@
<item name="sorting" xsi:type="string">asc</item> <item name="sorting" xsi:type="string">asc</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">SKU</item> <item name="label" xsi:type="string" translate="true">SKU</item>
<item name="sortOrder" xsi:type="number">6</item> <item name="sortOrder" xsi:type="number">60</item>
</item> </item>
</argument> </argument>
</column> </column>
...@@ -371,7 +371,7 @@ ...@@ -371,7 +371,7 @@
<item name="sorting" xsi:type="string">asc</item> <item name="sorting" xsi:type="string">asc</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">Price</item> <item name="label" xsi:type="string" translate="true">Price</item>
<item name="sortOrder" xsi:type="number">7</item> <item name="sortOrder" xsi:type="number">70</item>
</item> </item>
</argument> </argument>
</column> </column>
...@@ -386,7 +386,7 @@ ...@@ -386,7 +386,7 @@
<item name="dataType" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">Visibility</item> <item name="label" xsi:type="string" translate="true">Visibility</item>
<item name="sortOrder" xsi:type="number">8</item> <item name="sortOrder" xsi:type="number">80</item>
</item> </item>
</argument> </argument>
</column> </column>
...@@ -401,7 +401,7 @@ ...@@ -401,7 +401,7 @@
<item name="dataType" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">Status</item> <item name="label" xsi:type="string" translate="true">Status</item>
<item name="sortOrder" xsi:type="number">9</item> <item name="sortOrder" xsi:type="number">90</item>
</item> </item>
</argument> </argument>
</column> </column>
...@@ -416,7 +416,7 @@ ...@@ -416,7 +416,7 @@
<item name="dataType" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">Websites</item> <item name="label" xsi:type="string" translate="true">Websites</item>
<item name="sortOrder" xsi:type="number">10</item> <item name="sortOrder" xsi:type="number">100</item>
</item> </item>
</argument> </argument>
</column> </column>
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
<item name="dataType" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item>
<item name="align" xsi:type="string">left</item> <item name="align" xsi:type="string">left</item>
<item name="label" xsi:type="string" translate="true">Quantity</item> <item name="label" xsi:type="string" translate="true">Quantity</item>
<item name="sortOrder" xsi:type="number">8</item>
</item> </item>
</argument> </argument>
</column> </column>
......
...@@ -85,7 +85,7 @@ interface ContextInterface ...@@ -85,7 +85,7 @@ interface ContextInterface
public function getRequestParam($key, $defaultValue = null); public function getRequestParam($key, $defaultValue = null);
/** /**
* Get filters * Get filters params
* *
* @return array * @return array
*/ */
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment