Skip to content

Commit e04ef1b

Browse files
committed
Merge pull request #542 from magento-ogre/PR_Branch
[Ogres] Bug Fixes
2 parents ff70f6e + 4bf9910 commit e04ef1b

File tree

29 files changed

+454
-227
lines changed

29 files changed

+454
-227
lines changed

app/code/Magento/Search/Adapter/Mysql/Query/Preprocessor/Synonyms.php renamed to app/code/Magento/Search/Adapter/Query/Preprocessor/Synonyms.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Copyright © 2016 Magento. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
namespace Magento\Search\Adapter\Mysql\Query\Preprocessor;
6+
namespace Magento\Search\Adapter\Query\Preprocessor;
77

88
use Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface;
99
use Magento\Search\Api\SynonymAnalyzerInterface;

app/code/Magento/Search/Api/SynonymGroupRepositoryInterface.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ interface SynonymGroupRepositoryInterface
1414
* Save synonym group data
1515
*
1616
* @param \Magento\Search\Api\Data\SynonymGroupInterface $synonymGroup
17+
* @param bool $errorOnMergeConflict
1718
* @return \Magento\Search\Api\Data\SynonymGroupInterface saved attribute set
1819
*/
19-
public function save(\Magento\Search\Api\Data\SynonymGroupInterface $synonymGroup);
20+
public function save(\Magento\Search\Api\Data\SynonymGroupInterface $synonymGroup, $errorOnMergeConflict = false);
2021

2122
/**
2223
* Remove given synonym group data
@@ -25,4 +26,12 @@ public function save(\Magento\Search\Api\Data\SynonymGroupInterface $synonymGrou
2526
* @return bool
2627
*/
2728
public function delete(\Magento\Search\Api\Data\SynonymGroupInterface $synonymGroup);
29+
30+
/**
31+
* Return a paritcular synonym group interface instance based on passed in synonym group id
32+
*
33+
* @param int $synonymGroupId
34+
* @return \Magento\Search\Api\Data\SynonymGroupInterface
35+
*/
36+
public function get($synonymGroupId);
2837
}

app/code/Magento/Search/Controller/Adminhtml/Synonyms/Delete.php

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,45 @@
66

77
namespace Magento\Search\Controller\Adminhtml\Synonyms;
88

