From b2f01aee6dbc831ec492495ba72ea35862e6b121 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 25 Jun 2015 11:47:08 +0200 Subject: [PATCH] OO-1575: fix wrong for attribute some disabled element, for date chooser, render hour and minute for disabled date chooser element, escape blank in Confluence URL... --- .../services/help/spi/ConfluenceLinkSPI.java | 2 +- .../flexible/impl/elements/JSDateChooser.java | 9 +++++- .../impl/elements/JSDateChooserRenderer.java | 30 ++++++++++++++++--- .../impl/elements/TextElementRenderer.java | 4 +-- .../richText/RichTextElementImpl.java | 5 ++++ .../richText/RichTextElementRenderer.java | 2 +- 6 files changed, 43 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/olat/core/commons/services/help/spi/ConfluenceLinkSPI.java b/src/main/java/org/olat/core/commons/services/help/spi/ConfluenceLinkSPI.java index 6a967e954a4..662ff8975fc 100644 --- a/src/main/java/org/olat/core/commons/services/help/spi/ConfluenceLinkSPI.java +++ b/src/main/java/org/olat/core/commons/services/help/spi/ConfluenceLinkSPI.java @@ -55,7 +55,7 @@ public class ConfluenceLinkSPI implements HelpLinkSPI { String version = Settings.getVersion(); sb.append(generateSpace(version, locale)); if (page != null) { - sb.append(page); + sb.append(page.replace(" ", "%20")); } return sb.toString(); } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooser.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooser.java index d80884cdd24..8b1b682ee48 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooser.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooser.java @@ -86,10 +86,17 @@ public class JSDateChooser extends TextElementImpl implements DateChooser { dateComponent = (TextElementComponent) super.getFormItemComponent(); } + @Override + public String getForId() { + return dateComponent.getFormDispatchId(); + } + + @Override public void setDisplaySize(int dispSize){ displaySize = dispSize; } - + + @Override protected Component getFormItemComponent() { return jscomponent; } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserRenderer.java index 9bcfda54335..8a6b09c07ef 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/JSDateChooserRenderer.java @@ -141,7 +141,7 @@ class JSDateChooserRenderer extends DefaultComponentRenderer { sb.append("</div>"); } } else{ - renderTextElementReadonly(sb, teC, maxlength); + renderTextElementReadonly(sb, jsdcc, maxlength); } sb.append("</div>"); } @@ -154,7 +154,8 @@ class JSDateChooserRenderer extends DefaultComponentRenderer { return dc; } - private void renderTextElementReadonly(StringOutput sb, TextElementComponent teC, int maxlength) { + private void renderTextElementReadonly(StringOutput sb, JSDateChooserComponent jsdcc, int maxlength) { + TextElementComponent teC = jsdcc.getTextElementComponent(); TextElementImpl te = teC.getTextElementImpl(); //display size cannot be bigger the maxlenght given by dateformat te.displaySize = te.displaySize <= maxlength ? te.displaySize : maxlength; @@ -166,7 +167,7 @@ class JSDateChooserRenderer extends DefaultComponentRenderer { value = ""; } value = StringEscapeUtils.escapeHtml(value); - sb.append("<span\" id=\"").append(id).append("\" ") + sb.append("<span id='").append(id).append("_wp' ") .append(FormJSHelper.getRawJSFor(te.getRootForm(), id, te.getAction())) .append("title=\"").append(value).append("\">"); String shorter; @@ -181,9 +182,30 @@ class JSDateChooserRenderer extends DefaultComponentRenderer { shorter += " "; } } - sb.append("<input disabled=\"disabled\" class=\"o_form_element_disabled\" size=\"") + sb.append("<input id='").append(id).append("' disabled='disabled' class='o_form_element_disabled' size=\"") .append(te.displaySize) .append("\" value=\"").append(shorter).append("\" /></span>"); + + if (jsdcc.isDateChooserTimeEnabled()) { + int hour, minute; + Date currentDate = jsdcc.getDate(); + if(currentDate == null) { + hour = minute = 0; + } else { + Calendar cal = Calendar.getInstance(); + cal.setTime(currentDate); + hour = cal.get(Calendar.HOUR_OF_DAY); + minute = cal.get(Calendar.MINUTE); + } + sb.append("<span class='o_form_element_disabled'> ") + .append(hour) + .append(" : "); + if(minute < 10) { + sb.append("0"); + } + sb.append(minute) + .append("</span>"); + } } private void renderTextElement(StringOutput sb, TextElementComponent teC, int maxlength) { diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextElementRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextElementRenderer.java index 600ee7cf2ef..0a258f138bf 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextElementRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextElementRenderer.java @@ -88,13 +88,13 @@ class TextElementRenderer extends DefaultComponentRenderer { FormJSHelper.appendFlexiFormDirty(sb, te.getRootForm(), teC.getFormDispatchId()); } else { //read only view - sb.append("<span id=\"").append(id).append("\" ") + sb.append("<span id=\"").append(id).append("_wp\" ") .append(FormJSHelper.getRawJSFor(te.getRootForm(), id, te.getAction())) .append(" title=\"").append(htmlVal) //the uncutted value in tooltip .append("\" ").append(" >"); // use the longer from display size or real value length int size = (te.displaySize > value.length() ? te.displaySize : value.length()); - sb.append("<input type=\"").append(te.getHtmlInputType()) + sb.append("<input id=\"").append(id).append("\" type=\"").append(te.getHtmlInputType()) .append("\" disabled=\"disabled\" class=\"form-control o_disabled\" size=\"") .append(size) .append("\" value=\"").append(htmlVal).append("\" />") diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextElementImpl.java index 4562ad3830e..b1e6a8b8a14 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextElementImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextElementImpl.java @@ -91,6 +91,11 @@ public class RichTextElementImpl extends AbstractTextElement implements configuration = new RichTextConfiguration(getFormDispatchId(), rootForm.getDispatchFieldId()); } + @Override + public String getForId() { + return isEnabled() ? super.getForId() : null; + } + /** * @see org.olat.core.gui.components.form.flexible.impl.elements.AbstractTextElement#getValue() * The returned value is XSS save and diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextElementRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextElementRenderer.java index 715ab9ed95b..1e669c6044b 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextElementRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextElementRenderer.java @@ -77,7 +77,7 @@ class RichTextElementRenderer extends DefaultComponentRenderer { sb.append(FormJSHelper.getRawJSFor(te.getRootForm(), domID, te.getAction())); sb.append(" id=\""); sb.append(domID); - sb.append("_disabled\" readonly class='form-control-static o_disabled' style=\""); + sb.append("_disabled\" class='form-control-static o_disabled' style=\""); if (rows != -1) { sb.append(" min-height:").append(rows).append("em;"); } -- GitLab