Search in sources :

Example 1 with ItemPublishDateComparator

use of org.olat.modules.webFeed.model.ItemPublishDateComparator in project OpenOLAT by OpenOLAT.

the class FeedViewHelper method getItemsOnPage.

/**
 * Get all displayed items inside the paged list of items.
 *
 * @param items the already sorted items
 * @return
 */
public List<Item> getItemsOnPage(List<Item> items) {
    List<Item> itemsOnPage = new ArrayList<>(itemsPerPage);
    final int start = page * itemsPerPage;
    final int end = Math.min(items.size(), start + itemsPerPage);
    for (int i = start; i < end; i++) {
        itemsOnPage.add(items.get(i));
    }
    Collections.sort(itemsOnPage, new ItemPublishDateComparator());
    return itemsOnPage;
}
Also used : ArrayList(java.util.ArrayList) ItemPublishDateComparator(org.olat.modules.webFeed.model.ItemPublishDateComparator)

Example 2 with ItemPublishDateComparator

use of org.olat.modules.webFeed.model.ItemPublishDateComparator in project openolat by klemens.

the class FeedViewHelper method getItemsOnPage.

/**
 * Get all displayed items inside the paged list of items.
 *
 * @param items the already sorted items
 * @return
 */
public List<Item> getItemsOnPage(List<Item> items) {
    List<Item> itemsOnPage = new ArrayList<>(itemsPerPage);
    final int start = page * itemsPerPage;
    final int end = Math.min(items.size(), start + itemsPerPage);
    for (int i = start; i < end; i++) {
        itemsOnPage.add(items.get(i));
    }
    Collections.sort(itemsOnPage, new ItemPublishDateComparator());
    return itemsOnPage;
}
Also used : ArrayList(java.util.ArrayList) ItemPublishDateComparator(org.olat.modules.webFeed.model.ItemPublishDateComparator)

Example 3 with ItemPublishDateComparator

use of org.olat.modules.webFeed.model.ItemPublishDateComparator in project OpenOLAT by OpenOLAT.

the class FeedManagerImpl method loadFilteredAndSortedItems.

@Override
public List<Item> loadFilteredAndSortedItems(Feed feed, FeedSecurityCallback callback, Identity identity) {
    List<Item> items = loadItems(feed);
    List<Item> filteredItems = new ArrayList<>();
    final Roles roles = BaseSecurityManager.getInstance().getRoles(identity);
    if (roles != null && (roles.isOLATAdmin() || feed.isExternal())) {
        // show all items
        filteredItems = items;
    } else {
        for (Item item : items) {
            if (item.isPublished()) {
                // everybody can see published items
                filteredItems.add(item);
            } else if (item.isScheduled() && callback.mayEditItems()) {
                // scheduled items can be seen by everybody who can edit items
                // (moderators)
                filteredItems.add(item);
            } else if (identity.getKey().equals(item.getAuthorKey())) {
                // scheduled items and drafts of oneself are shown
                filteredItems.add(item);
            } else if (item.isDraft()) {
                if (callback.mayViewAllDrafts()) {
                    filteredItems.add(item);
                } else if (identity.getKey() == item.getModifierKey()) {
                    filteredItems.add(item);
                }
            }
        }
    }
    Collections.sort(filteredItems, new ItemPublishDateComparator());
    return filteredItems;
}
Also used : Item(org.olat.modules.webFeed.Item) VFSItem(org.olat.core.util.vfs.VFSItem) ArrayList(java.util.ArrayList) Roles(org.olat.core.id.Roles) ItemPublishDateComparator(org.olat.modules.webFeed.model.ItemPublishDateComparator)

Example 4 with ItemPublishDateComparator

use of org.olat.modules.webFeed.model.ItemPublishDateComparator in project openolat by klemens.

the class FeedManagerImpl method loadFilteredAndSortedItems.

@Override
public List<Item> loadFilteredAndSortedItems(Feed feed, FeedSecurityCallback callback, Identity identity) {
    List<Item> items = loadItems(feed);
    List<Item> filteredItems = new ArrayList<>();
    final Roles roles = BaseSecurityManager.getInstance().getRoles(identity);
    if (roles != null && (roles.isOLATAdmin() || feed.isExternal())) {
        // show all items
        filteredItems = items;
    } else {
        for (Item item : items) {
            if (item.isPublished()) {
                // everybody can see published items
                filteredItems.add(item);
            } else if (item.isScheduled() && callback.mayEditItems()) {
                // scheduled items can be seen by everybody who can edit items
                // (moderators)
                filteredItems.add(item);
            } else if (identity.getKey().equals(item.getAuthorKey())) {
                // scheduled items and drafts of oneself are shown
                filteredItems.add(item);
            } else if (item.isDraft()) {
                if (callback.mayViewAllDrafts()) {
                    filteredItems.add(item);
                } else if (identity.getKey() == item.getModifierKey()) {
                    filteredItems.add(item);
                }
            }
        }
    }
    Collections.sort(filteredItems, new ItemPublishDateComparator());
    return filteredItems;
}
Also used : Item(org.olat.modules.webFeed.Item) VFSItem(org.olat.core.util.vfs.VFSItem) ArrayList(java.util.ArrayList) Roles(org.olat.core.id.Roles) ItemPublishDateComparator(org.olat.modules.webFeed.model.ItemPublishDateComparator)

Aggregations

ArrayList (java.util.ArrayList)4 ItemPublishDateComparator (org.olat.modules.webFeed.model.ItemPublishDateComparator)4 Roles (org.olat.core.id.Roles)2 VFSItem (org.olat.core.util.vfs.VFSItem)2 Item (org.olat.modules.webFeed.Item)2