Search in sources :

Example 1 with OrderBy

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;
}
Also used : OrderBy(org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy) DefaultResultInfos(org.olat.core.commons.persistence.DefaultResultInfos) RepositoryEntryRow(org.olat.repository.ui.list.RepositoryEntryRow) RepositoryEntryMyView(org.olat.repository.RepositoryEntryMyView)

Example 2 with OrderBy

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;
}
Also used : OrderBy(org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy)

Example 3 with OrderBy

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);
    }
}
Also used : OrderBy(org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy) RepositoryEntryMyView(org.olat.repository.RepositoryEntryMyView) Roles(org.olat.core.id.Roles) Identity(org.olat.core.id.Identity) SearchMyRepositoryEntryViewParams(org.olat.repository.model.SearchMyRepositoryEntryViewParams) Test(org.junit.Test)

Example 4 with OrderBy

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;
}
Also used : OrderBy(org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy) DefaultResultInfos(org.olat.core.commons.persistence.DefaultResultInfos) RepositoryEntryMyView(org.olat.repository.RepositoryEntryMyView)

Example 5 with OrderBy

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;
}
Also used : OrderBy(org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy) DefaultResultInfos(org.olat.core.commons.persistence.DefaultResultInfos) RepositoryEntryRow(org.olat.repository.ui.list.RepositoryEntryRow) RepositoryEntryMyView(org.olat.repository.RepositoryEntryMyView)

Aggregations

OrderBy (org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy)10 RepositoryEntryMyView (org.olat.repository.RepositoryEntryMyView)6 DefaultResultInfos (org.olat.core.commons.persistence.DefaultResultInfos)4 ArrayList (java.util.ArrayList)2 List (java.util.List)2 Test (org.junit.Test)2 FlexiTableFilter (org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter)2 FormLink (org.olat.core.gui.components.form.flexible.elements.FormLink)2 Link (org.olat.core.gui.components.link.Link)2 Identity (org.olat.core.id.Identity)2 Roles (org.olat.core.id.Roles)2 SearchMyRepositoryEntryViewParams (org.olat.repository.model.SearchMyRepositoryEntryViewParams)2 Filter (org.olat.repository.model.SearchMyRepositoryEntryViewParams.Filter)2 RepositoryEntryRow (org.olat.repository.ui.list.RepositoryEntryRow)2