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 2017/04/12 17:17:42 UTC
svn commit: r1791161 - in /openmeetings/application/trunk: ./
openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/
openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/
openmeetings-core/src/main/java/org/apache/...
Author: solomax
Date: Wed Apr 12 17:17:42 2017
New Revision: 1791161
URL: http://svn.apache.org/viewvc?rev=1791161&view=rev
Log:
[OPENMEETINGS-551] hash?swf=settings is fixed, code clean-up
Added:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings.js
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
- copied, changed from r1791160, openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
Removed:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/WhiteboardManager.java
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
Modified:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java
openmeetings/application/trunk/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
openmeetings/application/trunk/openmeetings-server/src/site/xdoc/Clustering.xml
openmeetings/application/trunk/openmeetings-server/src/site/xdoc/voip-sip-integration.xml
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/web.xml
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
openmeetings/application/trunk/pom.xml
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java Wed Apr 12 17:17:42 2017
@@ -21,24 +21,14 @@ package org.apache.openmeetings.core.rem
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.apache.openmeetings.core.data.whiteboard.WhiteboardManager;
import org.apache.openmeetings.core.documents.LibraryChartLoader;
import org.apache.openmeetings.core.documents.LibraryDocumentConverter;
-import org.apache.openmeetings.core.documents.LibraryWmlLoader;
-import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
-import org.apache.openmeetings.db.dao.server.ISessionManager;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.dto.server.ClientSessionInfo;
import org.apache.openmeetings.db.entity.file.FileExplorerItem;
-import org.apache.openmeetings.db.entity.file.FileItem;
import org.apache.openmeetings.db.entity.file.FileItem.Type;
-import org.apache.openmeetings.db.entity.room.Client;
import org.apache.openmeetings.db.entity.server.Sessiondata;
import org.apache.openmeetings.db.util.AuthLevelUtil;
import org.apache.openmeetings.util.OmFileHelper;
@@ -57,17 +47,11 @@ public class ConferenceLibrary implement
private static final Logger log = Red5LoggerFactory.getLogger(ConferenceLibrary.class, webAppRootKey);
@Autowired
- private ISessionManager sessionManager;
- @Autowired
private SessiondataDao sessionDao;
@Autowired
private UserDao userDao;
@Autowired
private FileExplorerItemDao fileDao;
- @Autowired
- private WhiteboardManager whiteboardManager;
- @Autowired
- private ScopeApplicationAdapter scopeAdapter;
/**
*
@@ -106,53 +90,6 @@ public class ConferenceLibrary implement
}
/**
- * Loads a Object from the library into the whiteboard of all participant of
- * the current room
- *
- * @param uid - uid of the client performing operation
- * @param wbId - id of whiteboard
- * @param fi - FileItem of the Wml being loaded
- */
- public void sendToWhiteboard(String uid, Long wbId, FileItem fi) {
- ClientSessionInfo csi = sessionManager.getClientByPublicSIDAnyServer(uid);
- if (csi == null) {
- log.warn("No client was found to send Wml:: {}", uid);
- return;
- }
- Client client = csi.getRcl();
-
- if (client == null) {
- log.warn("No client was found to send Wml:: {}", uid);
- return;
- }
-
- List<?> roomItems = LibraryWmlLoader.loadWmlFile(fi.getHash());
-
- Map<Integer, Object> wbClear = new HashMap<>();
- wbClear.put(2, "clear");
- wbClear.put(3, null);
-
- Long roomId = client.getRoomId();
- whiteboardManager.add(roomId, wbClear, wbId);
-
- for (int k = 0; k < roomItems.size(); k++) {
- List<?> actionObject = (List<?>)roomItems.get(k);
-
- Map<Integer, Object> whiteboardObj = new HashMap<>();
- whiteboardObj.put(2, "draw");
- whiteboardObj.put(3, actionObject);
-
- whiteboardManager.add(roomId, whiteboardObj, wbId);
- }
-
- Map<String, Object> sendObject = new HashMap<>();
- sendObject.put("id", wbId);
- sendObject.put("roomitems", roomItems);
-
- scopeAdapter.sendToScope(roomId, "loadWmlToWhiteboardById", sendObject);
- }
-
- /**
*
* Loads a chart object
*
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java Wed Apr 12 17:17:42 2017
@@ -18,41 +18,15 @@
*/
package org.apache.openmeetings.core.remote;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MAX_UPLOAD_SIZE_KEY;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SIP_ENABLED;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
-import org.apache.openmeetings.core.remote.util.SessionVariablesUtil;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.dao.log.ConferenceLogDao;
-import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.server.ISessionManager;
-import org.apache.openmeetings.db.dao.server.SessiondataDao;
-import org.apache.openmeetings.db.dao.user.IUserManager;
-import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.basic.Configuration;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.db.entity.calendar.MeetingMember;
-import org.apache.openmeetings.db.entity.log.ConferenceLog;
-import org.apache.openmeetings.db.entity.room.Client;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.room.RoomGroup;
-import org.apache.openmeetings.db.entity.server.Sessiondata;
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.db.entity.user.User.Right;
-import org.apache.openmeetings.db.entity.user.Userdata;
-import org.apache.openmeetings.db.util.AuthLevelUtil;
import org.apache.openmeetings.util.OpenmeetingsVariables;
import org.red5.logging.Red5LoggerFactory;
-import org.red5.server.api.IConnection;
-import org.red5.server.api.Red5;
import org.red5.server.api.service.IPendingServiceCall;
import org.red5.server.api.service.IPendingServiceCallback;
import org.slf4j.Logger;
@@ -67,63 +41,11 @@ public class MainService implements IPen
private static final Logger log = Red5LoggerFactory.getLogger(MainService.class, OpenmeetingsVariables.webAppRootKey);
@Autowired
- private ISessionManager sessionManager;
- @Autowired
- private ScopeApplicationAdapter scopeApplicationAdapter;
- @Autowired
- private SessiondataDao sessionDao;
- @Autowired
- private ConfigurationDao configurationDao;
- @Autowired
- private IUserManager userManager;
- @Autowired
- private ConferenceLogDao conferenceLogDao;
- @Autowired
- private UserDao userDao;
- @Autowired
- private RoomDao roomDao;
- @Autowired
private AppointmentDao appointmentDao;
// External User Types
public static final String EXTERNAL_USER_TYPE_LDAP = "LDAP";
-
- /**
- * gets a user by its SID
- *
- * @param sid
- * @param userId
- * @return - user with SID given
- */
- public User getUser(String sid, long userId) {
- User users = new User();
- Sessiondata sd = sessionDao.check(sid);
- Set<Right> rights = userDao.getRights(sd.getUserId());
- if (AuthLevelUtil.hasAdminLevel(rights) || AuthLevelUtil.hasWebServiceLevel(rights)) {
- users = userDao.get(userId);
- } else {
- users.setFirstname("No rights to do this");
- }
- return users;
- }
-
- public Client getCurrentRoomClient(String SID) {
- try {
- IConnection current = Red5.getConnectionLocal();
- String streamid = current.getClient().getId();
-
- log.debug("getCurrentRoomClient -1- " + SID);
- log.debug("getCurrentRoomClient -2- " + streamid);
-
- Client currentClient = sessionManager.getClientByStreamId(streamid, null);
- return currentClient;
- } catch (Exception err) {
- log.error("[getCurrentRoomClient]", err);
- }
- return null;
- }
-
public boolean isRoomAllowedToUser(Room r, User u) {
boolean allowed = false;
if (r != null) {
@@ -172,93 +94,6 @@ public class MainService implements IPen
return allowed;
}
- public List<Object> loginWicket(String wicketSID, Long wicketroomid) {
- log.debug("[loginWicket] wicketSID: '{}'; wicketroomid: '{}'", wicketSID, wicketroomid);
- Sessiondata sd = sessionDao.check(wicketSID);
- Long userId = sd.getUserId();
- User u = userId == null ? null : userDao.get(userId);
- Room r = roomDao.get(wicketroomid);
- if (u != null && r != null) {
- log.debug("[loginWicket] user and roomid are not empty: " + userId + ", " + wicketroomid);
- if (wicketroomid.equals(sd.getRoomId()) || isRoomAllowedToUser(r, u)) {
- IConnection current = Red5.getConnectionLocal();
- String streamId = current.getClient().getId();
- Client currentClient = sessionManager.getClientByStreamId(streamId, null);
-
- if (User.Type.user != u.getType() || (User.Type.user == u.getType() && !u.getGroupUsers().isEmpty())) {
- u.setSessionData(sd);
- currentClient.setUserId(u.getId());
- currentClient.setRoomId(wicketroomid);
- SessionVariablesUtil.setUserId(current.getClient(), u.getId());
-
- currentClient.setUsername(u.getLogin());
- currentClient.setFirstname(u.getFirstname());
- currentClient.setLastname(u.getLastname());
- currentClient.setPicture_uri(u.getPictureuri());
- currentClient.setEmail(u.getAddress() == null ? null : u.getAddress().getEmail());
- sessionManager.updateClientByStreamId(streamId, currentClient, false, null);
-
- scopeApplicationAdapter.sendMessageToCurrentScope("roomConnect", currentClient, false);
-
- return Arrays.<Object>asList(u, r);
- }
- }
- }
- return null;
- }
-
- /**
- * Function is called if the user loggs in via a secureHash and sets the
- * param showNickNameDialog in the Object SOAPLogin to true the user gets
- * displayed an additional dialog to enter his nickname
- *
- * @param firstname
- * @param lastname
- * @param email
- * @return - 1 in case of success, -1 otherwise
- */
- public Long setUserNickName(String firstname, String lastname, String email) {
- try {
- IConnection current = Red5.getConnectionLocal();
- String streamId = current.getClient().getId();
- Client currentClient = sessionManager.getClientByStreamId(streamId, null);
-
- currentClient.setFirstname(firstname);
- currentClient.setLastname(lastname);
- currentClient.setEmail(email);
-
- // Log the User
- conferenceLogDao.add(
- ConferenceLog.Type.nicknameEnter, currentClient.getUserId(), streamId,
- null, currentClient.getUserip(), currentClient.getScope());
-
- sessionManager.updateClientByStreamId(streamId, currentClient, false, null);
- scopeApplicationAdapter.sendMessageToCurrentScope("nickNameSet", currentClient, true);
-
- return 1L;
- } catch (Exception err) {
- log.error("[setUserNickName] ", err);
- }
- return new Long(-1);
- }
-
- public List<Configuration> getGeneralOptions() {
- try {
- return configurationDao.get("exclusive.audio.keycode", CONFIG_SIP_ENABLED, CONFIG_MAX_UPLOAD_SIZE_KEY, "mute.keycode", CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY);
- } catch (Exception err) {
- log.error("[getGeneralOptions]",err);
- }
- return null;
- }
-
- public List<Userdata> getUserdata(String sid) {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
- return userManager.getUserdataDashBoard(sd.getUserId());
- }
- return null;
- }
-
@Override
public void resultReceived(IPendingServiceCall arg0) {
log.debug("[resultReceived]" + arg0);
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Wed Apr 12 17:17:42 2017
@@ -18,18 +18,15 @@
*/
package org.apache.openmeetings.core.remote.red5;
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_SECURE;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_SECURE_PROXY;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_VIDEO_CODEC;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
-import java.awt.Point;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
@@ -42,11 +39,8 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicLong;
-import org.apache.commons.io.FileUtils;
import org.apache.openmeetings.IApplication;
import org.apache.openmeetings.core.data.conference.RoomManager;
-import org.apache.openmeetings.core.data.whiteboard.WhiteboardCache;
-import org.apache.openmeetings.core.data.whiteboard.WhiteboardManager;
import org.apache.openmeetings.core.remote.RecordingService;
import org.apache.openmeetings.core.remote.util.SessionVariablesUtil;
import org.apache.openmeetings.core.util.WebSocketHelper;
@@ -62,8 +56,6 @@ import org.apache.openmeetings.db.dao.se
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.dto.room.BrowserStatus;
import org.apache.openmeetings.db.dto.room.RoomStatus;
-import org.apache.openmeetings.db.dto.server.ClientSessionInfo;
-import org.apache.openmeetings.db.entity.file.FileItem;
import org.apache.openmeetings.db.entity.log.ConferenceLog;
import org.apache.openmeetings.db.entity.room.Client;
import org.apache.openmeetings.db.entity.room.Room;
@@ -105,15 +97,16 @@ public class ScopeApplicationAdapter ext
private static final String SECURITY_CODE_PARAM = "securityCode";
private static final String WIDTH_PARAM = "width";
private static final String HEIGHT_PARAM = "height";
- private static final String NATIVE_SSL_PARAM = "nativeSsl";
+ public static final String FLASH_SECURE = "secure";
+ public static final String FLASH_NATIVE_SSL = "native";
+ public static final String FLASH_PORT = "rtmpPort";
+ public static final String FLASH_SSL_PORT = "rtmpsPort";
+ public static final String FLASH_VIDEO_CODEC = "videoCodec";
+ public static final String FLASH_FPS = "fps";
@Autowired
private ISessionManager sessionManager;
@Autowired
- private WhiteboardManager whiteboardManager;
- @Autowired
- private WhiteboardCache whiteboardCache;
- @Autowired
private RecordingService recordingService;
@Autowired
private ConfigurationDao cfgDao;
@@ -161,12 +154,12 @@ public class ScopeApplicationAdapter ext
props.load(is);
}
flashSettings = new JSONObject()
- .put("secure", "yes".equals(cfgDao.getConfValue(CONFIG_FLASH_SECURE, String.class, "no")))
- .put("proxyType", cfgDao.getConfValue(CONFIG_FLASH_SECURE_PROXY, String.class, "none"))
- .put("rtmpPort", props.getProperty("rtmp.port"))
- .put("rtmpsPort", props.getProperty("rtmps.port"))
- .put("videoCodec", cfgDao.getConfValue(CONFIG_FLASH_VIDEO_CODEC, String.class, "h263"))
- .put("fps", cfgDao.getConfValue(OpenmeetingsVariables.CONFIG_FLASH_VIDEO_FPS, Integer.class, "30"))
+ .put(FLASH_SECURE, "yes".equals(cfgDao.getConfValue(CONFIG_FLASH_SECURE, String.class, "no")))
+ .put(FLASH_NATIVE_SSL, "best".equals(cfgDao.getConfValue(CONFIG_FLASH_SECURE_PROXY, String.class, "none")))
+ .put(FLASH_PORT, props.getProperty("rtmp.port"))
+ .put(FLASH_SSL_PORT, props.getProperty("rtmps.port"))
+ .put(FLASH_VIDEO_CODEC, cfgDao.getConfValue(CONFIG_FLASH_VIDEO_CODEC, String.class, "h263"))
+ .put(FLASH_FPS, cfgDao.getConfValue(OpenmeetingsVariables.CONFIG_FLASH_VIDEO_FPS, Integer.class, "30"))
;
for (String scopeName : scope.getScopeNames()) {
@@ -307,7 +300,6 @@ public class ScopeApplicationAdapter ext
rcm.setUserip(conn.getRemoteAddress());
rcm.setSwfurl(swfURL);
rcm.setTcUrl(tcUrl);
- rcm.setNativeSsl(Boolean.TRUE.equals(connParams.get(NATIVE_SSL_PARAM)));
if (!Strings.isEmpty(uid)) {
rcm.setPublicSID(uid);
}
@@ -1151,212 +1143,6 @@ public class ScopeApplicationAdapter ext
return null;
}
- /**
- * This Function is triggered from the Whiteboard
- *
- * @param whiteboardObjParam - array of parameters being sended to whiteboard
- * @param whiteboardId - id of whiteboard parameters will be send to
- * @return 1 in case of no errors, -1 otherwise
- */
- public int sendVarsByWhiteboardId(List<?> whiteboardObjParam, Long whiteboardId) {
- try {
- IConnection current = Red5.getConnectionLocal();
- Client client = sessionManager.getClientByStreamId(current.getClient().getId(), null);
- return sendToWhiteboard(client, whiteboardObjParam, whiteboardId);
- } catch (Exception err) {
- log.error("[sendVarsByWhiteboardId]", err);
- return -1;
- }
- }
-
- private static Point getSize(FileItem fi) {
- Point result = new Point(0, 0);
- if (fi.getWidth() != null && fi.getHeight() != null) {
- result.x = fi.getWidth();
- result.y = fi.getHeight();
- }
- return result;
- }
-
- private static List<?> getWbObject(FileItem fi, String url) {
- Point size = getSize(fi);
- String type = "n/a";
- switch (fi.getType()) {
- case Image:
- type = "image";
- break;
- case Presentation:
- type = "swf";
- break;
- default:
- }
- return Arrays.asList(
- type // 0
- , url // urlname
- , "--dummy--" // baseurl
- , fi.getName() // fileName //3
- , "--dummy--" // moduleName //4
- , "--dummy--" // parentPath //5
- , "--dummy--" // room //6
- , "--dummy--" // domain //7
- , 1 // slideNumber //8
- , 0 // innerx //9
- , 0 // innery //10
- , size.x // innerwidth //11
- , size.y // innerheight //12
- , 20 // zoomlevel //13
- , size.x // initwidth //14
- , size.y // initheight //15
- , 100 // currentzoom //16 FIXME TODO
- , fi.getHash() // uniquObjectSyncName //17
- , fi.getName() // standardFileName //18
- , true // fullFit //19 FIXME TODO
- , 0 // zIndex //-8
- , null //-7
- , 0 // this.counter //-6 FIXME TODO
- , 0 // posx //-5
- , 0 // posy //-4
- , size.x // width //-3
- , size.y // height //-2
- , fi.getHash() // this.currentlayer.name //-1
- );
- }
-
- private static List<?> getMp4WbObject(FileItem fi, String url) {
- Point size = getSize(fi);
- return Arrays.asList(
- "flv" // 0: 'flv'
- , fi.getId() // 1: 7
- , fi.getName() // 2: 'BigBuckBunny_512kb.mp4'
- , url // 3: posterUrl
- , size.x // 4: 416
- , size.y // 5: 240
- , 0 // 6: 1 // z-index
- , fi.getHash() // 7: null //TODO
- , 0 // 8: 0 //TODO // counter
- , 0 // 9: 0 //TODO // x
- , 0 // 10: 0 //TODO // y
- , size.x // 11: 749 // width
- , size.y // 12: 739 // height
- , fi.getHash() // 13: 'flv_1469602000351'
- );
- }
-
- private static void copyFileToRoom(Long roomId, FileItem f) {
- try {
- if (roomId != null && f != null) {
- File mp4 = f.getFile(EXTENSION_MP4);
-
- File targetFolder = OmFileHelper.getStreamsSubDir(roomId);
-
- File target = new File(targetFolder, mp4.getName());
- if (mp4.exists() && !target.exists()) {
- FileUtils.copyFile(mp4, target, false);
- }
- }
- } catch (Exception err) {
- log.error("[copyFileToCurrentRoom] ", err);
- }
- }
-
- public void sendToWhiteboard(String uid, Long wbId, FileItem fi, String url, boolean clean) {
- ClientSessionInfo csi = sessionManager.getClientByPublicSIDAnyServer(uid);
- if (csi == null) {
- log.warn("No client was found to send Wml:: {}", uid);
- return;
- }
- Client client = csi.getRcl();
-
- List<?> wbObject = new ArrayList<>();
- switch (fi.getType()) {
- case Image:
- wbObject = getWbObject(fi, url);
- break;
- case Presentation:
- wbObject = getWbObject(fi, url);
- break;
- case Video:
- case Recording:
- wbObject = getMp4WbObject(fi, url);
- copyFileToRoom(client.getRoomId(), fi);
- break;
- default:
- }
- if (clean) {
- Map<String, Object> wbClear = new HashMap<>();
- wbClear.put("id", wbId);
- wbClear.put("param", Arrays.asList("whiteboard", new Date(), "clear", null));
-
- whiteboardCache.clear(client.getRoomId(), wbId);
- sendToScope(client.getRoomId(), "sendVarsToWhiteboardById", Arrays.asList(null, wbClear));
- }
- sendToWhiteboard(client, Arrays.asList("whiteboard", new Date(), "draw", wbObject), wbId);
- }
-
- private int sendToWhiteboard(Client client, List<?> wbObj, Long wbId) {
- try {
- // Check if this User is the Mod:
- if (client == null) {
- return -1;
- }
-
- Map<Integer, Object> whiteboardObj = new HashMap<>();
- int i = 0;
- for (Object obj : wbObj) {
- whiteboardObj.put(i++, obj);
- }
-
- Long roomId = client.getRoomId();
-
- // log.debug("***** sendVars: " + whiteboardObj);
-
- // Store event in list
- String action = whiteboardObj.get(2).toString();
-
- if (action.equals("deleteMindMapNodes")) {
- // Simulate Single Delete Events for z-Index
- List<?> actionObject = (List<?>) whiteboardObj.get(3);
-
- @SuppressWarnings("unchecked")
- List<List<?>> itemObjects = (List<List<?>>) actionObject.get(3);
-
- Map<Integer, Object> whiteboardTempObj = new HashMap<>();
- whiteboardTempObj.put(2, "delete");
-
- for (List<?> itemObject : itemObjects) {
- List<Object> tempActionObject = new ArrayList<>();
- tempActionObject.add("mindmapnode");
- tempActionObject.add(itemObject.get(0)); // z-Index -8
- tempActionObject.add(null); // simulate -7
- tempActionObject.add(null); // simulate -6
- tempActionObject.add(null); // simulate -5
- tempActionObject.add(null); // simulate -4
- tempActionObject.add(null); // simulate -3
- tempActionObject.add(null); // simulate -2
- tempActionObject.add(itemObject.get(1)); // Object-Name -1
-
- whiteboardTempObj.put(3, tempActionObject);
-
- whiteboardManager.add(roomId, whiteboardTempObj, wbId);
- }
- } else {
- whiteboardManager.add(roomId, whiteboardObj, wbId);
- }
-
- Map<String, Object> sendObject = new HashMap<>();
- sendObject.put("id", wbId);
- sendObject.put("param", wbObj);
-
- boolean showDrawStatus = getWhiteboardDrawStatus();
-
- sendToScope(roomId, "sendVarsToWhiteboardById", new Object[] { showDrawStatus ? client : null, sendObject });
- } catch (Exception err) {
- log.error("[sendToWhiteboard]", err);
- return -1;
- }
- return 1;
- }
-
public int sendMessage(Object newMessage) {
sendMessageToCurrentScope("sendVarsToMessage", newMessage, false);
return 1;
@@ -1867,10 +1653,6 @@ public class ScopeApplicationAdapter ext
return new ArrayList<>();
}
- private boolean getWhiteboardDrawStatus() {
- return cfgDao.getWhiteboardDrawStatus();
- }
-
public String getCryptKey() {
return cfgDao.getCryptKey();
}
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java Wed Apr 12 17:17:42 2017
@@ -100,7 +100,7 @@ public class ApplicationHelper {
OMContextListener omcl = new OMContextListener();
omcl.contextInitialized(new ServletContextEvent(sc));
XmlWebApplicationContext xmlContext = new XmlWebApplicationContext();
- xmlContext.setConfigLocation("classpath:openmeetings-applicationContext.xml");
+ xmlContext.setConfigLocation("classpath:applicationContext.xml");
xmlContext.setServletContext(sc);
xmlContext.refresh();
sc.setAttribute(ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, xmlContext);
Modified: openmeetings/application/trunk/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as (original)
+++ openmeetings/application/trunk/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as Wed Apr 12 17:17:42 2017
@@ -160,18 +160,9 @@ public class OmVideo {
}
}
- private function getUrl():String {
- var secure:Boolean = ('true' === params.secure);
- var url:String = (secure ? "rtmps" : "rtmp") + "://"
- + params.host + ":" + (secure ? params.rtmpsPort : params.rtmpPort)
- + "/" + params.app;
- //TODO fallback
- return url;
- }
-
private function publish(mode:String, name:String, cam:Camera, mic:Microphone, f:Function):void {
if (nc == null || !nc.connected) {
- var url:String = getUrl();
+ var url:String = params.url; //TODO fallback
debug("NetConnection is not connected", url);
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, function onConnectionStatus(e:NetStatusEvent):void {
Modified: openmeetings/application/trunk/openmeetings-server/src/site/xdoc/Clustering.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-server/src/site/xdoc/Clustering.xml?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-server/src/site/xdoc/Clustering.xml (original)
+++ openmeetings/application/trunk/openmeetings-server/src/site/xdoc/Clustering.xml Wed Apr 12 17:17:42 2017
@@ -80,7 +80,7 @@
</ul>
</section>
<section name="OM nodes configuration">
- <p>In the file <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/openmeetings-applicationContext.xml</tt>:</p>
+ <p>In the file <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/applicationContext.xml</tt>:</p>
<ul>
<li>
For each node uncomment line:
Modified: openmeetings/application/trunk/openmeetings-server/src/site/xdoc/voip-sip-integration.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-server/src/site/xdoc/voip-sip-integration.xml?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-server/src/site/xdoc/voip-sip-integration.xml (original)
+++ openmeetings/application/trunk/openmeetings-server/src/site/xdoc/voip-sip-integration.xml Wed Apr 12 17:17:42 2017
@@ -61,9 +61,12 @@
<a href="red5sip-integration_3.1.html">
Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 3.1+
</a>.<br/>
+ <a href="red5sip-integration_4.0.html">
+ Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 4.0+
+ </a>.<br/>
</p>
</section>
</body>
-</document>
\ No newline at end of file
+</document>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Wed Apr 12 17:17:42 2017
@@ -99,8 +99,7 @@ import org.apache.wicket.request.cycle.R
import org.apache.wicket.request.mapper.info.PageComponentInfo;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
-import org.apache.wicket.request.resource.JavaScriptResourceReference;
-import org.apache.wicket.resource.DynamicJQueryResourceReference;
+import org.apache.wicket.resource.JQueryResourceReference;
import org.apache.wicket.util.collections.ConcurrentHashSet;
import org.apache.wicket.validation.validator.UrlValidator;
import org.slf4j.Logger;
@@ -138,8 +137,7 @@ public class Application extends Authent
//chain of Resource Loaders, if not found it will search in Wicket's internal
//Resource Loader for a the property key
getResourceSettings().getStringResourceLoaders().add(0, new LabelResourceLoader());
- //FIXME TODO v3 on the way
- getJavaScriptLibrarySettings().setJQueryReference(new JavaScriptResourceReference(DynamicJQueryResourceReference.class, DynamicJQueryResourceReference.VERSION_2));
+ getJavaScriptLibrarySettings().setJQueryReference(JQueryResourceReference.getV3());
super.init();
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java Wed Apr 12 17:17:42 2017
@@ -34,16 +34,20 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.IUpdatable;
import org.apache.openmeetings.web.common.MainPanel;
+import org.apache.openmeetings.web.common.OmAjaxClientInfoBehavior;
import org.apache.openmeetings.web.room.RoomPanel;
import org.apache.openmeetings.web.room.SwfPanel;
+import org.apache.openmeetings.web.room.VideoSettings;
import org.apache.openmeetings.web.user.record.VideoInfo;
import org.apache.openmeetings.web.user.record.VideoPlayer;
+import org.apache.openmeetings.web.util.ExtendedClientProperties;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.EmptyPanel;
+import org.apache.wicket.protocol.http.request.WebClientInfo;
import org.apache.wicket.request.IRequestParameters;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValue;
@@ -137,9 +141,25 @@ public class HashPage extends BaseInited
}
}
StringValue swf = p.get(SWF);
- if (!swf.isEmpty() && (SWF_TYPE_NETWORK.equals(swf.toString()) || SWF_TYPE_SETTINGS.equals(swf.toString()))) {
- replace(new SwfPanel(PANEL_MAIN, p));
- error = false;
+ if (!swf.isEmpty()) {
+ if (SWF_TYPE_NETWORK.equals(swf.toString())) {
+ replace(new SwfPanel(PANEL_MAIN, p));
+ error = false;
+ }
+ if (SWF_TYPE_SETTINGS.equals(swf.toString())) {
+ replace(new VideoSettings(PANEL_MAIN).add(new OmAjaxClientInfoBehavior() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onClientInfo(AjaxRequestTarget target, WebClientInfo info) {
+ super.onClientInfo(target, info);
+ target.appendJavaScript(
+ VideoSettings.getInitScript((ExtendedClientProperties)info.getProperties(), "hibernate", "networktest")
+ .append("VideoSettings.open();"));
+ }
+ }));
+ error = false;
+ }
}
add(recContainer.add(vi.setShowShare(false).setOutputMarkupPlaceholderTag(true),
vp.setOutputMarkupPlaceholderTag(true)), new InvitationPasswordDialog("i-pass", this));
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Wed Apr 12 17:17:42 2017
@@ -27,8 +27,6 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import java.net.MalformedURLException;
-import java.net.URL;
import java.util.Calendar;
import java.util.List;
import java.util.Map.Entry;
@@ -36,7 +34,6 @@ import java.util.Set;
import java.util.UUID;
import org.apache.directory.api.util.Strings;
-import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.core.util.WebSocketHelper;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.dao.log.ConferenceLogDao;
@@ -65,6 +62,7 @@ import org.apache.openmeetings.web.room.
import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
import org.apache.openmeetings.web.room.sidebar.RoomSidebar;
import org.apache.openmeetings.web.room.wb.WbPanel;
+import org.apache.openmeetings.web.util.ExtendedClientProperties;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
@@ -77,14 +75,12 @@ import org.apache.wicket.markup.head.Jav
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.head.PriorityHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.protocol.http.ClientProperties;
import org.apache.wicket.protocol.ws.api.event.WebSocketPushPayload;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
-import com.github.openjson.JSONObject;
import com.googlecode.wicket.jquery.core.JQueryBehavior;
import com.googlecode.wicket.jquery.core.Options;
import com.googlecode.wicket.jquery.ui.interaction.droppable.Droppable;
@@ -113,30 +109,13 @@ public class RoomPanel extends BasePanel
@Override
protected void respond(AjaxRequestTarget target) {
target.appendJavaScript("setRoomSizes();");
+ ExtendedClientProperties cp = WebSession.get().getExtendedProperties();
getBean(ConferenceLogDao.class).add(
ConferenceLog.Type.roomEnter
, getUserId(), "0", r.getId()
- , WebSession.get().getClientInfo().getProperties().getRemoteAddress()
+ , cp.getRemoteAddress()
, "" + r.getId());
- //TODO SID etc
- try {
- URL url = new URL(WebSession.get().getExtendedProperties().getCodebase());
- String path = url.getPath();
- path = path.substring(1, path.indexOf('/', 2) + 1);
- ClientProperties cp = WebSession.get().getClientInfo().getProperties();
- target.appendJavaScript(String.format("VideoSettings.init(%s);", new JSONObject(getBean(ScopeApplicationAdapter.class).getFlashSettings().toString())
- .put("uid", getClient().getUid())
- .put("audioOnly", r.isAudioOnly())
- .put("SID", WebSession.getSid())
- .put("interview", Room.Type.interview == r.getType())
- .put("host", url.getHost())
- .put("app", path + r.getId())
- .put("wmode", cp.isBrowserInternetExplorer() && cp.getBrowserVersionMajor() == 11 ? "opaque" : "direct")
- .toString()
- ));
- } catch (NullPointerException|MalformedURLException e) {
- log.error("Error while constructing room parameters", e);
- }
+ target.appendJavaScript(VideoSettings.getInitScript(cp, "" + r.getId(), getClient().getUid()));
WebSocketHelper.sendRoom(new RoomMessage(r.getId(), getUserId(), RoomMessage.Type.roomEnter));
getMainPanel().getChat().roomEnter(r, target);
if (r.isFilesOpened()) {
@@ -616,10 +595,9 @@ public class RoomPanel extends BasePanel
public boolean screenShareAllowed() {
Room r = getRoom();
- org.apache.openmeetings.db.entity.room.Client rcl = RoomBroadcaster.getClient(getMainPanel().getClient().getUid());
return Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing)
&& r.isAllowRecording() && getClient().hasRight(Right.share)
- && getSharingUser() == null && rcl != null && rcl.getUserId() != null;
+ && getSharingUser() == null;
}
public RoomSidebar getSidebar() {
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.html?rev=1791161&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.html (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.html Wed Apr 12 17:17:42 2017
@@ -0,0 +1,90 @@
+<?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 id="video-settings" wicket:message="title:51, data-btn-save:144, data-btn-cancel:25" style="display:none;">
+ <div class="title"><wicket:message key="758"/></div>
+ <div class="sett-container">
+ <div class="opt-block">
+ <div class="sett-row">
+ <div><wicket:message key="52"/></div>
+ <div>
+ <select class="cam">
+ <option value="-1"><wicket:message key="159"/></option>
+ </select>
+ </div>
+ </div>
+ <div class="sett-row">
+ <div><wicket:message key="53"/></div>
+ <div>
+ <select class="mic">
+ <option value="-1"><wicket:message key="159"/></option>
+ </select>
+ </div>
+ </div>
+ <div class="sett-row">
+ <div class="clear">
+ <wicket:message key="1429"/>
+ <span class="warn ui-state-highlight" wicket:message="title:1430">
+ <span class="ui-icon ui-icon-alert"></span>
+ </span>
+ </div>
+ <div>
+ <select class="cam-resolution">
+ <option value="1" data-width="40" data-height="30">40x30 [4:3 (~6 KByte/sec)]</option>
+ <option value="2" data-width="80" data-height="60">80x60 [4:3 (~12 KByte/sec)]</option>
+ <option value="3" data-width="120" data-height="90" selected="selected">120x90 [4:3 (~20 KByte/sec)]</option>
+ <option value="4" data-width="160" data-height="120">160x120 [QQVGA 4:3 (~36 KByte/sec)]</option>
+ <option value="5" data-width="240" data-height="180">240x180 [4:3 (~40 KByte/sec)]</option>
+ <option value="6" data-width="320" data-height="240">320x240 [HVGA 4:3 (~56 KByte/sec)]</option>
+ <option value="7" data-width="480" data-height="360">480x360 [4:3 (~60 KByte/sec)]</option>
+ <option value="8" data-width="640" data-height="480">640x480 [4:3 (~68 KByte/sec)]</option>
+ <option value="9" data-width="1024" data-height="768">1024x768 [XGA 4:3]</option>
+ <option value="10" data-width="256" data-height="150">256x150 [16:9]</option>
+ <option value="11" data-width="432" data-height="240">432x240 [WQVGA 9:5]</option>
+ <option value="12" data-width="480" data-height="234">480x234 [pseudo 16:9]</option>
+ <option value="13" data-width="512" data-height="300">512x300 [16:9]</option>
+ <option value="14" data-width="640" data-height="360">640x360 [nHD 16:9]</option>
+ <option value="15" data-width="1024" data-height="600">1024x600 [16:9]</option>
+ </select>
+ </div>
+ </div>
+ <div class="sett-row right">
+ <div><button class="rec-start"><wicket:message key="775"/></button></div>
+ </div>
+ </div>
+ <div class="vid-block">
+ <div class="video-conainer"></div>
+ <div class="level-meter"></div>
+ <div class="sett-row right">
+ <div><button class="play"><wicket:message key="764"/></button></div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <span style="padding: 5px;">
+ <span class="ui-icon ui-icon-info"></span>
+ </span>
+ <wicket:message key="765"/>
+ </div>
+ </div>
+</wicket:panel>
+</html>
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java?rev=1791161&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java Wed Apr 12 17:17:42 2017
@@ -0,0 +1,95 @@
+/*
+ * 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.room;
+
+import static org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter.FLASH_FPS;
+import static org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter.FLASH_NATIVE_SSL;
+import static org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter.FLASH_PORT;
+import static org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter.FLASH_SECURE;
+import static org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter.FLASH_SSL_PORT;
+import static org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter.FLASH_VIDEO_CODEC;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.net.URL;
+
+import org.apache.directory.api.util.Strings;
+import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.util.ExtendedClientProperties;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+import com.github.openjson.JSONObject;
+
+public class VideoSettings extends Panel {
+ private final static long serialVersionUID = 1L;
+ private final static Logger log = Red5LoggerFactory.getLogger(VideoSettings.class, webAppRootKey);
+ private final static ResourceReference SETTINGS_JS_REFERENCE = new JavaScriptResourceReference(VideoSettings.class, "settings.js");
+ private final static String URL = "url";
+ private final static String FALLBACK = "fallback";
+
+ public VideoSettings(String id) {
+ super(id);
+ }
+
+ @Override
+ public void renderHead(IHeaderResponse response) {
+ super.renderHead(response);
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(SETTINGS_JS_REFERENCE)));
+ }
+
+ private static String getUri(String protocol, String host, Object port, String app) {
+ return String.format("%s://%s:%s/%s", protocol, host, port, app);
+ }
+
+ public static StringBuilder getInitScript(ExtendedClientProperties cp, String scope, String uid) {
+ JSONObject gs = getBean(ScopeApplicationAdapter.class).getFlashSettings();
+ JSONObject s = new JSONObject()
+ .put(FLASH_VIDEO_CODEC, gs.get(FLASH_VIDEO_CODEC))
+ .put(FLASH_FPS, gs.get(FLASH_FPS))
+ .put("SID", WebSession.getSid())
+ .put("wmode", cp.isBrowserInternetExplorer() && cp.getBrowserVersionMajor() == 11 ? "opaque" : "direct");
+ if (!Strings.isEmpty(uid)) {
+ s.put("uid", uid);
+ }
+ try {
+ URL url = new URL(cp.getCodebase());
+ String path = url.getPath();
+ path = path.substring(1, path.indexOf('/', 2) + 1) + scope;
+ if (gs.getBoolean(FLASH_SECURE)) {
+ s.put(FLASH_NATIVE_SSL, gs.get(FLASH_NATIVE_SSL));
+ s.put(URL, getUri("rtmps", url.getHost(), gs.getString(FLASH_SSL_PORT), path));
+ s.put(FALLBACK, getUri("rtmps", url.getHost(), url.getPort(), path));
+ } else {
+ s.put(URL, getUri("rtmp", url.getHost(), gs.getString(FLASH_PORT), path));
+ s.put(FALLBACK, getUri("rtmpt", url.getHost(), url.getPort(), path));
+ }
+ } catch (Exception e) {
+ log.error("Error while constructing video settings parameters", e);
+ }
+ return new StringBuilder("VideoSettings.init(").append(s.toString()).append(");");
+ }
+}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js Wed Apr 12 17:17:42 2017
@@ -16,19 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-function initVideo(el, id, options) {
- var type = 'application/x-shockwave-flash';
- var src = 'public/main.swf?cache' + new Date().getTime();
- var o = $('<object>').attr('id', id).attr('type', type).attr('data', src).attr('width', options.width).attr('height', options.height);
- o.append($('<param>').attr('name', 'quality').attr('value', 'best'))
- .append($('<param>').attr('name', 'wmode').attr('value', options.wmode))
- .append($('<param>').attr('name', 'allowscriptaccess').attr('value', 'sameDomain'))
- .append($('<param>').attr('name', 'allowfullscreen').attr('value', 'false'))
- .append($('<param>').attr('name', 'flashvars').attr('value', $.param(options)));
- el.append(o);
- return o;
-}
-
function setRoomSizes() {
var sb = $(".room.sidebar.left")
, w = $(window).width() - sb.width() - 5
@@ -92,156 +79,6 @@ function startPrivateChat(el) {
Chat.open();
$('#chatMessage .wysiwyg-editor').click();
}
-var VideoSettings = (function() {
- var self = {}, vs, lm, swf, s, cam, mic, res,
- vidScroll, recBtn, playBtn, inited = false, recAllowed = false;
- function _load() {
- s = {};
- try {
- s = JSON.parse(localStorage.getItem('openmeetings')) || s;
- } catch (e) {}
- if (!s.video) {
- s.video = {};
- }
- }
- function _save() {
- localStorage.setItem('openmeetings', JSON.stringify(s));
- }
- function _init(options) {
- vs = $('#video-settings');
- lm = vs.find('.level-meter');
- cam = vs.find('select.cam');
- mic = vs.find('select.mic');
- res = vs.find('select.cam-resolution');
- vidScroll = vs.find('.vid-block .video-conainer');
- recBtn = vs.find('.rec-start').click(function() {
- recBtn.prop('disabled', true).button('refresh'); //TODO disable drop-downs
- swf.startRec();
- });
- playBtn = vs.find('.play').click(function() {
- swf.play();
- });
- vs.dialog({
- classes: {
- 'ui-dialog': 'ui-corner-all video'
- }
- , width: 640
- , autoOpen: false
- , buttons: [
- {
- text: vs.data('btn-save')
- , icons: {
- primary: "ui-icon-disk"
- }
- , click: function() {
- _save();
- vs.dialog("close");
- }
- }
- , {
- text: vs.data('btn-cancel')
- , click: function() {
- vs.dialog("close");
- }
- }
- ]
- });
- lm.progressbar({ value: 0 });
- options.width = 300;
- options.height = 200;
- swf = initVideo(vidScroll, 'video-settings-swf', options)[0];
- vs.find('input, button').prop('disabled', true);
- vs.find('button').button();
- var rr = vs.find('.cam-resolution').parent('.sett-row');
- if (!!options.interview) {
- rr.show();
- } else {
- rr.hide();
- }
- _load();
- }
- function _updateRec() {
- recBtn.prop('disabled', !recAllowed && (s.video.cam > -1 || s.video.mic > -1)).button('refresh');
- }
- function _readValues() {
- s.video.cam = 1 * cam.val();
- s.video.mic = 1 * mic.val();
- var o = res.find('option:selected').data();
- s.video.width = o.width;
- s.video.height = o.height;
- $(swf).attr('width', Math.max(300, s.video.width)).attr('height', Math.max(200, s.video.height));
- vidScroll.scrollLeft(Math.max(0, s.video.width / 2 - 150))
- .scrollTop(Math.max(0, s.video.height / 2 - 110));
- _updateRec();
- }
-
- function _allowRec(allow) {
- recAllowed = allow;
- _updateRec();
- }
- function _allowPlay() {
- _updateRec();
- playBtn.prop('disabled', false).button('refresh');
- }
- function _micActivity(level) {
- console.log("activity: ", level)
- lm.progressbar("value", Math.max(0, level));
- }
- function _initSwf() {
- if (!inited) {
- var obj = swf.getDevices();
- for (var i = 0; i < obj.cams.length; ++i) {
- var o = $('<option></option>').attr('value', i).text(obj.cams[i]);
- if (i == s.video.cam) {
- o.prop('selected', true);
- }
- cam.append(o);
- }
- cam.prop('disabled', false).change(function() {
- _readValues();
- swf.camChanged(s.video.cam);
- });
- for (var i = 0; i < obj.mics.length; ++i) {
- var o = $('<option></option>').attr('value', i).text(obj.mics[i]);
- if (i == s.video.mic) {
- o.prop('selected', true);
- }
- mic.append(o);
- }
- mic.prop('disabled', false).change(function() {
- _readValues();
- swf.micChanged(s.video.mic);
- });
- res.change(function() {
- _readValues();
- swf.resChanged(s.video.width, s.video.height);
- });
- res.find('option').each(function(idx) {
- var o = $(this).data();
- if (o.width == s.video.width && o.height == s.video.height) {
- $(this).prop('selected', true);
- return false;
- }
- });
- }
- _readValues();
- swf.init(s.video.cam, s.video.mic, s.video.width, s.video.height);
- }
- function _open() {
- recAllowed = false;
- vs.dialog('open');
- }
- return {
- init: _init
- , initSwf: _initSwf
- , open: _open
- , allowRec: _allowRec
- , allowPlay: _allowPlay
- , micActivity: _micActivity
- , close: function() { vs.dialog('close'); }
- };
-})();
-
/***** functions required by SIP ******/
function sipBtnClick() {
var txt = $('.sip-number');
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings.js
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings.js?rev=1791161&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings.js (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings.js Wed Apr 12 17:17:42 2017
@@ -0,0 +1,179 @@
+/**
+ * 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.
+ */
+function initVideo(el, id, options) {
+ var type = 'application/x-shockwave-flash';
+ var src = 'public/main.swf?cache' + new Date().getTime();
+ var o = $('<object>').attr('id', id).attr('type', type).attr('data', src).attr('width', options.width).attr('height', options.height);
+ o.append($('<param>').attr('name', 'quality').attr('value', 'best'))
+ .append($('<param>').attr('name', 'wmode').attr('value', options.wmode))
+ .append($('<param>').attr('name', 'allowscriptaccess').attr('value', 'sameDomain'))
+ .append($('<param>').attr('name', 'allowfullscreen').attr('value', 'false'))
+ .append($('<param>').attr('name', 'flashvars').attr('value', $.param(options)));
+ el.append(o);
+ return o;
+}
+var VideoSettings = (function() {
+ var self = {}, vs, lm, swf, s, cam, mic, res,
+ vidScroll, recBtn, playBtn, inited = false, recAllowed = false;
+ function _load() {
+ s = {};
+ try {
+ s = JSON.parse(localStorage.getItem('openmeetings')) || s;
+ } catch (e) {}
+ if (!s.video) {
+ s.video = {};
+ }
+ }
+ function _save() {
+ localStorage.setItem('openmeetings', JSON.stringify(s));
+ }
+ function _init(options) {
+ vs = $('#video-settings');
+ lm = vs.find('.level-meter');
+ cam = vs.find('select.cam');
+ mic = vs.find('select.mic');
+ res = vs.find('select.cam-resolution');
+ vidScroll = vs.find('.vid-block .video-conainer');
+ recBtn = vs.find('.rec-start').click(function() {
+ recBtn.prop('disabled', true).button('refresh'); //TODO disable drop-downs
+ swf.startRec();
+ });
+ playBtn = vs.find('.play').click(function() {
+ swf.play();
+ });
+ vs.dialog({
+ classes: {
+ 'ui-dialog': 'ui-corner-all video'
+ }
+ , width: 640
+ , autoOpen: false
+ , buttons: [
+ {
+ text: vs.data('btn-save')
+ , icons: {
+ primary: "ui-icon-disk"
+ }
+ , click: function() {
+ _save();
+ vs.dialog("close");
+ }
+ }
+ , {
+ text: vs.data('btn-cancel')
+ , click: function() {
+ vs.dialog("close");
+ }
+ }
+ ]
+ });
+ lm.progressbar({ value: 0 });
+ options.width = 300;
+ options.height = 200;
+ swf = initVideo(vidScroll, 'video-settings-swf', options)[0];
+ vs.find('input, button').prop('disabled', true);
+ vs.find('button').button();
+ var rr = vs.find('.cam-resolution').parent('.sett-row');
+ if (!!options.interview) {
+ rr.show();
+ } else {
+ rr.hide();
+ }
+ _load();
+ }
+ function _updateRec() {
+ recBtn.prop('disabled', !recAllowed && (s.video.cam > -1 || s.video.mic > -1)).button('refresh');
+ }
+ function _readValues() {
+ s.video.cam = 1 * cam.val();
+ s.video.mic = 1 * mic.val();
+ var o = res.find('option:selected').data();
+ s.video.width = o.width;
+ s.video.height = o.height;
+ $(swf).attr('width', Math.max(300, s.video.width)).attr('height', Math.max(200, s.video.height));
+ vidScroll.scrollLeft(Math.max(0, s.video.width / 2 - 150))
+ .scrollTop(Math.max(0, s.video.height / 2 - 110));
+ _updateRec();
+ }
+
+ function _allowRec(allow) {
+ recAllowed = allow;
+ _updateRec();
+ }
+ function _allowPlay() {
+ _updateRec();
+ playBtn.prop('disabled', false).button('refresh');
+ }
+ function _micActivity(level) {
+ console.log("activity: ", level)
+ lm.progressbar("value", Math.max(0, level));
+ }
+ function _initSwf() {
+ if (!inited) {
+ var obj = swf.getDevices();
+ for (var i = 0; i < obj.cams.length; ++i) {
+ var o = $('<option></option>').attr('value', i).text(obj.cams[i]);
+ if (i == s.video.cam) {
+ o.prop('selected', true);
+ }
+ cam.append(o);
+ }
+ cam.prop('disabled', false).change(function() {
+ _readValues();
+ swf.camChanged(s.video.cam);
+ });
+ for (var i = 0; i < obj.mics.length; ++i) {
+ var o = $('<option></option>').attr('value', i).text(obj.mics[i]);
+ if (i == s.video.mic) {
+ o.prop('selected', true);
+ }
+ mic.append(o);
+ }
+ mic.prop('disabled', false).change(function() {
+ _readValues();
+ swf.micChanged(s.video.mic);
+ });
+ res.change(function() {
+ _readValues();
+ swf.resChanged(s.video.width, s.video.height);
+ });
+ res.find('option').each(function(idx) {
+ var o = $(this).data();
+ if (o.width == s.video.width && o.height == s.video.height) {
+ $(this).prop('selected', true);
+ return false;
+ }
+ });
+ }
+ _readValues();
+ swf.init(s.video.cam, s.video.mic, s.video.width, s.video.height);
+ }
+ function _open() {
+ recAllowed = false;
+ vs.dialog('open');
+ }
+ return {
+ init: _init
+ , initSwf: _initSwf
+ , open: _open
+ , allowRec: _allowRec
+ , allowPlay: _allowPlay
+ , micActivity: _micActivity
+ , close: function() { vs.dialog('close'); }
+ };
+})();
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html Wed Apr 12 17:17:42 2017
@@ -40,71 +40,6 @@
<form wicket:id="form"><div wicket:id="confirm-trash"></div></form>
<div wicket:id="upload"></div>
<div wicket:id="confirm-kick" />
- <div id="video-settings" wicket:message="title:51, data-btn-save:144, data-btn-cancel:25" style="display:none;">
- <div class="title"><wicket:message key="758"/></div>
- <div class="sett-container">
- <div class="opt-block">
- <div class="sett-row">
- <div><wicket:message key="52"/></div>
- <div>
- <select class="cam">
- <option value="-1"><wicket:message key="159"/></option>
- </select>
- </div>
- </div>
- <div class="sett-row">
- <div><wicket:message key="53"/></div>
- <div>
- <select class="mic">
- <option value="-1"><wicket:message key="159"/></option>
- </select>
- </div>
- </div>
- <div class="sett-row">
- <div class="clear">
- <wicket:message key="1429"/>
- <span class="warn ui-state-highlight" wicket:message="title:1430">
- <span class="ui-icon ui-icon-alert"></span>
- </span>
- </div>
- <div>
- <select class="cam-resolution">
- <option value="1" data-width="40" data-height="30">40x30 [4:3 (~6 KByte/sec)]</option>
- <option value="2" data-width="80" data-height="60">80x60 [4:3 (~12 KByte/sec)]</option>
- <option value="3" data-width="120" data-height="90" selected="selected">120x90 [4:3 (~20 KByte/sec)]</option>
- <option value="4" data-width="160" data-height="120">160x120 [QQVGA 4:3 (~36 KByte/sec)]</option>
- <option value="5" data-width="240" data-height="180">240x180 [4:3 (~40 KByte/sec)]</option>
- <option value="6" data-width="320" data-height="240">320x240 [HVGA 4:3 (~56 KByte/sec)]</option>
- <option value="7" data-width="480" data-height="360">480x360 [4:3 (~60 KByte/sec)]</option>
- <option value="8" data-width="640" data-height="480">640x480 [4:3 (~68 KByte/sec)]</option>
- <option value="9" data-width="1024" data-height="768">1024x768 [XGA 4:3]</option>
- <option value="10" data-width="256" data-height="150">256x150 [16:9]</option>
- <option value="11" data-width="432" data-height="240">432x240 [WQVGA 9:5]</option>
- <option value="12" data-width="480" data-height="234">480x234 [pseudo 16:9]</option>
- <option value="13" data-width="512" data-height="300">512x300 [16:9]</option>
- <option value="14" data-width="640" data-height="360">640x360 [nHD 16:9]</option>
- <option value="15" data-width="1024" data-height="600">1024x600 [16:9]</option>
- </select>
- </div>
- </div>
- <div class="sett-row right">
- <div><button class="rec-start"><wicket:message key="775"/></button></div>
- </div>
- </div>
- <div class="vid-block">
- <div class="video-conainer"></div>
- <div class="level-meter"></div>
- <div class="sett-row right">
- <div><button class="play"><wicket:message key="764"/></button></div>
- </div>
- </div>
- </div>
- <div>
- <span style="padding: 5px;">
- <span class="ui-icon ui-icon-info"></span>
- </span>
- <wicket:message key="765"/>
- </div>
- </div>
+ <div wicket:id="settings" />
</wicket:panel>
</html>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java Wed Apr 12 17:17:42 2017
@@ -34,12 +34,13 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.room.Room.Right;
import org.apache.openmeetings.db.entity.room.Room.RoomElement;
import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.common.NameDialog;
import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
import org.apache.openmeetings.web.common.ConfirmableAjaxBorder.ConfirmableBorderDialog;
+import org.apache.openmeetings.web.common.NameDialog;
import org.apache.openmeetings.web.room.RoomBroadcaster;
import org.apache.openmeetings.web.room.RoomPanel;
import org.apache.openmeetings.web.room.RoomPanel.Action;
+import org.apache.openmeetings.web.room.VideoSettings;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -89,6 +90,7 @@ public class RoomSidebar extends Panel {
private boolean avInited = false;
private int selectedIdx = 0;
private Client kickedClient;
+ private VideoSettings settings = new VideoSettings("settings");
private final ListView<Client> users = new ListView<Client>("user", new ArrayList<Client>()) {
private static final long serialVersionUID = 1L;
@@ -314,7 +316,7 @@ public class RoomSidebar extends Panel {
@Override
protected void onInitialize() {
super.onInitialize();
- add(addFolder);
+ add(addFolder, settings);
add(toggleRight, toggleActivity, roomAction, avSettings);
add(confirmKick = new ConfirmableAjaxBorder("confirm-kick", getString("603"), getString("605")) {
private static final long serialVersionUID = 1L;
Copied: openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml (from r1791160, openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml?p2=openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml&p1=openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml&r1=1791160&r2=1791161&rev=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml Wed Apr 12 17:17:42 2017
@@ -204,7 +204,6 @@
<bean id="importInitvalues" class="org.apache.openmeetings.installation.ImportInitvalues" />
<bean id="ldapLoginManagement" class="org.apache.openmeetings.core.ldap.LdapLoginManagement" />
<bean id="timezoneUtil" class="org.apache.openmeetings.db.util.TimezoneUtil" />
- <bean id="whiteboardManager" class="org.apache.openmeetings.core.data.whiteboard.WhiteboardManager" />
<bean id="backupExport" class="org.apache.openmeetings.backup.BackupExport" />
<bean id="backupImport" class="org.apache.openmeetings.backup.BackupImport" />
<bean id="appointmentManager" class="org.apache.openmeetings.service.calendar.caldav.AppointmentManager" destroy-method="destroy"/>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml Wed Apr 12 17:17:42 2017
@@ -37,5 +37,5 @@
<property name="virtualHosts" value="${webapp.virtualHosts}" />
</bean>
- <import resource="classes/openmeetings-applicationContext.xml" />
+ <import resource="classes/applicationContext.xml" />
</beans>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/web.xml?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/web.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/web.xml Wed Apr 12 17:17:42 2017
@@ -35,7 +35,7 @@
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<init-param>
<param-name>config-location</param-name>
- <param-value>classpath:openmeetings-applicationContext.xml</param-value>
+ <param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
Modified: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java Wed Apr 12 17:17:42 2017
@@ -32,7 +32,7 @@ import org.springframework.test.context.
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({})
-@ContextConfiguration(locations={"classpath:openmeetings-applicationContext.xml"}, inheritLocations = true)
+@ContextConfiguration(locations={"classpath:applicationContext.xml"}, inheritLocations = true)
public abstract class AbstractSpringTest extends AbstractJUnit4SpringContextTests {
@BeforeClass
Modified: openmeetings/application/trunk/pom.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/pom.xml?rev=1791161&r1=1791160&r2=1791161&view=diff
==============================================================================
--- openmeetings/application/trunk/pom.xml (original)
+++ openmeetings/application/trunk/pom.xml Wed Apr 12 17:17:42 2017
@@ -40,7 +40,7 @@
<maven.javadoc.version>2.10.3</maven.javadoc.version>
<maven.surefire.version>2.19.1</maven.surefire.version>
<maven-site.version>3.3</maven-site.version>
- <wicket.version>8.0.0-M5</wicket.version>
+ <wicket.version>8.0.0-SNAPSHOT</wicket.version>
<wicketju.version>8.0.0-M5</wicketju.version>
<wickets.version>8.0.0-M5</wickets.version>
<red5-server.version>1.0.9-M6</red5-server.version>