[OPENMEETINGS-551] several minor issues are fixed
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/4e2f1275 Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/4e2f1275 Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/4e2f1275 Branch: refs/heads/master Commit: 4e2f1275d0e782ca9f3e4dc569635d4745e2f231 Parents: 8599b3d Author: Maxim Solodovnik <[email protected]> Authored: Tue Apr 11 17:00:26 2017 +0000 Committer: Maxim Solodovnik <[email protected]> Committed: Tue Apr 11 17:00:26 2017 +0000 ---------------------------------------------------------------------- .../openmeetings/core/remote/MobileService.java | 3 ++ .../apache/openmeetings/web/pages/HashPage.java | 36 +++++++++++--------- .../apache/openmeetings/web/pages/MainPage.java | 11 +++--- .../org/apache/openmeetings/web/room/wb/wb.js | 34 +++++++++++++----- 4 files changed, 54 insertions(+), 30 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4e2f1275/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java ---------------------------------------------------------------------- diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java index cd13329..e2976c4 100644 --- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java +++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java @@ -393,6 +393,9 @@ public class MobileService { } public void sendChatMessage(Client c, ChatMessage m, FastDateFormat fmt) { + if (c == null) { + return; + } Map<String, Object> hsm = new HashMap<>(); hsm.put("client", c); hsm.put("message", Arrays.asList("chat", encodeChatMessage(m, fmt))); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4e2f1275/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java index 7c98592..8fa58ff 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java @@ -66,8 +66,27 @@ public class HashPage extends BaseInitedPage implements IUpdatable { private boolean error = true; private MainPanel mp = null; private RoomPanel rp = null; + private final PageParameters p; public HashPage(PageParameters p) { + this.p = p; + } + + private void createRoom(Long roomId) { + error = false; + getHeader().setVisible(false); + // need to re-fetch Room object to initialize all collections + Room room = getBean(RoomDao.class).get(roomId); + if (room != null) { + rp = new RoomPanel(CHILD_ID, room); + mp = new MainPanel(PANEL_MAIN, rp); + replace(mp); + } + } + + @Override + protected void onInitialize() { + super.onInitialize(); StringValue secure = p.get(HASH); StringValue invitation = p.get(INVITATION_HASH); @@ -124,23 +143,6 @@ public class HashPage extends BaseInitedPage implements IUpdatable { } add(recContainer.add(vi.setShowShare(false).setOutputMarkupPlaceholderTag(true), vp.setOutputMarkupPlaceholderTag(true)), new InvitationPasswordDialog("i-pass", this)); - } - - private void createRoom(Long roomId) { - error = false; - getHeader().setVisible(false); - // need to re-fetch Room object to initialize all collections - Room room = getBean(RoomDao.class).get(roomId); - if (room != null) { - rp = new RoomPanel(CHILD_ID, room); - mp = new MainPanel(PANEL_MAIN, rp); - replace(mp); - } - } - - @Override - protected void onInitialize() { - super.onInitialize(); remove(urlParametersReceivingBehavior); add(new MessageDialog("access-denied", getString("invalid.hash"), getString(errorKey), DialogButtons.OK, DialogIcon.ERROR) { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4e2f1275/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 8e16e17..cdbd0e0 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,12 +41,13 @@ import org.apache.wicket.util.time.Duration; @AuthorizeInstantiation({"Admin", "Dashboard", "Room"}) public class MainPage extends BaseInitedPage { private static final long serialVersionUID = 1L; - private final AbstractAjaxTimerBehavior areaBehavior; + private AbstractAjaxTimerBehavior areaBehavior; private final MainPanel main = new MainPanel("main"); - private final InviteUserToRoomDialog inviteUser; + private InviteUserToRoomDialog inviteUser; - public MainPage() { - super(); + @Override + protected void onInitialize() { + super.onInitialize(); getHeader().setVisible(false); add(main, inviteUser = new InviteUserToRoomDialog("invite-to-room")); //load preselected content @@ -68,7 +69,7 @@ public class MainPage extends BaseInitedPage { protected void respond(AjaxRequestTarget target) { inviteUser.open(target, getParam(getComponent(), PARAM_USER_ID).toLong()); } - + @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4e2f1275/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 f580f19..61f1c0c 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 @@ -154,6 +154,7 @@ var APointer = function(wb) { } pointer.activate = function() { wb.eachCanvas(function(canvas) { + canvas.selection = false; canvas.on('mouse:up', pointer.mouseUp); }); pointer.user = $('.room.sidebar.left .user.list .current .name').text(); @@ -681,13 +682,16 @@ var Wb = function() { } function _modifyHandler(_o) { _removeHandler(_o); - canvases[_o.slide].add(_o); + var canvas = canvases[_o.slide]; + _o.selectable = canvas.selection; + canvas.add(_o); } function _createHandler(_o) { switch (_o.fileType) { case 'Video': case 'Recording': { + var canvas = canvases[_o.slide]; var vid = $('<video>').hide().attr('id', 'video-' + _o.uid).attr('poster', _o._poster + '&preview=true') .attr("width", _o.width).attr("height", _o.height) .append($('<source>').attr('type', 'video/mp4').attr('src', _o._src)) @@ -696,7 +700,8 @@ var Wb = function() { left: _o.left , top: _o.top }); - canvases[_o.slide].add(vImg); + vImg.selectable = canvas.selection; + canvas.add(vImg); //console.log(vImg.toJSON(['uid', 'fileId', 'fileType'])); } break; @@ -726,7 +731,11 @@ var Wb = function() { } break; default: - canvases[_o.slide].add(_o); + { + var canvas = canvases[_o.slide]; + _o.selectable = canvas.selection; + canvas.add(_o); + } break; } } @@ -754,6 +763,8 @@ var Wb = function() { } //events function wbObjCreatedHandler(o) { + if (readOnly && o.type != 'pointer') return; + var json = {}; switch(o.type) { case 'pointer': @@ -778,10 +789,15 @@ var Wb = function() { o.slide = this.slide; wbObjCreatedHandler(o); break; + default: + o.selectable = this.selection; + break; } }; function objModifiedHandler(e) { var o = e.target; + if (readOnly && o.type != 'pointer') return; + o.includeDefaultValues = false; wbAction('modifyObj', JSON.stringify({ wbId: wb.id @@ -838,25 +854,25 @@ var Wb = function() { console.log('Text Changed', obj); };*/ function setHandlers(canvas) { + canvas.on({ + 'wb:object:created': wbObjCreatedHandler + , 'object:modified': objModifiedHandler + }); if (readOnly) { canvas.off({ 'object:added': objAddedHandler - , 'object:modified': objModifiedHandler , 'object:selected': objSelectedHandler , 'path:created': pathCreatedHandler //, 'text:editing:exited': textEditedHandler //, 'text:changed': textChangedHandler - , 'wb:object:created': wbObjCreatedHandler }); } else { canvas.on({ 'object:added': objAddedHandler - , 'object:modified': objModifiedHandler , 'object:selected': objSelectedHandler , 'path:created': pathCreatedHandler //, 'text:editing:exited': textEditedHandler //, 'text:changed': textChangedHandler - , 'wb:object:created': wbObjCreatedHandler }); } } @@ -865,7 +881,9 @@ var Wb = function() { var cid = 'can-' + a.attr('id') + '-slide-' + sl; var c = $('<canvas></canvas>').attr('id', cid); a.find('.canvases').append(c); - var canvas = new fabric.Canvas(c.attr('id')); + var canvas = new fabric.Canvas(c.attr('id'), { + preserveObjectStacking: true + }); canvas.wbId = wb.id; canvas.slide = sl; canvases.push(canvas);
