diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java index f3a9681793d2aa5f06ef4c14eedb9b1ace4e2ef0..afcbe22c76c87e324c277acce98d6f1422777dd2 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java @@ -25,7 +25,6 @@ */ package org.olat.core.gui.components.form.flexible.impl.elements; -import org.apache.commons.lang.StringEscapeUtils; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.DefaultComponentRenderer; import org.olat.core.gui.components.form.flexible.impl.FormJSHelper; @@ -34,6 +33,7 @@ import org.olat.core.gui.render.Renderer; import org.olat.core.gui.render.StringOutput; import org.olat.core.gui.render.URLBuilder; import org.olat.core.gui.translator.Translator; +import org.olat.core.util.StringHelper; /** * Description:<br> @@ -78,24 +78,26 @@ class TextAreaElementRenderer extends DefaultComponentRenderer { if (buestEffortRowCount > rows) rows = buestEffortRowCount; } // Escape HTMl entities - value = StringEscapeUtils.escapeHtml(value); + value = StringHelper.escapeHtml(value); // if (!source.isEnabled()) { - //read only view + //read only view: rendered as fake textarea element for better styling options (e.g. print) sb.append("<span id=\"").append(id).append("\" ") .append(FormJSHelper.getRawJSFor(te.getRootForm(), id, te.getAction())) - .append(" ><textarea id=\"") + .append(" ><div id=\"") .append(id) - .append("_disabled\" readonly='readonly' class='form-control o_form_element_disabled' style=''"); + .append("_disabled\" class='form-control textarea_disabled o_disabled o_form_element_disabled' style='"); + /* we do not add the width, not applied to text areas in oo despite configurable if (teC.getCols() != -1) { - sb.append(" cols='").append(teC.getCols()).append("'"); + sb.append(" width:").append(teC.getCols()).append("em;"); } + */ if (rows != -1) { - sb.append(" rows='").append(rows).append("'"); + sb.append(" height:").append(rows * 1.5).append("em;"); // line-height is about 1.5 } - sb.append(">") + sb.append("'>") .append(value) - .append("</textarea></span>"); + .append("</div></span>"); } else { //read write view diff --git a/src/main/webapp/static/themes/light/_config.scss b/src/main/webapp/static/themes/light/_config.scss index 436c5486b2dc96a9d754f2af8364b8bf2577280a..0af7ffc896bf146fca21361dcbf89e8beaabc71b 100644 --- a/src/main/webapp/static/themes/light/_config.scss +++ b/src/main/webapp/static/themes/light/_config.scss @@ -25,6 +25,7 @@ Add your custom font sizes and other bootstrap overrides here. Full spec here: http://getbootstrap.com/customize/ */ +$input-bg-disabled : #fafafa !default; /* lighter than default bootstrap */ /* Add standard bootstrap variables to the mix */ @import "../../bootstrap/stylesheets/bootstrap/variables"; diff --git a/src/main/webapp/static/themes/light/modules/_form.scss b/src/main/webapp/static/themes/light/modules/_form.scss index b3475ac96e69cbb084c43bbc16a7115230b78a38..8474cc43540ae3567c48c3ae0656831acf0aea7f 100644 --- a/src/main/webapp/static/themes/light/modules/_form.scss +++ b/src/main/webapp/static/themes/light/modules/_form.scss @@ -108,6 +108,14 @@ .has-feedback.has-error .o_fileinput .o_fakechooser { margin-right:30px; } + + /* disabled text areas are rendered in div's for improved printing and layouting features */ + .form-control.textarea_disabled { + resize: both; + overflow: auto; + white-space: pre-wrap; + background: $input-bg-disabled; + } } /* centered form labels are still left aligned */ diff --git a/src/main/webapp/static/themes/light/modules/_print.scss b/src/main/webapp/static/themes/light/modules/_print.scss index a8c5f16f0e8d6989fc9f9d5a9432e14cc2b7d476..4138abf6586140711e7b5d9b177b503944426a60 100644 --- a/src/main/webapp/static/themes/light/modules/_print.scss +++ b/src/main/webapp/static/themes/light/modules/_print.scss @@ -42,6 +42,32 @@ .o_print_break_before { page-break-before: always; } + + /* Hide buttons in forms and print text area with full content */ + .btn { + display: none; + } + .o_form { + /* textarea: can not blow up for now, browsers ignore the height */ + textarea, + .form-control.textarea_disabled { + background: #fff; + height: auto !important; + color: #000 !important; + resize: none; + } + } + + /* Hide comments form */ + #o_comment_form_link, + .o_comments form { + display: none !important; + } + + /* Hide avatar - can not print background css images */ + .o_avatar { + display: none; + } /* Hide backgrounds */ body.o_dmz {