summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/dropzone_input.js
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-12-31 18:09:10 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-12-31 18:09:10 +0000
commit62ddd3a00522d62ab23c7804e24dbe1c941bc0a7 (patch)
tree71f2cf18cdc83a3fce5221d05df3a792a562dd4e /app/assets/javascripts/dropzone_input.js
parent1e6a9268646e7346519610492fc2a02d6655a663 (diff)
downloadgitlab-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.js24
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);
+ }
}
}
};