You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2013/07/10 08:21:43 UTC
svn commit: r1501655 - in /openmeetings/trunk/singlewebapp:
WebContent/openmeetings/css/theme.css
src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
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));
}
}