This is an automated email from the ASF dual-hosted git repository. solomax pushed a commit to branch OPENMEETINGS-2000-local-settings-dlg in repository https://gitbox.apache.org/repos/asf/openmeetings.git
commit 85d587d575b90fb397c6b1c1d10a41c8cc4c27ab Author: Maxim Solodovnik <solomax...@gmail.com> AuthorDate: Tue Dec 1 21:37:09 2020 +0700 [OPENMEETINGS-2000] incomplete local user settings dialog --- .../apache/openmeetings/web/common/MainPanel.java | 2 +- .../openmeetings/web/common/menu/OmMenuItem.java | 14 +++++++-- .../apache/openmeetings/web/room/RoomPanel.html | 20 ++++++++++++ .../openmeetings/web/room/menu/ActionsSubMenu.java | 36 ++++++++++++++++------ .../openmeetings/web/room/menu/PollsSubMenu.java | 8 ++--- .../openmeetings/web/room/menu/RoomMenuPanel.java | 16 +--------- 6 files changed, 65 insertions(+), 31 deletions(-) diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java index 87433ec..859aff5 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java @@ -337,7 +337,7 @@ public class MainPanel extends Panel { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { RoomEnterBehavior.roomEnter((MainPage)getPage(), target, roomId); } }); diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/OmMenuItem.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/OmMenuItem.java index d1f05e9..0382bfb 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/OmMenuItem.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/OmMenuItem.java @@ -28,6 +28,7 @@ import java.util.stream.Collectors; import org.apache.wicket.AttributeModifier; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.markup.html.link.AbstractLink; import org.apache.wicket.model.Model; import org.apache.wicket.util.string.Strings; @@ -115,6 +116,11 @@ public class OmMenuItem implements INavbarComponent { public void onClick(AjaxRequestTarget target) { OmMenuItem.this.onClick(target); } + + @Override + protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { + OmMenuItem.this.updateAjaxAttributes(attributes); + } }; if (topLevel) { link.add(AttributeModifier.append(ATTR_CLASS, "nav-link")); @@ -130,10 +136,14 @@ public class OmMenuItem implements INavbarComponent { @Override public ComponentPosition getPosition() { - return ComponentPosition.LEFT; //FIXME TODO + return ComponentPosition.LEFT; + } + + protected void onClick(AjaxRequestTarget target) { + // no-op by default } - public void onClick(AjaxRequestTarget target) { + protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { // no-op by default } } 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 888b8e7..9eb7952 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 @@ -58,6 +58,26 @@ </div> </div> </div> + <div id="room-local-settings" class="modal fade" tabindex="-1" role="dialog" data-backdrop="static" aria-hidden="true"> + <div class="modal-dialog modal-sm" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <h5 class="modal-title"><wicket:message key="edit.settings"/></h5> + <button type="button" class="close" data-dismiss="modal" wicket:message="aria-label:85"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <wicket:message key="556"/> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> + <i class="fas fa-sync-alt"></i> <wicket:message key="753"/> + </button> + </div> + </div> + </div> + </div> <div hidden="hidden"> <div id="user-video" class="video-container"> <div class="video"> 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 38fd198..c35c099 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 @@ -31,7 +31,10 @@ import org.apache.openmeetings.web.app.WhiteboardManager; import org.apache.openmeetings.web.common.InvitationDialog; import org.apache.openmeetings.web.common.menu.OmMenuItem; import org.apache.openmeetings.web.room.RoomPanel; +import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; +import org.apache.wicket.ajax.attributes.IAjaxCallListener; import org.apache.wicket.injection.Injector; import org.apache.wicket.spring.injection.annot.SpringBean; @@ -51,6 +54,7 @@ public class ActionsSubMenu implements Serializable { private OmMenuItem downloadPngMenuItem; private OmMenuItem downloadPdfMenuItem; private OmMenuItem resetWb; + private OmMenuItem localSettings; private final boolean visible; @SpringBean private WhiteboardManager wbManager; @@ -72,7 +76,7 @@ public class ActionsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { invite.updateModel(target); invite.show(target); } @@ -81,7 +85,7 @@ public class ActionsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { target.appendJavaScript("Sharer.open();"); } }; @@ -89,7 +93,7 @@ public class ActionsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { room.requestRight(Room.Right.MODERATOR, target); } }; @@ -97,7 +101,7 @@ public class ActionsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { room.requestRight(Room.Right.WHITEBOARD, target); } }; @@ -105,7 +109,7 @@ public class ActionsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { room.requestRight(Room.Right.VIDEO, target); } }; @@ -113,7 +117,7 @@ public class ActionsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { sipDialer.show(target); } }; @@ -121,7 +125,7 @@ public class ActionsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { download(target, EXTENSION_PNG); } }; @@ -129,7 +133,7 @@ public class ActionsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { download(target, EXTENSION_PDF); } }; @@ -137,10 +141,23 @@ public class ActionsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { wbManager.reset(room.getRoom().getId(), getUserId()); } }; + localSettings = new OmMenuItem(mp.getString("edit.settings"), mp.getString("edit.settings")) { + private static final long serialVersionUID = 1L; + + @Override + protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { + attributes.getAjaxCallListeners().add(new IAjaxCallListener() { + @Override + public CharSequence getPrecondition(Component component) { + return "$('#room-local-settings').modal('show'); return false;"; + } + }); + } + }; } OmMenuItem getMenu() { @@ -157,6 +174,7 @@ public class ActionsSubMenu implements Serializable { .add(downloadPdfMenuItem) .add(resetWb); } + actionsMenu.add(localSettings); return actionsMenu; } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java index 7843f55..5432adf 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java @@ -109,7 +109,7 @@ public class PollsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { qpollManager.start(room.getClient()); } }; @@ -117,7 +117,7 @@ public class PollsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { createPoll.updateModel(target); createPoll.show(target); } @@ -126,7 +126,7 @@ public class PollsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { RoomPoll rp = pollDao.getByRoom(room.getRoom().getId()); if (rp != null) { vote.updateModel(target, rp); @@ -138,7 +138,7 @@ public class PollsSubMenu implements Serializable { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { pollResults.updateModel(target, true, room.getClient().hasRight(Room.Right.MODERATOR)); pollResults.show(target); } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java index e242717..edd31be 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java @@ -95,7 +95,6 @@ public class RoomMenuPanel extends Panel { }; private final RoomPanel room; private OmMenuItem exitMenuItem; - private OmMenuItem filesMenu; private final ImagePanel logo = new ImagePanel("logo") { private static final long serialVersionUID = 1L; @@ -145,12 +144,11 @@ public class RoomMenuPanel extends Panel { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { + protected void onClick(AjaxRequestTarget target) { chatDao.closeMessages(getUserId()); exit(target); } }; - filesMenu = new OmMenuItem(getString("245"), null, false); actionsSubMenu.init(); pollsSubMenu.init(); add((menuPanel = new MenuPanel("menu", getMenu())).setVisible(isVisible())); @@ -188,16 +186,6 @@ public class RoomMenuPanel extends Panel { exitMenuItem.setVisible(false); menu.add(exitMenuItem); - filesMenu.add(new OmMenuItem(getString("15"), getString("1479")) { - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - room.getSidebar().showUpload(target); - } - }); - menu.add(filesMenu); - if (actionsSubMenu.isVisible()) { menu.add(actionsSubMenu.getMenu()); } @@ -212,11 +200,9 @@ public class RoomMenuPanel extends Panel { return; } Room r = room.getRoom(); - boolean isInterview = Room.Type.INTERVIEW == r.getType(); User u = room.getClient().getUser(); boolean notExternalUser = u.getType() != User.Type.CONTACT; exitMenuItem.setVisible(notExternalUser); - filesMenu.setVisible(!isInterview && room.getSidebar().isShowFiles()); boolean moder = room.getClient().hasRight(Room.Right.MODERATOR); actionsSubMenu.update(moder, notExternalUser); pollsSubMenu.update(moder, notExternalUser, r);