From f5ee461159073dea4805e91232a6959265cac440 Mon Sep 17 00:00:00 2001 From: jens Date: Wed, 4 Jan 2017 23:09:07 +0100 Subject: [PATCH] b:dateTimePicker fix for allow-input-toggle and inline mode The assignment of the JQuery identifier wasn't correct in the different cases, "inline", "popup". Also there was a difference between rendering with an assigned id and with none id. Fix TheCoder4eu/BootsFaces-OSP#590 --- .../dateTimePicker/DateTimePickerRenderer.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/bootsfaces/component/dateTimePicker/DateTimePickerRenderer.java b/src/main/java/net/bootsfaces/component/dateTimePicker/DateTimePickerRenderer.java index e0b55c2a6..9b9d9da9d 100644 --- a/src/main/java/net/bootsfaces/component/dateTimePicker/DateTimePickerRenderer.java +++ b/src/main/java/net/bootsfaces/component/dateTimePicker/DateTimePickerRenderer.java @@ -158,6 +158,7 @@ private String encodeHTML(FacesContext fc, ResponseWriter rw, DateTimePicker dtp String styleClass = dtp.getStyleClass(); if(styleClass == null) styleClass = ""; styleClass = styleClass.trim(); + String datePickerId; String responsiveStyleClass = Responsive.getResponsiveStyleClass(dtp, false); String label = dtp.getLabel(); @@ -241,7 +242,8 @@ private String encodeHTML(FacesContext fc, ResponseWriter rw, DateTimePicker dtp rw.writeAttribute("class", ("input-group date " + styleClass).trim(), "class"); if(dtp.getStyle() != null) rw.writeAttribute("style", (dtp.isDisabled() ? "opacity: 0.65; pointer-events: none;" : "") + dtp.getStyle(), "style"); else if(dtp.isDisabled()) rw.writeAttribute("style", "opacity: 0.65; pointer-events: none;", null); - rw.writeAttribute("id", divPrefix + clientId, null); + datePickerId = divPrefix + clientId; + rw.writeAttribute("id", datePickerId, null); if (!clientIdHasBeenRendered) { Tooltip.generateTooltip(fc, dtp, rw); clientIdHasBeenRendered=true; @@ -269,7 +271,8 @@ private String encodeHTML(FacesContext fc, ResponseWriter rw, DateTimePicker dtp String inputGroup = dtp.isShowIcon() ? "input-group " : ""; rw.writeAttribute("class", (inputGroup +"date " + styleClass).trim(), "class"); if(dtp.getStyle() != null) rw.writeAttribute("style", dtp.getStyle(), "style"); - rw.writeAttribute("id", divPrefix + clientId, null); + datePickerId = divPrefix + clientId; + rw.writeAttribute("id", datePickerId, null); if (!clientIdHasBeenRendered) { Tooltip.generateTooltip(fc, dtp, rw); clientIdHasBeenRendered=true; @@ -326,7 +329,7 @@ private String encodeHTML(FacesContext fc, ResponseWriter rw, DateTimePicker dtp } Tooltip.activateTooltips(fc, dtp); - return divPrefix; + return datePickerId; } private void generateStyleClass(DateTimePicker dtp, ResponseWriter rw) @@ -360,7 +363,7 @@ private void generateStyleClass(DateTimePicker dtp, ResponseWriter rw) * Encode the javascript code * @throws IOException */ - private void encodeJS(FacesContext fc, ResponseWriter rw, DateTimePicker dtp, String divPrefix) + private void encodeJS(FacesContext fc, ResponseWriter rw, DateTimePicker dtp, String datePickerId) throws IOException { String clientId = dtp.getClientId(); String fieldId = dtp.getFieldId(); @@ -391,7 +394,7 @@ private void encodeJS(FacesContext fc, ResponseWriter rw, DateTimePicker dtp, St : getDateAsString(fc, dtp, v, LocaleUtils.momentToJavaFormat(format), sloc)) + "'"; - String fullSelector = "#" + BsfUtils.escapeJQuerySpecialCharsInSelector(clientId); + String fullSelector = "#" + BsfUtils.escapeJQuerySpecialCharsInSelector(datePickerId); String defaultDate = BsfUtils.isStringValued(dtp.getInitialDate()) ? dtp.getInitialDate().contains("moment") ? dtp.getInitialDate() : "'" + dtp.getInitialDate() + "'" : "";