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

OO-990: fix some issue with filtering in flexi tables and pageing with very large number of entries

parent c7b640f9
No related branches found
No related tags found
No related merge requests found
......@@ -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);
}
}
......
......@@ -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);
......
......@@ -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);
}
......
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