From 6dbcd0ac090e7486e1e39e3b8d0a54372e24c181 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Wed, 25 Sep 2019 08:36:14 +0200 Subject: [PATCH] OO-4272: fix red screen with not partially copied registration link --- .../RegistrationAdditionalForm.java | 6 +--- .../registration/RegistrationController.java | 2 ++ .../olat/registration/RegistrationForm2.java | 34 +++++++++---------- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/olat/registration/RegistrationAdditionalForm.java b/src/main/java/org/olat/registration/RegistrationAdditionalForm.java index e59ab71f138..0612876a57c 100644 --- a/src/main/java/org/olat/registration/RegistrationAdditionalForm.java +++ b/src/main/java/org/olat/registration/RegistrationAdditionalForm.java @@ -31,7 +31,6 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; -import org.olat.core.gui.translator.Translator; import org.olat.core.util.Util; import org.olat.user.ChangePasswordForm; import org.olat.user.UserManager; @@ -60,6 +59,7 @@ public class RegistrationAdditionalForm extends FormBasicController { public RegistrationAdditionalForm(UserRequest ureq, WindowControl wControl) { super(ureq, wControl, null, Util.createPackageTranslator(ChangePasswordForm.class, ureq.getLocale())); userPropertyHandlers = userManager.getUserPropertyHandlersFor(USERPROPERTIES_FORM_IDENTIFIER, false); + setTranslator(userManager.getPropertyHandlerTranslator(getTranslator())); initForm(ureq); } @@ -78,14 +78,10 @@ public class RegistrationAdditionalForm extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormTitle("step.add.reg.title"); - Translator tr = Util.createPackageTranslator(UserPropertyHandler.class,getLocale(), getTranslator()); - // Add all available user fields to this form for (UserPropertyHandler userPropertyHandler : userPropertyHandlers) { if (userPropertyHandler == null) continue; - FormItem fi = userPropertyHandler.addFormItem(getLocale(), null, USERPROPERTIES_FORM_IDENTIFIER, false, formLayout); - fi.setTranslator(tr); propFormItems.put(userPropertyHandler.getName(), fi); } diff --git a/src/main/java/org/olat/registration/RegistrationController.java b/src/main/java/org/olat/registration/RegistrationController.java index c0085ee1032..c90ec44ae5a 100644 --- a/src/main/java/org/olat/registration/RegistrationController.java +++ b/src/main/java/org/olat/registration/RegistrationController.java @@ -386,6 +386,8 @@ public class RegistrationController extends BasicController implements Activatea if(!htmlBody) { body += SEPARATOR + translate("reg.wherefrom", whereFromAttrs); } + System.out.println(body); + if(sendMessage(email, translate("reg.subject"), body)) { showInfo("email.sent"); } else { diff --git a/src/main/java/org/olat/registration/RegistrationForm2.java b/src/main/java/org/olat/registration/RegistrationForm2.java index 62ed3126bac..fab852d2237 100644 --- a/src/main/java/org/olat/registration/RegistrationForm2.java +++ b/src/main/java/org/olat/registration/RegistrationForm2.java @@ -43,7 +43,6 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; -import org.olat.core.gui.translator.Translator; import org.olat.core.id.UserConstants; import org.olat.core.util.StringHelper; import org.olat.core.util.Util; @@ -94,6 +93,8 @@ public class RegistrationForm2 extends FormBasicController { public RegistrationForm2(UserRequest ureq, WindowControl wControl, String languageKey, String proposedUsername, String email, boolean userInUse, boolean usernameReadonly) { super(ureq, wControl, null, Util.createPackageTranslator(ChangePasswordForm.class, ureq.getLocale())); + setTranslator(userManager.getPropertyHandlerTranslator(getTranslator())); + this.languageKey = languageKey; this.proposedUsername = proposedUsername; this.email = email; @@ -172,7 +173,6 @@ public class RegistrationForm2 extends FormBasicController { // first the configured user properties userPropertyHandlers = userManager.getUserPropertyHandlersFor(USERPROPERTIES_FORM_IDENTIFIER, false); - Translator tr = Util.createPackageTranslator(UserPropertyHandler.class, getLocale(), getTranslator()); // Add all available user fields to this form for (UserPropertyHandler userPropertyHandler : userPropertyHandlers) { @@ -181,24 +181,23 @@ public class RegistrationForm2 extends FormBasicController { FormItem fi = userPropertyHandler .addFormItem(getLocale(), null, USERPROPERTIES_FORM_IDENTIFIER, false, formLayout); fi.setElementCssClass("o_sel_registration_" + userPropertyHandler.getName()); - fi.setTranslator(tr); propFormItems.put(userPropertyHandler.getName(), fi); - - if (UserConstants.EMAIL.equals(userPropertyHandler.getName())) { - if (fi instanceof TextElement) { - ((TextElement)fi).setValue(email); - } + if (UserConstants.EMAIL.equals(userPropertyHandler.getName()) && fi instanceof TextElement) { + ((TextElement)fi).setValue(email); } } uifactory.addSpacerElement("lang", formLayout, true); // second the user language Map<String, String> languages = i18nManager.getEnabledLanguagesTranslated(); - lang = uifactory.addDropdownSingleselect("user.language", formLayout, - StringHelper.getMapKeysAsStringArray(languages), - StringHelper.getMapValuesAsStringArray(languages), - null); - lang.select(languageKey, true); + String[] languageKeys = StringHelper.getMapKeysAsStringArray(languages); + String[] languageValues = StringHelper.getMapValuesAsStringArray(languages); + lang = uifactory.addDropdownSingleselect("user.language", formLayout, languageKeys, languageValues, null); + if(languages.containsKey(languageKey)) { + lang.select(languageKey, true); + } else if(languageKeys.length > 0) { + lang.select(languageKeys[0], true); + } uifactory.addSpacerElement("loginstuff", formLayout, true); @@ -240,16 +239,17 @@ public class RegistrationForm2 extends FormBasicController { @Override protected boolean validateFormLogic (UserRequest ureq) { - boolean allOk = true; + boolean allOk = super.validateFormLogic(ureq); // validate each user field for (UserPropertyHandler userPropertyHandler : userPropertyHandlers) { FormItem fi = propFormItems.get(userPropertyHandler.getName()); if (fi.isEnabled() && !userPropertyHandler.isValid(null, fi, null)) { - if (userPropertyHandler instanceof EmailProperty) + if (userPropertyHandler instanceof EmailProperty) { allOk &= registrationManager.isEmailReserved(getEmail()); - else + } else { allOk &= false; + } } } @@ -298,7 +298,7 @@ public class RegistrationForm2 extends FormBasicController { allOk &= false; } - return allOk & super.validateFormLogic(ureq); + return allOk; } @Override -- GitLab