Skip to content

Commit 6e8e27e

Browse files
author
Cari Spruiell
authored
Merge pull request #150 from magento-obsessive-owls/cms-team-1-delivery
[Owls] PageBuilder Bug Fixes
2 parents b106074 + 5143d04 commit 6e8e27e

File tree

76 files changed

+1143
-782
lines changed

Some content is hidden

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

76 files changed

+1143
-782
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public function __construct(array $config)
2828

2929
/**
3030
* Retrieves the component-ready configuration for the widget initializer
31+
*
3132
* @return array
3233
*/
3334
public function getConfig(): array
@@ -43,9 +44,9 @@ public function getConfig(): array
4344
$selector .= sprintf('[data-appearance="%s"]', $item['appearance']);
4445
}
4546
$componentConfig = isset($item['config']) ? $item['config'] : '{}';
46-
$resultConfig[$selector] = [$item['component'] => $componentConfig];
47+
$resultConfig[$selector][$item['component']] = $componentConfig;
4748
}
4849
}
4950
return $resultConfig;
5051
}
51-
}
52+
}

app/code/Magento/PageBuilder/Setup/DataConverter/Renderer/AdvancedSliderItem.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ class AdvancedSliderItem implements RendererInterface
2626
*/
2727
private $eavAttributeLoader;
2828

