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); + } }
