=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageConversationStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageConversationStore.java 2011-12-16 09:48:40 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageConversationStore.java 2011-12-16 09:54:21 +0000 @@ -38,7 +38,16 @@ public interface MessageConversationStore extends GenericIdentifiableObjectStore { - List getMessageConversations( User user, int first, int max ); - + /** + * Returns a list of MessageConversations. + * + * @param user the User for which the MessageConversations are sent to, or + * all if null. + * @param first the first record number to return, or all if null. + * @param max the max number of records to return, or all if null. + * @return a list of MessageConversations. + */ + List getMessageConversations( User user, Integer first, Integer max ); + long getUnreadUserMessageConversationCount( User user ); } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageService.java 2011-12-16 09:48:40 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageService.java 2011-12-16 09:54:21 +0000 @@ -63,4 +63,6 @@ long getUnreadMessageConversationCount( User user ); List getMessageConversations( int first, int max ); + + List getAllMessageConversations(); } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java 2011-12-16 09:48:40 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java 2011-12-16 09:54:21 +0000 @@ -215,6 +215,11 @@ { return messageConversationStore.getMessageConversations( currentUserService.getCurrentUser(), first, max ); } + + public List getAllMessageConversations() + { + return messageConversationStore.getMessageConversations( null, null, null ); + } // ------------------------------------------------------------------------- // Supportive methods === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/hibernate/HibernateMessageConversationStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/hibernate/HibernateMessageConversationStore.java 2011-12-13 16:29:31 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/hibernate/HibernateMessageConversationStore.java 2011-12-16 09:54:21 +0000 @@ -44,9 +44,9 @@ public class HibernateMessageConversationStore extends HibernateIdentifiableObjectStore implements MessageConversationStore { - public List getMessageConversations( User user, int first, int max ) + public List getMessageConversations( User user, Integer first, Integer max ) { - final String sql = + String sql = "select mc.messageconversationid, mc.uid, mc.subject, mc.lastupdated, ui.surname, ui.firstname, ( " + "select isread from usermessage " + "where usermessage.usermessageid=mu.usermessageid " + @@ -54,10 +54,24 @@ "from messageconversation mc " + "left join messageconversation_usermessages mu on mc.messageconversationid=mu.messageconversationid " + "left join usermessage um on mu.usermessageid=um.usermessageid " + - "left join userinfo ui on mc.lastsenderid=ui.userinfoid " + - "where um.userid=" + user.getId() + " " + - "order by mc.lastupdated desc " + - "limit " + max; + "left join userinfo ui on mc.lastsenderid=ui.userinfoid "; + + if ( user != null ) + { + sql += "where um.userid=" + user.getId() + " "; + } + + sql += "order by mc.lastupdated desc "; + + if ( first != null ) + { + sql += "offset " + first + " "; + } + + if ( max != null ) + { + sql += "limit " + max; + } final List conversations = jdbcTemplate.query( sql, new RowMapper() {