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 2020/02/26 17:31:24 UTC

[openmeetings] branch csp updated: [OPENMEETINGS-2165] wb add/remove seems to work

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

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


The following commit(s) were added to refs/heads/csp by this push:
     new fd3f883  [OPENMEETINGS-2165] wb add/remove seems to work
fd3f883 is described below

commit fd3f883a0eea380dd318f147ddf5be725cfae918
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Feb 27 00:31:05 2020 +0700

    [OPENMEETINGS-2165] wb add/remove seems to work
---
 .../apache/openmeetings/web/room/wb/WbPanel.html   |  9 ++-
 .../apache/openmeetings/web/room/wb/raw-wb-area.js | 91 ++++++++++++----------
 2 files changed, 56 insertions(+), 44 deletions(-)

diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
index 31080a1..37276a4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
@@ -42,7 +42,11 @@
 		<ul><li id="wb-area-tab" class="nav-item">
 			<a class="nav-link" data-toggle="tab" role="tab"><span></span></a>
 		</li></ul>
-		<button id="wb-tab-close" class="btn btn-sm btn-outline-secondary" wicket:message="title:85">
+		<button id="wb-tab-close" class="btn btn-sm btn-outline-secondary"
+				wicket:message="title:85,data-btn-ok-label:54,data-btn-cancel-label:lbl.cancel,data-title:832,data-content:1313"
+				data-btn-ok-class="btn btn-sm btn-danger"
+				data-btn-ok-icon-class="fas fa-exclamation-triangle"
+				>
 			<i class="fas fa-times"></i>
 			<span class="sr-only"><wicket:message key="85"/></span>
 		</button>
@@ -198,9 +202,6 @@
 		<div id="clear-slide-confirm" wicket:message="title:80, data-btn-ok:54, data-btn-cancel:lbl.cancel">
 			<wicket:message key="1359"/>
 		</div>
