diff --git a/messaging-core/src/main/java/org/fenixedu/messaging/core/domain/Sender.java b/messaging-core/src/main/java/org/fenixedu/messaging/core/domain/Sender.java index ff629fd..b7e0541 100644 --- a/messaging-core/src/main/java/org/fenixedu/messaging/core/domain/Sender.java +++ b/messaging-core/src/main/java/org/fenixedu/messaging/core/domain/Sender.java @@ -24,11 +24,13 @@ */ package org.fenixedu.messaging.core.domain; +import org.joda.time.DateTime; import pt.ist.fenixframework.Atomic; import pt.ist.fenixframework.Atomic.TxMode; import java.text.Collator; import java.util.Collection; +import java.util.Comparator; import java.util.HashSet; import java.util.Locale; import java.util.Objects; @@ -294,6 +296,13 @@ public static Set all() { return Sets.newHashSet(MessagingSystem.getInstance().getSenderSet()); } + public DateTime getLastMessageSentDate() { + return getMessageSet().stream() + .map(Message::getCreated) + .max(Comparator.naturalOrder()) + .orElseGet(() -> new DateTime(Long.MIN_VALUE)); + } + @Override public int compareTo(Sender sender) { int c = ptCollator.compare(getName(), sender.getName()); diff --git a/messaging-core/src/main/java/org/fenixedu/messaging/core/ui/MessagingController.java b/messaging-core/src/main/java/org/fenixedu/messaging/core/ui/MessagingController.java index 49955d0..f5b6d14 100644 --- a/messaging-core/src/main/java/org/fenixedu/messaging/core/ui/MessagingController.java +++ b/messaging-core/src/main/java/org/fenixedu/messaging/core/ui/MessagingController.java @@ -24,6 +24,7 @@ */ package org.fenixedu.messaging.core.ui; +import java.util.Comparator; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -44,6 +45,7 @@ import org.fenixedu.messaging.core.domain.MessageFile; import org.fenixedu.messaging.core.domain.Sender; import org.fenixedu.messaging.core.exception.MessagingDomainException; +import org.joda.time.DateTime; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -83,7 +85,7 @@ public String listSenders(final Model model, @RequestParam(value = "page", defau Set senders = Sender.available().stream() .filter(sender -> sender.getName().toLowerCase().contains(search.toLowerCase())) .collect(Collectors.toSet()); - PaginationUtils.paginate(model, "messaging/senders", "senders", senders, items, page); + PaginationUtils.paginate(model, "messaging/senders", "senders", senders, Comparator.comparing(Sender::getLastMessageSentDate).reversed(), items, page); model.addAttribute("search", search); return "/messaging/listSenders"; } diff --git a/messaging-core/src/main/webapp/WEB-INF/messaging/listSenders.jsp b/messaging-core/src/main/webapp/WEB-INF/messaging/listSenders.jsp index 564b5d1..636261d 100644 --- a/messaging-core/src/main/webapp/WEB-INF/messaging/listSenders.jsp +++ b/messaging-core/src/main/webapp/WEB-INF/messaging/listSenders.jsp @@ -3,6 +3,7 @@ <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%> <%@ taglib uri="org.fenixedu.messaging.tags.sorter" prefix="sort" %> +<%@taglib prefix="joda" uri="http://www.joda.org/joda/time/tags" %> @@ -35,18 +36,18 @@ - + - + - +
diff --git a/messaging-core/src/main/webapp/WEB-INF/resources/MessagingResources_en.properties b/messaging-core/src/main/webapp/WEB-INF/resources/MessagingResources_en.properties index 9d82d03..b75b843 100644 --- a/messaging-core/src/main/webapp/WEB-INF/resources/MessagingResources_en.properties +++ b/messaging-core/src/main/webapp/WEB-INF/resources/MessagingResources_en.properties @@ -74,6 +74,7 @@ label.sender.policy.none = None label.sender.policy.period = For period: label.sender.recipients = Recipients label.sender.replyTo = Reply to +label.sender.lastMessageSent = Last Message Sent label.show = show label.template.description = Description label.template.id = Key diff --git a/messaging-core/src/main/webapp/WEB-INF/resources/MessagingResources_pt.properties b/messaging-core/src/main/webapp/WEB-INF/resources/MessagingResources_pt.properties index b1d3991..f849b51 100644 --- a/messaging-core/src/main/webapp/WEB-INF/resources/MessagingResources_pt.properties +++ b/messaging-core/src/main/webapp/WEB-INF/resources/MessagingResources_pt.properties @@ -104,4 +104,5 @@ title.templates.config = Configuração de Modelos de Mensagem title.template = Modelo de Mensagem title.template.edit = Editar Modelo de Mensagem label.message.attachments=Anexos +label.sender.lastMessageSent=Última Mensagem Enviada