Author: solomax
Date: Wed Jul 10 06:21:43 2013
New Revision: 1501655
URL: http://svn.apache.org/r1501655
Log:
[OPENMEETINGS-615] Messages are selectable and displayable
Modified:
openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
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/WebContent/openmeetings/css/theme.css
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css?rev=1501655&r1=1501654&r2=1501655&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
(original)
+++ openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css Wed
Jul 10 06:21:43 2013
@@ -876,4 +876,7 @@ select.messages.selector {
top: -9999px;
width: 1px;
height: 1px;
-}
\ No newline at end of file
+}
+#messagesTable tr.selected {
+ background-color: #d7ebf9;
+}
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=1501655&r1=1501654&r2=1501655&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
Wed Jul 10 06:21:43 2013
@@ -37,16 +37,15 @@
</div>
</td>
<td class="main">
- <div>
<div><b><wicket:ommessage
key="1206"/> (<span wicket:id="unread"></span>)</b></div>
<div wicket:id="navigator"></div>
<table id="messagesTable" style="width: 100%;">
<thead>
<tr>
- <th><span
wicket:id="orderById"></span><wicket:ommessage key="1205"/></th>
- <th><span
wicket:id="orderByFrom"></span><wicket:ommessage key="1202"/></th>
- <th><span
wicket:id="orderBySubject"></span><wicket:ommessage key="1203"/></th>
- <th><span
wicket:id="orderBySend"></span><wicket:ommessage key="1204"/></th>
+ <th align="left"><span
wicket:id="orderById"></span><wicket:ommessage key="1205"/></th>
+ <th align="left"><span
wicket:id="orderByFrom"></span><wicket:ommessage key="1202"/></th>
+ <th align="left"><span
wicket:id="orderBySubject"></span><wicket:ommessage key="1203"/></th>
+ <th align="left"><span
wicket:id="orderBySend"></span><wicket:ommessage key="1204"/></th>
</tr>
</thead>
<tbody wicket:id="container"
style="background-color: white;">
@@ -58,6 +57,29 @@
</tr>
</tbody>
</table>
+ <div>
+
<select><option>[stab]select</option></select>
+ <input 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>
+ </div>
+ <div wicket:id="selectedMessage">
+ <table style="width: 100%">
+ <tr>
+ <td style="width: 10px;
padding-right: 20px;"><wicket:ommessage key="1202"/></td>
+ <td
wicket:id="from"></td>
+ </tr>
+ <tr>
+ <td style="width: 10px;
padding-right: 20px;"><wicket:ommessage key="1210"/></td>
+ <td wicket:id="to"></td>
+ </tr>
+ <tr>
+ <td style="width: 10px;
padding-right: 20px;"><wicket:ommessage key="1211"/></td>
+ <td
wicket:id="subj"></td>
+ </tr>
+ </table>
+ <div style="background-color:
white;min-height: 300px;" wicket:id="body"></div>
</div>
</td>
<td class="side right">
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=1501655&r1=1501654&r2=1501655&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
Wed Jul 10 06:21:43 2013
@@ -22,8 +22,10 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.apache.openmeetings.data.user.dao.PrivateMessageFolderDao;
import org.apache.openmeetings.data.user.dao.PrivateMessagesDao;
@@ -38,6 +40,7 @@ import org.apache.openmeetings.web.commo
import org.apache.openmeetings.web.data.DataViewContainer;
import org.apache.openmeetings.web.data.OmOrderByBorder;
import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
@@ -71,8 +74,10 @@ public class MessagesContactsPanel exten
private final WebMarkupContainer inbox = new
WebMarkupContainer("inbox");
private final WebMarkupContainer sent = new WebMarkupContainer("sent");
private final WebMarkupContainer trash = new
WebMarkupContainer("trash");
+ private final WebMarkupContainer selectedMessage = new
WebMarkupContainer("selectedMessage");
private final MessageDialog newMessage;
private final DataViewContainer<PrivateMessage> dataContainer;
+ private final Set<Long> selectedMessages = new HashSet<Long>();
private void setDefaultFolderClass() {
inbox.add(AttributeAppender.replace("class", "email inbox
clickable"));
@@ -91,6 +96,17 @@ public class MessagesContactsPanel exten
}
}
+ 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("subj", msg == null ? ""
: msg.getSubject()));
+ selectedMessage.addOrReplace(new Label("body", msg == null ? ""
: msg.getMessage()));
+ if (target != null) {
+ target.add(selectedMessage);
+ }
+ }
+
private void selectFolder(WebMarkupContainer folder, long id,
AjaxRequestTarget target) {
selectedModel.setObject(id);
setDefaultFolderClass();
@@ -261,10 +277,28 @@ public class MessagesContactsPanel exten
@Override
protected void populateItem(Item<PrivateMessage> item) {
PrivateMessage m = item.getModelObject();
+ final long id = m.getPrivateMessageId();
item.add(new Label("id",
m.getPrivateMessageId()));
item.add(new Label("from",
getDisplayName(m.getFrom())));
item.add(new Label("subject", m.getSubject()));
item.add(new Label("send",
getDateFormat().format(m.getInserted())));
+ item.add(new AjaxEventBehavior("click") {
+ private static final long
serialVersionUID = 1L;
+
+ @Override
+ protected void
onEvent(AjaxRequestTarget target) {
+ long selected = id;
+ if
(selectedMessages.contains(id)) {
+
selectedMessages.remove(id);
+ selected =
selectedMessages.isEmpty() ? -1 : selectedMessages.iterator().next();
+ } else {
+
selectedMessages.add(id);
+ }
+ selectMessage(selected, target);
+ target.add(container);
+ }
+ });
+ item.add(AttributeModifier.replace("class",
selectedMessages.contains(id) ? "selected" : ""));
}
};
PagedEntityListPanel navigator = new
PagedEntityListPanel("navigator", dv) {
@@ -272,6 +306,8 @@ public class MessagesContactsPanel exten
@Override
protected void onEvent(AjaxRequestTarget target) {
+ selectedMessages.clear();
+ selectMessage(-1, target);
target.add(container);
}
};
@@ -291,5 +327,7 @@ public class MessagesContactsPanel exten
add(container.add(dv).setOutputMarkupId(true));
//TODO add valid autoupdate add(new
AjaxSelfUpdatingTimerBehavior(seconds(15)));
add(newMessage);
+ selectMessage(-1, null);
+ add(selectedMessage.setOutputMarkupId(true));
}
}