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 2016/04/14 19:08:52 UTC
svn commit: r1739141 [1/3] - in /openmeetings/application/trunk: ./
openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/
openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/
openmeetings-core/src/main/java/org/apache/op...
Author: solomax
Date: Thu Apr 14 17:08:51 2016
New Revision: 1739141
URL: http://svn.apache.org/viewvc?rev=1739141&view=rev
Log:
[OPENMEETINGS-895] changes from 3.2.0 are backported to trunk
Added:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmButton.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomBroadcaster.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.html
- copied unchanged from r1739139, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.java
- copied, changed from r1739126, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
- copied, changed from r1739126, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
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
Removed:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
Modified:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.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/UserService.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/store/HashMapStore.java
openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java
openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/ISessionManager.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
openmeetings/application/trunk/openmeetings-flash/openlaszlo.xml
openmeetings/application/trunk/openmeetings-flash/pom.xml
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
openmeetings/application/trunk/openmeetings-server/src/site/xdoc/RTMPSAndHTTPS.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/app/Application.properties.xml
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuItem.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/RoomMenuItem.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
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/activities/ActivitiesPanel.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/web.xml
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/activities.css
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css
openmeetings/application/trunk/openmeetings-web/src/main/webapp/js/history.js
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
openmeetings/application/trunk/pom.xml
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java Thu Apr 14 17:08:51 2016
@@ -132,7 +132,7 @@ public class FlvExplorerConverter extend
Matcher matcher = p.matcher(txt);
- while ( matcher.find() ) {
+ while (matcher.find()) {
String foundResolution = txt.substring(matcher.start(), matcher.end());
String[] resultions = foundResolution.split("x");
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java Thu Apr 14 17:08:51 2016
@@ -168,9 +168,9 @@ public class LdapLoginManagement {
User u = null;
try (LdapWorker w = new LdapWorker(domainId)) {
if (w.options.useLowerCase) {
- login = login.toLowerCase();
- }
-
+ login = login.toLowerCase();
+ }
+
boolean authenticated = true;
Dn userDn = null;
Entry entry = null;
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=1739141&r1=1739140&r2=1739141&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 Thu Apr 14 17:08:51 2016
@@ -31,6 +31,7 @@ import org.apache.openmeetings.core.remo
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.SOAPLoginDao;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
@@ -86,6 +87,8 @@ public class MainService implements IPen
@Autowired
private UserDao userDao;
@Autowired
+ private RoomDao roomDao;
+ @Autowired
private AppointmentDao appointmentDao;
@Autowired
private SOAPLoginDao soapLoginDao;
@@ -131,6 +134,15 @@ public class MainService implements IPen
return null;
}
+ /**
+ * load this session id before doing anything else
+ *
+ * @return a unique session identifier
+ */
+ public Sessiondata getsessiondata() {
+ return sessiondataDao.startsession();
+ }
+
public Long setCurrentUserGroup(String SID, Long groupId) {
try {
sessiondataDao.updateUserGroup(SID, groupId);
@@ -188,7 +200,40 @@ public class MainService implements IPen
}
return allowed;
}
-
+
+ public User loginWicket(String wicketSID, Long wicketroomid) {
+ log.debug("[loginWicket] wicketSID: '{}'; wicketroomid: '{}'", wicketSID, wicketroomid);
+ Long userId = sessiondataDao.checkSession(wicketSID);
+ User u = userId == null ? null : userDao.get(userId);
+ if (u != null && wicketroomid != null) {
+ log.debug("[loginWicket] user and roomid are not empty: " + userId + ", " + wicketroomid);
+ if (isRoomAllowedToUser(roomDao.get(wicketroomid), u)) {
+ IConnection current = Red5.getConnectionLocal();
+ String streamId = current.getClient().getId();
+ Client currentClient = sessionManager.getClientByStreamId(streamId, null);
+
+ if (!u.getGroupUsers().isEmpty()) {
+ u.setSessionData(sessiondataDao.getSessionByHash(wicketSID));
+ 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 u;
+ }
+ }
+ }
+ return null;
+ }
+
public Object secureLoginByRemote(String SID, String secureHash) {
try {
log.debug("############### secureLoginByRemote " + secureHash);
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java Thu Apr 14 17:08:51 2016
@@ -79,6 +79,22 @@ public class UserService implements IUse
}
/**
+ * refreshes the current SID
+ *
+ * @param SID
+ * @return "ok" string in case of success, "error" string in case of the error
+ */
+ public String refreshSession(String SID) {
+ try {
+ sessiondataDao.checkSession(SID);
+ return "ok";
+ } catch (Exception err) {
+ log.error("[refreshSession]", err);
+ }
+ return "error";
+ }
+
+ /**
* gets a whole user-list(admin-role only)
*
* @param SID
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=1739141&r1=1739140&r2=1739141&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 Thu Apr 14 17:08:51 2016
@@ -126,6 +126,7 @@ public class ScopeApplicationAdapter ext
getCryptKey();
// init your handler here
+
for (String scopeName : scope.getScopeNames()) {
log.debug("scopeName :: " + scopeName);
}
@@ -154,6 +155,8 @@ public class ScopeApplicationAdapter ext
Map<String, Object> map = conn.getConnectParams();
String swfURL = map.containsKey("swfUrl") ? (String)map.get("swfUrl") : "";
+ String tcUrl = map.containsKey("tcUrl") ? (String)map.get("tcUrl") : "";
+ String uid = params != null && params.length > 0 ? (String)params[0] : "";
Client parentClient = null;
//TODO add similar code for other connections
@@ -164,9 +167,15 @@ public class ScopeApplicationAdapter ext
return rejectClient();
}
}
- Client rcm = sessionManager.addClientListItem(conn.getClient().getId(),
- conn.getScope().getName(), conn.getRemotePort(),
- conn.getRemoteAddress(), swfURL, null);
+ Client rcm = new Client();
+ rcm.setStreamid(conn.getClient().getId());
+ rcm.setScope(conn.getScope().getName());
+ rcm.setUserport(conn.getRemotePort());
+ rcm.setUserip(conn.getRemoteAddress());
+ rcm.setSwfurl(swfURL);
+ rcm.setTcUrl(tcUrl);
+ rcm.setPublicSID(uid);
+ rcm = sessionManager.add(rcm, null);
if (rcm == null) {
log.warn("Failed to create Client on room connect");
return false;
@@ -182,13 +191,13 @@ public class ScopeApplicationAdapter ext
SessionVariablesUtil.setIsScreenClient(conn.getClient());
rcm.setUserId(parentClient.getUserId());
- Long uid = rcm.getUserId();
- SessionVariablesUtil.setUserId(conn.getClient(), uid);
+ Long userId = rcm.getUserId();
+ SessionVariablesUtil.setUserId(conn.getClient(), userId);
rcm.setStreamPublishName(parentSid);
User u = null;
- if (uid != null) {
- long _uid = uid.longValue();
+ if (userId != null) {
+ long _uid = userId.longValue();
u = userDao.get(_uid < 0 ? -_uid : _uid);
}
if (u != null) {
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java Thu Apr 14 17:08:51 2016
@@ -35,6 +35,7 @@ import org.apache.openmeetings.db.dto.ba
import org.apache.openmeetings.db.dto.server.ClientSessionInfo;
import org.apache.openmeetings.db.entity.room.Client;
import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.wicket.util.string.Strings;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -74,6 +75,28 @@ public class SessionManager implements I
}
@Override
+ public Client add(Client c, Server server) {
+ if (server == null) {
+ server = serverUtil.getCurrentServer();
+ }
+ c.setConnectedSince(new Date());
+ if (Strings.isEmpty(c.getPublicSID())) {
+ c.setPublicSID(UUID.randomUUID().toString());
+ }
+ c.setServer(server);
+ c.setIsMod(false);
+ c.setCanDraw(false);
+
+ if (cache.containsKey(null, c.getStreamid())) {
+ log.error("Tried to add an existing Client " + c.getStreamid());
+ return null;
+ }
+
+ cache.put(c.getStreamid(), c);
+ return c;
+ }
+
+ @Override
public Client addClientListItem(String streamId, String scopeName,
int remotePort, String remoteAddress, String swfUrl, Server server) {
if (server == null) {
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/store/HashMapStore.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/store/HashMapStore.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/store/HashMapStore.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/store/HashMapStore.java Thu Apr 14 17:08:51 2016
@@ -53,7 +53,7 @@ public class HashMapStore implements ICl
protected static final Logger log = Red5LoggerFactory.getLogger(HashMapStore.class, webAppRootKey);
private Map<String, Client> clientsByStreamId = new ConcurrentHashMap<>();
-
+
@Override
public void clear() {
clientsByStreamId = new ConcurrentHashMap<>();
Modified: openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java Thu Apr 14 17:08:51 2016
@@ -56,7 +56,7 @@ public class TestMailSending {
*/
@Test
public void doTestSendEmail() {
- try{
+ try {
Transport.send(getMimeMessage());
} catch (Exception err) {
log.error("Error", err);
Modified: openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java Thu Apr 14 17:08:51 2016
@@ -23,7 +23,7 @@ import org.junit.Test;
public class TestMD5 {
@Test
- public void testTestMD5(){
+ public void testTestMD5() {
}
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java Thu Apr 14 17:08:51 2016
@@ -191,7 +191,7 @@ public class ConfigurationDao implements
public Configuration get(long id) {
return get(Long.valueOf(id));
}
-
+
@Override
public Configuration get(Long id) {
if (id == null) {
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java Thu Apr 14 17:08:51 2016
@@ -27,6 +27,7 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -88,6 +89,17 @@ public class LabelDao implements IDataPr
public static final Set<String> keys = new HashSet<String>();
private static Class<?> APP = null;
+ public List<Map<String, Object>> getStrings(Long language_id, int start, int count) {
+ List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
+ for (int i = 0; i < count; ++i) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", start + i);
+ map.put("value", getString(start + i, language_id));
+ result.add(map);
+ }
+ return result;
+ }
+
private static void storeLanguages() throws Exception {
Document d = XmlExport.createDocument();
Element r = XmlExport.createRoot(d, "language");
@@ -287,7 +299,7 @@ public class LabelDao implements IDataPr
public StringLabel get(long id) {
throw new RuntimeException("Should not be used");
}
-
+
@Override
public StringLabel get(Long id) {
throw new RuntimeException("Should not be used");
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/ISessionManager.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/ISessionManager.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/ISessionManager.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/ISessionManager.java Thu Apr 14 17:08:51 2016
@@ -42,6 +42,7 @@ public interface ISessionManager {
*/
void sessionStart();
+ Client add(Client c, Server server);
/**
* add a new client item
*
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java Thu Apr 14 17:08:51 2016
@@ -287,6 +287,9 @@ public class Client implements IDataProv
// FIXME: Move to {@link ClientSession}
@Column(name = "swfurl", length=2048)
private String swfurl;
+
+ @Column(name = "tcurl", length=2048)
+ private String tcUrl;
/**
* @see Client#getIsRecording()
@@ -863,6 +866,14 @@ public class Client implements IDataProv
this.mobile = mobile;
}
+ public String getTcUrl() {
+ return tcUrl;
+ }
+
+ public void setTcUrl(String tcUrl) {
+ this.tcUrl = tcUrl;
+ }
+
@Override
public String toString() {
return "Client [streamid=" + streamid + ", publicSID=" + publicSID + ", isScreenClient=" + screenClient
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java Thu Apr 14 17:08:51 2016
@@ -144,7 +144,7 @@ public class PrivateMessage implements I
isContactRequest = copy.isContactRequest;
userContactId = copy.userContactId;
}
-
+
@Override
public Long getId() {
return id;
Modified: openmeetings/application/trunk/openmeetings-flash/openlaszlo.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-flash/openlaszlo.xml?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-flash/openlaszlo.xml (original)
+++ openmeetings/application/trunk/openmeetings-flash/openlaszlo.xml Thu Apr 14 17:08:51 2016
@@ -40,17 +40,6 @@
<target name="client.debug.only" depends="compile.flex.debug,compile.laszlo.networktesting.debug" />
<target name="-compile.flash" description="compile flash application">
- <!-- commented for now
- <echo message="flash.src.dir == '${flash.src.dir}'" />
- <echo message="classpathref == '${flash.classpath.ref}'" />
- <echo message="laszlo.home == '${flash.lps.home}'" />
- <echo message="flash.debug == '${flash.debug}'" />
- <echo message="laszlo.proxied == '${laszlo.proxied}'" />
- <echo message="flash.runtime == '${flash.runtime}'" />
- <echo message="out.dir.swf == '${out.dir.swf}'" />
- <echo message="flash.main.file == '${flash.main.file}'" />
- <echo message="flash.out.file == '${flash.out.file}'" />
- -->
<java classname="org.openlaszlo.compiler.Main" fork="true" newenvironment="true" failonerror="true" dir="${flash.src.dir}" classpathref="${flash.classpath.ref}">
<jvmarg value="-DLPS_HOME=${flash.lps.home}" />
<jvmarg value="-Dlzdebug=false" />
@@ -66,7 +55,7 @@
<param name="flash.classpath.ref" value="laszlo46.lib" />
<param name="flash.src.dir" value="${laszlo.as3.src.dir}/networkTesting" />
<param name="flash.lps.home" value="${laszlo46.home}" />
- <param name="flash.runtime" value="swf10" />
+ <param name="flash.runtime" value="swf11" />
<param name="flash.main.file" value="networktesting.lzx" />
<param name="flash.out.file" value="networktesting.swf10.swf" />
<param name="flash.debug" value="" />
@@ -78,7 +67,7 @@
<param name="flash.classpath.ref" value="laszlo46.lib" />
<param name="flash.src.dir" value="${laszlo.as3.src.dir}/networkTesting" />
<param name="flash.lps.home" value="${laszlo46.home}" />
- <param name="flash.runtime" value="swf10" />
+ <param name="flash.runtime" value="swf11" />
<param name="flash.main.file" value="networktesting.lzx" />
<param name="flash.out.file" value="networktestingdebug.swf10.swf" />
<param name="flash.debug" value="--debug" />
@@ -94,7 +83,7 @@
</condition>
<target name="if_windows" if="isWindows">
- <property name="mxmlc_bin" value="mxmlc.exe" />
+ <property name="mxmlc_bin" value="mxmlc.bat" />
</target>
<target name="if_unix" if="isUnix">
@@ -102,10 +91,10 @@
</target>
<target name="-compile.flex" description="compile flash application" depends="if_windows, if_unix">
- <exec dir="${flex.src.dir}" executable="${laszlo46.home}/WEB-INF/flexsdk/4.6.0/bin/${mxmlc_bin}">
+ <exec dir="${flex.src.dir}" executable="${laszlo46.home}/WEB-INF/flexsdk/4.15.0/bin/${mxmlc_bin}">
<arg value="main.mxml"/>
<arg line="-output ${out.dir.swf}/main.swf"/>
- <env key="PLAYERGLOBAL_HOME" value="${laszlo46.home}/WEB-INF/flexsdk/4.6.0/frameworks/libs/player"/>
+ <env key="PLAYERGLOBAL_HOME" value="${laszlo46.home}/WEB-INF/flexsdk/4.15.0/frameworks/libs/player"/>
</exec>
</target>
Modified: openmeetings/application/trunk/openmeetings-flash/pom.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-flash/pom.xml?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-flash/pom.xml (original)
+++ openmeetings/application/trunk/openmeetings-flash/pom.xml Thu Apr 14 17:08:51 2016
@@ -54,7 +54,7 @@
<artifactItem>
<groupId>org.openlaszlo</groupId>
<artifactId>openlaszlo</artifactId>
- <version>4.9.7</version>
+ <version>4.9.8</version>
<type>tgz</type>
<outputDirectory>${openlaszlo}</outputDirectory>
</artifactItem>
Modified: openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java (original)
+++ openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java Thu Apr 14 17:08:51 2016
@@ -146,7 +146,7 @@ public class CleanupHelper {
File[] l = ff == null ? f.listFiles() : f.listFiles(ff);
return l == null ? new File[0] : l;
}
-
+
private static File[] list(final Long id) {
return list(hibernateDir, new FilenameFilter() {
@Override
Modified: openmeetings/application/trunk/openmeetings-server/src/site/xdoc/RTMPSAndHTTPS.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-server/src/site/xdoc/RTMPSAndHTTPS.xml?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-server/src/site/xdoc/RTMPSAndHTTPS.xml (original)
+++ openmeetings/application/trunk/openmeetings-server/src/site/xdoc/RTMPSAndHTTPS.xml Thu Apr 14 17:08:51 2016
@@ -117,7 +117,7 @@ Enter key password for <red5>
</section>
<section name="Set up RTMPS">
- <ol>
+ <ol>
<li> Default RTMPS port is 8443, you can change it by editing <tt>red5/conf/red5.properties</tt> and change the port here: <tt>rtmps.port=8443</tt><br/>
Please set <tt>rtmps.keystorepass=password</tt> and <tt>rtmps.truststorepass=password</tt>
(password = password you set on your new keystore(s))<br/>
@@ -135,7 +135,7 @@ Enter key password for <red5>
<li>Restart red5 and try to connect - your connection should now be
made via RTMPS (close port 1935 to be sure)
</li>
- </ol>
+ </ol>
</section>
<section name="SSL for the web interface">
<p>If you want to use SSL for the web interface in addition to RTMPS,
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=1739141&r1=1739140&r2=1739141&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 Thu Apr 14 17:08:51 2016
@@ -35,7 +35,6 @@ import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import javax.servlet.ServletContext;
@@ -289,23 +288,26 @@ public class Application extends Authent
}
}
- public static Client addUserToRoom(long roomId, int pageId) {
+ public static Client addUserToRoom(Client c, int pageId) {
+ long roomId = c.getRoomId();
if (!ROOMS.containsKey(roomId)) {
ROOMS.put(roomId, new ConcurrentHashSet<Client>());
}
- Client c = new Client(WebSession.get().getId(), pageId, WebSession.getUserId());
- c.setUid(UUID.randomUUID().toString());
+ c.setSessionId(WebSession.get().getId());
+ c.setPageId(pageId);
ROOMS.get(roomId).add(c);
return c;
}
public static void removeUserFromRoom(long roomId, int pageId) {
- removeUserFromRoom(roomId, new Client(WebSession.get().getId(), pageId, WebSession.getUserId()));
+ Client c = new Client(WebSession.get().getId(), pageId, WebSession.getUserId());
+ c.setRoomId(roomId);
+ removeUserFromRoom(c);
}
- public static Client removeUserFromRoom(long roomId, Client _c) {
- if (ROOMS.containsKey(roomId)) {
- Set<Client> clients = ROOMS.get(roomId);
+ public static Client removeUserFromRoom(Client _c) {
+ if (ROOMS.containsKey(_c.getRoomId())) {
+ Set<Client> clients = ROOMS.get(_c.getRoomId());
for (Client c : clients) {
if (c.equals(_c)) {
clients.remove(c);
@@ -313,22 +315,12 @@ public class Application extends Authent
}
}
if (clients.isEmpty()) {
- ROOMS.remove(roomId);
+ ROOMS.remove(_c.getRoomId());
}
}
return _c;
}
- public static long getRoom(Client c) {
- for (Entry<Long, Set<Client>> me : ROOMS.entrySet()) {
- Set<Client> clients = me.getValue();
- if (clients.contains(c)) {
- return me.getKey();
- }
- }
- return -1;
- }
-
public static Set<Client> getRoomUsers(long roomId) {
return ROOMS.containsKey(roomId) ? ROOMS.get(roomId) : new HashSet<Client>();
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml Thu Apr 14 17:08:51 2016
@@ -1908,4 +1908,5 @@
<entry key="dashboard.widget.admin.cleanup.cleanup">Cleanup</entry>
<entry key="dashboard.widget.admin.cleanup.warn">Are you sure you want to delete all temporary files? This operation cannot be undone.</entry>
<entry key="dashboard.widget.admin.cleanup.error">Unexpected error while performing cleanup</entry>
+ <entry key="room.action.request.right.moderator">would like to be moderator of this room.</entry>
</properties>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java Thu Apr 14 17:08:51 2016
@@ -21,6 +21,7 @@ package org.apache.openmeetings.web.app;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
+import java.util.UUID;
import org.apache.openmeetings.db.entity.IDataProviderEntity;
import org.apache.wicket.protocol.ws.api.registry.IKey;
@@ -39,6 +40,7 @@ public class Client implements IDataProv
private String sessionId;
private int pageId;
private long userId;
+ private long roomId;
private String uid;
private Set<Right> rights = new HashSet<Right>();
private Date connectedSince;
@@ -47,6 +49,13 @@ public class Client implements IDataProv
this.connectedSince = new Date();
}
+ public Client(long roomId) {
+ this.connectedSince = new Date();
+ this.roomId = roomId;
+ this.userId = WebSession.getUserId();
+ uid = UUID.randomUUID().toString();
+ }
+
public Client(String sessionId, IKey key, long userId) {
this(sessionId, key.hashCode(), userId);
}
@@ -90,12 +99,48 @@ public class Client implements IDataProv
this.uid = uid;
}
+
+ public Set<Right> getRights() {
+ return rights;
+ }
+
+ public boolean hasRight(Right right) {
+ return rights.contains(Right.moderator) ? true : rights.contains(right);
+ }
+
+ public Date getConnectedSince() {
+ return connectedSince;
+ }
+
+ public void setConnectedSince(Date connectedSince) {
+ this.connectedSince = connectedSince;
+ }
+
+ @Override
+ public Long getId() {
+ return null;
+ }
+
+ @Override
+ public void setId(Long id) {
+ }
+
+ public long getRoomId() {
+ return roomId;
+ }
+
+ public void setRoomId(long roomId) {
+ this.roomId = roomId;
+ }
+
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + pageId;
+ result = prime * result + (int) (roomId ^ (roomId >>> 32));
result = prime * result + ((sessionId == null) ? 0 : sessionId.hashCode());
+ result = prime * result + ((uid == null) ? 0 : uid.hashCode());
result = prime * result + (int) (userId ^ (userId >>> 32));
return result;
}
@@ -111,38 +156,20 @@ public class Client implements IDataProv
Client other = (Client) obj;
if (pageId != other.pageId)
return false;
+ if (roomId != other.roomId)
+ return false;
if (sessionId == null) {
if (other.sessionId != null)
return false;
} else if (!sessionId.equals(other.sessionId))
return false;
+ if (uid == null) {
+ if (other.uid != null)
+ return false;
+ } else if (!uid.equals(other.uid))
+ return false;
if (userId != other.userId)
return false;
return true;
}
-
- public Set<Right> getRights() {
- return rights;
- }
-
- public boolean hasRight(Right right) {
- return rights.contains(Right.moderator) ? true : rights.contains(right);
- }
-
- public Date getConnectedSince() {
- return connectedSince;
- }
-
- public void setConnectedSince(Date connectedSince) {
- this.connectedSince = connectedSince;
- }
-
- @Override
- public Long getId() {
- return null;
- }
-
- @Override
- public void setId(Long id) {
- }
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java Thu Apr 14 17:08:51 2016
@@ -39,7 +39,7 @@ public abstract class BasePanel extends
setOutputMarkupId(true);
}
- protected MainPage getMainPage() {
+ public MainPage getMainPage() {
return (MainPage)super.getPage();
}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmButton.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmButton.java?rev=1739141&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmButton.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmButton.java Thu Apr 14 17:08:51 2016
@@ -0,0 +1,42 @@
+/*
+ * 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.common;
+
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+
+import com.googlecode.wicket.jquery.ui.form.button.Button;
+
+public abstract class OmButton extends Button {
+ private static final long serialVersionUID = 1L;
+
+ public OmButton(String id) {
+ super(id);
+ add(new AjaxEventBehavior("click") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target) {
+ OmButton.this.onClick(target);
+ }
+ });
+ }
+
+ protected abstract void onClick(AjaxRequestTarget target);
+}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuItem.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuItem.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuItem.java Thu Apr 14 17:08:51 2016
@@ -24,15 +24,12 @@ import com.googlecode.wicket.jquery.ui.w
public class MenuItem extends com.googlecode.wicket.jquery.ui.widget.menu.MenuItem {
private static final long serialVersionUID = 1L;
- protected String desc;
- private String cssClass;
-
- public MenuItem(String title) {
- super(title);
- }
+ private String desc;
+ private boolean top;
public MenuItem(String title, List<IMenuItem> items) {
super(title, items);
+ setTop(true);
}
public MenuItem(String title, String desc) {
@@ -48,11 +45,11 @@ public class MenuItem extends com.google
this.desc = desc;
}
- public String getCssClass() {
- return cssClass;
+ public boolean isTop() {
+ return top;
}
- public void setCssClass(String cssClass) {
- this.cssClass = cssClass;
+ public void setTop(boolean top) {
+ this.top = top;
}
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java Thu Apr 14 17:08:51 2016
@@ -52,14 +52,12 @@ public class MenuPanel extends BasePanel
protected void addMenuItem(ListItem<IMenuItem> item, IMenuItem menuItem) {
super.addMenuItem(item, menuItem);
MenuItem m = (MenuItem)menuItem;
- if (Strings.isEmpty(m.getDesc())) {
- item.add(AttributeAppender.append("class", "top"));
- } else {
- item.add(AttributeAppender.append("class", "sub"));
+ item.add(AttributeAppender.append("class", m.isTop() ? "top" : "sub"));
+ if (!Strings.isEmpty(m.getDesc())) {
item.add(AttributeAppender.append("title", m.getDesc()));
}
- if (!Strings.isEmpty(m.getCssClass())) {
- item.add(AttributeAppender.append("class", m.getCssClass()));
+ if (!Strings.isEmpty(m.getIcon())) {
+ item.add(AttributeAppender.append("class", m.getIcon()));
}
}
});
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/RoomMenuItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/RoomMenuItem.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/RoomMenuItem.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/RoomMenuItem.java Thu Apr 14 17:08:51 2016
@@ -21,25 +21,17 @@ package org.apache.openmeetings.web.comm
public class RoomMenuItem extends MenuItem {
private static final long serialVersionUID = 1L;
- public RoomMenuItem(String name) {
- this(name, null);
- }
-
public RoomMenuItem(String name, String desc) {
- this(name, desc, true, null);
+ super(name, desc);
}
- public RoomMenuItem(String name, String desc, String cssClass) {
- this(name, desc, true, cssClass);
+ public RoomMenuItem(String name, String desc, String icon) {
+ super(name, desc);
+ setIcon(icon);
}
public RoomMenuItem(String name, String desc, boolean enabled) {
- this(name, desc, enabled, null);
- }
-
- public RoomMenuItem(String name, String desc, boolean enabled, String cssClass) {
super(name, desc);
- setCssClass(cssClass);
setEnabled(enabled);
}
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html Thu Apr 14 17:08:51 2016
@@ -29,10 +29,10 @@
</script>
<div class="file tree">
<div class="icons clear trash-toolbar" wicket:id="trash-toolbar">
+ <span wicket:id="upload" class="add om-icon align-left clickable" wicket:message="title:702"></span>
<span wicket:id="create" class="folder-create om-icon align-left clickable" wicket:message="title:703"></span>
<span wicket:id="refresh" class="refresh om-icon align-left clickable" wicket:message="title:704"></span>
- <span wicket:id="trash" class="trash om-icon align-right clickable"></span>
- <span style="padding-left: 20px;" wicket:message="title:705"><wicket:message key="1224"/></span>
+ <span wicket:id="trash" class="trash om-icon align-right clickable" wicket:message="title:705"></span>
<div class="clear"></div>
</div>
<div wicket:id="tree-container" class="trees">
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java Thu Apr 14 17:08:51 2016
@@ -63,6 +63,11 @@ public abstract class FileTreePanel exte
public FileTreePanel(String id) {
super(id);
+ }
+
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
defineTrees();
selectedFile.getObject().setId(Long.MIN_VALUE);
final AddFolderDialog addFolder = new AddFolderDialog("addFolder", Application.getString(712)) {
@@ -94,6 +99,7 @@ public abstract class FileTreePanel exte
}
};
add(trashToolbar);
+ trashToolbar.add(getUpload("upload"));
trashToolbar.add(new WebMarkupContainer("create").add(new AjaxEventBehavior("click") {
private static final long serialVersionUID = 1L;
@@ -133,6 +139,10 @@ public abstract class FileTreePanel exte
add(errorsDialog);
}
+ protected Component getUpload(String id) {
+ return new WebMarkupContainer(id).setVisible(false);
+ }
+
void delete(FileItem f, AjaxRequestTarget target) {
long id = f.getId();
if (id > 0) {
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html Thu Apr 14 17:08:51 2016
@@ -38,7 +38,7 @@
Wicket.Event.subscribe('/ajax/call/complete', hideBusyIndicator);
});
</script>
- <div id="topControls">
+ <div wicket:id="topControls">
<div wicket:id="topLinks"><span
id="contactsAndMessages"><a wicket:id="messages"><wicket:message key="1188"/></a></span><span
id="profile"><a wicket:id="profile"><wicket:message key="5"/></a></span><span
@@ -46,10 +46,10 @@
id="reportBug"><a target="_blank" href="https://issues.apache.org/jira/browse/OPENMEETINGS"><wicket:message key="284"/></a></span><span><a
wicket:id="about"><wicket:message key="1549"/></a></span>
</div>
- <div wicket:id="dev" id="devMenu"/>
<div id="busy_indicator" class="ui-widget-header"><span><wicket:message key="1554"/></span></div>
<div wicket:id="menu"></div>
</div>
+ <div wicket:id="dev" id="devMenu"/>
<div wicket:id="contents"><div wicket:id="child"></div></div>
<div wicket:id="chatPanel"></div>
<div wicket:id="aboutDialog"></div>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java Thu Apr 14 17:08:51 2016
@@ -48,7 +48,7 @@ import org.apache.openmeetings.web.commo
import org.apache.openmeetings.web.common.menu.MenuItem;
import org.apache.openmeetings.web.common.menu.MenuPanel;
import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.openmeetings.web.room.message.RoomMessage;
+import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
import org.apache.openmeetings.web.user.AboutDialog;
import org.apache.openmeetings.web.user.ChatPanel;
import org.apache.openmeetings.web.user.InviteUserToRoomDialog;
@@ -73,10 +73,11 @@ import org.apache.wicket.markup.html.for
import org.apache.wicket.markup.html.panel.EmptyPanel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.protocol.ws.api.WebSocketBehavior;
+import org.apache.wicket.protocol.ws.api.message.AbortedMessage;
+import org.apache.wicket.protocol.ws.api.message.AbstractClientMessage;
import org.apache.wicket.protocol.ws.api.message.ClosedMessage;
import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
import org.apache.wicket.request.IRequestParameters;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.time.Duration;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -91,6 +92,7 @@ public class MainPage extends BaseInited
private static final Logger log = Red5LoggerFactory.getLogger(MainPage.class, webAppRootKey);
private final static String PARAM_USER_ID = "userId";
private final MenuPanel menu;
+ private final WebMarkupContainer topControls = new WebMarkupContainer("topControls");
private final WebMarkupContainer topLinks = new WebMarkupContainer("topLinks");
private final MarkupContainer contents;
private final AbstractAjaxTimerBehavior areaBehavior;
@@ -100,13 +102,14 @@ public class MainPage extends BaseInited
private final UserInfoDialog userInfo;
private final InviteUserToRoomDialog inviteUser;
- public MainPage(PageParameters pp) {
+ public MainPage() {
super();
getHeader().setVisible(false);
+ add(topControls.setOutputMarkupPlaceholderTag(true).setMarkupId("topControls"));
menu = new MenuPanel("menu", getMainMenu());
contents = new WebMarkupContainer("contents");
add(contents.add(new WebMarkupContainer(CHILD_ID)).setOutputMarkupId(true).setMarkupId("contents"));
- add(menu.setVisible(false), topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
+ topControls.add(menu.setVisible(false), topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
topLinks.add(new AjaxLink<Void>("messages") {
private static final long serialVersionUID = 1L;
@@ -143,11 +146,11 @@ public class MainPage extends BaseInited
});
add(about);
if (getApplication().getDebugSettings().isDevelopmentUtilitiesEnabled()) {
- add(dev = new DebugBar("dev"));
- dev.setOutputMarkupId(true);
+ add(dev = new DebugBar("dev"));
+ dev.setOutputMarkupId(true);
} else {
dev = null;
- add(new EmptyPanel("dev").setVisible(false));
+ add(new EmptyPanel("dev").setVisible(false));
}
add(chat = new ChatPanel("chatPanel"));
@@ -217,15 +220,24 @@ public class MainPage extends BaseInited
}
@Override
+ protected void onAbort(AbortedMessage message) {
+ super.onAbort(message);
+ closeHandler(message);
+ }
+
+ @Override
protected void onClose(ClosedMessage message) {
super.onClose(message);
+ closeHandler(message);
+ }
+
+ private void closeHandler(AbstractClientMessage message) {
Client _c = new Client(message.getSessionId(), message.getKey(), getUserId());
removeOnlineUser(_c);
log.debug(String.format("WebSocketBehavior::onClose [session: %s, key: %s]", message.getSessionId(), message.getKey()));
- long roomId = Application.getRoom(_c);
- if (roomId > 0) {
- Application.removeUserFromRoom(roomId, _c);
- RoomPanel.broadcast(new RoomMessage(roomId, _c.getUserId(), RoomMessage.Type.roomExit));
+ if (MainPage.this.getCurrentPanel() instanceof RoomPanel) {
+ RoomPanel rp = (RoomPanel)MainPage.this.getCurrentPanel();
+ RoomMenuPanel.roomExit(rp);
}
}
});
@@ -327,6 +339,10 @@ public class MainPage extends BaseInited
return topLinks;
}
+ public WebMarkupContainer getTopControls() {
+ return topControls;
+ }
+
public ChatPanel getChat() {
return chat;
}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomBroadcaster.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomBroadcaster.java?rev=1739141&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomBroadcaster.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomBroadcaster.java Thu Apr 14 17:08:51 2016
@@ -0,0 +1,54 @@
+/*
+ * 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.web.app.Application.getBean;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.dto.server.ClientSessionInfo;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.core.session.SessionManager;
+import org.red5.server.api.IConnection;
+
+public class RoomBroadcaster {
+ public static Client getClient(String publicSid) {
+ ClientSessionInfo csi = getBean(SessionManager.class).getClientByPublicSIDAnyServer(publicSid);
+ return csi == null ? null : csi.getRcl();
+ }
+
+ public static void broadcast(String publicSid, String method, Object obj) {
+ Client rc = getClient(publicSid);
+ if (rc == null) {
+ return;
+ }
+ final Long roomId = rc.getRoomId();
+ final SessionManager sessionMgr = getBean(SessionManager.class);
+ final UserDao userDao = getBean(UserDao.class);
+ ScopeApplicationAdapter sa = getBean(ScopeApplicationAdapter.class);
+ sa.new MessageSender(sa.getRoomScope("" + roomId), method, obj) {
+ @Override
+ public boolean filter(IConnection conn) {
+ Client rcl = sessionMgr.getClientByStreamId(conn.getClient().getId(), null);
+ return rcl.isScreenClient()
+ || rcl.getRoomId() == null || !rcl.getRoomId().equals(roomId) || userDao.get(rcl.getUserId()) == null;
+ }
+ }.start();
+ }
+}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1739141&r1=1739140&r2=1739141&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html Thu Apr 14 17:08:51 2016
@@ -28,40 +28,11 @@
</wicket:head>
<wicket:panel>
<div wicket:id="roomContainer" style="height: 100%">
- <div wicket:id="roomMenu"></div>
- <div class="room menu right">
- <span wicket:id="ask" class="icon ask"></span>
- <span wicket:id="share" class="icon share"></span>
- <span wicket:id="recording" class="room recording"></span>
- <span wicket:id="roomName" class="room name"></span>
- </div>
- <div class="room sidebar left">
- <div class="tabs">
- <ul>
- <li><a href="#utab"><wicket:message key="613"/></a></li>
- <li><a wicket:id="flink" href="#ftab"><wicket:message key="614"/></a></li>
- </ul>
- <div id="utab">
- <div wicket:id="userList" class="user list">
- <div wicket:id="user" class="user ui-corner-all ui-widget-content">
- <div wicket:id="name" class="user name"></div>
- <div class="user actions">
- <span wicket:id="privateChat" class="private-chat om-icon align-right clickable" wicket:message="title:1493" onclick="startPrivateChat($(this));"></span>
- <div class="clear"></div>
- </div>
- </div>
- </div>
- </div>
- <div wicket:id="ftab" id="ftab"><div class="file list" wicket:id="tree"></div></div>
- </div>
- </div>
+ <div class="room menu" wicket:id="roomMenu"></div>
+ <div class="room sidebar left" wicket:id="sidebar"></div>
<div class="room wb area">
<div class="wb" wicket:id="whiteboard"></div>
</div>
- <div wicket:id="invite"></div>
- <div wicket:id="createPoll"></div>
- <div wicket:id="vote"></div>
- <div wicket:id="pollResults"></div>
<div wicket:id="activitiesPanel"></div>
</div>
<div wicket:id="accessDenied"></div>