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/27 17:44:47 UTC

[openmeetings] branch csp updated: [OPENMEETINGS-2165] more work on room

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 5c9a741  [OPENMEETINGS-2165] more work on room
5c9a741 is described below

commit 5c9a74132330f5199358eedb50aca55e408f619b
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Fri Feb 28 00:44:30 2020 +0700

    [OPENMEETINGS-2165] more work on room
---
 .../apache/openmeetings/web/room/RoomPanel.html    |  3 -
 .../apache/openmeetings/web/room/RoomPanel.java    | 92 +++++++++-------------
 .../openmeetings/web/room/sidebar/RoomSidebar.java |  2 +-
 .../apache/openmeetings/web/user/chat/Chat.html    |  8 +-
 .../openmeetings/web/user/chat/ChatForm.java       | 27 ++++---
 openmeetings-web/src/main/webapp/css/raw-chat.css  |  7 +-
 6 files changed, 58 insertions(+), 81 deletions(-)

diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
index 0eae2c3..5ab8826 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
@@ -32,12 +32,9 @@
 		<div class="event-details" wicket:id="event-details"></div>
 		<div wicket:id="access-denied"></div>
 		<div wicket:id="room-closed"></div>
-		<div wicket:id="wait-recording"></div>
 		<div wicket:id="nickname"></div>
 		<div wicket:id="client-kicked"></div>
 		<div wicket:id="wait-moderator" class="wait-moder"></div>
-		<div wicket:id="wait-apply-moderation"></div>
-		<div wicket:id="noone-can-help"></div>
 	</div>
 	<div id="disconnected-dlg" wicket:message="title:204, data-reload:753" hidden="hidden">
 		<wicket:message key="556"/>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index 0b89833..387026a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -33,6 +33,7 @@ import java.util.List;
 import java.util.Map.Entry;
 import java.util.Set;
 
+import org.apache.commons.text.StringEscapeUtils;
 import org.apache.openmeetings.core.remote.KurentoHandler;
 import org.apache.openmeetings.core.remote.StreamProcessor;
 import org.apache.openmeetings.core.util.WebSocketHelper;
@@ -85,6 +86,7 @@ import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.repeater.RepeatingView;
 import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.protocol.ws.api.BaseWebSocketBehavior;
 import org.apache.wicket.protocol.ws.api.event.WebSocketPushPayload;
@@ -105,12 +107,13 @@ import com.github.openjson.JSONObject;
 import com.googlecode.wicket.jquery.core.JQueryBehavior;
 import com.googlecode.wicket.jquery.core.Options;
 import com.googlecode.wicket.jquery.ui.interaction.droppable.Droppable;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
-import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
 
+import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
+import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Alert;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal.Backdrop;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.TextContentModal;
 
 @AuthorizeInstantiation("Room")
 public class RoomPanel extends BasePanel {
@@ -167,9 +170,12 @@ public class RoomPanel extends BasePanel {
 				List<Client> mods = cm.listByRoom(r.getId(), c -> c.hasRight(Room.Right.moderator));
 				log.debug("RoomPanel::roomEnter, mods IS EMPTY ? {}, is MOD ? {}", mods.isEmpty(), _c.hasRight(Room.Right.moderator));
 				if (mods.isEmpty()) {
-					waitApplyModeration.open(target);
+					showIdeaAlert(target, getString(r.isModerated() ? "641" : "498"));
 				}
 			}
+			if (r.isWaitRecording()) {
+				showIdeaAlert(target, getString("1315"));
+			}
 			wb.update(target);
 		}
 
@@ -193,7 +199,7 @@ public class RoomPanel extends BasePanel {
 		}
 	};
 	private RedirectMessageDialog roomClosed;
-	private MessageDialog clientKicked, nooneCanHelp, waitApplyModeration;
+	private Modal<String> clientKicked;
 	private Alert waitModerator;
 
 	private RoomMenuPanel menu;
@@ -367,45 +373,6 @@ public class RoomPanel extends BasePanel {
 				room.setVisible(false);
 			}
 		}
-		nooneCanHelp = new MessageDialog("noone-can-help", getString("204"), getString("696"), DialogButtons.OK, DialogIcon.LIGHT) {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
-				// no-op
-			}
-		};
-		waitApplyModeration = new MessageDialog("wait-apply-moderation", getString("204"), getString(r.isModerated() ? "641" : "498"), DialogButtons.OK, DialogIcon.LIGHT) {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
-				// no-op
-			}
-		};
-		if (r.isWaitRecording()) {
-			add(new MessageDialog("wait-recording", getString("1316"), getString("1315"), DialogButtons.OK, DialogIcon.LIGHT) {
-				private static final long serialVersionUID = 1L;
-
-				@Override
-				public void onConfigure(JQueryBehavior behavior) {
-					super.onConfigure(behavior);
-					behavior.setOption("autoOpen", true);
-				}
-
-				@Override
-				public boolean isResizable() {
-					return false;
-				}
-
-				@Override
-				public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
-					//no-op
-				}
-			});
-		} else {
-			add(new WebMarkupContainer("wait-recording").setVisible(false));
-		}
 		RepeatingView groupstyles = new RepeatingView("groupstyle");
 		add(groupstyles.setVisible(room.isVisible() && !r.getGroups().isEmpty()));
 		if (room.isVisible()) {
@@ -449,15 +416,20 @@ public class RoomPanel extends BasePanel {
 		if (waitModerator == null) {
 			createWaitModerator(false);
 		}
-		add(room, accessDenied, eventDetail, waitModerator, nooneCanHelp, waitApplyModeration);
-		add(clientKicked = new MessageDialog("client-kicked", getString("797"), getString("606"), DialogButtons.OK, DialogIcon.ERROR) {
-			private static final long serialVersionUID = 1L;
+		add(room, accessDenied, eventDetail, waitModerator);
+		add(clientKicked = new TextContentModal("client-kicked", new ResourceModel("606")));
+		clientKicked
+			.header(new ResourceModel("797"))
+			.setCloseOnEscapeKey(false)
+			.setBackdrop(Backdrop.FALSE)
+			.addButton(new BootstrapAjaxLink<>("button", Model.of(""), Buttons.Type.Outline_Primary, new ResourceModel("54")) {
+				private static final long serialVersionUID = 1L;
 
-			@Override
-			public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
-				menu.exit(handler);
-			}
-		});
+				public void onClick(AjaxRequestTarget target) {
+					clientKicked.close(target);
+					menu.exit(target);
+				}
+			});
 	}
 
 	@Override
