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/09/01 02:39:01 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2652] multi-select should work better

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 c166be6  [OPENMEETINGS-2652] multi-select should work better
c166be6 is described below

commit c166be61fefdae66f7111de59dd0f4403164b9a8
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Sep 1 09:36:49 2021 +0700

    [OPENMEETINGS-2652] multi-select should work better
---
 .../openmeetings/web/common/InvitationDialog.java     |  1 +
 .../openmeetings/web/common/InvitationForm.java       |  8 +++++++-
 .../openmeetings/web/room/menu/ActionsSubMenu.java    |  5 +++--
 .../web/room/menu/RoomInvitationForm.java             | 19 +++++++++++--------
 .../openmeetings/web/room/menu/RoomMenuPanel.html     |  2 +-
 .../apache/openmeetings/web/user/MessageDialog.java   |  5 ++++-
 .../web/user/calendar/AppointmentDialog.java          |  3 +++
 .../openmeetings/web/user/calendar/CalendarPanel.html |  2 +-
 .../openmeetings/web/user/calendar/CalendarPanel.java |  2 +-
 .../web/user/record/RecordingInvitationForm.java      |  9 +++++++--
 .../openmeetings/web/user/record/RecordingsPanel.html |  2 +-
 .../openmeetings/web/user/record/RecordingsPanel.java |  5 +++--
 pom.xml                                               |  2 +-
 13 files changed, 44 insertions(+), 21 deletions(-)

diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
index 88435fc..95385cb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
@@ -34,6 +34,7 @@ public class InvitationDialog extends Modal<Invitation> {
 
 	public InvitationDialog(String id, final InvitationForm form) {
 		super(id, form.getModel());
+		setMarkupId(id);
 		this.form = form;
 	}
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
index 55b0514..39365a6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
@@ -81,6 +81,8 @@ public abstract class InvitationForm extends Form<Invitation> {
 	protected final TextField<String> url = new TextField<>("url", Model.of((String)null));
 	protected final UserMultiChoice recipients = new UserMultiChoice("recipients", new CollectionModel<>(new ArrayList<>()));
 	protected InvitationDialog dialog;
+	protected String dropDownParentId;
+
 	@SpringBean
 	private InvitationDao inviteDao;
 	@SpringBean
@@ -93,8 +95,9 @@ public abstract class InvitationForm extends Form<Invitation> {
 		, SEND
 	}
 
-	protected InvitationForm(String id) {
+	protected InvitationForm(String id, String dropDownParentId) {
 		super(id, new CompoundPropertyModel<>(new Invitation()));
+		this.dropDownParentId = dropDownParentId;
 		setOutputMarkupId(true);
 	}
 
@@ -105,6 +108,9 @@ public abstract class InvitationForm extends Form<Invitation> {
 			url.setModelObject(null);
 			updateButtons(target);
 		})).setOutputMarkupId(true);
+		if (dropDownParentId != null) {
+			recipients.getSettings().setDropdownParent(dropDownParentId);
+		}
 		add(new AjaxCheckBox("passwordProtected") {
 			private static final long serialVersionUID = 1L;
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
index 8ec7507..7655214 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
@@ -67,8 +67,9 @@ public class ActionsSubMenu implements Serializable {
 	}
 
 	public void init() {
-		RoomInvitationForm rif = new RoomInvitationForm("form", room.getRoom().getId());
-		mp.add(invite = new InvitationDialog("invite", rif));
+		final String roomInviteDialogId = "roomInviteDialog";
+		RoomInvitationForm rif = new RoomInvitationForm("form", room.getRoom().getId(), roomInviteDialogId);
+		mp.add(invite = new InvitationDialog(roomInviteDialogId, rif));
 		rif.setDialog(invite);
 		mp.add(sipDialer = new SipDialerDialog("sipDialer", room));
 		actionsMenu = new OmMenuItem(mp.getString("635"), null, false);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
index 34b9456..aefe09f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
@@ -57,7 +57,7 @@ public class RoomInvitationForm extends InvitationForm {
 	private final RadioGroup<InviteeType> rdi = new RadioGroup<>("inviteeType", Model.of(InviteeType.user));
 	private final Long roomId;
 	private final WebMarkupContainer groupContainer = new WebMarkupContainer("groupContainer");
-	final Select2MultiChoice<Group> groups = new Select2MultiChoice<>("groups"
+	private final Select2MultiChoice<Group> groups = new Select2MultiChoice<>("groups"
 			, new CollectionModel<>(new ArrayList<>())
 			, new GroupChoiceProvider());
 	final WebMarkupContainer sipContainer = new WebMarkupContainer("sip-container");
@@ -73,9 +73,14 @@ public class RoomInvitationForm extends InvitationForm {
 		, group
 	}
 
-	public RoomInvitationForm(String id, Long roomId) {
-		super(id);
+	public RoomInvitationForm(String id, Long roomId, String dropDownParentId) {
+		super(id, dropDownParentId);
 		this.roomId = roomId;
+	}
+
+	@Override
+	protected void onInitialize() {
+		groups.setLabel(new ResourceModel("126"));
 		boolean showGroups = AuthLevelUtil.hasAdminLevel(getRights());
 		add(rdi.add(new AjaxFormChoiceComponentUpdatingBehavior() {
 			private static final long serialVersionUID = 1L;
@@ -98,11 +103,9 @@ public class RoomInvitationForm extends InvitationForm {
 		rdi.add(new Radio<>("user", Model.of(InviteeType.user)));
 		add(sipContainer.setOutputMarkupPlaceholderTag(true).setOutputMarkupId(true));
 		sipContainer.add(new Label("room.confno", "")).setVisible(false);
-	}
-
-	@Override
-	protected void onInitialize() {
-		groups.setLabel(new ResourceModel("126"));
+		if (dropDownParentId != null) {
+			groups.getSettings().setDropdownParent(dropDownParentId);
+		}
 		super.onInitialize();
 	}
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
index 1d173f8..f12a8ab 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
@@ -38,7 +38,7 @@
 		<span wicket:id="logo" class="icon"></span>
 		<span wicket:id="demo" class="text-danger room demo"></span>
 	</div>
-	<div wicket:id="invite"></div>
+	<div wicket:id="roomInviteDialog"></div>
 	<div wicket:id="createPoll"></div>
 	<div wicket:id="vote"></div>
 	<div wicket:id="pollResults"></div>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
index fd33168..239bf54 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
@@ -107,6 +107,7 @@ public class MessageDialog extends Modal<PrivateMessage> {
 
 	public MessageDialog(String id, CompoundPropertyModel<PrivateMessage> model) {
 		super(id, model);
+		setMarkupId(id);
 		form = new Form<>("form", getModel());
 	}
 
@@ -208,7 +209,9 @@ public class MessageDialog extends Modal<PrivateMessage> {
 		addButton(OmModalCloseButton.of());
 
 		form.add(feedback.setOutputMarkupId(true));
-		form.add(new UserMultiChoice("to", modelTo).setRequired(true));
+		final UserMultiChoice recepients = new UserMultiChoice("to", modelTo);
+		recepients.getSettings().setDropdownParent(MessageDialog.this.getMarkupId());
+		form.add(recepients.setRequired(true));
 		form.add(new TextField<String>("subject"));
 		OmWysiwygToolbar toolbar = new OmWysiwygToolbar("toolbarContainer");
 		form.add(toolbar);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
index 757d0b3..0481bee 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
@@ -132,6 +132,7 @@ public class AppointmentDialog extends Modal<Appointment> {
 
 	public AppointmentDialog(String id, CalendarPanel calendarPanel, CompoundPropertyModel<Appointment> model) {
 		super(id, model);
+		setMarkupId(id);
 		log.debug(" -- AppointmentDialog -- Current model {}", getModel().getObject());
 		this.calendarPanel = calendarPanel;
 		setOutputMarkupId(true);
@@ -370,6 +371,7 @@ public class AppointmentDialog extends Modal<Appointment> {
 			//General
 			add(ownerPanel.add(owner));
 			boolean showGroups = AuthLevelUtil.hasAdminLevel(getRights());
+			groups.getSettings().setDropdownParent(AppointmentDialog.this.getMarkupId());
 			add(rdi.add(new AjaxFormChoiceComponentUpdatingBehavior() {
 				private static final long serialVersionUID = 1L;
 
@@ -388,6 +390,7 @@ public class AppointmentDialog extends Modal<Appointment> {
 					// added to update model
 				})).setEnabled(false);
 			}
+			attendees.getSettings().setDropdownParent(AppointmentDialog.this.getMarkupId());
 			rdi.add(attendees.add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
 					// added to update model
 				}))
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
index 0706644..23e1a00 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
@@ -39,7 +39,7 @@
 			<!-- div wicket:id="feedback"></div -->
 		</form>
 	</div>
-	<div wicket:id="appointment" class="appointment">[appointment]</div>
+	<div wicket:id="calendarAppointment" class="appointment">[appointment]</div>
 	<div wicket:id="calendarDialog"></div>
 	<!-- bottom section -->
 </wicket:panel>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
index d6bd651..65536d1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
@@ -123,7 +123,7 @@ public class CalendarPanel extends UserBasePanel {
 		final Form<Date> form = new Form<>("form");
 		add(form);
 
-		dialog = new AppointmentDialog("appointment", this, new CompoundPropertyModel<>(getDefault()));
+		dialog = new AppointmentDialog("calendarAppointment", this, new CompoundPropertyModel<>(getDefault()));
 		add(dialog);
 
 		boolean isRtl = isRtl();
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
index 79738b3..c319b0f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
@@ -29,9 +29,14 @@ public class RecordingInvitationForm extends InvitationForm {
 	@SpringBean
 	private RecordingDao recDao;
 
-	public RecordingInvitationForm(String id) {
-		super(id);
+	public RecordingInvitationForm(String id, String dropDownParentId) {
+		super(id, dropDownParentId);
+	}
+
+	@Override
+	protected void onInitialize() {
 		add(recipients);
+		super.onInitialize();
 	}
 
 	@Override
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
index 91a10c4..3f26014 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
@@ -28,6 +28,6 @@
 		<div wicket:id="video"></div>
 	</div>
 	<div wicket:id="addFolder"></div>
-	<div wicket:id="invitation"></div>
+	<div wicket:id="recordingInviteDialog"></div>
 </wicket:panel>
 </html>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
index 1cd806e..5a14902 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
@@ -52,7 +52,8 @@ public class RecordingsPanel extends UserBasePanel {
 	private final VideoInfo info = new VideoInfo("info");
 	private FileTreePanel fileTree;
 	private InvitationDialog invite;
-	private RecordingInvitationForm rif = new RecordingInvitationForm("form");
+	private final static String recordingInviteDialogId = "recordingInviteDialog";
+	private RecordingInvitationForm rif = new RecordingInvitationForm("form", recordingInviteDialogId);
 
 	@SpringBean
 	private RecordingDao recDao;
@@ -152,7 +153,7 @@ public class RecordingsPanel extends UserBasePanel {
 			}
 		});
 		add(video, info, addFolder);
-		add(invite = new InvitationDialog("invitation", rif));
+		add(invite = new InvitationDialog(recordingInviteDialogId, rif));
 		rif.setDialog(invite);
 
 		super.onInitialize();
diff --git a/pom.xml b/pom.xml
index da5c869..1e9b0cc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,7 +82,7 @@
 		<wicket.version>9.4.0</wicket.version>
 		<wicket-jquery-ui.version>9.3.2</wicket-jquery-ui.version>
 		<wicketstuff.version>9.4.0</wicketstuff.version>
-		<wicket-bootstrap.version>6.0.0-M3</wicket-bootstrap.version>
+		<wicket-bootstrap.version>6.0.0-M4-SNAPSHOT</wicket-bootstrap.version>
 		<font-awesome.version>5.15.3</font-awesome.version>
 		<spring.version>5.3.9</spring.version>
 		<tomcat.version>9.0.52</tomcat.version>