Skip to content

Commit a3267b4

Browse files
author
Volodymyr klymenko
committed
Merge branch 'develop' of github.corp.ebay.com:magento2/magento2ce into develop
2 parents a032053 + 271aec2 commit a3267b4

File tree

4 files changed

+63
-38
lines changed

4 files changed

+63
-38
lines changed

app/code/Magento/Catalog/Model/Observer.php

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -149,27 +149,10 @@ protected function _addCategoriesToMenu($categories, $parentCategoryNode, $block
149149
if (!$category->getIsActive()) {
150150
continue;
151151
}
152-
153-
$nodeId = 'category-node-' . $category->getId();
154-
155152
$block->addIdentity(\Magento\Catalog\Model\Category::CACHE_TAG . '_' . $category->getId());
156153

157154
$tree = $parentCategoryNode->getTree();
158-
159-
$isActiveCategory = false;
160-
/** @var \Magento\Catalog\Model\Category $currentCategory */
161-
$currentCategory = $this->_registry->registry('current_category');
162-
if ($currentCategory && $currentCategory->getId() == $category->getId()) {
163-
$isActiveCategory = true;
164-
}
165-
166-
$categoryData = [
167-
'name' => $category->getName(),
168-
'id' => $nodeId,
169-
'url' => $this->_catalogCategory->getCategoryUrl($category),
170-
'has_active' => $this->hasActive($category),
171-
'is_active' => $isActiveCategory
172-
];
155+
$categoryData = $this->getMenuCategoryData($category);
173156
$categoryNode = new \Magento\Framework\Data\Tree\Node($categoryData, 'id', $tree, $parentCategoryNode);
174157
$parentCategoryNode->addChild($categoryNode);
175158

@@ -183,6 +166,34 @@ protected function _addCategoriesToMenu($categories, $parentCategoryNode, $block
183166
}
184167
}
185168

169+
/**
170+
* Get category data to be added to the Menu
171+
*
172+
* @param \Magento\Framework\Data\Tree\Node $category
173+
* @return array
174+
*/
175+
public function getMenuCategoryData($category)
176+
{
177+
$nodeId = 'category-node-' . $category->getId();
178+
179+
$isActiveCategory = false;
180+
/** @var \Magento\Catalog\Model\Category $currentCategory */
181+
$currentCategory = $this->_registry->registry('current_category');
182+
if ($currentCategory && $currentCategory->getId() == $category->getId()) {
183+
$isActiveCategory = true;
184+
}
185+
186+
$categoryData = [
187+
'name' => $category->getName(),
188+
'id' => $nodeId,
189+
'url' => $this->_catalogCategory->getCategoryUrl($category),
190+
'has_active' => $this->hasActive($category),
191+
'is_active' => $isActiveCategory,
192+
];
193+
194+
return $categoryData;
195+
}
196+
186197
/**
187198
* Checks whether category belongs to active category's path
188199
*

app/code/Magento/Catalog/Test/Unit/Model/ObserverTest.php

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,27 @@ class ObserverTest extends \PHPUnit_Framework_TestCase
1818
protected $_observer;
1919

2020
/**
21-
* @var \Magento\Catalog\Helper\Category
21+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Helper\Category
2222
*/
2323
protected $_catalogCategory;
2424

2525
/**
26-
* @var \Magento\Catalog\Model\Category
26+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Category
2727
*/
2828
protected $_category;
2929

3030
/**
31-
* @var \Magento\Catalog\Model\Category
31+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Category
3232
*/
3333
protected $_childrenCategory;
3434

3535
/**
36-
* @var \Magento\Catalog\Model\Indexer\Category\Flat\State
36+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Indexer\Category\Flat\State
3737
*/
3838
protected $_categoryFlatState;
3939

4040
/**
41-
* @var \Magento\Store\Model\StoreManagerInterface
41+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Store\Model\StoreManagerInterface
4242
*/
4343
protected $_storeManager;
4444

@@ -64,11 +64,13 @@ public function setUp()
6464
->disableOriginalConstructor()
6565
->getMock();
6666