@@ -551,7 +523,7 @@ public class RoomPanel extends BasePanel {
 							if (_c.getUid().equals(uid)) {
 								handler.add(room.setVisible(false));
 								getMainPanel().getChat().toggle(handler, false);
-								clientKicked.open(handler);
+								clientKicked.show(handler);
 								cm.exitRoom(_c);
 							}
 						}
@@ -710,8 +682,7 @@ public class RoomPanel extends BasePanel {
 		List<Client> mods = cm.listByRoom(r.getId(), c -> c.hasRight(Room.Right.moderator));
 		if (mods.isEmpty()) {
 			if (r.isModerated()) {
-				//dialog
-				nooneCanHelp.open(handler);
+				showIdeaAlert(handler, getString("696"));
 				return;
 			} else {
 				// we found no-one we can ask, allow right
@@ -855,4 +826,13 @@ public class RoomPanel extends BasePanel {
 		}
 		return clazz;
 	}
+
+	private void showIdeaAlert(IPartialPageRequestHandler handler, String msg) {
+		showAlert(handler, "info", msg, "far fa-lightbulb");
+	}
+	private void showAlert(IPartialPageRequestHandler handler, String type, String msg, String icon) {
+		handler.appendJavaScript("OmUtil.alert('" + type + "', '<i class=\"" + icon + "\"></i>&nbsp;"
+				+ StringEscapeUtils.escapeEcmaScript(msg)
+				+ "', 10000)");
+	}
 }
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 249f12f..550b5dd 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -171,7 +171,7 @@ public class RoomSidebar extends Panel {
 
 		add(addFolder, settings, userCount.setOutputMarkupId(true));
 		add(avSettings);
-		add(new ConfirmationDialog("confirm-kick", new ResourceModel("603"), new ResourceModel("605")) {
+		add(confirmKick = new ConfirmationDialog("confirm-kick", new ResourceModel("603"), new ResourceModel("605")) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
index 3e45147..074eb91 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
@@ -28,8 +28,12 @@
 	<form wicket:id="sendForm">
 		<div wicket:id="toolbarContainer" class="tool-container"></div>
 		<div class="chat-msg-container">
-			<div id="chatMessage" wicket:id="chatMessage"></div>
-			<div class="send" wicket:id="send" wicket:message="title:218">&crarr;</div>
+			<div class="input-group">
+				<div id="chatMessage" wicket:id="chatMessage"></div>
+				<div class="input-group-append" id="button-addon4">
+					<button class="send btn btn-outline-primary" wicket:id="send" wicket:message="title:218">&crarr;</button>
+				</div>
+			</div>
 			<input type="hidden" wicket:id="activeTab" id="activeChatTab"/>
 		</div>
 	</form>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
index b672352..28eb5b8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
@@ -18,9 +18,17 @@
  */
 package org.apache.openmeetings.web.user.chat;
 
-import com.github.openjson.JSONObject;
-import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
-import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
+import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_ALL;
+import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_ROOM_PREFIX;
+import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_USER_PREFIX;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.function.BooleanSupplier;
+import java.util.function.Predicate;
+
 import org.apache.openmeetings.core.util.ChatWebSocketHelper;
 import org.apache.openmeetings.db.dao.basic.ChatDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -36,6 +44,7 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
 import org.apache.wicket.ajax.attributes.IAjaxCallListener;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.HiddenField;
 import org.apache.wicket.model.Model;
@@ -44,16 +53,8 @@ import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Arrays;
-import java.util.Date;
-import java.util.function.BooleanSupplier;
-import java.util.function.Predicate;
-
-import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_ALL;
-import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_ROOM_PREFIX;
-import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_USER_PREFIX;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
+import com.github.openjson.JSONObject;
+import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
 
 public class ChatForm extends Form<Void> {
 	private static final long serialVersionUID = 1L;
diff --git a/openmeetings-web/src/main/webapp/css/raw-chat.css b/openmeetings-web/src/main/webapp/css/raw-chat.css
index 4a6d4e2..23325c6 100644
--- a/openmeetings-web/src/main/webapp/css/raw-chat.css
+++ b/openmeetings-web/src/main/webapp/css/raw-chat.css
@@ -80,7 +80,7 @@ html[dir="rtl"] #chat .messageArea .icons {
 	position: relative;
 }
 #chatMessage {
-	margin-right: 22px;
+	width: calc(100% - 16px);
 	height: var(--chat-msg-height);
 	max-height: var(--chat-msg-height);
 }
@@ -116,11 +116,6 @@ html[dir="rtl"] #chat .messageArea .icons {
 }
 #chat .send {
 	width: 16px;
-	display: inline-block;
-	position: absolute;
-	right: 0;
-	top: 0;
-	height: 60px;
 	padding-left: 0;
 	padding-right: 0;
 	margin-right: 0;