diff --git a/customize.dist/messages.js b/customize.dist/messages.js index fd8a5f879..15b96c7ff 100755 --- a/customize.dist/messages.js +++ b/customize.dist/messages.js @@ -157,6 +157,8 @@ define(req, function(AppConfig, Default, Language) { } }; + Messages.oo_blockURLImageDrop = 'Dragging images from a browser is not supported.'; // XXX + return Messages; }); diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 7d7bfc1a6..514dac435 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -2207,6 +2207,9 @@ define([ }]; common.checkTrimHistory(channels); } + + APP.handleImageDrop(); + console.log("OO ready"); }; @@ -2287,6 +2290,7 @@ define([ console.error('updated config', ooconfig); return ooconfig; }; + var initializeImageUpload = function () { var fmConfigImages = { @@ -2450,6 +2454,37 @@ define([ }); }; + APP.handleImageDrop = function () { + var OOframe = APP.docEditor.getIframe().contentWindow; + + OOframe.addEventListener('drop', function (e) { + var files = e.dataTransfer && e.dataTransfer.files; + + if (files && files.length) { + return; + } + + var url = e.dataTransfer.getData('text/uri-list') || + e.dataTransfer.getData('URL'); + + if (!url) { + var html = e.dataTransfer.getData('text/html'); + var match = html && html.match(/]+src=["']([^"']+)["']/i); + url = match && match[1]; + } + + if (!url) { + return; + } + + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + UI.alert(Messages.oo_blockURLImageDrop); + + }, true); + }; + APP.UploadImageFiles = function (files, type, id, jwt, cb) { if (!files || !files.length) { return void cb([]); }