Skip to content

Commit 5fafe38

Browse files
committed
Merge remote-tracking branch 'origin/develop' into MAGETWO-51472
2 parents 8e592e2 + 3fa0347 commit 5fafe38

File tree

50 files changed

+604
-186
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+604
-186
lines changed

app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Gallery/Content.php

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,21 +122,40 @@ public function getAddImagesButton()
122122
*/
123123
public function getImagesJson()
124124
{
125-
if (is_array($this->getElement()->getImages())) {
126-
$value = $this->getElement()->getImages();
125+
$value = $this->getElement()->getImages();
126+
if (is_array($value) &&
127+
array_key_exists('images', $value) &&
128+
is_array($value['images']) &&
129+
count($value['images'])
130+
) {
127131
$directory = $this->_filesystem->getDirectoryRead(DirectoryList::MEDIA);
128-
if (is_array($value['images']) && count($value['images']) > 0) {
129-
foreach ($value['images'] as &$image) {
130-
$image['url'] = $this->_mediaConfig->getMediaUrl($image['file']);
131-
$fileHandler = $directory->stat($this->_mediaConfig->getMediaPath($image['file']));
132-
$image['size'] = $fileHandler['size'];
133-
}
134-
return $this->_jsonEncoder->encode($value['images']);
132+
$images = $this->sortImagesByPosition($value['images']);
133+
foreach ($images as &$image) {
134+
$image['url'] = $this->_mediaConfig->getMediaUrl($image['file']);
135+
$fileHandler = $directory->stat($this->_mediaConfig->getMediaPath($image['file']));
136+
$image['size'] = $fileHandler['size'];
135137
}
138+
return $this->_jsonEncoder->encode($images);
136139
}
137140
return '[]';
138141
}
139142

143+
/**
144+
* Sort images array by position key
145+
*
146+
* @param array $images
147+
* @return array
148+
*/
149+
private function sortImagesByPosition($images)
150+
{
151+
if (is_array($images)) {
152+
usort($images, function ($imageA, $imageB) {
153+
return ($imageA['position'] < $imageB['position']) ? -1 : 1;
154+
});
155+
}
156+
return $images;
157+
}
158+
140159
/**
141160
* @return string
142161
*/

app/code/Magento/Catalog/Test/Unit/Block/Adminhtml/Product/Helper/Form/Gallery/ContentTest.php

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -82,37 +82,59 @@ public function testGetImagesJson()
8282
['file_1.jpg', 'catalog/product/image_1.jpg'],
8383
['file_2.jpg', 'catalog/product/image_2.jpg']
8484
];
85-
// @codingStandardsIgnoreStart
86-
$encodedString = '[{"value_id":"1","file":"image_1.jpg","media_type":"image","url":"http:\/\/magento2.dev\/pub\/media\/catalog\/product\/image_1.jpg","size":879394},{"value_id":"2","file":"image_2.jpg","media_type":"image","url":"http:\/\/magento2.dev\/pub\/media\/catalog\/product\/image`_2.jpg","size":399659}]';
87-
// @codingStandardsIgnoreEnd
85+
86+
$sizeMap = [
87+
['catalog/product/image_1.jpg', ['size' => 399659]],
88+
['catalog/product/image_2.jpg', ['size' => 879394]]
89+
];
90+
91+
$imagesResult = [
92+
[
93+
'value_id' => '2',
94+
'file' => 'file_2.jpg',
95+
'media_type' => 'image',
96+
'position' => '0',
97+
'url' => 'url_to_the_image/image_2.jpg',
98+
'size' => 879394
99+
],
100+
[
101+
'value_id' => '1',
102+
'file' => 'file_1.jpg',
103+
'media_type' => 'image',
104+
'position' => '1',
105+
'url' => 'url_to_the_image/image_1.jpg',
106+
'size' => 399659
107+
]
108+
];
109+
88110
$images = [
89111
'images' => [
90112
[
91113
'value_id' => '1',
92114
'file' => 'file_1.jpg',
93115
'media_type' => 'image',
116+
'position' => '1'
94117
] ,
95118
[
96119
'value_id' => '2',
97120
'file' => 'file_2.jpg',
98121
'media_type' => 'image',
122+
'position' => '0'
99123
]
100124
]
101125
];
102-
$firstStat = ['size' => 879394];
103-
$secondStat = ['size' => 399659];
126+
104127
$this->content->setElement($this->galleryMock);
105-
$this->galleryMock->expects($this->any())->method('getImages')->willReturn($images);
128+
$this->galleryMock->expects($this->once())->method('getImages')->willReturn($images);
106129
$this->fileSystemMock->expects($this->once())->method('getDirectoryRead')->willReturn($this->readMock);
107130

108131
$this->mediaConfigMock->expects($this->any())->method('getMediaUrl')->willReturnMap($url);
109-
$this->mediaConfigMock->expects($this->any())->method('getMediaPath')->willReturn($mediaPath);
132+
$this->mediaConfigMock->expects($this->any())->method('getMediaPath')->willReturnMap($mediaPath);
110133

111-
$this->readMock->expects($this->at(0))->method('stat')->willReturn($firstStat);
112-
$this->readMock->expects($this->at(1))->method('stat')->willReturn($secondStat);
113-
$this->jsonEncoderMock->expects($this->once())->method('encode')->willReturn($encodedString);
134+
$this->readMock->expects($this->any())->method('stat')->willReturnMap($sizeMap);
135+
$this->jsonEncoderMock->expects($this->once())->method('encode')->willReturnCallback('json_encode');
114136

115-
$this->assertSame($encodedString, $this->content->getImagesJson());
137+
$this->assertSame(json_encode($imagesResult), $this->content->getImagesJson());
116138
}
117139

