Author: solomax
Date: Fri Jul 12 02:35:06 2013
New Revision: 1502409

URL: http://svn.apache.org/r1502409
Log:
[OPENMEETINGS-615] Delete messages 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.html
    
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=1502409&r1=1502408&r2=1502409&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
 Fri Jul 12 02:35:06 2013
@@ -20,6 +20,7 @@ package org.apache.openmeetings.data.use
 
 import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
 
+import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 
@@ -465,7 +466,7 @@ public class PrivateMessagesDao implemen
                return null;
        }
 
-       public int updatePrivateMessagesToTrash(List<Long> privateMessageIds, 
Boolean isTrash, Long privateMessageFolderId) {
+       public int updatePrivateMessagesToTrash(Collection<Long> 
privateMessageIds, Boolean isTrash, Long privateMessageFolderId) {
                try {
                        Query query = 
em.createNamedQuery("updatePrivateMessagesToTrash"); 
                        query.setParameter("isTrash", isTrash);
@@ -539,7 +540,7 @@ public class PrivateMessagesDao implemen
                return -1;
        }
        
-       public int deletePrivateMessages(List<Long> privateMessageIds) {
+       public int deletePrivateMessages(Collection<Long> privateMessageIds) {
                try {
                        Query query = 
em.createNamedQuery("deletePrivateMessages"); 
                        query.setParameter("privateMessageIds", 
privateMessageIds);

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html?rev=1502409&r1=1502408&r2=1502409&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
 Fri Jul 12 02:35:06 2013
@@ -59,7 +59,7 @@
                                </table>
                                <div>
                                        
<select><option>[stab]select</option></select>
-                                       <input type="button" 
wicket:ommessage="value:1245"/>
+                                       <input wicket:id="delete" type="button" 
wicket:ommessage="value:1245"/>
                                        <input type="button" 
wicket:ommessage="value:1248"/>
                                        <input type="button" 
wicket:ommessage="value:1247"/>
                                        
<select><option>[stab]move</option></select>

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=1502409&r1=1502408&r2=1502409&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
 Fri Jul 12 02:35:06 2013
@@ -47,6 +47,7 @@ import org.apache.wicket.ajax.attributes
 import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Button;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.repeater.Item;
@@ -78,6 +79,7 @@ public class MessagesContactsPanel exten
        private final MessageDialog newMessage;
        private final DataViewContainer<PrivateMessage> dataContainer;
        private final Set<Long> selectedMessages = new HashSet<Long>();
+       private final Button deleteBtn = new Button("delete");
        
        private void setDefaultFolderClass() {
                inbox.add(AttributeAppender.replace("class", "email inbox 
clickable"));
@@ -103,7 +105,7 @@ public class MessagesContactsPanel exten
                selectedMessage.addOrReplace(new Label("subj", msg == null ? "" 
: msg.getSubject()));
                selectedMessage.addOrReplace(new Label("body", msg == null ? "" 
: msg.getMessage()));
                if (target != null) {
-                       target.add(selectedMessage);
+                       target.add(selectedMessage, 
deleteBtn.setEnabled(!selectedMessages.isEmpty()));
                }
        }
        
@@ -111,8 +113,8 @@ public class MessagesContactsPanel exten
                selectedModel.setObject(id);
                setDefaultFolderClass();
                selectFolder(folder);
-               selectedMessages.clear();
-               selectMessage(-1, target);
+               emptySelection(target);
+               deleteBtn.add(AttributeModifier.replace("value", 
WebSession.getString(TRASH_FOLDER_ID == id ? 1256 : 1245)));
                container.add(new FixedHeaderTableBehavior("#messagesTable", 
new Options("height", 100)));
                
unread.setDefaultModelObject(getBean(PrivateMessagesDao.class).count(getUserId(),
 null, false, false));
                if (target != null) {
@@ -122,6 +124,11 @@ public class MessagesContactsPanel exten
                }
        }
        
+       private void emptySelection(AjaxRequestTarget target) {
+               selectedMessages.clear();
+               selectMessage(-1, target);
+       }
+       
        private String getDisplayName(User u) {
                return new StringBuilder().append(u.getFirstname()).append(" ")
                                .append(u.getLastname()).append(" ")
@@ -308,8 +315,7 @@ public class MessagesContactsPanel exten
 
                        @Override
                        protected void onEvent(AjaxRequestTarget target) {
-                               selectedMessages.clear();
-                               selectMessage(-1, target);
+                               emptySelection(target);
                                target.add(container);
                        }
                };
@@ -326,6 +332,21 @@ public class MessagesContactsPanel exten
                add(new WebMarkupContainer("pendingContacts"));//FIXME
                add(new WebMarkupContainer("na1"));//FIXME
                
+               
add(deleteBtn.setOutputMarkupId(true).setEnabled(!selectedMessages.isEmpty())
+                       .add(new AjaxEventBehavior("click") {
+                               private static final long serialVersionUID = 1L;
+       
+                               @Override
+                               protected void onEvent(AjaxRequestTarget 
target) {
+                                       if (TRASH_FOLDER_ID == 
selectedModel.getObject()) {
+                                               
getBean(PrivateMessagesDao.class).deletePrivateMessages(selectedMessages);
+                                       } else {
+                                               
getBean(PrivateMessagesDao.class).updatePrivateMessagesToTrash(selectedMessages,
 true, 0L);
+                                       }
+                                       emptySelection(target);
+                                       target.add(container);
+                               }
+                       }));
                add(container.add(dv).setOutputMarkupId(true));
                //TODO add valid autoupdate add(new 
AjaxSelfUpdatingTimerBehavior(seconds(15)));
                add(newMessage);


Reply via email to