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/03 20:03:34 UTC
svn commit: r1717837 [1/2] - in /openmeetings:
branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/
branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/
branches/3.1.x/openmeetings-web/src/main/java/org/apache/openme...
Author: solomax
Date: Thu Dec 3 19:03:33 2015
New Revision: 1717837
URL: http://svn.apache.org/viewvc?rev=1717837&view=rev
Log:
[OPENMEETINGS-887] actions are added to the global chat
Added:
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.html
- copied, changed from r1717826, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
- copied, changed from r1717714, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.html
- copied unchanged from r1717712, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java
- copied, changed from r1717712, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/images/connect.png (with props)
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.html
- copied unchanged from r1717651, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
- copied, changed from r1717714, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.html
- copied unchanged from r1717651, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java
- copied, changed from r1717651, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/connect.png (with props)
Removed:
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java
Modified:
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html
openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/chat.css
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/forms.css
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/theme.css
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/chat.css
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/forms.css
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css
Modified: openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx (original)
+++ openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx Thu Dec 3 19:03:33 2015
@@ -1437,11 +1437,6 @@
canvas._drawarea.stopStreaming(value);
} else if (value.message=='roomClosed'){
canvas.roomClosed();
- } else if (value.message=='inviteToRoom'){
- if ($debug) Debug.write("Incoming Room Invitation ",value);
- } else if (value.message=='inviteToRoomAnswer'){
- if ($debug) Debug.write("Incoming Room inviteToRoomAnswer ",value);
- new lz.errorPopup(canvas, {error: value.usermessage});
} else {
if ($debug) Debug.warn("Unknown Event -newMessageByRoomAndDomain- ",value);
}
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Thu Dec 3 19:03:33 2015
@@ -67,6 +67,7 @@ import org.apache.openmeetings.web.util.
import org.apache.openmeetings.web.util.JpgRecordingResourceReference;
import org.apache.openmeetings.web.util.Mp4RecordingResourceReference;
import org.apache.openmeetings.web.util.OggRecordingResourceReference;
+import org.apache.openmeetings.web.util.ProfileImageResourceReference;
import org.apache.openmeetings.web.util.UserDashboardPersister;
import org.apache.wicket.Localizer;
import org.apache.wicket.Page;
@@ -154,6 +155,7 @@ public class Application extends Authent
mountResource("/recordings/mp4/${id}", new Mp4RecordingResourceReference());
mountResource("/recordings/ogg/${id}", new OggRecordingResourceReference());
mountResource("/recordings/jpg/${id}", new JpgRecordingResourceReference()); //should be in sync with VideoPlayer
+ mountResource("/profile/${id}", new ProfileImageResourceReference()); //should be in sync with VideoPlayer
}
private static class NoVersionMapper extends MountedMapper {
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java Thu Dec 3 19:03:33 2015
@@ -18,68 +18,24 @@
*/
package org.apache.openmeetings.web.common;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
-import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.util.ProfileImageResourceReference.getUrl;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.net.URI;
-
-import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.web.app.Application;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.image.Image;
-import org.apache.wicket.request.resource.ByteArrayResource;
-import org.apache.wicket.util.io.IOUtils;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
public class ProfileImagePanel extends BasePanel {
private static final long serialVersionUID = 1L;
- private static final Logger log = Red5LoggerFactory.getLogger(ProfileImagePanel.class, webAppRootKey);
protected final WebMarkupContainer profile;
public ProfileImagePanel(String id, final long userId) {
super(id);
profile = new TransparentWebMarkupContainer("profile");
- String uri = getBean(UserDao.class).get(userId).getPictureuri();
- boolean absolute = false;
- try {
- absolute = URI.create(uri).isAbsolute();
- } catch (Exception e) {
- //no-op
- }
- if (absolute) {
- profile.add(new WebMarkupContainer("img").add(AttributeModifier.append("alt", Application.getString(5L)), AttributeModifier.append("src", uri)));
- } else {
- profile.add(new Image("img", new ByteArrayResource("image/jpeg") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected ResourceResponse newResourceResponse(Attributes attributes) {
- ResourceResponse rr = super.newResourceResponse(attributes);
- rr.disableCaching();
- return rr;
- }
-
- @Override
- protected byte[] getData(Attributes attributes) {
- String uri = getBean(UserDao.class).get(userId).getPictureuri();
- File img = OmFileHelper.getUserProfilePicture(userId, uri);
- try (InputStream is = new FileInputStream(img)) {
- return IOUtils.toByteArray(is);
- } catch (Exception e) {
- log.error("failed to get bytes from image", e);
- }
- return null;
- }
- }));
- }
+ profile.add(new WebMarkupContainer("img").add(
+ AttributeModifier.append("alt", Application.getString(5L))
+ , AttributeModifier.append("src", getUrl(getRequestCycle(), userId))));
add(profile.setOutputMarkupId(true));
}
}
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html Thu Dec 3 19:03:33 2015
@@ -57,5 +57,6 @@
<div wicket:id="aboutDialog"></div>
<div wicket:id="userInfoDialog"></div>
<div wicket:id="newMessageDialog"></div>
+ <div wicket:id="inviteUserDialog"></div>
</wicket:extend>
</html>
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java Thu Dec 3 19:03:33 2015
@@ -50,8 +50,9 @@ import org.apache.openmeetings.web.commo
import org.apache.openmeetings.web.common.menu.MenuPanel;
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.user.InviteUserToRoomDialog;
+import org.apache.openmeetings.web.user.MessageDialog;
+import org.apache.openmeetings.web.user.UserInfoDialog;
import org.apache.openmeetings.web.util.ContactsHelper;
import org.apache.openmeetings.web.util.OmUrlFragment;
import org.apache.wicket.Component;
@@ -96,6 +97,7 @@ public class MainPage extends BaseInited
private final ChatPanel chat;
private final MessageDialog newMessage;
private final UserInfoDialog userInfo;
+ private final InviteUserToRoomDialog inviteUser;
public MainPage(PageParameters pp) {
super();
@@ -161,6 +163,7 @@ public class MainPage extends BaseInited
}
});
add(userInfo = new UserInfoDialog("userInfoDialog", newMessage));
+ add(inviteUser = new InviteUserToRoomDialog("inviteUserDialog"));
add(new AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@@ -221,6 +224,20 @@ public class MainPage extends BaseInited
log.debug("WebSocketBehavior::onClose");
}
});
+ add(new AbstractDefaultAjaxBehavior() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void respond(AjaxRequestTarget target) {
+ inviteUser.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("inviteUser", this, explicit(PARAM_USER_ID)), "inviteUser")));
+ }
+ });
//load preselected content
add(areaBehavior = new AbstractAjaxTimerBehavior(Duration.ONE_SECOND) {
private static final long serialVersionUID = 1L;
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java Thu Dec 3 19:03:33 2015
@@ -28,6 +28,7 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
+import static org.apache.openmeetings.web.util.ProfileImageResourceReference.getUrl;
import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
import java.util.ArrayList;
@@ -124,11 +125,11 @@ public class ChatPanel extends BasePanel
return o.put("scope", scope).put("scopeName", scopeName);
}
- public static JSONObject getMessage(List<ChatMessage> list) throws JSONException {
+ public JSONObject getMessage(List<ChatMessage> list) throws JSONException {
return getMessage(getUserId(), list);
}
- private static JSONObject getMessage(long curUserId, List<ChatMessage> list) throws JSONException {
+ private JSONObject getMessage(long curUserId, List<ChatMessage> list) throws JSONException {
JSONArray arr = new JSONArray();
for (ChatMessage m : list) {
String smsg = m.getMessage();
@@ -136,7 +137,12 @@ public class ChatPanel extends BasePanel
arr.put(setScope(new JSONObject(), m, curUserId)
.put("id", m.getId())
.put("message", smsg)
- .put("from", m.getFromUser().getFirstname() + " " + m.getFromUser().getLastname())
+ .put("from", new JSONObject()
+ .put("id", m.getFromUser().getId())
+ .put("name", m.getFromUser().getFirstname() + " " + m.getFromUser().getLastname())
+ .put("img", getUrl(getRequestCycle(), m.getFromUser().getId()))
+
+ )
.put("sent", getDateFormat().format(m.getSent())));
}
return new JSONObject()
Added: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html?rev=1717837&view=auto
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html (added)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html Thu Dec 3 19:03:33 2015
@@ -0,0 +1,30 @@
+<?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">
+ <textarea wicket:id="message" style="width: 100%; height: 100px;"></textarea>
+ <div>
+ <input type="checkbox" wicket:id="enterRoom" /><label wicket:for="enterRoom"><wicket:message key="1134"/></label>
+ </div>
+ </form>
+</wicket:panel>
+</html>
Added: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java?rev=1717837&view=auto
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java (added)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java Thu Dec 3 19:03:33 2015
@@ -0,0 +1,90 @@
+/*
+ * 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;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+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.model.Model;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class InviteUserMessageDialog extends AbstractFormDialog<String> {
+ private static final long serialVersionUID = 1L;
+ private final DialogButton send = new DialogButton("send", Application.getString(1139));
+ private final DialogButton cancel = new DialogButton("cancel", Application.getString(219));
+ private final Form<Void> form = new Form<Void>("form");
+ private final TextArea<String> message = new TextArea<>("message", Model.of(""));
+ private final CheckBox enterRoom = new CheckBox("enterRoom", Model.of(false));
+
+ public InviteUserMessageDialog(String id) {
+ super(id, Application.getString(1138));
+ add(form.add(message.setRequired(true), enterRoom).setOutputMarkupId(true));
+ }
+
+ public void open(IPartialPageRequestHandler handler, Long roomId, Long userId) {
+ Room r = getBean(RoomDao.class).get(roomId);
+ User u = getBean(UserDao.class).get(getUserId());
+ message.setModelObject(String.format("%s %s %s %s", u.getFirstname(), u.getLastname(), getString("1137"), r.getName()));
+ enterRoom.setModelObject(false);
+ handler.add(form);
+ open(handler);
+ }
+
+ @Override
+ protected List<DialogButton> getButtons() {
+ return Arrays.asList(send, cancel);
+ }
+
+ @Override
+ protected DialogButton getSubmitButton() {
+ return send;
+ }
+
+ @Override
+ public Form<?> 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
+
+ }
+}
Added: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html?rev=1717837&view=auto
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html (added)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html Thu Dec 3 19:03:33 2015
@@ -0,0 +1,34 @@
+<?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>
+ <div class="rooms desc info-text"><wicket:message key="1132"/></div>
+ <div class="rooms title"><wicket:message key="777"/></div>
+ <div class="room list container">
+ <div wicket:id="publicRooms"></div>
+ </div>
+ <div class="rooms title"><wicket:message key="779"/></div>
+ <div class="room list container">
+ <div wicket:id="privateRooms"></div>
+ </div>
+ <div wicket:id="inviteMsg"/>
+</wicket:panel>
+</html>
Added: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java?rev=1717837&view=auto
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java (added)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java Thu Dec 3 19:03:33 2015
@@ -0,0 +1,103 @@
+/*
+ * 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;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.GroupUser;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.user.rooms.RoomListPanel;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class InviteUserToRoomDialog extends AbstractDialog<String> {
+ private static final long serialVersionUID = 1L;
+ private DialogButton cancel = new DialogButton("cancel", Application.getString(219));
+ private final RoomListPanel publicRooms;
+ private final RoomListPanel privateRooms;
+ private final InviteUserMessageDialog inviteMsg = new InviteUserMessageDialog("inviteMsg");
+ private Long userId;
+
+ private class InviteRoomListPanel extends RoomListPanel {
+ private static final long serialVersionUID = 1L;
+
+ public InviteRoomListPanel(String id, List<Room> rooms, final String label) {
+ super(id, rooms, label);
+ }
+
+ @Override
+ public void onRoomEnter(AjaxRequestTarget target, Long roomId) {
+ //FIXME TODO only show message if other user is online
+ inviteMsg.open(target, roomId, userId);
+ }
+ }
+
+ public InviteUserToRoomDialog(String id) {
+ super(id, Application.getString(1131));
+ add(publicRooms = new InviteRoomListPanel("publicRooms", new ArrayList<Room>(), Application.getString(1135)));
+ add(privateRooms = new InviteRoomListPanel("privateRooms", new ArrayList<Room>(), Application.getString(1135)));
+ add(inviteMsg);
+ }
+
+ private List<Room> getPrivateRooms(Long userId1, Long userId2, RoomDao roomDao) {
+ List<Long> orgIds = new ArrayList<>();
+ List<Long> orgIds2 = new ArrayList<>();
+ UserDao userDao = getBean(UserDao.class);
+ for (GroupUser gu : userDao.get(userId1).getGroupUsers()) {
+ orgIds.add(gu.getGroup().getId());
+ }
+ for (GroupUser gu : userDao.get(userId2).getGroupUsers()) {
+ orgIds2.add(gu.getGroup().getId());
+ }
+ orgIds.retainAll(orgIds2);
+ List<Room> result = new ArrayList<>();
+ for (Long orgId : orgIds) {
+ result.addAll(roomDao.getGroupRooms(orgId));
+ }
+ return result;
+ }
+
+ public void open(IPartialPageRequestHandler handler, Long userId) {
+ this.userId = userId;
+ RoomDao roomDao = getBean(RoomDao.class);
+ publicRooms.update(handler, roomDao.getPublicRooms());
+ privateRooms.update(handler, getPrivateRooms(getUserId(), userId, roomDao));
+ open(handler);
+ }
+
+ @Override
+ protected List<DialogButton> getButtons() {
+ return Arrays.asList(cancel);
+ }
+
+ @Override
+ public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
+ }
+}
Copied: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.html (from r1717826, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.html)
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.html?p2=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.html&p1=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.html&r1=1717826&r2=1717837&rev=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.html (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.html Thu Dec 3 19:03:33 2015
@@ -77,4 +77,4 @@
</table>
</form>
</wicket:panel>
-</html>
\ No newline at end of file
+</html>
Copied: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java (from r1717714, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java)
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java?p2=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java&p1=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java&r1=1717714&r2=1717837&rev=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java Thu Dec 3 19:03:33 2015
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.web.user.profile;
+package org.apache.openmeetings.web.user;
import static org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
import static org.apache.openmeetings.db.entity.user.PrivateMessage.SENT_FOLDER_ID;
Copied: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java (from r1717712, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java)
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java?p2=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java&p1=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java&r1=1717712&r2=1717837&rev=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java Thu Dec 3 19:03:33 2015
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.web.user.profile;
+package org.apache.openmeetings.web.user;
import static org.apache.openmeetings.web.app.Application.getBean;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
@@ -26,6 +26,7 @@ import java.util.List;
import org.apache.openmeetings.db.dao.user.UserContactDao;
import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.user.profile.UserProfilePanel;
import org.apache.openmeetings.web.util.ContactsHelper;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.markup.html.WebMarkupContainer;
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js Thu Dec 3 19:03:33 2015
@@ -17,8 +17,13 @@
* under the License.
*/
var chatTabs, tabTemplate = "<li><a href='#{href}'>#{label}</a></li>"
- , msgTemplate = "<div id='chat-msg-id-#{id}'><span class='from'>#{from}</span><span class='date'>#{sent}</span>#{msg}</div>"
- , acceptTemplate = "<span class='tick om-icon align-right clickable' data-msgid='#{msgid}' data-roomid='#{roomid}' onclick='var e=$(this);acceptMessage(e.data(\"roomid\"),e.data(\"msgid\"));e.parent().remove();'></span>"
+ , msgTemplate = "<div id='chat-msg-id-#{id}'><img class='profile' src='#{imgSrc}'/><span class='from' data-user-id='#{userId}'>#{from}</span><span class='date align-right'>#{sent}</span>#{msg}</div>"
+ , acceptTemplate = "<div class='tick om-icon align-right clickable' data-msgid='#{msgid}' data-roomid='#{roomid}' onclick='var e=$(this);acceptMessage(e.data(\"roomid\"),e.data(\"msgid\"));e.parent().remove();'></div>"
+ , infoTemplate = "<div class='user om-icon align-right clickable' data-user-id='#{userId}' onclick='var e=$(this);showUserInfo(e.data(\"userId\"));'></div>"
+ , addTemplate = "<div class='add om-icon align-right clickable' data-user-id='#{userId}' onclick='var e=$(this);addContact(e.data(\"userId\"));'></div>"
+ , messageTemplate = "<div class='new-email om-icon align-right clickable' data-user-id='#{userId}' onclick='var e=$(this);privateMessage(e.data(\"userId\"));'></div>"
+ , inviteTemplate = "<div class='invite om-icon align-right clickable' data-user-id='#{userId}' onclick='var e=$(this);inviteUser(e.data(\"userId\"));'></div>"
+ , clearBlock = "<div class='clear'></div>"
, closeBlock = "<span class='ui-icon ui-icon-close' role='presentation'></span>"
, closedHeight = "20px", openedHeight = "345px";
$(function() {
@@ -86,8 +91,17 @@ function addChatMessage(m) {
var msg;
for (var i = 0; i < m.msg.length; ++i) {
var cm = m.msg[i];
- //needModeration
- msg = $(msgTemplate.replace(/#\{id\}/g, cm.id).replace(/#\{from\}/g, cm.from).replace(/#\{sent\}/g, cm.sent).replace(/#\{msg\}/g, cm.message));
+ msg = $(msgTemplate.replace(/#\{id\}/g, cm.id)
+ .replace(/#\{userId\}/g, cm.from.id)
+ .replace(/#\{imgSrc\}/g, cm.from.img)
+ .replace(/#\{from\}/g, cm.from.name)
+ .replace(/#\{sent\}/g, cm.sent)
+ .replace(/#\{msg\}/g, cm.message));
+ var date = msg.children('.date');
+ date.after(infoTemplate.replace(/#\{userId\}/g, cm.from.id));
+ date.after(addTemplate.replace(/#\{userId\}/g, cm.from.id));
+ date.after(messageTemplate.replace(/#\{userId\}/g, cm.from.id));
+ date.after(inviteTemplate.replace(/#\{userId\}/g, cm.from.id));
if (cm.needModeration) {
msg.append(acceptTemplate.replace(/#\{msgid\}/g, cm.id).replace(/#\{roomid\}/g, cm.scope.substring(9)));
}
@@ -97,6 +111,7 @@ function addChatMessage(m) {
if (m.mode == "accept") {
$('#chat-msg-id-' + cm.id).remove();
}
+ msg.append(clearBlock);
$('#' + cm.scope).append(msg);
}
if (msg[0]) {
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html Thu Dec 3 19:03:33 2015
@@ -56,7 +56,8 @@
<td wicket:id="search"></td>
<td style="white-space: nowrap;"><div wicket:id="add" class="add om-icon clickable" wicket:message="title:1186"
></div><div wicket:id="message" class="new-email om-icon clickable" wicket:message="title:1253"
- ></div><div wicket:id="view" class="user om-icon clickable" wicket:message="title:1236"></div></td>
+ ></div><div wicket:id="view" class="user om-icon clickable" wicket:message="title:1236"
+ ></div><div wicket:id="invite" class="invite om-icon clickable" wicket:message="title:1131"></div></td>
</tr>
</tbody>
</table>
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java Thu Dec 3 19:03:33 2015
@@ -125,6 +125,7 @@ public class UserSearchPanel extends Use
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 WebMarkupContainer("invite").setVisible(userId != getUserId()).add(AttributeAppender.append("onclick", String.format("inviteUser(%s);", userId))));
//item.add(new TooltipBehavior(new Options("content", "TODO:: Picture will be displayed"))); //FIXME
}
};
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java Thu Dec 3 19:03:33 2015
@@ -27,11 +27,11 @@ import org.apache.wicket.core.request.ha
public class RoomEnterBehavior extends AjaxEventBehavior {
private static final long serialVersionUID = 1L;
- private final long roomid;
+ protected final long roomId;
- public RoomEnterBehavior(long roomid) {
+ public RoomEnterBehavior(long roomId) {
super("click");
- this.roomid = roomid;
+ this.roomId = roomId;
}
public static OmUrlFragment getRoomUrlFragment(long roomId) {
@@ -44,6 +44,6 @@ public class RoomEnterBehavior extends A
@Override
protected void onEvent(AjaxRequestTarget target) {
- roomEnter((MainPage)getComponent().getPage(), target, roomid);
+ roomEnter((MainPage)getComponent().getPage(), target, roomId);
}
}
Added: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.html?rev=1717837&view=auto
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.html (added)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.html Thu Dec 3 19:03:33 2015
@@ -0,0 +1,37 @@
+<?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>
+ <table class="room-list">
+ <tr wicket:id="list" class="room-row">
+ <td>
+ <div wicket:id="roomContainer">
+ <span wicket:id="roomName">[room name]</span><br/>
+ <wicket:message key="398" /> <span wicket:id="curUsers"></span> / <span
+ wicket:id="totalUsers"></span> <span wicket:id="refresh"
+ class="ui-icon ui-icon-arrowrefresh-1-n" style="display: inline-block"></span>
+ </div>
+ </td>
+ <td><button wicket:id="btn"><span wicket:id="label"></span></button></td>
+ </tr>
+ </table>
+</wicket:panel>
+</html>
Added: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java?rev=1717837&view=auto
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java (added)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java Thu Dec 3 19:03:33 2015
@@ -0,0 +1,110 @@
+/*
+ * 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.rooms;
+
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.openmeetings.web.pages.MainPage;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.model.Model;
+
+import com.googlecode.wicket.jquery.ui.form.button.Button;
+
+public class RoomListPanel extends UserPanel {
+ private static final long serialVersionUID = 1L;
+ private final ListView<Room> list;
+
+ public RoomListPanel(String id, List<Room> rooms, final String label) {
+ super(id);
+ setOutputMarkupId(true);
+ add(list = new ListView<Room>("list", rooms) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void populateItem(ListItem<Room> item) {
+ final Room r = item.getModelObject();
+ WebMarkupContainer roomContainer;
+ item.add((roomContainer = new WebMarkupContainer("roomContainer")).add(new AjaxEventBehavior("click"){
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target) {
+ onContainerClick(target, r);
+ }
+ }));
+ roomContainer.add(new Label("roomName", r.getName()));
+ final Label curUsers = new Label("curUsers", new Model<Integer>(Application.getBean(ISessionManager.class).getClientListByRoom(r.getId()).size()));
+ roomContainer.add(curUsers.setOutputMarkupId(true));
+ roomContainer.add(new Label("totalUsers", r.getNumberOfPartizipants()));
+ item.add(new Button("btn").add(new Label("label", label)).add(new RoomEnterBehavior(r.getId()) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target) {
+ onRoomEnter(target, roomId);
+ }
+ }));
+ roomContainer.add(new AjaxLink<Void>("refresh") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+ target.add(curUsers.setDefaultModelObject(Application.getBean(ISessionManager.class).getClientListByRoom(r.getId()).size()));
+ onRefreshClick(target, r);
+ }
+ });
+ }
+ });
+ }
+
+ public void update(IPartialPageRequestHandler handler, List<Room> rooms) {
+ list.setList(rooms);
+ handler.add(this);
+ }
+
+ /**
+ * this method need to be overriden to perform custom actions on room container click
+ */
+ public void onContainerClick(AjaxRequestTarget target, Room r) {
+ }
+
+ /**
+ * this method need to be overriden to perform custom actions on room refresh click
+ */
+ public void onRefreshClick(AjaxRequestTarget target, Room r) {
+ }
+
+ /**
+ * this method need to be overriden to perform custom actions on room enter click
+ */
+ public void onRoomEnter(AjaxRequestTarget target, Long roomId) {
+ RoomEnterBehavior.roomEnter((MainPage)getPage(), target, roomId);
+ }
+}
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html Thu Dec 3 19:03:33 2015
@@ -23,19 +23,7 @@
<table>
<tr>
<td style="vertical-align: top">
- <table class="room-list">
- <tr wicket:id="list" class="room-row">
- <td>
- <div wicket:id="roomContainer">
- <span wicket:id="roomName">[room name]</span><br/>
- <wicket:message key="398" /> <span wicket:id="curUsers"></span> / <span
- wicket:id="totalUsers"></span> <span wicket:id="refresh"
- class="ui-icon ui-icon-arrowrefresh-1-n" style="display: inline-block"></span>
- </div>
- </td>
- <td><button wicket:id="enter"><wicket:message key="131"/></button></td>
- </tr>
- </table>
+ <div wicket:id="list"></div>
</td>
<td style="vertical-align: top">
<!-- Users in this Room -->
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java Thu Dec 3 19:03:33 2015
@@ -32,9 +32,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.common.UserPanel;
-import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.image.Image;
@@ -45,8 +43,6 @@ import org.apache.wicket.model.Model;
import org.apache.wicket.request.resource.ByteArrayResource;
import org.apache.wicket.util.io.IOUtils;
-import com.googlecode.wicket.jquery.ui.form.button.Button;
-
public class RoomsPanel extends UserPanel {
private static final long serialVersionUID = 1L;
private final WebMarkupContainer clientsContainer = new WebMarkupContainer("clientsContainer");
@@ -60,37 +56,20 @@ public class RoomsPanel extends UserPane
public RoomsPanel(String id, List<Room> rooms) {
super(id);
- add(new ListView<Room>("list", rooms) {
+ add(new RoomListPanel("list", rooms, Application.getString(131)) {
private static final long serialVersionUID = 1L;
@Override
- protected void populateItem(ListItem<Room> item) {
- final Room r = item.getModelObject();
- WebMarkupContainer roomContainer;
- item.add((roomContainer = new WebMarkupContainer("roomContainer")).add(new AjaxEventBehavior("click"){
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- roomId = r.getId();
- updateRoomDetails(target);
- }
- }));
- roomContainer.add(new Label("roomName", r.getName()));
- final Label curUsers = new Label("curUsers", new Model<Integer>(Application.getBean(ISessionManager.class).getClientListByRoom(r.getId()).size()));
- roomContainer.add(curUsers.setOutputMarkupId(true));
- roomContainer.add(new Label("totalUsers", r.getNumberOfPartizipants()));
- item.add(new Button("enter").add(new RoomEnterBehavior(r.getId())));
- roomContainer.add(new AjaxLink<Void>("refresh") {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onClick(AjaxRequestTarget target) {
- roomId = r.getId();
- target.add(curUsers.setDefaultModelObject(Application.getBean(ISessionManager.class).getClientListByRoom(r.getId()).size()));
- updateRoomDetails(target);
- }
- });
+ public void onContainerClick(AjaxRequestTarget target, Room r) {
+ roomId = r.getId();
+ updateRoomDetails(target);
+ }
+
+ @Override
+ public void onRefreshClick(AjaxRequestTarget target, Room r) {
+ super.onRefreshClick(target, r);
+ roomId = r.getId();
+ updateRoomDetails(target);
}
});
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html Thu Dec 3 19:03:33 2015
@@ -19,9 +19,9 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <div wicket:id="title" class="rooms title"></div>
- <div wicket:id="desc" class="rooms desc info-text"></div>
- <div wicket:id="rooms"></div>
- </wicket:panel>
+<wicket:panel>
+ <div wicket:id="title" class="rooms title"></div>
+ <div wicket:id="desc" class="rooms desc info-text"></div>
+ <div wicket:id="rooms"></div>
+</wicket:panel>
</html>
Added: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java?rev=1717837&view=auto
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java (added)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java Thu Dec 3 19:03:33 2015
@@ -0,0 +1,101 @@
+/*
+ * 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.util;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.URI;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.ByteArrayResource;
+import org.apache.wicket.request.resource.IResource;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.util.io.IOUtils;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class ProfileImageResourceReference extends ResourceReference {
+ private static final long serialVersionUID = 1L;
+ private static final Logger log = Red5LoggerFactory.getLogger(ProfileImageResourceReference.class, webAppRootKey);
+
+ public ProfileImageResourceReference() {
+ super(ProfileImageResourceReference.class, "profile");
+ }
+
+ public static String getUrl(RequestCycle rc, Long userId) {
+ return getUrl(rc, getBean(UserDao.class).get(userId));
+ }
+
+ public static String getUrl(RequestCycle rc, User u) {
+ String uri = u.getPictureuri();
+ if (!isAbsolute(uri)) {
+ uri = rc.urlFor(new ProfileImageResourceReference(), new PageParameters().add("id", u.getId())).toString();
+ }
+ return uri;
+ }
+
+ private static boolean isAbsolute(String uri) {
+ boolean absolute = false;
+ try {
+ absolute = URI.create(uri).isAbsolute();
+ } catch (Exception e) {
+ //no-op
+ }
+ return absolute;
+ }
+
+ @Override
+ public IResource getResource() {
+ return new ByteArrayResource("image/jpeg") {
+ private static final long serialVersionUID = 1L;
+ private Long userId = null;
+
+ @Override
+ protected ResourceResponse newResourceResponse(Attributes attributes) {
+ PageParameters params = attributes.getParameters();
+ userId = params.get("id").toOptionalLong();
+ ResourceResponse rr = super.newResourceResponse(attributes);
+ rr.disableCaching();
+ return rr;
+ }
+
+ @Override
+ protected byte[] getData(Attributes attributes) {
+ String uri = getBean(UserDao.class).get(userId).getPictureuri();
+ if (!isAbsolute(uri)) {
+ File img = OmFileHelper.getUserProfilePicture(userId, uri);
+ try (InputStream is = new FileInputStream(img)) {
+ return IOUtils.toByteArray(is);
+ } catch (Exception e) {
+ log.error("failed to get bytes from image", e);
+ }
+ }
+ return null;
+ }
+ };
+ }
+}
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java Thu Dec 3 19:03:33 2015
@@ -49,7 +49,6 @@ import org.apache.wicket.util.io.IOUtils
import org.apache.wicket.util.resource.FileResourceStream;
import org.apache.wicket.util.resource.IResourceStream;
import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
-import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.time.Time;
import org.slf4j.Logger;
@@ -138,16 +137,6 @@ public abstract class RecordingResourceR
abstract String getFileName(Recording r);
abstract File getFile(Recording r);
- private Long getLong(StringValue id) {
- Long result = null;
- try {
- result = id.toLongObject();
- } catch(Exception e) {
- //no-op
- }
- return result;
- }
-
private Recording getRecording(Long id) {
Recording r = getBean(RecordingDao.class).get(id);
// TODO should we process public?
@@ -171,14 +160,13 @@ public abstract class RecordingResourceR
private Recording getRecording(Attributes attributes) {
PageParameters params = attributes.getParameters();
- StringValue idStr = params.get("id");
- Long id = getLong(idStr);
+ Long id = params.get("id").toOptionalLong();
WebSession ws = WebSession.get();
if (id != null && ws.isSignedIn()) {
return getRecording(id);
} else {
ws.invalidate();
- if (ws.signIn(idStr.toString())) {
+ if (ws.signIn(params.get("id").toString())) {
return getRecording(getRecordingId());
}
}
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/chat.css
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/chat.css?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/chat.css (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/chat.css Thu Dec 3 19:03:33 2015
@@ -60,6 +60,11 @@
font-style: italic;
font-size: smaller;
}
+#chatPanel #chat .messageArea img.profile {
+ vertical-align: middle;
+ max-height: 38px;
+ max-width: 38px;
+}
#chatPanel #chat .messageArea .from {
margin-left: 5px;
margin-right: 5px;
@@ -73,4 +78,5 @@
#chatMessage .wysiwyg-editor {
height: 70px;
max-height: 70px;
+ max-width: 500px;
}
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/forms.css
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/forms.css?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/forms.css (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/forms.css Thu Dec 3 19:03:33 2015
@@ -75,4 +75,4 @@ div.formCancelButton>div {
border: none;
margin-left: 2px;
margin-top: 2px;
-}
\ No newline at end of file
+}
Added: openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/images/connect.png
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/images/connect.png?rev=1717837&view=auto
==============================================================================
Binary file - no diff available.
Propchange: openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/images/connect.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/theme.css
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/theme.css?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/theme.css (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/css/theme.css Thu Dec 3 19:03:33 2015
@@ -377,6 +377,9 @@ html, body {
.doc.file.om-icon {
background-image: url(images/report.png);
}
+.invite.om-icon {
+ background-image: url(images/connect.png);
+}
.selected .file.item {
background-color: #0099FF;
}
@@ -629,3 +632,9 @@ form .input {
#contents .btn-file>input {
transform: translate(-3000px, 0) scale(1);
}
+.room.list.container {
+ height: 150px;
+ max-height: 150px;
+ overflow-y: auto;
+ border: 1px solid #cccccc;
+}
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Thu Dec 3 19:03:33 2015
@@ -67,6 +67,7 @@ import org.apache.openmeetings.web.util.
import org.apache.openmeetings.web.util.JpgRecordingResourceReference;
import org.apache.openmeetings.web.util.Mp4RecordingResourceReference;
import org.apache.openmeetings.web.util.OggRecordingResourceReference;
+import org.apache.openmeetings.web.util.ProfileImageResourceReference;
import org.apache.openmeetings.web.util.UserDashboardPersister;
import org.apache.wicket.Localizer;
import org.apache.wicket.Page;
@@ -154,6 +155,7 @@ public class Application extends Authent
mountResource("/recordings/mp4/${id}", new Mp4RecordingResourceReference());
mountResource("/recordings/ogg/${id}", new OggRecordingResourceReference());
mountResource("/recordings/jpg/${id}", new JpgRecordingResourceReference()); //should be in sync with VideoPlayer
+ mountResource("/profile/${id}", new ProfileImageResourceReference()); //should be in sync with VideoPlayer
}
private static class NoVersionMapper extends MountedMapper {
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java Thu Dec 3 19:03:33 2015
@@ -18,68 +18,24 @@
*/
package org.apache.openmeetings.web.common;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
-import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.util.ProfileImageResourceReference.getUrl;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.net.URI;
-
-import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.web.app.Application;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.image.Image;
-import org.apache.wicket.request.resource.ByteArrayResource;
-import org.apache.wicket.util.io.IOUtils;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
public class ProfileImagePanel extends BasePanel {
private static final long serialVersionUID = 1L;
- private static final Logger log = Red5LoggerFactory.getLogger(ProfileImagePanel.class, webAppRootKey);
protected final WebMarkupContainer profile;
public ProfileImagePanel(String id, final long userId) {
super(id);
profile = new TransparentWebMarkupContainer("profile");
- String uri = getBean(UserDao.class).get(userId).getPictureuri();
- boolean absolute = false;
- try {
- absolute = URI.create(uri).isAbsolute();
- } catch (Exception e) {
- //no-op
- }
- if (absolute) {
- profile.add(new WebMarkupContainer("img").add(AttributeModifier.append("alt", Application.getString(5L)), AttributeModifier.append("src", uri)));
- } else {
- profile.add(new Image("img", new ByteArrayResource("image/jpeg") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected ResourceResponse newResourceResponse(Attributes attributes) {
- ResourceResponse rr = super.newResourceResponse(attributes);
- rr.disableCaching();
- return rr;
- }
-
- @Override
- protected byte[] getData(Attributes attributes) {
- String uri = getBean(UserDao.class).get(userId).getPictureuri();
- File img = OmFileHelper.getUserProfilePicture(userId, uri);
- try (InputStream is = new FileInputStream(img)) {
- return IOUtils.toByteArray(is);
- } catch (Exception e) {
- log.error("failed to get bytes from image", e);
- }
- return null;
- }
- }));
- }
+ profile.add(new WebMarkupContainer("img").add(
+ AttributeModifier.append("alt", Application.getString(5L))
+ , AttributeModifier.append("src", getUrl(getRequestCycle(), userId))));
add(profile.setOutputMarkupId(true));
}
}
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=1717837&r1=1717836&r2=1717837&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 Thu Dec 3 19:03:33 2015
@@ -57,5 +57,6 @@
<div wicket:id="aboutDialog"></div>
<div wicket:id="userInfoDialog"></div>
<div wicket:id="newMessageDialog"></div>
+ <div wicket:id="inviteUserDialog"></div>
</wicket:extend>
</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=1717837&r1=1717836&r2=1717837&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 Thu Dec 3 19:03:33 2015
@@ -51,8 +51,9 @@ 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.user.InviteUserToRoomDialog;
+import org.apache.openmeetings.web.user.MessageDialog;
+import org.apache.openmeetings.web.user.UserInfoDialog;
import org.apache.openmeetings.web.util.ContactsHelper;
import org.apache.openmeetings.web.util.OmUrlFragment;
import org.apache.wicket.Component;
@@ -97,6 +98,7 @@ public class MainPage extends BaseInited
private final ChatPanel chat;
private final MessageDialog newMessage;
private final UserInfoDialog userInfo;
+ private final InviteUserToRoomDialog inviteUser;
public MainPage(PageParameters pp) {
super();
@@ -162,6 +164,7 @@ public class MainPage extends BaseInited
}
});
add(userInfo = new UserInfoDialog("userInfoDialog", newMessage));
+ add(inviteUser = new InviteUserToRoomDialog("inviteUserDialog"));
add(new AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@@ -227,6 +230,20 @@ public class MainPage extends BaseInited
}
}
});
+ add(new AbstractDefaultAjaxBehavior() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void respond(AjaxRequestTarget target) {
+ inviteUser.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("inviteUser", this, explicit(PARAM_USER_ID)), "inviteUser")));
+ }
+ });
//load preselected content
add(areaBehavior = new AbstractAjaxTimerBehavior(Duration.ONE_SECOND) {
private static final long serialVersionUID = 1L;
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java Thu Dec 3 19:03:33 2015
@@ -28,6 +28,7 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
+import static org.apache.openmeetings.web.util.ProfileImageResourceReference.getUrl;
import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
import java.util.ArrayList;
@@ -124,11 +125,11 @@ public class ChatPanel extends BasePanel
return o.put("scope", scope).put("scopeName", scopeName);
}
- public static JSONObject getMessage(List<ChatMessage> list) throws JSONException {
+ public JSONObject getMessage(List<ChatMessage> list) throws JSONException {
return getMessage(getUserId(), list);
}
- private static JSONObject getMessage(long curUserId, List<ChatMessage> list) throws JSONException {
+ private JSONObject getMessage(long curUserId, List<ChatMessage> list) throws JSONException {
JSONArray arr = new JSONArray();
for (ChatMessage m : list) {
String smsg = m.getMessage();
@@ -136,7 +137,12 @@ public class ChatPanel extends BasePanel
arr.put(setScope(new JSONObject(), m, curUserId)
.put("id", m.getId())
.put("message", smsg)
- .put("from", m.getFromUser().getFirstname() + " " + m.getFromUser().getLastname())
+ .put("from", new JSONObject()
+ .put("id", m.getFromUser().getId())
+ .put("name", m.getFromUser().getFirstname() + " " + m.getFromUser().getLastname())
+ .put("img", getUrl(getRequestCycle(), m.getFromUser().getId()))
+
+ )
.put("sent", getDateFormat().format(m.getSent())));
}
return new JSONObject()
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html?rev=1717837&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html Thu Dec 3 19:03:33 2015
@@ -0,0 +1,30 @@
+<?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">
+ <textarea wicket:id="message" style="width: 100%; height: 100px;"></textarea>
+ <div>
+ <input type="checkbox" wicket:id="enterRoom" /><label wicket:for="enterRoom"><wicket:message key="1134"/></label>
+ </div>
+ </form>
+</wicket:panel>
+</html>
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java?rev=1717837&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java Thu Dec 3 19:03:33 2015
@@ -0,0 +1,90 @@
+/*
+ * 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;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+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.model.Model;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class InviteUserMessageDialog extends AbstractFormDialog<String> {
+ private static final long serialVersionUID = 1L;
+ private final DialogButton send = new DialogButton("send", Application.getString(1139));
+ private final DialogButton cancel = new DialogButton("cancel", Application.getString(219));
+ private final Form<Void> form = new Form<Void>("form");
+ private final TextArea<String> message = new TextArea<>("message", Model.of(""));
+ private final CheckBox enterRoom = new CheckBox("enterRoom", Model.of(false));
+
+ public InviteUserMessageDialog(String id) {
+ super(id, Application.getString(1138));
+ add(form.add(message.setRequired(true), enterRoom).setOutputMarkupId(true));
+ }
+
+ public void open(IPartialPageRequestHandler handler, Long roomId, Long userId) {
+ Room r = getBean(RoomDao.class).get(roomId);
+ User u = getBean(UserDao.class).get(getUserId());
+ message.setModelObject(String.format("%s %s %s %s", u.getFirstname(), u.getLastname(), getString("1137"), r.getName()));
+ enterRoom.setModelObject(false);
+ handler.add(form);
+ open(handler);
+ }
+
+ @Override
+ protected List<DialogButton> getButtons() {
+ return Arrays.asList(send, cancel);
+ }
+
+ @Override
+ protected DialogButton getSubmitButton() {
+ return send;
+ }
+
+ @Override
+ public Form<?> 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
+
+ }
+}
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html?rev=1717837&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html Thu Dec 3 19:03:33 2015
@@ -0,0 +1,34 @@
+<?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>
+ <div class="rooms desc info-text"><wicket:message key="1132"/></div>
+ <div class="rooms title"><wicket:message key="777"/></div>
+ <div class="room list container">
+ <div wicket:id="publicRooms"></div>
+ </div>
+ <div class="rooms title"><wicket:message key="779"/></div>
+ <div class="room list container">
+ <div wicket:id="privateRooms"></div>
+ </div>
+ <div wicket:id="inviteMsg"/>
+</wicket:panel>
+</html>