Arthur Bogaart pushed to branch bugfix/CMS-6954 at cms-community / hippo-cms
Commits: ad8bfd73 by Arthur Bogaart at 2016-07-21T12:35:23+02:00 CMS-6954 Correct order of object creation - Set model value (selectedTimeZone) before creating model+wicket component simplifies code - Renamed isCookieValueSet to useBrowserTimeZoneIfAvailable - - - - - 1 changed file: - engine/src/main/java/org/hippoecm/frontend/plugins/login/DefaultLoginPlugin.java Changes: ===================================== engine/src/main/java/org/hippoecm/frontend/plugins/login/DefaultLoginPlugin.java ===================================== --- a/engine/src/main/java/org/hippoecm/frontend/plugins/login/DefaultLoginPlugin.java +++ b/engine/src/main/java/org/hippoecm/frontend/plugins/login/DefaultLoginPlugin.java @@ -63,27 +63,27 @@ public class DefaultLoginPlugin extends SimpleLoginPlugin { private String selectedTimeZone; private List<String> availableTimeZones; - private boolean isCookieValueSet; + private boolean useBrowserTimeZoneIfAvailable; public LoginForm(final String id, final boolean autoComplete, final List<String> locales, final LoginHandler handler) { super(id, autoComplete, locales, handler); - if (getPluginConfig().getBoolean(SHOW_TIMEZONES_CONFIG_PARAM)) { - availableTimeZones = getSelectableTimezones(getPluginConfig().getStringArray(SELECTABLE_TIMEZONES_CONFIG_PARAM)); - - // Add the timezone dropdown - final DropDownChoice<String> timeZone = new DropDownChoice<>("timezone", - PropertyModel.of(this, "selectedTimeZone"), availableTimeZones); + final IPluginConfig config = getPluginConfig(); + if (config.getBoolean(SHOW_TIMEZONES_CONFIG_PARAM)) { + availableTimeZones = getSelectableTimezones(config.getStringArray(SELECTABLE_TIMEZONES_CONFIG_PARAM)); // Check if user has previously selected a timezone final String cookieTimeZone = getCookieValue(TIMEZONE_COOKIE); if (isTimeZoneValid(cookieTimeZone)) { selectedTimeZone = cookieTimeZone; - isCookieValueSet = true; } else { - timeZone.setModelObject(timeZone.getChoices().get(0)); + selectedTimeZone = availableTimeZones.get(0); + useBrowserTimeZoneIfAvailable = true; } + // Add the timezone dropdown + final PropertyModel<String> selected = PropertyModel.of(this, "selectedTimeZone"); + final DropDownChoice<String> timeZone = new DropDownChoice<>("timezone", selected, availableTimeZones); timeZone.setNullValid(false); form.add(new Label("timezone-label", new ResourceModel("timezone-label", "Time zone:"))); @@ -98,7 +98,7 @@ public class DefaultLoginPlugin extends SimpleLoginPlugin { @Override public void renderHead(HtmlHeaderContainer container) { super.renderHead(container); - if (getPluginConfig().getBoolean(SHOW_TIMEZONES_CONFIG_PARAM) && !isCookieValueSet) { + if (getPluginConfig().getBoolean(SHOW_TIMEZONES_CONFIG_PARAM) && useBrowserTimeZoneIfAvailable) { container.getHeaderResponse().render(JavaScriptReferenceHeaderItem.forReference(JSTZ_JS)); container.getHeaderResponse().render(OnLoadHeaderItem.forScript(INIT_JS.asString())); } @@ -106,7 +106,7 @@ public class DefaultLoginPlugin extends SimpleLoginPlugin { @Override protected void loginSuccess() { - if (isSelectedTimeZoneValid()) { + if (isTimeZoneValid(selectedTimeZone)) { final TimeZone timeZone = TimeZone.getTimeZone(selectedTimeZone); // Store selected timezone in session and cookie UserSession.get().getClientInfo().getProperties().setTimeZone(timeZone); @@ -115,10 +115,6 @@ public class DefaultLoginPlugin extends SimpleLoginPlugin { super.loginSuccess(); } - private boolean isSelectedTimeZoneValid() { - return isTimeZoneValid(selectedTimeZone); - } - private boolean isTimeZoneValid(String timeZone) { return timeZone != null && availableTimeZones != null && availableTimeZones.contains(timeZone); @@ -128,7 +124,7 @@ public class DefaultLoginPlugin extends SimpleLoginPlugin { List<String> selectableTimezones = new ArrayList<>(); if (configuredSelectableTimezones != null) { - selectableTimezones = Arrays.asList(configuredSelectableTimezones).stream() + selectableTimezones = Arrays.stream(configuredSelectableTimezones) .filter(StringUtils::isNotBlank) .filter(ALL_JAVA_TIMEZONES::contains) .collect(Collectors.toList()); View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms/commit/ad8bfd734959d1f6773d69e535f6b5f90be221d8
_______________________________________________ Hippocms-svn mailing list Hippocms-svn@lists.onehippo.org https://lists.onehippo.org/mailman/listinfo/hippocms-svn