29+
/**
30+
* @param StyleExtractorInterface $styleExtractor
31+
* @param EavAttributeLoaderInterface $eavAttributeLoader
32+
*/
2933
public function __construct(
3034
StyleExtractorInterface $styleExtractor,
3135
EavAttributeLoaderInterface $eavAttributeLoader
@@ -35,7 +39,7 @@ public function __construct(
3539
}
3640

3741
/**
38-
* {@inheritdoc}
42+
* @inheritdoc
3943
*
4044
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
4145
* @SuppressWarnings(PHPMD.NPathComplexity)
@@ -103,8 +107,8 @@ public function render(array $itemData, array $additionalData = []) : string
103107
}
104108

105109
// mobile wrapper div
106-
$rootElementHtml = '<div' . $this->printAttributes($rootElementAttributes) . '><a data-element="link"';
107-
$rootElementHtml .= isset($eavData['link_url']) ? ' href="' . $eavData['link_url'] . '">' : '>';
110+
$rootElementHtml = '<div' . $this->printAttributes($rootElementAttributes) . '><div data-element="link"';
111+
$rootElementHtml .= isset($eavData['link_url']) ? ' data-href="' . $eavData['link_url'] . '">' : '>';
108112
$rootElementHtml .= '<div'
109113
. $this->printAttributes($wrapperDivElementAttributes)
110114
. '><div'
@@ -134,7 +138,7 @@ public function render(array $itemData, array $additionalData = []) : string
134138
. $buttonElementHtml
135139
. '</div></div></div>';
136140

137-
$rootElementHtml .= '</a></div>';
141+
$rootElementHtml .= '</div></div>';
138142

139143
return $rootElementHtml;
140144
}

app/code/Magento/PageBuilder/Setup/DataConverter/Renderer/Driver.php

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ class Driver implements RendererInterface
3232
*/
3333
private $serializer;
3434

35+
/**
36+
* @param StyleExtractorInterface $styleExtractor
37+
* @param EavAttributeLoaderInterface $eavAttributeLoader
38+
* @param Json $serializer
39+
*/
3540
public function __construct(
3641
StyleExtractorInterface $styleExtractor,
3742
EavAttributeLoaderInterface $eavAttributeLoader,
@@ -43,7 +48,7 @@ public function __construct(
4348
}
4449

4550
/**
46-
* {@inheritdoc}
51+
* @inheritdoc
4752
*/
4853
public function render(array $itemData, array $additionalData = []) : string
4954
{
@@ -80,8 +85,8 @@ public function render(array $itemData, array $additionalData = []) : string
8085
$rootElementAttributes['style'] .= $margin;
8186
$linkAttributes = [
8287
'data-element' => 'link',
83-
'href' => $eavData['link_url'] ?? '',
84-
'target' => isset($eavData['target_blank']) && $eavData['target_blank'] ? '_blank' : '',
88+
'data-href' => $eavData['link_url'] ?? '',
89+
'data-target' => isset($eavData['target_blank']) && $eavData['target_blank'] ? '_blank' : '',
8590
];
8691
$imageAttributes = [
8792
'data-element' => 'desktop_image',
@@ -123,7 +128,7 @@ public function render(array $itemData, array $additionalData = []) : string
123128

124129
return '<div'
125130
. $this->printAttributes($rootElementAttributes)
126-
. '><a'
131+
. '><div'
127132
. $this->printAttributes($linkAttributes)
128133
. '>'
129134
. $imageElementHtml
@@ -135,7 +140,7 @@ public function render(array $itemData, array $additionalData = []) : string
135140
. $overlayElementHtml
136141
. '<div class="pagebuilder-poster-content"><div data-element="content"></div>'
137142
. $buttonHtml
138-
. '</div></div></div></a></div>';
143+
. '</div></div></div></div></div>';
139144
}
140145

141146
/**

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@
278278
<waitForElementVisible selector="{{page.base(index)}}" stepKey="waitForElementVisible"/>
279279
<waitForElementVisible selector="{{page.noAlignment(index)}}" stepKey="waitForAlignmentVisible"/>
280280
<waitForElementVisible selector="{{page.border(index, border.value)}}" stepKey="waitForBorderVisible"/>
281-
<waitForElementVisible selector="{{page.borderColor(index, borderColor.rbg)}}" stepKey="waitForBorderColorVisible"/>
281+
<waitForElementVisible selector="{{page.borderColor(index, borderColor.rgb)}}" stepKey="waitForBorderColorVisible"/>
282282
<waitForElementVisible selector="{{page.borderWidth(index, borderWidth.value)}}" stepKey="waitForBorderWidthVisible"/>
283283
<waitForElementVisible selector="{{page.borderRadius(index, borderRadius.value)}}" stepKey="waitForBorderRadiusVisible"/>
284284
<waitForElementVisible selector="{{page.noCssClasses(index)}}" stepKey="waitForCSSClassesVisible"/>
@@ -399,7 +399,7 @@
399399
<waitForElementVisible selector="{{page.base(index)}}" stepKey="waitForElementVisible"/>
400400
<waitForElementVisible selector="{{page.alignment(index, alignment.value)}}" stepKey="waitForAlignmentVisible"/>
401401
<waitForElementVisible selector="{{page.border(index, border.value)}}" stepKey="waitForBorderVisible"/>
402-
<waitForElementVisible selector="{{page.borderColor(index, borderColor.rbg)}}" stepKey="waitForBorderColorVisible"/>
402+
<waitForElementVisible selector="{{page.borderColor(index, borderColor.rgb)}}" stepKey="waitForBorderColorVisible"/>
403403
<waitForElementVisible selector="{{page.borderWidth(index, borderWidth.value)}}" stepKey="waitForBorderWidthVisible"/>
404404
<waitForElementVisible selector="{{page.borderRadius(index, borderRadius.value)}}" stepKey="waitForBorderRadiusVisible"/>
405405
<waitForElementVisible selector="{{page.cssClasses(index, cssClasses.value)}}" stepKey="waitForCSSClassesVisible"/>
@@ -425,8 +425,8 @@
425425
<dontSeeElement selector="{{page.alignment(index, alignment.value)}}" stepKey="dontSeeAlignment"/>
426426
<waitForElement selector="{{page.border(index, border.value)}}" stepKey="waitForBorder"/>
427427
<dontSeeElement selector="{{page.border(index, border.value)}}" stepKey="dontSeeBorder"/>
428-
<waitForElement selector="{{page.borderColor(index, borderColor.rbg)}}" stepKey="waitForBorderColor"/>
429-
<dontSeeElement selector="{{page.borderColor(index, borderColor.rbg)}}" stepKey="dontSeeBorderColor"/>
428+
<waitForElement selector="{{page.borderColor(index, borderColor.rgb)}}" stepKey="waitForBorderColor"/>
429+
<dontSeeElement selector="{{page.borderColor(index, borderColor.rgb)}}" stepKey="dontSeeBorderColor"/>
430430
<waitForElement selector="{{page.borderWidth(index, borderWidth.value)}}" stepKey="waitForBorderWidth"/>
431431
<dontSeeElement selector="{{page.borderWidth(index, borderWidth.value)}}" stepKey="dontSeeBorderWidth"/>
432432
<waitForElement selector="{{page.borderRadius(index, borderRadius.value)}}" stepKey="waitForBorderRadius"/>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
<waitForElementVisible selector="{{page.baseByTagName(headingType.value, index)}}" stepKey="waitForElementVisible"/>
136136
<waitForElementVisible selector="{{page.alignment(headingType.value, index, alignment.value)}}" stepKey="waitForAlignmentVisible"/>
137137
<waitForElementVisible selector="{{page.border(headingType.value, index, border.value)}}" stepKey="waitForBorderVisible"/>
138-
<waitForElementVisible selector="{{page.borderColor(headingType.value, index, borderColor.rbg)}}" stepKey="waitForBorderColorVisible"/>
138+
<waitForElementVisible selector="{{page.borderColor(headingType.value, index, borderColor.rgb)}}" stepKey="waitForBorderColorVisible"/>
139139
<waitForElementVisible selector="{{page.borderWidth(headingType.value, index, borderWidth.value)}}" stepKey="waitForBorderWidthVisible"/>
140140
<waitForElementVisible selector="{{page.borderRadius(headingType.value, index, borderRadius.value)}}" stepKey="waitForBorderRadiusVisible"/>
141141
<waitForElementVisible selector="{{page.cssClasses(headingType.value, index, cssClasses.value)}}" stepKey="waitForCSSClassesVisible"/>

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

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@
122122
<data key="section">advanced</data>
123123
<data key="fieldName">border_color</data>
124124
<data key="value">#000000</data>
125-
<data key="rbg">rgb(0, 0, 0)</data>
125+
<data key="rgb">rgb(0, 0, 0)</data>
126126
</entity>
127127
<entity name="PageBuilderAdvancedBorderColorDefaultProperty" type="pagebuilder_advanced_border_color_property">
128128
<data key="name">Border Color</data>
@@ -142,44 +142,44 @@
142142
<data key="section">advanced</data>
143143
<data key="fieldName">border_color</data>
144144
<data key="value">#ffffff</data>
145-
<data key="rbg">rgb(255, 255, 255)</data>
145+
<data key="rgb">rgb(255, 255, 255)</data>
146146
<data key="editPanelValue">#ffffff</data>
147147
</entity>
148148
<entity name="PageBuilderAdvancedBorderColorProperty_FF0000" type="pagebuilder_advanced_border_color_property">
149149
<data key="name">Border Color</data>
150150
<data key="section">advanced</data>
151151
<data key="fieldName">border_color</data>
152152
<data key="value">#FF0000</data>
153-
<data key="rbg">rgb(255, 0, 0)</data>
153+
<data key="rgb">rgb(255, 0, 0)</data>
154154
</entity>
155155
<entity name="PageBuilderAdvancedBorderColorProperty_FF0000_rgb" type="pagebuilder_advanced_border_color_property">
156156
<data key="name">Border Color</data>
157157
<data key="section">advanced</data>
158158
<data key="fieldName">border_color</data>
159159
<data key="value">rgb(255, 0, 0)</data>
160-
<data key="rbg">rgb(255, 0, 0)</data>
160+
<data key="rgb">rgb(255, 0, 0)</data>
161161
</entity>
162162
<entity name="PageBuilderAdvancedBorderColorProperty_green" type="pagebuilder_advanced_border_color_property">
163163
<data key="name">Border Color</data>
164164
<data key="section">advanced</data>
165165
<data key="fieldName">border_color</data>
166166
<data key="value">#008000</data>
167-
<data key="rbg">rgb(0, 128, 0)</data>
167+
<data key="rgb">rgb(0, 128, 0)</data>
168168
<data key="editPanelValue">#008000</data>
169169
</entity>
170170
<entity name="PageBuilderAdvancedBorderColorProperty_rgb_0_0_255" type="pagebuilder_advanced_border_color_property">
171171
<data key="name">Border Color</data>
172172
<data key="section">advanced</data>
173173
<data key="fieldName">border_color</data>
174174
<data key="value">rgb(0, 0, 255)</data>
175-
<data key="rbg">rgb(0, 0, 255)</data>
175+
<data key="rgb">rgb(0, 0, 255)</data>
176176
</entity>
177177
<entity name="PageBuilderAdvancedBorderColorProperty_invalid" type="pagebuilder_advanced_border_color_property">
178178
<data key="name">Border Color</data>
179179
<data key="section">advanced</data>
180180
<data key="fieldName">border_color</data>
181181
<data key="value">invalid</data>
182-
<data key="rbg">rgb(0, 0, 0)</data>
182+
<data key="rgb">rgb(0, 0, 0)</data>
183183
<data key="errorMessage">Wrong color format. Please specify color in HEX, RGBa, HSVa, HSLa or use color name.</data>
184184
</entity>
185185
<!-- Border Width -->
@@ -523,6 +523,7 @@
523523
<data key="name">Margins and Padding</data>
524524
<data key="section">advanced</data>
525525
<data key="fieldName">margins_and_padding</data>
526+
<data key="value">5</data>
526527
<data key="marginTop">5</data>
527528
<data key="marginRight">5</data>
528529
<data key="marginBottom">5</data>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
<entity name="PageBuilderBannerLinkUrlPropertyValidate" type="pagebuilder_banner_linkUrl_property">
8888
<data key="name">Link</data>
8989
<data key="section">contents</data>
90-
<data key="fieldName">link_url[default]</data>
90+
<data key="fieldName">link_url</data>
9191
<data key="value">http://url.magento/</data>
9292
</entity>
9393
<entity name="PageBuilderBannerNewTabDefaultProperty" type="pagebuilder_banner_newTab_property">

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<data key="product">Product</data>
1414
<data key="category">Category</data>
1515
<data key="page">Page</data>
16-
<data key="googleUrl">https://www.google.com</data>
16+
<data key="googleUrl">https://www.google.com/</data>
1717
</entity>
1818
<entity name="ExternalLinkSearch" type="pagebuilder_external_link">
1919
<data key="page">cm</data>

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
<element name="noMessageContent" type="text" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='desktop_image']//div[@data-element='content'][.='Edit Banner Text'][not(*)]" parameterized="true"/>
4141
<element name="messageContentTextArea" type="text" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='desktop_image']//div[@data-element='content'][.='{{arg2}}']" parameterized="true"/>
4242
<element name="messageContentHeightJS" type="text" selector="return document.evaluate(&quot;(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='content']//div[contains(text(),'{{arg2}}')]&quot;, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.clientHeight;" parameterized="true"/>
43-
<element name="linkUrl" type="button" selector="(//div[@data-role='banner'])[{{arg1}}]/a[contains(@href,'{{arg2}}')]" parameterized="true"/>
44-
<element name="openInNewTab" type="button" selector="(//div[@data-role='banner'])[{{arg1}}]/a[contains(@target,'_blank')]" parameterized="true"/>
43+
<element name="linkUrl" type="button" selector="(//div[@data-role='banner'])[{{arg1}}]/*[@data-element='link'][contains(@data-href,'{{arg2}}')]" parameterized="true"/>
44+
<element name="openInNewTab" type="button" selector="(//div[@data-role='banner'])[{{arg1}}]/*[@data-element='link'][contains(@data-target,'_blank')]" parameterized="true"/>
4545
<element name="button" type="button" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='desktop_image']//button" parameterized="true"/>
4646
<element name="mobileButton" type="button" selector="(//div[@data-role='banner'])[{{arg1}}]//div[@data-element='mobile_image']//button" parameterized="true"/>
4747
<element name="showButton" type="button" selector="(//div[@data-role='banner'])[{{arg1}}][@data-show-button='{{arg2}}']" parameterized="true"/>
@@ -79,7 +79,7 @@
7979
<element name="notHidden" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and contains(@class,'pagebuilder-content-type')])[{{arg1}}]/ancestor::*[contains(@class, 'pagebuilder-content-type-wrapper') and not(contains(@class, 'pagebuilder-content-type-hidden'))][1]" parameterized="true"/>
8080
<element name="overlay" type="button" selector="(//div[contains(@class,'pagebuilder-content-type') and contains(@class,'pagebuilder-banner')])[{{arg1}}]//div[@data-element='overlay']" parameterized="true"/>
8181
<element name="emptyBanner" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and contains(@class,'pagebuilder-content-type')])[{{arg1}}]//div[contains(@class,'placeholder-text') and .='Edit Banner Text']" parameterized="true"/>
82-
<element name="editableButtonOnStage" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and contains(@class,'pagebuilder-content-type')])[{{arg1}}]//button//span[@contenteditable='true']" parameterized="true"/>
82+
<element name="editableButtonOnStage" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and contains(@class,'pagebuilder-content-type')])[{{arg1}}]//a//span[@contenteditable='true']" parameterized="true"/>
8383
<element name="wysiwygLinkUrl" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and contains(@class,'pagebuilder-content-type')])[{{arg1}}]//a[@href='{{arg2}}']" parameterized="true"/>
8484
<element name="imageOnStage" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and contains(@class,'pagebuilder-content-type')])[{{arg1}}]//img[contains(@src,'{{var1}}')]" parameterized="true"/>
8585
<!-- Appearance Configuration -->
@@ -98,10 +98,10 @@
9898
<!-- Content Configuration -->
9999
<element name="messageContent" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//div[@data-element='content']//p[.='{{arg2}}']" parameterized="true"/>
100100
<element name="noMessageContent" type="text" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//div[@data-element='content'][.='Edit Banner Text'][not(*)]" parameterized="true"/>
101-
<element name="button" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//button[@data-element='button']" parameterized="true"/>
101+
<element name="button" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//a[@data-element='button']" parameterized="true"/>
102102
<element name="showButton" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}][@data-show-button='{{arg2}}']" parameterized="true"/>
103-
<element name="buttonType" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//button[contains(@class,'{{arg2}}')]" parameterized="true"/>
104-
<element name="buttonText" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//button//span[.='{{arg2}}']" parameterized="true"/>
103+
<element name="buttonType" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//a[contains(@class,'{{arg2}}')]" parameterized="true"/>
104+
<element name="buttonText" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//a//span[.='{{arg2}}']" parameterized="true"/>
105105
<element name="showOverlay" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}][@data-show-overlay='{{arg2}}']" parameterized="true"/>
106106
<element name="overlayColorAndTransparency" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//div[@data-element='overlay'][contains(@style,'background-color: rgba({{arg2}}, {{arg3}});')]" parameterized="true"/>
107107
<element name="transparentOverlay" type="button" selector="(//div[contains(@class,'pagebuilder-banner') and @data-element='main'])[{{arg1}}]//div[@data-element='overlay'][contains(@style,'background-color: transparent;')]" parameterized="true"/>

0 commit comments

Comments
 (0)