Skip to content

Commit 50f1fa6

Browse files
authored
Merge pull request #94 from danielcorreia96/fmsg_45
Sort Senders listing by most recently used FMSG-45 #resolve
2 parents 77348eb + f2bbfa7 commit 50f1fa6

File tree

5 files changed

+18
-4
lines changed

5 files changed

+18
-4
lines changed

messaging-core/src/main/java/org/fenixedu/messaging/core/domain/Sender.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,13 @@
2424
*/
2525
package org.fenixedu.messaging.core.domain;
2626

27+
import org.joda.time.DateTime;
2728
import pt.ist.fenixframework.Atomic;
2829
import pt.ist.fenixframework.Atomic.TxMode;
2930

3031
import java.text.Collator;
3132
import java.util.Collection;
33+
import java.util.Comparator;
3234
import java.util.HashSet;
3335
import java.util.Locale;
3436
import java.util.Objects;
@@ -294,6 +296,13 @@ public static Set<Sender> all() {
294296
return Sets.newHashSet(MessagingSystem.getInstance().getSenderSet());
295297
}
296298

299+
public DateTime getLastMessageSentDate() {
300+
return getMessageSet().stream()
301+
.map(Message::getCreated)
302+
.max(Comparator.naturalOrder())
303+
.orElseGet(() -> new DateTime(Long.MIN_VALUE));
304+
}
305+
297306
@Override
298307
public int compareTo(Sender sender) {
299308
int c = ptCollator.compare(getName(), sender.getName());

messaging-core/src/main/java/org/fenixedu/messaging/core/ui/MessagingController.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
*/
2525
package org.fenixedu.messaging.core.ui;
2626

27+
import java.util.Comparator;
2728
import java.util.HashMap;
2829
import java.util.Locale;
2930
import java.util.Map;
@@ -44,6 +45,7 @@
4445
import org.fenixedu.messaging.core.domain.MessageFile;
4546
import org.fenixedu.messaging.core.domain.Sender;
4647
import org.fenixedu.messaging.core.exception.MessagingDomainException;
48+
import org.joda.time.DateTime;
4749
import org.springframework.http.HttpStatus;
4850
import org.springframework.http.MediaType;
4951
import org.springframework.http.ResponseEntity;
@@ -83,7 +85,7 @@ public String listSenders(final Model model, @RequestParam(value = "page", defau
8385
Set<Sender> senders = Sender.available().stream()
8486
.filter(sender -> sender.getName().toLowerCase().contains(search.toLowerCase()))
8587
.collect(Collectors.toSet());
86-
PaginationUtils.paginate(model, "messaging/senders", "senders", senders, items, page);
88+
PaginationUtils.paginate(model, "messaging/senders", "senders", senders, Comparator.comparing(Sender::getLastMessageSentDate).reversed(), items, page);
8789
model.addAttribute("search", search);
8890
return "/messaging/listSenders";
8991
}

messaging-core/src/main/webapp/WEB-INF/messaging/listSenders.jsp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
44
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
55
<%@ taglib uri="org.fenixedu.messaging.tags.sorter" prefix="sort" %>
6+
<%@taglib prefix="joda" uri="http://www.joda.org/joda/time/tags" %>
67

78

89
<c:choose>
@@ -35,18 +36,18 @@
3536
<thead>
3637
<tr>
3738
<th><spring:message code="label.sender.name"/></th>
38-
<th><spring:message code="label.sender.address"/></th>
39+
<th><spring:message code="label.sender.lastMessageSent"/></th>
3940
<th></th>
4041
</tr>
4142
</thead>
4243
<tbody>
43-
<c:forEach items="${sort:uniqueSort(senders)}" var="sender">
44+
<c:forEach items="${senders}" var="sender">
4445
<tr>
4546
<td class="col-sm-5">
4647
<c:out value="${sender.name}"/>
4748
</td>
4849
<td class="col-sm-4">
49-
<code><c:out value="${sender.address}"/></code>
50+
<code><joda:format value="${sender.getLastMessageSentDate()}" style="LM" /></code>
5051
</td>
5152
<td class="col-sm-3">
5253
<div class="btn-group btn-group-xs pull-right">

messaging-core/src/main/webapp/WEB-INF/resources/MessagingResources_en.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ label.sender.policy.none = None
7474
label.sender.policy.period = For period:
7575
label.sender.recipients = Recipients
7676
label.sender.replyTo = Reply to
77+
label.sender.lastMessageSent = Last Message Sent
7778
label.show = show
7879
label.template.description = Description
7980
label.template.id = Key

messaging-core/src/main/webapp/WEB-INF/resources/MessagingResources_pt.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,5 @@ title.templates.config = Configuração de Modelos de Mensagem
104104
title.template = Modelo de Mensagem
105105
title.template.edit = Editar Modelo de Mensagem
106106
label.message.attachments=Anexos
107+
label.sender.lastMessageSent=Última Mensagem Enviada
107108

0 commit comments

Comments
 (0)