Skip to content

Commit 047f5b9

Browse files
🔃 [Magento Community Engineering] Community Contributions - 2.4-develop expedited
Accepted Community Pull Requests: - #27026: Issue 27009: Fix error fire on catch when create new theme (by @vincent-le89) - #25454: TinyMCE4 hard to input double byte characters on chrome (by @HirokazuNishi) - #27083: Cleanup ObjectManager usage - Magento_AsynchronousOperations (by @Bartlomiejsz) - #23742: Add Header (h1 - h6) tags to layout xml htmlTags Allowed types (by @furan917) - #27149: 27027 added date format adjustment for 'validate-dob' rule (by @sergiy-v) - #26642: MAG-251090-26590: Fixed Customer registration multiple form submit (by @princeCB) - #27131: 26758 improved cms page custom layout update logic (by @sergiy-v) - #26910: security-package/issues/115: Fix AdminSessionsManagerTest and AuthSessionTest. (by @p-bystritsky) - #27196: Remove @author annotation from Magento framework (by @diazwatson) - #26563: magento/magento2#: Test Coverage. API functional tests. removeItemFromCart (by @atwixfirster) - #26649: table bottom color different then thead and tbody border color (by @tejash-wagento) - #27080: Cleanup ObjectManager usage - Magento_EncryptionKey (by @Bartlomiejsz) - #27138: Removed unnecessary tabindex property (by @drpayyne) - #27082: Cleanup ObjectManager usage - Magento_Analytics (by @Bartlomiejsz) - #27084: Cleanup ObjectManager usage - Magento_CacheInvalidate (by @Bartlomiejsz) - #22442: Add support for char element to dto factory (by @wardcapp) - #27014: Fix #26992 Add new rating is active checkbox alignment issue (by @srsathish92) - #26902: Fix #20309 - URL Rewrites redirect loop (by @Bartlomiejsz) - #27029: #26847: Added 'enterKey' event handler to prompt widget (by @sergiy-v) - #26964: Cleanup ObjectManager usage - Magento_Elasticsearch (by @Bartlomiejsz) - #26939: ObjectManager cleanup - Remove usage from AdminNotification module (by @ihor-sviziev) - #24878: Create missing directories in imageuploader tree if they don't alread� (by @hostep) - #24743: fix issue 24735 (by @dmdanilchenko) - #27172: #14086: Guest cart API ignoring cartId in url for some methods (by @engcom-Charlie) Fixed GitHub Issues: - #27009: Missing variable outside CATCH causing a double-fault in Renderer.php (reported by @HeiderSati) has been fixed in #27026 by @vincent-le89 in 2.4-develop branch Related commits: 1. 1ec6c7f 2. 01cde22 - #24637: Chinese input in tinymce 4 (reported by @Consumewithadele) has been fixed in #25454 by @HirokazuNishi in 2.4-develop branch Related commits: 1. aff7824 2. 1546434 - #27027: Admin date of birth doesn't factor in user locale set (reported by @extroniks) has been fixed in #27149 by @sergiy-v in 2.4-develop branch Related commits: 1. 8f81132 - #26590: Customer registration multiple form submit (reported by @Jens-Bourgeois) has been fixed in #26642 by @princeCB in 2.4-develop branch Related commits: 1. d702078 2. f695643 - #26758: cms-page-specific layouts are not applied if FullActionName differs from page_view (reported by @Tripuls-Magento) has been fixed in #27131 by @sergiy-v in 2.4-develop branch Related commits: 1. 53c78d5 - #26648: Table bottom border color different then thead and tbody border color (reported by @tejash-wagento) has been fixed in #26649 by @tejash-wagento in 2.4-develop branch Related commits: 1. 3a5cc24 - #973: [Question] Add jenkins-ci ant build.xml and tool configurations to repository (reported by @Vinai) has been fixed in #27138 by @drpayyne in 2.4-develop branch Related commits: 1. 945c427 - #26992: Add New ratings Is active and checkbox alignment issue (reported by @renard123) has been fixed in #27014 by @srsathish92 in 2.4-develop branch Related commits: 1. 0831958 2. 4ddae72 3. 97642b5 4. ee00b98 - #20309: URL Rewrites redirect loop (reported by @mrmoonlv) has been fixed in #26902 by @Bartlomiejsz in 2.4-develop branch Related commits: 1. 684b951 2. 0fd6fd3 - #26847: Hitting enter on create folder in media gallery refreshes the page (reported by @Zyles) has been fixed in #27029 by @sergiy-v in 2.4-develop branch Related commits: 1. 21afe21 - #22609: Since Magento 2.3 the wysiwyg image uploader incorrectly uses pub/media as storage root. (reported by @hostep) has been fixed in #24878 by @hostep in 2.4-develop branch Related commits: 1. 99a9405 - #24735: Image in minicart is blurred on iPhone (reported by @ihor-sviziev) has been fixed in #24743 by @dmdanilchenko in 2.4-develop branch Related commits: 1. 6950ead 2. c7deb42 3. 8f5f9a5 4. 3391686 5. 88d403c - #14086: Guest cart API ignoring cartId in url for some methods (reported by @midlan) has been fixed in #27172 by @engcom-Charlie in 2.4-develop branch Related commits: 1. 2bdcc11 2. 23f9849 3. e3c2951
2 parents dbb7dec + 0e2ae97 commit 047f5b9

