Skip to content

Commit ea41d08

Browse files
committed
PB-95: Video background for Row
1 parent 2129bfd commit ea41d08

File tree

12 files changed

+67
-60
lines changed

12 files changed

+67
-60
lines changed

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

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,25 @@
5858
<attribute name="video_loop" source="data-video-loop"/>
5959
<attribute name="video_play_only_visible" source="data-video-play-only-visible"/>
6060
<attribute name="video_lazy_load" source="data-video-lazy-load"/>
61+
<attribute name="video_fallback_image" source="data-video-fallback-src" converter="Magento_PageBuilder/js/converter/attribute/src" preview_converter="Magento_PageBuilder/js/converter/attribute/preview/src"/>
6162
<css name="css_classes"/>
6263
</element>
6364
<element name="container">
6465
<style name="justify_content" source="justify_content"/>
6566
<static_style source="display" value="flex"/>
6667
<static_style source="flex_direction" value="column"/>
6768
</element>
68-
<element name="video_img">
69-
<attribute name="video_fallback_image" source="src" converter="Magento_PageBuilder/js/converter/attribute/src" preview_converter="Magento_PageBuilder/js/converter/attribute/preview/src"/>
70-
</element>
7169
<element name="video_overlay">
7270
<style name="video_overlay_color" source="background_color" converter="Magento_PageBuilder/js/converter/style/video-overlay-color" persistence_mode="write"/>
7371
<attribute name="video_overlay_color_attribute" storage_key="video_overlay_color" source="data-video-overlay-color" converter="Magento_PageBuilder/js/converter/attribute/video-overlay-color"/>
7472
</element>
7573
</elements>
7674
<converters>
75+
<converter name="background_type" component="Magento_PageBuilder/js/mass-converter/background-type">
76+
<config>
77+
<item name="attribute_name" value="background_type"/>
78+
</config>
79+
</converter>
7780
<converter name="background_images" component="Magento_PageBuilder/js/mass-converter/background-images">
7881
<config>
7982
<item name="attribute_name" value="background_images"/>
@@ -115,6 +118,7 @@
115118
<attribute name="video_loop" source="data-video-loop"/>
116119
<attribute name="video_play_only_visible" source="data-video-play-only-visible"/>
117120
<attribute name="video_lazy_load" source="data-video-lazy-load"/>
121+
<attribute name="video_fallback_image" source="data-video-fallback-src" converter="Magento_PageBuilder/js/converter/attribute/src" preview_converter="Magento_PageBuilder/js/converter/attribute/preview/src"/>
118122
<css name="css_classes"/>
119123
</element>
120124
<element name="inner" />
@@ -123,9 +127,6 @@
123127
<static_style source="display" value="flex"/>
124128
<static_style source="flex_direction" value="column"/>
125129
</element>
126-
<element name="video_img">
127-
<attribute name="video_fallback_image" source="src" converter="Magento_PageBuilder/js/converter/attribute/src" preview_converter="Magento_PageBuilder/js/converter/attribute/preview/src"/>
128-
</element>
129130
<element name="video_overlay">
130131
<style name="video_overlay_color" source="background_color" converter="Magento_PageBuilder/js/converter/style/video-overlay-color" persistence_mode="write"/>
131132
<attribute name="video_overlay_color_attribute" storage_key="video_overlay_color" source="data-video-overlay-color" converter="Magento_PageBuilder/js/converter/attribute/video-overlay-color"/>
@@ -139,6 +140,11 @@
139140
<item name="mobile_image_variable" value="mobile_image"/>
140141
</config>
141142
</converter>
143+
<converter name="background_type" component="Magento_PageBuilder/js/mass-converter/background-type">
144+
<config>
145+
<item name="attribute_name" value="background_type"/>
146+
</config>
147+
</converter>
142148
</converters>
143149
</appearance>
144150
<appearance name="full-bleed"
@@ -173,6 +179,7 @@
173179
<attribute name="video_loop" source="data-video-loop"/>
174180
<attribute name="video_play_only_visible" source="data-video-play-only-visible"/>
175181
<attribute name="video_lazy_load" source="data-video-lazy-load"/>
182+
<attribute name="video_fallback_image" source="data-video-fallback-src" converter="Magento_PageBuilder/js/converter/attribute/src" preview_converter="Magento_PageBuilder/js/converter/attribute/preview/src"/>
176183
<css name="css_classes"/>
177184
</element>
178185
<element name="inner" />
@@ -181,9 +188,6 @@
181188
<static_style source="display" value="flex"/>
182189
<static_style source="flex_direction" value="column"/>
183190
</element>
184-
<element name="video_img">
185-
<attribute name="video_fallback_image" source="src" converter="Magento_PageBuilder/js/converter/attribute/src" preview_converter="Magento_PageBuilder/js/converter/attribute/preview/src"/>
186-
</element>
187191
<element name="video_overlay">
188192
<style name="video_overlay_color" source="background_color" converter="Magento_PageBuilder/js/converter/style/video-overlay-color" persistence_mode="write"/>
189193
<attribute name="video_overlay_color_attribute" storage_key="video_overlay_color" source="data-video-overlay-color" converter="Magento_PageBuilder/js/converter/attribute/video-overlay-color"/>
@@ -197,6 +201,11 @@
197201
<item name="mobile_image_variable" value="mobile_image"/>
198202
</config>
199203
</converter>
204+
<converter name="background_type" component="Magento_PageBuilder/js/mass-converter/background-type">
205+
<config>
206+
<item name="attribute_name" value="background_type"/>
207+
</config>
208+
</converter>
200209
</converters>
201210
</appearance>
202211
</appearances>