118140
public function testGetImagesJsonWithoutImages()

app/code/Magento/Catalog/Ui/DataProvider/Product/Form/Modifier/Categories.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ protected function createNewCategoryModal(array $meta)
104104
'config' => [
105105
'isTemplate' => false,
106106
'componentType' => 'modal',
107-
'dataScope' => 'data.new_category',
108107
'options' => [
109108
'title' => __('New Category'),
110109
],
@@ -193,7 +192,6 @@ protected function customizeCategoriesField(array $meta)
193192
'levelsVisibility' => '1',
194193
'elementTmpl' => 'ui/grid/filters/elements/ui-select',
195194
'options' => $this->getCategoriesTree(),
196-
'scopeLabel' => null,
197195
'listens' => [
198196
'index=create_category:responseData' => 'setParsed',
199197
'newOption' => 'toggleOptionSelected'

app/code/Magento/Catalog/Ui/DataProvider/Product/Form/Modifier/General.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,14 +259,12 @@ protected function customizeNewDateRangeField(array $meta)
259259
if ($fromFieldPath && $toFieldPath) {
260260
$fromContainerPath = $this->arrayManager->slicePath($fromFieldPath, 0, -2);
261261
$toContainerPath = $this->arrayManager->slicePath($toFieldPath, 0, -2);
262-
$scopeLabel = $this->arrayManager->get($fromFieldPath . self::META_CONFIG_PATH . '/scopeLabel', $meta);
263262

264263
$meta = $this->arrayManager->merge(
265264
$fromFieldPath . self::META_CONFIG_PATH,
266265
$meta,
267266
[
268267
'label' => __('Set Product as New From'),
269-
'scopeLabel' => null,
270268
'additionalClasses' => 'admin__field-date',
271269
]
272270
);
@@ -287,7 +285,6 @@ protected function customizeNewDateRangeField(array $meta)
287285
'additionalClasses' => 'admin__control-grouped-date',
288286
'breakLine' => false,
289287
'component' => 'Magento_Ui/js/form/components/group',
290-
'scopeLabel' => $scopeLabel,
291288
]
292289
);
293290
$meta = $this->arrayManager->set(

app/code/Magento/Catalog/Ui/DataProvider/Product/Form/Modifier/ScheduleDesignUpdate.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,12 @@ protected function customizeDateRangeField(array $meta)
6868
$toFieldPath = $this->arrayManager->findPath(self::CODE_CUSTOM_DESIGN_TO, $meta, null, 'children');
6969
$fromContainerPath = $this->arrayManager->slicePath($fromFieldPath, 0, -2);
7070
$toContainerPath = $this->arrayManager->slicePath($toFieldPath, 0, -2);
71-
$scopeLabel = $this->arrayManager->get($fromFieldPath . self::META_CONFIG_PATH . '/scopeLabel', $meta);
7271

7372
$meta = $this->arrayManager->merge(
7473
$fromFieldPath . self::META_CONFIG_PATH,
7574
$meta,
7675
[
7776
'label' => __('Schedule Update From'),
78-
'scopeLabel' => null,
7977
'additionalClasses' => 'admin__field-date',
8078
]
8179
);
@@ -96,7 +94,6 @@ protected function customizeDateRangeField(array $meta)
9694
'additionalClasses' => 'admin__control-grouped-date',
9795
'breakLine' => false,
9896
'component' => 'Magento_Ui/js/form/components/group',
99-
'scopeLabel' => $scopeLabel,
10097
]
10198
);
10299
$meta = $this->arrayManager->set(

app/code/Magento/Catalog/view/adminhtml/ui_component/category_form.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,11 +552,11 @@
552552
<field name="custom_design_from">
553553
<argument name="data" xsi:type="array">
554554
<item name="config" xsi:type="array">
555+
<item name="label" xsi:type="string" translate="true">Schedule Update From</item>
555556
<item name="additionalClasses" xsi:type="string">admin__field-date</item>
556557
<item name="sortOrder" xsi:type="number">230</item>
557558
<item name="dataType" xsi:type="string">string</item>
558559
<item name="formElement" xsi:type="string">date</item>
559-
<item name="scopeLabel" xsi:type="string"/>
560560
<item name="imports" xsi:type="array">
561561
<item name="disabled" xsi:type="string">ns = ${ $.ns }, index = custom_use_parent_settings :checked</item>
562562
</item>

app/code/Magento/CatalogImportExport/Model/Import/Product.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1270,7 +1270,7 @@ protected function _saveProductCategories(array $categoriesData)
12701270
);
12711271
}
12721272
if ($categoriesIn) {
1273-
$this->_connection->insertOnDuplicate($tableName, $categoriesIn, ['position']);
1273+
$this->_connection->insertOnDuplicate($tableName, $categoriesIn, ['product_id', 'category_id']);
12741274
}
12751275
}
12761276
return $this;

