From 1361ad2890ce3516d1483bfb9600e5d0f208127c Mon Sep 17 00:00:00 2001 From: uhensler <none@none> Date: Fri, 10 Nov 2017 11:09:48 +0100 Subject: [PATCH] OO-2891: Confirmation dialog when disabling user email mandatory. Wording --- .../olat/user/UserEmailAdminController.java | 28 ++++++++++++++++--- .../user/_i18n/LocalStrings_de.properties | 4 ++- .../user/_i18n/LocalStrings_en.properties | 4 ++- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/olat/user/UserEmailAdminController.java b/src/main/java/org/olat/user/UserEmailAdminController.java index c16007a532a..0eeb3b768b4 100644 --- a/src/main/java/org/olat/user/UserEmailAdminController.java +++ b/src/main/java/org/olat/user/UserEmailAdminController.java @@ -50,6 +50,8 @@ public class UserEmailAdminController extends FormBasicController { private static final String USER_EMAIL_UNIQUE = "user.email.unique"; private static final String USER_WITH_EMAIL_DUPLICATES = "user.email.duplicates"; private static final String USERS_DUPLICATE_EMAILS_EXIST = "users.duplicate.emails.exist"; + private static final String USER_EMAIL_MANDATORY_DISABLE_CONFIRMATION_TITLE = "user.email.mandatory.disable.confirmation.title"; + private static final String USER_EMAIL_MANDATORY_DISABLE_CONFIRMATION_TEXT = "user.email.mandatory.disable.confirmation.text"; private static final String USER_EMAIL_UNIQUE_DISABLE_CONFIRMATION_TITLE = "user.email.unique.disable.confirmation.title"; private static final String USER_EMAIL_UNIQUE_DISABLE_CONFIRMATION_TEXT = "user.email.unique.disable.confirmation.text"; @@ -61,6 +63,7 @@ public class UserEmailAdminController extends FormBasicController { private String[] userEmailUniqueKey; private String[] userEmailUniqueValue; private FormLink showUserEmailDuplicatesEl; + private DialogBoxController confirmDisableMandatoryCtrl; private DialogBoxController confirmDisableUniqueCtrl; private int numberOfUsersWithDuplicateEmail; @@ -107,7 +110,7 @@ public class UserEmailAdminController extends FormBasicController { protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { if (userEmailMandatoryEl.equals(source)) { boolean isEmailMandatory = userEmailMandatoryEl.isAtLeastSelected(1); - doSetEmailMandatory(isEmailMandatory); + doSetEmailMandatory(ureq, isEmailMandatory); } else if (userEmailUniqueEl.equals(source)) { boolean isEmailUnique = userEmailUniqueEl.isAtLeastSelected(1); doSetEmailUnique(ureq, isEmailUnique); @@ -118,8 +121,20 @@ public class UserEmailAdminController extends FormBasicController { } } - private void doSetEmailMandatory(boolean isEmailMandatory) { - userModule.setEmailMandatory(isEmailMandatory); + private void doSetEmailMandatory(UserRequest ureq, boolean isEmailMandatory) { + if (!isEmailMandatory) { + doOpenEmailMandatoryDisableconfirmation(ureq); + } else { + userModule.setEmailMandatory(isEmailMandatory); + } + } + + private void doOpenEmailMandatoryDisableconfirmation(UserRequest ureq) { + confirmDisableMandatoryCtrl = DialogBoxUIFactory.createYesNoDialog(ureq, getWindowControl(), + translate(USER_EMAIL_MANDATORY_DISABLE_CONFIRMATION_TITLE), + translate(USER_EMAIL_MANDATORY_DISABLE_CONFIRMATION_TEXT)); + listenTo(confirmDisableMandatoryCtrl); + confirmDisableMandatoryCtrl.activate(); } private void doSetEmailUnique(UserRequest ureq, boolean isEmailUnique) { @@ -157,7 +172,12 @@ public class UserEmailAdminController extends FormBasicController { @Override protected void event(UserRequest ureq, Controller source, Event event) { - if (source == confirmDisableUniqueCtrl) { + if (source == confirmDisableMandatoryCtrl) { + boolean isEmailMandatory = !DialogBoxUIFactory.isYesEvent(event); + userModule.setEmailMandatory(isEmailMandatory); + userEmailMandatoryEl.select(USER_EMAIL_MANDATORY, isEmailMandatory); + cleanUp(); + } else if (source == confirmDisableUniqueCtrl) { boolean isEmailUnique = !DialogBoxUIFactory.isYesEvent(event); userModule.setEmailUnique(isEmailUnique); userEmailUniqueEl.select(USER_EMAIL_UNIQUE, isEmailUnique); diff --git a/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties index a68ccf0eb24..163fc4c79de 100644 --- a/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties @@ -151,9 +151,11 @@ user.email.admin.description=Konfiguration der E-Mail Adresse der/des Benutzende user.email.admin.title=E-Mail Adresse user.email.duplicates={0} Benutzer haben keine eindeutige E-Mail Adresse user.email.mandatory=Obligatorisch +user.email.mandatory.disable.confirmation.title=E-Mail Adressen optional setzen +user.email.mandatory.disable.confirmation.text=Benutzern ohne E-Mail Adresse stehen einige Funktionen nicht mehr zu Verf\u00FCgung.<ul><li>Es werden keine realen E-Mails versendet.</li><li>Es werden keine Benachrichtigungen versendet.<li>Das Login mit der E-Mail Adresse ist nicht m\u00F6glich.</li><li>Das Passwort kann nicht zur\u00FCcksetzt werden.</li></ul>Es wird empfohlen, die interne Mailbox einzuschalten.</br>Soll die Angabe der E-Mail Adresse optional sein? user.email.unique=Eindeutig user.email.unique.disable.confirmation.title=Eindeutigkeit der E-Mail Adresse deaktivieren -user.email.unique.disable.confirmation.text=Wenn Sie die Eindeutigkeit der E-Mail Adresse deaktivieren, stehen den Benutzenden einige Funktionen nicht mehr zu Verf\u00FCgung, z. B. das Login mit der E-Mail Adresse, das Zur\u00FCcksetzen des Passwortes, Benachrichtigungen und der Versand von realen E-Mails. Es wird empfohlen, die interne Mailbox einzuschalten. Wollen Sie die Eindeutigkeit der E-Mail Adressen deaktivieren? +user.email.unique.disable.confirmation.text=Wenn Sie die Eindeutigkeit der E-Mail Adresse deaktivieren, stehen einige Funktionen nicht mehr zu Verf\u00FCgung.<ul><li>Das Login mit der E-Mail Adresse ist generell deaktiviert.</li><li>Benutzer ohne eindeutige E-Mail Adresse k\u00F6nnen das Passwort nur noch \u00FCber die Eingabe des Benutzernamens, aber nicht mehr \u00FCber die E-Mail Adresse zur\u00FCcksetzen.</li></ul>Es wird empfohlen, die interne Mailbox einzuschalten.</br>Wollen Sie die Eindeutigkeit der E-Mail Adressen deaktivieren? user.preferences.successful=Die Systemeinstellungen des Benutzers ({0}) wurden gespeichert. \u00C4nderungen von Spracheinstellungen und AJAX-Modus sind beim n\u00E4chsten Login aktiv. user.preferences.unsuccessful=Die Systemeinstellungen des Benutzers ({0}) konnten nicht gespeichert werden. Bitte versuchen Sie es noch einmal. user.without.email={0} Benutzer haben keine E-Mail Adresse diff --git a/src/main/java/org/olat/user/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/user/_i18n/LocalStrings_en.properties index 73f0e2a8776..04f43292b6d 100644 --- a/src/main/java/org/olat/user/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/user/_i18n/LocalStrings_en.properties @@ -151,9 +151,11 @@ user.email.admin.description=Configuration of the user email address. If the ema user.email.admin.title=User email address user.email.duplicates={0} users have no unique email address user.email.mandatory=Mandatory +user.email.mandatory.disable.confirmation.title=Email addresses optional +user.email.mandatory.disable.confirmation.text=Some functions are not available for users with no email address.<ul><li>No sending of real emails.</li><li>No sending of notifications.</li><li>Login with email address is not possible.</li><li>No possibility to reset the password.</li></ul>Please make sure you have activated the internal mailbox.</br>Do you want to set the email address optional? user.email.unique=Unique user.email.unique.disable.confirmation.title=Deactivate unique email addresses -user.email.unique.disable.confirmation.text=If the uniqueness of the email addresses is deactivated, some functions are not available, e.g. login with email address, password reset notifications or sending of real emails. Please make sure you have activated the internal mailbox. Do you want to deactivate the uniqueness of the email addresses? +user.email.unique.disable.confirmation.text=If the uniqueness of the email addresses is deactivated, some functions are not available.<ul><li>Login with email address is deactivated for all users.</li><li>No possibility to reset the password by email address to user without email address. It is only possible to reset the password by the username.</li></ul>Please make sure you have activated the internal mailbox.</br>Do you want to set the email address optional? user.preferences.successful=The system settings of user ({0}) have been saved. All changes regarding language settings and AJAX mode will be active when logging in next time. user.preferences.unsuccessful=The system settings of user ({0}) could not be saved. Please try again. user.without.email={0} users have no email address -- GitLab