diff --git a/api/js/etemplate/et2_widget_htmlarea.js b/api/js/etemplate/et2_widget_htmlarea.js index 279632d592..565abee236 100644 --- a/api/js/etemplate/et2_widget_htmlarea.js +++ b/api/js/etemplate/et2_widget_htmlarea.js @@ -149,6 +149,7 @@ var et2_htmlarea = (function(){ "use strict"; return et2_editableWidget.extend([ language: et2_htmlarea.LANGUAGE_CODE[egw.preference('lang', 'common')], language_url: egw.webserverUrl+'/api/js/tinymce/langs/'+et2_htmlarea.LANGUAGE_CODE[egw.preference('lang', 'common')]+'.js', paste_data_images: true, + paste_filter_drop: false, browser_spellcheck: true, contextmenu: false, images_upload_url: imageUpload, @@ -309,6 +310,11 @@ var et2_htmlarea = (function(){ "use strict"; return et2_editableWidget.extend([ // current focus. var focusedEl = jQuery(':focus'); this.editor = _editor; + + this.editor.on('drop', function(e){ + e.preventDefault(); + }); + if (!this.disabled) jQuery(this.editor.editorContainer).css('display', 'flex'); this.tinymce_container = this.editor.editorContainer; // go back to reserved focused element diff --git a/api/templates/default/etemplate2.css b/api/templates/default/etemplate2.css index 13fede0ef9..f6050d61ed 100644 --- a/api/templates/default/etemplate2.css +++ b/api/templates/default/etemplate2.css @@ -3210,4 +3210,25 @@ tr.disableIfNoEPL { .et2_editable { cursor: url(images/cursor_editable.svg), pointer; -} \ No newline at end of file +} +.dragover { + position: relative; +} +.dragover::after { + content: ' '; + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + background: #ffffff; + opacity: 0.9; + font-size: 20pt; + font-weight: bold; + text-align: center; + background-image: url(images/drop.svg); + background-position: center; + background-size: 20%; + background-repeat: no-repeat; + border: 2px dashed silver; +} diff --git a/mail/js/app.js b/mail/js/app.js index 68847d67b1..d4e288181f 100644 --- a/mail/js/app.js +++ b/mail/js/app.js @@ -262,9 +262,15 @@ app.classes.mail = AppJS.extend( }); /*Trigger compose_resizeHandler after the TinyMCE is fully loaded*/ jQuery('#mail-compose').on ('load',function() { + if (textAreaWidget && textAreaWidget.tinymce) { - textAreaWidget.tinymce.then(()=>{that.compose_resizeHandler()}); + textAreaWidget.tinymce.then(()=>{ + that.compose_resizeHandler(); + jQuery(textAreaWidget.editor.iframeElement.contentWindow.document).on('dragenter', function(){ + jQuery('#mail-compose').addClass('dragover'); + }); + }); } else {