67+
$layerResolver = $this->_getCleanMock('Magento\Catalog\Model\Layer\Resolver');
68+
$layerResolver->expects($this->once())->method('get')->willReturn(null);
6769
$this->_observer = (new ObjectManager($this))->getObject('Magento\Catalog\Model\Observer', [
6870
'categoryResource' => $this->_getCleanMock('\Magento\Catalog\Model\Resource\Category'),
6971
'catalogProduct' => $this->_getCleanMock('\Magento\Catalog\Model\Resource\Product'),
7072
'storeManager' => $this->_storeManager,
71-
'catalogLayer' => $this->_getCleanMock('\Magento\Catalog\Model\Layer\Category'),
73+
'layerResolver' => $layerResolver,
7274
'indexIndexer' => $this->_getCleanMock('\Magento\Index\Model\Indexer'),
7375
'catalogCategory' => $this->_catalogCategory,
7476
'catalogData' => $this->_getCleanMock('\Magento\Catalog\Helper\Data'),
@@ -176,4 +178,23 @@ public function testAddCatalogToTopMenuItemsWithFlat()
176178

177179
$this->_observer->addCatalogToTopmenuItems($observer);
178180
}
181+
182+
public function testGetMenuCategoryData()
183+
{
184+
$category = $this->getMock('Magento\Catalog\Model\Category', ['getId', 'getName'], [], '', false);
185+
$category->expects($this->once())->method('getId')->willReturn('id');
186+
$category->expects($this->once())->method('getName')->willReturn('name');
187+
$this->_catalogCategory->expects($this->once())->method('getCategoryUrl')->willReturn('url');
188+
189+
$this->assertEquals(
190+
[
191+
'name' => 'name',
192+
'id' => 'category-node-id',
193+
'url' => 'url',
194+
'is_active' => false,
195+
'has_active' => false,
196+
],
197+
$this->_observer->getMenuCategoryData($category)
198+
);
199+
}
179200
}

app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/options.phtml

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
<td id="delete_button_container_<%- data.id %>" class="col-delete">
5959
<input type="hidden" class="delete-flag" name="option[delete][<%- data.id %>]" value="" />
6060
<?php if (!$block->getReadOnly() && !$block->canManageOptionDefaultOnly()):?>
61-
<button title="<?php echo __('Delete') ?>" type="button"
61+
<button id="delete_button_<%- data.id %>" title="<?php echo __('Delete') ?>" type="button"
6262
class="action- scalable delete delete-option"
6363
>
6464
<span><?php echo __('Delete') ?></span>
@@ -100,7 +100,6 @@ require([
100100
if (isNewOption && !this.isReadOnly) {
101101
this.enableNewOptionDeleteButton(data.id);
102102
}
103-
this.bindRemoveButtons();
104103
this.itemCount++;
105104
this.totalItems++;
106105
this.updateItemsCountField();
@@ -139,22 +138,16 @@ require([
139138
button.removeClassName('disabled');
140139
});
141140
},
142-
bindRemoveButtons: function() {
143-
var buttons = $$('.delete-option');
144-
for (var i = 0; i < buttons.length; i++) {
145-
if (!$(buttons[i]).binded) {
146-
$(buttons[i]).binded = true;
147-
Event.observe(buttons[i], 'click', this.remove.bind(this));
148-
}
149-
}
150-
}
151141
};
152142

153-
attributeOption.bindRemoveButtons();
154-
155143
if ($('add_new_option_button')) {
156144
Event.observe('add_new_option_button', 'click', attributeOption.add.bind(attributeOption));
157145
}
146+
147+
$('manage-options-panel').on('click', '.delete-option', function(event, element) {
148+
attributeOption.remove(event);
149+
});
150+
158151
<?php foreach ($block->getOptionValues() as $_value): ?>
159152
attributeOption.add(<?php echo $_value->toJson() ?>);
160153
<?php endforeach; ?>

app/code/Magento/Catalog/view/adminhtml/web/catalog/category/form.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ define([
5757
if (response.error) {
5858
alert(response.message);
5959
} else {
60-
if (this.element.find(this.options.categoryIdSelector).prop('value') === response.id) {
60+
if (this.element.find(this.options.categoryIdSelector).prop('value') == response.id) {
6161
this.element.find(this.options.categoryPathSelector)
6262
.prop('value', response.path);
6363
}

0 commit comments

Comments
 (0)