mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-27 21:03:29 +03:00
Allow certain toolbar buttons to be disabled in {{gh-markdown-editor}}
no issue - pre-requisite for using `{{gh-markdown-editor}}` inside a Koenig card - adds `enablePreview`, `enableSideBySide`, and `enableHemingway` params that can be set to `false` to disable the related toolbar buttons and shortcuts
This commit is contained in:
parent
a0f33bad06
commit
4438a33a64
@ -31,6 +31,10 @@ export default Component.extend(ShortcutsMixin, {
|
|||||||
showMarkdownHelp: false,
|
showMarkdownHelp: false,
|
||||||
uploadedImageUrls: null,
|
uploadedImageUrls: null,
|
||||||
|
|
||||||
|
enableSideBySide: true,
|
||||||
|
enablePreview: true,
|
||||||
|
enableHemingway: true,
|
||||||
|
|
||||||
shortcuts: null,
|
shortcuts: null,
|
||||||
|
|
||||||
// Private
|
// Private
|
||||||
@ -136,11 +140,31 @@ export default Component.extend(ShortcutsMixin, {
|
|||||||
status: ['words']
|
status: ['words']
|
||||||
};
|
};
|
||||||
|
|
||||||
if (this.get('settings.unsplash.isActive')) {
|
let toolbar = defaultOptions.toolbar;
|
||||||
let image = defaultOptions.toolbar.findBy('name', 'image');
|
|
||||||
let index = defaultOptions.toolbar.indexOf(image) + 1;
|
|
||||||
|
|
||||||
defaultOptions.toolbar.splice(index, 0, {
|
if (!this.get('enableSideBySide')) {
|
||||||
|
let sideBySide = toolbar.findBy('name', 'side-by-side');
|
||||||
|
let index = toolbar.indexOf(sideBySide);
|
||||||
|
toolbar.splice(index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.get('enablePreview')) {
|
||||||
|
let preview = toolbar.findBy('name', 'preview');
|
||||||
|
let index = toolbar.indexOf(preview);
|
||||||
|
toolbar.splice(index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.get('enableHemingway')) {
|
||||||
|
let hemingway = toolbar.findBy('name', 'hemingway');
|
||||||
|
let index = toolbar.indexOf(hemingway);
|
||||||
|
toolbar.splice(index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.get('settings.unsplash.isActive')) {
|
||||||
|
let image = toolbar.findBy('name', 'image');
|
||||||
|
let index = toolbar.indexOf(image) + 1;
|
||||||
|
|
||||||
|
toolbar.splice(index, 0, {
|
||||||
name: 'unsplash',
|
name: 'unsplash',
|
||||||
action: () => {
|
action: () => {
|
||||||
this.send('toggleUnsplash');
|
this.send('toggleUnsplash');
|
||||||
@ -150,6 +174,15 @@ export default Component.extend(ShortcutsMixin, {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let lastItem = null;
|
||||||
|
toolbar.forEach((item, index) => {
|
||||||
|
if (item === '|' && item === lastItem) {
|
||||||
|
toolbar[index] = null;
|
||||||
|
}
|
||||||
|
lastItem = item;
|
||||||
|
});
|
||||||
|
defaultOptions.toolbar = toolbar.filter(Boolean);
|
||||||
|
|
||||||
return assign(defaultOptions, options);
|
return assign(defaultOptions, options);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@ -158,10 +191,18 @@ export default Component.extend(ShortcutsMixin, {
|
|||||||
|
|
||||||
let shortcuts = {};
|
let shortcuts = {};
|
||||||
shortcuts[`${ctrlOrCmd}+shift+i`] = {action: 'openImageFileDialog'};
|
shortcuts[`${ctrlOrCmd}+shift+i`] = {action: 'openImageFileDialog'};
|
||||||
shortcuts['ctrl+alt+r'] = {action: 'togglePreview'};
|
|
||||||
shortcuts['ctrl+alt+p'] = {action: 'toggleSplitScreen'};
|
|
||||||
shortcuts['ctrl+alt+s'] = {action: 'toggleSpellcheck'};
|
shortcuts['ctrl+alt+s'] = {action: 'toggleSpellcheck'};
|
||||||
shortcuts['ctrl+alt+h'] = {action: 'toggleHemingway'};
|
|
||||||
|
if (this.get('enablePreview')) {
|
||||||
|
shortcuts['ctrl+alt+r'] = {action: 'togglePreview'};
|
||||||
|
}
|
||||||
|
if (this.get('enableSideBySide')) {
|
||||||
|
shortcuts['ctrl+alt+p'] = {action: 'toggleSplitScreen'};
|
||||||
|
}
|
||||||
|
if (this.get('enableHemingway')) {
|
||||||
|
shortcuts['ctrl+alt+h'] = {action: 'toggleHemingway'};
|
||||||
|
}
|
||||||
|
|
||||||
this.shortcuts = shortcuts;
|
this.shortcuts = shortcuts;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user