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 <[email protected]>
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> "
+ + 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">↵</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">↵</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;