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() {