Author: solomax
Date: Thu Sep 1 06:57:49 2016
New Revision: 1758710
URL: http://svn.apache.org/viewvc?rev=1758710&view=rev
Log:
[OPENMEETINGS-1376] user list is improved
Modified:
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/editRecordStreamSWF10.lzx
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
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/common/MainPanel.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.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/menu/RoomMenuPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
Modified:
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
Thu Sep 1 06:57:49 2016
@@ -147,7 +147,7 @@ public abstract class BaseStreamWriter i
closeStream();
}
if (++counter % 5000 == 0) {
- log.debug("##REC:: Stream writer is
still listening:: " + file.getName());;
+ log.debug("##REC:: Stream writer is
still listening:: " + file.getName());
}
} catch (InterruptedException e) {
log.error("##REC:: [run]", e);
Modified:
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/editRecordStreamSWF10.lzx
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/editRecordStreamSWF10.lzx?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/editRecordStreamSWF10.lzx
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/editRecordStreamSWF10.lzx
Thu Sep 1 06:57:49 2016
@@ -635,7 +635,7 @@
var py = parent.y < 0 ? 5 : parent.y;
var maxWidth = Math.min(600, canvas.width -
parent.x - 10)
, maxHeight = Math.min(500,
canvas.height - py - 10)
- , newWidth = maxWidth, newHeight =
maxHeight;;
+ , newWidth = maxWidth, newHeight =
maxHeight;
if (item.cam_width > 240) {
newWidth = maxWidth + item.cam_width -
240;
}
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
Thu Sep 1 06:57:49 2016
@@ -76,7 +76,7 @@ public class LangPanel extends AdminPane
private final LangForm langForm;
private FileUploadField fileUploadField;
- final WebMarkupContainer listContainer = new
WebMarkupContainer("listContainer");;
+ final WebMarkupContainer listContainer = new
WebMarkupContainer("listContainer");
Map.Entry<Long, Locale> language;
@Override
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
Thu Sep 1 06:57:49 2016
@@ -327,21 +327,23 @@ public class Application extends Authent
return c;
}
- public static List<Client> getRoomClients(long roomId) {
+ public static List<Client> getRoomClients(Long roomId) {
List<Client> clients = new ArrayList<>();
- Set<String> uids = ROOMS.get(roomId);
- if (uids != null) {
- for (String uid : uids) {
- Client c = getOnlineClient(uid);
- if (c != null) {
- clients.add(c);
+ if (roomId != null) {
+ Set<String> uids = ROOMS.get(roomId);
+ if (uids != null) {
+ for (String uid : uids) {
+ Client c = getOnlineClient(uid);
+ if (c != null) {
+ clients.add(c);
+ }
}
}
}
return clients;
}
- public static Set<Long> getUserRooms(long userId) {
+ public static Set<Long> getUserRooms(Long userId) {
Set<Long> result = new HashSet<>();
for (Entry<Long, Set<String>> me : ROOMS.entrySet()) {
for (String uid : me.getValue()) {
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
Thu Sep 1 06:57:49 2016
@@ -9,7 +9,7 @@
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
@@ -32,10 +32,13 @@
<wicket:panel>
<script type="text/javascript">
$(function() {
- Wicket.Event.subscribe('/ajax/call/failure',
hideBusyIndicator);
- Wicket.Event.subscribe('/ajax/call/before',
showBusyIndicator);
- Wicket.Event.subscribe('/ajax/call/success',
hideBusyIndicator);
- Wicket.Event.subscribe('/ajax/call/complete',
hideBusyIndicator);
+
Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_FAILURE, hideBusyIndicator);
+
Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_BEFORE, showBusyIndicator);
+
Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_SUCCESS, hideBusyIndicator);
+
Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_COMPLETE,
hideBusyIndicator);
+
Wicket.Event.subscribe(Wicket.Event.Topic.WebSocket.Opened, function() {
+ Wicket.WebSocket.send("socketConnected");
+ });
});
</script>
<div wicket:id="topControls">
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
Thu Sep 1 06:57:49 2016
@@ -45,7 +45,6 @@ import org.apache.openmeetings.web.app.W
import org.apache.openmeetings.web.common.menu.MainMenuItem;
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.menu.RoomMenuPanel;
import org.apache.openmeetings.web.user.AboutDialog;
import org.apache.openmeetings.web.user.ChatPanel;
@@ -69,10 +68,12 @@ import org.apache.wicket.markup.html.pan
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.protocol.ws.api.WebSocketBehavior;
+import org.apache.wicket.protocol.ws.api.WebSocketRequestHandler;
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.protocol.ws.api.message.TextMessage;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.wicketstuff.urlfragment.UrlFragment;
@@ -83,8 +84,9 @@ import com.googlecode.wicket.jquery.ui.w
public class MainPanel extends Panel {
private static final long serialVersionUID = 1L;
private static final Logger log =
Red5LoggerFactory.getLogger(MainPanel.class, webAppRootKey);
- public final static String PARAM_USER_ID = "userId";
- private Client client;
+ private static final WebMarkupContainer EMPTY = new
WebMarkupContainer(CHILD_ID);
+ public static final String PARAM_USER_ID = "userId";
+ private Client client = null;
private final MenuPanel menu;
private final WebMarkupContainer topControls = new
WebMarkupContainer("topControls");
private final WebMarkupContainer topLinks = new
WebMarkupContainer("topLinks");
@@ -92,18 +94,19 @@ public class MainPanel extends Panel {
private final ChatPanel chat;
private final MessageDialog newMessage;
private final UserInfoDialog userInfo;
+ private BasePanel panel;
public MainPanel(String id) {
- this(id, new WebMarkupContainer(CHILD_ID));
+ this(id, null);
}
- public MainPanel(String id, WebMarkupContainer panel) {
+ public MainPanel(String id, BasePanel _panel) {
super(id);
- client = new Client(getSession().getId(), getUserId());
+ this.panel = _panel;
add(topControls.setOutputMarkupPlaceholderTag(true).setMarkupId("topControls"));
menu = new MenuPanel("menu", getMainMenu());
contents = new WebMarkupContainer("contents");
-
add(contents.add(panel).setOutputMarkupId(true).setMarkupId("contents"));
+ add(contents.add(client == null ? EMPTY :
_panel).setOutputMarkupId(true).setMarkupId("contents"));
topControls.add(menu.setVisible(false),
topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
topLinks.add(new AjaxLink<Void>("messages") {
private static final long serialVersionUID = 1L;
@@ -203,31 +206,41 @@ public class MainPanel extends Panel {
private static final long serialVersionUID = 1L;
@Override
- protected void onConnect(ConnectedMessage message) {
- super.onConnect(message);
-
addOnlineUser(client.setPageId(message.getKey()));
- log.debug("WebSocketBehavior::onConnect [uid:
{}, session: {}, key: {}]", client.getUid(), message.getSessionId(),
message.getKey());
+ protected void onConnect(ConnectedMessage msg) {
+ super.onConnect(msg);
+ client = new Client(getSession().getId(),
msg.getKey().hashCode(), getUserId());
+ addOnlineUser(client);
+ log.debug("WebSocketBehavior::onConnect [uid:
{}, session: {}, key: {}]", client.getUid(), msg.getSessionId(), msg.getKey());
}
-
+
+ @Override
+ protected void onMessage(WebSocketRequestHandler
handler, TextMessage msg) {
+ if ("socketConnected".equals(msg.getText())) {
+ if (panel != null) {
+ updateContents(panel, handler);
+ }
+ }
+ }
+
@Override
- protected void onAbort(AbortedMessage message) {
- super.onAbort(message);
- closeHandler(message);
+ protected void onAbort(AbortedMessage msg) {
+ super.onAbort(msg);
+ closeHandler(msg);
}
@Override
- protected void onClose(ClosedMessage message) {
- super.onClose(message);
- closeHandler(message);
+ protected void onClose(ClosedMessage msg) {
+ super.onClose(msg);
+ closeHandler(msg);
}
- private void closeHandler(AbstractClientMessage
message) {
- if (MainPanel.this.getCurrentPanel() instanceof
RoomPanel) {
- RoomPanel rp =
(RoomPanel)MainPanel.this.getCurrentPanel();
- RoomMenuPanel.roomExit(rp);
+ private void closeHandler(AbstractClientMessage msg) {
+ if (client != null && client.getRoomId() !=
null) {
+ RoomMenuPanel.roomExit(client);
}
+ log.debug("WebSocketBehavior::closeHandler
[uid: {}, session: {}, key: {}]", client.getUid(), msg.getSessionId(),
msg.getKey());
removeOnlineUser(client);
- log.debug("WebSocketBehavior::closeHandler
[uid: {}, session: {}, key: {}]", client.getUid(), message.getSessionId(),
message.getKey());
+ client = null;
}
});
}
@@ -244,7 +257,7 @@ public class MainPanel extends Panel {
public void onClick(AjaxRequestTarget
target) {
onClick(MainPanel.this, target);
}
- });
+ });
}
menu.add(new
MenuItem(Application.getString(gl.getLabelId()), l));
}
@@ -266,15 +279,25 @@ public class MainPanel extends Panel {
public void updateContents(OmUrlFragment f, IPartialPageRequestHandler
handler, boolean updateFragment) {
BasePanel panel = getPanel(f.getArea(), f.getType());
if (panel != null) {
- BasePanel prev = getCurrentPanel();
- if (prev != null) {
- prev.cleanup(handler);
+ if (client != null) {
+ updateContents(panel, handler);
+ } else {
+ this.panel = panel;
}
- handler.add(contents.replace(panel));
if (updateFragment) {
UrlFragment uf = new UrlFragment(handler);
uf.set(f.getArea().name(), f.getType());
}
+ }
+ }
+
+ private void updateContents(BasePanel panel, IPartialPageRequestHandler
handler) {
+ if (panel != null) {
+ BasePanel prev = getCurrentPanel();
+ if (prev != null) {
+ prev.cleanup(handler);
+ }
+ handler.add(contents.replace(panel));
panel.onMenuPanelLoad(handler);
}
}
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
Thu Sep 1 06:57:49 2016
@@ -42,7 +42,6 @@ import org.apache.wicket.ajax.AjaxReques
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.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.EmptyPanel;
import org.apache.wicket.request.IRequestParameters;
@@ -66,7 +65,6 @@ public class HashPage extends BaseInited
private final VideoPlayer vp = new VideoPlayer("player", null);
private String errorKey = "invalid.hash";
private boolean error = true;
- private Long roomId;
public HashPage(PageParameters p) {
StringValue secure = p.get(SECURE_HASH);
@@ -132,10 +130,7 @@ public class HashPage extends BaseInited
// need to re-fetch Room object to initialize all collections
Room room = getBean(RoomDao.class).get(roomId);
if (room != null) {
- this.roomId = roomId;
- RoomPanel rp = new RoomPanel(CHILD_ID, room);
- replace(new MainPanel(PANEL_MAIN, rp));
- rp.onMenuPanelLoad(null);
+ replace(new MainPanel(PANEL_MAIN, new
RoomPanel(CHILD_ID, room)));
}
}
@@ -175,8 +170,5 @@ public class HashPage extends BaseInited
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(CssHeaderItem.forCSS(".invite.om-icon{display:
none !important;}", "no-invite-to-room"));
- if (roomId != null) {
-
response.render(OnDomReadyHeaderItem.forScript("roomLoad();"));
- }
}
}
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
Thu Sep 1 06:57:49 2016
@@ -433,7 +433,7 @@ public class RoomPanel extends BasePanel
getMainPanel().getChat().toggle(handler, true);
}
handler.appendJavaScript("$(window).off('resize.openmeetings');");
- RoomMenuPanel.roomExit(this);
+ RoomMenuPanel.roomExit(getClient());
getMainPanel().getChat().roomExit(r, handler);
}
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
Thu Sep 1 06:57:49 2016
@@ -317,10 +317,10 @@ public class RoomMenuPanel extends Panel
update(handler);
}
}
-
+
public void exit(IPartialPageRequestHandler handler) {
if (WebSession.getRights().contains(User.Right.Dashboard)) {
- roomExit(room, false);
+ roomExit(room.getClient(), false);
room.getMainPanel().updateContents(ROOMS_PUBLIC,
handler);
} else {
String url =
getBean(ConfigurationDao.class).getConfValue(CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY,
String.class, "");
@@ -331,15 +331,14 @@ public class RoomMenuPanel extends Panel
}
}
- public static void roomExit(RoomPanel room) {
- roomExit(room, true);
+ public static void roomExit(Client c) {
+ roomExit(c, true);
}
- public static void roomExit(RoomPanel room, boolean broadcast) {
- Client c = room.getClient();
+ public static void roomExit(Client c, boolean broadcast) {
removeUserFromRoom(c);
if (broadcast) {
- RoomPanel.broadcast(new
RoomMessage(room.getRoom().getId(), c.getUserId(), RoomMessage.Type.roomExit));
+ RoomPanel.broadcast(new RoomMessage(c.getRoomId(),
c.getUserId(), RoomMessage.Type.roomExit));
}
}
}
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
Thu Sep 1 06:57:49 2016
@@ -130,9 +130,9 @@ public class AdminCleanupInfoDialog exte
try {
((CleanupUnit)temp.getDefaultModelObject()).cleanup();
((CleanupEntityUnit)profile.getDefaultModelObject()).cleanup();
- ((CleanupUnit)imp.getDefaultModelObject()).cleanup();;
+ ((CleanupUnit)imp.getDefaultModelObject()).cleanup();
((CleanupUnit)backup.getDefaultModelObject()).cleanup();
-
((CleanupEntityUnit)files.getDefaultModelObject()).cleanup();;
+
((CleanupEntityUnit)files.getDefaultModelObject()).cleanup();
((CleanupEntityUnit)fin.getDefaultModelObject()).cleanup();
update(target);
} catch (Exception e) {
Modified:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
(original)
+++
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
Thu Sep 1 06:57:49 2016
@@ -147,7 +147,7 @@ public abstract class BaseStreamWriter i
closeStream();
}
if (++counter % 5000 == 0) {
- log.debug("##REC:: Stream writer is
still listening:: " + file.getName());;
+ log.debug("##REC:: Stream writer is
still listening:: " + file.getName());
}
} catch (InterruptedException e) {
log.error("##REC:: [run]", e);
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
Thu Sep 1 06:57:49 2016
@@ -76,7 +76,7 @@ public class LangPanel extends AdminPane
private final LangForm langForm;
private FileUploadField fileUploadField;
- final WebMarkupContainer listContainer = new
WebMarkupContainer("listContainer");;
+ final WebMarkupContainer listContainer = new
WebMarkupContainer("listContainer");
Map.Entry<Long, Locale> language;
@Override
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=1758710&r1=1758709&r2=1758710&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 Sep 1 06:57:49 2016
@@ -327,21 +327,23 @@ public class Application extends Authent
return c;
}
- public static List<Client> getRoomClients(long roomId) {
+ public static List<Client> getRoomClients(Long roomId) {
List<Client> clients = new ArrayList<>();
- Set<String> uids = ROOMS.get(roomId);
- if (uids != null) {
- for (String uid : uids) {
- Client c = getOnlineClient(uid);
- if (c != null) {
- clients.add(c);
+ if (roomId != null) {
+ Set<String> uids = ROOMS.get(roomId);
+ if (uids != null) {
+ for (String uid : uids) {
+ Client c = getOnlineClient(uid);
+ if (c != null) {
+ clients.add(c);
+ }
}
}
}
return clients;
}
- public static Set<Long> getUserRooms(long userId) {
+ public static Set<Long> getUserRooms(Long userId) {
Set<Long> result = new HashSet<>();
for (Entry<Long, Set<String>> me : ROOMS.entrySet()) {
for (String uid : me.getValue()) {
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
Thu Sep 1 06:57:49 2016
@@ -9,7 +9,7 @@
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
@@ -32,10 +32,13 @@
<wicket:panel>
<script type="text/javascript">
$(function() {
- Wicket.Event.subscribe('/ajax/call/failure',
hideBusyIndicator);
- Wicket.Event.subscribe('/ajax/call/before',
showBusyIndicator);
- Wicket.Event.subscribe('/ajax/call/success',
hideBusyIndicator);
- Wicket.Event.subscribe('/ajax/call/complete',
hideBusyIndicator);
+
Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_FAILURE, hideBusyIndicator);
+
Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_BEFORE, showBusyIndicator);
+
Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_SUCCESS, hideBusyIndicator);
+
Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_COMPLETE,
hideBusyIndicator);
+
Wicket.Event.subscribe(Wicket.Event.Topic.WebSocket.Opened, function() {
+ Wicket.WebSocket.send("socketConnected");
+ });
});
</script>
<div wicket:id="topControls">
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
Thu Sep 1 06:57:49 2016
@@ -45,7 +45,6 @@ import org.apache.openmeetings.web.app.W
import org.apache.openmeetings.web.common.menu.MainMenuItem;
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.menu.RoomMenuPanel;
import org.apache.openmeetings.web.user.AboutDialog;
import org.apache.openmeetings.web.user.ChatPanel;
@@ -69,10 +68,12 @@ import org.apache.wicket.markup.html.pan
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.protocol.ws.api.WebSocketBehavior;
+import org.apache.wicket.protocol.ws.api.WebSocketRequestHandler;
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.protocol.ws.api.message.TextMessage;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.wicketstuff.urlfragment.UrlFragment;
@@ -83,8 +84,9 @@ import com.googlecode.wicket.jquery.ui.w
public class MainPanel extends Panel {
private static final long serialVersionUID = 1L;
private static final Logger log =
Red5LoggerFactory.getLogger(MainPanel.class, webAppRootKey);
- public final static String PARAM_USER_ID = "userId";
- private Client client;
+ private static final WebMarkupContainer EMPTY = new
WebMarkupContainer(CHILD_ID);
+ public static final String PARAM_USER_ID = "userId";
+ private Client client = null;
private final MenuPanel menu;
private final WebMarkupContainer topControls = new
WebMarkupContainer("topControls");
private final WebMarkupContainer topLinks = new
WebMarkupContainer("topLinks");
@@ -92,18 +94,19 @@ public class MainPanel extends Panel {
private final ChatPanel chat;
private final MessageDialog newMessage;
private final UserInfoDialog userInfo;
+ private BasePanel panel;
public MainPanel(String id) {
- this(id, new WebMarkupContainer(CHILD_ID));
+ this(id, null);
}
- public MainPanel(String id, WebMarkupContainer panel) {
+ public MainPanel(String id, BasePanel _panel) {
super(id);
- client = new Client(getSession().getId(), getUserId());
+ this.panel = _panel;
add(topControls.setOutputMarkupPlaceholderTag(true).setMarkupId("topControls"));
menu = new MenuPanel("menu", getMainMenu());
contents = new WebMarkupContainer("contents");
-
add(contents.add(panel).setOutputMarkupId(true).setMarkupId("contents"));
+ add(contents.add(client == null ? EMPTY :
_panel).setOutputMarkupId(true).setMarkupId("contents"));
topControls.add(menu.setVisible(false),
topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
topLinks.add(new AjaxLink<Void>("messages") {
private static final long serialVersionUID = 1L;
@@ -203,31 +206,41 @@ public class MainPanel extends Panel {
private static final long serialVersionUID = 1L;
@Override
- protected void onConnect(ConnectedMessage message) {
- super.onConnect(message);
-
addOnlineUser(client.setPageId(message.getKey()));
- log.debug("WebSocketBehavior::onConnect [uid:
{}, session: {}, key: {}]", client.getUid(), message.getSessionId(),
message.getKey());
+ protected void onConnect(ConnectedMessage msg) {
+ super.onConnect(msg);
+ client = new Client(getSession().getId(),
msg.getKey().hashCode(), getUserId());
+ addOnlineUser(client);
+ log.debug("WebSocketBehavior::onConnect [uid:
{}, session: {}, key: {}]", client.getUid(), msg.getSessionId(), msg.getKey());
}
-
+
+ @Override
+ protected void onMessage(WebSocketRequestHandler
handler, TextMessage msg) {
+ if ("socketConnected".equals(msg.getText())) {
+ if (panel != null) {
+ updateContents(panel, handler);
+ }
+ }
+ }
+
@Override
- protected void onAbort(AbortedMessage message) {
- super.onAbort(message);
- closeHandler(message);
+ protected void onAbort(AbortedMessage msg) {
+ super.onAbort(msg);
+ closeHandler(msg);
}
@Override
- protected void onClose(ClosedMessage message) {
- super.onClose(message);
- closeHandler(message);
+ protected void onClose(ClosedMessage msg) {
+ super.onClose(msg);
+ closeHandler(msg);
}
- private void closeHandler(AbstractClientMessage
message) {
- if (MainPanel.this.getCurrentPanel() instanceof
RoomPanel) {
- RoomPanel rp =
(RoomPanel)MainPanel.this.getCurrentPanel();
- RoomMenuPanel.roomExit(rp);
+ private void closeHandler(AbstractClientMessage msg) {
+ if (client != null && client.getRoomId() !=
null) {
+ RoomMenuPanel.roomExit(client);
}
+ log.debug("WebSocketBehavior::closeHandler
[uid: {}, session: {}, key: {}]", client.getUid(), msg.getSessionId(),
msg.getKey());
removeOnlineUser(client);
- log.debug("WebSocketBehavior::closeHandler
[uid: {}, session: {}, key: {}]", client.getUid(), message.getSessionId(),
message.getKey());
+ client = null;
}
});
}
@@ -244,7 +257,7 @@ public class MainPanel extends Panel {
public void onClick(AjaxRequestTarget
target) {
onClick(MainPanel.this, target);
}
- });
+ });
}
menu.add(new
MenuItem(Application.getString(gl.getLabelId()), l));
}
@@ -266,15 +279,25 @@ public class MainPanel extends Panel {
public void updateContents(OmUrlFragment f, IPartialPageRequestHandler
handler, boolean updateFragment) {
BasePanel panel = getPanel(f.getArea(), f.getType());
if (panel != null) {
- BasePanel prev = getCurrentPanel();
- if (prev != null) {
- prev.cleanup(handler);
+ if (client != null) {
+ updateContents(panel, handler);
+ } else {
+ this.panel = panel;
}
- handler.add(contents.replace(panel));
if (updateFragment) {
UrlFragment uf = new UrlFragment(handler);
uf.set(f.getArea().name(), f.getType());
}
+ }
+ }
+
+ private void updateContents(BasePanel panel, IPartialPageRequestHandler
handler) {
+ if (panel != null) {
+ BasePanel prev = getCurrentPanel();
+ if (prev != null) {
+ prev.cleanup(handler);
+ }
+ handler.add(contents.replace(panel));
panel.onMenuPanelLoad(handler);
}
}
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=1758710&r1=1758709&r2=1758710&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
Thu Sep 1 06:57:49 2016
@@ -42,7 +42,6 @@ import org.apache.wicket.ajax.AjaxReques
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.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.EmptyPanel;
import org.apache.wicket.request.IRequestParameters;
@@ -66,7 +65,6 @@ public class HashPage extends BaseInited
private final VideoPlayer vp = new VideoPlayer("player", null);
private String errorKey = "invalid.hash";
private boolean error = true;
- private Long roomId;
public HashPage(PageParameters p) {
StringValue secure = p.get(SECURE_HASH);
@@ -132,10 +130,7 @@ public class HashPage extends BaseInited
// need to re-fetch Room object to initialize all collections
Room room = getBean(RoomDao.class).get(roomId);
if (room != null) {
- this.roomId = roomId;
- RoomPanel rp = new RoomPanel(CHILD_ID, room);
- replace(new MainPanel(PANEL_MAIN, rp));
- rp.onMenuPanelLoad(null);
+ replace(new MainPanel(PANEL_MAIN, new
RoomPanel(CHILD_ID, room)));
}
}
@@ -175,8 +170,5 @@ public class HashPage extends BaseInited
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(CssHeaderItem.forCSS(".invite.om-icon{display:
none !important;}", "no-invite-to-room"));
- if (roomId != null) {
-
response.render(OnDomReadyHeaderItem.forScript("roomLoad();"));
- }
}
}
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=1758710&r1=1758709&r2=1758710&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
Thu Sep 1 06:57:49 2016
@@ -436,7 +436,7 @@ public class RoomPanel extends BasePanel
getMainPanel().getChat().toggle(handler, true);
}
handler.appendJavaScript("$(window).off('resize.openmeetings');");
- RoomMenuPanel.roomExit(this);
+ RoomMenuPanel.roomExit(getClient());
getMainPanel().getChat().roomExit(r, handler);
}
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
Thu Sep 1 06:57:49 2016
@@ -317,10 +317,10 @@ public class RoomMenuPanel extends Panel
update(handler);
}
}
-
+
public void exit(IPartialPageRequestHandler handler) {
if (WebSession.getRights().contains(User.Right.Dashboard)) {
- roomExit(room, false);
+ roomExit(room.getClient(), false);
room.getMainPanel().updateContents(ROOMS_PUBLIC,
handler);
} else {
String url =
getBean(ConfigurationDao.class).getConfValue(CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY,
String.class, "");
@@ -331,15 +331,14 @@ public class RoomMenuPanel extends Panel
}
}
- public static void roomExit(RoomPanel room) {
- roomExit(room, true);
+ public static void roomExit(Client c) {
+ roomExit(c, true);
}
- public static void roomExit(RoomPanel room, boolean broadcast) {
- Client c = room.getClient();
+ public static void roomExit(Client c, boolean broadcast) {
removeUserFromRoom(c);
if (broadcast) {
- RoomPanel.broadcast(new
RoomMessage(room.getRoom().getId(), c.getUserId(), RoomMessage.Type.roomExit));
+ RoomPanel.broadcast(new RoomMessage(c.getRoomId(),
c.getUserId(), RoomMessage.Type.roomExit));
}
}
}
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java?rev=1758710&r1=1758709&r2=1758710&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
Thu Sep 1 06:57:49 2016
@@ -130,9 +130,9 @@ public class AdminCleanupInfoDialog exte
try {
((CleanupUnit)temp.getDefaultModelObject()).cleanup();
((CleanupEntityUnit)profile.getDefaultModelObject()).cleanup();
- ((CleanupUnit)imp.getDefaultModelObject()).cleanup();;
+ ((CleanupUnit)imp.getDefaultModelObject()).cleanup();
((CleanupUnit)backup.getDefaultModelObject()).cleanup();
-
((CleanupEntityUnit)files.getDefaultModelObject()).cleanup();;
+
((CleanupEntityUnit)files.getDefaultModelObject()).cleanup();
((CleanupEntityUnit)fin.getDefaultModelObject()).cleanup();
update(target);
} catch (Exception e) {