From f0ee522173e0e3de9fe21ce42f6e18db01f1ba18 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 22 Nov 2017 11:59:36 +0100
Subject: [PATCH] OO-3148: better explain the reset settings feature

---
 .../java/org/olat/user/ChangePrefsController.java  | 14 ++++++++++++++
 .../org/olat/user/_i18n/LocalStrings_de.properties |  2 +-
 .../org/olat/user/_i18n/LocalStrings_en.properties |  2 +-
 .../org/olat/user/_i18n/LocalStrings_fr.properties |  2 +-
 4 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/olat/user/ChangePrefsController.java b/src/main/java/org/olat/user/ChangePrefsController.java
index 0d1bd3f44c0..d6a62316238 100644
--- a/src/main/java/org/olat/user/ChangePrefsController.java
+++ b/src/main/java/org/olat/user/ChangePrefsController.java
@@ -317,12 +317,26 @@ class UserPrefsResetForm extends FormBasicController {
 		
 		resetElements = uifactory.addCheckboxesVertical("prefs", "reset.elements", formLayout, keys, values, 1);
 		resetElements.setElementCssClass("o_sel_home_settings_reset_sysprefs");
+		resetElements.setMandatory(true);
 		
 		final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator());
 		formLayout.add(buttonLayout);
 		buttonLayout.setElementCssClass("o_sel_home_settings_reset_sysprefs_buttons");
 		uifactory.addFormSubmitButton("reset.submit", buttonLayout);
 	}
+	
+	@Override
+	protected boolean validateFormLogic(UserRequest ureq) {
+		boolean allOk = true;
+		
+		resetElements.clearError();
+		if(!resetElements.isAtLeastSelected(1)) {
+			resetElements.setErrorKey("form.legende.mandatory", null);
+			allOk &= false;
+		}
+		
+		return allOk & super.validateFormLogic(ureq);
+	}
 
 	@Override
 	protected void formOK(UserRequest ureq) {
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 bbd451f488f..a47eaf41db5 100644
--- a/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties
@@ -102,7 +102,7 @@ pwdav.password.successful=Ihr neues WebDAV Passwort wurde erfolgreich gespeicher
 pwdav.title=WebDAV Zugang
 pwdav.username=WebDAV Benutzername
 replayurl.active=Load Performance URL eingeschaltet
-reset.desc=Hier k\u00F6nnen Sie die personalisierten Systemkonfiguration wieder auf die Standardeinstellung zur\u00FCcksetzen. Um die Einstellungen zu aktivieren werden Sie automatisch aus dem System ausgeloggt\!
+reset.desc=Hier k\u00F6nnen Sie die personalisierten Systemkonfiguration wieder auf die Standardeinstellung zur\u00FCcksetzen. W\u00E4hlen Sie unten die Einstellungen aus, die zur\u00FCckgesetzt werden sollen. Um die Einstellungen zu aktivieren werden Sie automatisch aus dem System ausgeloggt\!
 reset.elements=Einstellungen
 reset.elements.guiprefs=Personalisierung von Bildschirmkomponenten (Men\u00FC, Toolboxen, Tabellen, Portal, Kalender etc.)
 reset.elements.resume=Sitzung wiederherstellen
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 04f43292b6d..6e9a50e728e 100644
--- a/src/main/java/org/olat/user/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/user/_i18n/LocalStrings_en.properties
@@ -102,7 +102,7 @@ pwdav.password.successful=Your new WebDAV password has been saved successfully.
 pwdav.title=WebDAV access
 pwdav.username=WebDav user name
 replayurl.active=Load performance URL active
-reset.desc=You can reset your personalized system configuration to the default values using this form. To activate the changes the system will automatically trigger a logout. 
+reset.desc=You can reset your personalized system configuration to the default values using this form. Choose below the settings you want reset. To activate the changes the system will automatically trigger a logout. 
 reset.elements=Configurations
 reset.elements.guiprefs=Personalized interface components (menu, tool boxes, tables, portal, calendar etc.)
 reset.elements.resume=Session resume
diff --git a/src/main/java/org/olat/user/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/user/_i18n/LocalStrings_fr.properties
index 7f7f45a3bee..4a834e4f7b2 100644
--- a/src/main/java/org/olat/user/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/user/_i18n/LocalStrings_fr.properties
@@ -102,7 +102,7 @@ pwdav.password.successful=Votre nouveau mot de passe WebDAV a \u00E9t\u00E9 enre
 pwdav.title=Acc\u00E8s WebDAV
 pwdav.username=Nom d'utilisateur WebDAV
 replayurl.active=Load Performance URL activ\u00E9e
-reset.desc=Ci-dessous vous pouvez remettre la configuration syst\u00E8me personnalis\u00E9 \u00E0 ses valeurs par d\u00E9faut. Pour activer les nouveaux param\u00E8tres, vous serez automatiquement d\u00E9connect\u00E9 du syst\u00E8me\!
+reset.desc=Ci-dessous vous pouvez remettre votre configuration personnalis\u00E9 du syst\u00E8me \u00E0 ses valeurs par d\u00E9faut. Choisissez ci-dessous les pr\u00E9f\u00E9rences que vous voulez remettre \u00E0 z\u00E9ro. Pour activer les nouveaux param\u00E8tres, vous serez automatiquement d\u00E9connect\u00E9 du syst\u00E8me\!
 reset.elements=R\u00E9glages
 reset.elements.guiprefs=Personnalisation des composants \u00E0 l'\u00E9cran (menu, bo\u00EEtes \u00E0 outils, tables, portail, calendrier, etc).
 reset.elements.resume=Restaurer la session
-- 
GitLab