Repository: openmeetings
Updated Branches:
  refs/heads/master c0f1ac792 -> ed0a54860


[OPENMEETINGS-1641] file drop and clear slide are improved


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

Branch: refs/heads/master
Commit: ed0a548606cc9a60d77b5016a0ef59520145463c
Parents: c0f1ac7
Author: Maxim Solodovnik <[email protected]>
Authored: Fri Sep 8 14:26:08 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Fri Sep 8 14:26:08 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/db/dto/room/Whiteboard.java    |  3 ++-
 .../openmeetings/web/room/wb/WbPanel.java       |  8 ++------
 .../org/apache/openmeetings/web/room/wb/wb.js   | 20 ++++++++++----------
 3 files changed, 14 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ed0a5486/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
index b95bcc9..3e4172c 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
@@ -112,7 +112,8 @@ public class Whiteboard implements Serializable {
        public JSONArray clearSlide(int slide) {
                JSONArray arr = new JSONArray();
                roomItems.entrySet().removeIf(e -> {
-                               boolean match = new 
JSONObject(e.getValue()).optInt("slide", -1) == slide;
+                               JSONObject o = new JSONObject(e.getValue());
+                               boolean match = 
!"Presentation".equals(o.optString("fileType")) && o.optInt("slide", -1) == 
slide;
                                if (match) {
                                        arr.put(e);
                                }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ed0a5486/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 fcd1a34..060fd88 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
@@ -472,7 +472,6 @@ public class WbPanel extends AbstractWbPanel {
                        Whiteboards wbs = WhiteboardCache.get(roomId);
                        String wuid = UUID.randomUUID().toString();
                        Whiteboard wb = wbs.get(wbs.getActiveWb());
-                       final boolean[] updated = {false};
                        switch (fi.getType()) {
                                case Folder:
                                        //do nothing
@@ -484,7 +483,7 @@ public class WbPanel extends AbstractWbPanel {
                                                try (BufferedReader br = 
Files.newBufferedReader(f.toPath())) {
                                                        JSONArray arr = 
getArray(new JSONObject(new JSONTokener(br)), (o) -> {
                                                                        
wb.put(o.getString("uid"), o);
-                                                                       
updated[0] = true;
+                                                                       
WhiteboardCache.update(roomId, wb);
                                                                        return 
addFileUrl(wbs.getUid(), o, _f -> {
                                                                                
updateWbSize(wb, _f);
                                                                        });
@@ -519,15 +518,12 @@ public class WbPanel extends AbstractWbPanel {
                                        }
                                        wb.put(wuid, file);
                                        updateWbSize(wb, fi);
-                                       updated[0] = true;
+                                       WhiteboardCache.update(roomId, wb);
                                        sendWbAll(WbAction.setSize, 
getAddWbJson(wb));
                                        WbWebSocketHelper.sendWbFile(roomId, 
wb.getId(), ruid, file, fi);
                                }
                                        break;
                        }
-                       if (updated[0]) {
-                               WhiteboardCache.update(roomId, wb);
-                       }
                }
        }
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ed0a5486/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 898cf59..afe37ea 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
@@ -824,7 +824,7 @@ var Wb = function() {
                        case 'Recording':
                        {
                                let canvas = canvases[_o.slide];
-                               let vid = $('<video>').hide().attr('class', 
'wb-video').attr('id', 'wb-video-' + _o.uid)
+                               let vid = $('<video>').hide().attr('class', 
'wb-video slide-' + canvas.slide).attr('id', 'wb-video-' + _o.uid)
                                        .attr("width", _o.width).attr("height", 
_o.height)
                                        .append($('<source>').attr('type', 
'video/mp4').attr('src', _o._src))
                                let mainColor = '#ff6600';
@@ -1006,8 +1006,10 @@ var Wb = function() {
                        default:
                        {
                                let canvas = canvases[_o.slide];
-                               _o.selectable = canvas.selection;
-                               canvas.add(_o);
+                               if (!!canvas) {
+                                       _o.selectable = canvas.selection;
+                                       canvas.add(_o);
+                               }
                        }
                                break;
                }
@@ -1172,10 +1174,6 @@ var Wb = function() {
                canvas.wbId = wb.id;
                canvas.slide = sl;
                canvases.push(canvas);
-               fabric.util.requestAnimFrame(function render() {
-                       canvas.renderAll();
-                       fabric.util.requestAnimFrame(render);
-               });
                var cc = $('#' + cid).closest('.canvas-container');
                if (role === NONE) {
                        if (sl == slide) {
@@ -1346,12 +1344,14 @@ var Wb = function() {
        };
        wb.clearSlide = function(_sl) {
                if (canvases.length > _sl) {
-                       var canvas = canvases[_sl];
+                       let canvas = canvases[_sl];
                        canvas.renderOnAddRemove = false;
-                       var arr = canvas.getObjects();
+                       let arr = canvas.getObjects();
                        while (arr.length > 0) {
-                               arr[arr.length - 1].remove();
+                               canvas.remove(arr[arr.length - 1]);
+                               arr = canvas.getObjects();
                        }
+                       $('.room.wb.area .wb-video.slide-' + _sl).remove();
                        canvas.renderOnAddRemove = true;
                        canvas.renderAll();
                }

Reply via email to