app/code/Magento/PageBuilder/view/adminhtml/ui_component/pagebuilder_base_form_with_background_video.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111
</settings>
1212
<fieldset name="background">
1313
<field name="background_type" sortOrder="20" formElement="select" component="Magento_PageBuilder/js/form/element/condition-options">
14+
<argument name="data" xsi:type="array">
15+
<item name="config" xsi:type="array">
16+
<item name="default" xsi:type="string">image</item>
17+
</item>
18+
</argument>
1419
<settings>
1520
<dataType>text</dataType>
1621
<label translate="true">Background Type</label>
@@ -77,6 +82,7 @@
7782
<settings>
7883
<visible>false</visible>
7984
<validation>
85+
<rule name="required-entry" xsi:type="boolean">true</rule>
8086
<rule name="validate-video-source" xsi:type="boolean">true</rule>
8187
</validation>
8288
<dataType>text</dataType>

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/row/preview.js

Lines changed: 2 additions & 1 deletion
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/row/contained/master.html

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,10 @@
1111
<div attr="data.inner.attributes"
1212
ko-style="Object.assign(data.container.style(), data.inner.style())"
1313
css="data.inner.css">
14-
<div if="data.video_overlay.style().backgroundColor"
14+
<div if="data.video_overlay.attributes()['data-video-overlay-color']"
1515
class="video-overlay"
1616
attr="data.video_overlay.attributes"
1717
ko-style="data.video_overlay.style" />
18-
<img if="data.video_img.attributes().src"
19-
attr="data.video_img.attributes"
20-
class="jarallax-img jarallax-video-fallback" />
2118
<render args="masterTemplate"/>
2219
</div>
2320
</div>

app/code/Magento/PageBuilder/view/adminhtml/web/template/content-type/row/contained/preview.html

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,10 @@
1414
css="Object.assign(data.inner.css(), {'empty-container': contentType.children().length == 0, 'jarallax': data.inner.attributes()['data-enable-parallax'] == 1})"
1515
event="{ mouseover: onMouseOver, mouseout: onMouseOut }, mouseoverBubble: false"
1616
afterRender="initParallax">
17-
<div if="data.video_overlay.style().backgroundColor"
17+
<div if="data.video_overlay.attributes()['data-video-overlay-color']"
1818
class="video-overlay"
1919
attr="data.video_overlay.attributes"
2020
ko-style="data.video_overlay.style" />
21-
<img if="data.video_img.attributes().src"
22-
attr="data.video_img.attributes"
23-
class="jarallax-img jarallax-video-fallback"/>
2421
<render args="getOptions().template"/>
2522
<div class="element-children content-type-container" each="contentType.getChildren()" ko-style="data.container.style" css="getChildrenCss()" attr="{id: contentType.id + '-children'}" data-bind="sortable: getSortableOptions()" afterRender="function (element) { if (typeof afterChildrenRender === 'function') { afterChildrenRender(element); } }">
2623
<if args="$parent.isContainer()">

app/code/Magento/PageBuilder/view/adminhtml/web/template/content-type/row/full-bleed/master.html

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,9 @@
88
<div attr="data.main.attributes"
99
ko-style="Object.assign(data.container.style(), data.main.style())"
1010
css="data.main.css">
11-
<div if="data.video_overlay.style().backgroundColor"
11+
<div if="data.video_overlay.attributes()['data-video-overlay-color']"
1212
class="video-overlay"
1313
attr="data.video_overlay.attributes"
1414
ko-style="data.video_overlay.style" />
15-
<img if="data.video_img.attributes().src"
16-
attr="data.video_img.attributes"
17-
class="jarallax-img jarallax-video-fallback" />
1815
<render args="masterTemplate"/>
1916
</div>

