diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java index 211a0c4825b84ce2131c4f9f8a1f046aa8d30e62..a072f8fbf3c9bcccaca0a4a2664cc737789643a3 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java @@ -501,7 +501,7 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere nearright = maxPage - page; nearleft += (nearleft - nearright); } - for (int i = 1; i <= maxPage; i++) { + for (int i = 0; i <= maxPage; i++) { // adapt stepsize if needed stepSize = adaptStepIfNeeded(page, maxStepSize, stepSize, i); @@ -511,7 +511,7 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere isStep = isStep && (stepCnt % useEveryStep == 0); } isNear = (i > (page - nearleft) && i < (page + nearright)); - if (i == 1 || i == maxPage || isStep || isNear) { + if (i == 0 || i == maxPage || isStep || isNear) { appendPagenNumberLink(sb, ftC, page, i); } } 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 61fd916fd51609db9345edf35f25f3f820a6c75b..74fa37c453d6b25addb38a2dc5eb1f41af3d0822 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 @@ -599,10 +599,10 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle && extendedSearchButton.getFormDispatchId().equals(dispatchuri)) { expandExtendedSearch(ureq); } else if(dispatchuri != null && StringHelper.containsNonWhitespace(filter)) { - filter(filter); + doFilter(filter); } else if(exportButton != null && exportButton.getFormDispatchId().equals(dispatchuri)) { - export(ureq); + doExport(ureq); } else if(dispatchuri != null && select != null && select.equals("checkall")) { doSelectAll(); } else if(dispatchuri != null && select != null && select.equals("uncheckall")) { @@ -687,7 +687,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle } } - protected void filter(String filterKey) { + private void doFilter(String filterKey) { if(filterKey == null) { for(FlexiTableFilter filter:filters) { filter.setSelected(false); @@ -699,8 +699,16 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle } if(dataModel instanceof FilterableFlexiTableModel) { + rowCount = -1; + currentPage = 0; + currentFirstResult = 0; + ((FilterableFlexiTableModel)dataModel).filter(filterKey); } else if(dataSource != null) { + rowCount = -1; + currentPage = 0; + currentFirstResult = 0; + List<String> conditionalQueries = Collections.singletonList(filterKey); dataSource.clear(); dataSource.load(null, conditionalQueries, 0, getPageSize(), orderBy); @@ -708,7 +716,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle component.setDirty(true); } - protected void export(UserRequest ureq) { + private void doExport(UserRequest ureq) { MediaResource resource; if(dataModel instanceof ExportableFlexiTableDataModel) { resource = ((ExportableFlexiTableDataModel)dataModel).export(component); diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java index 66126df20fe24fd2f4ce5d4d9e0c8b6d2e74f29f..79a66330aa2586ab58faaf27b9497e09842c5d84 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java +++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java @@ -108,7 +108,7 @@ public class AuthoringEntryDataSource implements FlexiTableDataSourceDelegate<Au if(condQueries != null && condQueries.size() > 0) { String filter = condQueries.get(0); if(StringHelper.containsNonWhitespace(filter)) { - searchParams.addResourceTypes(filter); + searchParams.setResourceTypes(Collections.singletonList(filter)); } else { searchParams.setResourceTypes(null); }