File tree

114 files changed

+1817
-914
lines changed

Some content is hidden

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

114 files changed

+1817
-914
lines changed

app/code/Magento/AdminNotification/Block/System/Messages.php

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,45 +5,54 @@
55
*/
66
namespace Magento\AdminNotification\Block\System;
77

8-
class Messages extends \Magento\Backend\Block\Template
8+
use Magento\AdminNotification\Model\ResourceModel\System\Message\Collection\Synchronized;
9+
use Magento\Backend\Block\Template;
10+
use Magento\Backend\Block\Template\Context as TemplateContext;
11+
use Magento\Framework\Json\Helper\Data as JsonDataHelper;
12+
use Magento\Framework\Notification\MessageInterface;
13+
use Magento\Framework\Serialize\Serializer\Json as JsonSerializer;
14+
15+
/**
16+
* AdminNotification Messages class
17+
*/
18+
class Messages extends Template
919
{
1020
/**
11-
* Message list
21+
* Synchronized Message collection
1222
*
13-
* @var \Magento\AdminNotification\Model\ResourceModel\System\Message\Collection\Synchronized
23+
* @var Synchronized
1424
*/
1525
protected $_messages;
1626

1727
/**
18-
* @var \Magento\Framework\Json\Helper\Data
28+
* @var JsonDataHelper
1929
* @deprecated
2030
*/
2131
protected $jsonHelper;
2232

2333
/**
24-
* @var \Magento\Framework\Serialize\Serializer\Json
34+
* @var JsonSerializer
2535
*/
2636
private $serializer;
2737

2838
/**
29-
* @param \Magento\Backend\Block\Template\Context $context
30-
* @param \Magento\AdminNotification\Model\ResourceModel\System\Message\Collection\Synchronized $messages
31-
* @param \Magento\Framework\Json\Helper\Data $jsonHelper
39+
* @param TemplateContext $context
40+
* @param Synchronized $messages
41+
* @param JsonDataHelper $jsonHelper
42+
* @param JsonSerializer $serializer
3243
* @param array $data
33-
* @param \Magento\Framework\Serialize\Serializer\Json|null $serializer
3444
*/
3545
public function __construct(
36-
\Magento\Backend\Block\Template\Context $context,
37-
\Magento\AdminNotification\Model\ResourceModel\System\Message\Collection\Synchronized $messages,
38-
\Magento\Framework\Json\Helper\Data $jsonHelper,
39-
array $data = [],
40-
\Magento\Framework\Serialize\Serializer\Json $serializer = null
46+
TemplateContext $context,
47+
Synchronized $messages,
48+
JsonDataHelper $jsonHelper,
49+
JsonSerializer $serializer,
50+
array $data = []
4151
) {
4252
$this->jsonHelper = $jsonHelper;
4353
parent::__construct($context, $data);
4454
$this->_messages = $messages;
45-
$this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()
46-
->get(\Magento\Framework\Serialize\Serializer\Json::class);
55+
$this->serializer = $serializer;
4756
}
4857

4958
/**
@@ -62,16 +71,14 @@ protected function _toHtml()
6271
/**
6372
* Retrieve message list
6473
*
65-
* @return \Magento\Framework\Notification\MessageInterface[]
74+
* @return MessageInterface[]|null
6675
*/
6776
public function getLastCritical()
6877
{
6978
$items = array_values($this->_messages->getItems());
70-
if (isset(
71-
$items[0]
72-
) && $items[0]->getSeverity() == \Magento\Framework\Notification\MessageInterface::SEVERITY_CRITICAL
73-
) {
74-
return $items[0];
79+
80+
if (!empty($items) && current($items)->getSeverity() === MessageInterface::SEVERITY_CRITICAL) {
81+
return current($items);
7582
}
7683
return null;
7784
}
@@ -83,9 +90,7 @@ public function getLastCritical()
8390
*/
8491
public function getCriticalCount()
8592
{
86-
return $this->_messages->getCountBySeverity(
87-
\Magento\Framework\Notification\MessageInterface::SEVERITY_CRITICAL
88-
);
93+
return $this->_messages->getCountBySeverity(MessageInterface::SEVERITY_CRITICAL);
8994
}
9095

9196
/**
@@ -95,9 +100,7 @@ public function getCriticalCount()
95100
*/
96101
public function getMajorCount()
97102
{
98-
return $this->_messages->getCountBySeverity(
99-
\Magento\Framework\Notification\MessageInterface::SEVERITY_MAJOR
100-
);
103+
return $this->_messages->getCountBySeverity(MessageInterface::SEVERITY_MAJOR);
101104
}
102105

103106
/**

app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,34 @@
11
<?php
22
/**
3-
*
43
* Copyright © Magento, Inc. All rights reserved.
54
* See COPYING.txt for license details.
65
*/
76
namespace Magento\AdminNotification\Controller\Adminhtml\Notification;
87

8+
use Magento\AdminNotification\Controller\Adminhtml\Notification;
9+
use Magento\AdminNotification\Model\NotificationService;
910
use Magento\Backend\App\Action;
11+
use Magento\Framework\App\Action\HttpPostActionInterface;
1012
use Magento\Framework\Controller\ResultFactory;
1113

12-
class AjaxMarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Notification
14+
/**
15+
* AdminNotification AjaxMarkAsRead controller
16+
*/
17+
class AjaxMarkAsRead extends Notification implements HttpPostActionInterface
1318
{
1419
/**
15-
* @var \Magento\AdminNotification\Model\NotificationService
20+
* @var NotificationService
1621
*/
1722
private $notificationService;
1823

1924
/**
2025
* @param Action\Context $context
21-
* @param \Magento\AdminNotification\Model\NotificationService|null $notificationService
22-
* @throws \RuntimeException
26+
* @param NotificationService $notificationService
2327
*/
24-
public function __construct(
25-
Action\Context $context,
26-
\Magento\AdminNotification\Model\NotificationService $notificationService = null
27-
) {
28+
public function __construct(Action\Context $context, NotificationService $notificationService)
29+
{
2830
parent::__construct($context);
29-
$this->notificationService = $notificationService?: \Magento\Framework\App\ObjectManager::getInstance()
30-
->get(\Magento\AdminNotification\Model\NotificationService::class);
31+
$this->notificationService = $notificationService;
3132
}
3233

3334
/**
Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
<?php
22
/**
3-
*
43
* Copyright © Magento, Inc. All rights reserved.
54
* See COPYING.txt for license details.
65
*/
76
namespace Magento\AdminNotification\Controller\Adminhtml\Notification;
87

9-
class MarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Notification
8+
use Magento\AdminNotification\Controller\Adminhtml\Notification;
9+
use Magento\AdminNotification\Model\NotificationService;
10+
use Magento\Backend\App\Action;
11+
use Magento\Framework\App\Action\HttpGetActionInterface;
12+
use Magento\Framework\Exception\LocalizedException;
13+
14+
/**
15+
* AdminNotification MarkAsRead controller
16+
*/
17+
class MarkAsRead extends Notification implements HttpGetActionInterface
1018
{
1119
/**
1220
* Authorization level of a basic admin session
@@ -16,20 +24,31 @@ class MarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Notific
1624
const ADMIN_RESOURCE = 'Magento_AdminNotification::mark_as_read';
1725

1826
/**
19-
* @return void
27+
* @var NotificationService
28+
*/
29+
private $notificationService;
30+
31+
/**
32+
* @param Action\Context $context
33+
* @param NotificationService $notificationService
34+
*/
35+
public function __construct(Action\Context $context, NotificationService $notificationService)
36+
{
37+
parent::__construct($context);
38+
$this->notificationService = $notificationService;
39+
}
40+
41+
/**
42+
* @inheritdoc
2043
*/
2144
public function execute()
2245
{
2346
$notificationId = (int)$this->getRequest()->getParam('id');
2447
if ($notificationId) {
2548
try {
26-
$this->_objectManager->create(
27-
\Magento\AdminNotification\Model\NotificationService::class
28-
)->markAsRead(
29-
$notificationId
30-
);
49+
$this->notificationService->markAsRead($notificationId);
3150
$this->messageManager->addSuccessMessage(__('The message has been marked as Read.'));
32-
} catch (\Magento\Framework\Exception\LocalizedException $e) {
51+
} catch (LocalizedException $e) {
3352
$this->messageManager->addErrorMessage($e->getMessage());
3453
} catch (\Exception $e) {
3554
$this->messageManager->addExceptionMessage(
@@ -38,9 +57,8 @@ public function execute()
3857
);
3958
}
4059

41-
$this->getResponse()->setRedirect($this->_redirect->getRedirectUrl($this->getUrl('*')));
42-
return;
60+
return $this->getResponse()->setRedirect($this->_redirect->getRedirectUrl($this->getUrl('*')));
4361
}
44-
$this->_redirect('adminhtml/*/');
62+
return $this->_redirect('adminhtml/*/');
4563
}
4664
}

app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassMarkAsRead.php

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
<?php
22
/**
3-
*
43
* Copyright © Magento, Inc. All rights reserved.
54
* See COPYING.txt for license details.
65
*/
76
namespace Magento\AdminNotification\Controller\Adminhtml\Notification;
87

9-
class MassMarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Notification
10-
{
8+
use Magento\AdminNotification\Controller\Adminhtml\Notification;
9+
use Magento\AdminNotification\Model\InboxFactory as InboxModelFactory;
10+
use Magento\Backend\App\Action;
11+
use Magento\Framework\App\Action\HttpPostActionInterface;
1112

13+
/**
14+
* AdminNotification MassMarkAsRead controller
15+
*/
16+
class MassMarkAsRead extends Notification implements HttpPostActionInterface
17+
{
1218
/**
1319
* Authorization level of a basic admin session
1420
*
@@ -17,7 +23,22 @@ class MassMarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Not
1723
const ADMIN_RESOURCE = 'Magento_AdminNotification::mark_as_read';
1824

1925
/**
20-
* @return void
26+
* @var InboxModelFactory
27+
*/
28+
private $inboxModelFactory;
29+
30+
/**
31+
* @param Action\Context $context
32+
* @param InboxModelFactory $inboxModelFactory
33+
*/
34+
public function __construct(Action\Context $context, InboxModelFactory $inboxModelFactory)
35+
{
36+
parent::__construct($context);
37+
$this->inboxModelFactory = $inboxModelFactory;
38+
}
39+
40+
/**
41+
* @inheritdoc
2142
*/
2243
public function execute()
2344
{
@@ -27,7 +48,7 @@ public function execute()
2748
} else {
2849
try {
2950
foreach ($ids as $id) {
30-
$model = $this->_objectManager->create(\Magento\AdminNotification\Model\Inbox::class)->load($id);
51+
$model = $this->inboxModelFactory->create()->load($id);
3152
if ($model->getId()) {
3253
$model->setIsRead(1)->save();
3354
}
@@ -44,6 +65,6 @@ public function execute()
4465
);
4566
}
4667
}
47-
$this->_redirect('adminhtml/*/');
68+
return $this->_redirect('adminhtml/*/');
4869
}
4970
}

app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassRemove.php

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11
<?php
22
/**
3-
*
43
* Copyright © Magento, Inc. All rights reserved.
54
* See COPYING.txt for license details.
65
*/
76
namespace Magento\AdminNotification\Controller\Adminhtml\Notification;
87

9-
class MassRemove extends \Magento\AdminNotification\Controller\Adminhtml\Notification
8+
use Magento\AdminNotification\Controller\Adminhtml\Notification;
9+
use Magento\AdminNotification\Model\InboxFactory as InboxModelFactory;
10+
use Magento\Backend\App\Action;
11+
use Magento\Framework\App\Action\HttpPostActionInterface;
12+
13+
/**
14+
* AdminNotification MassRemove controller
15+
*/
16+
class MassRemove extends Notification implements HttpPostActionInterface
1017
{
1118

1219
/**
@@ -15,9 +22,23 @@ class MassRemove extends \Magento\AdminNotification\Controller\Adminhtml\Notific
1522
* @see _isAllowed()
1623
*/
1724
const ADMIN_RESOURCE = 'Magento_AdminNotification::adminnotification_remove';
25+
/**
26+
* @var InboxModelFactory
27+
*/
28+
private $inboxModelFactory;
29+
30+
/**
31+
* @param Action\Context $context
32+
* @param InboxModelFactory $inboxModelFactory
33+
*/
34+
public function __construct(Action\Context $context, InboxModelFactory $inboxModelFactory)
35+
{
36+
parent::__construct($context);
37+
$this->inboxModelFactory = $inboxModelFactory;
38+
}
1839

1940
/**
20-
* @return void
41+
* @inheritdoc
2142
*/
2243
public function execute()
2344
{
@@ -27,7 +48,7 @@ public function execute()
2748
} else {
2849
try {
2950
foreach ($ids as $id) {
30-
$model = $this->_objectManager->create(\Magento\AdminNotification\Model\Inbox::class)->load($id);
51+
$model = $this->inboxModelFactory->create()->load($id);
3152
if ($model->getId()) {
3253
$model->setIsRemove(1)->save();
3354
}
@@ -42,6 +63,6 @@ public function execute()
4263
);
4364
}
4465
}
45-
$this->_redirect('adminhtml/*/');
66+
return $this->_redirect('adminhtml/*/');
4667
}
4768
}

0 commit comments

Comments
 (0)