Skip to content

Commit e0289f7

Browse files
committed
Merge remote-tracking branch 'origin/MC-4093-hide-stacked-buttons' into cms-team-1-delivery
2 parents 621e113 + 56b2fe4 commit e0289f7

File tree

9 files changed

+254
-6
lines changed

9 files changed

+254
-6
lines changed

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderButtonGroupTests.xml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,10 +1042,15 @@
10421042
<actionGroup ref="dragContentTypeToStage" stepKey="dragButtonsIntoStage">
10431043
<argument name="contentType" value="PageBuilderButtonsContentType"/>
10441044
</actionGroup>
1045+
<actionGroup ref="addButton" stepKey="addButton" />
10451046
<actionGroup ref="inlineEditButton" stepKey="inlineEditButton1">
10461047
<argument name="text" value="PageBuilderButtonItemText_First"/>
10471048
<argument name="index" value="1"/>
10481049
</actionGroup>
1050+
<actionGroup ref="inlineEditButton" stepKey="inlineEditButton2">
1051+
<argument name="text" value="PageBuilderButtonItemText_Second"/>
1052+
<argument name="index" value="2"/>
1053+
</actionGroup>
10491054
<actionGroup ref="hideContentType" stepKey="hideContentType">
10501055
<argument name="section" value="ButtonGroupOnStage"/>
10511056
<argument name="contentType" value="PageBuilderButtonsContentType"/>
@@ -1056,10 +1061,12 @@
10561061
<comment userInput="Validate content type remains disabled after save" stepKey="commentValidateHiddenStage"/>
10571062
<seeElement selector="{{ButtonGroupOnStage.hidden('1')}}" stepKey="waitForContentTypeHidden" />
10581063
<seeElement selector="{{ButtonItemOnStage.hidden('1')}}" stepKey="waitForContentTypeHiddenButtonItem" />
1064+
<seeElement selector="{{ButtonItemOnStage.hidden('2')}}" stepKey="waitForContentTypeHiddenButtonItem2" />
10591065
<!-- Verify we cannot interact with the internal button after save -->
10601066
<comment userInput="Verify we cannot interact with the internal button after save" stepKey="commentVerifyButtonItemIsDisabledAfterSave"/>
10611067
<seeElementInDOM selector="{{ButtonItemOnStage.optionsMenu('1')}}" stepKey="seeDomButtonItemOptionsMenu"/>
10621068
<dontSeeElement selector="{{ButtonItemOnStage.optionsMenu('1')}}" stepKey="dontSeeButtonItemOptionsMenu"/>
1069+
<dontSeeElement selector="{{ButtonItemOnStage.optionsMenu('2')}}" stepKey="dontSeeButtonItem2OptionsMenu"/>
10631070
<!-- Validate store front -->
10641071
<comment userInput="Validate content type is disabled on storefront" stepKey="commentValidateHiddenStorefront"/>
10651072
<openNewTab stepKey="openNewTab" />
@@ -1071,6 +1078,7 @@
10711078
<seeElementInDOM selector="{{ButtonGroupOnStorefront.hidden('1')}}" stepKey="waitForHiddenElement" />
10721079
<waitForElement selector="{{ButtonItemOnStorefront.base('1')}}" stepKey="waitForButtonItemNotVisible" />
10731080
<dontSeeElement selector="{{ButtonItemOnStorefront.base('1')}}" stepKey="dontSeeButtonItem" />
1081+
<dontSeeElement selector="{{ButtonItemOnStorefront.base('2')}}" stepKey="dontSeeButtonItem2" />
10741082
<!-- Set content to visible in admin -->
10751083
<comment userInput="Set content to visible in admin" stepKey="commentSetContentToVisibleAdmin"/>
10761084
<switchToNextTab stepKey="switchBackToAdmin" />
@@ -1090,5 +1098,33 @@
10901098
<dontSeeElementInDOM selector="{{ButtonGroupOnStorefront.hidden('1')}}" stepKey="dontSeeHiddenElement"/>
10911099
<seeElement selector="{{ButtonGroupOnStorefront.base('1')}}" stepKey="waitForButtonGroupVisible" />
10921100
<seeElement selector="{{ButtonItemOnStorefront.base('1')}}" stepKey="waitForButtonItemVisible" />
1101+
<seeElement selector="{{ButtonItemOnStorefront.base('2')}}" stepKey="waitForButtonItem2Visible" />
1102+
</test>
1103+
<test name="ValidateShowHideOnButtonsOnStackedAppearance" extends="ValidateShowHideOnButtons">
1104+
<annotations>
1105+
<features value="PageBuilder"/>
1106+
<stories value="Buttons"/>
1107+
<title value="Button Group - Buttons has hide show capabilities on stacked appearance"/>
1108+
<description value="A user is able to hide and show the buttons successfully when using stacked appearance"/>
1109+
<severity value="CRITICAL"/>
1110+
<useCaseId value="MC-4093"/>
1111+
<testCaseId value="MC-4230"/>
1112+
<group value="pagebuilder"/>
1113+
<group value="pagebuilder-buttons"/>
1114+
<group value="pagebuilder-buttonItem"/>
1115+
<group value="pagebuilder-hideShow"/>
1116+
</annotations>
1117+
<actionGroup ref="unFocusOptionMenu" stepKey="unFocusOptionMenu" after="dragButtonsIntoStage">
1118+
<argument name="contentType" value="PageBuilderButtonItemContentType"/>
1119+
</actionGroup>
1120+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStage" after="unFocusOptionMenu">
1121+
<argument name="contentType" value="PageBuilderButtonsContentType"/>
1122+
</actionGroup>
1123+
<!-- Select Stacked Appearance -->
1124+
<comment userInput="Select Stacked Appearances" stepKey="commentSelectStackedAppearance" after="openEditMenuOnStage"/>
1125+
<actionGroup ref="chooseVisualSelectOption" stepKey="enterAppearance" after="commentSelectStackedAppearance">
1126+
<argument name="property" value="PageBuilderButtonGroupAppearance_Stacked"/>
1127+
</actionGroup>
1128+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings1" after="enterAppearance"/>
10931129
</test>
10941130
</tests>

