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;
}
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;
}
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;
}
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;
}
Aggregations