From 29613caf23c53e2a137ace3cf74e0af7836aa4aa Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Wed, 17 May 2023 13:11:00 +0000
Subject: [PATCH] make ckeditor resizable, re #2525

Merge request studip/studip!1712
---
 resources/assets/javascripts/bootstrap/wysiwyg.js    | 9 +++++++++
 resources/assets/stylesheets/scss/studip-cke-ui.scss | 3 ++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/resources/assets/javascripts/bootstrap/wysiwyg.js b/resources/assets/javascripts/bootstrap/wysiwyg.js
index 60b4251bf11..39eaa713c58 100644
--- a/resources/assets/javascripts/bootstrap/wysiwyg.js
+++ b/resources/assets/javascripts/bootstrap/wysiwyg.js
@@ -3,6 +3,15 @@ STUDIP.domReady(() => {
         // replace areas visible on page load
         replaceVisibleTextareas();
 
+        // update the height of the editor view on focus changes in dialogs
+        $(document).on('focus blur', '.studip-dialog .ck-editor__editable_inline', function(event) {
+            let height = this.clientHeight;
+            let editor = this.ckeditorInstance;
+            editor.editing.view.change(writer => {
+                writer.setStyle('height', height + 'px', editor.editing.view.document.getRoot());
+            });
+        });
+
         // replace areas that are created or shown after page load
         // remove editors that become hidden after page load
         // show, hide and create do not raise an event, use interval timer
diff --git a/resources/assets/stylesheets/scss/studip-cke-ui.scss b/resources/assets/stylesheets/scss/studip-cke-ui.scss
index 65a29555276..d2b52b149e6 100644
--- a/resources/assets/stylesheets/scss/studip-cke-ui.scss
+++ b/resources/assets/stylesheets/scss/studip-cke-ui.scss
@@ -400,8 +400,9 @@ form.default .ck-source-editing-area textarea {
 .studip-dialog {
     .ck-editor {
         overflow: hidden;
-        .ck.ck-editor__main > .ck-editor__editable {
+        .ck-editor__editable_inline {
             height: 200px;
+            resize: vertical;
         }
     }
 }
-- 
GitLab