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/25 20:03:59 UTC
svn commit: r1740868 [1/2] - in /openmeetings/application:
branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/
branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/
branches/3.2.x/openmeetings-w...
Author: solomax
Date: Mon Apr 25 18:03:58 2016
New Revision: 1740868
URL: http://svn.apache.org/viewvc?rev=1740868&view=rev
Log:
[OPENMEETINGS-1120] missing activities are added
Added:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.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/app/Client.java
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.html
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.html
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/room/sidebar/icon/RoomRightIcon.java
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.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.html
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.html
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/room/sidebar/icon/RoomRightIcon.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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -39,7 +39,12 @@ public class RoomMessage implements IWeb
, activityRemove
, requestRightModerator
, requestRightWb
+ , requestRightShare
+ , requestRightRemote
+ , requestRightA
, requestRightAv
+ , requestRightMute
+ , requestRightExclusive
}
private final Date timestamp;
private final String uid;
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java?rev=1740868&r1=1740867&r2=1740868&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java Mon Apr 25 18:03:58 2016
@@ -45,12 +45,21 @@ public class Client implements IDataProv
, mute
, exclusive
}
+ public enum Activity {
+ broadcast
+ , share
+ , record
+ , publish
+ , muted
+ , exclusive
+ }
private final String sessionId;
private int pageId;
private final Long userId;
private Long roomId;
private final String uid;
- private final Set<Right> rights = new HashSet<Right>();
+ private final Set<Right> rights = new HashSet<>();
+ private final Set<Activity> activities = new HashSet<>();
private final Date connectedSince;
public Client(String sessionId, Long userId) {
@@ -98,6 +107,14 @@ public class Client implements IDataProv
return rights.contains(Right.superModerator) || rights.contains(Right.moderator) ? true : rights.contains(right);
}
+ public Set<Activity> getActivities() {
+ return activities;
+ }
+
+ public boolean hasActivity(Activity activity) {
+ return activities.contains(activity);
+ }
+
public Date getConnectedSince() {
return connectedSince;
}
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -40,6 +40,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.db.util.AuthLevelUtil;
import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.util.message.RoomMessage.Type;
import org.apache.openmeetings.util.message.TextRoomMessage;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.Client;
@@ -82,6 +83,10 @@ public class RoomPanel extends BasePanel
private static final long serialVersionUID = 1L;
private static final Logger log = Red5LoggerFactory.getLogger(RoomPanel.class, webAppRootKey);
private static final String ACCESS_DENIED_ID = "access-denied";
+ public enum Action {
+ kick
+ , refresh
+ }
private final Room r;
private final WebMarkupContainer room = new WebMarkupContainer("roomContainer");
private final AbstractDefaultAjaxBehavior aab = new AbstractDefaultAjaxBehavior() {
@@ -229,10 +234,10 @@ public class RoomPanel extends BasePanel
menu.update(handler);
break;
case recordingStarted:
- {
- recordingUser = ((TextRoomMessage)m).getText();
- menu.update(handler);
- }
+ {
+ recordingUser = ((TextRoomMessage)m).getText();
+ menu.update(handler);
+ }
break;
case sharingStoped:
//TODO check sharingUser == ((TextRoomMessage)m).getText();
@@ -240,10 +245,10 @@ public class RoomPanel extends BasePanel
menu.update(handler);
break;
case sharingStarted:
- {
- sharingUser = ((TextRoomMessage)m).getText();
- menu.update(handler);
- }
+ {
+ sharingUser = ((TextRoomMessage)m).getText();
+ menu.update(handler);
+ }
break;
case rightUpdated:
sidebar.updateUsers(handler);
@@ -252,6 +257,7 @@ public class RoomPanel extends BasePanel
case roomEnter:
sidebar.updateUsers(handler);
menu.update(handler);
+ // TODO should this be fixed?
//activities.addActivity(m.getUid(), m.getSentUserId(), Activity.Type.roomEnter, handler);
break;
case roomExit:
@@ -264,28 +270,58 @@ public class RoomPanel extends BasePanel
roomClosed.open(handler);
break;
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.reqRightModerator), handler);
}
break;
+ case requestRightWb:
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightWb), handler);
+ }
+ break;
+ case requestRightShare:
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightShare), handler);
+ }
+ break;
+ case requestRightRemote:
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightRemote), handler);
+ }
+ break;
+ case requestRightA:
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightA), 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.reqRightAv), handler);
}
break;
- case requestRightWb:
- if (getClient().hasRight(Right.moderator) && !hasRight(m.getUserId(), r.getId(), Right.whiteBoard)) {
+ case requestRightMute:
+ {
TextRoomMessage tm = (TextRoomMessage)m;
- activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightWb), handler);
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightMute), handler);
+ }
+ break;
+ case requestRightExclusive:
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightExclusive), handler);
}
break;
case activityRemove:
- {
- TextRoomMessage tm = (TextRoomMessage)m;
- activities.remove(tm.getText(), handler);
- }
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.remove(tm.getText(), handler);
+ }
break;
}
}
@@ -396,8 +432,39 @@ 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 requestRight(AjaxRequestTarget target, Client.Right right) {
+ RoomMessage.Type reqType = null;
+ switch (right) {
+ case moderator:
+ reqType = Type.requestRightModerator;
+ break;
+ case whiteBoard:
+ reqType = Type.requestRightWb;
+ break;
+ case share:
+ reqType = Type.requestRightWb;
+ break;
+ case audio:
+ reqType = Type.requestRightA;
+ break;
+ case exclusive:
+ reqType = Type.requestRightExclusive;
+ break;
+ case mute:
+ reqType = Type.requestRightMute;
+ break;
+ case remoteControl:
+ reqType = Type.requestRightRemote;
+ break;
+ case video:
+ reqType = Type.requestRightAv;
+ break;
+ default:
+ break;
+ }
+ if (reqType != null) {
+ RoomPanel.broadcast(new TextRoomMessage(getRoom().getId(), getUserId(), reqType, getClient().getUid()));
+ }
}
public void allowRight(AjaxRequestTarget target, Client client, Right... rights) {
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -61,7 +61,7 @@ import org.slf4j.Logger;
public class ActivitiesPanel extends BasePanel {
private static final long serialVersionUID = 1L;
private static final Logger log = Red5LoggerFactory.getLogger(ActivitiesPanel.class, webAppRootKey);
- private static final String PARAM_UID = "uid";
+ private static final String PARAM_ID = "id";
private static final String ACTION = "action";
private static final String PARAM_ROOM_ID = "roomid";
private enum Action {
@@ -82,35 +82,35 @@ public class ActivitiesPanel extends Bas
@Override
protected void respond(AjaxRequestTarget target) {
try {
- String uid = getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString();
+ String id = getRequest().getRequestParameters().getParameterValue(PARAM_ID).toString();
long roomId = getRequest().getRequestParameters().getParameterValue(PARAM_ROOM_ID).toLong();
assert(room.getRoom().getId().equals(roomId));
Action action = Action.valueOf(getRequest().getRequestParameters().getParameterValue(ACTION).toString());
- Activity a = activities.get(uid);
+ Activity a = activities.get(id);
if (a != null) {
switch (action) {
case close:
- remove(uid, target);
+ remove(id, target);
break;
case decline:
if (room.getClient().hasRight(Client.Right.moderator)) {
- broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
+ broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, id));
}
break;
case accept:
- Client client = getOnlineClient(uid);
+ Client client = getOnlineClient(a.getUid());
if (room.getClient().hasRight(Client.Right.moderator) && client != null && roomId == client.getRoomId()) {
switch (a.getType()) {
case reqRightModerator:
- broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
+ broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, id));
room.allowRight(target, client, Right.moderator);
break;
case reqRightAv:
- broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
+ broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, id));
room.allowRight(target, client, Right.audio, Right.video);
break;
case reqRightWb:
- broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
+ broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, id));
room.allowRight(target, client, Right.whiteBoard);
break;
default:
@@ -130,7 +130,7 @@ public class ActivitiesPanel extends Bas
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
- response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("activityAction", this, explicit(PARAM_ROOM_ID), explicit(ACTION), explicit(PARAM_UID)), "activityAction")));
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("activityAction", this, explicit(PARAM_ROOM_ID), explicit(ACTION), explicit(PARAM_ID)), "activityAction")));
}
};
private ListView<Activity> lv = new ListView<Activity>("activities", new ArrayList<Activity>()) {
@@ -141,67 +141,90 @@ public class ActivitiesPanel extends Bas
Activity a = item.getModelObject();
String text = "";
Long roomId = room.getRoom().getId();
- Component accept = new WebMarkupContainer("accept").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.accept.name(), a.getUid()))).setVisible(false);
- Component decline = new WebMarkupContainer("decline").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.decline.name(), a.getUid()))).setVisible(false);
+ Component accept = new WebMarkupContainer("accept").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.accept.name(), a.getId())));
+ Component decline = new WebMarkupContainer("decline").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.decline.name(), a.getId())));
+ switch (a.getType()) {
+ case reqRightModerator:
+ case reqRightWb:
+ case reqRightShare:
+ case reqRightRemote:
+ case reqRightA:
+ case reqRightAv:
+ case reqRightMute:
+ case reqRightExclusive:
+ if (room.getClient().hasRight(Client.Right.moderator)) {
+ accept.setVisible(true);
+ decline.setVisible(true);
+ break;
+ }
+ case roomEnter:
+ case roomExit:
+ accept.setVisible(false);
+ decline.setVisible(false);
+ break;
+ }
+ User u = getBean(UserDao.class).get(a.getSender());
+ String name = getUserId().equals(a.getSender()) ? getString("1362") : String.format("%s %s", u.getFirstname(), u.getLastname());
switch (a.getType()) {
case roomEnter:
text = ""; // TODO should this be fixed?
item.setVisible(false);
break;
case roomExit:
- {
- User u = getBean(UserDao.class).get(a.getSender());
- text = String.format("%s %s %s [%s]", u.getFirstname(), u.getLastname(), getString("1367"), df.get().format(a.getCreated()));
- }
+ text = String.format("%s %s [%s]", name, getString("1367"), df.get().format(a.getCreated()));
break;
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()));
- accept.setVisible(true);
- decline.setVisible(true);
- }
- //ask question 693
+ text = String.format("%s %s [%s]", name, getString("room.action.request.right.moderator"), df.get().format(a.getCreated()));
+ break;
+ case reqRightWb:
+ text = String.format("%s %s [%s]", name, getString("694"), df.get().format(a.getCreated()));
+ break;
+ case reqRightShare:
+ text = String.format("%s %s [%s]", name, getString("1070"), df.get().format(a.getCreated()));
+ break;
+ case reqRightRemote:
+ text = String.format("%s %s [%s]", name, getString("1082"), df.get().format(a.getCreated()));
+ break;
+ case reqRightA:
+ text = String.format("%s %s [%s]", name, getString("1603"), df.get().format(a.getCreated()));
break;
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()));
- accept.setVisible(true);
- decline.setVisible(true);
- }
+ text = String.format("%s %s [%s]", name, getString("695"), df.get().format(a.getCreated()));
break;
- 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()));
- accept.setVisible(true);
- decline.setVisible(true);
- }
+ case reqRightMute:
+ text = String.format("%s %s [%s]", name, getString("1399"), df.get().format(a.getCreated()));//TODO un-mute 1398
+ break;
+ case reqRightExclusive:
+ text = String.format("%s %s [%s]", name, getString("1427"), df.get().format(a.getCreated()));
break;
}
- item.add(new WebMarkupContainer("close").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.close.name(), a.getUid()))));
+ item.add(new WebMarkupContainer("close").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.close.name(), a.getId()))));
item.add(accept, decline, new Label("text", text));
item.add(AttributeAppender.append("class", getClass(a)));
}
private String getClass(Activity a) {
+ String cls = "ui-state-default";
switch (a.getType()) {
case reqRightModerator:
- return "ui-state-highlight";
- case reqRightAv:
- return "ui-state-highlight";
case reqRightWb:
- return "ui-state-highlight";
+ case reqRightShare:
+ case reqRightRemote:
+ case reqRightA:
+ case reqRightAv:
+ case reqRightMute:
+ case reqRightExclusive:
+ cls = "ui-state-highlight";
+ break;
case roomEnter:
case roomExit:
}
- return "ui-state-default";
+ return cls;
}
};
public void add(Activity a, IPartialPageRequestHandler handler) {
- activities.put(a.getUid(), a);
+ activities.put(a.getId(), a);
update(handler);
handler.appendJavaScript("hightlightActivities();");
}
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.room
import java.io.Serializable;
import java.util.Date;
+import java.util.UUID;
public class Activity implements Serializable {
private static final long serialVersionUID = 1L;
@@ -27,21 +28,32 @@ public class Activity implements Seriali
roomEnter
, roomExit
, reqRightModerator
- , reqRightAv
, reqRightWb
+ , reqRightShare
+ , reqRightRemote
+ , reqRightA
+ , reqRightAv
+ , reqRightMute
+ , reqRightExclusive
}
+ private final String id;
private final String uid;
private final Long sender;
private final Date created;
private final Type type;
public Activity(String uid, Long sender, Type type) {
+ this.id = UUID.randomUUID().toString();
this.uid = uid;
this.sender = sender;
this.type = type;
this.created = new Date();
}
+ public String getId() {
+ return id;
+ }
+
public String getUid() {
return uid;
}
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -85,7 +85,7 @@ public class RoomMenuPanel extends Panel
}
@Override
public void onClick(AjaxRequestTarget target) {
- room.requestRight(target, RoomMessage.Type.requestRightModerator);
+ room.requestRight(target, Client.Right.moderator);
}
};
private final RoomPanel room;
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html?rev=1740868&r1=1740867&r2=1740868&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html Mon Apr 25 18:03:58 2016
@@ -21,12 +21,12 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<span wicket:id="status" class="ui-icon align-right"></span>
- <span class="ui-icon align-right clickable restart" wicket:message="title:610"></span>
+ <span wicket:id="refresh"></span>
<div wicket:id="name" class="user name"></div>
<span class="ui-icon align-right clickable audio-activity" wicket:message="title:372"></span>
<div wicket:id="actions" class="user actions">
<span wicket:id="rights"></span>
- <span class="ui-icon align-left clickable kick" wicket:message="title:1213"></span>
+ <span wicket:id="kick"></span>
<span wicket:id="privateChat" class="ui-icon align-right clickable private-chat" wicket:message="title:1493" onclick="startPrivateChat($(this));"></span>
<div class="clear"></div>
</div>
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -27,6 +27,8 @@ import org.apache.openmeetings.db.entity
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.openmeetings.web.room.sidebar.icon.KickRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.RefreshIcon;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
@@ -42,10 +44,12 @@ public class RoomClientPanel extends Pan
Client c = item.getModelObject();
item.setMarkupId(String.format("user%s", c.getUid()));
User u = getBean(UserDao.class).get(c.getUserId());
+ add(new RefreshIcon("refresh", c, room));
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", c, room));
+ actions.add(new KickRightIcon("kick", 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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -26,7 +26,7 @@
<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>
+ <span wicket:id="right-mute"></span>
+ <span wicket:id="right-exclsv"></span>
</wicket:panel>
</html>
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -21,7 +21,9 @@ package org.apache.openmeetings.web.room
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.ExclusiveRightIcon;
import org.apache.openmeetings.web.room.sidebar.icon.ModeratorRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.MuteRightIcon;
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;
@@ -37,6 +39,8 @@ public class RoomRightPanel extends Pane
private final RemoteControlRightIcon rightRemote;
private final AudioRightIcon rightAudio;
private final VideoRightIcon rightVideo;
+ private final MuteRightIcon rightMute;
+ private final ExclusiveRightIcon rightExclsv;
public RoomRightPanel(String id, Client client, RoomPanel room) {
super(id);
@@ -47,6 +51,8 @@ public class RoomRightPanel extends Pane
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));
+ add(rightMute = new MuteRightIcon("right-mute", client, room));
+ add(rightExclsv = new ExclusiveRightIcon("right-exclsv", client, room));
}
@Override
@@ -62,5 +68,7 @@ public class RoomRightPanel extends Pane
rightRemote.update(handler);
rightAudio.update(handler);
rightVideo.update(handler);
+ rightMute.update(handler);
+ rightExclsv.update(handler);
}
}
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -23,9 +23,7 @@
<div class="tabs" wicket:id="tabs"></div>
<wicket:fragment wicket:id="user-panel">
- <div class="user header">
- <span wicket:id="rights"></span>
- </div>
+ <div wicket:id="rights" class="user header"></div>
<div class="user list">
<div wicket:id="user" class="user ui-corner-all ui-widget-content">
<div wicket:id="user"></div>
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -28,7 +28,6 @@ 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;
@@ -56,6 +55,8 @@ 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_CHANGE_RIGHT = "changeRight";
+ public static final String FUNC_ACTION = "roomAction";
+ public static final String PARAM_ACTION = "action";
public static final String PARAM_RIGHT = "right";
public static final String PARAM_UID = "uid";
private final RoomPanel room;
@@ -74,6 +75,13 @@ public class RoomSidebar extends Panel {
item.add(new RoomClientPanel("user", item, room));
}
};
+ private final AbstractDefaultAjaxBehavior action = new AbstractDefaultAjaxBehavior() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void respond(AjaxRequestTarget target) {
+ }
+ };
private final AbstractDefaultAjaxBehavior requestRight = new AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@@ -104,7 +112,7 @@ public class RoomSidebar extends Panel {
}
}
} else {
- room.requestRight(target, RoomMessage.Type.requestRightModerator);
+ room.requestRight(target, right);
}
} catch (Exception e) {
log.error("Unexpected exception while processing activity action", e);
@@ -157,13 +165,14 @@ public class RoomSidebar extends Panel {
roomFiles = new RoomFilePanel("tree", room);
selfRights = new RoomRightPanel("rights", room.getClient(), room);
add(upload = new UploadDialog("upload", room, roomFiles));
- add(requestRight);
+ add(requestRight, action);
}
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_CHANGE_RIGHT, requestRight, explicit(PARAM_RIGHT), explicit(PARAM_UID)), FUNC_CHANGE_RIGHT)));
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_ACTION, action, explicit(PARAM_ACTION), explicit(PARAM_UID)), FUNC_ACTION)));
}
private ListView<Client> updateUsers() {
@@ -199,6 +208,7 @@ public class RoomSidebar extends Panel {
public void updateUsers(IPartialPageRequestHandler handler) {
updateShowFiles();
updateUsers();
+ selfRights.setVisible(room.getRoom().isAllowUserQuestions() || room.getClient().hasRight(Right.moderator));
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/ExclusiveRightIcon.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/ExclusiveRightIcon.java?rev=1740868&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java Mon Apr 25 18:03:58 2016
@@ -0,0 +1,46 @@
+/*
+ * 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 ExclusiveRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public ExclusiveRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.exclusive, room);
+ mainCssClass = "exclsv-audio ";
+ }
+
+ @Override
+ protected String getTitle() {
+ //TODO this need to be fixed
+ String title = self ? "1432" : "1423";
+ /*
+ if (client.hasRight(right)) {
+ title = self ? "1403" : "612";
+ } else {
+ title = self ? "686" : "694";
+ }
+ */
+ return getString(title);
+ }
+}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.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/KickRightIcon.java?rev=1740868&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java Mon Apr 25 18:03:58 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.room.sidebar.icon;
+
+import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_ACTION;
+
+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.openmeetings.web.room.RoomPanel.Action;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+
+public class KickRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public KickRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.moderator, room);
+ mainCssClass = "kick ";
+ }
+
+ @Override
+ protected String getTitle() {
+ return getString("1213");
+ }
+
+ @Override
+ protected boolean isClickable() {
+ return !self && room.getClient().hasRight(right) && !client.hasRight(Right.superModerator);
+ }
+
+ @Override
+ protected String getScript() {
+ return String.format("%s('%s', '%s');", FUNC_ACTION, Action.kick.name(), client.getUid());
+ }
+
+ @Override
+ public void update(IPartialPageRequestHandler handler) {
+ super.update(handler);
+ setVisible(isClickable());
+ }
+}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.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/MuteRightIcon.java?rev=1740868&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java Mon Apr 25 18:03:58 2016
@@ -0,0 +1,46 @@
+/*
+ * 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 MuteRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public MuteRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.mute, room);
+ mainCssClass = "global-mute ";
+ }
+
+ @Override
+ protected String getTitle() {
+ //TODO this need to be fixed
+ String title = self ? "1403" : "1384";
+ /*
+ if (client.hasRight(right)) {
+ title = self ? "1403" : "612";
+ } else {
+ title = self ? "686" : "694";
+ }
+ */
+ return getString(title);
+ }
+}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.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/RefreshIcon.java?rev=1740868&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java Mon Apr 25 18:03:58 2016
@@ -0,0 +1,62 @@
+/*
+ * 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_ACTION;
+
+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.openmeetings.web.room.RoomPanel.Action;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+
+public class RefreshIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public RefreshIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.audio, room);
+ mainCssClass = "restart ";
+ }
+
+ @Override
+ protected String getTitle() {
+ return getString("610");
+ }
+
+ @Override
+ protected String getAlign() {
+ return ALIGN_RIGHT;
+ }
+
+ @Override
+ protected boolean isClickable() {
+ return false;//TODO broadcasting return self || room.getClient().hasRight(right) && !client.hasRight(Right.superModerator);
+ }
+
+ @Override
+ protected String getScript() {
+ return String.format("%s('%s', '%s');", FUNC_ACTION, Action.refresh.name(), client.getUid());
+ }
+
+ @Override
+ public void update(IPartialPageRequestHandler handler) {
+ super.update(handler);
+ setVisible(isClickable());
+ }
+}
Modified: 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=1740868&r1=1740867&r2=1740868&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java Mon Apr 25 18:03:58 2016
@@ -29,9 +29,11 @@ import org.apache.wicket.markup.html.Web
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 ";
+ private static final String ICON_CLASS = "ui-icon ";
+ protected static final String ALIGN_LEFT = "align-left ";
+ protected static final String ALIGN_RIGHT = "align-right ";
+ protected static final String CLS_CLICKABLE = "clickable ";
protected final RoomPanel room;
protected final Right right;
protected final boolean self;
@@ -55,24 +57,32 @@ public abstract class RoomRightIcon exte
protected abstract String getTitle();
+ protected String getAlign() {
+ return ALIGN_LEFT;
+ }
+
protected boolean isClickable() {
- return !self && room.getClient().hasRight(Right.moderator);
+ return self || (!self && room.getClient().hasRight(Right.moderator));
}
protected boolean hasRight() {
return client.hasRight(right);
}
+
+ protected String getScript() {
+ return String.format("%s('%s', '%s');", FUNC_CHANGE_RIGHT, right.name(), client.getUid());
+ }
public void update(IPartialPageRequestHandler handler) {
StringBuilder cls = new StringBuilder(ICON_CLASS);
- cls.append(mainCssClass);
+ cls.append(getAlign()).append(mainCssClass);
if (hasRight()) {
cls.append(CLS_GRANTED);
}
if (isClickable()) {
//request/remove
cls.append(CLS_CLICKABLE);
- add(AttributeAppender.replace("onclick", String.format("%s('%s', '%s');", FUNC_CHANGE_RIGHT, right.name(), client.getUid())));
+ add(AttributeAppender.replace("onclick", getScript()));
}
add(AttributeAppender.replace("title", getTitle()));
add(AttributeAppender.replace("class", cls));
Modified: openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java?rev=1740868&r1=1740867&r2=1740868&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java (original)
+++ openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java Mon Apr 25 18:03:58 2016
@@ -39,7 +39,12 @@ public class RoomMessage implements IWeb
, activityRemove
, requestRightModerator
, requestRightWb
+ , requestRightShare
+ , requestRightRemote
+ , requestRightA
, requestRightAv
+ , requestRightMute
+ , requestRightExclusive
}
private final Date timestamp;
private final String uid;
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java?rev=1740868&r1=1740867&r2=1740868&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java Mon Apr 25 18:03:58 2016
@@ -45,12 +45,21 @@ public class Client implements IDataProv
, mute
, exclusive
}
+ public enum Activity {
+ broadcast
+ , share
+ , record
+ , publish
+ , muted
+ , exclusive
+ }
private final String sessionId;
private int pageId;
private final Long userId;
private Long roomId;
private final String uid;
- private final Set<Right> rights = new HashSet<Right>();
+ private final Set<Right> rights = new HashSet<>();
+ private final Set<Activity> activities = new HashSet<>();
private final Date connectedSince;
public Client(String sessionId, Long userId) {
@@ -98,6 +107,14 @@ public class Client implements IDataProv
return rights.contains(Right.superModerator) || rights.contains(Right.moderator) ? true : rights.contains(right);
}
+ public Set<Activity> getActivities() {
+ return activities;
+ }
+
+ public boolean hasActivity(Activity activity) {
+ return activities.contains(activity);
+ }
+
public Date getConnectedSince() {
return connectedSince;
}
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -40,6 +40,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.db.util.AuthLevelUtil;
import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.util.message.RoomMessage.Type;
import org.apache.openmeetings.util.message.TextRoomMessage;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.Client;
@@ -87,6 +88,10 @@ public class RoomPanel extends BasePanel
private static final long serialVersionUID = 1L;
private static final Logger log = Red5LoggerFactory.getLogger(RoomPanel.class, webAppRootKey);
private static final String ACCESS_DENIED_ID = "access-denied";
+ public enum Action {
+ kick
+ , refresh
+ }
private final Room r;
private final WebMarkupContainer room = new WebMarkupContainer("roomContainer");
private final AbstractDefaultAjaxBehavior aab = new AbstractDefaultAjaxBehavior() {
@@ -248,10 +253,10 @@ public class RoomPanel extends BasePanel
menu.update(handler);
break;
case recordingStarted:
- {
- recordingUser = ((TextRoomMessage)m).getText();
- menu.update(handler);
- }
+ {
+ recordingUser = ((TextRoomMessage)m).getText();
+ menu.update(handler);
+ }
break;
case sharingStoped:
//TODO check sharingUser == ((TextRoomMessage)m).getText();
@@ -259,10 +264,10 @@ public class RoomPanel extends BasePanel
menu.update(handler);
break;
case sharingStarted:
- {
- sharingUser = ((TextRoomMessage)m).getText();
- menu.update(handler);
- }
+ {
+ sharingUser = ((TextRoomMessage)m).getText();
+ menu.update(handler);
+ }
break;
case rightUpdated:
sidebar.updateUsers(handler);
@@ -271,6 +276,7 @@ public class RoomPanel extends BasePanel
case roomEnter:
sidebar.updateUsers(handler);
menu.update(handler);
+ // TODO should this be fixed?
//activities.addActivity(m.getUid(), m.getSentUserId(), Activity.Type.roomEnter, handler);
break;
case roomExit:
@@ -283,28 +289,58 @@ public class RoomPanel extends BasePanel
roomClosed.open(handler);
break;
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.reqRightModerator), handler);
}
break;
+ case requestRightWb:
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightWb), handler);
+ }
+ break;
+ case requestRightShare:
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightShare), handler);
+ }
+ break;
+ case requestRightRemote:
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightRemote), handler);
+ }
+ break;
+ case requestRightA:
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightA), 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.reqRightAv), handler);
}
break;
- case requestRightWb:
- if (getClient().hasRight(Right.moderator) && !hasRight(m.getUserId(), r.getId(), Right.whiteBoard)) {
+ case requestRightMute:
+ {
TextRoomMessage tm = (TextRoomMessage)m;
- activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightWb), handler);
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightMute), handler);
+ }
+ break;
+ case requestRightExclusive:
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.add(new Activity(tm.getText(), m.getUserId(), Activity.Type.reqRightExclusive), handler);
}
break;
case activityRemove:
- {
- TextRoomMessage tm = (TextRoomMessage)m;
- activities.remove(tm.getText(), handler);
- }
+ {
+ TextRoomMessage tm = (TextRoomMessage)m;
+ activities.remove(tm.getText(), handler);
+ }
break;
}
}
@@ -427,8 +463,39 @@ 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 requestRight(AjaxRequestTarget target, Client.Right right) {
+ RoomMessage.Type reqType = null;
+ switch (right) {
+ case moderator:
+ reqType = Type.requestRightModerator;
+ break;
+ case whiteBoard:
+ reqType = Type.requestRightWb;
+ break;
+ case share:
+ reqType = Type.requestRightWb;
+ break;
+ case audio:
+ reqType = Type.requestRightA;
+ break;
+ case exclusive:
+ reqType = Type.requestRightExclusive;
+ break;
+ case mute:
+ reqType = Type.requestRightMute;
+ break;
+ case remoteControl:
+ reqType = Type.requestRightRemote;
+ break;
+ case video:
+ reqType = Type.requestRightAv;
+ break;
+ default:
+ break;
+ }
+ if (reqType != null) {
+ RoomPanel.broadcast(new TextRoomMessage(getRoom().getId(), getUserId(), reqType, getClient().getUid()));
+ }
}
public void allowRight(AjaxRequestTarget target, Client client, Right... rights) {
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -61,7 +61,7 @@ import org.slf4j.Logger;
public class ActivitiesPanel extends BasePanel {
private static final long serialVersionUID = 1L;
private static final Logger log = Red5LoggerFactory.getLogger(ActivitiesPanel.class, webAppRootKey);
- private static final String PARAM_UID = "uid";
+ private static final String PARAM_ID = "id";
private static final String ACTION = "action";
private static final String PARAM_ROOM_ID = "roomid";
private enum Action {
@@ -82,35 +82,35 @@ public class ActivitiesPanel extends Bas
@Override
protected void respond(AjaxRequestTarget target) {
try {
- String uid = getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString();
+ String id = getRequest().getRequestParameters().getParameterValue(PARAM_ID).toString();
long roomId = getRequest().getRequestParameters().getParameterValue(PARAM_ROOM_ID).toLong();
assert(room.getRoom().getId().equals(roomId));
Action action = Action.valueOf(getRequest().getRequestParameters().getParameterValue(ACTION).toString());
- Activity a = activities.get(uid);
+ Activity a = activities.get(id);
if (a != null) {
switch (action) {
case close:
- remove(uid, target);
+ remove(id, target);
break;
case decline:
if (room.getClient().hasRight(Client.Right.moderator)) {
- broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
+ broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, id));
}
break;
case accept:
- Client client = getOnlineClient(uid);
+ Client client = getOnlineClient(a.getUid());
if (room.getClient().hasRight(Client.Right.moderator) && client != null && roomId == client.getRoomId()) {
switch (a.getType()) {
case reqRightModerator:
- broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
+ broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, id));
room.allowRight(target, client, Right.moderator);
break;
case reqRightAv:
- broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
+ broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, id));
room.allowRight(target, client, Right.audio, Right.video);
break;
case reqRightWb:
- broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
+ broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, id));
room.allowRight(target, client, Right.whiteBoard);
break;
default:
@@ -130,7 +130,7 @@ public class ActivitiesPanel extends Bas
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
- response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("activityAction", this, explicit(PARAM_ROOM_ID), explicit(ACTION), explicit(PARAM_UID)), "activityAction")));
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("activityAction", this, explicit(PARAM_ROOM_ID), explicit(ACTION), explicit(PARAM_ID)), "activityAction")));
}
};
private ListView<Activity> lv = new ListView<Activity>("activities", new ArrayList<Activity>()) {
@@ -141,67 +141,90 @@ public class ActivitiesPanel extends Bas
Activity a = item.getModelObject();
String text = "";
Long roomId = room.getRoom().getId();
- Component accept = new WebMarkupContainer("accept").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.accept.name(), a.getUid()))).setVisible(false);
- Component decline = new WebMarkupContainer("decline").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.decline.name(), a.getUid()))).setVisible(false);
+ Component accept = new WebMarkupContainer("accept").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.accept.name(), a.getId())));
+ Component decline = new WebMarkupContainer("decline").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.decline.name(), a.getId())));
+ switch (a.getType()) {
+ case reqRightModerator:
+ case reqRightWb:
+ case reqRightShare:
+ case reqRightRemote:
+ case reqRightA:
+ case reqRightAv:
+ case reqRightMute:
+ case reqRightExclusive:
+ if (room.getClient().hasRight(Client.Right.moderator)) {
+ accept.setVisible(true);
+ decline.setVisible(true);
+ break;
+ }
+ case roomEnter:
+ case roomExit:
+ accept.setVisible(false);
+ decline.setVisible(false);
+ break;
+ }
+ User u = getBean(UserDao.class).get(a.getSender());
+ String name = getUserId().equals(a.getSender()) ? getString("1362") : String.format("%s %s", u.getFirstname(), u.getLastname());
switch (a.getType()) {
case roomEnter:
text = ""; // TODO should this be fixed?
item.setVisible(false);
break;
case roomExit:
- {
- User u = getBean(UserDao.class).get(a.getSender());
- text = String.format("%s %s %s [%s]", u.getFirstname(), u.getLastname(), getString("1367"), df.get().format(a.getCreated()));
- }
+ text = String.format("%s %s [%s]", name, getString("1367"), df.get().format(a.getCreated()));
break;
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()));
- accept.setVisible(true);
- decline.setVisible(true);
- }
- //ask question 693
+ text = String.format("%s %s [%s]", name, getString("room.action.request.right.moderator"), df.get().format(a.getCreated()));
+ break;
+ case reqRightWb:
+ text = String.format("%s %s [%s]", name, getString("694"), df.get().format(a.getCreated()));
+ break;
+ case reqRightShare:
+ text = String.format("%s %s [%s]", name, getString("1070"), df.get().format(a.getCreated()));
+ break;
+ case reqRightRemote:
+ text = String.format("%s %s [%s]", name, getString("1082"), df.get().format(a.getCreated()));
+ break;
+ case reqRightA:
+ text = String.format("%s %s [%s]", name, getString("1603"), df.get().format(a.getCreated()));
break;
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()));
- accept.setVisible(true);
- decline.setVisible(true);
- }
+ text = String.format("%s %s [%s]", name, getString("695"), df.get().format(a.getCreated()));
break;
- 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()));
- accept.setVisible(true);
- decline.setVisible(true);
- }
+ case reqRightMute:
+ text = String.format("%s %s [%s]", name, getString("1399"), df.get().format(a.getCreated()));//TODO un-mute 1398
+ break;
+ case reqRightExclusive:
+ text = String.format("%s %s [%s]", name, getString("1427"), df.get().format(a.getCreated()));
break;
}
- item.add(new WebMarkupContainer("close").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.close.name(), a.getUid()))));
+ item.add(new WebMarkupContainer("close").add(new AttributeAppender("onclick", String.format("activityAction(%s, '%s', '%s');", roomId, Action.close.name(), a.getId()))));
item.add(accept, decline, new Label("text", text));
item.add(AttributeAppender.append("class", getClass(a)));
}
private String getClass(Activity a) {
+ String cls = "ui-state-default";
switch (a.getType()) {
case reqRightModerator:
- return "ui-state-highlight";
- case reqRightAv:
- return "ui-state-highlight";
case reqRightWb:
- return "ui-state-highlight";
+ case reqRightShare:
+ case reqRightRemote:
+ case reqRightA:
+ case reqRightAv:
+ case reqRightMute:
+ case reqRightExclusive:
+ cls = "ui-state-highlight";
+ break;
case roomEnter:
case roomExit:
}
- return "ui-state-default";
+ return cls;
}
};
public void add(Activity a, IPartialPageRequestHandler handler) {
- activities.put(a.getUid(), a);
+ activities.put(a.getId(), a);
update(handler);
handler.appendJavaScript("hightlightActivities();");
}
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.room
import java.io.Serializable;
import java.util.Date;
+import java.util.UUID;
public class Activity implements Serializable {
private static final long serialVersionUID = 1L;
@@ -27,21 +28,32 @@ public class Activity implements Seriali
roomEnter
, roomExit
, reqRightModerator
- , reqRightAv
, reqRightWb
+ , reqRightShare
+ , reqRightRemote
+ , reqRightA
+ , reqRightAv
+ , reqRightMute
+ , reqRightExclusive
}
+ private final String id;
private final String uid;
private final Long sender;
private final Date created;
private final Type type;
public Activity(String uid, Long sender, Type type) {
+ this.id = UUID.randomUUID().toString();
this.uid = uid;
this.sender = sender;
this.type = type;
this.created = new Date();
}
+ public String getId() {
+ return id;
+ }
+
public String getUid() {
return uid;
}
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -85,7 +85,7 @@ public class RoomMenuPanel extends Panel
}
@Override
public void onClick(AjaxRequestTarget target) {
- room.requestRight(target, RoomMessage.Type.requestRightModerator);
+ room.requestRight(target, Client.Right.moderator);
}
};
private final RoomPanel room;
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html?rev=1740868&r1=1740867&r2=1740868&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html Mon Apr 25 18:03:58 2016
@@ -21,12 +21,12 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<span wicket:id="status" class="ui-icon align-right"></span>
- <span class="ui-icon align-right clickable restart" wicket:message="title:610"></span>
+ <span wicket:id="refresh"></span>
<div wicket:id="name" class="user name"></div>
<span class="ui-icon align-right clickable audio-activity" wicket:message="title:372"></span>
<div wicket:id="actions" class="user actions">
<span wicket:id="rights"></span>
- <span class="ui-icon align-left clickable kick" wicket:message="title:1213"></span>
+ <span wicket:id="kick"></span>
<span wicket:id="privateChat" class="ui-icon align-right clickable private-chat" wicket:message="title:1493" onclick="startPrivateChat($(this));"></span>
<div class="clear"></div>
</div>
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -27,6 +27,8 @@ import org.apache.openmeetings.db.entity
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.openmeetings.web.room.sidebar.icon.KickRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.RefreshIcon;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
@@ -42,10 +44,12 @@ public class RoomClientPanel extends Pan
Client c = item.getModelObject();
item.setMarkupId(String.format("user%s", c.getUid()));
User u = getBean(UserDao.class).get(c.getUserId());
+ add(new RefreshIcon("refresh", c, room));
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", c, room));
+ actions.add(new KickRightIcon("kick", 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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -26,7 +26,7 @@
<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>
+ <span wicket:id="right-mute"></span>
+ <span wicket:id="right-exclsv"></span>
</wicket:panel>
</html>
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -21,7 +21,9 @@ package org.apache.openmeetings.web.room
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.ExclusiveRightIcon;
import org.apache.openmeetings.web.room.sidebar.icon.ModeratorRightIcon;
+import org.apache.openmeetings.web.room.sidebar.icon.MuteRightIcon;
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;
@@ -37,6 +39,8 @@ public class RoomRightPanel extends Pane
private final RemoteControlRightIcon rightRemote;
private final AudioRightIcon rightAudio;
private final VideoRightIcon rightVideo;
+ private final MuteRightIcon rightMute;
+ private final ExclusiveRightIcon rightExclsv;
public RoomRightPanel(String id, Client client, RoomPanel room) {
super(id);
@@ -47,6 +51,8 @@ public class RoomRightPanel extends Pane
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));
+ add(rightMute = new MuteRightIcon("right-mute", client, room));
+ add(rightExclsv = new ExclusiveRightIcon("right-exclsv", client, room));
}
@Override
@@ -62,5 +68,7 @@ public class RoomRightPanel extends Pane
rightRemote.update(handler);
rightAudio.update(handler);
rightVideo.update(handler);
+ rightMute.update(handler);
+ rightExclsv.update(handler);
}
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html?rev=1740868&r1=1740867&r2=1740868&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html Mon Apr 25 18:03:58 2016
@@ -23,9 +23,7 @@
<div class="tabs" wicket:id="tabs"></div>
<wicket:fragment wicket:id="user-panel">
- <div class="user header">
- <span wicket:id="rights"></span>
- </div>
+ <div wicket:id="rights" class="user header"></div>
<div class="user list">
<div wicket:id="user" class="user ui-corner-all ui-widget-content">
<div wicket:id="user"></div>
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=1740868&r1=1740867&r2=1740868&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 Mon Apr 25 18:03:58 2016
@@ -28,7 +28,6 @@ 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;
@@ -56,6 +55,8 @@ 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_CHANGE_RIGHT = "changeRight";
+ public static final String FUNC_ACTION = "roomAction";
+ public static final String PARAM_ACTION = "action";
public static final String PARAM_RIGHT = "right";
public static final String PARAM_UID = "uid";
private final RoomPanel room;
@@ -74,6 +75,13 @@ public class RoomSidebar extends Panel {
item.add(new RoomClientPanel("user", item, room));
}
};
+ private final AbstractDefaultAjaxBehavior action = new AbstractDefaultAjaxBehavior() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void respond(AjaxRequestTarget target) {
+ }
+ };
private final AbstractDefaultAjaxBehavior requestRight = new AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@@ -104,7 +112,7 @@ public class RoomSidebar extends Panel {
}
}
} else {
- room.requestRight(target, RoomMessage.Type.requestRightModerator);
+ room.requestRight(target, right);
}
} catch (Exception e) {
log.error("Unexpected exception while processing activity action", e);
@@ -157,13 +165,14 @@ public class RoomSidebar extends Panel {
roomFiles = new RoomFilePanel("tree", room);
selfRights = new RoomRightPanel("rights", room.getClient(), room);
add(upload = new UploadDialog("upload", room, roomFiles));
- add(requestRight);
+ add(requestRight, action);
}
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_CHANGE_RIGHT, requestRight, explicit(PARAM_RIGHT), explicit(PARAM_UID)), FUNC_CHANGE_RIGHT)));
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_ACTION, action, explicit(PARAM_ACTION), explicit(PARAM_UID)), FUNC_ACTION)));
}
private ListView<Client> updateUsers() {
@@ -199,6 +208,7 @@ public class RoomSidebar extends Panel {
public void updateUsers(IPartialPageRequestHandler handler) {
updateShowFiles();
updateUsers();
+ selfRights.setVisible(room.getRoom().isAllowUserQuestions() || room.getClient().hasRight(Right.moderator));
selfRights.update(handler);
handler.add(tabs);
}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java?rev=1740868&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java Mon Apr 25 18:03:58 2016
@@ -0,0 +1,46 @@
+/*
+ * 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 ExclusiveRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public ExclusiveRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.exclusive, room);
+ mainCssClass = "exclsv-audio ";
+ }
+
+ @Override
+ protected String getTitle() {
+ //TODO this need to be fixed
+ String title = self ? "1432" : "1423";
+ /*
+ if (client.hasRight(right)) {
+ title = self ? "1403" : "612";
+ } else {
+ title = self ? "686" : "694";
+ }
+ */
+ return getString(title);
+ }
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java?rev=1740868&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java Mon Apr 25 18:03:58 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.room.sidebar.icon;
+
+import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_ACTION;
+
+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.openmeetings.web.room.RoomPanel.Action;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+
+public class KickRightIcon extends RoomRightIcon {
+ private static final long serialVersionUID = 1L;
+
+ public KickRightIcon(String id, Client client, RoomPanel room) {
+ super(id, client, Right.moderator, room);
+ mainCssClass = "kick ";
+ }
+
+ @Override
+ protected String getTitle() {
+ return getString("1213");
+ }
+
+ @Override
+ protected boolean isClickable() {
+ return !self && room.getClient().hasRight(right) && !client.hasRight(Right.superModerator);
+ }
+
+ @Override
+ protected String getScript() {
+ return String.format("%s('%s', '%s');", FUNC_ACTION, Action.kick.name(), client.getUid());
+ }
+
+ @Override
+ public void update(IPartialPageRequestHandler handler) {
+ super.update(handler);
+ setVisible(isClickable());
+ }
+}