Skip to content

Commit a681d20

Browse files
authored
Merge pull request #282 from magento-obsessive-owls/MC-17658
MC-17658: Save Selected Block/Dynamic Block In Edit Form By Only Clicking Select Button
2 parents 93f1195 + c78a6fb commit a681d20

File tree

6 files changed

+28
-31
lines changed

6 files changed

+28
-31
lines changed

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@
2323
<waitForElementVisible selector="{{BlockOnGrid.selectBtn(block.identifier)}}" stepKey="waitForSearchResult"/>
2424
<click selector="{{BlockOnGrid.selectBtn(block.identifier)}}" stepKey="clickSelectBtn"/>
2525
<waitForPageLoad stepKey="waitForPageLoad3"/>
26-
<waitForElementVisible selector="{{BlockOnGrid.addSelectedBtn}}" stepKey="waitForAddSelected"/>
27-
<click selector="{{BlockOnGrid.addSelectedBtn}}" stepKey="clickAddSelected"/>
28-
<waitForPageLoad stepKey="waitForPageLoad4"/>
2926
<waitForElementVisible selector="{{BlockOnForm.title(block.title)}}" stepKey="waitToSeeBlockTitle"/>
3027
</actionGroup>
3128
<actionGroup name="verifyBlockOnStage">

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@
3535
<section name="BlockOnGrid">
3636
<element name="searchBox" type="text" selector="//input[contains(@class,'data-grid-search-control')]"/>
3737
<element name="searchBtn" type="text" selector=".action-submit"/>
38-
<element name="selectBtn" type="text" selector="//div[text()='{{arg}}']/parent::td//preceding-sibling::td//button[text()='Select']" parameterized="true"/>
39-
<element name="addSelectedBtn" type="text" selector="//aside[contains(@class, '_show')]//button/span[text()='Add Selected']"/>
38+
<element name="selectBtn" type="text" selector="//div[text()='{{arg}}']/parent::td/parent::tr//button[text()='Select']" parameterized="true"/>
4039
</section>
4140
<section name="BlockOnForm">
4241
<element name="title" type="text" selector="(//div[contains(@class,'pagebuilder-block')]//div[contains(@class,'block-title') and text()='{{arg1}}'])" parameterized="true"/>

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

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494
<settings>
9595
<dataType>text</dataType>
9696
<imports>
97-
<link name="value">${ $.ns }.${ $.ns }.modal.pagebuilder_block_select_grid:externalValue</link>
97+
<link name="value">${ $.ns }.${ $.ns }.modal.pagebuilder_block_select_grid.columns.ids:lastSelected</link>
9898
</imports>
9999
</settings>
100100
</field>
@@ -127,27 +127,12 @@
127127
</fieldset>
128128
<modal name="modal" sortOrder="30">
129129
<settings>
130+
<listens>
131+
<link name="pagebuilder_block_select_grid.pagebuilder_block_select_grid.columns.ids:lastSelected">closeModal</link>
132+
</listens>
133+
<modalClass>pagebuilder-block-modal</modalClass>
130134
<options>
131135
<option name="title" xsi:type="string" translate="true">Select Block</option>
132-
<option name="buttons" xsi:type="array">
133-
<item name="0" xsi:type="array">
134-
<item name="text" xsi:type="string" translate="true">Cancel</item>
135-
<item name="actions" xsi:type="array">
136-
<item name="0" xsi:type="string">closeModal</item>
137-
</item>
138-
</item>
139-
<item name="1" xsi:type="array">
140-
<item name="text" xsi:type="string">Add Selected</item>
141-
<item name="class" xsi:type="string">action-primary</item>
142-
<item name="actions" xsi:type="array">
143-
<item name="0" xsi:type="array">
144-
<item name="targetName" xsi:type="string">${ $.name }.pagebuilder_block_select_grid</item>
145-
<item name="actionName" xsi:type="string">save</item>
146-
</item>
147-
<item name="1" xsi:type="string">closeModal</item>
148-
</item>
149-
</item>
150-
</option>
151136
</options>
152137
</settings>
153138
<insertListing name="pagebuilder_block_select_grid" sortOrder="10">
@@ -163,6 +148,9 @@
163148
<imports>false</imports>
164149
<exports>true</exports>
165150
</dataLinks>
151+
<listens>
152+
<link name="pagebuilder_block_select_grid.pagebuilder_block_select_grid.columns.ids:lastSelected">save</link>
153+
</listens>
166154
</settings>
167155
</insertListing>
168156
</modal>

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@
4949
<param name="controlVisibility" xsi:type="boolean">true</param>
5050
</childDefaults>
5151
</settings>
52-
<selectionsColumn name="ids" component="Magento_PageBuilder/js/grid/cells/single-select">
53-
<settings>
54-
<indexField>block_id</indexField>
55-
</settings>
56-
</selectionsColumn>
5752
<column name="block_id" sortOrder="10">
5853
<settings>
5954
<label translate="true">ID</label>
@@ -97,5 +92,10 @@
9792
<visible>false</visible>
9893
</settings>
9994
</column>
95+
<selectionsColumn name="ids" component="Magento_PageBuilder/js/grid/cells/single-select">
96+
<settings>
97+
<indexField>block_id</indexField>
98+
</settings>
99+
</selectionsColumn>
100100
</columns>
101101
</listing>

app/code/Magento/PageBuilder/view/adminhtml/web/css/source/content-type/block/_default.less

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,7 @@
7070
}
7171
}
7272
}
73+
74+
.pagebuilder-block-modal {
75+
margin-top: 15px;
76+
}

app/code/Magento/PageBuilder/view/adminhtml/web/js/grid/cells/single-select.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ define([
1414
bodyTmpl: 'Magento_PageBuilder/grid/cells/single-select',
1515
label: '',
1616
extendedSelections: [],
17+
lastSelected: null,
1718
listens: {
1819
selected: 'onSelectedChange setExtendedSelections'
1920
}
@@ -22,7 +23,7 @@ define([
2223
/** @inheritdoc */
2324
initObservable: function () {
2425
this._super()
25-
.observe('extendedSelections');
26+
.observe('extendedSelections lastSelected');
2627

2728
return this;
2829
},
@@ -60,6 +61,14 @@ define([
6061
return this.selected()[0] === id;
6162
},
6263

64+
/** @inheritdoc **/
65+
select: function (id) {
66+
this._super();
67+
this.lastSelected(id);
68+
69+
return this;
70+
},
71+
6372
/** @inheritdoc */
6473
_setSelection: function (id, isIndex, select) {
6574
var selected = this.selected;

0 commit comments

Comments
 (0)