Repository: openmeetings
Updated Branches:
  refs/heads/master f60c88e4a -> 1aea2d13a


[OPENMEETINGS-1753] del/backspace keys are fixed for WB text


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/1aea2d13
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/1aea2d13
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/1aea2d13

Branch: refs/heads/master
Commit: 1aea2d13aae3232354493e809e80e0e58537f85b
Parents: f60c88e
Author: Maxim Solodovnik <[email protected]>
Authored: Fri Nov 10 15:57:58 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Fri Nov 10 15:58:22 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/web/room/wb/interview-area.js  |  2 +
 .../openmeetings/web/room/wb/tool-text.js       |  2 +
 .../apache/openmeetings/web/room/wb/wb-area.js  | 75 +++++++++++---------
 3 files changed, 46 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1aea2d13/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
index f018bcc..c1081a6 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
@@ -84,5 +84,7 @@ var InterviewWbArea = function() {
        self.resize = _resize;
        self.setRecStartEnabled = _setRecStartEnabled;
        self.setRecStopEnabled = _setRecStopEnabled;
+       self.addDeleteHandler = function() {};
+       self.removeDeleteHandler = function() {};
        return self;
 };

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1aea2d13/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-text.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-text.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-text.js
index 45f3928..0d707f6 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-text.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-text.js
@@ -57,6 +57,7 @@ var Text = function(wb, s) {
                } else {
                        i.removeClass('ui-state-active selected');
                }
+               WbArea.removeDeleteHandler();
        };
        text.deactivate = function() {
                wb.eachCanvas(function(canvas) {
@@ -68,6 +69,7 @@ var Text = function(wb, s) {
                                }
                        });
                });
+               WbArea.addDeleteHandler();
        };
        return text;
 };

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1aea2d13/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
index 4da8f4f..768ec5f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
@@ -18,39 +18,40 @@ var DrawWbArea = function() {
                }
                return null;
        }
-       function deleteHandler(e) {
+       function _performDelete() {
+               const wb = getActive().data()
+                       , canvas = wb.getCanvas();
+               if (role !== PRESENTER || !canvas) {
+                       return true;
+               }
+               const arr = [];
+               if (!!canvas.getActiveGroup()) {
+                       canvas.getActiveGroup().forEachObject(function(o) {
+                               arr.push({
+                                       uid: o.uid
+                                       , slide: o.slide
+                               });
+                       });
+               } else {
+                       const o = canvas.getActiveObject();
+                       if (!!o) {
+                               arr.push({
+                                       uid: o.uid
+                                       , slide: o.slide
+                               });
+                       }
+               }
+               wbAction('deleteObj', JSON.stringify({
+                       wbId: wb.id
+                       , obj: arr
+               }));
+               return false;
+       }
+       function _deleteHandler(e) {
                switch (e.which) {
                        case 8:  // backspace
                        case 46: // delete
-                               {
-                                       const wb = getActive().data()
-                                               , canvas = wb.getCanvas();
-                                       if (!!canvas) {
-                                               const arr = [];
-                                               if (!!canvas.getActiveGroup()) {
-                                                       
canvas.getActiveGroup().forEachObject(function(o) {
-                                                               arr.push({
-                                                                       uid: 
o.uid
-                                                                       , 
slide: o.slide
-                                                               });
-                                                       });
-                                               } else {
-                                                       const o = 
canvas.getActiveObject();
-                                                       if (!!o) {
-                                                               arr.push({
-                                                                       uid: 
o.uid
-                                                                       , 
slide: o.slide
-                                                               });
-                                                       }
-                                               }
-                                               wbAction('deleteObj', 
JSON.stringify({
-                                                       wbId: wb.id
-                                                       , obj: arr
-                                               }));
-                                               return false;
-                                       }
-                               }
-                               break;
+                               return _performDelete();
                }
        }
        function _getWbTab(wbId) {
@@ -145,7 +146,7 @@ var DrawWbArea = function() {
                                        const li = $(this);
                                        _addCloseBtn(li);
                                });
-                               $(window).keyup(deleteHandler);
+                               self.addDeleteHandler();
                        }
                } else {
                        if (prev.length > 0) {
@@ -153,7 +154,7 @@ var DrawWbArea = function() {
                                next.parent().remove();
                                tabsNav.find('li button').remove();
                        }
-                       $(window).off('keyup', deleteHandler);
+                       self.removeDeleteHandler();
                }
                tabs.find(".ui-tabs-panel").each(function() {
                        $(this).data().setRole(role);
@@ -190,7 +191,7 @@ var DrawWbArea = function() {
                });
        };
        self.destroy = function() {
-               $(window).off('keyup', deleteHandler);
+               self.removeDeleteHandler();
        };
        self.create = function(obj) {
                if (!_inited) return;
@@ -323,6 +324,14 @@ var DrawWbArea = function() {
                wbAction('loadVideos');
        };
        self.initVideos = _initVideos;
+       self.addDeleteHandler = function() {
+               if (role === PRESENTER) {
+                       $(window).keyup(_deleteHandler);
+               }
+       };
+       self.removeDeleteHandler = function() {
+               $(window).off('keyup', _deleteHandler);
+       };
        return self;
 };
 $(function() {

Reply via email to