Repository: openmeetings Updated Branches: refs/heads/master 29274d1dd -> dd6fddbf1
no jira: multiuser room enter is improved, hidden WB is displayed as expected Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/dd6fddbf Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/dd6fddbf Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/dd6fddbf Branch: refs/heads/master Commit: dd6fddbf1a8b76d10c806802029663289dd2bdbc Parents: 29274d1 Author: Maxim Solodovnik <[email protected]> Authored: Wed Jul 5 15:49:37 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Wed Jul 5 15:49:37 2017 +0700 ---------------------------------------------------------------------- .../openmeetings/web/common/MainPanel.java | 57 ++++++++++---------- .../apache/openmeetings/web/pages/MainPage.java | 9 ++-- .../apache/openmeetings/web/room/RoomPanel.java | 2 + .../openmeetings/web/room/wb/WbPanel.java | 8 ++- .../org/apache/openmeetings/web/room/wb/wb.js | 17 +++++- 5 files changed, 56 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/dd6fddbf/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java index edd8c9f..3202b79 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java @@ -102,11 +102,11 @@ public class MainPanel extends Panel { private static final WebMarkupContainer EMPTY = new WebMarkupContainer(CHILD_ID); public static final String PARAM_USER_ID = "userId"; private String uid = null; - private final MenuPanel menu = new MenuPanel("menu", getMainMenu()); + private final MenuPanel menu; private final WebMarkupContainer topControls = new WebMarkupContainer("topControls"); private final WebMarkupContainer topLinks = new WebMarkupContainer("topLinks"); - private final MarkupContainer contents = new WebMarkupContainer("contents"); - private final ChatPanel chat = new ChatPanel("chatPanel"); + private final MarkupContainer contents; + private final ChatPanel chat; private final MessageDialog newMessage; private final UserInfoDialog userInfo; private BasePanel panel; @@ -128,27 +128,10 @@ public class MainPanel extends Panel { super(id); this.panel = _panel; setOutputMarkupId(true); - add(chat); - add(newMessage = new MessageDialog("newMessageDialog", new CompoundPropertyModel<>(new PrivateMessage())) { - private static final long serialVersionUID = 1L; - - @Override - public void onClose(IPartialPageRequestHandler handler, DialogButton button) { - BasePanel bp = getCurrentPanel(); - if (send.equals(button) && bp != null) { - bp.onNewMessageClose(handler); - } - } - }); - add(userInfo = new UserInfoDialog("userInfoDialog", newMessage)); - add(new OmAjaxClientInfoBehavior()); - } - - @Override - protected void onInitialize() { - super.onInitialize(); add(topControls.setOutputMarkupPlaceholderTag(true).setMarkupId("topControls")); - add(contents.add(getClient() == null ? EMPTY : panel).setOutputMarkupId(true).setMarkupId("contents")); + menu = new MenuPanel("menu", getMainMenu()); + contents = new WebMarkupContainer("contents"); + add(contents.add(getClient() == null || _panel == 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; @@ -175,21 +158,24 @@ public class MainPanel extends Panel { about.open(target); } }); - add(about); if (getApplication().getDebugSettings().isDevelopmentUtilitiesEnabled()) { add(new DebugBar("dev").setOutputMarkupId(true)); } else { add(new EmptyPanel("dev").setVisible(false)); } - topLinks.add(new ConfirmableAjaxBorder("logout", getString("310"), getString("634")) { + add(about, chat = new ChatPanel("chatPanel")); + add(newMessage = new MessageDialog("newMessageDialog", new CompoundPropertyModel<>(new PrivateMessage())) { private static final long serialVersionUID = 1L; @Override - protected void onSubmit(AjaxRequestTarget target) { - getSession().invalidate(); - setResponsePage(Application.get().getSignInPageClass()); + public void onClose(IPartialPageRequestHandler handler, DialogButton button) { + BasePanel bp = getCurrentPanel(); + if (send.equals(button) && bp != null) { + bp.onNewMessageClose(handler); + } } }); + add(userInfo = new UserInfoDialog("userInfoDialog", newMessage)); add(new AbstractDefaultAjaxBehavior() { private static final long serialVersionUID = 1L; @@ -284,6 +270,21 @@ public class MainPanel extends Panel { } } }); + add(new OmAjaxClientInfoBehavior()); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + topLinks.add(new ConfirmableAjaxBorder("logout", getString("310"), getString("634")) { + private static final long serialVersionUID = 1L; + + @Override + protected void onSubmit(AjaxRequestTarget target) { + getSession().invalidate(); + setResponsePage(Application.get().getSignInPageClass()); + } + }); } private static int getLevel() { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/dd6fddbf/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java index cdbd0e0..12f8b8f 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java @@ -41,13 +41,12 @@ import org.apache.wicket.util.time.Duration; @AuthorizeInstantiation({"Admin", "Dashboard", "Room"}) public class MainPage extends BaseInitedPage { private static final long serialVersionUID = 1L; - private AbstractAjaxTimerBehavior areaBehavior; + private final AbstractAjaxTimerBehavior areaBehavior; private final MainPanel main = new MainPanel("main"); - private InviteUserToRoomDialog inviteUser; + private final InviteUserToRoomDialog inviteUser; - @Override - protected void onInitialize() { - super.onInitialize(); + public MainPage() { + super(); getHeader().setVisible(false); add(main, inviteUser = new InviteUserToRoomDialog("invite-to-room")); //load preselected content http://git-wip-us.apache.org/repos/asf/openmeetings/blob/dd6fddbf/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java index f3550ac..f64d9f6 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java @@ -27,6 +27,7 @@ import static org.apache.openmeetings.web.app.Application.getOnlineClient; import static org.apache.openmeetings.web.app.Application.getRoomClients; import static org.apache.openmeetings.web.app.WebSession.getDateFormat; import static org.apache.openmeetings.web.app.WebSession.getUserId; +import static org.apache.openmeetings.web.room.wb.WbPanel.WB_JS_REFERENCE; import java.util.Calendar; import java.util.List; @@ -581,6 +582,7 @@ public class RoomPanel extends BasePanel { super.renderHead(response); response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(RoomPanel.class, "jquery.dialogextend.js")))); response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(RoomPanel.class, "room.js")))); + response.render(JavaScriptHeaderItem.forReference(WB_JS_REFERENCE)); WebSession ws = WebSession.get(); if (!Strings.isEmpty(r.getRedirectURL()) && (ws.getSoapLogin() != null || ws.getInvitation() != null)) { response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript( http://git-wip-us.apache.org/repos/asf/openmeetings/blob/dd6fddbf/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java index 85424fb..d542e45 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java @@ -95,11 +95,12 @@ public class WbPanel extends Panel { public static final String FUNC_ACTION = "wbAction"; public static final String PARAM_ACTION = "action"; public static final String PARAM_OBJ = "obj"; - private final static ResourceReference WB_JS_REFERENCE = new JavaScriptResourceReference(WbPanel.class, "wb.js"); + public final static ResourceReference WB_JS_REFERENCE = new JavaScriptResourceReference(WbPanel.class, "wb.js"); private final static ResourceReference FABRIC_JS_REFERENCE = new JavaScriptResourceReference(WbPanel.class, "fabric.js"); private final Long roomId; private final RoomPanel rp; private long wb2save = -1; + private boolean inited = false; private enum Action { createWb , removeWb @@ -125,6 +126,9 @@ public class WbPanel extends Panel { @Override protected void respond(AjaxRequestTarget target) { + if (!inited) { + return; + } try { Action a = Action.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTION).toString()); StringValue sv = getRequest().getRequestParameters().getParameterValue(PARAM_OBJ); @@ -335,6 +339,7 @@ public class WbPanel extends Panel { } sb.append("WbArea.activateWb({wbId: ").append(wbs.getActiveWb()).append("});"); target.appendJavaScript(sb); + inited = true; } }; @@ -365,7 +370,6 @@ public class WbPanel extends Panel { public void renderHead(IHeaderResponse response) { super.renderHead(response); response.render(JavaScriptHeaderItem.forReference(FABRIC_JS_REFERENCE)); - response.render(JavaScriptHeaderItem.forReference(WB_JS_REFERENCE)); response.render(new PriorityHeaderItem(getNamedFunction(FUNC_ACTION, wbAction, explicit(PARAM_ACTION), explicit(PARAM_OBJ)))); response.render(OnDomReadyHeaderItem.forScript(wbLoad.getCallbackScript())); } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/dd6fddbf/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js index 4cf6481..d10581c 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js @@ -1103,7 +1103,7 @@ var Wb = function() { return wb; }; var WbArea = (function() { - var container, area, tabs, scroll, role = NONE, self = {}; + var container, area, tabs, scroll, role = NONE, self = {}, _inited = false; function refreshTabs() { tabs.tabs("refresh").find('ul').removeClass('ui-corner-all').removeClass('ui-widget-header'); @@ -1192,6 +1192,7 @@ var WbArea = (function() { return self.getWb(id).getCanvas(); }; self.setRole = function(_role) { + if (!_inited) return; role = _role; var tabsNav = tabs.find(".ui-tabs-nav"); tabsNav.sortable(role === PRESENTER ? "enable" : "disable"); @@ -1251,12 +1252,14 @@ var WbArea = (function() { refreshTabs(); } }); + _inited = true; self.setRole(role); }; self.destroy = function() { $(window).off('keyup', deleteHandler); }; self.create = function(obj) { + if (!_inited) return; var tid = self.getWbTabId(obj.wbId) , li = $('#wb-area-tab').clone().attr('id', '').data('wb-id', obj.wbId) , wb = $('#wb-area').clone().attr('id', tid); @@ -1273,43 +1276,53 @@ var WbArea = (function() { _resizeWbs(); } self.createWb = function(obj) { + if (!_inited) return; self.create(obj); self.setRole(role); _activateTab(obj.wbId); }; self.activateWb = function(obj) { + if (!_inited) return; _activateTab(obj.wbId); } self.load = function(json) { + if (!_inited) return; self.getWb(json.wbId).load(json.obj); }; self.setSlide = function(json) { + if (!_inited) return; self.getWb(json.wbId).setSlide(json.slide); }; self.createObj = function(json) { + if (!_inited) return; self.getWb(json.wbId).createObj(json.obj); }; self.modifyObj = function(json) { + if (!_inited) return; self.getWb(json.wbId).modifyObj(json.obj); }; self.deleteObj = function(json) { + if (!_inited) return; self.getWb(json.wbId).removeObj(json.obj); }; self.clearAll = function(json) { + if (!_inited) return; self.getWb(json.wbId).clearAll(); setRoomSizes(); }; self.clearSlide = function(json) { + if (!_inited) return; self.getWb(json.wbId).clearSlide(json.slide); }; self.removeWb = function(obj) { + if (!_inited) return; var tabId = self.getWbTabId(obj.wbId); tabs.find('li[aria-controls="' + tabId + '"]').remove(); $("#" + tabId).remove(); refreshTabs(); }; self.resize = function(posX, w, h) { - if (!container) return; + if (!container || !_inited) return; var hh = h - 5; container.width(w).height(h).css('left', posX + "px"); area.width(w).height(hh);
