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 [2/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...
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java?rev=1717837&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java (added)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java (from r1717714, 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/MessageDialog.java?p2=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java&p1=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java&r1=1717714&r2=1717837&rev=1717837&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/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java (from r1717651, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java)
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java?p2=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java&p1=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java&r1=1717651&r2=1717837&rev=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java (original)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js (original)
+++ openmeetings/trunk/singlewebapp/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/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=1717837&r1=1717836&r2=1717837&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 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/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=1717837&r1=1717836&r2=1717837&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 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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java (original)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.html?rev=1717837&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.html (added)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java?rev=1717837&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java (added)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html (original)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java (original)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html (original)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java?rev=1717837&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java (added)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java (original)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/chat.css
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/chat.css?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/chat.css (original)
+++ openmeetings/trunk/singlewebapp/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/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/forms.css
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/forms.css?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/forms.css (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/forms.css Thu Dec 3 19:03:33 2015
@@ -76,4 +76,3 @@ div.formCancelButton>div {
margin-left: 2px;
margin-top: 2px;
}
-
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/connect.png
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/connect.png?rev=1717837&view=auto
==============================================================================
Binary file - no diff available.
Propchange: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/connect.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css?rev=1717837&r1=1717836&r2=1717837&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css (original)
+++ openmeetings/trunk/singlewebapp/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;
+}