app/code/Magento/PageBuilder/view/adminhtml/pagebuilder/content_type/buttons.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<style name="border_color" source="border_color"/>
3333
<style name="border_width" source="border_width" converter="Magento_PageBuilder/js/converter/style/border-width"/>
3434
<style name="border_radius" source="border_radius" converter="Magento_PageBuilder/js/converter/style/remove-px"/>
35-
<style name="display" source="display" converter="Magento_PageBuilder/js/content-type/buttons/converter/style/display" preview_converter="Magento_PageBuilder/js/converter/style/preview/display"/>
35+
<style name="display" source="display" converter="Magento_PageBuilder/js/content-type/buttons/converter/style/display/inline-block" preview_converter="Magento_PageBuilder/js/converter/style/preview/display"/>
3636
<style name="margins" storage_key="margins_and_padding" reader="Magento_PageBuilder/js/property/margins" converter="Magento_PageBuilder/js/converter/style/margins"/>
3737
<style name="padding" storage_key="margins_and_padding" reader="Magento_PageBuilder/js/property/paddings" converter="Magento_PageBuilder/js/converter/style/paddings"/>
3838
<attribute name="name" source="data-role"/>
@@ -53,7 +53,7 @@
5353
<style name="border_color" source="border_color"/>
5454
<style name="border_width" source="border_width" converter="Magento_PageBuilder/js/converter/style/border-width"/>
5555
<style name="border_radius" source="border_radius" converter="Magento_PageBuilder/js/converter/style/remove-px"/>
56-
<static_style source="display" value="flex"/>
56+
<style name="display" source="display" converter="Magento_PageBuilder/js/content-type/buttons/converter/style/display/flex" preview_converter="Magento_PageBuilder/js/content-type/buttons/converter/style/preview/display/flex"/>
5757
<static_style source="flex_direction" value="column"/>
5858
<style name="margins" storage_key="margins_and_padding" reader="Magento_PageBuilder/js/property/margins" converter="Magento_PageBuilder/js/converter/style/margins"/>
5959
<style name="padding" storage_key="margins_and_padding" reader="Magento_PageBuilder/js/property/paddings" converter="Magento_PageBuilder/js/converter/style/paddings"/>

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/buttons/converter/style/display/flex.js

