Skip to content

Commit 5a51254

Browse files
36422: Only Update Indexer Mode When Required
1 parent 96ce2ed commit 5a51254

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed

app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassChangelog.php

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,27 @@ public function execute()
2424
if (!is_array($indexerIds)) {
2525
$this->messageManager->addErrorMessage(__('Please select indexers.'));
2626
} else {
27+
$updatedIndexersCount = 0;
28+
2729
try {
2830
foreach ($indexerIds as $indexerId) {
2931
/** @var \Magento\Framework\Indexer\IndexerInterface $model */
3032
$model = $this->_objectManager->get(
3133
\Magento\Framework\Indexer\IndexerRegistry::class
3234
)->get($indexerId);
33-
$model->setScheduled(true);
35+
36+
if (!$model->isScheduled()) {
37+
$model->setScheduled(true);
38+
$updatedIndexersCount++;
39+
}
3440
}
35-
$this->messageManager->addSuccess(
36-
__('%1 indexer(s) are in "Update by Schedule" mode.', count($indexerIds))
41+
42+
$this->messageManager->addSuccessMessage(
43+
__(
44+
'%1 indexer(s) have been updated to "Update by Schedule" mode. %2 skipped because there was nothing to change.',
45+
$updatedIndexersCount,
46+
count($indexerIds) - $updatedIndexersCount
47+
)
3748
);
3849
} catch (\Magento\Framework\Exception\LocalizedException $e) {
3950
$this->messageManager->addErrorMessage($e->getMessage());

app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassOnTheFly.php

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,27 @@ public function execute()
2424
if (!is_array($indexerIds)) {
2525
$this->messageManager->addErrorMessage(__('Please select indexers.'));
2626
} else {
27+
$updatedIndexersCount = 0;
28+
2729
try {
2830
foreach ($indexerIds as $indexerId) {
2931
/** @var \Magento\Framework\Indexer\IndexerInterface $model */
3032
$model = $this->_objectManager->get(
3133
\Magento\Framework\Indexer\IndexerRegistry::class
3234
)->get($indexerId);
33-
$model->setScheduled(false);
35+
36+
if ($model->isScheduled()) {
37+
$model->setScheduled(false);
38+
$updatedIndexersCount++;
39+
}
3440
}
35-
$this->messageManager->addSuccess(
36-
__('%1 indexer(s) are in "Update on Save" mode.', count($indexerIds))
41+
42+
$this->messageManager->addSuccessMessage(
43+
__(
44+
'%1 indexer(s) have been updated to "Update on Save" mode. %2 skipped because there was nothing to change.',
45+
$updatedIndexersCount,
46+
count($indexerIds) - $updatedIndexersCount
47+
)
3748
);
3849
} catch (\Magento\Framework\Exception\LocalizedException $e) {
3950
$this->messageManager->addErrorMessage($e->getMessage());

0 commit comments

Comments
 (0)