diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-31 18:09:10 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-31 18:09:10 +0000 |
commit | 62ddd3a00522d62ab23c7804e24dbe1c941bc0a7 (patch) | |
tree | 71f2cf18cdc83a3fce5221d05df3a792a562dd4e /app/assets/javascripts/dropzone_input.js | |
parent | 1e6a9268646e7346519610492fc2a02d6655a663 (diff) | |
download | gitlab-ce-62ddd3a00522d62ab23c7804e24dbe1c941bc0a7.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/dropzone_input.js')
-rw-r--r-- | app/assets/javascripts/dropzone_input.js | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/app/assets/javascripts/dropzone_input.js b/app/assets/javascripts/dropzone_input.js index 62b390a46d7..79739072abb 100644 --- a/app/assets/javascripts/dropzone_input.js +++ b/app/assets/javascripts/dropzone_input.js @@ -2,6 +2,7 @@ import $ from 'jquery'; import Dropzone from 'dropzone'; import _ from 'underscore'; import './behaviors/preview_markdown'; +import PasteMarkdownTable from './behaviors/markdown/paste_markdown_table'; import csrf from './lib/utils/csrf'; import axios from './lib/utils/axios_utils'; import { n__, __ } from '~/locale'; @@ -173,14 +174,25 @@ export default function dropzoneInput(form) { // eslint-disable-next-line consistent-return handlePaste = event => { const pasteEvent = event.originalEvent; - if (pasteEvent.clipboardData && pasteEvent.clipboardData.items) { - const image = isImage(pasteEvent); - if (image) { + const { clipboardData } = pasteEvent; + if (clipboardData && clipboardData.items) { + // Apple Numbers copies a table as an image, HTML, and text, so + // we need to check for the presence of a table first. + if (PasteMarkdownTable.isTable(clipboardData)) { event.preventDefault(); - const filename = getFilename(pasteEvent) || 'image.png'; - const text = `{{${filename}}}`; + const converter = new PasteMarkdownTable(clipboardData); + const text = converter.convertToTableMarkdown(); pasteText(text); - return uploadFile(image.getAsFile(), filename); + } else { + const image = isImage(pasteEvent); + + if (image) { + event.preventDefault(); + const filename = getFilename(pasteEvent) || 'image.png'; + const text = `{{${filename}}}`; + pasteText(text); + return uploadFile(image.getAsFile(), filename); + } } } }; |