app/code/Magento/CatalogInventory/Ui/DataProvider/Product/Form/Modifier/AdvancedInventory.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,8 @@ private function prepareMeta()
176176
'visible' => '1',
177177
'require' => '0',
178178
'additionalClasses' => 'admin__field-small',
179+
'label' => __('Quantity'),
180+
'scopeLabel' => '[GLOBAL]',
179181
'dataScope' => 'qty',
180182
'validation' => [
181183
'validate-number' => true,

app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_form.xml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,11 @@
5050
<field name="manage_stock">
5151
<argument name="data" xsi:type="array">
5252
<item name="config" xsi:type="array">
53+
<item name="label" xsi:type="string" translate="true">Manage Stock</item>
5354
<item name="formElement" xsi:type="string">select</item>
5455
<item name="rawOptions" xsi:type="boolean">true</item>
5556
<item name="dataScope" xsi:type="string">manage_stock</item>
57+
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
5658
<item name="value" xsi:type="object">Magento\CatalogInventory\Model\Source\StockConfiguration</item>
5759
</item>
5860
<item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item>
@@ -122,8 +124,10 @@
122124
<field name="min_qty">
123125
<argument name="data" xsi:type="array">
124126
<item name="config" xsi:type="array">
127+
<item name="label" xsi:type="string" translate="true">Out-of-Stock Threshold</item>
125128
<item name="formElement" xsi:type="string">input</item>
126129
<item name="dataScope" xsi:type="string">min_qty</item>
130+
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
127131
<item name="validation" xsi:type="array">
128132
<item name="validate-number" xsi:type="boolean">true</item>
129133
</item>
@@ -171,9 +175,11 @@
171175
<field name="min_sale_qty">
172176
<argument name="data" xsi:type="array">
173177
<item name="config" xsi:type="array">
178+
<item name="label" xsi:type="string" translate="true">Minimum Qty Allowed in Shopping Cart</item>
174179
<item name="component" xsi:type="string">Magento_CatalogInventory/js/components/qty-validator-changer</item>
175180
<item name="formElement" xsi:type="string">input</item>
176181
<item name="dataScope" xsi:type="string">min_sale_qty</item>
182+
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
177183
<item name="validation" xsi:type="array">
178184
<item name="validate-number" xsi:type="boolean">true</item>
179185
<item name="validate-digits" xsi:type="boolean">true</item>
@@ -225,8 +231,10 @@
225231
<field name="max_sale_qty">
226232
<argument name="data" xsi:type="array">
227233
<item name="config" xsi:type="array">
234+
<item name="label" xsi:type="string" translate="true">Maximum Qty Allowed in Shopping Cart</item>
228235
<item name="formElement" xsi:type="string">input</item>
229236
<item name="dataScope" xsi:type="string">max_sale_qty</item>
237+
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
230238
<item name="validation" xsi:type="array">
231239
<item name="validate-number" xsi:type="boolean">true</item>
232240
</item>
@@ -314,9 +322,11 @@
314322
<field name="backorders">
315323
<argument name="data" xsi:type="array">
316324
<item name="config" xsi:type="array">
325+
<item name="label" xsi:type="string" translate="true">Backorders</item>
317326
<item name="formElement" xsi:type="string">select</item>
318327
<item name="rawOptions" xsi:type="boolean">true</item>
319328
<item name="dataScope" xsi:type="string">backorders</item>
329+
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
320330
<item name="value" xsi:type="object">Magento\CatalogInventory\Model\Source\StockConfiguration</item>
321331
</item>
322332
<item name="options" xsi:type="object">Magento\CatalogInventory\Model\Source\Backorders</item>
@@ -353,7 +363,7 @@
353363
<item name="config" xsi:type="array">
354364
<item name="formElement" xsi:type="string">container</item>
355365
<item name="component" xsi:type="string">Magento_Ui/js/form/components/group</item>
356-
<item name="label" xsi:type="string" translate="true">Use deferred Stock update</item>
366+
<item name="label" xsi:type="string" translate="true">Use Deferred Stock Update</item>
357367
<item name="dataScope" xsi:type="string">stock_data</item>
358368
<item name="sortOrder" xsi:type="number">850</item>
359369
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
@@ -362,6 +372,8 @@
362372
<field name="deferred_stock_update">
363373
<argument name="data" xsi:type="array">
364374
<item name="config" xsi:type="array">
375+
<item name="label" xsi:type="string" translate="true">Use Deferred Stock Update</item>
376+
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
365377
<item name="formElement" xsi:type="string">select</item>
366378
<item name="rawOptions" xsi:type="boolean">true</item>
367379
<item name="dataScope" xsi:type="string">deferred_stock_update</item>
@@ -413,7 +425,9 @@
413425
<field name="notify_stock_qty">
414426
<argument name="data" xsi:type="array">
415427
<item name="config" xsi:type="array">
428+
<item name="label" xsi:type="string" translate="true">Notify for Quantity Below</item>
416429
<item name="formElement" xsi:type="string">input</item>
430+
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
417431
<item name="dataScope" xsi:type="string">notify_stock_qty</item>
418432
<item name="validation" xsi:type="array">
419433
<item name="validate-number" xsi:type="boolean">true</item>
@@ -462,8 +476,10 @@
462476
<field name="enable_qty_increments">
463477
<argument name="data" xsi:type="array">
464478
<item name="config" xsi:type="array">
479+
<item name="label" xsi:type="string" translate="true">Enable Qty Increments</item>
465480
<item name="formElement" xsi:type="string">select</item>
466481
<item name="rawOptions" xsi:type="boolean">true</item>
482+
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
467483
<item name="dataScope" xsi:type="string">enable_qty_increments</item>
468484
<item name="value" xsi:type="object">Magento\CatalogInventory\Model\Source\StockConfiguration</item>
469485
</item>
@@ -513,9 +529,11 @@
513529
<field name="qty_increments">
514530
<argument name="data" xsi:type="array">
515531
<item name="config" xsi:type="array">
532+
<item name="label" xsi:type="string" translate="true">Qty Increments</item>
516533
<item name="component" xsi:type="string">Magento_CatalogInventory/js/components/qty-validator-changer</item>
517534
<item name="formElement" xsi:type="string">input</item>
518535
<item name="dataScope" xsi:type="string">qty_increments</item>
536+
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
519537
<item name="validation" xsi:type="array">
520538
<item name="validate-number" xsi:type="boolean">true</item>
521539
<item name="validate-digits" xsi:type="boolean">true</item>
@@ -570,6 +588,8 @@
570588
<field name="is_in_stock">
571589
<argument name="data" xsi:type="array">
572590
<item name="config" xsi:type="array">
591+
<item name="label" xsi:type="string" translate="true">Stock Status</item>
592+
<item name="scopeLabel" xsi:type="string">[GLOBAL]</item>
573593
<item name="formElement" xsi:type="string">select</item>
574594
<item name="dataScope" xsi:type="string">is_in_stock</item>
575595
<item name="value" xsi:type="number">1</item>

0 commit comments

Comments
 (0)