You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by vd...@apache.org on 2016/11/09 04:42:25 UTC

svn commit: r1768829 - in /openmeetings/application/trunk: openmeetings-util/src/main/java/org/apache/openmeetings/util/message/ openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ openmeetings-web/src/main/java/org/apache/openmeetings/w...

Author: vdegtyarev
Date: Wed Nov  9 04:42:24 2016
New Revision: 1768829

URL: http://svn.apache.org/viewvc?rev=1768829&view=rev
Log:
OPENMEETINGS-1376 partially fixed. Kick user from the room is added.
Merged revision(s) 1768828 from openmeetings/application/branches/3.2.x to trunk.

Added:
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.html
      - copied unchanged from r1768828, openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.html
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.java
      - copied unchanged from r1768828, openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.java
Modified:
    openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ConfirmableAjaxBorder.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java

Modified: openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java?rev=1768829&r1=1768828&r2=1768829&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java (original)
+++ openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java Wed Nov  9 04:42:24 2016
@@ -45,6 +45,7 @@ public class RoomMessage implements IWeb
 		, requestRightAv
 		, requestRightMute
 		, requestRightExclusive
+		, kick
 	}
 	private final Date timestamp;
 	private final String uid;

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ConfirmableAjaxBorder.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ConfirmableAjaxBorder.java?rev=1768829&r1=1768828&r2=1768829&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ConfirmableAjaxBorder.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ConfirmableAjaxBorder.java Wed Nov  9 04:42:24 2016
@@ -48,6 +48,10 @@ public abstract class ConfirmableAjaxBor
 		setOutputMarkupId(true);
 	}
 
+	public AbstractFormDialog<?> getDialog() {
+		return dialog;
+	}
+	
 	@Override
 	protected void onInitialize() {
 		super.onInitialize();

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1768829&r1=1768828&r2=1768829&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html Wed Nov  9 04:42:24 2016
@@ -41,5 +41,6 @@
 	<div wicket:id="room-closed"></div>
 	<div wicket:id="wait-for-recording"></div>
 	<div wicket:id="nickname"></div>
+	<div wicket:id="kickClientDialog"></div>
 </wicket:panel>
 </html>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1768829&r1=1768828&r2=1768829&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Wed Nov  9 04:42:24 2016
@@ -54,6 +54,7 @@ import org.apache.openmeetings.web.app.A
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.BasePanel;
+import org.apache.openmeetings.web.common.CommonMessageDialog;
 import org.apache.openmeetings.web.room.activities.ActivitiesPanel;
 import org.apache.openmeetings.web.room.activities.Activity;
 import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
@@ -137,6 +138,7 @@ public class RoomPanel extends BasePanel
 		}
 	};
 	private RedirectMessageDialog roomClosed;
+	private CommonMessageDialog kickClientDialog;
 	private RoomMenuPanel menu;
 	private RoomSidebar sidebar;
 	private ActivitiesPanel activities;
@@ -269,6 +271,13 @@ public class RoomPanel extends BasePanel
 		} else {
 			add(new WebMarkupContainer("nickname").setVisible(false));
 		}
+		add(kickClientDialog = new CommonMessageDialog("kickClientDialog", "606"){
+			private static final long serialVersionUID = 1L;
+			@Override
+			public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
+				setResponsePage(Application.get().getHomePage());
+	}
+		});
 	}
 	
 	@Override
@@ -372,8 +381,17 @@ public class RoomPanel extends BasePanel
 							activities.remove(tm.getText(), handler);
 						}
 						break;
+					case kick:
+						{
+							String uid = ((TextRoomMessage)m).getText();
+							if (getClient().getUid().equals(uid)) {
+								handler.add(room.setVisible(false));
+								kickClientDialog.open(handler);
 				}
 			}
+						break;
+		}
+			}
 		}
 		super.onEvent(event);
 	}
@@ -530,6 +548,10 @@ public class RoomPanel extends BasePanel
 		broadcast(target, client);
 	}
 
