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

OO-3281: hanlde the special of the "Show all" filter

parent 97a73f80
No related branches found
No related tags found
No related merge requests found
......@@ -19,6 +19,9 @@
*/
package org.olat.core.gui.components.form.flexible.impl.elements.table;
import java.util.List;
import org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter;
import org.olat.core.gui.components.form.flexible.impl.Form;
import org.olat.core.gui.components.form.flexible.impl.FormJSHelper;
import org.olat.core.gui.components.form.flexible.impl.NameValuePair;
......@@ -70,9 +73,20 @@ public class TreeNodeFlexiCellRenderer implements FlexiCellRenderer {
private boolean isFlat(FlexiTableElementImpl ftE) {
return flatBySearchAndFilter
&& (StringHelper.containsNonWhitespace(ftE.getQuickSearchString()) || !ftE.getSelectedFilters().isEmpty());
&& (StringHelper.containsNonWhitespace(ftE.getQuickSearchString()) || isFiltered(ftE.getSelectedFilters()));
}
private boolean isFiltered(List<FlexiTableFilter> filters) {
if(filters == null || filters.isEmpty()) return false;
boolean filtered = true;
for(FlexiTableFilter filter:filters) {
if(filter.isShowAll()) {
filtered &= false;
}
}
return filtered;
}
private void renderIndented(Renderer renderer, StringOutput target, Object cellValue, int row,
FlexiTableComponent source, URLBuilder ubu, Translator translator) {
......
......@@ -161,7 +161,8 @@ public class TaxonomyTreeTableController extends FormBasicController implements
resources.add(new FlexiTableFilter(type.getDisplayName(), type.getKey().toString()));
}
resources.add(new FlexiTableFilter(translate("filter.no.level.type"), "-"));
resources.add(new FlexiTableFilter(translate("show.all"), "-", true));
resources.add(FlexiTableFilter.SPACER);
resources.add(new FlexiTableFilter(translate("show.all"), "all", true));
return resources;
}
......
......@@ -61,21 +61,28 @@ implements FilterableFlexiTableModel {
if(filters != null && filters.size() > 0 && filters.get(0) != null) {
Set<Long> typeKeys = new HashSet<>();
boolean noType = false;
boolean showAll = false;
for(FlexiTableFilter filter:filters) {
if("-".equals(filter.getFilter())) {
noType = true;
} else if(StringHelper.isLong(filter.getFilter())) {
typeKeys.add(new Long(filter.getFilter()));
} else if(filter.isShowAll()) {
showAll = true;
}
}
List<TaxonomyLevelRow> filteredRows = new ArrayList<>(backupRows.size());
for(TaxonomyLevelRow row:backupRows) {
if(accept(row, typeKeys, noType)) {
filteredRows.add(row);
if(showAll) {
setUnfilteredObjects();
} else {
List<TaxonomyLevelRow> filteredRows = new ArrayList<>(backupRows.size());
for(TaxonomyLevelRow row:backupRows) {
if(accept(row, typeKeys, noType)) {
filteredRows.add(row);
}
}
setFilteredObjects(filteredRows);
}
setFilteredObjects(filteredRows);
} else {
setUnfilteredObjects();
}
......
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