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(); }
