diff --git a/frontend/src/components/Editor.vue b/frontend/src/components/Editor.vue
index d93fa459..c9c35f52 100644
--- a/frontend/src/components/Editor.vue
+++ b/frontend/src/components/Editor.vue
@@ -29,7 +29,7 @@
- {{ $t('campaigns.preview') }}
+ {{ $t('campaigns.preview') }} (F9)
@@ -231,6 +231,13 @@ export default {
editor.on('CloseWindow', () => {
editor.selection.getNode().scrollIntoView(false);
});
+
+ editor.on('keydown', (e) => {
+ if (e.key === 'F9') {
+ this.onTogglePreview();
+ e.preventDefault();
+ }
+ });
},
browser_spellcheck: true,
@@ -400,6 +407,13 @@ export default {
this.runTinyMceImageCallback(media.url);
},
+ onPreviewShortcut(e) {
+ if (e.key === 'F9') {
+ this.onTogglePreview();
+ e.preventDefault();
+ }
+ },
+
beautifyHTML(str) {
// Pad all tags with linebreaks.
let s = this.trimLines(str.replace(/(<(?!(\/)?a|span)([^>]+)>)/ig, '\n$1\n'), true);
@@ -427,6 +441,12 @@ export default {
mounted() {
this.initRichtextEditor();
+
+ window.addEventListener('keydown', this.onPreviewShortcut);
+ },
+
+ beforeDestroy() {
+ window.removeEventListener('keydown', this.onPreviewShortcut);
},
computed: {
diff --git a/frontend/src/views/TemplateForm.vue b/frontend/src/views/TemplateForm.vue
index 491656f7..d162ce53 100644
--- a/frontend/src/views/TemplateForm.vue
+++ b/frontend/src/views/TemplateForm.vue
@@ -3,8 +3,8 @@
+ :body="form.body" @close="onTogglePreview" />
@@ -110,12 +110,15 @@ export default Vue.extend({
},
methods: {
- previewTemplate() {
- this.previewItem = this.form;
+ onTogglePreview() {
+ this.previewItem = !this.previewItem ? this.form : null;
},
- closePreview() {
- this.previewItem = null;
+ onPreviewShortcut(e) {
+ if (e.key === 'F9') {
+ this.onTogglePreview();
+ e.preventDefault();
+ }
},
onSubmit() {
@@ -170,6 +173,12 @@ export default Vue.extend({
this.$nextTick(() => {
this.$refs.focus.focus();
});
+
+ window.addEventListener('keydown', this.onPreviewShortcut);
+ },
+
+ beforeDestroy() {
+ window.removeEventListener('keydown', this.onPreviewShortcut);
},
});