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 12:24:24 UTC

[3/3] openmeetings git commit: [OPENMEETINGS-1641] basic work on video manipulations

[OPENMEETINGS-1641] basic work on video manipulations


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

Branch: refs/heads/master
Commit: 81fa4d9cc50758e5baa101e02d0ceb849990793e
Parents: ed0a548
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Fri Sep 8 19:24:14 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Fri Sep 8 19:24:14 2017 +0700

----------------------------------------------------------------------
 .../org/apache/openmeetings/web/room/room.js    |   2 +-
 .../openmeetings/web/room/wb/WbPanel.java       |  10 +-
 .../apache/openmeetings/web/room/wb/fabric.js   |  18 +-
 .../openmeetings/web/room/wb/fabric.min.js      |  12 +-
 .../org/apache/openmeetings/web/room/wb/wb.js   | 398 ++++++++++---------
 5 files changed, 239 insertions(+), 201 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/81fa4d9c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
index 4a47f33..0b5b001 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
@@ -593,7 +593,7 @@ var Room = (function() {
 		} else {
 			holder.removeClass('big').addClass('small');
 		}
-		if (!!WbArea) {
+		if (typeof WbArea !== 'undefined') {
 			WbArea.resize(sb.width() + 5, w, h);
 		}
 	}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/81fa4d9c/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 060fd88..a2e4a4d 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
@@ -390,7 +390,7 @@ public class WbPanel extends AbstractWbPanel {
 		}
 	}
 
-	private static JSONObject getAddWbJson(Whiteboard wb) {
+	private static JSONObject getAddWbJson(final Whiteboard wb) {
 		return new JSONObject().put("wbId", wb.getId())
 				.put("name", wb.getName())
 				.put("width", wb.getWidth())
@@ -481,13 +481,17 @@ public class WbPanel extends AbstractWbPanel {
 					File f = fi.getFile();
 					if (f.exists() && f.isFile()) {
 						try (BufferedReader br = Files.newBufferedReader(f.toPath())) {
+							final boolean[] updated = {false};
 							JSONArray arr = getArray(new JSONObject(new JSONTokener(br)), (o) -> {
 									wb.put(o.getString("uid"), o);
-									WhiteboardCache.update(roomId, wb);
+									updated[0] = true;
 									return addFileUrl(wbs.getUid(), o, _f -> {
 										updateWbSize(wb, _f);
 									});
 								});
+							if (updated[0]) {
+								WhiteboardCache.update(roomId, wb);
+							}
 							sendWbAll(WbAction.setSize, getAddWbJson(wb));
 							sendWbAll(WbAction.load, getObjWbJson(wb.getId(), arr));
 						} catch (Exception e) {
@@ -504,7 +508,7 @@ public class WbPanel extends AbstractWbPanel {
 							.put("fileId", fi.getId())
 							.put("fileType", fi.getType().name())
 							.put("count", fi.getCount())
-							.put("type", "image")
+							.put("type", FileItem.Type.Video == fi.getType() || FileItem.Type.Recording == fi.getType() ? "video" : "image")
 							.put("left", UPLOAD_WB_LEFT)
 							.put("top", UPLOAD_WB_TOP)
 							.put("width", fi.getWidth() == null ? DEFAULT_WIDTH : fi.getWidth())

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/81fa4d9c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/fabric.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/fabric.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/fabric.js
index 5741100..b2744b5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/fabric.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/fabric.js
@@ -1,5 +1,4 @@
 /* Licensed MIT https://github.com/kangax/fabric.js/blob/master/LICENSE */
-
 /* build: `node build.js modules=ALL exclude=json,gestures minifier=uglifyjs` */
  /*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */
 
@@ -247,6 +246,9 @@ fabric.Collection = {
    * (if `renderOnAddRemove` is not `false`).
    * in case of Group no changes to bounding box are made.
    * Objects should be instances of (or inherit from) fabric.Object
+   * Use of this function is highly discouraged for groups.
+   * you can add a bunch of objects with the add method but then you NEED
+   * to run a addWithUpdate call for the Group class or position/bbox will be wrong.
    * @param {...fabric.Object} object Zero or more fabric instances
    * @return {Self} thisArg
    * @chainable
@@ -265,6 +267,9 @@ fabric.Collection = {
   /**
    * Inserts an object into collection at specified index, then renders canvas (if `renderOnAddRemove` is not `false`)
    * An object should be an instance of (or inherit from) fabric.Object
+   * Use of this function is highly discouraged for groups.
+   * you can add a bunch of objects with the insertAt method but then you NEED
+   * to run a addWithUpdate call for the Group class or position/bbox will be wrong.
    * @param {Object} object Object to insert
    * @param {Number} index Index to insert object at
    * @param {Boolean} nonSplicing When `true`, no splicing (shifting) of objects occurs
@@ -9729,7 +9734,7 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
           pointer = this.getPointer(e, ignoreZoom),
           activeGroup = this.getActiveGroup(),
           activeObject = this.getActiveObject(),
-          activeTarget;
+          activeTarget, activeTargetSubs;
       // first check current group (if one exists)
       // active group does not check sub targets like normal groups.
       // if active group just exits.
@@ -9750,12 +9755,15 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
         }
         else {
           activeTarget = activeObject;
+          activeTargetSubs = this.targets;
+          this.targets = [];
         }
       }
 
       var target = this._searchPossibleTargets(this._objects, pointer);
       if (e[this.altSelectionKey] && target && activeTarget && target !== activeTarget) {
         target = activeTarget;
+        this.targets = activeTargetSubs;
       }
       this._fireOverOutEvents(target, e);
       return target;
@@ -18796,6 +18804,11 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
      * @chainable
      */
     destroy: function() {
+      // when group is destroyed objects needs to get a repaint to be eventually
+      // displayed on canvas.
+      this._objects.forEach(function(object) {
+        object.set('dirty', true);
+      });
       return this._restoreObjectsState();
     },
 
@@ -27066,3 +27079,4 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot
   }
 
 })();
+