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/10 07:37:43 UTC

openmeetings git commit: [OPENMEETINGS-1641] rewind on click is added

Repository: openmeetings
Updated Branches:
  refs/heads/master 057719dec -> f8f2799cb


[OPENMEETINGS-1641] rewind on click is added


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

Branch: refs/heads/master
Commit: f8f2799cb1b3a225998d3887f9468070d4d0a2e7
Parents: 057719d
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sun Sep 10 14:37:35 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sun Sep 10 14:37:35 2017 +0700

----------------------------------------------------------------------
 .../org/apache/openmeetings/web/room/wb/wb.js   | 29 ++++++++++++++------
 1 file changed, 20 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/f8f2799c/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 f33c81d..4edf5c1 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
@@ -49,17 +49,17 @@ var Player = (function() {
 		return props.reduce((result, key) => { result[key] = _o[key]; return result; }, {});
 	}
 
-	player.create = function(canvas, _o) {
+	player.create = function(canvas, _o, _role) {
 		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));
-		$('body').append(vid);
+		$('#wb-tab-' + canvas.wbId).append(vid);
 		new fabric.Image.fromURL(_o._poster, function(poster) {
 			new fabric.Image(vid[0], {}, function (video) {
 				video.visible = false;
 				poster.width = _o.width;
 				poster.height = _o.height;
-				let paused = true;
+				let paused = true, playable = false;
 				let trg = new fabric.Triangle({
 					left: 2.7 * rad
 					, top: _o.height - 2.5 * rad
@@ -131,8 +131,10 @@ var Player = (function() {
 				};
 				cProgress.on({
 					'mousedown': function (evt) {
-						video.getElement().currentTime = (evt.e.offsetX - evt.target.aCoords.bl.x - cProgress.aCoords.bl.x)
-								* video.getElement().duration / cProgress.width;
+						let _ptr = canvas.getPointer(evt.e)
+							, ptr = canvas._normalizePointer(group, _ptr)
+							, l = (group.width / 2 + ptr.x) * canvas.getZoom() - cProgress.aCoords.bl.x;
+						video.getElement().currentTime = l * video.getElement().duration / cProgress.width;
 						updateProgress();
 					}
 				});
@@ -212,9 +214,9 @@ var Player = (function() {
 
 				group.on({
 					'mouseover': function() {
-						play.visible = true;
-						cProgress.visible = true;
-						progress.visible = true;
+						play.visible = playable;
+						cProgress.visible = playable;
+						progress.visible = playable;
 						canvas.renderAll();
 					}
 					, 'mouseout': function() {
@@ -224,6 +226,10 @@ var Player = (function() {
 						canvas.renderAll();
 					}
 				});
+				group.setPlayable = function(_r) {
+					playable = _r !== NONE;
+				};
+				group.setPlayable(_role);
 				canvas.add(group);
 				canvas.renderAll();
 				player.modify(group, _o);
@@ -1294,6 +1300,11 @@ var Wb = function() {
 			t = a.find('.tools'), s = a.find(".wb-settings");
 			wb.eachCanvas(function(canvas) {
 				setHandlers(canvas);
+				canvas.forEachObject(function(__o) { //TODO reduce iterations
+					if (!!__o && __o.omType === 'Video') {
+						__o.setPlayable(role);
+					}
+				});
 			});
 			internalInit();
 		}
@@ -1350,7 +1361,7 @@ var Wb = function() {
 					APointer().create(canvases[o.slide], o);
 					break;
 				case 'video':
-					Player.create(canvases[o.slide], o);
+					Player.create(canvases[o.slide], o, role);
 					break;
 				default:
 					var __o = _findObject(o);