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 2015/12/02 19:52:33 UTC

svn commit: r1717669 [2/2] - in /openmeetings: branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/ branches/3.1.x/openmeetings-db/src/main/java...

Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java Wed Dec  2 18:52:32 2015
@@ -66,7 +66,8 @@ public class PrivateMessageFolderDao imp
 		return privateMessageFolderId;	
 	}
 	
-	public PrivateMessageFolder get(long id) {
+	@Override
+	public PrivateMessageFolder get(Long id) {
 		String hql = "select c from PrivateMessageFolder c where c.id = :id ";
 
 		TypedQuery<PrivateMessageFolder> query = em.createQuery(hql, PrivateMessageFolder.class); 
@@ -81,12 +82,14 @@ public class PrivateMessageFolderDao imp
 		return folder;
 	}
 
+	@Override
 	public List<PrivateMessageFolder> get(int start, int count) {
 		return em.createQuery("SELECT c FROM PrivateMessageFolder c ORDER BY c.id", PrivateMessageFolder.class)
 				.setFirstResult(start).setMaxResults(count)
 				.getResultList();
 	}
 
+	@Override
 	public PrivateMessageFolder update(PrivateMessageFolder folder, Long userId) {
 		if (folder.getId() == 0) {
 			em.persist(folder);
@@ -112,21 +115,25 @@ public class PrivateMessageFolderDao imp
 		return null;
 	}
 
+	@Override
 	public void delete(PrivateMessageFolder folder, Long userId) {
 		folder = em.find(PrivateMessageFolder.class, folder.getId());
 		em.remove(folder);
 	}
 
+	@Override
 	public List<PrivateMessageFolder> get(String search, int start, int count, String order) {
 		// TODO Auto-generated method stub
 		return null;
 	}
 
+	@Override
 	public long count() {
 		// TODO Auto-generated method stub
 		return 0;
 	}
 
+	@Override
 	public long count(String search) {
 		// TODO Auto-generated method stub
 		return 0;

Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java Wed Dec  2 18:52:32 2015
@@ -116,6 +116,7 @@ public class UserDao implements IDataPro
 		return user;
 	}
 
+	@Override
 	public List<User> get(int first, int count) {
 		TypedQuery<User> q = em.createNamedQuery("getNondeletedUsers", User.class);
 		q.setFirstResult(first);
@@ -161,12 +162,14 @@ public class UserDao implements IDataPro
 		return q.getResultList();
 	}
 	
+	@Override
 	public long count() {
 		// get all users
 		TypedQuery<Long> q = em.createNamedQuery("countNondeletedUsers", Long.class);
 		return q.getSingleResult();
 	}
 
+	@Override
 	public long count(String search) {
 		return count(search, false, -1);
 	}
@@ -202,6 +205,7 @@ public class UserDao implements IDataPro
 		return q.getResultList();
 	}
 
+	@Override
 	public User update(User u, Long userId) {
 		if (u.getGroupUsers() != null) {
 			for (GroupUser ou : u.getGroupUsers()) {
@@ -240,7 +244,8 @@ public class UserDao implements IDataPro
 		return u;
 	}
 	
-	public User get(long id) {
+	@Override
+	public User get(Long id) {
 		return get(id, false);
 	}
 	
@@ -269,6 +274,7 @@ public class UserDao implements IDataPro
 		return u;
 	}
 
+	@Override
 	public void delete(User u, Long userId) {
 		if (u != null && u.getId() != null) {
 			for (GroupUser ou : u.getGroupUsers()){

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java Wed Dec  2 18:52:32 2015
@@ -61,8 +61,16 @@ public abstract class BasePanel extends
 	/**
 	 * This method should be overridden to perform necessary cleanup: remove timers etc.
 	 * 
-	 * @param target
+	 * @param handler
 	 */
 	public void cleanup(IPartialPageRequestHandler handler) {
 	}
+	
+	/**
+	 * This method should be overridden to perform after "new message" dialog was closed.
+	 * 
+	 * @param handler
+	 */
+	public void onNewMessageClose(IPartialPageRequestHandler handler) {
+	}
 }

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html Wed Dec  2 18:52:32 2015
@@ -55,5 +55,7 @@
 	<div wicket:id="contents"><div wicket:id="child"></div></div>
 	<div wicket:id="chatPanel"></div>
 	<div wicket:id="aboutDialog"></div>
+	<div wicket:id="userInfoDialog"></div>
+	<div wicket:id="newMessageDialog"></div>
 </wicket:extend>
-</html>
\ No newline at end of file
+</html>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java Wed Dec  2 18:52:32 2015
@@ -23,10 +23,13 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.Application.removeOnlineUser;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
+import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getParam;
 import static org.apache.openmeetings.web.util.OmUrlFragment.CHILD_ID;
 import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_EDIT;
 import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
 import static org.apache.openmeetings.web.util.OmUrlFragment.getPanel;
+import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -34,6 +37,7 @@ import java.util.List;
 import org.apache.openmeetings.db.dao.basic.NavigationDao;
 import org.apache.openmeetings.db.entity.basic.Naviglobal;
 import org.apache.openmeetings.db.entity.basic.Navimain;
+import org.apache.openmeetings.db.entity.user.PrivateMessage;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.Client;
@@ -47,19 +51,27 @@ import org.apache.openmeetings.web.room.
 import org.apache.openmeetings.web.room.message.RoomMessage;
 import org.apache.openmeetings.web.user.AboutDialog;
 import org.apache.openmeetings.web.user.ChatPanel;
+import org.apache.openmeetings.web.user.profile.MessageDialog;
+import org.apache.openmeetings.web.user.profile.UserInfoDialog;
+import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.devutils.debugbar.DebugBar;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.link.ExternalLink;
 import org.apache.wicket.markup.html.panel.EmptyPanel;
+import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.protocol.ws.api.WebSocketBehavior;
 import org.apache.wicket.protocol.ws.api.message.ClosedMessage;
 import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
@@ -70,16 +82,21 @@ import org.red5.logging.Red5LoggerFactor
 import org.slf4j.Logger;
 import org.wicketstuff.urlfragment.UrlFragment;
 
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
 @AuthorizeInstantiation({"Admin", "Dashboard", "Room"})
 public class MainPage extends BaseInitedPage {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = Red5LoggerFactory.getLogger(MainPage.class, webAppRootKey);
+	private final static String PARAM_USER_ID = "userId";
 	private final MenuPanel menu;
 	private final WebMarkupContainer topLinks = new WebMarkupContainer("topLinks");
 	private final MarkupContainer contents;
 	private final AbstractAjaxTimerBehavior areaBehavior;
 	private final Component dev;
 	private final ChatPanel chat;
+	private final MessageDialog newMessage;
+	private final UserInfoDialog userInfo;
 	
 	public MainPage(PageParameters pp) {
 		super();
@@ -133,6 +150,66 @@ public class MainPage extends BaseInited
 		topLinks.add(new ExternalLink("bug", "https://issues.apache.org/jira/browse/OPENMEETINGS"));//FIXME hardcoded
 		
 		add(chat = new ChatPanel("chatPanel"));
+		add(newMessage = new MessageDialog("newMessageDialog", new CompoundPropertyModel<PrivateMessage>(new PrivateMessage())) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onOpen(IPartialPageRequestHandler handler) {
+				super.onOpen(handler);
+				setDefaultModelObject(new CompoundPropertyModel<PrivateMessage>(new PrivateMessage()));
+			}
+			
+			@Override
+			public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
+				BasePanel bp = getCurrentPanel();
+				if (send.equals(button) && bp != null) {
+					bp.onNewMessageClose(handler);
+				}
+			}
+		});
+		add(userInfo = new UserInfoDialog("userInfoDialog", newMessage));
+		add(new AbstractDefaultAjaxBehavior() {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void respond(AjaxRequestTarget target) {
+				userInfo.open(target, getParam(getComponent(), PARAM_USER_ID).toLong());
+			}
+			
+			@Override
+			public void renderHead(Component component, IHeaderResponse response) {
+				super.renderHead(component, response);
+				response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("showUserInfo", this, explicit(PARAM_USER_ID)), "showUserInfo")));
+			}
+		});
+		add(new AbstractDefaultAjaxBehavior() {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void respond(AjaxRequestTarget target) {
+				ContactsHelper.addUserToContactList(getParam(getComponent(), PARAM_USER_ID).toLong());
+			}
+			
+			@Override
+			public void renderHead(Component component, IHeaderResponse response) {
+				super.renderHead(component, response);
+				response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("addContact", this, explicit(PARAM_USER_ID)), "addContact")));
+			}
+		});
+		add(new AbstractDefaultAjaxBehavior() {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void respond(AjaxRequestTarget target) {
+				newMessage.reset(true).open(target, getParam(getComponent(), PARAM_USER_ID).toOptionalLong());
+			}
+			
+			@Override
+			public void renderHead(Component component, IHeaderResponse response) {
+				super.renderHead(component, response);
+				response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("privateMessage", this, explicit(PARAM_USER_ID)), "privateMessage")));
+			}
+		});
 		add(new WebSocketBehavior() {
 			private static final long serialVersionUID = 1L;
 
@@ -195,12 +272,20 @@ public class MainPage extends BaseInited
 		updateContents(f, handler, true);
 	}
 	
+	private BasePanel getCurrentPanel() {
+		Component prev = contents.get(CHILD_ID);
+		if (prev != null && prev instanceof BasePanel) {
+			return (BasePanel)prev;
+		}
+		return null;
+	}
+	
 	public void updateContents(OmUrlFragment f, IPartialPageRequestHandler handler, boolean updateFragment) {
 		BasePanel panel = getPanel(f.getArea(), f.getType());
 		if (panel != null) {
-			Component prev = contents.get(CHILD_ID);
-			if (prev != null && prev instanceof BasePanel) {
-				((BasePanel)prev).cleanup(handler);
+			BasePanel prev = getCurrentPanel();
+			if (prev != null) {
+				prev.cleanup(handler);
 			}
 			handler.add(contents.replace(panel));
 			if (updateFragment) {

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java Wed Dec  2 18:52:32 2015
@@ -29,6 +29,7 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getLanguage;
 import static org.apache.openmeetings.web.app.WebSession.getSid;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getParam;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -86,10 +87,6 @@ public class StartSharingEventBehavior e
 		getComponent().add(download);
 	}
 	
-	private String getParam(String name) {
-		return getComponent().getRequest().getRequestParameters().getParameterValue(name).toString();
-	}
-	
 	@Override
 	protected void respond(AjaxRequestTarget target) {
 		//TODO deny download in case other screen sharing is in progress
@@ -101,14 +98,14 @@ public class StartSharingEventBehavior e
 			URL url = new URL(baseUrl);
 			Room room = getBean(RoomDao.class).get(roomId);
 			SessionManager sessionManager = getBean(SessionManager.class);
-			Client rc = sessionManager.getClientByPublicSID(getParam(PARAM_PUBLIC_SID), null);//TODO not necessary
+			Client rc = sessionManager.getClientByPublicSID(getParam(getComponent(), PARAM_PUBLIC_SID).toString(), null);//TODO not necessary
 			String path = url.getPath();
 			path = path.substring(1, path.indexOf('/', 2) + 1);
-			String port = getParam(PARAM_PORT);
+			String port = getParam(getComponent(), PARAM_PORT).toString();
 			if (Strings.isEmpty(port)) {
 				cfgDao.getConfValue(CONFIG_FLASH_PORT, String.class, "");
 			}
-			String _protocol = getParam(PARAM_PROTOCOL);
+			String _protocol = getParam(getComponent(), PARAM_PROTOCOL).toString();
 			if (Strings.isEmpty(_protocol)) {
 				_protocol = cfgDao.getConfValue(CONFIG_FLASH_PROTOCOL, String.class, "");
 			}

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java Wed Dec  2 18:52:32 2015
@@ -80,7 +80,7 @@ public class MessageDialog extends Abstr
 	private static final long serialVersionUID = 1L;
 	private final Form<PrivateMessage> form;
 	private final KendoFeedbackPanel feedback = new KendoFeedbackPanel("feedback", new Options("button", true));
-	DialogButton send = new DialogButton("send", Application.getString(218));
+	protected DialogButton send = new DialogButton("send", Application.getString(218));
 	private DialogButton cancel = new DialogButton("cancel", Application.getString(219));
 	private final WebMarkupContainer roomParamsBlock = new WebMarkupContainer("roomParamsBlock");
 	private final WebMarkupContainer roomParams = new WebMarkupContainer("roomParams");
@@ -94,7 +94,7 @@ public class MessageDialog extends Abstr
 		return 650;
 	}
 	
-	public void open(IPartialPageRequestHandler handler, long userId) {
+	public void open(IPartialPageRequestHandler handler, Long userId) {
 		getModelObject().setTo(getBean(UserDao.class).get(userId));
 		open(handler);
 	}

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html Wed Dec  2 18:52:32 2015
@@ -24,7 +24,7 @@
 	<table class="messages">
 		<tr>
 			<td class="side left">
-				<div class="email new clickable" wicket:id="new" wicket:message="title:1208"><wicket:message key="1207"/></div>
+				<div class="email new clickable" onclick="privateMessage();" wicket:message="title:1208"><wicket:message key="1207"/></div>
 				<div wicket:id="folders">
 					<div wicket:id="inbox"><wicket:message key="1222"/></div>
 					<div wicket:id="sent"><wicket:message key="1223"/></div>
@@ -120,7 +120,5 @@
 		</tr>
 	</table>
 	<div wicket:id="addFolder"></div>
-	<div wicket:id="newMessage"></div>
-	<div wicket:id="infoDialog"></div>
 </wicket:panel>
 </html>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java Wed Dec  2 18:52:32 2015
@@ -73,7 +73,6 @@ import org.apache.wicket.markup.html.lis
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.markup.repeater.data.IDataProvider;
-import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.util.ListModel;
@@ -81,7 +80,6 @@ import org.apache.wicket.model.util.List
 import com.googlecode.wicket.jquery.core.JQueryBehavior;
 import com.googlecode.wicket.jquery.core.Options;
 import com.googlecode.wicket.jquery.ui.plugins.fixedheadertable.FixedHeaderTableBehavior;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
 
 import ro.fortsoft.wicket.dashboard.web.util.ConfirmAjaxCallListener;
 
@@ -107,7 +105,6 @@ public class MessagesContactsPanel exten
 	private final WebMarkupContainer roomContainer = new WebMarkupContainer("roomContainer");
 	private final WebMarkupContainer buttons = new WebMarkupContainer("buttons");
 	private final WebMarkupContainer contacts = new WebMarkupContainer("contacts");
-	private final MessageDialog newMessage;
 	private final DataViewContainer<PrivateMessage> dataContainer;
 	private final Set<Long> selectedMessages = new HashSet<Long>();
 	private final Set<Long> allMessages = new HashSet<Long>();
@@ -263,16 +260,6 @@ public class MessagesContactsPanel exten
 		NOT_MOVE_FOLDER.setFolderName(Application.getString(1243));
 		foldersModel.setObject(getBean(PrivateMessageFolderDao.class).get(0, Integer.MAX_VALUE));
 		updateMoveModel();
-		add(newMessage = new MessageDialog("newMessage", new CompoundPropertyModel<PrivateMessage>(new PrivateMessage())) {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
-				if (send.equals(button)) {
-					handler.add(container);
-				}
-			}
-		});
 		
 		final AddFolderDialog addFolder = new AddFolderDialog("addFolder") {
 			private static final long serialVersionUID = 1L;
@@ -288,14 +275,7 @@ public class MessagesContactsPanel exten
 			}
 		};
 		add(addFolder);
-		add(new WebMarkupContainer("new").add(new AjaxEventBehavior("click") {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			protected void onEvent(AjaxRequestTarget target) {
-				newMessage.reset(true).open(target);
-			}
-		}).add(new JQueryBehavior(".email.new", "button")));
+		add(new JQueryBehavior(".email.new", "button"));
 		folders.add(inbox.add(new AjaxEventBehavior("click") {
 			private static final long serialVersionUID = 1L;
 
@@ -556,7 +536,6 @@ public class MessagesContactsPanel exten
 				return Model.of(object);
 			}
 		};
-		final UserInfoDialog d = new UserInfoDialog("infoDialog", newMessage);
 		final DataView<UserContact> dw = new DataView<UserContact>("users", dp) {
 			private static final long serialVersionUID = 1L;
 
@@ -591,22 +570,8 @@ public class MessagesContactsPanel exten
 						updateContacts(target);
 					}
 				}).setVisible(uc.isPending()));
-				item.add(new WebMarkupContainer("view").add(new AjaxEventBehavior("click") {
-					private static final long serialVersionUID = 1L;
-
-					@Override
-					protected void onEvent(AjaxRequestTarget target) {
-						d.open(target, userId);
-					}
-				}));
-				item.add(new WebMarkupContainer("message").add(new AjaxEventBehavior("click") {
-					private static final long serialVersionUID = 1L;
-
-					@Override
-					protected void onEvent(AjaxRequestTarget target) {
-						newMessage.reset(true).open(target, userId);
-					}
-				}).setVisible(!uc.isPending()));
+				item.add(new WebMarkupContainer("view").add(AttributeAppender.append("onclick", String.format("showUserInfo(%s);", userId))));
+				item.add(new WebMarkupContainer("message").add(AttributeAppender.append("onclick", String.format("privateMessage(%s);", userId))).setVisible(!uc.isPending()));
 				item.add(new WebMarkupContainer("delete").add(new AjaxEventBehavior("click") {
 					private static final long serialVersionUID = 1L;
 
@@ -619,7 +584,7 @@ public class MessagesContactsPanel exten
 			}
 		};
 		updateContacts(null);
-		add(d, contacts.add(dw, pendingContacts, allContacts).setOutputMarkupId(true));//TODO update
+		add(contacts.add(dw, pendingContacts, allContacts).setOutputMarkupId(true));//TODO update
 		
 		//hack to add FixedHeaderTable after Tabs.
 		add(new AbstractDefaultAjaxBehavior() {
@@ -640,6 +605,11 @@ public class MessagesContactsPanel exten
 	}
 
 	@Override
+	public void onNewMessageClose(IPartialPageRequestHandler handler) {
+		handler.add(container);
+	}
+	
+	@Override
 	protected void onDetach() {
 		foldersModel.detach();
 		selectedFolderModel.detach();

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html Wed Dec  2 18:52:32 2015
@@ -32,7 +32,7 @@
 					<div><wicket:message key="1178"/></div>
 					<input type="text" wicket:id="search"/><br/>
 					<br/>
-					<input type="submit" wicket:message="value:1176"/>
+					<button wicket:id="submit" type="button"><wicket:message key="1176"/></button>
 				</form>
 			</td>
 			<td valign="top">
@@ -64,7 +64,5 @@
 			</td>
 		</tr>
 	</table>
-	<div wicket:id="infoDialog"></div>
-	<div wicket:id="newMessage"></div>
 </wicket:panel>
 </html>
\ No newline at end of file

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java Wed Dec  2 18:52:32 2015
@@ -29,16 +29,13 @@ import java.util.List;
 
 import org.apache.openmeetings.db.dao.user.UserContactDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.user.PrivateMessage;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.web.common.PagingNavigatorPanel;
 import org.apache.openmeetings.web.common.UserPanel;
-import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.wicket.AttributeModifier;
-import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
+import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
@@ -52,8 +49,8 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.PropertyModel;
 
 import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
 import com.googlecode.wicket.jquery.ui.plugins.fixedheadertable.FixedHeaderTableBehavior;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
 
 public class UserSearchPanel extends UserPanel {
 	private static final long serialVersionUID = 1L;
@@ -64,7 +61,6 @@ public class UserSearchPanel extends Use
 	private String orderBy = "u.firstname";
 	private boolean asc = true;
 	private boolean searched = false;
-	private final MessageDialog newMessage;
 	private final WebMarkupContainer container = new WebMarkupContainer("container");
 	private final FixedHeaderTableBehavior fixedHeader = new FixedHeaderTableBehavior("#searchUsersTable", new Options("height", 400));
 
@@ -81,27 +77,17 @@ public class UserSearchPanel extends Use
 				add(new TextField<String>("text", new PropertyModel<String>(UserSearchPanel.this, "text")));
 				add(new TextField<String>("offer", new PropertyModel<String>(UserSearchPanel.this, "offer")));
 				add(new TextField<String>("search", new PropertyModel<String>(UserSearchPanel.this, "search")));
-				add(new AjaxFormSubmitBehavior(this, "submit") {
+				add(new AjaxButton("submit") {
 					private static final long serialVersionUID = 1L;
 
 					@Override
-					protected void onSubmit(AjaxRequestTarget target) {
+					protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
 						searched = true;
 						refresh(target);
 					}
 				});
 			}
 		});
-		add(newMessage = new MessageDialog("newMessage", new CompoundPropertyModel<PrivateMessage>(new PrivateMessage())) {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
-				if (send.equals(button)) {
-					refresh(handler);
-				}
-			}
-		});
 		IDataProvider<User> dp = new IDataProvider<User>() {
 			private static final long serialVersionUID = 1L;
 
@@ -122,8 +108,7 @@ public class UserSearchPanel extends Use
 			}
 			
 		};
-		final UserInfoDialog d = new UserInfoDialog("infoDialog", newMessage);
-		final DataView<User> dv = new DataView<User>("users", dp) {
+		final DataView<User> dw = new DataView<User>("users", dp) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -136,36 +121,15 @@ public class UserSearchPanel extends Use
 				item.add(new Label("tz", getBean(TimezoneUtil.class).getTimeZone(u).getID()));
 				item.add(new Label("offer", u.getUserOffers()));
 				item.add(new Label("search", u.getUserSearchs()));
-				item.add(new WebMarkupContainer("view").add(new AjaxEventBehavior("click") {
-					private static final long serialVersionUID = 1L;
-
-					@Override
-					protected void onEvent(AjaxRequestTarget target) {
-						d.open(target, userId);
-					}
-				}));
-				item.add(new WebMarkupContainer("add").add(new AjaxEventBehavior("click") {
-					private static final long serialVersionUID = 1L;
-
-					@Override
-					protected void onEvent(AjaxRequestTarget target) {
-						ContactsHelper.addUserToContactList(userId);
-						refresh(target);
-					}
-				}).setVisible(userId != getUserId() && !contactsDao.isContact(userId, getUserId())));
-				item.add(new WebMarkupContainer("message").add(new AjaxEventBehavior("click") {
-					private static final long serialVersionUID = 1L;
-
-					@Override
-					protected void onEvent(AjaxRequestTarget target) {
-						newMessage.reset(true).open(target, userId);
-					}
-				})).setVisible(userId != getUserId());
+				item.add(new WebMarkupContainer("view").add(AttributeAppender.append("onclick", String.format("showUserInfo(%s);", userId))));
+				item.add(new WebMarkupContainer("add").setVisible(userId != getUserId() && !contactsDao.isContact(userId, getUserId()))
+						.add(AttributeAppender.append("onclick", String.format("addContact(%s);", userId))));
+				item.add(new WebMarkupContainer("message").setVisible(userId != getUserId()).add(AttributeAppender.append("onclick", String.format("privateMessage(%s);", userId))));
 				//item.add(new TooltipBehavior(new Options("content", "TODO:: Picture will be displayed"))); //FIXME 
 			}
 		};
 
-		add(d, container.add(dv, new PagingNavigatorPanel("navigator", dv, itemsPerPage, 100) {
+		add(container.add(dw, new PagingNavigatorPanel("navigator", dw, itemsPerPage, 100) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -178,5 +142,9 @@ public class UserSearchPanel extends Use
 	private String getName(User u) {
 		return "" + u.getFirstname() + " " + u.getLastname() + " [" + u.getLogin() + "]"; //FIXME salutation
 	}
-
+	
+	@Override
+	public void onNewMessageClose(IPartialPageRequestHandler handler) {
+		refresh(handler);
+	}
 }

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java Wed Dec  2 18:52:32 2015
@@ -16,11 +16,12 @@
  */
 package org.apache.openmeetings.web.util;
 
+import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.attributes.CallbackParameter;
+import org.apache.wicket.util.string.StringValue;
 
 public class CallbackFunctionHelper {
-	
 	public static StringBuilder getNamedFunction(String name, AbstractDefaultAjaxBehavior b, CallbackParameter... extraParameters) {
 		StringBuilder sb = new StringBuilder();
 		sb.append("function ").append(name).append("(");
@@ -41,4 +42,8 @@ public class CallbackFunctionHelper {
 		sb.append("}\n");
 		return sb;
 	}
+
+	public static StringValue getParam(Component cmp, String name) {
+		return cmp.getRequest().getRequestParameters().getParameterValue(name);
+	}
 }