diff --git a/src/main/java/org/olat/admin/user/UserSearchFlexiController.java b/src/main/java/org/olat/admin/user/UserSearchFlexiController.java index 0af9923e07732f5fd9e460e28f544500f479015c..f1257abd6f0993f87951c23d922c5fd97b26e207 100644 --- a/src/main/java/org/olat/admin/user/UserSearchFlexiController.java +++ b/src/main/java/org/olat/admin/user/UserSearchFlexiController.java @@ -330,6 +330,10 @@ public class UserSearchFlexiController extends FlexiAutoCompleterController { if(source == backLink) { flc.contextPut("noList","false"); flc.contextPut("showButton","false"); + if(userTableModel != null) { + userTableModel.setObjects(new ArrayList<>()); + tableEl.reset(); + } } else if(searchButton == source) { if(validateForm(ureq)) { doSearch(); @@ -385,7 +389,7 @@ public class UserSearchFlexiController extends FlexiAutoCompleterController { public List<Identity> getSelectedIdentities() { Set<Integer> index = tableEl.getMultiSelectedIndex(); - List<Identity> selectedIdentities = new ArrayList<Identity>(); + List<Identity> selectedIdentities = new ArrayList<>(index.size()); for(Integer i : index) { Identity selectedIdentity = userTableModel.getObject(i.intValue()); selectedIdentities.add(selectedIdentity); @@ -393,7 +397,7 @@ public class UserSearchFlexiController extends FlexiAutoCompleterController { return selectedIdentities; } - private void doSearch() { + public void doSearch() { String login = loginEl.getValue(); // build user fields search map Map<String, String> userPropertiesSearch = new HashMap<String, String>(); @@ -423,6 +427,7 @@ public class UserSearchFlexiController extends FlexiAutoCompleterController { /** * @see org.olat.core.gui.control.DefaultController#doDispose(boolean) */ + @Override protected void doDispose() { // Child controllers auto-disposed by basic controller } diff --git a/src/main/java/org/olat/course/member/wizard/ImportMemberBySearchController.java b/src/main/java/org/olat/course/member/wizard/ImportMemberBySearchController.java index b4555cc380ab525dc5c80693cc540706e3b11b12..d65c4cf6345e854192668fbb266ca6087b81504a 100644 --- a/src/main/java/org/olat/course/member/wizard/ImportMemberBySearchController.java +++ b/src/main/java/org/olat/course/member/wizard/ImportMemberBySearchController.java @@ -20,7 +20,6 @@ package org.olat.course.member.wizard; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.List; @@ -44,18 +43,14 @@ import org.olat.core.id.Identity; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ public class ImportMemberBySearchController extends StepFormBasicController { - //private UserSearchFlexiController searchController; - private UserSearchFlexiController searchController; + + private final UserSearchFlexiController searchController; public ImportMemberBySearchController(UserRequest ureq, WindowControl wControl, Form rootForm, StepsRunContext runContext) { super(ureq, wControl, rootForm, runContext, LAYOUT_CUSTOM, "import_search"); - //searchController = new UserSearchFlexiController(ureq, wControl, rootForm); searchController = new UserSearchFlexiController(ureq, wControl, rootForm); - - listenTo(searchController); - initForm (ureq); } @@ -68,7 +63,7 @@ public class ImportMemberBySearchController extends StepFormBasicController { fireEvent(ureq, StepsEvent.ACTIVATE_NEXT); } else if(event instanceof MultiIdentityChosenEvent) { MultiIdentityChosenEvent e = (MultiIdentityChosenEvent)event; - Collection<String> keys = new ArrayList<String>(); + List<String> keys = new ArrayList<>(); for(Identity identity: e.getChosenIdentities()) { keys.add(identity.getKey().toString()); } @@ -82,12 +77,16 @@ public class ImportMemberBySearchController extends StepFormBasicController { @Override protected void formNext(UserRequest ureq) { List<Identity> identities = searchController.getSelectedIdentities(); - Collection<String> keys = new ArrayList<String>(); - for(Identity identity: identities) { - keys.add(identity.getKey().toString()); + if(identities.isEmpty()) { + searchController.doSearch(); + } else { + List<String> keys = new ArrayList<>(identities.size()); + for(Identity identity: identities) { + keys.add(identity.getKey().toString()); + } + addToRunContext("keys", keys); + fireEvent(ureq, StepsEvent.ACTIVATE_NEXT); } - addToRunContext("keys", keys); - fireEvent(ureq, StepsEvent.ACTIVATE_NEXT); } @Override