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 2016/04/24 10:24:08 UTC
svn commit: r1740681 - in /openmeetings/application:
branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/
branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/
branches/3.2.x/openmeetings-...
Author: solomax
Date: Sun Apr 24 08:24:08 2016
New Revision: 1740681
URL: http://svn.apache.org/viewvc?rev=1740681&view=rev
Log:
[OPENMEETINGS-1376] some icons are partially implemented
Added:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java
Modified:
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/activities/ActivitiesPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.html
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
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/activities/ActivitiesPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
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=1740681&r1=1740680&r2=1740681&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 Sun Apr 24 08:24:08 2016
@@ -268,19 +268,19 @@ public class RoomPanel extends BasePanel
case requestRightModerator:
if (getClient().hasRight(Right.moderator) && !isModerator(m.getUserId(), r.getId())) {
TextRoomMessage tm = (TextRoomMessage)m;
- activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.requestRightModerator), handler);
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightModerator), handler);
}
break;
case requestRightAv:
if (getClient().hasRight(Right.moderator) && !hasRight(m.getUserId(), r.getId(), Right.audio) && !hasRight(m.getUserId(), r.getId(), Right.video)) {
TextRoomMessage tm = (TextRoomMessage)m;
- activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.requestRightAv), handler);
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightAv), handler);
}
break;
case requestRightWb:
if (getClient().hasRight(Right.moderator) && !hasRight(m.getUserId(), r.getId(), Right.whiteBoard)) {
TextRoomMessage tm = (TextRoomMessage)m;
- activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.requestRightWb), handler);
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightWb), handler);
}
break;
case activityRemove:
@@ -398,6 +398,18 @@ public class RoomPanel extends BasePanel
}
}
+ public void requestRight(AjaxRequestTarget target, RoomMessage.Type right) {
+ RoomPanel.broadcast(new TextRoomMessage(getRoom().getId(), getUserId(), right, getClient().getUid()));
+ }
+
+ public void allowRight(AjaxRequestTarget target, Client client, Right... rights) {
+ for (Right right : rights) {
+ client.getRights().add(right);
+ }
+ broadcast(new RoomMessage(getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
+ RoomBroadcaster.sendUpdatedClient(client);
+ }
+
public Room getRoom() {
return r;
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java Sun Apr 24 08:24:08 2016
@@ -40,7 +40,6 @@ import org.apache.openmeetings.util.mess
import org.apache.openmeetings.web.app.Client;
import org.apache.openmeetings.web.app.Client.Right;
import org.apache.openmeetings.web.common.BasePanel;
-import org.apache.openmeetings.web.room.RoomBroadcaster;
import org.apache.openmeetings.web.room.RoomPanel;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
@@ -102,24 +101,17 @@ public class ActivitiesPanel extends Bas
Client client = getOnlineClient(uid);
if (room.getClient().hasRight(Client.Right.moderator) && client != null && roomId == client.getRoomId()) {
switch (a.getType()) {
- case requestRightModerator:
- client.getRights().add(Right.moderator);
+ case reqRightModerator:
broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
- broadcast(new RoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
- RoomBroadcaster.sendUpdatedClient(client);
+ room.allowRight(target, client, Right.moderator);
break;
- case requestRightAv:
- client.getRights().add(Right.audio);
- client.getRights().add(Right.video);
+ case reqRightAv:
broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
- broadcast(new RoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
- RoomBroadcaster.sendUpdatedClient(client);
+ room.allowRight(target, client, Right.audio, Right.video);
break;
- case requestRightWb:
- client.getRights().add(Right.whiteBoard);
+ case reqRightWb:
broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
- broadcast(new RoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
- RoomBroadcaster.sendUpdatedClient(client);
+ room.allowRight(target, client, Right.whiteBoard);
break;
default:
break;
@@ -162,7 +154,7 @@ public class ActivitiesPanel extends Bas
text = String.format("%s %s %s [%s]", u.getFirstname(), u.getLastname(), getString("1367"), df.get().format(a.getCreated()));
}
break;
- case requestRightModerator:
+ case reqRightModerator:
{
User u = getBean(UserDao.class).get(a.getSender());
text = String.format("%s %s %s [%s]", u.getFirstname(), u.getLastname(), getString("room.action.request.right.moderator"), df.get().format(a.getCreated()));
@@ -171,7 +163,7 @@ public class ActivitiesPanel extends Bas
}
//ask question 693
break;
- case requestRightAv:
+ case reqRightAv:
{
User u = getBean(UserDao.class).get(a.getSender());
text = String.format("%s %s %s [%s]", u.getFirstname(), u.getLastname(), getString("695"), df.get().format(a.getCreated()));
@@ -179,7 +171,7 @@ public class ActivitiesPanel extends Bas
decline.setVisible(true);
}
break;
- case requestRightWb:
+ case reqRightWb:
{
User u = getBean(UserDao.class).get(a.getSender());
text = String.format("%s %s %s [%s]", u.getFirstname(), u.getLastname(), getString("694"), df.get().format(a.getCreated()));
@@ -195,11 +187,11 @@ public class ActivitiesPanel extends Bas
private String getClass(Activity a) {
switch (a.getType()) {
- case requestRightModerator:
+ case reqRightModerator:
return "ui-state-highlight";
- case requestRightAv:
+ case reqRightAv:
return "ui-state-highlight";
- case requestRightWb:
+ case reqRightWb:
return "ui-state-highlight";
case roomEnter:
case roomExit:
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java Sun Apr 24 08:24:08 2016
@@ -26,9 +26,9 @@ public class Activity implements Seriali
public enum Type {
roomEnter
, roomExit
- , requestRightModerator
- , requestRightAv
- , requestRightWb
+ , reqRightModerator
+ , reqRightAv
+ , reqRightWb
}
private final String uid;
private final Long sender;
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java Sun Apr 24 08:24:08 2016
@@ -85,7 +85,7 @@ public class RoomMenuPanel extends Panel
}
@Override
public void onClick(AjaxRequestTarget target) {
- RoomPanel.broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.requestRightModerator, room.getClient().getUid()));
+ room.requestRight(target, RoomMessage.Type.requestRightModerator);
}
};
private final RoomPanel room;
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java Sun Apr 24 08:24:08 2016
@@ -59,7 +59,7 @@ public class RoomClientPanel extends Pan
add(new Label("name", u.getFirstname() + " " + u.getLastname()));
add(AttributeAppender.append("data-userid", c.getUserId()));
WebMarkupContainer actions = new WebMarkupContainer("actions");
- actions.add(new RoomRightPanel("rights"));
+ actions.add(new RoomRightPanel("rights", c, room));
actions.add(new WebMarkupContainer("privateChat").setVisible(!room.getRoom().isHidden(RoomElement.Chat) && !getUserId().equals(c.getUserId())));
if (room.getClient() != null) {
actions.setVisible(room.getClient().hasRight(Right.moderator));
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.html?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.html (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.html Sun Apr 24 08:24:08 2016
@@ -20,12 +20,12 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <span class="ui-icon align-left clickable moderator-right" wicket:message="title:676"></span>
- <span class="ui-icon align-left clickable wb-right" wicket:message="title:611"></span>
- <span class="ui-icon align-left clickable screen-share-right" wicket:message="title:1067"></span>
- <span class="ui-icon align-left clickable remote-control-right" wicket:message="title:1078"></span>
- <span class="ui-icon align-left clickable audio-right" wicket:message="title:1604"></span>
- <span class="ui-icon align-left clickable camera-right" wicket:message="title:683"></span>
+ <span wicket:id="right-moder"></span>
+ <span wicket:id="right-wb"></span>
+ <span wicket:id="right-screen-share"></span>
+ <span wicket:id="right-remote-control"></span>
+ <span wicket:id="right-audio"></span>
+ <span wicket:id="right-video"></span>
<span class="ui-icon align-left clickable global-mute" wicket:message="title:1384"></span>
<span class="ui-icon align-left clickable exclsv-audio" wicket:message="title:1424"></span>
</wicket:panel>
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java Sun Apr 24 08:24:08 2016
@@ -18,14 +18,50 @@
*/
package org.apache.openmeetings.web.room.sidebar;
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.openmeetings.web.room.sidebar.icon.AudioRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.ModeratorRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.RemoteControlRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.ScreenShareRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.VideoRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.WhiteboardRightIcon;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.markup.html.panel.Panel;
public class RoomRightPanel extends Panel {
private static final long serialVersionUID = 1L;
+ private final ModeratorRightIcon rightModer;
+ private final WhiteboardRightIcon rightWb;
+ private final ScreenShareRightIcon rightScreen;
+ private final RemoteControlRightIcon rightRemote;
+ private final AudioRightIcon rightAudio;
+ private final VideoRightIcon rightVideo;
- public RoomRightPanel(String id) {
+ public RoomRightPanel(String id, Client client, RoomPanel room) {
super(id);
setRenderBodyOnly(true);
setOutputMarkupId(true);
+ add(rightModer = new ModeratorRightIcon("right-moder", client, room));
+ add(rightWb = new WhiteboardRightIcon("right-wb", client, room));
+ add(rightScreen = new ScreenShareRightIcon("right-screen-share", client, room));
+ add(rightRemote = new RemoteControlRightIcon("right-remote-control", client, room));
+ add(rightAudio = new AudioRightIcon("right-audio", client, room));
+ add(rightVideo = new VideoRightIcon("right-video", client, room));
+ }
+
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
+ update(null);
+ }
+
+ public void update(IPartialPageRequestHandler handler) {
+ rightModer.update(handler);
+ rightWb.update(handler);
+ rightScreen.update(handler);
+ rightRemote.update(handler);
+ rightAudio.update(handler);
+ rightVideo.update(handler);
}
}
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=1740681&r1=1740680&r2=1740681&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 Sun Apr 24 08:24:08 2016
@@ -18,17 +18,27 @@
*/
package org.apache.openmeetings.web.room.sidebar;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getOnlineClient;
import static org.apache.openmeetings.web.app.Application.getRoomUsers;
+import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
+import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
import java.util.ArrayList;
import java.util.Arrays;
import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.util.message.RoomMessage;
import org.apache.openmeetings.web.app.Client;
import org.apache.openmeetings.web.app.Client.Right;
import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
+import org.apache.wicket.markup.head.IHeaderResponse;
+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.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
@@ -36,11 +46,17 @@ import org.apache.wicket.markup.html.pan
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
import com.googlecode.wicket.jquery.ui.widget.tabs.TabbedPanel;
public class RoomSidebar extends Panel {
private static final long serialVersionUID = 1L;
+ private static final Logger log = Red5LoggerFactory.getLogger(RoomSidebar.class, webAppRootKey);
+ public static final String FUNC_REQUEST_RIGHT = "requestRight";
+ public static final String PARAM_RIGHT = "right";
+ public static final String PARAM_UID = "uid";
private final RoomPanel room;
private final TabbedPanel tabs;
private final ITab userTab;
@@ -57,6 +73,25 @@ public class RoomSidebar extends Panel {
item.add(new RoomClientPanel("user", item, room));
}
};
+ private final AbstractDefaultAjaxBehavior requestRight = new AbstractDefaultAjaxBehavior() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void respond(AjaxRequestTarget target) {
+ try {
+ String uid = getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString();
+ Right right = Right.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_RIGHT).toString());
+ if (room.getClient().hasRight(Right.moderator)) {
+ Client client = getOnlineClient(uid);
+ room.allowRight(target, client, right);
+ } else {
+ room.requestRight(target, RoomMessage.Type.requestRightModerator);
+ }
+ } catch (Exception e) {
+ log.error("Unexpected exception while processing activity action", e);
+ }
+ }
+ };
public RoomSidebar(String id, final RoomPanel room) {
super(id);
@@ -101,8 +136,15 @@ public class RoomSidebar extends Panel {
};
add(tabs = new TabbedPanel("tabs", Arrays.asList(userTab, fileTab)).setActiveTab(room.getRoom().isFilesOpened() ? 1 : 0));
roomFiles = new RoomFilePanel("tree", room);
- selfRights = new RoomRightPanel("rights");
+ selfRights = new RoomRightPanel("rights", room.getClient(), room);
add(upload = new UploadDialog("upload", room, roomFiles));
+ add(requestRight);
+ }
+
+ @Override
+ public void renderHead(IHeaderResponse response) {
+ super.renderHead(response);
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_REQUEST_RIGHT, requestRight, explicit(PARAM_RIGHT), explicit(PARAM_UID)), FUNC_REQUEST_RIGHT)));
}
private ListView<Client> updateUsers() {
@@ -138,6 +180,7 @@ public class RoomSidebar extends Panel {
public void updateUsers(IPartialPageRequestHandler handler) {
updateShowFiles();
updateUsers();
+ selfRights.update(handler);
handler.add(tabs);
}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,42 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class AudioRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public AudioRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.audio, room);
+ mainCssClass = "audio-right ";
+ }
+
+ @Override
+ protected boolean hasRight() {
+ return false; //FIXME TODO need some flag
+ }
+
+ @Override
+ protected String getTitle() {
+ return getString(self ? "1606" : "1604");
+ }
+}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,43 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class ModeratorRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public ModeratorRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.moderator, room);
+ mainCssClass = "moderator-right ";
+ }
+
+ @Override
+ protected String getTitle() {
+ String title;
+ if (client.hasRight(right)) {
+ title = self ? "688" : "675";
+ } else {
+ title = self ? "685" : "676";
+ }
+ return getString(title);
+ }
+}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class RemoteControlRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public RemoteControlRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.remoteControl, room);
+ mainCssClass = "remote-control-right ";
+ Room r = room.getRoom();
+ setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing));
+ }
+
+ @Override
+ protected String getTitle() {
+ String title;
+ if (client.hasRight(right)) {
+ title = self ? "1081" : "1078";
+ } else {
+ title = "1080";
+ }
+ return getString(title);
+ }
+}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,76 @@
+/*
+ * 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.room.sidebar.icon;
+
+import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_REQUEST_RIGHT;
+
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.behavior.AttributeAppender;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+
+public abstract class RoomRightIcon extends WebMarkupContainer {
+ private static final long serialVersionUID = 1L;
+ private static final String CLS_CLICKABLE = "clickable ";
+ private static final String CLS_GRANTED = "granted ";
+ private static final String ICON_CLASS = "ui-icon align-left ";
+ protected final Right right;
+ protected final boolean self;
+ protected final Client client;
+ protected String mainCssClass;
+
+ public RoomRightIcon(String id, Client client, Right right, RoomPanel room) {
+ super(id);
+ this.client = client;
+ this.right = right;
+ self = room.getClient().getUid().equals(client.getUid());
+ setOutputMarkupId(true);
+ }
+
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
+ update(null);
+ }
+
+ protected abstract String getTitle();
+
+ protected boolean hasRight() {
+ return client.hasRight(right);
+ }
+
+ public void update(IPartialPageRequestHandler handler) {
+ StringBuilder cls = new StringBuilder(ICON_CLASS);
+ cls.append(mainCssClass);
+ if (hasRight()) {
+ cls.append(CLS_GRANTED);
+ } else {
+ cls.append(CLS_CLICKABLE);
+ add(AttributeAppender.replace("onclick", String.format("%s('%s', '%s');", FUNC_REQUEST_RIGHT, right.name(), client.getUid())));
+ }
+ add(AttributeAppender.replace("title", getTitle()));
+ add(AttributeAppender.replace("class", cls));
+
+ if (handler != null) {
+ handler.add(this);
+ }
+ }
+}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class ScreenShareRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public ScreenShareRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.share, room);
+ mainCssClass = "screen-share-right ";
+ Room r = room.getRoom();
+ setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing));
+ }
+
+ @Override
+ protected String getTitle() {
+ String title;
+ if (client.hasRight(right)) {
+ title = self ? "1071" : "1068";
+ } else {
+ title = "1072";
+ }
+ return getString(title);
+ }
+}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,43 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class VideoRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public VideoRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.video, room);
+ mainCssClass = "camera-right ";
+ setVisible(!room.getRoom().isAudioOnly());
+ }
+
+ @Override
+ protected boolean hasRight() {
+ return false; //FIXME TODO need some flag
+ }
+
+ @Override
+ protected String getTitle() {
+ return getString(self ? "687" : "683");
+ }
+}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class WhiteboardRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public WhiteboardRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.whiteBoard, room);
+ mainCssClass = "wb-right ";
+ Room r = room.getRoom();
+ setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.Whiteboard));
+ }
+
+ @Override
+ protected String getTitle() {
+ String title;
+ if (client.hasRight(right)) {
+ title = self ? "689" : "612";
+ } else {
+ title = self ? "686" : "694";
+ }
+ return getString(title);
+ }
+}
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java Sun Apr 24 08:24:08 2016
@@ -26,14 +26,13 @@ public class CallbackFunctionHelper {
StringBuilder sb = new StringBuilder();
sb.append("function ").append(name).append("(");
boolean first = true;
- for (CallbackParameter curExtraParameter : extraParameters)
- {
- if (curExtraParameter.getFunctionParameterName() != null)
- {
- if (!first)
- sb.append(',');
- else
+ for (CallbackParameter curExtraParameter : extraParameters) {
+ if (curExtraParameter.getFunctionParameterName() != null) {
+ if (first) {
first = false;
+ } else {
+ sb.append(',');
+ }
sb.append(curExtraParameter.getFunctionParameterName());
}
}
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=1740681&r1=1740680&r2=1740681&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 Sun Apr 24 08:24:08 2016
@@ -287,19 +287,19 @@ public class RoomPanel extends BasePanel
case requestRightModerator:
if (getClient().hasRight(Right.moderator) && !isModerator(m.getUserId(), r.getId())) {
TextRoomMessage tm = (TextRoomMessage)m;
- activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.requestRightModerator), handler);
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightModerator), handler);
}
break;
case requestRightAv:
if (getClient().hasRight(Right.moderator) && !hasRight(m.getUserId(), r.getId(), Right.audio) && !hasRight(m.getUserId(), r.getId(), Right.video)) {
TextRoomMessage tm = (TextRoomMessage)m;
- activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.requestRightAv), handler);
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightAv), handler);
}
break;
case requestRightWb:
if (getClient().hasRight(Right.moderator) && !hasRight(m.getUserId(), r.getId(), Right.whiteBoard)) {
TextRoomMessage tm = (TextRoomMessage)m;
- activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.requestRightWb), handler);
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightWb), handler);
}
break;
case activityRemove:
@@ -429,6 +429,18 @@ public class RoomPanel extends BasePanel
}
}
+ public void requestRight(AjaxRequestTarget target, RoomMessage.Type right) {
+ RoomPanel.broadcast(new TextRoomMessage(getRoom().getId(), getUserId(), right, getClient().getUid()));
+ }
+
+ public void allowRight(AjaxRequestTarget target, Client client, Right... rights) {
+ for (Right right : rights) {
+ client.getRights().add(right);
+ }
+ broadcast(new RoomMessage(getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
+ RoomBroadcaster.sendUpdatedClient(client);
+ }
+
public Room getRoom() {
return r;
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java Sun Apr 24 08:24:08 2016
@@ -40,7 +40,6 @@ import org.apache.openmeetings.util.mess
import org.apache.openmeetings.web.app.Client;
import org.apache.openmeetings.web.app.Client.Right;
import org.apache.openmeetings.web.common.BasePanel;
-import org.apache.openmeetings.web.room.RoomBroadcaster;
import org.apache.openmeetings.web.room.RoomPanel;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
@@ -102,24 +101,17 @@ public class ActivitiesPanel extends Bas
Client client = getOnlineClient(uid);
if (room.getClient().hasRight(Client.Right.moderator) && client != null && roomId == client.getRoomId()) {
switch (a.getType()) {
- case requestRightModerator:
- client.getRights().add(Right.moderator);
+ case reqRightModerator:
broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
- broadcast(new RoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
- RoomBroadcaster.sendUpdatedClient(client);
+ room.allowRight(target, client, Right.moderator);
break;
- case requestRightAv:
- client.getRights().add(Right.audio);
- client.getRights().add(Right.video);
+ case reqRightAv:
broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
- broadcast(new RoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
- RoomBroadcaster.sendUpdatedClient(client);
+ room.allowRight(target, client, Right.audio, Right.video);
break;
- case requestRightWb:
- client.getRights().add(Right.whiteBoard);
+ case reqRightWb:
broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
- broadcast(new RoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
- RoomBroadcaster.sendUpdatedClient(client);
+ room.allowRight(target, client, Right.whiteBoard);
break;
default:
break;
@@ -162,7 +154,7 @@ public class ActivitiesPanel extends Bas
text = String.format("%s %s %s [%s]", u.getFirstname(), u.getLastname(), getString("1367"), df.get().format(a.getCreated()));
}
break;
- case requestRightModerator:
+ case reqRightModerator:
{
User u = getBean(UserDao.class).get(a.getSender());
text = String.format("%s %s %s [%s]", u.getFirstname(), u.getLastname(), getString("room.action.request.right.moderator"), df.get().format(a.getCreated()));
@@ -171,7 +163,7 @@ public class ActivitiesPanel extends Bas
}
//ask question 693
break;
- case requestRightAv:
+ case reqRightAv:
{
User u = getBean(UserDao.class).get(a.getSender());
text = String.format("%s %s %s [%s]", u.getFirstname(), u.getLastname(), getString("695"), df.get().format(a.getCreated()));
@@ -179,7 +171,7 @@ public class ActivitiesPanel extends Bas
decline.setVisible(true);
}
break;
- case requestRightWb:
+ case reqRightWb:
{
User u = getBean(UserDao.class).get(a.getSender());
text = String.format("%s %s %s [%s]", u.getFirstname(), u.getLastname(), getString("694"), df.get().format(a.getCreated()));
@@ -195,11 +187,11 @@ public class ActivitiesPanel extends Bas
private String getClass(Activity a) {
switch (a.getType()) {
- case requestRightModerator:
+ case reqRightModerator:
return "ui-state-highlight";
- case requestRightAv:
+ case reqRightAv:
return "ui-state-highlight";
- case requestRightWb:
+ case reqRightWb:
return "ui-state-highlight";
case roomEnter:
case roomExit:
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java Sun Apr 24 08:24:08 2016
@@ -26,9 +26,9 @@ public class Activity implements Seriali
public enum Type {
roomEnter
, roomExit
- , requestRightModerator
- , requestRightAv
- , requestRightWb
+ , reqRightModerator
+ , reqRightAv
+ , reqRightWb
}
private final String uid;
private final Long sender;
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java Sun Apr 24 08:24:08 2016
@@ -85,7 +85,7 @@ public class RoomMenuPanel extends Panel
}
@Override
public void onClick(AjaxRequestTarget target) {
- RoomPanel.broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.requestRightModerator, room.getClient().getUid()));
+ room.requestRight(target, RoomMessage.Type.requestRightModerator);
}
};
private final RoomPanel room;
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java Sun Apr 24 08:24:08 2016
@@ -59,7 +59,7 @@ public class RoomClientPanel extends Pan
add(new Label("name", u.getFirstname() + " " + u.getLastname()));
add(AttributeAppender.append("data-userid", c.getUserId()));
WebMarkupContainer actions = new WebMarkupContainer("actions");
- actions.add(new RoomRightPanel("rights"));
+ actions.add(new RoomRightPanel("rights", c, room));
actions.add(new WebMarkupContainer("privateChat").setVisible(!room.getRoom().isHidden(RoomElement.Chat) && !getUserId().equals(c.getUserId())));
if (room.getClient() != null) {
actions.setVisible(room.getClient().hasRight(Right.moderator));
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.html?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.html Sun Apr 24 08:24:08 2016
@@ -20,12 +20,12 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <span class="ui-icon align-left clickable moderator-right" wicket:message="title:676"></span>
- <span class="ui-icon align-left clickable wb-right" wicket:message="title:611"></span>
- <span class="ui-icon align-left clickable screen-share-right" wicket:message="title:1067"></span>
- <span class="ui-icon align-left clickable remote-control-right" wicket:message="title:1078"></span>
- <span class="ui-icon align-left clickable audio-right" wicket:message="title:1604"></span>
- <span class="ui-icon align-left clickable camera-right" wicket:message="title:683"></span>
+ <span wicket:id="right-moder"></span>
+ <span wicket:id="right-wb"></span>
+ <span wicket:id="right-screen-share"></span>
+ <span wicket:id="right-remote-control"></span>
+ <span wicket:id="right-audio"></span>
+ <span wicket:id="right-video"></span>
<span class="ui-icon align-left clickable global-mute" wicket:message="title:1384"></span>
<span class="ui-icon align-left clickable exclsv-audio" wicket:message="title:1424"></span>
</wicket:panel>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomRightPanel.java Sun Apr 24 08:24:08 2016
@@ -18,14 +18,50 @@
*/
package org.apache.openmeetings.web.room.sidebar;
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.openmeetings.web.room.sidebar.icon.AudioRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.ModeratorRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.RemoteControlRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.ScreenShareRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.VideoRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.WhiteboardRightIcon;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.markup.html.panel.Panel;
public class RoomRightPanel extends Panel {
private static final long serialVersionUID = 1L;
+ private final ModeratorRightIcon rightModer;
+ private final WhiteboardRightIcon rightWb;
+ private final ScreenShareRightIcon rightScreen;
+ private final RemoteControlRightIcon rightRemote;
+ private final AudioRightIcon rightAudio;
+ private final VideoRightIcon rightVideo;
- public RoomRightPanel(String id) {
+ public RoomRightPanel(String id, Client client, RoomPanel room) {
super(id);
setRenderBodyOnly(true);
setOutputMarkupId(true);
+ add(rightModer = new ModeratorRightIcon("right-moder", client, room));
+ add(rightWb = new WhiteboardRightIcon("right-wb", client, room));
+ add(rightScreen = new ScreenShareRightIcon("right-screen-share", client, room));
+ add(rightRemote = new RemoteControlRightIcon("right-remote-control", client, room));
+ add(rightAudio = new AudioRightIcon("right-audio", client, room));
+ add(rightVideo = new VideoRightIcon("right-video", client, room));
+ }
+
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
+ update(null);
+ }
+
+ public void update(IPartialPageRequestHandler handler) {
+ rightModer.update(handler);
+ rightWb.update(handler);
+ rightScreen.update(handler);
+ rightRemote.update(handler);
+ rightAudio.update(handler);
+ rightVideo.update(handler);
}
}
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=1740681&r1=1740680&r2=1740681&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 Sun Apr 24 08:24:08 2016
@@ -18,17 +18,27 @@
*/
package org.apache.openmeetings.web.room.sidebar;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getOnlineClient;
import static org.apache.openmeetings.web.app.Application.getRoomUsers;
+import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
+import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
import java.util.ArrayList;
import java.util.Arrays;
import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.util.message.RoomMessage;
import org.apache.openmeetings.web.app.Client;
import org.apache.openmeetings.web.app.Client.Right;
import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
+import org.apache.wicket.markup.head.IHeaderResponse;
+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.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
@@ -36,11 +46,17 @@ import org.apache.wicket.markup.html.pan
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
import com.googlecode.wicket.jquery.ui.widget.tabs.TabbedPanel;
public class RoomSidebar extends Panel {
private static final long serialVersionUID = 1L;
+ private static final Logger log = Red5LoggerFactory.getLogger(RoomSidebar.class, webAppRootKey);
+ public static final String FUNC_REQUEST_RIGHT = "requestRight";
+ public static final String PARAM_RIGHT = "right";
+ public static final String PARAM_UID = "uid";
private final RoomPanel room;
private final TabbedPanel tabs;
private final ITab userTab;
@@ -57,6 +73,25 @@ public class RoomSidebar extends Panel {
item.add(new RoomClientPanel("user", item, room));
}
};
+ private final AbstractDefaultAjaxBehavior requestRight = new AbstractDefaultAjaxBehavior() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void respond(AjaxRequestTarget target) {
+ try {
+ String uid = getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString();
+ Right right = Right.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_RIGHT).toString());
+ if (room.getClient().hasRight(Right.moderator)) {
+ Client client = getOnlineClient(uid);
+ room.allowRight(target, client, right);
+ } else {
+ room.requestRight(target, RoomMessage.Type.requestRightModerator);
+ }
+ } catch (Exception e) {
+ log.error("Unexpected exception while processing activity action", e);
+ }
+ }
+ };
public RoomSidebar(String id, final RoomPanel room) {
super(id);
@@ -101,8 +136,15 @@ public class RoomSidebar extends Panel {
};
add(tabs = new TabbedPanel("tabs", Arrays.asList(userTab, fileTab)).setActiveTab(room.getRoom().isFilesOpened() ? 1 : 0));
roomFiles = new RoomFilePanel("tree", room);
- selfRights = new RoomRightPanel("rights");
+ selfRights = new RoomRightPanel("rights", room.getClient(), room);
add(upload = new UploadDialog("upload", room, roomFiles));
+ add(requestRight);
+ }
+
+ @Override
+ public void renderHead(IHeaderResponse response) {
+ super.renderHead(response);
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_REQUEST_RIGHT, requestRight, explicit(PARAM_RIGHT), explicit(PARAM_UID)), FUNC_REQUEST_RIGHT)));
}
private ListView<Client> updateUsers() {
@@ -138,6 +180,7 @@ public class RoomSidebar extends Panel {
public void updateUsers(IPartialPageRequestHandler handler) {
updateShowFiles();
updateUsers();
+ selfRights.update(handler);
handler.add(tabs);
}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,42 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class AudioRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public AudioRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.audio, room);
+ mainCssClass = "audio-right ";
+ }
+
+ @Override
+ protected boolean hasRight() {
+ return false; //FIXME TODO need some flag
+ }
+
+ @Override
+ protected String getTitle() {
+ return getString(self ? "1606" : "1604");
+ }
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,43 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class ModeratorRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public ModeratorRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.moderator, room);
+ mainCssClass = "moderator-right ";
+ }
+
+ @Override
+ protected String getTitle() {
+ String title;
+ if (client.hasRight(right)) {
+ title = self ? "688" : "675";
+ } else {
+ title = self ? "685" : "676";
+ }
+ return getString(title);
+ }
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class RemoteControlRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public RemoteControlRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.remoteControl, room);
+ mainCssClass = "remote-control-right ";
+ Room r = room.getRoom();
+ setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing));
+ }
+
+ @Override
+ protected String getTitle() {
+ String title;
+ if (client.hasRight(right)) {
+ title = self ? "1081" : "1078";
+ } else {
+ title = "1080";
+ }
+ return getString(title);
+ }
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,76 @@
+/*
+ * 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.room.sidebar.icon;
+
+import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_REQUEST_RIGHT;
+
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.behavior.AttributeAppender;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+
+public abstract class RoomRightIcon extends WebMarkupContainer {
+ private static final long serialVersionUID = 1L;
+ private static final String CLS_CLICKABLE = "clickable ";
+ private static final String CLS_GRANTED = "granted ";
+ private static final String ICON_CLASS = "ui-icon align-left ";
+ protected final Right right;
+ protected final boolean self;
+ protected final Client client;
+ protected String mainCssClass;
+
+ public RoomRightIcon(String id, Client client, Right right, RoomPanel room) {
+ super(id);
+ this.client = client;
+ this.right = right;
+ self = room.getClient().getUid().equals(client.getUid());
+ setOutputMarkupId(true);
+ }
+
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
+ update(null);
+ }
+
+ protected abstract String getTitle();
+
+ protected boolean hasRight() {
+ return client.hasRight(right);
+ }
+
+ public void update(IPartialPageRequestHandler handler) {
+ StringBuilder cls = new StringBuilder(ICON_CLASS);
+ cls.append(mainCssClass);
+ if (hasRight()) {
+ cls.append(CLS_GRANTED);
+ } else {
+ cls.append(CLS_CLICKABLE);
+ add(AttributeAppender.replace("onclick", String.format("%s('%s', '%s');", FUNC_REQUEST_RIGHT, right.name(), client.getUid())));
+ }
+ add(AttributeAppender.replace("title", getTitle()));
+ add(AttributeAppender.replace("class", cls));
+
+ if (handler != null) {
+ handler.add(this);
+ }
+ }
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class ScreenShareRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public ScreenShareRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.share, room);
+ mainCssClass = "screen-share-right ";
+ Room r = room.getRoom();
+ setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing));
+ }
+
+ @Override
+ protected String getTitle() {
+ String title;
+ if (client.hasRight(right)) {
+ title = self ? "1071" : "1068";
+ } else {
+ title = "1072";
+ }
+ return getString(title);
+ }
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,43 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class VideoRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public VideoRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.video, room);
+ mainCssClass = "camera-right ";
+ setVisible(!room.getRoom().isAudioOnly());
+ }
+
+ @Override
+ protected boolean hasRight() {
+ return false; //FIXME TODO need some flag
+ }
+
+ @Override
+ protected String getTitle() {
+ return getString(self ? "687" : "683");
+ }
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java?rev=1740681&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java Sun Apr 24 08:24:08 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.room.sidebar.icon;
+
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.app.Client.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
+
+public class WhiteboardRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public WhiteboardRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.whiteBoard, room);
+ mainCssClass = "wb-right ";
+ Room r = room.getRoom();
+ setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.Whiteboard));
+ }
+
+ @Override
+ protected String getTitle() {
+ String title;
+ if (client.hasRight(right)) {
+ title = self ? "689" : "612";
+ } else {
+ title = self ? "686" : "694";
+ }
+ return getString(title);
+ }
+}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java?rev=1740681&r1=1740680&r2=1740681&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java Sun Apr 24 08:24:08 2016
@@ -26,14 +26,13 @@ public class CallbackFunctionHelper {
StringBuilder sb = new StringBuilder();
sb.append("function ").append(name).append("(");
boolean first = true;
- for (CallbackParameter curExtraParameter : extraParameters)
- {
- if (curExtraParameter.getFunctionParameterName() != null)
- {
- if (!first)
- sb.append(',');
- else
+ for (CallbackParameter curExtraParameter : extraParameters) {
+ if (curExtraParameter.getFunctionParameterName() != null) {
+ if (first) {
first = false;
+ } else {
+ sb.append(',');
+ }
sb.append(curExtraParameter.getFunctionParameterName());
}
}