Skip to content

Commit 22044ab

Browse files
author
Cari Spruiell
authored
Merge pull request #165 from magento-obsessive-owls/cms-team-1-delivery
[CMS Team 1] PageBuilder Bug Fixes - Week 7
2 parents 323bc2d + 5e46efb commit 22044ab

File tree

67 files changed

+1002
-404
lines changed

Some content is hidden

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

67 files changed

+1002
-404
lines changed

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

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
use Magento\Framework\Config\DataInterfaceFactory;
1111
use Magento\Ui\Config\Converter;
1212

13+
/**
14+
* Retrieve fields and default values from associated UI component forms for content types
15+
*/
1316
class UiComponentConfig
1417
{
1518
/**
@@ -31,7 +34,7 @@ public function __construct(
3134
/**
3235
* Retrieve fields for UI Component
3336
*
34-
* @param $componentName
37+
* @param string $componentName
3538
*
3639
* @return array
3740
*/
@@ -61,32 +64,11 @@ function ($item, $key) {
6164
return $fields;
6265
}
6366

64-
/**
65-
* Retrieve buttons associated with a UI component
66-
*
67-
* @param $componentName
68-
*
69-
* @return array
70-
*/
71-
public function getButtons($componentName) : array
72-
{
73-
$componentConfig = $this->configFactory->create(
74-
['componentName' => $componentName]
75-
)->get($componentName);
76-
77-
// Does the component have any buttons assigned?
78-
if (isset($componentConfig[Converter::DATA_ARGUMENTS_KEY]['data']['buttons'])) {
79-
return $componentConfig[Converter::DATA_ARGUMENTS_KEY]['data']['buttons'];
80-
}
81-
82-
return [];
83-
}
84-
8567
/**
8668
* Iterate over components within the configuration and run a defined callback function
8769
*
88-
* @param $config
89-
* @param $callback
70+
* @param array $config
71+
* @param \Closure $callback
9072
* @param bool $key
9173
*
9274
* @return array
@@ -96,6 +78,10 @@ private function iterateComponents($config, $callback, $key = false) : array
9678
$values = $callback($config, $key) ?: [];
9779
if (isset($config[Converter::DATA_COMPONENTS_KEY])
9880
&& !empty($config[Converter::DATA_COMPONENTS_KEY])
81+
&& (!isset($config[Converter::DATA_ARGUMENTS_KEY]['data']['config']['componentType'])
82+
|| isset($config[Converter::DATA_ARGUMENTS_KEY]['data']['config']['componentType'])
83+
&& $config[Converter::DATA_ARGUMENTS_KEY]['data']['config']['componentType'] !== 'dynamicRows'
84+
)
9985
) {
10086
foreach ($config[Converter::DATA_COMPONENTS_KEY] as $key => $child) {
10187
$values = array_merge(

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/ContentTypeImageActionGroup.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
<argument name="property"/>
1313
</arguments>
1414
<comment userInput="Attach image A to PageBuilder stage" stepKey="commentAttach"/>
15-
<attachFile userInput="{{property.value}}" selector="{{ImageOnStage.attachImageBtn}}" stepKey="attachImageFileOnStage"/>
15+
<attachFile userInput="{{property.value}}" selector="{{ImageOnStageWithoutImageUploaded.attachImageBtn}}" stepKey="attachImageFileOnStage"/>
1616
<waitForPageLoad stepKey="waitForPageLoad"/>
17-
<waitForElementVisible selector="{{ImageOnStage.imagePreview}}" stepKey="waitForImagePreview"/>
18-
<waitForElementVisible selector="{{ImageOnStage.imageSource(property.fileName)}}" stepKey="waitForImageSource"/>
17+
<waitForElementVisible selector="{{ImageOnStageWithoutImageUploaded.imagePreview}}" stepKey="waitForImagePreview"/>
18+
<waitForElementVisible selector="{{ImageOnStageWithoutImageUploaded.imageSource(property.fileName)}}" stepKey="waitForImageSource"/>
1919
</actionGroup>
2020
<actionGroup name="verifyImageOnSlideout">
2121
<arguments>

app/code/Magento/PageBuilder/Test/Mftf/Data/BannerData.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,13 @@
6868
<data key="cmsPageLinkName" unique="suffix">cms-page-link-</data>
6969
<data key="value">Good Night!</data>
7070
</entity>
71+
<!-- Background Color -->
72+
<entity name="PageBuilderBannerBackgroundColor_Empty" type="pagebuilder_banner_background_color_property">
73+
<data key="name">Background Color</data>
74+
<data key="section">background</data>
75+
<data key="fieldName">background_color</data>
76+
<data key="stageValue">rgb(250, 250, 250)</data>
77+
</entity>
7178
<!-- Link -->
7279
<entity name="PageBuilderBannerLinkUrlProperty" type="pagebuilder_banner_linkUrl_property">
7380
<data key="name">Link</data>

app/code/Magento/PageBuilder/Test/Mftf/Data/CmsConfigData.xml

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,6 @@
88

99
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
11-
<entity name="enablePageBuilderAndWYSIWYGForm" type="config">
12-
<data key="config_state[cms_wysiwyg]">true</data>
13-
<data key="groups[wysiwyg][fields][enabled][value]">enabled</data>
14-
<data key="groups[wysiwyg][fields][editor][inherit]">true</data>
15-
<data key="groups[wysiwyg][fields][use_static_urls_in_catalog][value]">false</data>
16-
<data key="config_state[cms_pagebuilder]">true</data>
17-
<data key="groups[pagebuilder][fields][enabled][value]">true</data>
18-
</entity>
19-
<entity name="disableWYSYWYGForm" type="config">
20-
<data key="config_state[cms_wysiwyg]">false</data>
21-
<data key="groups[wysiwyg][fields][enabled][value]">disabled</data>
22-
<data key="groups[wysiwyg][fields][editor][inherit]">true</data>
23-
<data key="groups[wysiwyg][fields][use_static_urls_in_catalog][value]">false</data>
24-
<data key="config_state[cms_pagebuilder]">false</data>
25-
<data key="groups[pagebuilder][fields][enabled][value]">true</data>
26-
</entity>
2711
<entity name="googleMapsAPIKey" type="config">
2812
<data key="section">cms_pagebuilder</data>
2913
<data key="row">row_cms_pagebuilder_google_maps_api_key</data>

app/code/Magento/PageBuilder/Test/Mftf/Data/SlideData.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@
4040
<data key="fieldName">min_height</data>
4141
<data key="value">300</data>
4242
</entity>
43+
<!-- Background Color -->
44+
<entity name="PageBuilderSlideItemBackgroundColor_Empty" type="pagebuilder_slide_item_background_color_property">
45+
<data key="name">Background Color</data>
46+
<data key="section">background</data>
47+
<data key="fieldName">background_color</data>
48+
<data key="stageValue">rgb(250, 250, 250)</data>
49+
</entity>
4350
<!-- Link -->
4451
<entity name="PageBuilderSlideItemLinkURL_Empty" type="pagebuilder_slide_item_link_url_property">
4552
<data key="name">Link</data>
@@ -169,6 +176,13 @@
169176
<data key="fieldName">overlay_color</data>
170177
<data key="value"/>
171178
</entity>
179+
<entity name="PageBuilderSlideItemOverlayColor_HexGreen" type="pagebuilder_slide_item_overlay_color_property">
180+
<data key="name">Overlay Color</data>
181+
<data key="section">general</data>
182+
<data key="fieldName">overlay_color</data>
183+
<data key="value">#008000</data>
184+
<data key="rgb">0, 128, 0</data>
185+
</entity>
172186
<entity name="PageBuilderSlideItemOverlayColor_HexWhite" type="pagebuilder_slide_item_overlay_color_property">
173187
<data key="name">Overlay Color</data>
174188
<data key="section">general</data>

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@
5050
<!-- Advanced Configuration -->
5151
<element name="alignment" type="text" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='wrapper'][contains(@style,'text-align: {{arg2}};')]" parameterized="true"/>
5252
<element name="noAlignment" type="text" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='wrapper'][not(contains(@style,'text-align:'))]" parameterized="true"/>
53-
<element name="border" type="text" selector="(//div[@data-role='banner'])[{{arg1}}][contains(@style,'border-style: {{arg2}};')]" parameterized="true"/>
54-
<element name="borderColor" type="text" selector="(//div[@data-role='banner'])[{{arg1}}][contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>
55-
<element name="noBorderColor" type="text" selector="(//div[@data-role='banner'])[{{arg1}}][not(contains(@style,'border-color:'))]" parameterized="true"/>
56-
<element name="borderWidth" type="text" selector="(//div[@data-role='banner'])[{{arg1}}][contains(@style,'border-width: {{arg2}}px;')]" parameterized="true"/>
57-
<element name="borderRadius" type="text" selector="(//div[@data-role='banner'])[{{arg1}}][contains(@style,'border-radius: {{arg2}}px;')]" parameterized="true"/>
53+
<element name="border" type="text" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='wrapper'][contains(@style,'border-style: {{arg2}};')]" parameterized="true"/>
54+
<element name="borderColor" type="text" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='wrapper'][contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>
55+
<element name="noBorderColor" type="text" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='wrapper'][not(contains(@style,'border-color:'))]" parameterized="true"/>
56+
<element name="borderWidth" type="text" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='wrapper'][contains(@style,'border-width: {{arg2}}px;')]" parameterized="true"/>
57+
<element name="borderRadius" type="text" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='wrapper'][contains(@style,'border-radius: {{arg2}}px;')]" parameterized="true"/>
5858
<element name="cssClasses" type="text" selector="(//div[@data-role='banner'])[{{arg1}}][contains(@class,'{{arg2}}')]" parameterized="true"/>
5959
<element name="noCssClasses" type="text" selector="(//div[@data-role='banner'])[{{arg1}}][not(@class)]" parameterized="true"/>
6060
<element name="margins" type="text" selector="(//div[@data-role='banner'])[{{arg1}}][contains(@style,'margin: {{arg2}}px;')]" parameterized="true"/>
@@ -105,11 +105,11 @@
105105
<!-- Advanced Configuration -->
106106
<element name="alignment" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//div[@data-element='wrapper'][contains(@style,'text-align: {{arg2}};')]" parameterized="true"/>
107107
<element name="noAlignment" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//div[@data-element='wrapper'][not(contains(@style,'text-align:'))]" parameterized="true"/>
108-
<element name="border" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}][contains(@style,'border-style: {{arg2}};')]" parameterized="true"/>
109-
<element name="borderColor" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}][contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>
110-
<element name="noBorderColor" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}][not(contains(@style,'border-color:'))]" parameterized="true"/>
111-
<element name="borderWidth" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}][contains(@style,'border-width: {{arg2}}px;')]" parameterized="true"/>
112-
<element name="borderRadius" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}][contains(@style,'border-radius: {{arg2}}px;')]" parameterized="true"/>
108+
<element name="border" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='wrapper'])[{{arg1}}][contains(@style,'border-style: {{arg2}};')]" parameterized="true"/>
109+
<element name="borderColor" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='wrapper'])[{{arg1}}][contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>
110+
<element name="noBorderColor" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='wrapper'])[{{arg1}}][not(contains(@style,'border-color:'))]" parameterized="true"/>
111+
<element name="borderWidth" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='wrapper'])[{{arg1}}][contains(@style,'border-width: {{arg2}}px;')]" parameterized="true"/>
112+
<element name="borderRadius" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='wrapper'])[{{arg1}}][contains(@style,'border-radius: {{arg2}}px;')]" parameterized="true"/>
113113
<element name="cssClasses" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}][contains(@class,'{{arg2}}')]" parameterized="true"/>
114114
<element name="noCssClasses" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]" parameterized="true"/>
115115
<element name="margins" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}][contains(@style,'margin: {{arg2}}px;')]" parameterized="true"/>

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

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
11-
<section name="ImageOnStage">
11+
<section name="ImageOnStageWithoutImageUploaded">
1212
<element name="base" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]" parameterized="true"/>
1313
<element name="hidden" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]/ancestor::*[contains(@class, 'pagebuilder-content-type-wrapper') and contains(@class, 'pagebuilder-content-type-hidden')]" parameterized="true"/>
1414
<element name="notHidden" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]/ancestor::*[contains(@class, 'pagebuilder-content-type-wrapper') and not(contains(@class, 'pagebuilder-content-type-hidden'))][1]" parameterized="true"/>
@@ -35,6 +35,21 @@
3535
<element name="margins" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//figure[contains(@style,'margin: {{arg2}}px;')]" parameterized="true"/>
3636
<element name="padding" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//figure[contains(@style,'padding: {{arg2}}px;')]" parameterized="true"/>
3737
</section>
38+
<section name="ImageOnStage">
39+
<element name="base" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]" parameterized="true"/>
40+
<!-- Advanced Configuration -->
41+
<element name="noAlignment" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//figure[not(contains(@style,'text-align:'))]" parameterized="true"/>
42+
<element name="alignment" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//figure[contains(@style,'text-align: {{arg2}};')]" parameterized="true"/>
43+
<element name="border" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//img[contains(@style,'border-style: {{arg2}};')]" parameterized="true"/>
44+
<element name="borderColor" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//img[contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>
45+
<element name="noBorderColor" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//img[not(contains(@style,'border-color:'))]" parameterized="true"/>
46+
<element name="borderWidth" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//img[contains(@style,'border-width: {{arg2}}px;')]" parameterized="true"/>
47+
<element name="borderRadius" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//img[contains(@style,'border-radius: {{arg2}}px;')]" parameterized="true"/>
48+
<element name="cssClasses" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//figure[contains(@class,'{{arg2}}')]" parameterized="true"/>
49+
<element name="noCssClasses" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//figure[not(@class)]" parameterized="true"/>
50+
<element name="margins" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//figure[contains(@style,'margin: {{arg2}}px;')]" parameterized="true"/>
51+
<element name="padding" type="text" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-image')])[{{arg1}}]//figure[contains(@style,'padding: {{arg2}}px;')]" parameterized="true"/>
52+
</section>
3853
<section name="ImageOnStorefront">
3954
<element name="base" type="text" selector="(//figure[@data-role='image'])[{{arg1}}]" parameterized="true"/>
4055
<element name="hidden" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style, 'display: none')]" parameterized="true"/>
@@ -54,11 +69,11 @@
5469
<!-- Advanced Configuration -->
5570
<element name="alignment" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style,'text-align: {{arg2}};')]" parameterized="true"/>
5671
<element name="noAlignment" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][not(contains(@style,'text-align:'))]" parameterized="true"/>
57-
<element name="border" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style,'border-style: {{arg2}};')]" parameterized="true"/>
58-
<element name="borderColor" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>
59-
<element name="noBorderColor" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][not(contains(@style,'border-color:'))]" parameterized="true"/>
60-
<element name="borderWidth" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style,'border-width: {{arg2}}px;')]" parameterized="true"/>
61-
<element name="borderRadius" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style,'border-radius: {{arg2}}px;')]" parameterized="true"/>
72+
<element name="border" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style,'border-style: {{arg2}};')]|(//figure[@data-role='image'])[{{arg1}}]//*[@data-element='desktop_image' and contains(@style,'border-style: {{arg2}};')]" parameterized="true"/>
73+
<element name="borderColor" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style,'border-color: {{arg2}};')]|(//figure[@data-role='image'])[{{arg1}}]//*[@data-element='desktop_image' and contains(@style,'border-color: {{arg2}};')]" parameterized="true"/>
74+
<element name="noBorderColor" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][not(contains(@style,'border-color:'))]|(//figure[@data-role='image'])[{{arg1}}]//*[@data-element='desktop_image' and not(contains(@style,'border-color:'))]" parameterized="true"/>
75+
<element name="borderWidth" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style,'border-width: {{arg2}}px;')]|(//figure[@data-role='image'])[{{arg1}}]//*[@data-element='desktop_image' and contains(@style,'border-width: {{arg2}}px;')]" parameterized="true"/>
76+
<element name="borderRadius" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style,'border-radius: {{arg2}}px;')]|(//figure[@data-role='image'])[{{arg1}}]//*[@data-element='desktop_image' and contains(@style,'border-radius: {{arg2}}px;')]" parameterized="true"/>
6277
<element name="cssClasses" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@class,'{{arg2}}')]" parameterized="true"/>
6378
<element name="noCssClasses" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][not(@class)]" parameterized="true"/>
6479
<element name="margins" type="text" selector="(//figure[@data-role='image'])[{{arg1}}][contains(@style,'margin: {{arg2}}px;')]" parameterized="true"/>

0 commit comments

Comments
 (0)