Skip to content

Commit 4e641f3

Browse files
committed
PB-170: TinyMCE Performance is very poor with multiple instances on Stage
1 parent 62f62bc commit 4e641f3

File tree

5 files changed

+11
-11
lines changed

5 files changed

+11
-11
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
<element name="messageContentWidget" type="text" selector="(//div[@data-content-type='banner'])[{{arg1}}]//div[@data-element='content']//a[contains(@href,'{{arg2}}{{arg3}}')]" parameterized="true"/>
4242
<element name="messageContentTextArea" type="text" selector="(//div[@data-content-type='banner'])[{{arg1}}]//div[@data-element='wrapper']//div[@data-element='content'][contains(text(),'{{arg2}}')]" parameterized="true"/>
4343
<element name="messageContentTextAreaImage" type="text" selector="(//div[@data-content-type='banner'])[{{arg1}}]//div[@data-element='wrapper']//div[@data-element='content']//img[contains(@src, {{arg2}})]" parameterized="true"/>
44-
<element name="messageContentHeightJS" type="text" selector="return document.evaluate(&quot;(//div[@data-content-type='banner'])[{{arg1}}]//div[@data-element='content']//div[contains(text(),'{{arg2}}')]&quot;, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.clientHeight;" parameterized="true"/>
44+
<element name="messageContentHeightJS" type="text" selector="return document.evaluate(&quot;(//div[@data-content-type='banner'])[{{arg1}}]//*[contains(text(),'{{arg2}}')]&quot;, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.clientHeight;" parameterized="true"/>
4545
<element name="linkUrl" type="button" selector="(//div[@data-content-type='banner'])[{{arg1}}]/a[@data-element='link'][contains(@href,'{{arg2}}')]" parameterized="true"/>
4646
<element name="openInNewTab" type="button" selector="(//div[@data-content-type='banner'])[{{arg1}}]/a[@data-element='link'][contains(@target,'_blank')]" parameterized="true"/>
4747
<element name="button" type="button" selector="(//div[@data-content-type='banner'])[{{arg1}}]//div[@data-element='wrapper']//button" parameterized="true"/>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<element name="hidden" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div/ancestor::*[contains(@class, 'pagebuilder-content-type-wrapper') and contains(@class, 'pagebuilder-content-type-hidden')]" parameterized="true"/>
1414
<element name="notHidden" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/parent::*[contains(@class, 'pagebuilder-content-type-wrapper') and not(contains(@class, 'pagebuilder-content-type-hidden'))][1]" parameterized="true"/>
1515
<element name="textAreaTextContains" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//textarea[contains(@value,'{{arg2}}')]" parameterized="true"/>
16-
<element name="text" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//div[contains(@class, 'inline-wysiwyg')]//*[contains(.,'{{arg2}}')]" parameterized="true"/>
17-
<element name="textWithTag" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//div[contains(@class, 'inline-wysiwyg')]//*{{tagName}}[contains(.,'{{text}}')]" parameterized="true"/>
16+
<element name="text" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//*[contains(.,'{{arg2}}')]" parameterized="true"/>
17+
<element name="textWithTag" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//{{tagName}}[contains(.,'{{text}}')]" parameterized="true"/>
1818
<element name="elementInText" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]//{{tagName}}[{{index}}]" parameterized="true"/>
1919
<element name="textAnchorText" type="text" selector="(//div[@data-content-type='text'])[{{arg1}}]//div[contains(@class,'inline-wysiwyg')]//a[text()='{{arg2}}']" parameterized="true"/>
2020
<element name="directive" type="text" selector="(//div[contains(@class,'pagebuilder-text')])[{{arg1}}]/div//span[contains(.,'{{arg2}}')]" parameterized="true"/>

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2955,12 +2955,12 @@
29552955
<waitForPageLoad stepKey="waitForUnselect"/>
29562956
<pressKey selector="{{TextOnStage.tinymce('1')}}" parameterArray="[\Facebook\WebDriver\WebDriverKeys::SHIFT, \Facebook\WebDriver\WebDriverKeys::INSERT]" stepKey="pasteAllText"/>
29572957
<waitForPageLoad stepKey="waitForTextPaste"/>
2958-
<seeNumberOfElements selector="{{TextOnStage.text('1', PageBuilderVariableWidgetText.value)}}" userInput="2" stepKey="seeTwoParagraphs"/>
2958+
<seeNumberOfElements selector="{{TextOnStage.textWithTag('1', 'p', PageBuilderVariableWidgetText.value)}}" userInput="2" stepKey="seeTwoParagraphs"/>
29592959
<executeJS function="document.execCommand('selectall', null, false);" stepKey="selectAllText2"/>
29602960
<waitForPageLoad stepKey="waitForTextSelect2"/>
29612961
<pressKey selector="{{TextOnStage.tinymce('1')}}" parameterArray="[\Facebook\WebDriver\WebDriverKeys::SHIFT, \Facebook\WebDriver\WebDriverKeys::INSERT]" stepKey="pasteAllText2"/>
29622962
<waitForPageLoad stepKey="waitForTextPaste2"/>
2963-
<seeNumberOfElements selector="{{TextOnStage.text('1', PageBuilderVariableWidgetText.value)}}" userInput="1" stepKey="seeOnlyOneParagraph"/>
2963+
<seeNumberOfElements selector="{{TextOnStage.textWithTag('1', 'p', PageBuilderVariableWidgetText.value)}}" userInput="1" stepKey="seeOnlyOneParagraph"/>
29642964
</test>
29652965
<test name="TextAddLinkToTextInlineWYSIWYG">
29662966
<annotations>
@@ -3011,8 +3011,8 @@
30113011
<title value="TinyMCE4 selection is preserved after initiation"/>
30123012
<description value="Verify that a users selection is not lost between select and initiation"/>
30133013
<severity value="MAJOR"/>
3014-
<useCaseId value=""/>
3015-
<testCaseId value=""/>
3014+
<useCaseId value="PB-170"/>
3015+
<testCaseId value="PB-303"/>
30163016
<group value="pagebuilder"/>
30173017
<group value="pagebuilder-text"/>
30183018
</annotations>

app/code/Magento/PageBuilder/view/adminhtml/web/js/page-builder.js

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,8 @@ export default class PageBuilder implements PageBuilderInterface {
156156
* @param config
157157
*/
158158
private preloadTemplates(config: ConfigInterface): void {
159-
const previewTemplates = Object.values(config.content_types).map((contentType) => {
160-
return Object.values(contentType.appearances).map((appearance) => {
159+
const previewTemplates = _.values(config.content_types).map((contentType) => {
160+
return _.values(contentType.appearances).map((appearance) => {
161161
return appearance.preview_template;
162162
});
163163
}).reduce((array, value) => array.concat(value), []).map((value) => formatPath(value));

0 commit comments

Comments
 (0)