From 69b6b02246edcecec1c33d641a61bd2d2c1af2d1 Mon Sep 17 00:00:00 2001 From: Dan Wallis Date: Sat, 6 Nov 2021 21:40:13 +0000 Subject: [PATCH 1/3] Show customer_grid indexer as green when realtime --- .../Grid/Column/Renderer/Scheduled.php | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Indexer/Block/Backend/Grid/Column/Renderer/Scheduled.php b/app/code/Magento/Indexer/Block/Backend/Grid/Column/Renderer/Scheduled.php index adfe3dd5b346b..99e985f813c6d 100644 --- a/app/code/Magento/Indexer/Block/Backend/Grid/Column/Renderer/Scheduled.php +++ b/app/code/Magento/Indexer/Block/Backend/Grid/Column/Renderer/Scheduled.php @@ -5,6 +5,8 @@ */ namespace Magento\Indexer\Block\Backend\Grid\Column\Renderer; +use Magento\Customer\Model\Customer; + /** * Renderer for 'Scheduled' column in indexer grid */ @@ -18,13 +20,35 @@ class Scheduled extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Abstr */ public function render(\Magento\Framework\DataObject $row) { + if ($this->isPreferRealtime($row->getIndexerId())) { + $scheduleClass = 'grid-severity-major'; + $realtimeClass = 'grid-severity-notice'; + } else { + $scheduleClass = 'grid-severity-notice'; + $realtimeClass = 'grid-severity-major'; + } + if ($this->_getValue($row)) { - $class = 'grid-severity-notice'; + $class = $scheduleClass; $text = __('Update by Schedule'); } else { - $class = 'grid-severity-major'; + $class = $realtimeClass; $text = __('Update on Save'); } + return '' . $text . ''; } + + /** + * Determine if an indexer is recommended to be in 'realtime' mode + * + * @param string $indexer + * @return bool + */ + public function isPreferRealtime(string $indexer): bool + { + return in_array($indexer, [ + Customer::CUSTOMER_GRID_INDEXER_ID, + ]); + } } From 08a22ef909644ff0a9285b08fe299ebd8b2d25d0 Mon Sep 17 00:00:00 2001 From: Dan Wallis Date: Mon, 8 Nov 2021 23:23:09 +0000 Subject: [PATCH 2/3] Fix tests --- .../Backend/Grid/Column/Renderer/ScheduledTest.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Indexer/Test/Unit/Block/Backend/Grid/Column/Renderer/ScheduledTest.php b/app/code/Magento/Indexer/Test/Unit/Block/Backend/Grid/Column/Renderer/ScheduledTest.php index c48da82ed3d70..2d83d27a368eb 100644 --- a/app/code/Magento/Indexer/Test/Unit/Block/Backend/Grid/Column/Renderer/ScheduledTest.php +++ b/app/code/Magento/Indexer/Test/Unit/Block/Backend/Grid/Column/Renderer/ScheduledTest.php @@ -15,12 +15,13 @@ class ScheduledTest extends TestCase { /** + * @param string $indexer * @param bool $rowValue * @param string $class * @param string $text * @dataProvider typeProvider */ - public function testRender($rowValue, $class, $text) + public function testRender($indexer, $rowValue, $class, $text) { $html = '' . $text . ''; $row = new DataObject(); @@ -32,6 +33,7 @@ public function testRender($rowValue, $class, $text) $model = new Scheduled($context); $column->setGetter('getValue'); $row->setValue($rowValue); + $row->setIndexerId($indexer); $model->setColumn($column); $result = $model->render($row); @@ -44,9 +46,12 @@ public function testRender($rowValue, $class, $text) public function typeProvider() { return [ - [true, 'grid-severity-notice', __('Update by Schedule')], - [false, 'grid-severity-major', __('Update on Save')], - ['', 'grid-severity-major', __('Update on Save')], + ['customer_grid', true, 'grid-severity-major', __('Update by Schedule')], + ['customer_grid', false, 'grid-severity-notice', __('Update on Save')], + ['customer_grid', '', 'grid-severity-notice', __('Update on Save')], + ['catalog_product_price', true, 'grid-severity-notice', __('Update by Schedule')], + ['catalog_product_price', false, 'grid-severity-major', __('Update on Save')], + ['catalog_product_price', '', 'grid-severity-major', __('Update on Save')], ]; } } From ef73a64e974fe471ec5c18f9fd6eb5168a922305 Mon Sep 17 00:00:00 2001 From: Dan Wallis Date: Tue, 1 Aug 2023 09:32:06 +0100 Subject: [PATCH 3/3] Declare dependency on Magento_Customer module --- app/code/Magento/Indexer/composer.json | 3 ++- app/code/Magento/Indexer/etc/module.xml | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Indexer/composer.json b/app/code/Magento/Indexer/composer.json index 8cee48610c7ea..6683079cc3da0 100644 --- a/app/code/Magento/Indexer/composer.json +++ b/app/code/Magento/Indexer/composer.json @@ -7,7 +7,8 @@ "require": { "php": "~8.1.0||~8.2.0", "magento/framework": "*", - "magento/module-backend": "*" + "magento/module-backend": "*", + "magento/module-customer": "*" }, "type": "magento2-module", "license": [ diff --git a/app/code/Magento/Indexer/etc/module.xml b/app/code/Magento/Indexer/etc/module.xml index cd84bb9cf2157..4942b5e077e6d 100644 --- a/app/code/Magento/Indexer/etc/module.xml +++ b/app/code/Magento/Indexer/etc/module.xml @@ -8,6 +8,7 @@ +