app/code/Magento/PageBuilder/view/adminhtml/web/template/content-type/row/full-bleed/preview.html

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,10 @@
1111
css="Object.assign(data.main.css(), {'empty-container': contentType.children().length == 0, 'jarallax': data.main.attributes()['data-enable-parallax'] == 1})"
1212
event="{ mouseover: onMouseOver, mouseout: onMouseOut }, mouseoverBubble: false"
1313
afterRender="initParallax">
14-
<div if="data.video_overlay.style().backgroundColor"
14+
<div if="data.video_overlay.attributes()['data-video-overlay-color']"
1515
class="video-overlay"
1616
attr="data.video_overlay.attributes"
1717
ko-style="data.video_overlay.style" />
18-
<img if="data.video_img.attributes().src"
19-
attr="data.video_img.attributes"
20-
class="jarallax-img jarallax-video-fallback"/>
2118
<render args="getOptions().template"/>
2219
<div class="element-children content-type-container" each="contentType.getChildren()" ko-style="data.container.style" css="getChildrenCss()" attr="{id: contentType.id + '-children'}" data-bind="sortable: getSortableOptions()" afterRender="function (element) { if (typeof afterChildrenRender === 'function') { afterChildrenRender(element); } }">
2320
<if args="$parent.isContainer()">

app/code/Magento/PageBuilder/view/adminhtml/web/template/content-type/row/full-width/master.html

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,10 @@
88
<div attr="data.main.attributes"
99
ko-style="Object.assign(data.container.style(), data.main.style())"
1010
css="data.main.css">
11-
<div if="data.video_overlay.style().backgroundColor"
11+
<div if="data.video_overlay.attributes()['data-video-overlay-color']"
1212
class="video-overlay"
1313
attr="data.video_overlay.attributes"
1414
ko-style="data.video_overlay.style" />
15-
<img if="data.video_img.attributes().src"
16-
attr="data.video_img.attributes"
17-
class="jarallax-img jarallax-video-fallback" />
1815
<div class="row-full-width-inner"
1916
attr="data.inner.attributes"
2017
ko-style="data.inner.style"

app/code/Magento/PageBuilder/view/adminhtml/web/template/content-type/row/full-width/preview.html

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,10 @@
1414
})"
1515
event="{ mouseover: onMouseOver, mouseout: onMouseOut }, mouseoverBubble: false"
1616
afterRender="initParallax">
17-
<div if="data.video_overlay.style().backgroundColor"
17+
<div if="data.video_overlay.attributes()['data-video-overlay-color']"
1818
class="video-overlay"
1919
attr="data.video_overlay.attributes"
2020
ko-style="data.video_overlay.style" />
21-
<img if="data.video_img.attributes().src"
22-
attr="data.video_img.attributes"
23-
class="jarallax-img jarallax-video-fallback"/>
2421
<render args="getOptions().template"/>
2522
<div class="element-children content-type-container" each="contentType.getChildren()" ko-style="data.container.style" css="getChildrenCss()" attr="{id: contentType.id + '-children'}" data-bind="sortable: getSortableOptions()" afterRender="function (element) { if (typeof afterChildrenRender === 'function') { afterChildrenRender(element); } }">
2623
<if args="$parent.isContainer()">

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/row/preview.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export default class Preview extends PreviewCollection {
7676
}
7777

7878
if (this.element &&
79-
(this.contentType.dataStore.get("background_type") as string) === 'video' &&
79+
(this.element.dataset.backgroundType as string) === 'video' &&
8080
(this.element.dataset.videoSrc as string).length
8181
) {
8282
window.Vimeo = window.Vimeo || {"Player": Player};
@@ -90,6 +90,7 @@ export default class Preview extends PreviewCollection {
9090
this.element,
9191
{
9292
videoSrc: this.element.dataset.videoSrc as string,
93+
imgSrc: this.element.dataset.videoFallbackSrc as string,
9394
videoLoop: (this.contentType.dataStore.get("video_loop") as string) === "true",
9495
speed: !isNaN(parallaxSpeed) ? parallaxSpeed : 0.5,
9596
videoPlayOnlyVisible: (this.contentType.dataStore.get("video_play_only_visible") as string) === "true",

0 commit comments

Comments
 (0)