From e9aeaf11b7171aed80381e8f66c5fb7056960141 Mon Sep 17 00:00:00 2001 From: Vojtech Juranek Date: Sat, 8 Nov 2014 18:10:32 +0100 Subject: [PATCH] [JENKINS-25455] Avoid zero height of CodeMirror textarea --- .../resources/lib/form/textarea/textarea.js | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/core/src/main/resources/lib/form/textarea/textarea.js b/core/src/main/resources/lib/form/textarea/textarea.js index 51f842d14d..4b07cd7caa 100644 --- a/core/src/main/resources/lib/form/textarea/textarea.js +++ b/core/src/main/resources/lib/form/textarea/textarea.js @@ -1,5 +1,15 @@ Behaviour.specify("TEXTAREA.codemirror", 'textarea', 0, function(e) { - var h = e.clientHeight; + //ensure, that textarea is visible, when obtaining its height, see JENKINS-25455 + function getTextareaHeight() { + var p = e.parentNode.parentNode; //first parent is CodeMirror div, second is actual element which needs to be visible + var display = p.style.display; + p.style.display = ""; + var h = e.clientHeight; + p.style.display = display; + return h; + } + + var h = e.clientHeight || getTextareaHeight(); var config = e.getAttribute("codemirror-config") || ""; config = eval('({'+config+'})'); var codemirror = CodeMirror.fromTextArea(e,config); @@ -19,7 +29,13 @@ Behaviour.specify("TEXTAREA.codemirror", 'textarea', 0, function(e) { Element.on(e.up('form'),"jenkins:apply", function() { e.value = codemirror.getValue() }) - } + } + + //refresh CM when there are some layout updates + function refreshCM() { + codemirror.refresh(); + } + layoutUpdateCallback.add(refreshCM); }); Behaviour.specify("DIV.textarea-preview-container", 'textarea', 100, function (e) { -- GitLab