Skip to content

Commit 9721eab

Browse files
Merge pull request #587 from magento/544_configurable-page-builder-full-screen-mode
[Story] 544: Configurable Page Builder Full Screen Mode
2 parents 7ef5f37 + 28c8a04 commit 9721eab

File tree

22 files changed

+322
-29
lines changed

22 files changed

+322
-29
lines changed

app/code/Magento/PageBuilder/Component/Form/Element/Wysiwyg.php

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@
77

88
namespace Magento\PageBuilder\Component\Form\Element;
99

10+
use Magento\Framework\App\ObjectManager;
1011
use Magento\Framework\Data\FormFactory;
1112
use Magento\Framework\View\Element\UiComponent\ContextInterface;
13+
use Magento\PageBuilder\Model\View\File\Collector\PageBuilder;
1214
use Magento\Ui\Component\Wysiwyg\ConfigInterface;
1315
use Magento\Catalog\Api\CategoryAttributeRepositoryInterface;
1416
use Magento\Framework\Exception\NoSuchEntityException;
17+
use Magento\PageBuilder\Model\Config as PageBuilderConfig;
1518
use Magento\PageBuilder\Model\State as PageBuilderState;
1619
use Magento\PageBuilder\Model\Stage\Config as Config;
1720

@@ -23,7 +26,7 @@
2326
class Wysiwyg extends \Magento\Ui\Component\Form\Element\Wysiwyg
2427
{
2528
/**
26-
* Wysiwyg constructor.
29+
* WYSIWYG Constructor
2730
*
2831
* @param ContextInterface $context
2932
* @param FormFactory $formFactory
@@ -34,6 +37,11 @@ class Wysiwyg extends \Magento\Ui\Component\Form\Element\Wysiwyg
3437
* @param array $components
3538
* @param array $data
3639
* @param array $config
40+
* @param PageBuilderConfig|null $pageBuilderConfig
41+
* @param bool $overrideSnapshot
42+
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
43+
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
44+
* @throws \Magento\Framework\Exception\NoSuchEntityException
3745
*/
3846
public function __construct(
3947
ContextInterface $context,
@@ -44,21 +52,25 @@ public function __construct(
4452
Config $stageConfig,
4553
array $components = [],
4654
array $data = [],
47-
array $config = []
55+
array $config = [],
56+
PageBuilderConfig $pageBuilderConfig = null,
57+
bool $overrideSnapshot = false
4858
) {
4959
$wysiwygConfigData = isset($config['wysiwygConfigData']) ? $config['wysiwygConfigData'] : [];
60+
5061
// If a dataType is present we're dealing with an attribute
5162
if (isset($config['dataType'])) {
5263
try {
5364
$attribute = $attrRepository->get($data['name']);
65+
5466
if ($attribute) {
5567
$config['wysiwyg'] = (bool)$attribute->getIsWysiwygEnabled();
5668
}
5769
} catch (NoSuchEntityException $e) {
58-
// This model is used by non product attributes
5970
$config['wysiwyg'] = true;
6071
}
6172
}
73+
6274
$isEnablePageBuilder = isset($wysiwygConfigData['is_pagebuilder_enabled'])
6375
&& !$wysiwygConfigData['is_pagebuilder_enabled']
6476
|| false;
@@ -70,12 +82,24 @@ public function __construct(
7082
$data['config']['template'] = 'ui/form/field';
7183
$data['config']['elementTmpl'] = 'Magento_PageBuilder/form/element/wysiwyg';
7284
$wysiwygConfigData = $stageConfig->getConfig();
85+
86+
if ($overrideSnapshot) {
87+
$pageBuilderConfig = $pageBuilderConfig ?: ObjectManager::getInstance()->get(PageBuilderConfig::class);
88+
$wysiwygConfigData['pagebuilder_content_snapshot'] = $pageBuilderConfig->isContentPreviewEnabled();
89+
}
90+
91+
// Add Classes for Page Builder Stage
92+
if (isset($wysiwygConfigData['pagebuilder_content_snapshot'])
93+
&& $wysiwygConfigData['pagebuilder_content_snapshot']) {
94+
$data['config']['additionalClasses'] = 'admin__field-wide admin__field-page-builder';
95+
}
96+
7397
$data['config']['wysiwygConfigData'] = isset($config['wysiwygConfigData']) ?
7498
array_replace_recursive($config['wysiwygConfigData'], $wysiwygConfigData) :
7599
$wysiwygConfigData;
76100
$wysiwygConfigData['activeEditorPath'] = 'Magento_PageBuilder/pageBuilderAdapter';
101+
77102
$config['wysiwygConfigData'] = $wysiwygConfigData;
78-
$wysiwygConfigData['activeEditorPath'] = 'Magento_PageBuilder/pageBuilderAdapter';
79103
}
80104

81105
parent::__construct($context, $formFactory, $wysiwygConfig, $components, $data, $config);

app/code/Magento/PageBuilder/Model/Config.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ class Config extends \Magento\Framework\Config\Data implements \Magento\PageBuil
1717
{
1818
const IS_PAGEBUILDER_ENABLED = 'cms/pagebuilder/enabled';
1919

20+
private const IS_PAGEBUILDER_CONTENT_PREVIEW_ENABLED = 'cms/pagebuilder/enable_content_preview';
21+
2022
/**
2123
* @var ScopeConfigInterface
2224
*/
@@ -66,7 +68,19 @@ public function getContentTypes(): array
6668
public function isEnabled(): bool
6769
{
6870
return (bool)$this->scopeConfig->getValue(
69-
\Magento\PageBuilder\Model\Config::IS_PAGEBUILDER_ENABLED
71+
self::IS_PAGEBUILDER_ENABLED
72+
);
73+
}
74+
75+
/**
76+
* Returns Configuration Setting for Page Builder Content Preview
77+
*
78+
* @return bool
79+
*/
80+
public function isContentPreviewEnabled(): bool
81+
{
82+
return (bool) $this->scopeConfig->getValue(
83+
self::IS_PAGEBUILDER_CONTENT_PREVIEW_ENABLED
7084
);
7185
}
7286
}

app/code/Magento/PageBuilder/Plugin/Catalog/Ui/DataProvider/Product/Form/Modifier/EavPlugin.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Magento\Catalog\Api\Data\ProductAttributeInterface;
1212
use Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav as EavModifier;
1313
use Magento\Framework\Stdlib\ArrayManager;
14+
use Magento\PageBuilder\Model\Config;
1415

1516
/**
1617
* Data Provider for EAV Attributes on Product Page
@@ -24,12 +25,21 @@ class EavPlugin
2425
*/
2526
private $arrayManager;
2627

28+
/**
29+
* @var Config
30+
*/
31+
private $config;
32+
2733
/**
2834
* @param ArrayManager $arrayManager
35+
* @param Config $config
2936
*/
30-
public function __construct(ArrayManager $arrayManager)
31-
{
37+
public function __construct(
38+
ArrayManager $arrayManager,
39+
Config $config
40+
) {
3241
$this->arrayManager = $arrayManager;
42+
$this->config = $config;
3343
}
3444

3545
/**
@@ -53,7 +63,7 @@ public function afterSetupAttributeMeta(
5363
) {
5464
$meta = $result;
5565

56-
if ($attribute->getData('is_pagebuilder_enabled')) {
66+
if ($this->config->isContentPreviewEnabled() && $attribute->getData('is_pagebuilder_enabled')) {
5767
$meta = $this->arrayManager->merge(
5868
static::META_ATTRIBUTE_CONFIG_PATH,
5969
$result,
@@ -83,7 +93,7 @@ public function afterSetupAttributeContainerMeta(
8393
) {
8494
$containerMeta = $result;
8595

86-
if ($attribute->getData('is_pagebuilder_enabled')) {
96+
if ($this->config->isContentPreviewEnabled() && $attribute->getData('is_pagebuilder_enabled')) {
8797
$containerMeta = $this->arrayManager->merge(
8898
static::META_ATTRIBUTE_CONFIG_PATH,
8999
$result,
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
9+
<actionGroup name="AdminSetPageBuilderContentPreviewActionGroup">
10+
<annotations>
11+
<description>Sets "Enable Page Builder Content Preview" flag value.</description>
12+
</annotations>
13+
<arguments>
14+
<argument name="enablePageBuilderContentPreview" defaultValue="1" type="string"/>
15+
</arguments>
16+
<magentoCLI command="config:set cms/pagebuilder/enable_content_preview {{enablePageBuilderContentPreview}}" stepKey="setConfig"/>
17+
<magentoCLI command="cache:clean config" stepKey="flushCache"/>
18+
</actionGroup>
19+
</actionGroups>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
9+
<actionGroup name="ClickEditWithPageBuilderButtonActionGroup">
10+
<annotations>
11+
<description>Validates that Page Builder opens (full screen) using the "Edit with Page Builder" button.</description>
12+
</annotations>
13+
<waitForElementVisible selector="{{PageBuilderStage.editWithPageBuilderButton}}" stepKey="waitForEditWithPageBuilderButton"/>
14+
<click selector="{{PageBuilderStage.editWithPageBuilderButton}}" stepKey="clickEditWithPageBuilderButton"/>
15+
<waitForPageLoad stepKey="waitForFullScreenAnimation"/>
16+
<seeElement selector="{{PageBuilderStage.stageWrapperFullScreen}}" stepKey="seeStageFullScreen"/>
17+
<seeElement selector="{{PageBuilderStage.exitFullScreen}}" stepKey="seeExitFullScreenButton"/>
18+
</actionGroup>
19+
</actionGroups>

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/StageActionGroup/OpenPageBuilderFullScreenActionGroup.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
* See COPYING.txt for license details.
66
*/
77
-->
8-
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
8+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
109
<actionGroup name="openPageBuilderFullScreen">
1110
<waitForElementVisible selector="{{PageBuilderStage.openFullScreen}}" stepKey="waitForFullScreenButton"/>
1211
<click selector="{{PageBuilderStage.openFullScreen}}" stepKey="clickFullScreenButton"/>

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/StageActionGroup/ValidatePageBuilderPreviewActionGroup.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
* See COPYING.txt for license details.
66
*/
77
-->
8-
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
8+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
109
<actionGroup name="ValidatePageBuilderPreviewActionGroup">
1110
<annotations>
1211
<description>Verifies Page Builder preview has the 'Edit with Page Builder' button, has an overlay, does not have the Page Builder left panel, does not have the Page Builder template buttons, and does not open content type option menus.</description>
@@ -16,6 +15,7 @@
1615
</arguments>
1716
<waitForElementVisible selector="{{pageBuilderArea}}{{PageBuilderStage.editWithPageBuilderButton}}" stepKey="waitForEditWithPageBuilderButton"/>
1817
<see userInput="Edit with Page Builder" selector="{{pageBuilderArea}}{{PageBuilderStage.editWithPageBuilderButton}}" stepKey="seeEditWithPageBuilderButton"/>
18+
<waitForElementVisible selector="{{pageBuilderArea}}{{PageBuilderStage.stageSnapshot}}" stepKey="seeStageSnapshot"/>
1919
<dontSeeElement selector="{{PageBuilderPanel.leftPanel}}" stepKey="dontSeePageBuilderContentTypePanel"/>
2020
<dontSeeElementInDOM selector="{{pageBuilderArea}}{{PageBuilderStage.applyTemplateButton}}" stepKey="dontSeePageBuilderApplyTemplateButton"/>
2121
<dontSeeElementInDOM selector="{{pageBuilderArea}}{{PageBuilderStage.saveAsTemplateButton}}" stepKey="dontSeePageBuilderSaveAsTemplateButton"/>

app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderStageSection/PageBuilderStageSection.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
* See COPYING.txt for license details.
66
*/
77
-->
8-
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
8+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
109
<section name="PageBuilderStage">
1110
<element name="imageSource" type="text" selector="//img[contains(@src,'{{var1}}')]" parameterized="true"/>
1211
<element name="applyTemplateButton" type="button" selector="//button[contains(@data-bind,'toggleTemplateManger') and text()='Apply Template']"/>
@@ -20,6 +19,7 @@
2019
<element name="editButtonSelector" type="button" selector="//button/span[contains(text(), 'Edit with Page Builder')]"/>
2120
<element name="enabled" type="button" selector="//div[not(contains(@class, '_disabled'))]/div[contains(@class, 'pagebuilder-wysiwyg-wrapper')]/div[contains(@class, 'pagebuilder-stage-wrapper')]"/>
2221
<element name="disabled" type="button" selector="//div[contains(@class, '_disabled')]/div[contains(@class, 'pagebuilder-wysiwyg-wrapper')]/div[contains(@class, 'pagebuilder-stage-wrapper')]"/>
22+
<element name="stageSnapshot" type="button" selector="//div[contains(@class, 'pagebuilder-wysiwyg-wrapper') and contains(@class, 'pagebuilder-wysiwyg-snapshot')]"/>
2323
<element name="stagePreview" type="button" selector="//div[contains(@class, 'pagebuilder-stage-wrapper') and not(contains(@class, 'stage-full-screen'))]"/>
2424
<element name="stageWrapperFullScreen" type="button" selector="div.pagebuilder-stage-wrapper.stage-is-active.stage-full-screen"/>
2525
<element name="stageOverlay" type="button" selector="div.pagebuilder-wysiwyg-overlay"/>

app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderStoreConfigurationSection.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
*/
77
-->
88

9-
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
9+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1110
<section name="ContentManagementSection">
1211
<element name="PageBuilderOptions" type="button" selector="#cms_pagebuilder-head"/>
1312
<element name="CheckIfPageBuilderTabExpanded" type="button" selector="#cms_pagebuilder-head:not(.open)"/>
1413
<element name="EnablePageBuilderSystemValue" type="button" selector="#cms_pagebuilder_enabled_inherit"/>
1514
<element name="EnablePageBuilder" type="button" selector="#cms_pagebuilder_enabled"/>
15+
<element name="enablePageBuilderContentPreview" type="button" selector="#cms_pagebuilder_enable_content_preview"/>
16+
<element name="enablePageBuilderContentPreviewComment" type="text" selector="#row_cms_pagebuilder_enable_content_preview .value .note span"/>
1617
<element name="DisclaimerMessage" type="text" selector="//aside[@data-type='popup']//div[@class='modal-inner-wrap']"/>
1718
<element name="CancelBtn" type="button" selector=".action-pagebuilder-cancel"/>
1819
<element name="TurnOffBtn" type="button" selector=".action-accept"/>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
9+
<test name="PageBuilderCategoryDisablePageBuilderContentPreviewTest">
10+
<annotations>
11+
<features value="PageBuilder"/>
12+
<stories value="Catalog Category"/>
13+
<title value="Category - Validate Toggling Page Builder Content Preview"/>
14+
<description value="Ensures that Page Builder content staging can be enabled/disabled for Edit Category pages via the Enable Page Builder Content Preview flag."/>
15+
<severity value="MAJOR"/>
16+
<group value="pagebuilder"/>
17+
<group value="pagebuilder-disable"/>
18+
<group value="pagebuilder-catalog-category"/>
19+
</annotations>
20+
<before>
21+
<createData entity="_defaultCategory" stepKey="createCategory"/>
22+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
23+
<actionGroup ref="NavigateToCreatedCategoryActionGroup" stepKey="navigateToCreatedCategory">
24+
<argument name="Category" value="$$createCategory$$"/>
25+
</actionGroup>
26+
<actionGroup ref="ExpandAdminProductSectionActionGroup" stepKey="expandContentSection"/>
27+
</before>
28+
<after>
29+
<actionGroup ref="AdminSetPageBuilderContentPreviewActionGroup" stepKey="resetPageBuilderContentPreview"/>
30+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
31+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
32+
</after>
33+
<!-- Verify (Enabled) Content Preview -->
34+
<actionGroup ref="ValidatePageBuilderPreviewActionGroup" stepKey="ValidatePageBuilderPreview"/>
35+
<!-- Verify (Disabled) Content Preview -->
36+
<actionGroup ref="AdminSetPageBuilderContentPreviewActionGroup" stepKey="disablePageBuilderContentPreview">
37+
<argument name="enablePageBuilderContentPreview" value="0"/>
38+
</actionGroup>
39+
<actionGroup ref="NavigateToCreatedCategoryActionGroup" stepKey="navigateToCreatedCategory">
40+
<argument name="Category" value="$$createCategory$$"/>
41+
</actionGroup>
42+
<actionGroup ref="ExpandAdminProductSectionActionGroup" stepKey="expandContentSection"/>
43+
<dontSeeElementInDOM selector="{{PageBuilderStage.stageSnapshot}}" stepKey="dontSeeStageSnapshot"/>
44+
<actionGroup ref="ClickEditWithPageBuilderButtonActionGroup" stepKey="clickEditWithPageBuilderButtonActionGroup"/>
45+
</test>
46+
</tests>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
9+
<test name="PageBuilderProductDisablePageBuilderContentPreviewTest">
10+
<annotations>
11+
<features value="PageBuilder"/>
12+
<stories value="Catalog Product"/>
13+
<title value="Product - Validate Toggling Page Builder Content Preview"/>
14+
<description value="Ensures that Page Builder content staging can be enabled/disabled for Edit Product pages via the Enable Page Builder Content Preview flag."/>
15+
<severity value="MAJOR"/>
16+
<group value="pagebuilder"/>
17+
<group value="pagebuilder-disable"/>
18+
<group value="pagebuilder-catalog-product"/>
19+
</annotations>
20+
<before>
21+
<createData entity="_defaultCategory" stepKey="createCategory"/>
22+
<createData entity="_defaultProduct" stepKey="createProduct">
23+
<requiredEntity createDataKey="createCategory"/>
24+
</createData>
25+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
26+
<actionGroup ref="NavigateToCreatedProductEditPageActionGroup" stepKey="navigateToCreatedProductEditPage">
27+
<argument name="product" value="$$createProduct$$"/>
28+
</actionGroup>
29+
<actionGroup ref="ExpandAdminProductSectionActionGroup" stepKey="expandContentSection"/>
30+
</before>
31+
<after>
32+
<actionGroup ref="AdminSetPageBuilderContentPreviewActionGroup" stepKey="resetPageBuilderContentPreview"/>
33+
<deleteData createDataKey="createProduct" stepKey="deleteProduct"/>
34+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
35+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
36+
</after>
37+
<!-- Verify (Enabled) Content Preview -->
38+
<actionGroup ref="ValidatePageBuilderPreviewActionGroup" stepKey="ValidatePageBuilderPreview"/>
39+
<!-- Verify (Disabled) Content Preview -->
40+
<actionGroup ref="AdminSetPageBuilderContentPreviewActionGroup" stepKey="disablePageBuilderContentPreview">
41+
<argument name="enablePageBuilderContentPreview" value="0"/>
42+
</actionGroup>
43+
<actionGroup ref="NavigateToCreatedProductEditPageActionGroup" stepKey="navigateToCreatedProductEditPage">
44+
<argument name="product" value="$$createProduct$$"/>
45+
</actionGroup>
46+
<actionGroup ref="ExpandAdminProductSectionActionGroup" stepKey="expandContentSection"/>
47+
<dontSeeElementInDOM selector="{{PageBuilderStage.stageSnapshot}}" stepKey="dontSeeStageSnapshot"/>
48+
<actionGroup ref="ClickEditWithPageBuilderButtonActionGroup" stepKey="clickEditWithPageBuilderButtonActionGroup"/>
49+
</test>
50+
</tests>

0 commit comments

Comments
 (0)