diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java index 96968e3de2d7c8b5c0eb99c3bc8a622e3e391c14..03da67f62569d7f22fea170245df793ca84da6a3 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java @@ -25,6 +25,7 @@ */ package org.olat.core.gui.components.form.flexible.elements; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -36,9 +37,9 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.ExtendedFl import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableComponent; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableComponentDelegate; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableCssDelegate; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableRendererType; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTreeTableNode; -import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableCssDelegate; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.generic.ajax.autocompletion.ListProvider; import org.olat.core.util.UserSession; @@ -282,6 +283,8 @@ public interface FlexiTableElement extends FormItem, FormItemCollection { */ public void setSelectedFilterKey(String key); + public void setSelectedFilterKeys(Collection<String> keys); + /** * Make sure that the option multi-selection is enabled if you specify several filters. * diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java index 58712fadbd1717e21d046c67601d5edf93591c83..f91f0ee33198d0f37dd438f5dfe08b048e5f093f 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java @@ -430,6 +430,16 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle } } } + + @Override + public void setSelectedFilterKeys(Collection<String> keys) { + if(filters != null) { + for(FlexiTableFilter filter:filters) { + boolean selected = keys.contains(filter.getFilter()); + filter.setSelected(selected); + } + } + } @Override public void setSelectedFilters(List<FlexiTableFilter> selectedFilters) { diff --git a/src/main/java/org/olat/user/ui/admin/UserSearchTableController.java b/src/main/java/org/olat/user/ui/admin/UserSearchTableController.java index f37b408f845618f18de3e44f438d0c2d7c3fc876..96abdbf796aca5032e3da0c405addebfddabd1b2 100644 --- a/src/main/java/org/olat/user/ui/admin/UserSearchTableController.java +++ b/src/main/java/org/olat/user/ui/admin/UserSearchTableController.java @@ -20,10 +20,12 @@ package org.olat.user.ui.admin; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; import org.olat.admin.user.UserAdminController; import org.olat.admin.user.UsermanagerUserSearchController; @@ -263,8 +265,13 @@ public class UserSearchTableController extends FormBasicController implements Ac selectedFilters.add(loginDeniedFilter); tableEl.setSelectedFilters(selectedFilters); } - + public void loadModel(SearchIdentityParams params) { + if (params.getExactStatusList() != null && !params.getExactStatusList().isEmpty()) { + Collection<String> keys = params.getExactStatusList().stream().map(i -> Integer.toString(i)).collect(Collectors.toSet()); + tableEl.setSelectedFilterKeys(keys); + params.setExactStatusList(null); + } currentSearchParams = params; UserSearchDataSource dataSource = new UserSearchDataSource(params, userPropertyHandlers, getLocale()); tableModel.setSource(dataSource);