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"/>&nbsp;(<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));
 	}
 }