Skip to content
Snippets Groups Projects
Commit 78f29557 authored by srosse's avatar srosse
Browse files

OO-1500: add a filter to see only active users ( selected by default )

parent 0dc6f32b
No related branches found
No related tags found
No related merge requests found
...@@ -898,6 +898,16 @@ public class CoachingDAO { ...@@ -898,6 +898,16 @@ public class CoachingDAO {
queryParams.put("login", login); 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) { if(params.getUserProperties() != null && params.getUserProperties().size() > 0) {
Map<String,String> searchParams = new HashMap<>(params.getUserProperties()); Map<String,String> searchParams = new HashMap<>(params.getUserProperties());
......
...@@ -30,6 +30,7 @@ import java.util.Map; ...@@ -30,6 +30,7 @@ import java.util.Map;
public class SearchCoachedIdentityParams { public class SearchCoachedIdentityParams {
private String login; private String login;
private Integer status;
private Long identityKey; private Long identityKey;
private Map<String,String> userProperties; private Map<String,String> userProperties;
...@@ -41,6 +42,14 @@ public class SearchCoachedIdentityParams { ...@@ -41,6 +42,14 @@ public class SearchCoachedIdentityParams {
this.login = login; this.login = login;
} }
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Long getIdentityKey() { public Long getIdentityKey() {
return identityKey; return identityKey;
} }
......
...@@ -31,6 +31,7 @@ import org.olat.core.gui.control.Event; ...@@ -31,6 +31,7 @@ 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.gui.control.controller.BasicController; import org.olat.core.gui.control.controller.BasicController;
import org.olat.core.gui.control.generic.dtabs.Activateable2; 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.ContextEntry;
import org.olat.core.id.context.StateEntry; import org.olat.core.id.context.StateEntry;
import org.olat.modules.coach.CoachingService; import org.olat.modules.coach.CoachingService;
...@@ -113,11 +114,15 @@ public class UserSearchController extends BasicController implements Activateabl ...@@ -113,11 +114,15 @@ public class UserSearchController extends BasicController implements Activateabl
private void doSearch() { private void doSearch() {
String login = searchForm.getLogin(); String login = searchForm.getLogin();
boolean onlyActive = searchForm.isOnlyActive();
Map<String,String> searchProps = searchForm.getSearchProperties(); Map<String,String> searchProps = searchForm.getSearchProperties();
SearchCoachedIdentityParams params = new SearchCoachedIdentityParams(); SearchCoachedIdentityParams params = new SearchCoachedIdentityParams();
params.setLogin(login); params.setLogin(login);
params.setUserProperties(searchProps); params.setUserProperties(searchProps);
if(onlyActive) {
params.setStatus(Identity.STATUS_VISIBLE_LIMIT);
}
userListCtrl.search(params); userListCtrl.search(params);
mainPanel.pushContent(userListCtrl.getInitialComponent()); mainPanel.pushContent(userListCtrl.getInitialComponent());
} }
......
...@@ -28,6 +28,7 @@ import org.olat.core.gui.UserRequest; ...@@ -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.FormItem;
import org.olat.core.gui.components.form.flexible.FormItemContainer; 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.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.elements.TextElement;
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;
...@@ -50,11 +51,14 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -50,11 +51,14 @@ import org.springframework.beans.factory.annotation.Autowired;
public class UserSearchForm extends FormBasicController { public class UserSearchForm extends FormBasicController {
private static final String PROPS_IDENTIFIER = UserSearchForm.class.getName(); 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 final boolean adminProps;
private FormLink searchButton; private FormLink searchButton;
private TextElement login; private TextElement login;
private MultipleSelectionElement statusEl;
private List<UserPropertyHandler> userPropertyHandlers; private List<UserPropertyHandler> userPropertyHandlers;
private Map <String,FormItem>propFormItems; private Map <String,FormItem>propFormItems;
...@@ -98,6 +102,9 @@ public class UserSearchForm extends FormBasicController { ...@@ -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()); FormLayoutContainer buttonCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
formLayout.add(buttonCont); formLayout.add(buttonCont);
uifactory.addFormSubmitButton("search", buttonCont); uifactory.addFormSubmitButton("search", buttonCont);
...@@ -122,6 +129,10 @@ public class UserSearchForm extends FormBasicController { ...@@ -122,6 +129,10 @@ public class UserSearchForm extends FormBasicController {
return userPropertiesSearch; return userPropertiesSearch;
} }
public boolean isOnlyActive() {
return statusEl.isAtLeastSelected(1);
}
@Override @Override
protected boolean validateFormLogic(UserRequest ureq) { protected boolean validateFormLogic(UserRequest ureq) {
return validate() & super.validateFormLogic(ureq); return validate() & super.validateFormLogic(ureq);
......
...@@ -22,6 +22,7 @@ courses.menu.title=Kurse ...@@ -22,6 +22,7 @@ courses.menu.title=Kurse
courses.menu.title.alt=Kurse courses.menu.title.alt=Kurse
group.name=Name group.name=Name
student.name=Name student.name=Name
only.active=Nur aktiven
table.header.course.name=Kurs table.header.course.name=Kurs
table.header.countCourses=# Kurs table.header.countCourses=# Kurs
table.header.countStudents=# Teilnehmer table.header.countStudents=# Teilnehmer
......
...@@ -26,6 +26,7 @@ next=Next ...@@ -26,6 +26,7 @@ next=Next
next.course=$\:next next.course=$\:next
next.group=$\:next next.group=$\:next
next.student=$\:next next.student=$\:next
only.active=Only active
open=\u00D6ffnen open=\u00D6ffnen
open.course=$\:open open.course=$\:open
open.group=$\:open open.group=$\:open
......
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