Skip to content

Commit 612c402

Browse files
authored
Merge pull request #381 from magento-obsessive-owls/PB-390
[Owls] PB-390: Nested Page Builder content can fail to save when action is performed quickly
2 parents 1e85a28 + 17e5850 commit 612c402

File tree

15 files changed

+317
-113
lines changed

15 files changed

+317
-113
lines changed

app/code/Magento/PageBuilder/etc/db_schema.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<column xsi:type="int" name="template_id" identity="true" comment="Template ID Auto Increment" />
1616
<column xsi:type="varchar" name="name" length="1024" nullable="false" comment="Template Name" />
1717
<column xsi:type="varchar" name="preview_image" nullable="true" length="1024" comment="Template Preview Image"/>
18-
<column xsi:type="text" name="template" nullable="false" comment="Master Format HTML"/>
18+
<column xsi:type="longtext" name="template" nullable="false" comment="Master Format HTML"/>
1919
<column xsi:type="varchar" name="created_for" length="255" nullable="true" comment="Created For" />
2020
<column xsi:type="timestamp" name="created_at" on_update="false" nullable="false" default="CURRENT_TIMESTAMP"
2121
comment="Creation Time"/>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"catalog_eav_attribute": {
3+
"column": {
4+
"is_pagebuilder_enabled": true
5+
}
6+
},
7+
"pagebuilder_template": {
8+
"column": {
9+
"template_id": true,
10+
"name": true,
11+
"preview_image": true,
12+
"template": true,
13+
"created_for": true,
14+
"created_at": true,
15+
"updated_at": true
16+
},
17+
"index": {
18+
"PAGEBUILDER_TEMPLATE_NAME": true
19+
},
20+
"constraint": {
21+
"PRIMARY": true
22+
}
23+
}
24+
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
<sorting>asc</sorting>
7272
<resizeEnabled>true</resizeEnabled>
7373
<resizeDefaultWidth>80</resizeDefaultWidth>
74+
<draggable>false</draggable>
7475
</settings>
7576
</column>
7677
<column name="preview_image" class="Magento\PageBuilder\Ui\Component\Listing\Columns\PreviewImage" component="Magento_PageBuilder/js/grid/columns/preview-image" sortOrder="20">
@@ -79,13 +80,15 @@
7980
<hasPreview>1</hasPreview>
8081
<label translate="true">Preview Image</label>
8182
<sortable>false</sortable>
83+
<draggable>false</draggable>
8284
</settings>
8385
</column>
8486
<column name="name" sortOrder="30">
8587
<settings>
8688
<dataType>text</dataType>
8789
<filter>text</filter>
8890
<label translate="true">Template Name</label>
91+
<draggable>false</draggable>
8992
</settings>
9093
</column>
9194
<column name="created_for" component="Magento_Ui/js/grid/columns/select" sortOrder="40">
@@ -97,18 +100,21 @@
97100
</editor>
98101
<dataType>select</dataType>
99102
<label translate="true">Created For</label>
103+
<draggable>false</draggable>
100104
</settings>
101105
</column>
102106
<column name="created_at" class="Magento\Ui\Component\Listing\Columns\Date" component="Magento_Ui/js/grid/columns/date" sortOrder="50">
103107
<settings>
104108
<filter>dateRange</filter>
105109
<dataType>date</dataType>
106110
<label translate="true">Created</label>
111+
<draggable>false</draggable>
107112
</settings>
108113
</column>
109114
<selectionsColumn name="ids" component="Magento_PageBuilder/js/grid/cells/template-apply" sortOrder="60">
110115
<settings>
111116
<indexField>template</indexField>
117+
<draggable>false</draggable>
112118
</settings>
113119
</selectionsColumn>
114120
</columns>

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
<sorting>asc</sorting>
7272
<resizeEnabled>true</resizeEnabled>
7373
<resizeDefaultWidth>80</resizeDefaultWidth>
74+
<draggable>false</draggable>
7475
</settings>
7576
</column>
7677
<column name="preview_image" class="Magento\PageBuilder\Ui\Component\Listing\Columns\PreviewImage" component="Magento_PageBuilder/js/grid/columns/preview-image" sortOrder="20">
@@ -79,13 +80,15 @@
7980
<hasPreview>1</hasPreview>
8081
<label translate="true">Preview Image</label>
8182
<sortable>false</sortable>
83+
<draggable>false</draggable>
8284
</settings>
8385
</column>
8486
<column name="name" sortOrder="30">
8587
<settings>
8688
<dataType>text</dataType>
8789
<filter>text</filter>
8890
<label translate="true">Template Name</label>
91+
<draggable>false</draggable>
8992
</settings>
9093
</column>
9194
<column name="created_for" component="Magento_Ui/js/grid/columns/select" sortOrder="40">
@@ -97,18 +100,21 @@
97100
</editor>
98101
<dataType>select</dataType>
99102
<label translate="true">Created For</label>
103+
<draggable>false</draggable>
100104
</settings>
101105
</column>
102106
<column name="created_at" class="Magento\Ui\Component\Listing\Columns\Date" component="Magento_Ui/js/grid/columns/date" sortOrder="50">
103107
<settings>
104108
<filter>dateRange</filter>
105109
<dataType>date</dataType>
106110
<label translate="true">Created</label>
111+
<draggable>false</draggable>
107112
</settings>
108113
</column>
109114
<actionsColumn name="actions" class="Magento\PageBuilder\Ui\Component\Listing\Columns\TemplateManagerActions">
110115
<settings>
111116
<indexField>template_id</indexField>
117+
<draggable>false</draggable>
112118
</settings>
113119
</actionsColumn>
114120
</columns>

app/code/Magento/PageBuilder/view/adminhtml/web/js/form/form-mixin.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ define([
4141
*/
4242
save: function (redirect, data) {
4343
var submit = this._super.bind(this, redirect, data),
44-
timeout;
44+
timeout,
45+
locks;
4546

4647
if (_.isEmpty(this.pageBuilderInstances)) {
4748
submit();
@@ -56,7 +57,9 @@ define([
5657
$.when.apply(
5758
null,
5859
this.pageBuilderInstances.map(function (instance) {
59-
return instance.stage.renderingLock;
60+
locks = instance.stage.renderingLocks;
61+
62+
return locks[locks.length - 1];
6063
})
6164
).then(function () {
6265
$('body').trigger('processStop');

app/code/Magento/PageBuilder/view/adminhtml/web/js/master-format/render/frame.js

Lines changed: 69 additions & 8 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/page-builder.js

Lines changed: 0 additions & 4 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/stage.js

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

0 commit comments

Comments
 (0)