[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);

Reply via email to