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/06/04 12:24:23 UTC

svn commit: r1489371 - in /openmeetings/trunk/singlewebapp: ./ src/org/apache/openmeetings/utils/ src/org/apache/openmeetings/web/user/profile/

Author: solomax
Date: Tue Jun  4 10:24:23 2013
New Revision: 1489371

URL: http://svn.apache.org/r1489371
Log:
[OPENMEETINGS-615] Basic "new message" dialog is added (incomplete, broken)

Added:
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.html
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.java
Modified:
    openmeetings/trunk/singlewebapp/ivy.xml
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.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/ivy.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/ivy.xml?rev=1489371&r1=1489370&r2=1489371&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/ivy.xml (original)
+++ openmeetings/trunk/singlewebapp/ivy.xml Tue Jun  4 10:24:23 2013
@@ -256,16 +256,16 @@
 		<dependency org="org.apache.wicket" name="wicket-native-websocket-tomcat" rev="0.9" conf="openmeetings->*" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-core" rev="6.8.0" conf="openmeetings->*" transitive="false">
+		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-core" rev="6.8.1" conf="openmeetings->*" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui" rev="6.8.0" conf="openmeetings->*" transitive="false">
+		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui" rev="6.8.1" conf="openmeetings->*" transitive="false">
             <include type="jar" />
         </dependency>
