diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-23 09:09:23 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-23 09:09:23 +0300 |
commit | 8b4276f873461953ee5a1fc46f084779f5847e3a (patch) | |
tree | cc3435570e15234453e711c2ddcc9b0895d87eb4 /app/assets/javascripts/vue_shared/components/markdown | |
parent | f34b26bb882947bcc1126de19fa55eb8763af32e (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/vue_shared/components/markdown')
4 files changed, 85 insertions, 1 deletions
diff --git a/app/assets/javascripts/vue_shared/components/markdown/drawio_toolbar_button.vue b/app/assets/javascripts/vue_shared/components/markdown/drawio_toolbar_button.vue new file mode 100644 index 00000000000..a66becb5c92 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/markdown/drawio_toolbar_button.vue @@ -0,0 +1,48 @@ +<script> +import { GlButton, GlTooltipDirective } from '@gitlab/ui'; +import { launchDrawioEditor } from '~/drawio/drawio_editor'; +import { create } from '~/drawio/markdown_field_editor_facade'; + +export default { + components: { + GlButton, + }, + directives: { + GlTooltip: GlTooltipDirective, + }, + props: { + uploadsPath: { + type: String, + required: true, + }, + markdownPreviewPath: { + type: String, + required: true, + }, + }, + methods: { + getTextArea() { + return document.querySelector('.js-gfm-input'); + }, + launchDrawioEditor() { + launchDrawioEditor({ + editorFacade: create({ + uploadsPath: this.uploadsPath, + textArea: this.getTextArea(), + markdownPreviewPath: this.markdownPreviewPath, + }), + }); + }, + }, +}; +</script> +<template> + <gl-button + v-gl-tooltip + :title="__('Insert or edit diagram')" + :aria-label="__('Insert or edit diagram')" + category="tertiary" + icon="diagram" + @click="launchDrawioEditor" + /> +</template> diff --git a/app/assets/javascripts/vue_shared/components/markdown/field.vue b/app/assets/javascripts/vue_shared/components/markdown/field.vue index 6f4cddbdfa2..bca7d90135e 100644 --- a/app/assets/javascripts/vue_shared/components/markdown/field.vue +++ b/app/assets/javascripts/vue_shared/components/markdown/field.vue @@ -132,6 +132,11 @@ export default { required: false, default: false, }, + drawioEnabled: { + type: Boolean, + required: false, + default: false, + }, }, data() { return { @@ -355,6 +360,10 @@ export default { :enable-preview="enablePreview" :show-suggest-popover="showSuggestPopover" :suggestion-start-index="suggestionsStartIndex" + :uploads-path="uploadsPath" + :markdown-preview-path="markdownPreviewPath" + :drawio-enabled="drawioEnabled" + data-testid="markdownHeader" :restricted-tool-bar-items="restrictedToolBarItems" @preview-markdown="showPreviewTab" @write-markdown="showWriteTab" diff --git a/app/assets/javascripts/vue_shared/components/markdown/header.vue b/app/assets/javascripts/vue_shared/components/markdown/header.vue index e83441e59a2..5d692c69fc0 100644 --- a/app/assets/javascripts/vue_shared/components/markdown/header.vue +++ b/app/assets/javascripts/vue_shared/components/markdown/header.vue @@ -15,6 +15,7 @@ import { getSelectedFragment } from '~/lib/utils/common_utils'; import { s__, __ } from '~/locale'; import { CopyAsGFM } from '~/behaviors/markdown/copy_as_gfm'; import ToolbarButton from './toolbar_button.vue'; +import DrawioToolbarButton from './drawio_toolbar_button.vue'; export default { components: { @@ -23,6 +24,7 @@ export default { GlButton, GlTabs, GlTab, + DrawioToolbarButton, }, directives: { GlTooltip: GlTooltipDirective, @@ -62,6 +64,21 @@ export default { required: false, default: () => [], }, + uploadsPath: { + type: String, + required: false, + default: '', + }, + markdownPreviewPath: { + type: String, + required: false, + default: '', + }, + drawioEnabled: { + type: Boolean, + required: false, + default: false, + }, }, data() { return { @@ -369,8 +386,12 @@ export default { icon="paperclip" @click="handleAttachFile" /> + <drawio-toolbar-button + v-if="drawioEnabled" + :uploads-path="uploadsPath" + :markdown-preview-path="markdownPreviewPath" + /> <toolbar-button - v-if="!restrictedToolBarItems.includes('full-screen')" class="js-zen-enter" :prepend="true" :button-title="__('Go full screen')" diff --git a/app/assets/javascripts/vue_shared/components/markdown/markdown_editor.vue b/app/assets/javascripts/vue_shared/components/markdown/markdown_editor.vue index 7e6b0e4a63b..2a82986e90b 100644 --- a/app/assets/javascripts/vue_shared/components/markdown/markdown_editor.vue +++ b/app/assets/javascripts/vue_shared/components/markdown/markdown_editor.vue @@ -76,6 +76,11 @@ export default { required: false, default: false, }, + drawioEnabled: { + type: Boolean, + required: false, + default: false, + }, }, data() { return { @@ -147,6 +152,7 @@ export default { :autocomplete-data-sources="autocompleteDataSources" :uploads-path="uploadsPath" :enable-preview="enablePreview" + :drawio-enabled="drawioEnabled" show-content-editor-switcher class="bordered-box" @enableContentEditor="onEditingModeChange('contentEditor')" |