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:27:22 UTC

svn commit: r1768828 - in /openmeetings/application/branches/3.2.x: 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/openm...

Author: vdegtyarev
Date: Wed Nov  9 04:27:22 2016
New Revision: 1768828

URL: http://svn.apache.org/viewvc?rev=1768828&view=rev
Log:
OPENMEETINGS-1376 partially fixed. Kick user from the room is added.

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

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

Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.html?rev=1768828&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.html (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.html Wed Nov  9 04:27:22 2016
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+		<table>
+			<tr>
+				<td wicket:id="message">[message]</td>
+			</tr>
+		</table>
+	</wicket:panel>
+</html>
\ No newline at end of file

Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.java?rev=1768828&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/CommonMessageDialog.java Wed Nov  9 04:27:22 2016
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.markup.html.basic.Label;
+
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class CommonMessageDialog extends AbstractDialog<String> {
+	private static final long serialVersionUID = 1L;
+	private String labelId;
+
+	public CommonMessageDialog(String id, String labelId) {
+		super(id, "");
+		this.labelId = labelId;
+	}
+
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		add(new Label("message", getString(labelId)));
+	};
+	
+	@Override
+	public void onConfigure(JQueryBehavior behavior) {
+		super.onConfigure(behavior);
+		behavior.setOption("autoOpen", false);
+		behavior.setOption("closeOnEscape", false);
+		behavior.setOption("dialogClass", Options.asString("no-close"));
+		behavior.setOption("resizable", false);
+	}
+	
+	@Override
+	public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
+	}
+
+}

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ConfirmableAjaxBorder.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ConfirmableAjaxBorder.java?rev=1768828&r1=1768827&r2=1768828&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ConfirmableAjaxBorder.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ConfirmableAjaxBorder.java Wed Nov  9 04:27:22 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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1768828&r1=1768827&r2=1768828&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html Wed Nov  9 04:27:22 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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1768828&r1=1768827&r2=1768828&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Wed Nov  9 04:27:22 2016
@@ -56,6 +56,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;
@@ -136,6 +137,7 @@ public class RoomPanel extends BasePanel
 		}
 	};
 	private RedirectMessageDialog roomClosed;
+	private CommonMessageDialog kickClientDialog;
 	private RoomMenuPanel menu;
 	private RoomSidebar sidebar;
 	private ActivitiesPanel activities;
@@ -266,6 +268,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
@@ -369,6 +378,15 @@ 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;
 				}
 			}
 		}
@@ -528,6 +546,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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html?rev=1768828&r1=1768827&r2=1768828&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html Wed Nov  9 04:27:22 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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java?rev=1768828&r1=1768827&r2=1768828&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java Wed Nov  9 04:27:22 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() {