Search in sources :

Example 11 with RepositoryEntryMyView

use of org.olat.repository.RepositoryEntryMyView in project OpenOLAT by OpenOLAT.

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 12 with RepositoryEntryMyView

use of org.olat.repository.RepositoryEntryMyView in project OpenOLAT by OpenOLAT.

the class RepositoryEntryMyCourseQueriesTest method searchViews.

@Test
public void searchViews() {
    Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("mycourses-view-1-");
    dbInstance.commit();
    Roles roles = securityManager.getRoles(id);
    SearchMyRepositoryEntryViewParams params = new SearchMyRepositoryEntryViewParams(id, roles);
    params.setMarked(Boolean.TRUE);
    List<RepositoryEntryMyView> views = repositoryEntryMyCourseViewQueries.searchViews(params, 0, 10);
    Assert.assertNotNull(views);
}
Also used : 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 13 with RepositoryEntryMyView

use of org.olat.repository.RepositoryEntryMyView in project OpenOLAT by OpenOLAT.

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 14 with RepositoryEntryMyView

use of org.olat.repository.RepositoryEntryMyView in project openolat by klemens.

the class DefaultRepositoryEntryDataSource method processViewModel.

private List<RepositoryEntryRow> processViewModel(List<RepositoryEntryMyView> repoEntries) {
    List<Long> repoKeys = new ArrayList<>(repoEntries.size());
    List<OLATResource> resourcesWithAC = new ArrayList<>(repoEntries.size());
    for (RepositoryEntryMyView entry : repoEntries) {
        repoKeys.add(entry.getKey());
        if (entry.isValidOfferAvailable()) {
            resourcesWithAC.add(entry.getOlatResource());
        }
    }
    List<OLATResourceAccess> resourcesWithOffer = acService.filterResourceWithAC(resourcesWithAC);
    repositoryService.filterMembership(searchParams.getIdentity(), repoKeys);
    List<RepositoryEntryRow> items = new ArrayList<RepositoryEntryRow>();
    for (RepositoryEntryMyView entry : repoEntries) {
        RepositoryEntryRow row = new RepositoryEntryRow(entry);
        VFSLeaf image = repositoryManager.getImage(entry);
        if (image != null) {
            row.setThumbnailRelPath(uifactory.getMapperThumbnailUrl() + "/" + image.getName());
        }
        List<PriceMethod> types = new ArrayList<PriceMethod>();
        if (entry.isMembersOnly()) {
            // members only always show lock icon
            types.add(new PriceMethod("", "o_ac_membersonly_icon", uifactory.getTranslator().translate("cif.access.membersonly.short")));
        } else {
            // collect access control method icons
            OLATResource resource = entry.getOlatResource();
            for (OLATResourceAccess resourceAccess : resourcesWithOffer) {
                if (resource.getKey().equals(resourceAccess.getResource().getKey())) {
                    for (PriceMethodBundle bundle : resourceAccess.getMethods()) {
                        String type = (bundle.getMethod().getMethodCssClass() + "_icon").intern();
                        String price = bundle.getPrice() == null || bundle.getPrice().isEmpty() ? "" : PriceFormat.fullFormat(bundle.getPrice());
                        AccessMethodHandler amh = acModule.getAccessMethodHandler(bundle.getMethod().getType());
                        String displayName = amh.getMethodName(uifactory.getTranslator().getLocale());
                        types.add(new PriceMethod(price, type, displayName));
                    }
                }
            }
        }
        row.setMember(repoKeys.contains(entry.getKey()));
        if (!types.isEmpty()) {
            row.setAccessTypes(types);
        }
        uifactory.forgeMarkLink(row);
        uifactory.forgeSelectLink(row);
        uifactory.forgeStartLink(row);
        uifactory.forgeDetails(row);
        uifactory.forgeRatings(row);
        uifactory.forgeComments(row);
        items.add(row);
    }
    return items;
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) ArrayList(java.util.ArrayList) RepositoryEntryMyView(org.olat.repository.RepositoryEntryMyView) OLATResource(org.olat.resource.OLATResource) OLATResourceAccess(org.olat.resource.accesscontrol.model.OLATResourceAccess) PriceMethod(org.olat.repository.ui.PriceMethod) AccessMethodHandler(org.olat.resource.accesscontrol.method.AccessMethodHandler) PriceMethodBundle(org.olat.resource.accesscontrol.model.PriceMethodBundle)

Aggregations

RepositoryEntryMyView (org.olat.repository.RepositoryEntryMyView)14 ArrayList (java.util.ArrayList)6 OrderBy (org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy)6 Test (org.junit.Test)4 DefaultResultInfos (org.olat.core.commons.persistence.DefaultResultInfos)4 Identity (org.olat.core.id.Identity)4 Roles (org.olat.core.id.Roles)4 SearchMyRepositoryEntryViewParams (org.olat.repository.model.SearchMyRepositoryEntryViewParams)4 RepositoryEntryRow (org.olat.repository.ui.list.RepositoryEntryRow)4 OLATResource (org.olat.resource.OLATResource)4 HashMap (java.util.HashMap)2 VFSLeaf (org.olat.core.util.vfs.VFSLeaf)2 UserEfficiencyStatementLight (org.olat.course.assessment.model.UserEfficiencyStatementLight)2 RepositoryEntry (org.olat.repository.RepositoryEntry)2 RepositoryEntryMyCourseImpl (org.olat.repository.model.RepositoryEntryMyCourseImpl)2 RepositoryEntryStatistics (org.olat.repository.model.RepositoryEntryStatistics)2 PriceMethod (org.olat.repository.ui.PriceMethod)2 AccessMethodHandler (org.olat.resource.accesscontrol.method.AccessMethodHandler)2 OLATResourceAccess (org.olat.resource.accesscontrol.model.OLATResourceAccess)2 PriceMethodBundle (org.olat.resource.accesscontrol.model.PriceMethodBundle)2