use of org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy in project OpenOLAT by OpenOLAT.
the class VideoEntryDataSource method getRows.
@Override
public ResultInfos<RepositoryEntryRow> getRows(String query, List<FlexiTableFilter> filters, List<String> condQueries, int firstResult, int maxResults, SortKey... orderBy) {
if (condQueries != null && condQueries.size() > 0) {
String filter = condQueries.get(0);
if (StringHelper.containsNonWhitespace(filter)) {
searchParams.setFilters(Collections.singletonList(Filter.valueOf(filter)));
} else {
searchParams.setFilters(null);
}
}
if (orderBy != null && orderBy.length > 0 && orderBy[0] != null) {
OrderBy o = OrderBy.valueOf(orderBy[0].getKey());
searchParams.setOrderBy(o);
searchParams.setOrderByAsc(orderBy[0].isAsc());
}
if (StringHelper.containsNonWhitespace(query)) {
searchParams.setText(query);
} else {
searchParams.setText(null);
}
List<RepositoryEntryMyView> views = repositoryService.searchMyView(searchParams, firstResult, maxResults);
List<RepositoryEntryRow> rows = processViewModel(views);
ResultInfos<RepositoryEntryRow> results = new DefaultResultInfos<RepositoryEntryRow>(firstResult + rows.size(), -1, rows);
if (firstResult == 0 && views.size() < maxResults) {
count = new Integer(views.size());
}
return results;
}
use of org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy in project OpenOLAT by OpenOLAT.
the class RepositoryEntryMyCourseQueries method appendOrderByInSelect.
/**
* Append additional informations and values to the select part of the query
* needed by the order by.
*
* @param params
* @param sb
* @return
*/
private boolean appendOrderByInSelect(SearchMyRepositoryEntryViewParams params, StringBuilder sb) {
boolean needIdentityKey = false;
OrderBy orderBy = params.getOrderBy();
if (orderBy != null) {
switch(orderBy) {
// need lastVisited
case automatic:
case lastVisited:
needIdentityKey = true;
sb.append(" ,(select infos2.recentLaunch from usercourseinfos as infos2").append(" where infos2.resource=res and infos2.identity.key=:identityKey").append(" ) as recentLaunch");
break;
case passed:
needIdentityKey = true;
sb.append(" ,(select eff3.passed from ").append(UserEfficiencyStatementImpl.class.getName()).append(" as eff3").append(" where eff3.resource=res and eff3.identity.key=:identityKey").append(" ) as passed");
break;
case score:
needIdentityKey = true;
sb.append(" ,(select eff4.score from ").append(UserEfficiencyStatementImpl.class.getName()).append(" as eff4").append(" where eff4.resource=res and eff4.identity.key=:identityKey").append(" ) as score");
break;
// do nothing
default:
}
}
return needIdentityKey;
}
use of org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy in project openolat by klemens.
the class RepositoryEntryMyCourseQueriesTest method searchViews_orderBy.
@Test
public void searchViews_orderBy() {
Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("mycourses-view-2-");
dbInstance.commit();
Roles roles = securityManager.getRoles(id);
SearchMyRepositoryEntryViewParams params = new SearchMyRepositoryEntryViewParams(id, roles);
params.setMarked(Boolean.TRUE);
for (OrderBy orderBy : OrderBy.values()) {
params.setOrderBy(orderBy);
params.setOrderByAsc(true);
List<RepositoryEntryMyView> viewAsc = repositoryEntryMyCourseViewQueries.searchViews(params, 0, 10);
Assert.assertNotNull(viewAsc);
params.setOrderByAsc(false);
List<RepositoryEntryMyView> viewDesc = repositoryEntryMyCourseViewQueries.searchViews(params, 0, 10);
Assert.assertNotNull(viewDesc);
}
}
use of org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy in project openolat by klemens.
the class DefaultRepositoryEntryDataSource method getRows.
@Override
public final ResultInfos<RepositoryEntryRow> getRows(String query, List<FlexiTableFilter> filters, List<String> condQueries, int firstResult, int maxResults, SortKey... orderBy) {
if (filters != null && filters.size() > 0 && filters.get(0) != null) {
String filter = filters.get(0).getFilter();
if (StringHelper.containsNonWhitespace(filter)) {
searchParams.setFilters(Collections.singletonList(Filter.valueOf(filter)));
} else {
searchParams.setFilters(null);
}
} else {
searchParams.setFilters(null);
}
if (orderBy != null && orderBy.length > 0 && orderBy[0] != null) {
OrderBy o = OrderBy.valueOf(orderBy[0].getKey());
searchParams.setOrderBy(o);
searchParams.setOrderByAsc(orderBy[0].isAsc());
}
if (StringHelper.containsNonWhitespace(query)) {
searchParams.setIdRefsAndTitle(query);
} else {
searchParams.setIdRefsAndTitle(null);
}
List<RepositoryEntryMyView> views = repositoryService.searchMyView(searchParams, firstResult, maxResults);
List<RepositoryEntryRow> rows = processViewModel(views);
ResultInfos<RepositoryEntryRow> results = new DefaultResultInfos<RepositoryEntryRow>(firstResult + rows.size(), -1, rows);
if (firstResult == 0 && views.size() < maxResults) {
count = new Integer(views.size());
}
return results;
}
use of org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy in project openolat by klemens.
the class VideoEntryDataSource method getRows.
@Override
public ResultInfos<RepositoryEntryRow> getRows(String query, List<FlexiTableFilter> filters, List<String> condQueries, int firstResult, int maxResults, SortKey... orderBy) {
if (condQueries != null && condQueries.size() > 0) {
String filter = condQueries.get(0);
if (StringHelper.containsNonWhitespace(filter)) {
searchParams.setFilters(Collections.singletonList(Filter.valueOf(filter)));
} else {
searchParams.setFilters(null);
}
}
if (orderBy != null && orderBy.length > 0 && orderBy[0] != null) {
OrderBy o = OrderBy.valueOf(orderBy[0].getKey());
searchParams.setOrderBy(o);
searchParams.setOrderByAsc(orderBy[0].isAsc());
}
if (StringHelper.containsNonWhitespace(query)) {
searchParams.setText(query);
} else {
searchParams.setText(null);
}
List<RepositoryEntryMyView> views = repositoryService.searchMyView(searchParams, firstResult, maxResults);
List<RepositoryEntryRow> rows = processViewModel(views);
ResultInfos<RepositoryEntryRow> results = new DefaultResultInfos<RepositoryEntryRow>(firstResult + rows.size(), -1, rows);
if (firstResult == 0 && views.size() < maxResults) {
count = new Integer(views.size());
}
return results;
}
Aggregations