Author: solomax
Date: Tue Jul 30 18:42:25 2013
New Revision: 1508580

URL: http://svn.apache.org/r1508580
Log:
[OPENMEETINGS-615] Move drop down is implemented

Modified:
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessagesDao.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessagesDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessagesDao.java?rev=1508580&r1=1508579&r2=1508580&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessagesDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessagesDao.java
 Tue Jul 30 18:42:25 2013
@@ -516,7 +516,7 @@ public class PrivateMessagesDao implemen
                return -1;
        }
 
-       public Integer moveMailsToFolder(List<Long> privateMessageIds, Long 
privateMessageFolderId) {
+       public Integer moveMailsToFolder(Collection<Long> privateMessageIds, 
Long privateMessageFolderId) {
                try {
                        Query query = em.createNamedQuery("moveMailsToFolder"); 
                        query.setParameter("privateMessageFolderId", 
privateMessageFolderId);

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java?rev=1508580&r1=1508579&r2=1508580&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
 Tue Jul 30 18:42:25 2013
@@ -135,6 +135,7 @@ public class MessagesContactsPanel exten
                                return "" + object.getPrivateMessageFolderId();
                        }
                });
+       private WebMarkupContainer selectedFolder;
        
        private void setDefaultFolderClass() {
                inbox.add(AttributeAppender.replace("class", "email inbox 
clickable"));
@@ -161,10 +162,14 @@ public class MessagesContactsPanel exten
                target.add(buttons);
        }
        
+       private String getEmail(User u) {
+               return u == null || u.getAdresses() == null ? "" : 
u.getAdresses().getEmail();
+       }
+       
        private void selectMessage(long id, AjaxRequestTarget target) {
                PrivateMessage msg = getBean(PrivateMessagesDao.class).get(id);
-               selectedMessage.addOrReplace(new Label("from", msg == null ? "" 
: msg.getFrom().getAdresses().getEmail()));
-               selectedMessage.addOrReplace(new Label("to", msg == null ? "" : 
msg.getTo().getAdresses().getEmail()));
+               selectedMessage.addOrReplace(new Label("from", msg == null ? "" 
: getEmail(msg.getFrom())));
+               selectedMessage.addOrReplace(new Label("to", msg == null ? "" : 
getEmail(msg.getTo())));
                selectedMessage.addOrReplace(new Label("subj", msg == null ? "" 
: msg.getSubject()));
                selectedMessage.addOrReplace(new Label("body", msg == null ? "" 
: msg.getMessage()));
                if (target != null) {
@@ -181,11 +186,13 @@ public class MessagesContactsPanel exten
        }
        
        private void selectFolder(WebMarkupContainer folder, long id, 
AjaxRequestTarget target) {
+               selectedFolder = folder;
                selectedModel.setObject(id);
                setDefaultFolderClass();
                selectFolder(folder);
                emptySelection(target);
                selectDropDown.setModelObject(SELECT_CHOOSE);
+               moveDropDown.setModelObject(NOT_MOVE_FOLDER);
                deleteBtn.add(AttributeModifier.replace("value", 
WebSession.getString(TRASH_FOLDER_ID == id ? 1256 : 1245)));
                readBtn.setEnabled(false);
                unreadBtn.setEnabled(false);
@@ -193,7 +200,7 @@ public class MessagesContactsPanel exten
                
unread.setDefaultModelObject(getBean(PrivateMessagesDao.class).count(getUserId(),
 id > 0 ? id : null, false, TRASH_FOLDER_ID == id));
                if (target != null) {
                        updateTable(target);
-                       target.add(folders, unread, selectDropDown);
+                       target.add(folders, unread, selectDropDown, 
moveDropDown);
                        target.add(dataContainer.container, 
dataContainer.navigator);
                        target.add(dataContainer.orderLinks);
                }
@@ -207,7 +214,7 @@ public class MessagesContactsPanel exten
        private String getDisplayName(User u) {
                return new StringBuilder().append(u.getFirstname()).append(" ")
                                .append(u.getLastname()).append(" ")
-                               
.append("<").append(u.getAdresses().getEmail()).append(">")
+                               .append("<").append(getEmail(u)).append(">")
                                .toString();
        }
        
@@ -439,6 +446,7 @@ public class MessagesContactsPanel exten
                        protected void onEvent(AjaxRequestTarget target) {
                                //TODO weird, need to be reviewed
                                
getBean(PrivateMessagesDao.class).updatePrivateMessagesToTrash(selectedMessages,
 false, 0L);
+                               selectFolder(selectedFolder, 
selectedModel.getObject(), target);
                        }
                }));
                buttons.add(deleteBtn.add(new AjaxEventBehavior("click") {
@@ -507,7 +515,11 @@ public class MessagesContactsPanel exten
 
                        @Override
                        protected void onUpdate(AjaxRequestTarget target) {
-                               
+                               long folderId = 
moveDropDown.getModelObject().getPrivateMessageFolderId();
+                               if (folderId != MOVE_CHOOSE) {
+                                       
getBean(PrivateMessagesDao.class).moveMailsToFolder(selectedMessages, folderId);
+                               }
+                               selectFolder(selectedFolder, 
selectedModel.getObject(), target);
                        }
                }));
                


Reply via email to