Skip to content

Commit

Permalink
Merge pull request magento#1048 from magento-firedrakes/MAGETWO-65470
Browse files Browse the repository at this point in the history
- MAGETWO-65470: The visibility conditions improvements
  • Loading branch information
buskamuza authored Apr 21, 2017
2 parents c2af247 + 8c82105 commit 0e3a90f
Show file tree
Hide file tree
Showing 38 changed files with 752 additions and 1,088 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<block class="Magento\AdminNotification\Block\Window"
name="notification_window"
as="notification_window"
acl="Magento_AdminNotification::show_toolbar"
aclResource="Magento_AdminNotification::show_toolbar"
template="Magento_AdminNotification::notification/window.phtml"/>
</referenceContainer>
<referenceContainer name="header">
Expand Down
22 changes: 17 additions & 5 deletions app/code/Magento/Analytics/Model/Condition/CanViewNotification.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Analytics\Model\Condition;

use Magento\Backend\Model\View\Layout\ConditionInterface;
use Magento\Framework\View\Layout\Condition\VisibilityConditionInterface;
use Magento\Analytics\Model\NotificationTime;
use Magento\Framework\Intl\DateTimeFactory;

Expand All @@ -16,8 +15,13 @@
* Dynamic validator for UI signUp notification form, manage Ui component visibility.
* Return true if last notification was shipped seven days ago.
*/
class CanViewNotification implements ConditionInterface
class CanViewNotification implements VisibilityConditionInterface
{
/**
* Unique condition name.
*/
const NAME = 'can_view_notification';

/**
* Time interval in seconds
*
Expand Down Expand Up @@ -52,9 +56,9 @@ public function __construct(
/**
* Validate is notification popup can be shown
*
* @return bool
* @inheritdoc
*/
public function validate()
public function isVisible(array $arguments)
{
$lastNotificationTime = $this->notificationTime->getLastTimeNotification();
if (!$lastNotificationTime) {
Expand All @@ -65,4 +69,12 @@ public function validate()
$datetime->getTimestamp() >= $lastNotificationTime + $this->notificationInterval
);
}

/**
* @return string
*/
public function getName()
{
return self::NAME;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public function testValidate()
$this->dateTimeMock->expects($this->once())
->method('getTimestamp')
->willReturn(10005000);
$this->assertTrue($this->canViewNotification->validate());
$this->assertTrue($this->canViewNotification->isVisible([]));
}

public function testValidateFlagRemoved()
Expand All @@ -76,6 +76,6 @@ public function testValidateFlagRemoved()
->willReturn(null);
$this->dateTimeFactoryMock->expects($this->never())
->method('create');
$this->assertFalse($this->canViewNotification->validate());
$this->assertFalse($this->canViewNotification->isVisible([]));
}
}
7 changes: 0 additions & 7 deletions app/code/Magento/Analytics/etc/di.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,6 @@
</argument>
</arguments>
</type>
<type name="Magento\Backend\Model\View\Layout\ConditionPool">
<arguments>
<argument name="conditions" xsi:type="array">
<item name="analytics::can-view-notification" xsi:type="string">Magento\Analytics\Model\Condition\CanViewNotification</item>
</argument>
</arguments>
</type>
<type name="Magento\Analytics\Controller\Adminhtml\Subscription\Activate">
<arguments>
<argument name="configValueResource" xsi:type="object">Magento\Config\Model\ResourceModel\Config\Data</argument>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<uiComponent name="analytics_subscription_form" acl="Magento_Analytics::analytics_settings"
condition="analytics::can-view-notification"/>
<uiComponent name="analytics_subscription_form" aclResource="Magento_Analytics::analytics_settings">
<visibilityCondition name="can_view_notification" className="Magento\Analytics\Model\Condition\CanViewNotification"/>
</uiComponent>
<block template="Magento_Analytics::dashboard/section.phtml"
class="Magento\Backend\Block\Template"
name="analytics_service_external_link"
Expand Down
38 changes: 0 additions & 38 deletions app/code/Magento/Backend/Model/View/Layout/ConditionInterface.php

This file was deleted.

60 changes: 0 additions & 60 deletions app/code/Magento/Backend/Model/View/Layout/ConditionPool.php

This file was deleted.

52 changes: 0 additions & 52 deletions app/code/Magento/Backend/Model/View/Layout/Filter.php

This file was deleted.

111 changes: 0 additions & 111 deletions app/code/Magento/Backend/Model/View/Layout/Filter/Acl.php

This file was deleted.

Loading

0 comments on commit 0e3a90f

Please sign in to comment.