Skip to content

Commit ff00d17

Browse files
Merge pull request #622 from magento/618_wysiwyg_toolbar
#618: Tabbing through Text Options Toolbar and exiting PageBuilder full screen does not close the toolbar
2 parents a67b7dc + 7780564 commit ff00d17

File tree

7 files changed

+53
-8
lines changed

7 files changed

+53
-8
lines changed

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

Lines changed: 3 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/js/content-type/text/preview.js

Lines changed: 0 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/js/page-builder.js

Lines changed: 2 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/wysiwyg/tinymce4.js

Lines changed: 24 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/template/page-builder.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
if="!isSnapshot()">
1313
<button type="button" translate="'Apply Template'" if="isAllowedTemplateApply" click="toggleTemplateManger"/>
1414
<button type="button" translate="'Save as Template'" if="isAllowedTemplateSave" click="saveAsTemplate"/>
15-
<i click="function() { toggleFullScreen({animate:true}); }"
15+
<i click="toggleFullScreen.bind($data, {animate:true})"
1616
css="'icon-pagebuilder-fullscreen': !isFullScreen(), 'icon-pagebuilder-fullscreen-exit': isFullScreen()"
1717
attr="{title: isFullScreen() ? $t('Close Full Screen') : $t('Open in Full Screen')}">
1818
</i>

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export default class PageBuilder implements PageBuilderInterface {
9292
*
9393
* @param {StageToggleFullScreenParamsInterface} args
9494
*/
95-
public toggleFullScreen(args: StageToggleFullScreenParamsInterface): void {
95+
public toggleFullScreen(args: StageToggleFullScreenParamsInterface): boolean {
9696
if (args.animate === false) {
9797
this.isFullScreen(!this.isFullScreen());
9898
return;
@@ -186,6 +186,8 @@ export default class PageBuilder implements PageBuilderInterface {
186186
this.previousPanelHeight = null;
187187
}, 350);
188188
}
189+
190+
return true;
189191
}
190192

191193
/**

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/wysiwyg/tinymce4.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,26 @@ export default class Wysiwyg implements WysiwygInterface {
123123

124124
// Update content in our stage preview wysiwyg after its slideout counterpart gets updated
125125
events.on(`form:${this.contentTypeId}:saveAfter`, this.setContentFromDataStoreToWysiwyg.bind(this));
126+
127+
events.on(`stage:${this.stageId}:fullScreenModeChangeAfter`, this.toggleFullScreen.bind(this));
128+
}
129+
130+
/**
131+
* Hide TinyMce inline toolbar options after fullscreen exit
132+
*/
133+
public toggleFullScreen()
134+
{
135+
const $editor = $(`#${this.elementId}`);
136+
// wait for fullscreen to close
137+
_.defer(() => {
138+
if (!checkStageFullScreen(this.stageId) &&
139+
this.config.adapter_config.mode === "inline" &&
140+
$editor.hasClass("mce-edit-focus")
141+
) {
142+
$editor.removeClass("mce-edit-focus");
143+
this.onBlur();
144+
}
145+
});
126146
}
127147

128148
/**

0 commit comments

Comments
 (0)