You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/09/08 07:26:16 UTC

openmeetings git commit: [OPENMEETINGS-1641] file drop and clear slide are improved

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 <so...@gmail.com>
Authored: Fri Sep 8 14:26:08 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
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();
 		}