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);