-		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-calendar" rev="6.8.0" conf="openmeetings->*" transitive="false">
+		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-calendar" rev="6.8.1" conf="openmeetings->*" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-plugins" rev="6.8.0" conf="openmeetings->*" transitive="false">
+		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-plugins" rev="6.8.1" conf="openmeetings->*" transitive="false">
 			<include type="jar" />
 		</dependency>
 		<dependency org="ro.fortsoft.wicket.dashboard" name="wicket-dashboard-core" rev="0.8" conf="openmeetings->*" transitive="false">

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java?rev=1489371&r1=1489370&r2=1489371&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java Tue Jun  4 10:24:23 2013
@@ -25,6 +25,7 @@ public class DaoHelper {
 	public static String getSearchQuery(String table, String alias, String search, boolean filterDeleted, boolean count, String sort, String... fields) {
 		return getSearchQuery(table, alias, search, filterDeleted, count, null, sort, fields);
 	}
+	
 	public static String getSearchQuery(String table, String alias, String search, boolean filterDeleted, boolean count, String additionalWhere, String sort, String... fields) {
 		StringBuilder sb = new StringBuilder("SELECT ");
 		if (count) {

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.html?rev=1489371&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.html (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.html Tue Jun  4 10:24:23 2013
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<form wicket:id="form">
+		<table style="width: 100%;">
+			<tr>
+				<td><wicket:ommessage key="1210"/></td>
+				<td><input type="text" wicket:id="to"/></td>
+			</tr>
+			<tr>
+				<td><wicket:ommessage key="1211"/></td>
+				<td><input type="text" wicket:id="subject"/></td>
+			</tr>
+			<tr>
+				<td colspan="2"><textarea wicket:id="message" style="width: 100%; height: 300px;"></textarea></td>
+			</tr>
+			<tr>
+				<td colspan="2"><input type="checkbox" wicket:id="room" /><label wicket:for="room"><wicket:ommessage key="1218"/></label></td>
+			</tr>
+			<tr wicket:id="roomParams">
+				<td colspan="2">
+					<table style="width: 100%">
+						<tr>
+							<td style="width: 70px;">
+								<table>
+									<tr>
+										<td><wicket:ommessage key="194"/></td>
+										<td><select wicket:id="roomType"></select></td>
+									</tr>
+									<tr>
+										<td><wicket:ommessage key="570" /></td>
+										<td><span wicket:id="start"></span></td>
+									</tr>
+									<tr>
+										<td><wicket:ommessage key="571" /></td>
+										<td><span wicket:id="end"></span></td>
+									</tr>
+								</table>
+							</td>
+							<td><div class="info-icon"></div><span style="font-style: italic;"><wicket:ommessage key="1221" /></span></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</form>
+</wicket:panel>
+</html>
\ No newline at end of file

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.java?rev=1489371&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.java Tue Jun  4 10:24:23 2013
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.profile;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.data.user.dao.UsersDao;
+import org.apache.openmeetings.persistence.beans.user.PrivateMessage;
+import org.apache.openmeetings.persistence.beans.user.User;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.CheckBox;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextArea;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import com.googlecode.wicket.jquery.core.renderer.ITextRenderer;
+import com.googlecode.wicket.jquery.ui.form.autocomplete.AutoCompleteTextField;
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class MessageDialog extends AbstractFormDialog<PrivateMessage> {
+	private static final long serialVersionUID = 1L;
+	private final Form<PrivateMessage> form;
+	private DialogButton send = new DialogButton(WebSession.getString(218));
+	private DialogButton cancel = new DialogButton(WebSession.getString(219));
+	private final WebMarkupContainer roomParams = new WebMarkupContainer("roomParams");
+
+	public MessageDialog(String id, IModel<PrivateMessage> model) {
+		super(id, WebSession.getString(1209), model);
+		form = new Form<PrivateMessage>("form", getModel());
+		
+		form.add(new AutoCompleteTextField<User>("to", new UserTextRenderer()) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected List<User> getChoices(String input) {
+				return getBean(UsersDao.class).get(input, 0, 10, null);
+			}
+		});
+		form.add(new TextField<String>("subject"));
+		form.add(new TextArea<String>("message"));
+		form.add(roomParams.setOutputMarkupId(true));
+		form.add(new CheckBox("room", Model.of(getModelObject().getRoom() != null)).add(new AjaxEventBehavior("click") {
+			private static final long serialVersionUID = 1L;
+			boolean val = false;
+			
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				target.add(roomParams.setVisible(val = !val));
+			}
+		}));
+		roomParams.add(new WebMarkupContainer("roomType"));
+		roomParams.add(new WebMarkupContainer("start"));
+		roomParams.add(new WebMarkupContainer("end"));
+		add(form);
+	}
+
+	@Override
+	protected List<DialogButton> getButtons() {
+		return Arrays.asList(send, cancel);
+	}
+	
+	@Override
+	protected DialogButton getSubmitButton() {
+		return send;
+	}
+
+	@Override
+	public Form<PrivateMessage> getForm() {
+		return form;
+	}
+
+	@Override
+	protected void onError(AjaxRequestTarget target) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	protected void onSubmit(AjaxRequestTarget target) {
+		// TODO Auto-generated method stub
+
+	}
+
+	private static class UserTextRenderer implements ITextRenderer<User> {
+		private static final long serialVersionUID = 1L;
+
+		public String getText(User u) {
+			return u == null ? "" : String.format("%s %s <%s>", u.getFirstname(), u.getLastname(), u.getAdresses().getEmail());
+		}
+		
+		public String getText(User u, String expression) {
+			return getText(u);
+		}
+	}
+}

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=1489371&r1=1489370&r2=1489371&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 Tue Jun  4 10:24:23 2013
@@ -69,5 +69,6 @@
 		</tr>
 	</table>
 	<div wicket:id="addFolder"></div>
+	<div wicket:id="newMessage"></div>
 </wicket:panel>
 </html>

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=1489371&r1=1489370&r2=1489371&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 Tue Jun  4 10:24:23 2013
@@ -69,6 +69,7 @@ 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 MessageDialog newMessage = new MessageDialog("newMessage", Model.of(new PrivateMessage()));
 	
 	private void setDefaultFolderClass() {
 		inbox.add(AttributeAppender.replace("class", "email inbox clickable"));
@@ -126,6 +127,8 @@ public class MessagesContactsPanel exten
 
 			@Override
 			protected void onEvent(AjaxRequestTarget target) {
+				newMessage.setModelObject(new PrivateMessage());
+				newMessage.open(target);
 			}
 		}).add(new JQueryBehavior(".email.new", "button")));
 		folders.add(inbox.add(new AjaxEventBehavior("click") {
@@ -268,6 +271,6 @@ public class MessagesContactsPanel exten
 		
 		add(container.add(dv).setOutputMarkupId(true));
 		container.add(new AjaxSelfUpdatingTimerBehavior(seconds(15)));
+		add(newMessage);
 	}
-	
 }