From 72ce60b5eb915f88d8db542f4169f1c995b6f742 Mon Sep 17 00:00:00 2001 From: uhensler <none@none> Date: Fri, 7 Jul 2017 15:28:31 +0200 Subject: [PATCH] OO-2861: Blog / Podcast drafts should always be on top of the list --- .../model/ItemPublishDateComparator.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/olat/modules/webFeed/model/ItemPublishDateComparator.java b/src/main/java/org/olat/modules/webFeed/model/ItemPublishDateComparator.java index 562654f6a85..032f2bd4564 100644 --- a/src/main/java/org/olat/modules/webFeed/model/ItemPublishDateComparator.java +++ b/src/main/java/org/olat/modules/webFeed/model/ItemPublishDateComparator.java @@ -25,7 +25,9 @@ import java.util.Date; import org.olat.modules.webFeed.Item; /** - * Compares the publish date of two items. + * Comparator to separate the items in drafts and published items. Inside the + * two groups the items are sorted according to the reverse chronological order + * of the publish date. * <P> * Initial Date: Aug 4, 2009 <br> * @@ -33,17 +35,18 @@ import org.olat.modules.webFeed.Item; */ public class ItemPublishDateComparator implements Comparator<Item> { - /** - * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) - */ @Override public int compare(Item a, Item b) { - // reverse chronological order - Date d1 = a.getPublishDate(); - Date d2 = b.getPublishDate(); - if(d1 == null) return 1; - if(d2 == null) return -1; - - return d2.compareTo(d1); + if (a.isDraft() == b.isDraft()) { + Date d1 = a.getPublishDate(); + Date d2 = b.getPublishDate(); + if(d1 == null) return 1; + if(d2 == null) return -1; + return d2.compareTo(d1); + } + if (b.isDraft()) { + return 1; + } + return -1; } } -- GitLab