Skip to content
Snippets Groups Projects
Commit f3db626a authored by gnaegi's avatar gnaegi
Browse files

OO-988 make personal toolconfig behave like other forms with explicit button

parent 357924b5
No related branches found
No related tags found
No related merge requests found
...@@ -34,7 +34,9 @@ import org.olat.core.gui.components.form.flexible.FormItemContainer; ...@@ -34,7 +34,9 @@ import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
import org.olat.core.gui.components.form.flexible.impl.FormEvent; import org.olat.core.gui.components.form.flexible.impl.FormEvent;
import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
import org.olat.core.gui.control.Controller; 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.control.WindowControl;
import org.olat.core.id.Identity; import org.olat.core.id.Identity;
import org.olat.core.util.StringHelper; import org.olat.core.util.StringHelper;
...@@ -112,42 +114,62 @@ public class ToolsPrefsController extends FormBasicController { ...@@ -112,42 +114,62 @@ public class ToolsPrefsController extends FormBasicController {
} }
presetEl = uifactory.addCheckboxesVertical("usertools.set", "usertools.set", formLayout, toolKeys, toolValues, 1); presetEl = uifactory.addCheckboxesVertical("usertools.set", "usertools.set", formLayout, toolKeys, toolValues, 1);
presetEl.addActionListener(FormEvent.ONCHANGE); presetEl.addActionListener(FormEvent.ONCHANGE);
presetEl.setEnabled(enabled); presetEl.setEnabled(enabled);
initPresetElementUserData();
String selectedTools = (String)prefs.get(WindowManager.class, "user-tools"); // Create submit and cancel buttons
if(!StringHelper.containsNonWhitespace(selectedTools)) { FormLayoutContainer buttonLayoutWrappper = FormLayoutContainer.createButtonLayout("buttonLayoutWrappper", getTranslator());
selectedTools = userToolsModule.getDefaultPresetOfUserTools(); formLayout.add(buttonLayoutWrappper);
} FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttonLayoutInner", getTranslator());
if(StringHelper.containsNonWhitespace(selectedTools)) { buttonLayoutWrappper.add(buttonLayout);
String[] selectedToolArr = selectedTools.split(","); uifactory.addFormSubmitButton("save", buttonLayout);
for(String toolKey:toolKeys) { uifactory.addFormCancelButton("cancel", buttonLayout, ureq, getWindowControl());
for(String selectedTool:selectedToolArr) {
if(toolKey.equals(selectedTool)) {
presetEl.select(toolKey, true);
}
}
}
}
} }
@Override @Override
protected void doDispose() { protected void doDispose() {
// //
} }
@Override @Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if(presetEl == source) {
doSave();
}
super.formInnerEvent(ureq, source, event); super.formInnerEvent(ureq, source, event);
} }
@Override @Override
protected void formOK(UserRequest ureq) { protected void formOK(UserRequest ureq) {
// doSave();
showInfo("preferences.successful");
fireEvent(ureq, Event.DONE_EVENT);
}
@Override
protected void formCancelled(UserRequest ureq) {
// reset to last saved state: re-initialize form
initPresetElementUserData();
fireEvent(ureq, Event.CANCELLED_EVENT);
}
private void initPresetElementUserData() {
String selectedTools = (String)prefs.get(WindowManager.class, "user-tools");
if(!StringHelper.containsNonWhitespace(selectedTools)) {
// use presets when user has not yet any values
selectedTools = userToolsModule.getDefaultPresetOfUserTools();
}
if(StringHelper.containsNonWhitespace(selectedTools)) {
String[] selectedToolArr = selectedTools.split(",");
keyloop: for (String toolKey:presetEl.getKeys()) {
for(String selectedTool:selectedToolArr) {
if(toolKey.equals(selectedTool)) {
presetEl.select(toolKey, true);
continue keyloop;
}
}
// not found: disable
presetEl.select(toolKey, false);
}
}
} }
private void doSave() { private void doSave() {
......
...@@ -145,7 +145,7 @@ landing.pages=Startseite ...@@ -145,7 +145,7 @@ landing.pages=Startseite
notallowedtochangepwd=Sie d\u00FCrfen das Passwort nicht selbst setzen. Bei Fragen wenden Sie sich bitte an {0}. notallowedtochangepwd=Sie d\u00FCrfen das Passwort nicht selbst setzen. Bei Fragen wenden Sie sich bitte an {0}.
password.failed=Ihr neues Passwort wurde nicht gespeichert. Ein unerwarteter Fehler ist aufgetreten. password.failed=Ihr neues Passwort wurde nicht gespeichert. Ein unerwarteter Fehler ist aufgetreten.
password.successful=Ihr neues Passwort wurde erfolgreich gespeichert. Es ist ab sofort aktiv. password.successful=Ihr neues Passwort wurde erfolgreich gespeichert. Es ist ab sofort aktiv.
preferences.successful=Ihre Systemeinstellungen wurden gespeichert. \u00C4nderungen von Spracheinstellungen und AJAX-Modus werden erst bei Ihrem n\u00E4chsten Login aktiviert. preferences.successful=Ihre Systemeinstellungen wurden gespeichert. \u00C4nderungen von Werkzeugen, Spracheinstellungen und AJAX-Modus werden erst bei Ihrem n\u00E4chsten Login aktiviert.
preferences.unsuccessful=Ihre Systemeinstellungen konnten nicht gespeichert werden. Bitte versuchen Sie es noch einmal. preferences.unsuccessful=Ihre Systemeinstellungen konnten nicht gespeichert werden. Bitte versuchen Sie es noch einmal.
user.preferences.successful=Die Systemeinstellungen des Benutzers ({0}) wurden gespeichert. \u00C4nderungen von Spracheinstellungen und AJAX-Modus sind beim n\u00E4chsten Login aktiv. 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.preferences.unsuccessful=Die Systemeinstellungen des Benutzers ({0}) konnten nicht gespeichert werden. Bitte versuchen Sie es noch einmal.
......
...@@ -162,7 +162,7 @@ menu.portfolio.alt=Portfolio ...@@ -162,7 +162,7 @@ menu.portfolio.alt=Portfolio
notallowedtochangepwd=You are not allowed to change your password on your own. Please contact {0} if you have any questions. notallowedtochangepwd=You are not allowed to change your password on your own. Please contact {0} if you have any questions.
password.failed=Your new password could not be saved. An unexpected server error occurred. password.failed=Your new password could not be saved. An unexpected server error occurred.
password.successful=Your new password has been saved successfully. It is valid from now on. password.successful=Your new password has been saved successfully. It is valid from now on.
preferences.successful=Your system settings have been saved. Modifications regarding your language settings and the AJAX mode will be activated after your next login. preferences.successful=Your system settings have been saved. Modifications regarding your tools, language settings and the AJAX mode will be activated after your next login.
preferences.unsuccessful=Your system settings could not be saved. Please try again. preferences.unsuccessful=Your system settings could not be saved. Please try again.
profile.unsuccessful=Your profile could not be saved. Please try again. profile.unsuccessful=Your profile could not be saved. Please try again.
propdelete.yesno.text=Do you really want to delete the property '{0}' of user '{1}'? propdelete.yesno.text=Do you really want to delete the property '{0}' of user '{1}'?
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment