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 2021/02/25 06:43:47 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2581] WB contents modification is fixed

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 7f5f91a  [OPENMEETINGS-2581] WB contents modification is fixed
7f5f91a is described below

commit 7f5f91a1cf0c77a2a4aa359221da52fa19f6d9fc
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Feb 25 13:43:31 2021 +0700

    [OPENMEETINGS-2581] WB contents modification is fixed
---
 openmeetings-web/src/main/front/wb/src/wb-area.js            |  9 +++++++--
 openmeetings-web/src/main/front/wb/src/wb.js                 | 12 ++++++++----
 .../org/apache/openmeetings/web/app/WhiteboardManager.java   |  5 ++++-
 .../java/org/apache/openmeetings/web/room/wb/WbPanel.java    |  3 ++-
 4 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/openmeetings-web/src/main/front/wb/src/wb-area.js b/openmeetings-web/src/main/front/wb/src/wb-area.js
index 6fb7e2e..4e94fec 100644
--- a/openmeetings-web/src/main/front/wb/src/wb-area.js
+++ b/openmeetings-web/src/main/front/wb/src/wb-area.js
@@ -181,7 +181,12 @@ module.exports = class DrawWbArea extends WbAreaBase {
 				.confirmation({
 					confirmationEvent: 'bla'
 					, onConfirm: function() {
-						OmUtil.wbAction({action: 'removeWb', data: {wbId: wbId}});
+						const prevLi = li.prev()
+							, prevWbId = prevLi.length > 0 ? prevLi.find('a').data('wb-id') : -1;
+						OmUtil.wbAction({action: 'removeWb', data: {
+							wbId: wbId
+							, prevWbId: prevWbId
+						}});
 					}
 				});
 		}
@@ -343,7 +348,7 @@ module.exports = class DrawWbArea extends WbAreaBase {
 			}
 			_getWbTab(obj.wbId).parent().remove();
 			_getWbContent(obj.wbId).remove();
-			_actionActivateWb(_getActive().data().id);
+			_actionActivateWb(obj.prevWbId);
 		};
 		this.load = (json) => {
 			if (!_inited) {
diff --git a/openmeetings-web/src/main/front/wb/src/wb.js b/openmeetings-web/src/main/front/wb/src/wb.js
index b065bd4..8d6a3cf 100644
--- a/openmeetings-web/src/main/front/wb/src/wb.js
+++ b/openmeetings-web/src/main/front/wb/src/wb.js
@@ -147,6 +147,12 @@ module.exports = class Wb {
 			if (role === Role.NONE && o.omType !== 'pointer') {
 				return;
 			}
+			function modifiedAction(items) {
+				OmUtil.wbAction({action: 'modifyObj', data: {
+					wbId: self.id
+					, obj: items
+				}});
+			}
 			o.includeDefaultValues = false;
 			if ('activeSelection' === o.type) {
 				o.clone(function(_o) {
@@ -156,14 +162,12 @@ module.exports = class Wb {
 					for (let i = 0; i < _items.length; ++i) {
 						items.push(self._toOmJson(_items[i]));
 					}
+					modifiedAction(items);
 				}, extraProps);
 			} else {
 				items.push(self._toOmJson(o));
+				modifiedAction(items);
 			}
-			OmUtil.wbAction({action: 'modifyObj', data: {
-				wbId: self.id
-				, obj: items
-			}});
 		}
 		function objSelectedHandler(e) {
 			tools.updateCoordinates(e.target);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
index 9ab90cd..8af5a6b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
@@ -242,9 +242,12 @@ public class WhiteboardManager implements IWhiteboardManager {
 		}
 	}
 
-	public Whiteboard remove(long roomId, Long wbId) {
+	public Whiteboard remove(long roomId, long wbId, long prevWbId) {
 		Whiteboards wbs = get(roomId);
 		Whiteboard wb = wbs.getWhiteboards().remove(wbId);
+		if (prevWbId > -1) {
+			wbs.setActiveWb(prevWbId);
+		}
 		update(wbs);
 		return wb;
 	}
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 80b165b..2f3bf22 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
@@ -256,7 +256,8 @@ public class WbPanel extends AbstractWbPanel {
 				{
 					long id = obj.optLong("wbId", -1);
 					if (id > -1) {
-						wbm.remove(roomId, id);
+						long prevId = obj.optLong("prevWbId", -1);
+						wbm.remove(roomId, id, prevId);
 						sendWbAll(WbAction.removeWb, obj);
 					}
 				}