-		<div id="wb-confirm-remove" wicket:message="title:832, data-btn-ok:54, data-btn-cancel:lbl.cancel">
-			<wicket:message key="1313"/>
-		</div>
 		<div id="wb-settings" class="wb-settings" wicket:message="title:4, data-btn-ok:54, data-btn-cancel:lbl.cancel">
 			<div class="om-tbl">
 				<div class="om-tbl-row">
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
index b09e277..f50ad51 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
@@ -100,10 +100,16 @@ var DrawWbArea = function() {
 		}
 	}
 	function _activateTab(wbId) {
-		const li = _getWbTab(wbId);
-		if (li.length > 0) {
-			li.tab('show');
-			li[0].scrollIntoView();
+		const link = _getWbTab(wbId);
+		if (link.length > 0) {
+			link.tab('show');
+			if (role !== PRESENTER) {
+				$('.wb-tabbar ul.nav-tabs a.nav-link').removeClass('active');
+				link.addClass('active');
+				$('.wb-tab-content.tab-content .tab-pane').removeClass('active');
+				$('#' + link.attr('aria-controls')).addClass('active');
+			}
+			link[0].scrollIntoView();
 		}
 	}
 	function _setTabName(link, name) {
@@ -113,17 +119,28 @@ var DrawWbArea = function() {
 	function _getWbTab(wbId) {
 		return $('#' + __getWbTabId(wbId));
 	}
+	function _getWbContent(wbId) {
+		return $('#' + __getWbContentId(wbId));
+	};
 	function _renameTab(obj) {
 		_setTabName(_getWbTab(obj.wbId), obj.name);
 	}
 	function _addCloseBtn(li) {
-		if (role !== PRESENTER) {
+		if (role !== PRESENTER || li.find('button').length > 0) {
 			return;
 		}
-		li.find('a').append(OmUtil.tmpl('#wb-tab-close'));
-		li.find('button').click(function() {
-			OmUtil.confirmDlg('wb-confirm-remove', function() { OmUtil.wbAction({action: 'removeWb', data: {wbId: li.data().wbId}}); });
-		});
+		const link = li.find('a')
+			, wbId = link.data('wb-id')
+			, closeId = `wb-tab-${wbId}-close-btn`;
+		link.append(OmUtil.tmpl('#wb-tab-close', closeId));
+		li.find('button')
+			.confirmation({
+				rootSelector: closeId
+				, confirmationEvent: 'bla'
+				, onConfirm: function() {
+					OmUtil.wbAction({action: 'removeWb', data: {wbId: wbId}});
+				}
+			});
 	}
 	function _getImage(cnv) {
 		return cnv.toDataURL({
@@ -149,9 +166,28 @@ var DrawWbArea = function() {
 	function __getWbContentId(id) {
 		return 'wb-content-' + id;
 	};
+	function __initTab(elems) {
+		const links = elems.find('a');
+		if (role === PRESENTER) {
+			elems.each(function() {
+				_addCloseBtn($(this));
+			});
+			links.prop('disabled', false).removeClass('disabled');
+		} else {
+			links.prop('disabled', true).addClass('disabled');
+			elems.find('button').remove();
+		}
+		links.off()
+			.on('click', function(e) {
+				e.preventDefault();
+				if (role === PRESENTER) {
+					_actionActivateWb($(this).data('wb-id'));
+				}
+			});
+	};
 
 	self.getWb = function(id) {
-		return $('#' + __getWbContentId(id)).data();
+		return _getWbContent(id).data();
 	};
 	self.getCanvas = function(id) {
 		return self.getWb(id).getCanvas();
@@ -179,21 +215,16 @@ var DrawWbArea = function() {
 				tabs.find('.next.om-icon').click(function() {
 					scroll.scrollLeft(scroll.scrollLeft() + 30);
 				});
-				tabsNav.find('li').each(function() {
-					_addCloseBtn($(this));
-				});
 				self.addDeleteHandler();
 			}
-			tabsNav.find('li > a').prop('disable', false);
 		} else {
 			if (prev.length > 0) {
 				prev.parent().remove();
 				next.parent().remove();
-				tabsNav.find('li > a').prop('disable', true);
-				tabsNav.find('li button').remove();
 			}
 			self.removeDeleteHandler();
 		}
+		__initTab(tabsNav.find('li'));
 		tabs.find('.wb-tab-content .tab-pane').each(function() {
 			$(this).data().setRole(role);
 		});
@@ -208,25 +239,6 @@ var DrawWbArea = function() {
 			setTimeout(_doInit, 100, callback);
 			return;
 		}
-		//FIXME TODO check disabled
-		//FIXME TODO send activating
-		/*
-		tabs.tabs({
-			beforeActivate: function(e) {
-				let res = true;
-				if (e.originalEvent && e.originalEvent.type === 'click') {
-					res = role === PRESENTER;
-				}
-				return res;
-			}
-			, activate: function(e, ui) {
-				//only send `activateWb` event if activation was initiated by user
-				if (e.originalEvent && e.originalEvent.type === 'click') {
-					_actionActivateWb(ui.newTab.data('wb-id'));
-				}
-			}
-		});
-		*/
 		scroll = tabs.find('.scroll-container');
 		area = container.find('.wb-area');
 		tabs.find('ul.nav-tabs').sortable({
@@ -273,7 +285,7 @@ var DrawWbArea = function() {
 				if (role !== PRESENTER) {
 					return;
 				}
-				const editor = $('<input name="newName" type="text" style="color: black;"/>')
+				const editor = $('<input class="newName" name="newName" type="text"/>')
 					, name = $(this).hide().after(editor.val(obj.name))
 					, renameWbTab = function() {
 						const newName = editor.val();
@@ -294,7 +306,7 @@ var DrawWbArea = function() {
 
 		tabs.find('ul.nav-tabs').append(li);
 		tabs.find('.wb-tab-content').append(wb);
-		_addCloseBtn(li);
+		__initTab(li);
 
 		const wbo = Wb();
 		wbo.init(obj, tcid, role);
@@ -325,9 +337,8 @@ var DrawWbArea = function() {
 		if (!_inited) {
 			return;
 		}
-		const tabId = self.getWbTabId(obj.wbId);
-		_getWbTab(obj.wbId).remove();
-		$('#' + tabId).remove();
+		_getWbTab(obj.wbId).parent().remove();
+		_getWbContent(obj.wbId).remove();
 		_actionActivateWb(getActive().data().id);
 	};
 	self.load = function(json) {