9-
use Magento\Search\Controller\Adminhtml\Synonyms;
10-
119
/**
1210
* Delete Controller
1311
*/
14-
class Delete extends Synonyms
12+
class Delete extends \Magento\Backend\App\Action
1513
{
14+
/**
15+
* Authorization level of a basic admin session
16+
*
17+
* @see _isAllowed()
18+
*/
19+
const ADMIN_RESOURCE = 'Magento_Search::synonyms';
20+
21+
/**
22+
* @var \Psr\Log\LoggerInterface $logger
23+
*/
24+
private $logger;
25+
26+
/**
27+
* @var \Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository
28+
*/
29+
private $synGroupRepository;
30+
31+
/**
32+
* Constructor
33+
*
34+
* @param \Magento\Backend\App\Action\Context $context
35+
* @param \Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository
36+
* @param \Psr\Log\LoggerInterface $logger
37+
*/
38+
public function __construct(
39+
\Magento\Backend\App\Action\Context $context,
40+
\Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository,
41+
\Psr\Log\LoggerInterface $logger
42+
) {
43+
$this->synGroupRepository = $synGroupRepository;
44+
$this->logger = $logger;
45+
parent::__construct($context);
46+
}
47+
1648
/**
1749
* Delete action
1850
*
@@ -25,13 +57,16 @@ public function execute()
2557
$resultRedirect = $this->resultRedirectFactory->create();
2658
if ($id) {
2759
try {
28-
$model = $this->_objectManager->create('Magento\Search\Model\SynonymGroup');
29-
$model->load($id);
30-
$repository = $this->_objectManager->create('Magento\Search\Api\SynonymGroupRepositoryInterface');
31-
$repository->delete($model);
60+
/** @var \Magento\Search\Model\SynonymGroup $synGroupModel */
61+
$synGroupModel = $this->synGroupRepository->get($id);
62+
$this->synGroupRepository->delete($synGroupModel);
3263
$this->messageManager->addSuccess(__('The synonym group has been deleted.'));
33-
} catch (\Exception $e) {
64+
} catch (\Magento\Framework\Exception\LocalizedException $e) {
3465
$this->messageManager->addError($e->getMessage());
66+
$this->logger->error($e);
67+
} catch (\Exception $e) {
68+
$this->messageManager->addError(__('An error was encountered while performing delete operation.'));
69+
$this->logger->error($e);
3570
}
3671
} else {
3772
$this->messageManager->addError(__('We can\'t find a synonym group to delete.'));

app/code/Magento/Search/Controller/Adminhtml/Synonyms/Edit.php

Lines changed: 61 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,51 @@
66
*/
77
namespace Magento\Search\Controller\Adminhtml\Synonyms;
88

9-
class Edit extends \Magento\Search\Controller\Adminhtml\Synonyms
9+
class Edit extends \Magento\Backend\App\Action
1010
{
11+
/**
12+
* Authorization level of a basic admin session
13+
*
14+
* @see _isAllowed()
15+
*/
16+
const ADMIN_RESOURCE = 'Magento_Search::synonyms';
17+
18+
/**
19+
* @var \Magento\Framework\Registry $registry
20+
*/
21+
private $registry;
22+
23+
/**
24+
* @var \Magento\Search\Controller\Adminhtml\Synonyms\ResultPageBuilder $pageBuilder
25+
*/
26+
private $pageBuilder;
27+
28+
/**
29+
* @var \Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository
30+
*/
31+
private $synGroupRepository;
32+
33+
/**
34+
* Edit constructor.
35+
*
36+
* @param \Magento\Backend\App\Action\Context $context
37+
* @param \Magento\Backend\Model\Session $session
38+
* @param \Magento\Framework\Registry $registry
39+
* @param \Magento\Search\Controller\Adminhtml\Synonyms\ResultPageBuilder $pageBuilder
40+
* @param \Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository
41+
*/
42+
public function __construct(
43+
\Magento\Backend\App\Action\Context $context,
44+
\Magento\Framework\Registry $registry,
45+
\Magento\Search\Controller\Adminhtml\Synonyms\ResultPageBuilder $pageBuilder,
46+
\Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository
47+
) {
48+
$this->registry = $registry;
49+
$this->synGroupRepository = $synGroupRepository;
50+
$this->pageBuilder = $pageBuilder;
51+
parent::__construct($context);
52+
}
53+
1154
/**
1255
* Edit Synonym Group
1356
*
@@ -18,36 +61,42 @@ public function execute()
1861
{
1962
// 1. Get ID and create model
2063
$groupId = $this->getRequest()->getParam('group_id');
21-
$synGroupModel = $this->_objectManager->create('Magento\Search\Model\SynonymGroup');
64+
/** @var \Magento\Search\Api\Data\SynonymGroupInterface $synGroup */
65+
$synGroup = $this->synGroupRepository->get($groupId);
2266

2367
// 2. Initial checking
24-
if ($groupId) {
25-
$synGroupModel->load($groupId);
26-
if (!$synGroupModel->getId()) {
68+
if ($groupId && (!$synGroup->getGroupId())) {
2769
$this->messageManager->addError(__('This synonyms group no longer exists.'));
2870
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
2971
$resultRedirect = $this->resultRedirectFactory->create();
3072
return $resultRedirect->setPath('*/*/');
31-
}
3273
}
74+
3375
// 3. Set entered data if was error when we do save
34-
$data = $this->_objectManager->get('Magento\Backend\Model\Session')->getFormData(true);
76+
$data = $this->_session->getFormData(true);
3577
if (!empty($data)) {
36-
$synGroupModel->setData($data);
78+
$synGroup->setGroupId($data['group_id']);
79+
$synGroup->setStoreId($data['store_id']);
80+
$synGroup->setWebsiteId($data['website_id']);
81+
$synGroup->setSynonymGroup($data['synonyms']);
3782
}
3883

3984
// 4. Register model to use later in save
40-
$this->registry->register(\Magento\Search\Controller\RegistryConstants::SEARCH_SYNONYMS, $synGroupModel);
85+
$this->registry->register(
86+
\Magento\Search\Controller\RegistryConstants::SEARCH_SYNONYMS,
87+
$synGroup
88+
);
4189

4290
// 5. Build edit synonyms group form
43-
$resultPage = $this->_initAction();
91+
$resultPage = $this->pageBuilder->build();
4492
$resultPage->addBreadcrumb(
4593
$groupId ? __('Edit Synonym Group') : __('New Synonym Group'),
4694
$groupId ? __('Edit Synonym Group') : __('New Synonym Group')
4795
);
4896
$resultPage->getConfig()->getTitle()->prepend(__('Synonym Group'));
49-
$resultPage->getConfig()->getTitle()
50-
->prepend($synGroupModel->getId() ? $synGroupModel->getSynonymGroup() : __('New Synonym Group'));
97+
$resultPage->getConfig()->getTitle()->prepend(
98+
$synGroup->getGroupId() ? $synGroup->getSynonymGroup() : __('New Synonym Group')
99+
);
51100
return $resultPage;
52101
}
53102
}

app/code/Magento/Search/Controller/Adminhtml/Synonyms/Index.php

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,42 @@
55
*/
66
namespace Magento\Search\Controller\Adminhtml\Synonyms;
77

8-
class Index extends \Magento\Search\Controller\Adminhtml\Synonyms
8+
class Index extends \Magento\Backend\App\Action
99
{
10+
/**
11+
* Authorization level of a basic admin session
12+
*
13+
* @see _isAllowed()
14+
*/
15+
const ADMIN_RESOURCE = 'Magento_Search::synonyms';
16+
17+
/**
18+
* @var \Magento\Search\Controller\Adminhtml\Synonyms\ResultPageBuilder $pageBuilder
19+
*/
20+
private $pageBuilder;
21+
22+
/**
23+
* constructor.
24+
*
25+
* @param \Magento\Backend\App\Action\Context $context
26+
* @param \Magento\Search\Controller\Adminhtml\Synonyms\ResultPageBuilder $pageBuilder
27+
*/
28+
public function __construct(
29+
\Magento\Backend\App\Action\Context $context,
30+
\Magento\Search\Controller\Adminhtml\Synonyms\ResultPageBuilder $pageBuilder
31+
) {
32+
$this->pageBuilder = $pageBuilder;
33+
parent::__construct($context);
34+
}
35+
1036
/**
1137
* Synonyms grid
1238
*
1339
* @return \Magento\Backend\Model\View\Result\Page
1440
*/
1541
public function execute()
1642
{
17-
$resultPage = $this->_initAction();
43+
$resultPage = $this->pageBuilder->build();
1844
$resultPage->getConfig()->getTitle()->prepend(__('Search Synonyms'));
1945
return $resultPage;
2046
}

app/code/Magento/Search/Controller/Adminhtml/Synonyms/MassDelete.php

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,55 +6,53 @@
66

77
namespace Magento\Search\Controller\Adminhtml\Synonyms;
88

9-
use Magento\Search\Controller\Adminhtml\Synonyms;
10-
119
/**
1210
* Mass-Delete Controller
11+
*
12+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
1313
*/
14-
class MassDelete extends Synonyms
14+
class MassDelete extends \Magento\Backend\App\Action
1515
{
16+
/**
17+
* Authorization level of a basic admin session
18+
*
19+
* @see _isAllowed()
20+
*/
21+
const ADMIN_RESOURCE = 'Magento_Search::synonyms';
22+
1623
/**
1724
* @var \Magento\Ui\Component\MassAction\Filter
1825
*/
19-
protected $filter;
26+
private $filter;
2027

2128
/**
2229
* @var \Magento\Search\Model\ResourceModel\SynonymGroup\CollectionFactory
2330
*/
24-
protected $collectionFactory;
31+
private $collectionFactory;
32+
33+
/**
34+
* @var \Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository
35+
*/
36+
private $synGroupRepository;
2537

2638
/**
2739
* MassDelete constructor.
2840
*
2941
* @param \Magento\Backend\App\Action\Context $context
30-
* @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
31-
* @param \Magento\Backend\Model\View\Result\ForwardFactory $forwardFactory
32-
* @param \Magento\Framework\Registry $registry
33-
* @param \Magento\Search\Model\EngineResolver $engineResolver
34-
* @param \Magento\Framework\Search\SearchEngine\ConfigInterface $searchFeatureConfig
3542
* @param \Magento\Ui\Component\MassAction\Filter $filter
3643
* @param \Magento\Search\Model\ResourceModel\SynonymGroup\CollectionFactory $collectionFactory
44+
* @param \Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository
3745
*/
3846
public function __construct(
3947
\Magento\Backend\App\Action\Context $context,
40-
\Magento\Framework\View\Result\PageFactory $resultPageFactory,
41-
\Magento\Backend\Model\View\Result\ForwardFactory $forwardFactory,
42-
\Magento\Framework\Registry $registry,
43-
\Magento\Search\Model\EngineResolver $engineResolver,
44-
\Magento\Framework\Search\SearchEngine\ConfigInterface $searchFeatureConfig,
4548
\Magento\Ui\Component\MassAction\Filter $filter,
46-
\Magento\Search\Model\ResourceModel\SynonymGroup\CollectionFactory $collectionFactory
49+
\Magento\Search\Model\ResourceModel\SynonymGroup\CollectionFactory $collectionFactory,
50+
\Magento\Search\Api\SynonymGroupRepositoryInterface $synGroupRepository
4751
) {
4852
$this->filter = $filter;
4953
$this->collectionFactory = $collectionFactory;
50-
parent::__construct(
51-
$context,
52-
$resultPageFactory,
53-
$forwardFactory,
54-
$registry,
55-
$engineResolver,
56-
$searchFeatureConfig
57-
);
54+
$this->synGroupRepository = $synGroupRepository;
55+
parent::__construct($context);
5856
}
5957

6058
/**
@@ -68,12 +66,10 @@ public function execute()
6866
$collection = $this->filter->getCollection($this->collectionFactory->create());
6967
$collectionSize = $collection->getSize();
7068

71-
$synonymGroupRepository = $this->_objectManager->create('Magento\Search\Api\SynonymGroupRepositoryInterface');
72-
7369
$deletedItems = 0;
7470
foreach ($collection as $synonymGroup) {
7571
try {
76-
$synonymGroupRepository->delete($synonymGroup);
72+
$this->synGroupRepository->delete($synonymGroup);
7773
$deletedItems++;
7874
} catch (\Exception $e) {
7975
$this->messageManager->addError($e->getMessage());

app/code/Magento/Search/Controller/Adminhtml/Synonyms/NewAction.php

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,34 @@
55
*/
66
namespace Magento\Search\Controller\Adminhtml\Synonyms;
77

8-
class NewAction extends \Magento\Search\Controller\Adminhtml\Synonyms
8+
class NewAction extends \Magento\Backend\App\Action
99
{
10+
/**
11+
* Authorization level of a basic admin session
12+
*
13+
* @see _isAllowed()
14+
*/
15+
const ADMIN_RESOURCE = 'Magento_Search::synonyms';
16+
17+
/**
18+
* @var \Magento\Backend\Model\View\Result\ForwardFactory $forwardFactory
19+
*/
20+
private $forwardFactory;
21+
22+
/**
23+
* New Synonym Group Action constructor.
24+
*
25+
* @param \Magento\Backend\App\Action\Context $context
26+
* @param \Magento\Backend\Model\View\Result\ForwardFactory $forwardFactory
27+
*/
28+
public function __construct(
29+
\Magento\Backend\App\Action\Context $context,
30+
\Magento\Backend\Model\View\Result\ForwardFactory $forwardFactory
31+
) {
32+
$this->forwardFactory = $forwardFactory;
33+
parent::__construct($context);
34+
}
35+
1036
/**
1137
* Create new synonyms group action
1238
*

0 commit comments

Comments
 (0)