+	public void kickUser(AjaxRequestTarget target, Client client) {
+		RoomPanel.broadcast(new TextRoomMessage(client.getRoomId(), client.getUserId(), Type.kick, client.getUid()));
+	}
+	
 	public void broadcast(AjaxRequestTarget target, Client client) {
 		broadcast(new RoomMessage(getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
 		RoomBroadcaster.sendUpdatedClient(client);

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html?rev=1768829&r1=1768828&r2=1768829&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html Wed Nov  9 04:42:24 2016
@@ -36,5 +36,6 @@
 		<div class="file list" wicket:id="tree"></div>
 	</wicket:fragment>
 	<div wicket:id="upload"></div>
+	<div wicket:id="kickDialog" />
 </wicket:panel>
 </html>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java?rev=1768829&r1=1768828&r2=1768829&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java Wed Nov  9 04:42:24 2016
@@ -32,7 +32,9 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.Client.Activity;
+import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
 import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.openmeetings.web.room.RoomPanel.Action;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
@@ -41,6 +43,7 @@ import org.apache.wicket.markup.head.IHe
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Fragment;
@@ -71,7 +74,9 @@ public class RoomSidebar extends Panel {
 	private final UploadDialog upload;
 	private final RoomFilePanel roomFiles;
 	private final SelfIconsPanel selfRights;
+	private final ConfirmableAjaxBorder kickDialog;
 	private boolean showFiles;
+	private Client kickClient;
 	public enum Pod {
 		none
 		, right
@@ -85,11 +90,34 @@ public class RoomSidebar extends Panel {
 			item.add(new RoomClientPanel("user", item, room));
 		}
 	};
-	private final AbstractDefaultAjaxBehavior action = new AbstractDefaultAjaxBehavior() {
+	private final AbstractDefaultAjaxBehavior roomAction = new AbstractDefaultAjaxBehavior() {
 		private static final long serialVersionUID = 1L;
 
 		@Override
 		protected void respond(AjaxRequestTarget target) {
+			try {
+				String uid = getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString(); 
+				if (Strings.isEmpty(uid)) {
+					return;
+				}
+				if (room.getClient().hasRight(Right.moderator)) {
+					Action a = Action.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTION).toString()); 
+					kickClient = getOnlineClient(uid);
+					if (kickClient == null || a == null) {
+						return;
+					}
+					switch (a) {
+						case kick:
+							if ((!room.getClient().getUid().equals(kickClient.getUid()))) {
+								kickDialog.getDialog().open(target);
+							}
+							break;
+						default:
+					}
+				}
+			} catch (Exception e) {
+				log.error("Unexpected exception while toggle 'action'", e);
+			}
 		}
 	};
 	private final AbstractDefaultAjaxBehavior toggleRight = new AbstractDefaultAjaxBehavior() {
@@ -203,7 +231,15 @@ public class RoomSidebar extends Panel {
 		roomFiles = new RoomFilePanel("tree", room);
 		selfRights = new SelfIconsPanel("icons", room.getClient(), room, true);
 		add(upload = new UploadDialog("upload", room, roomFiles));
-		add(toggleRight, toggleActivity, action);
+		add(kickDialog = new ConfirmableAjaxBorder("kickDialog", getString("603"), getString("605")) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+				room.kickUser(target, kickClient);
+			}
+		});
+		add(toggleRight, toggleActivity, roomAction);
 	}
 	
 	@Override
@@ -211,7 +247,7 @@ public class RoomSidebar extends Panel {
 		super.renderHead(response);
 		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_TOGGLE_RIGHT, toggleRight, explicit(PARAM_RIGHT), explicit(PARAM_UID)), FUNC_TOGGLE_RIGHT)));
 		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_TOGGLE_ACTIVITY, toggleActivity, explicit(PARAM_ACTIVITY), explicit(PARAM_UID), explicit(PARAM_POD)), FUNC_TOGGLE_ACTIVITY)));
-		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_ACTION, action, explicit(PARAM_ACTION), explicit(PARAM_UID)), FUNC_ACTION)));
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_ACTION, roomAction, explicit(PARAM_ACTION), explicit(PARAM_UID)), FUNC_ACTION)));
 	}
 	
 	private ListView<Client> updateUsers() {