Lines changed: 49 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/buttons/converter/style/display/inline-block.js

Lines changed: 49 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/buttons/converter/style/preview/display/flex.js

Lines changed: 45 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/template/content-type/buttons/stacked/preview.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
<div class="pagebuilder-content-type pagebuilder-entity pagebuilder-entity-preview pagebuilder-no-blur pagebuilder-live-edit pagebuilder-buttons" event="{ mouseover: onMouseOver, mouseout: onMouseOut }, mouseoverBubble: false">
99
<render args="getOptions().template" />
1010
<div class="element-children buttons-container" each="parent.getChildren()" attr="Object.assign({}, data.main.attributes(), { id: parent.id + '-children' })" ko-style="data.main.style" css="data.main.css" data-bind="sortableChildren: getSortableOptions('height', 'pointer')">
11-
<div class="pagebuilder-content-type-wrapper" template="{ name: preview.previewTemplate, data: preview, afterRender: function () { preview.dispatchAfterRenderEvent.apply(preview, arguments); } }" attr="{ id: id }"></div>
11+
<div class="pagebuilder-content-type-wrapper" template="{ name: preview.previewTemplate, data: preview, afterRender: function () { preview.dispatchAfterRenderEvent.apply(preview, arguments); } }" attr="{ id: id }" css="{'pagebuilder-content-type-hidden': !preview.display()}"></div>
1212
</div>
1313
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
import ConverterInterface from "../../../../../converter/converter-interface";
7+
import {DataObject} from "../../../../../data-store";
8+
9+
/**
10+
* @api
11+
*/
12+
export default class Flex implements ConverterInterface {
13+
/**
14+
* Convert value to internal format
15+
*
16+
* @param value string
17+
* @returns {string | object}
18+
*/
19+
public fromDom(value: string): boolean {
20+
return !(value === "none");
21+
}
22+
23+
/**
24+
* Convert value to knockout format, if buttons are displayed they should be inline block
25+
*
26+
* @param {string} name
27+
* @param {DataObject} data
28+
* @returns {string}
29+
*/
30+
public toDom(name: string, data: DataObject): string {
31+
if (typeof data[name] !== "undefined" && data[name] === false) {
32+
return "none";
33+
}
34+
return "flex";
35+
}
36+
}

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/buttons/converter/style/display.ts renamed to app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/buttons/converter/style/display/inline-block.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
* See COPYING.txt for license details.
44
*/
55

6-
import ConverterInterface from "../../../../converter/converter-interface";
7-
import {DataObject} from "../../../../data-store";
6+
import ConverterInterface from "../../../../../converter/converter-interface";
7+
import {DataObject} from "../../../../../data-store";
88

99
/**
1010
* @api
1111
*/
12-
export default class Display implements ConverterInterface {
12+
export default class InlineBlock implements ConverterInterface {
1313
/**
1414
* Convert value to internal format
1515
*
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
import ConverterInterface from "../../../../../../converter/converter-interface";
7+
import {DataObject} from "../../../../../../data-store";
8+
9+
/**
10+
* @api
11+
*/
12+
export default class Display implements ConverterInterface {
13+
/**
14+
* Ensure the display none property doesn't persist to the preview
15+
*
16+
* @param value string
17+
* @returns {string | object}
18+
*/
19+
public fromDom(value: string): string | object {
20+
return;
21+
}
22+
23+
/**
24+
* Ensure the display none property doesn't persist to the preview
25+
*
26+
* @param name string
27+
* @param data Object
28+
* @returns {string}
29+
*/
30+
public toDom(name: string, data: DataObject): string {
31+
return "flex";
32+
}
33+
}

0 commit comments

Comments
 (0)