diff --git a/src/main/java/org/olat/modules/coach/manager/CoachingDAO.java b/src/main/java/org/olat/modules/coach/manager/CoachingDAO.java index c448cac6db95fb155fc04426adbfbb746819e082..2bd44dfbc09ff12f1cd1ef2d970655ef47a19198 100644 --- a/src/main/java/org/olat/modules/coach/manager/CoachingDAO.java +++ b/src/main/java/org/olat/modules/coach/manager/CoachingDAO.java @@ -898,6 +898,16 @@ public class CoachingDAO { queryParams.put("login", login); } + if(params.getStatus() != null) { + Integer status = params.getStatus(); + if (status.equals(Identity.STATUS_VISIBLE_LIMIT)) { + sb.append(" and id_participant.status<").append(Identity.STATUS_VISIBLE_LIMIT); + } else { + sb.append(" and id_participant.status=:status"); + queryParams.put("status", params.getStatus()); + } + } + if(params.getUserProperties() != null && params.getUserProperties().size() > 0) { Map<String,String> searchParams = new HashMap<>(params.getUserProperties()); diff --git a/src/main/java/org/olat/modules/coach/model/SearchCoachedIdentityParams.java b/src/main/java/org/olat/modules/coach/model/SearchCoachedIdentityParams.java index 70cb0e1d48489edb3c06a8db48fca84bda83e17e..5377eca1f390c5aa706cf24830016a87a98f21c3 100644 --- a/src/main/java/org/olat/modules/coach/model/SearchCoachedIdentityParams.java +++ b/src/main/java/org/olat/modules/coach/model/SearchCoachedIdentityParams.java @@ -30,6 +30,7 @@ import java.util.Map; public class SearchCoachedIdentityParams { private String login; + private Integer status; private Long identityKey; private Map<String,String> userProperties; @@ -41,6 +42,14 @@ public class SearchCoachedIdentityParams { this.login = login; } + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + public Long getIdentityKey() { return identityKey; } diff --git a/src/main/java/org/olat/modules/coach/ui/UserSearchController.java b/src/main/java/org/olat/modules/coach/ui/UserSearchController.java index f00a7f4513ba181c76954e26c6a22368610b6b74..f66ec1136e48ca9169ce29c2636ccb4bdf129e53 100644 --- a/src/main/java/org/olat/modules/coach/ui/UserSearchController.java +++ b/src/main/java/org/olat/modules/coach/ui/UserSearchController.java @@ -31,6 +31,7 @@ import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; import org.olat.core.gui.control.generic.dtabs.Activateable2; +import org.olat.core.id.Identity; import org.olat.core.id.context.ContextEntry; import org.olat.core.id.context.StateEntry; import org.olat.modules.coach.CoachingService; @@ -113,11 +114,15 @@ public class UserSearchController extends BasicController implements Activateabl private void doSearch() { String login = searchForm.getLogin(); + boolean onlyActive = searchForm.isOnlyActive(); Map<String,String> searchProps = searchForm.getSearchProperties(); SearchCoachedIdentityParams params = new SearchCoachedIdentityParams(); params.setLogin(login); params.setUserProperties(searchProps); + if(onlyActive) { + params.setStatus(Identity.STATUS_VISIBLE_LIMIT); + } userListCtrl.search(params); mainPanel.pushContent(userListCtrl.getInitialComponent()); } diff --git a/src/main/java/org/olat/modules/coach/ui/UserSearchForm.java b/src/main/java/org/olat/modules/coach/ui/UserSearchForm.java index 5e8dea65ec201bf036478a938313f3723cbed206..48ee55b99d76cd73c570cacdb8fbc84f2f42eadb 100644 --- a/src/main/java/org/olat/modules/coach/ui/UserSearchForm.java +++ b/src/main/java/org/olat/modules/coach/ui/UserSearchForm.java @@ -28,6 +28,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.elements.FormLink; +import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; import org.olat.core.gui.components.form.flexible.elements.TextElement; import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormEvent; @@ -50,11 +51,14 @@ import org.springframework.beans.factory.annotation.Autowired; public class UserSearchForm extends FormBasicController { private static final String PROPS_IDENTIFIER = UserSearchForm.class.getName(); + private static final String[] activeKeys = new String[] { "on" }; + private static final String[] activeValues = new String[] { "" }; private final boolean adminProps; private FormLink searchButton; private TextElement login; + private MultipleSelectionElement statusEl; private List<UserPropertyHandler> userPropertyHandlers; private Map <String,FormItem>propFormItems; @@ -98,6 +102,9 @@ public class UserSearchForm extends FormBasicController { } } + statusEl = uifactory.addCheckboxesHorizontal("only.active", formLayout, activeKeys, activeValues); + statusEl.select(activeKeys[0], true); + FormLayoutContainer buttonCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator()); formLayout.add(buttonCont); uifactory.addFormSubmitButton("search", buttonCont); @@ -122,6 +129,10 @@ public class UserSearchForm extends FormBasicController { return userPropertiesSearch; } + public boolean isOnlyActive() { + return statusEl.isAtLeastSelected(1); + } + @Override protected boolean validateFormLogic(UserRequest ureq) { return validate() & super.validateFormLogic(ureq); diff --git a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties index 207d865f24ebcde9f5ec3ae9680ab034da8955c4..ac20d1e1927b8923c9101a085f80635bff296913 100644 --- a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties @@ -22,6 +22,7 @@ courses.menu.title=Kurse courses.menu.title.alt=Kurse group.name=Name student.name=Name +only.active=Nur aktiven table.header.course.name=Kurs table.header.countCourses=# Kurs table.header.countStudents=# Teilnehmer diff --git a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties index 17c01ed08598d578d25be24415889b47f702da32..b42d33364b6be2c040f3d15f1f22834c28136a3d 100644 --- a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties @@ -26,6 +26,7 @@ next=Next next.course=$\:next next.group=$\:next next.student=$\:next +only.active=Only active open=\u00D6ffnen open.course=$\:open open.group=$\:open